// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: wso2/discovery/config/enforcer/config.proto

package org.wso2.choreo.connect.discovery.config.enforcer;

/**
 * <pre>
 * Enforcer config model
 * </pre>
 *
 * Protobuf type {@code wso2.discovery.config.enforcer.Config}
 */
public final class Config extends
    com.google.protobuf.GeneratedMessageV3 implements
    // @@protoc_insertion_point(message_implements:wso2.discovery.config.enforcer.Config)
    ConfigOrBuilder {
private static final long serialVersionUID = 0L;
  // Use Config.newBuilder() to construct.
  private Config(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }
  private Config() {
    filters_ = java.util.Collections.emptyList();
  }

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

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet
  getUnknownFields() {
    return this.unknownFields;
  }
  private Config(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    this();
    if (extensionRegistry == null) {
      throw new java.lang.NullPointerException();
    }
    int mutable_bitField0_ = 0;
    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
        com.google.protobuf.UnknownFieldSet.newBuilder();
    try {
      boolean done = false;
      while (!done) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            done = true;
            break;
          case 10: {
            org.wso2.choreo.connect.discovery.config.enforcer.Security.Builder subBuilder = null;
            if (security_ != null) {
              subBuilder = security_.toBuilder();
            }
            security_ = input.readMessage(org.wso2.choreo.connect.discovery.config.enforcer.Security.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(security_);
              security_ = subBuilder.buildPartial();
            }

            break;
          }
          case 18: {
            org.wso2.choreo.connect.discovery.config.enforcer.CertStore.Builder subBuilder = null;
            if (keystore_ != null) {
              subBuilder = keystore_.toBuilder();
            }
            keystore_ = input.readMessage(org.wso2.choreo.connect.discovery.config.enforcer.CertStore.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(keystore_);
              keystore_ = subBuilder.buildPartial();
            }

            break;
          }
          case 26: {
            org.wso2.choreo.connect.discovery.config.enforcer.CertStore.Builder subBuilder = null;
            if (truststore_ != null) {
              subBuilder = truststore_.toBuilder();
            }
            truststore_ = input.readMessage(org.wso2.choreo.connect.discovery.config.enforcer.CertStore.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(truststore_);
              truststore_ = subBuilder.buildPartial();
            }

            break;
          }
          case 34: {
            org.wso2.choreo.connect.discovery.config.enforcer.Service.Builder subBuilder = null;
            if (authService_ != null) {
              subBuilder = authService_.toBuilder();
            }
            authService_ = input.readMessage(org.wso2.choreo.connect.discovery.config.enforcer.Service.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(authService_);
              authService_ = subBuilder.buildPartial();
            }

            break;
          }
          case 42: {
            org.wso2.choreo.connect.discovery.config.enforcer.JWTGenerator.Builder subBuilder = null;
            if (jwtGenerator_ != null) {
              subBuilder = jwtGenerator_.toBuilder();
            }
            jwtGenerator_ = input.readMessage(org.wso2.choreo.connect.discovery.config.enforcer.JWTGenerator.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(jwtGenerator_);
              jwtGenerator_ = subBuilder.buildPartial();
            }

            break;
          }
          case 50: {
            org.wso2.choreo.connect.discovery.config.enforcer.Throttling.Builder subBuilder = null;
            if (throttling_ != null) {
              subBuilder = throttling_.toBuilder();
            }
            throttling_ = input.readMessage(org.wso2.choreo.connect.discovery.config.enforcer.Throttling.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(throttling_);
              throttling_ = subBuilder.buildPartial();
            }

            break;
          }
          case 58: {
            org.wso2.choreo.connect.discovery.config.enforcer.Cache.Builder subBuilder = null;
            if (cache_ != null) {
              subBuilder = cache_.toBuilder();
            }
            cache_ = input.readMessage(org.wso2.choreo.connect.discovery.config.enforcer.Cache.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(cache_);
              cache_ = subBuilder.buildPartial();
            }

            break;
          }
          case 66: {
            org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuer.Builder subBuilder = null;
            if (jwtIssuer_ != null) {
              subBuilder = jwtIssuer_.toBuilder();
            }
            jwtIssuer_ = input.readMessage(org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuer.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(jwtIssuer_);
              jwtIssuer_ = subBuilder.buildPartial();
            }

            break;
          }
          case 74: {
            org.wso2.choreo.connect.discovery.config.enforcer.Analytics.Builder subBuilder = null;
            if (analytics_ != null) {
              subBuilder = analytics_.toBuilder();
            }
            analytics_ = input.readMessage(org.wso2.choreo.connect.discovery.config.enforcer.Analytics.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(analytics_);
              analytics_ = subBuilder.buildPartial();
            }

            break;
          }
          case 82: {
            org.wso2.choreo.connect.discovery.config.enforcer.Management.Builder subBuilder = null;
            if (management_ != null) {
              subBuilder = management_.toBuilder();
            }
            management_ = input.readMessage(org.wso2.choreo.connect.discovery.config.enforcer.Management.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(management_);
              management_ = subBuilder.buildPartial();
            }

            break;
          }
          case 90: {
            org.wso2.choreo.connect.discovery.config.enforcer.RestServer.Builder subBuilder = null;
            if (restServer_ != null) {
              subBuilder = restServer_.toBuilder();
            }
            restServer_ = input.readMessage(org.wso2.choreo.connect.discovery.config.enforcer.RestServer.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(restServer_);
              restServer_ = subBuilder.buildPartial();
            }

            break;
          }
          case 98: {
            org.wso2.choreo.connect.discovery.config.enforcer.Tracing.Builder subBuilder = null;
            if (tracing_ != null) {
              subBuilder = tracing_.toBuilder();
            }
            tracing_ = input.readMessage(org.wso2.choreo.connect.discovery.config.enforcer.Tracing.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(tracing_);
              tracing_ = subBuilder.buildPartial();
            }

            break;
          }
          case 106: {
            org.wso2.choreo.connect.discovery.config.enforcer.Metrics.Builder subBuilder = null;
            if (metrics_ != null) {
              subBuilder = metrics_.toBuilder();
            }
            metrics_ = input.readMessage(org.wso2.choreo.connect.discovery.config.enforcer.Metrics.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(metrics_);
              metrics_ = subBuilder.buildPartial();
            }

            break;
          }
          case 114: {
            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
              filters_ = new java.util.ArrayList<org.wso2.choreo.connect.discovery.config.enforcer.Filter>();
              mutable_bitField0_ |= 0x00000001;
            }
            filters_.add(
                input.readMessage(org.wso2.choreo.connect.discovery.config.enforcer.Filter.parser(), extensionRegistry));
            break;
          }
          case 122: {
            org.wso2.choreo.connect.discovery.config.enforcer.Soap.Builder subBuilder = null;
            if (soap_ != null) {
              subBuilder = soap_.toBuilder();
            }
            soap_ = input.readMessage(org.wso2.choreo.connect.discovery.config.enforcer.Soap.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(soap_);
              soap_ = subBuilder.buildPartial();
            }

            break;
          }
          case 128: {

            controlPlaneEnabled_ = input.readBool();
            break;
          }
          default: {
            if (!parseUnknownField(
                input, unknownFields, extensionRegistry, tag)) {
              done = true;
            }
            break;
          }
        }
      }
    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
      throw e.setUnfinishedMessage(this);
    } catch (java.io.IOException e) {
      throw new com.google.protobuf.InvalidProtocolBufferException(
          e).setUnfinishedMessage(this);
    } finally {
      if (((mutable_bitField0_ & 0x00000001) != 0)) {
        filters_ = java.util.Collections.unmodifiableList(filters_);
      }
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }
  public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
    return org.wso2.choreo.connect.discovery.config.enforcer.ConfigProto.internal_static_wso2_discovery_config_enforcer_Config_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return org.wso2.choreo.connect.discovery.config.enforcer.ConfigProto.internal_static_wso2_discovery_config_enforcer_Config_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            org.wso2.choreo.connect.discovery.config.enforcer.Config.class, org.wso2.choreo.connect.discovery.config.enforcer.Config.Builder.class);
  }

  public static final int SECURITY_FIELD_NUMBER = 1;
  private org.wso2.choreo.connect.discovery.config.enforcer.Security security_;
  /**
   * <code>.wso2.discovery.config.enforcer.Security security = 1;</code>
   * @return Whether the security field is set.
   */
  @java.lang.Override
  public boolean hasSecurity() {
    return security_ != null;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.Security security = 1;</code>
   * @return The security.
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.Security getSecurity() {
    return security_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.Security.getDefaultInstance() : security_;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.Security security = 1;</code>
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.SecurityOrBuilder getSecurityOrBuilder() {
    return getSecurity();
  }

  public static final int KEYSTORE_FIELD_NUMBER = 2;
  private org.wso2.choreo.connect.discovery.config.enforcer.CertStore keystore_;
  /**
   * <code>.wso2.discovery.config.enforcer.CertStore keystore = 2;</code>
   * @return Whether the keystore field is set.
   */
  @java.lang.Override
  public boolean hasKeystore() {
    return keystore_ != null;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.CertStore keystore = 2;</code>
   * @return The keystore.
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.CertStore getKeystore() {
    return keystore_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.CertStore.getDefaultInstance() : keystore_;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.CertStore keystore = 2;</code>
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.CertStoreOrBuilder getKeystoreOrBuilder() {
    return getKeystore();
  }

  public static final int TRUSTSTORE_FIELD_NUMBER = 3;
  private org.wso2.choreo.connect.discovery.config.enforcer.CertStore truststore_;
  /**
   * <code>.wso2.discovery.config.enforcer.CertStore truststore = 3;</code>
   * @return Whether the truststore field is set.
   */
  @java.lang.Override
  public boolean hasTruststore() {
    return truststore_ != null;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.CertStore truststore = 3;</code>
   * @return The truststore.
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.CertStore getTruststore() {
    return truststore_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.CertStore.getDefaultInstance() : truststore_;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.CertStore truststore = 3;</code>
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.CertStoreOrBuilder getTruststoreOrBuilder() {
    return getTruststore();
  }

  public static final int AUTHSERVICE_FIELD_NUMBER = 4;
  private org.wso2.choreo.connect.discovery.config.enforcer.Service authService_;
  /**
   * <code>.wso2.discovery.config.enforcer.Service authService = 4;</code>
   * @return Whether the authService field is set.
   */
  @java.lang.Override
  public boolean hasAuthService() {
    return authService_ != null;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.Service authService = 4;</code>
   * @return The authService.
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.Service getAuthService() {
    return authService_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.Service.getDefaultInstance() : authService_;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.Service authService = 4;</code>
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.ServiceOrBuilder getAuthServiceOrBuilder() {
    return getAuthService();
  }

  public static final int JWTGENERATOR_FIELD_NUMBER = 5;
  private org.wso2.choreo.connect.discovery.config.enforcer.JWTGenerator jwtGenerator_;
  /**
   * <code>.wso2.discovery.config.enforcer.JWTGenerator jwtGenerator = 5;</code>
   * @return Whether the jwtGenerator field is set.
   */
  @java.lang.Override
  public boolean hasJwtGenerator() {
    return jwtGenerator_ != null;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.JWTGenerator jwtGenerator = 5;</code>
   * @return The jwtGenerator.
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.JWTGenerator getJwtGenerator() {
    return jwtGenerator_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.JWTGenerator.getDefaultInstance() : jwtGenerator_;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.JWTGenerator jwtGenerator = 5;</code>
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.JWTGeneratorOrBuilder getJwtGeneratorOrBuilder() {
    return getJwtGenerator();
  }

  public static final int THROTTLING_FIELD_NUMBER = 6;
  private org.wso2.choreo.connect.discovery.config.enforcer.Throttling throttling_;
  /**
   * <code>.wso2.discovery.config.enforcer.Throttling throttling = 6;</code>
   * @return Whether the throttling field is set.
   */
  @java.lang.Override
  public boolean hasThrottling() {
    return throttling_ != null;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.Throttling throttling = 6;</code>
   * @return The throttling.
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.Throttling getThrottling() {
    return throttling_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.Throttling.getDefaultInstance() : throttling_;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.Throttling throttling = 6;</code>
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.ThrottlingOrBuilder getThrottlingOrBuilder() {
    return getThrottling();
  }

  public static final int CACHE_FIELD_NUMBER = 7;
  private org.wso2.choreo.connect.discovery.config.enforcer.Cache cache_;
  /**
   * <code>.wso2.discovery.config.enforcer.Cache cache = 7;</code>
   * @return Whether the cache field is set.
   */
  @java.lang.Override
  public boolean hasCache() {
    return cache_ != null;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.Cache cache = 7;</code>
   * @return The cache.
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.Cache getCache() {
    return cache_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.Cache.getDefaultInstance() : cache_;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.Cache cache = 7;</code>
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.CacheOrBuilder getCacheOrBuilder() {
    return getCache();
  }

  public static final int JWTISSUER_FIELD_NUMBER = 8;
  private org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuer jwtIssuer_;
  /**
   * <code>.wso2.discovery.config.enforcer.JWTIssuer jwtIssuer = 8;</code>
   * @return Whether the jwtIssuer field is set.
   */
  @java.lang.Override
  public boolean hasJwtIssuer() {
    return jwtIssuer_ != null;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.JWTIssuer jwtIssuer = 8;</code>
   * @return The jwtIssuer.
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuer getJwtIssuer() {
    return jwtIssuer_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuer.getDefaultInstance() : jwtIssuer_;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.JWTIssuer jwtIssuer = 8;</code>
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuerOrBuilder getJwtIssuerOrBuilder() {
    return getJwtIssuer();
  }

  public static final int ANALYTICS_FIELD_NUMBER = 9;
  private org.wso2.choreo.connect.discovery.config.enforcer.Analytics analytics_;
  /**
   * <code>.wso2.discovery.config.enforcer.Analytics analytics = 9;</code>
   * @return Whether the analytics field is set.
   */
  @java.lang.Override
  public boolean hasAnalytics() {
    return analytics_ != null;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.Analytics analytics = 9;</code>
   * @return The analytics.
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.Analytics getAnalytics() {
    return analytics_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.Analytics.getDefaultInstance() : analytics_;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.Analytics analytics = 9;</code>
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.AnalyticsOrBuilder getAnalyticsOrBuilder() {
    return getAnalytics();
  }

  public static final int MANAGEMENT_FIELD_NUMBER = 10;
  private org.wso2.choreo.connect.discovery.config.enforcer.Management management_;
  /**
   * <code>.wso2.discovery.config.enforcer.Management management = 10;</code>
   * @return Whether the management field is set.
   */
  @java.lang.Override
  public boolean hasManagement() {
    return management_ != null;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.Management management = 10;</code>
   * @return The management.
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.Management getManagement() {
    return management_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.Management.getDefaultInstance() : management_;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.Management management = 10;</code>
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.ManagementOrBuilder getManagementOrBuilder() {
    return getManagement();
  }

  public static final int RESTSERVER_FIELD_NUMBER = 11;
  private org.wso2.choreo.connect.discovery.config.enforcer.RestServer restServer_;
  /**
   * <code>.wso2.discovery.config.enforcer.RestServer restServer = 11;</code>
   * @return Whether the restServer field is set.
   */
  @java.lang.Override
  public boolean hasRestServer() {
    return restServer_ != null;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.RestServer restServer = 11;</code>
   * @return The restServer.
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.RestServer getRestServer() {
    return restServer_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.RestServer.getDefaultInstance() : restServer_;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.RestServer restServer = 11;</code>
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.RestServerOrBuilder getRestServerOrBuilder() {
    return getRestServer();
  }

  public static final int TRACING_FIELD_NUMBER = 12;
  private org.wso2.choreo.connect.discovery.config.enforcer.Tracing tracing_;
  /**
   * <code>.wso2.discovery.config.enforcer.Tracing tracing = 12;</code>
   * @return Whether the tracing field is set.
   */
  @java.lang.Override
  public boolean hasTracing() {
    return tracing_ != null;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.Tracing tracing = 12;</code>
   * @return The tracing.
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.Tracing getTracing() {
    return tracing_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.Tracing.getDefaultInstance() : tracing_;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.Tracing tracing = 12;</code>
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.TracingOrBuilder getTracingOrBuilder() {
    return getTracing();
  }

  public static final int METRICS_FIELD_NUMBER = 13;
  private org.wso2.choreo.connect.discovery.config.enforcer.Metrics metrics_;
  /**
   * <code>.wso2.discovery.config.enforcer.Metrics metrics = 13;</code>
   * @return Whether the metrics field is set.
   */
  @java.lang.Override
  public boolean hasMetrics() {
    return metrics_ != null;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.Metrics metrics = 13;</code>
   * @return The metrics.
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.Metrics getMetrics() {
    return metrics_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.Metrics.getDefaultInstance() : metrics_;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.Metrics metrics = 13;</code>
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.MetricsOrBuilder getMetricsOrBuilder() {
    return getMetrics();
  }

  public static final int FILTERS_FIELD_NUMBER = 14;
  private java.util.List<org.wso2.choreo.connect.discovery.config.enforcer.Filter> filters_;
  /**
   * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
   */
  @java.lang.Override
  public java.util.List<org.wso2.choreo.connect.discovery.config.enforcer.Filter> getFiltersList() {
    return filters_;
  }
  /**
   * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
   */
  @java.lang.Override
  public java.util.List<? extends org.wso2.choreo.connect.discovery.config.enforcer.FilterOrBuilder> 
      getFiltersOrBuilderList() {
    return filters_;
  }
  /**
   * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
   */
  @java.lang.Override
  public int getFiltersCount() {
    return filters_.size();
  }
  /**
   * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.Filter getFilters(int index) {
    return filters_.get(index);
  }
  /**
   * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.FilterOrBuilder getFiltersOrBuilder(
      int index) {
    return filters_.get(index);
  }

  public static final int SOAP_FIELD_NUMBER = 15;
  private org.wso2.choreo.connect.discovery.config.enforcer.Soap soap_;
  /**
   * <code>.wso2.discovery.config.enforcer.Soap soap = 15;</code>
   * @return Whether the soap field is set.
   */
  @java.lang.Override
  public boolean hasSoap() {
    return soap_ != null;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.Soap soap = 15;</code>
   * @return The soap.
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.Soap getSoap() {
    return soap_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.Soap.getDefaultInstance() : soap_;
  }
  /**
   * <code>.wso2.discovery.config.enforcer.Soap soap = 15;</code>
   */
  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.SoapOrBuilder getSoapOrBuilder() {
    return getSoap();
  }

  public static final int CONTROLPLANEENABLED_FIELD_NUMBER = 16;
  private boolean controlPlaneEnabled_;
  /**
   * <code>bool controlPlaneEnabled = 16;</code>
   * @return The controlPlaneEnabled.
   */
  @java.lang.Override
  public boolean getControlPlaneEnabled() {
    return controlPlaneEnabled_;
  }

  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 (security_ != null) {
      output.writeMessage(1, getSecurity());
    }
    if (keystore_ != null) {
      output.writeMessage(2, getKeystore());
    }
    if (truststore_ != null) {
      output.writeMessage(3, getTruststore());
    }
    if (authService_ != null) {
      output.writeMessage(4, getAuthService());
    }
    if (jwtGenerator_ != null) {
      output.writeMessage(5, getJwtGenerator());
    }
    if (throttling_ != null) {
      output.writeMessage(6, getThrottling());
    }
    if (cache_ != null) {
      output.writeMessage(7, getCache());
    }
    if (jwtIssuer_ != null) {
      output.writeMessage(8, getJwtIssuer());
    }
    if (analytics_ != null) {
      output.writeMessage(9, getAnalytics());
    }
    if (management_ != null) {
      output.writeMessage(10, getManagement());
    }
    if (restServer_ != null) {
      output.writeMessage(11, getRestServer());
    }
    if (tracing_ != null) {
      output.writeMessage(12, getTracing());
    }
    if (metrics_ != null) {
      output.writeMessage(13, getMetrics());
    }
    for (int i = 0; i < filters_.size(); i++) {
      output.writeMessage(14, filters_.get(i));
    }
    if (soap_ != null) {
      output.writeMessage(15, getSoap());
    }
    if (controlPlaneEnabled_ != false) {
      output.writeBool(16, controlPlaneEnabled_);
    }
    unknownFields.writeTo(output);
  }

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

    size = 0;
    if (security_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(1, getSecurity());
    }
    if (keystore_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(2, getKeystore());
    }
    if (truststore_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(3, getTruststore());
    }
    if (authService_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(4, getAuthService());
    }
    if (jwtGenerator_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(5, getJwtGenerator());
    }
    if (throttling_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(6, getThrottling());
    }
    if (cache_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(7, getCache());
    }
    if (jwtIssuer_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(8, getJwtIssuer());
    }
    if (analytics_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(9, getAnalytics());
    }
    if (management_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(10, getManagement());
    }
    if (restServer_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(11, getRestServer());
    }
    if (tracing_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(12, getTracing());
    }
    if (metrics_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(13, getMetrics());
    }
    for (int i = 0; i < filters_.size(); i++) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(14, filters_.get(i));
    }
    if (soap_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(15, getSoap());
    }
    if (controlPlaneEnabled_ != false) {
      size += com.google.protobuf.CodedOutputStream
        .computeBoolSize(16, controlPlaneEnabled_);
    }
    size += unknownFields.getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
     return true;
    }
    if (!(obj instanceof org.wso2.choreo.connect.discovery.config.enforcer.Config)) {
      return super.equals(obj);
    }
    org.wso2.choreo.connect.discovery.config.enforcer.Config other = (org.wso2.choreo.connect.discovery.config.enforcer.Config) obj;

    if (hasSecurity() != other.hasSecurity()) return false;
    if (hasSecurity()) {
      if (!getSecurity()
          .equals(other.getSecurity())) return false;
    }
    if (hasKeystore() != other.hasKeystore()) return false;
    if (hasKeystore()) {
      if (!getKeystore()
          .equals(other.getKeystore())) return false;
    }
    if (hasTruststore() != other.hasTruststore()) return false;
    if (hasTruststore()) {
      if (!getTruststore()
          .equals(other.getTruststore())) return false;
    }
    if (hasAuthService() != other.hasAuthService()) return false;
    if (hasAuthService()) {
      if (!getAuthService()
          .equals(other.getAuthService())) return false;
    }
    if (hasJwtGenerator() != other.hasJwtGenerator()) return false;
    if (hasJwtGenerator()) {
      if (!getJwtGenerator()
          .equals(other.getJwtGenerator())) return false;
    }
    if (hasThrottling() != other.hasThrottling()) return false;
    if (hasThrottling()) {
      if (!getThrottling()
          .equals(other.getThrottling())) return false;
    }
    if (hasCache() != other.hasCache()) return false;
    if (hasCache()) {
      if (!getCache()
          .equals(other.getCache())) return false;
    }
    if (hasJwtIssuer() != other.hasJwtIssuer()) return false;
    if (hasJwtIssuer()) {
      if (!getJwtIssuer()
          .equals(other.getJwtIssuer())) return false;
    }
    if (hasAnalytics() != other.hasAnalytics()) return false;
    if (hasAnalytics()) {
      if (!getAnalytics()
          .equals(other.getAnalytics())) return false;
    }
    if (hasManagement() != other.hasManagement()) return false;
    if (hasManagement()) {
      if (!getManagement()
          .equals(other.getManagement())) return false;
    }
    if (hasRestServer() != other.hasRestServer()) return false;
    if (hasRestServer()) {
      if (!getRestServer()
          .equals(other.getRestServer())) return false;
    }
    if (hasTracing() != other.hasTracing()) return false;
    if (hasTracing()) {
      if (!getTracing()
          .equals(other.getTracing())) return false;
    }
    if (hasMetrics() != other.hasMetrics()) return false;
    if (hasMetrics()) {
      if (!getMetrics()
          .equals(other.getMetrics())) return false;
    }
    if (!getFiltersList()
        .equals(other.getFiltersList())) return false;
    if (hasSoap() != other.hasSoap()) return false;
    if (hasSoap()) {
      if (!getSoap()
          .equals(other.getSoap())) return false;
    }
    if (getControlPlaneEnabled()
        != other.getControlPlaneEnabled()) return false;
    if (!unknownFields.equals(other.unknownFields)) return false;
    return true;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    if (hasSecurity()) {
      hash = (37 * hash) + SECURITY_FIELD_NUMBER;
      hash = (53 * hash) + getSecurity().hashCode();
    }
    if (hasKeystore()) {
      hash = (37 * hash) + KEYSTORE_FIELD_NUMBER;
      hash = (53 * hash) + getKeystore().hashCode();
    }
    if (hasTruststore()) {
      hash = (37 * hash) + TRUSTSTORE_FIELD_NUMBER;
      hash = (53 * hash) + getTruststore().hashCode();
    }
    if (hasAuthService()) {
      hash = (37 * hash) + AUTHSERVICE_FIELD_NUMBER;
      hash = (53 * hash) + getAuthService().hashCode();
    }
    if (hasJwtGenerator()) {
      hash = (37 * hash) + JWTGENERATOR_FIELD_NUMBER;
      hash = (53 * hash) + getJwtGenerator().hashCode();
    }
    if (hasThrottling()) {
      hash = (37 * hash) + THROTTLING_FIELD_NUMBER;
      hash = (53 * hash) + getThrottling().hashCode();
    }
    if (hasCache()) {
      hash = (37 * hash) + CACHE_FIELD_NUMBER;
      hash = (53 * hash) + getCache().hashCode();
    }
    if (hasJwtIssuer()) {
      hash = (37 * hash) + JWTISSUER_FIELD_NUMBER;
      hash = (53 * hash) + getJwtIssuer().hashCode();
    }
    if (hasAnalytics()) {
      hash = (37 * hash) + ANALYTICS_FIELD_NUMBER;
      hash = (53 * hash) + getAnalytics().hashCode();
    }
    if (hasManagement()) {
      hash = (37 * hash) + MANAGEMENT_FIELD_NUMBER;
      hash = (53 * hash) + getManagement().hashCode();
    }
    if (hasRestServer()) {
      hash = (37 * hash) + RESTSERVER_FIELD_NUMBER;
      hash = (53 * hash) + getRestServer().hashCode();
    }
    if (hasTracing()) {
      hash = (37 * hash) + TRACING_FIELD_NUMBER;
      hash = (53 * hash) + getTracing().hashCode();
    }
    if (hasMetrics()) {
      hash = (37 * hash) + METRICS_FIELD_NUMBER;
      hash = (53 * hash) + getMetrics().hashCode();
    }
    if (getFiltersCount() > 0) {
      hash = (37 * hash) + FILTERS_FIELD_NUMBER;
      hash = (53 * hash) + getFiltersList().hashCode();
    }
    if (hasSoap()) {
      hash = (37 * hash) + SOAP_FIELD_NUMBER;
      hash = (53 * hash) + getSoap().hashCode();
    }
    hash = (37 * hash) + CONTROLPLANEENABLED_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
        getControlPlaneEnabled());
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static org.wso2.choreo.connect.discovery.config.enforcer.Config parseFrom(
      java.nio.ByteBuffer data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static org.wso2.choreo.connect.discovery.config.enforcer.Config parseFrom(
      java.nio.ByteBuffer data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static org.wso2.choreo.connect.discovery.config.enforcer.Config parseFrom(
      com.google.protobuf.ByteString data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static org.wso2.choreo.connect.discovery.config.enforcer.Config parseFrom(
      com.google.protobuf.ByteString data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static org.wso2.choreo.connect.discovery.config.enforcer.Config parseFrom(byte[] data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static org.wso2.choreo.connect.discovery.config.enforcer.Config parseFrom(
      byte[] data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static org.wso2.choreo.connect.discovery.config.enforcer.Config parseFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input);
  }
  public static org.wso2.choreo.connect.discovery.config.enforcer.Config 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 org.wso2.choreo.connect.discovery.config.enforcer.Config parseDelimitedFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseDelimitedWithIOException(PARSER, input);
  }
  public static org.wso2.choreo.connect.discovery.config.enforcer.Config 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 org.wso2.choreo.connect.discovery.config.enforcer.Config parseFrom(
      com.google.protobuf.CodedInputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input);
  }
  public static org.wso2.choreo.connect.discovery.config.enforcer.Config 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(org.wso2.choreo.connect.discovery.config.enforcer.Config prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }
  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE
        ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(
      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   * <pre>
   * Enforcer config model
   * </pre>
   *
   * Protobuf type {@code wso2.discovery.config.enforcer.Config}
   */
  public static final class Builder extends
      com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
      // @@protoc_insertion_point(builder_implements:wso2.discovery.config.enforcer.Config)
      org.wso2.choreo.connect.discovery.config.enforcer.ConfigOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.wso2.choreo.connect.discovery.config.enforcer.ConfigProto.internal_static_wso2_discovery_config_enforcer_Config_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.wso2.choreo.connect.discovery.config.enforcer.ConfigProto.internal_static_wso2_discovery_config_enforcer_Config_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.wso2.choreo.connect.discovery.config.enforcer.Config.class, org.wso2.choreo.connect.discovery.config.enforcer.Config.Builder.class);
    }

    // Construct using org.wso2.choreo.connect.discovery.config.enforcer.Config.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }
    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3
              .alwaysUseFieldBuilders) {
        getFiltersFieldBuilder();
      }
    }
    @java.lang.Override
    public Builder clear() {
      super.clear();
      if (securityBuilder_ == null) {
        security_ = null;
      } else {
        security_ = null;
        securityBuilder_ = null;
      }
      if (keystoreBuilder_ == null) {
        keystore_ = null;
      } else {
        keystore_ = null;
        keystoreBuilder_ = null;
      }
      if (truststoreBuilder_ == null) {
        truststore_ = null;
      } else {
        truststore_ = null;
        truststoreBuilder_ = null;
      }
      if (authServiceBuilder_ == null) {
        authService_ = null;
      } else {
        authService_ = null;
        authServiceBuilder_ = null;
      }
      if (jwtGeneratorBuilder_ == null) {
        jwtGenerator_ = null;
      } else {
        jwtGenerator_ = null;
        jwtGeneratorBuilder_ = null;
      }
      if (throttlingBuilder_ == null) {
        throttling_ = null;
      } else {
        throttling_ = null;
        throttlingBuilder_ = null;
      }
      if (cacheBuilder_ == null) {
        cache_ = null;
      } else {
        cache_ = null;
        cacheBuilder_ = null;
      }
      if (jwtIssuerBuilder_ == null) {
        jwtIssuer_ = null;
      } else {
        jwtIssuer_ = null;
        jwtIssuerBuilder_ = null;
      }
      if (analyticsBuilder_ == null) {
        analytics_ = null;
      } else {
        analytics_ = null;
        analyticsBuilder_ = null;
      }
      if (managementBuilder_ == null) {
        management_ = null;
      } else {
        management_ = null;
        managementBuilder_ = null;
      }
      if (restServerBuilder_ == null) {
        restServer_ = null;
      } else {
        restServer_ = null;
        restServerBuilder_ = null;
      }
      if (tracingBuilder_ == null) {
        tracing_ = null;
      } else {
        tracing_ = null;
        tracingBuilder_ = null;
      }
      if (metricsBuilder_ == null) {
        metrics_ = null;
      } else {
        metrics_ = null;
        metricsBuilder_ = null;
      }
      if (filtersBuilder_ == null) {
        filters_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
      } else {
        filtersBuilder_.clear();
      }
      if (soapBuilder_ == null) {
        soap_ = null;
      } else {
        soap_ = null;
        soapBuilder_ = null;
      }
      controlPlaneEnabled_ = false;

      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor
        getDescriptorForType() {
      return org.wso2.choreo.connect.discovery.config.enforcer.ConfigProto.internal_static_wso2_discovery_config_enforcer_Config_descriptor;
    }

    @java.lang.Override
    public org.wso2.choreo.connect.discovery.config.enforcer.Config getDefaultInstanceForType() {
      return org.wso2.choreo.connect.discovery.config.enforcer.Config.getDefaultInstance();
    }

    @java.lang.Override
    public org.wso2.choreo.connect.discovery.config.enforcer.Config build() {
      org.wso2.choreo.connect.discovery.config.enforcer.Config result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public org.wso2.choreo.connect.discovery.config.enforcer.Config buildPartial() {
      org.wso2.choreo.connect.discovery.config.enforcer.Config result = new org.wso2.choreo.connect.discovery.config.enforcer.Config(this);
      int from_bitField0_ = bitField0_;
      if (securityBuilder_ == null) {
        result.security_ = security_;
      } else {
        result.security_ = securityBuilder_.build();
      }
      if (keystoreBuilder_ == null) {
        result.keystore_ = keystore_;
      } else {
        result.keystore_ = keystoreBuilder_.build();
      }
      if (truststoreBuilder_ == null) {
        result.truststore_ = truststore_;
      } else {
        result.truststore_ = truststoreBuilder_.build();
      }
      if (authServiceBuilder_ == null) {
        result.authService_ = authService_;
      } else {
        result.authService_ = authServiceBuilder_.build();
      }
      if (jwtGeneratorBuilder_ == null) {
        result.jwtGenerator_ = jwtGenerator_;
      } else {
        result.jwtGenerator_ = jwtGeneratorBuilder_.build();
      }
      if (throttlingBuilder_ == null) {
        result.throttling_ = throttling_;
      } else {
        result.throttling_ = throttlingBuilder_.build();
      }
      if (cacheBuilder_ == null) {
        result.cache_ = cache_;
      } else {
        result.cache_ = cacheBuilder_.build();
      }
      if (jwtIssuerBuilder_ == null) {
        result.jwtIssuer_ = jwtIssuer_;
      } else {
        result.jwtIssuer_ = jwtIssuerBuilder_.build();
      }
      if (analyticsBuilder_ == null) {
        result.analytics_ = analytics_;
      } else {
        result.analytics_ = analyticsBuilder_.build();
      }
      if (managementBuilder_ == null) {
        result.management_ = management_;
      } else {
        result.management_ = managementBuilder_.build();
      }
      if (restServerBuilder_ == null) {
        result.restServer_ = restServer_;
      } else {
        result.restServer_ = restServerBuilder_.build();
      }
      if (tracingBuilder_ == null) {
        result.tracing_ = tracing_;
      } else {
        result.tracing_ = tracingBuilder_.build();
      }
      if (metricsBuilder_ == null) {
        result.metrics_ = metrics_;
      } else {
        result.metrics_ = metricsBuilder_.build();
      }
      if (filtersBuilder_ == null) {
        if (((bitField0_ & 0x00000001) != 0)) {
          filters_ = java.util.Collections.unmodifiableList(filters_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.filters_ = filters_;
      } else {
        result.filters_ = filtersBuilder_.build();
      }
      if (soapBuilder_ == null) {
        result.soap_ = soap_;
      } else {
        result.soap_ = soapBuilder_.build();
      }
      result.controlPlaneEnabled_ = controlPlaneEnabled_;
      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 org.wso2.choreo.connect.discovery.config.enforcer.Config) {
        return mergeFrom((org.wso2.choreo.connect.discovery.config.enforcer.Config)other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(org.wso2.choreo.connect.discovery.config.enforcer.Config other) {
      if (other == org.wso2.choreo.connect.discovery.config.enforcer.Config.getDefaultInstance()) return this;
      if (other.hasSecurity()) {
        mergeSecurity(other.getSecurity());
      }
      if (other.hasKeystore()) {
        mergeKeystore(other.getKeystore());
      }
      if (other.hasTruststore()) {
        mergeTruststore(other.getTruststore());
      }
      if (other.hasAuthService()) {
        mergeAuthService(other.getAuthService());
      }
      if (other.hasJwtGenerator()) {
        mergeJwtGenerator(other.getJwtGenerator());
      }
      if (other.hasThrottling()) {
        mergeThrottling(other.getThrottling());
      }
      if (other.hasCache()) {
        mergeCache(other.getCache());
      }
      if (other.hasJwtIssuer()) {
        mergeJwtIssuer(other.getJwtIssuer());
      }
      if (other.hasAnalytics()) {
        mergeAnalytics(other.getAnalytics());
      }
      if (other.hasManagement()) {
        mergeManagement(other.getManagement());
      }
      if (other.hasRestServer()) {
        mergeRestServer(other.getRestServer());
      }
      if (other.hasTracing()) {
        mergeTracing(other.getTracing());
      }
      if (other.hasMetrics()) {
        mergeMetrics(other.getMetrics());
      }
      if (filtersBuilder_ == null) {
        if (!other.filters_.isEmpty()) {
          if (filters_.isEmpty()) {
            filters_ = other.filters_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureFiltersIsMutable();
            filters_.addAll(other.filters_);
          }
          onChanged();
        }
      } else {
        if (!other.filters_.isEmpty()) {
          if (filtersBuilder_.isEmpty()) {
            filtersBuilder_.dispose();
            filtersBuilder_ = null;
            filters_ = other.filters_;
            bitField0_ = (bitField0_ & ~0x00000001);
            filtersBuilder_ = 
              com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                 getFiltersFieldBuilder() : null;
          } else {
            filtersBuilder_.addAllMessages(other.filters_);
          }
        }
      }
      if (other.hasSoap()) {
        mergeSoap(other.getSoap());
      }
      if (other.getControlPlaneEnabled() != false) {
        setControlPlaneEnabled(other.getControlPlaneEnabled());
      }
      this.mergeUnknownFields(other.unknownFields);
      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 {
      org.wso2.choreo.connect.discovery.config.enforcer.Config parsedMessage = null;
      try {
        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        parsedMessage = (org.wso2.choreo.connect.discovery.config.enforcer.Config) e.getUnfinishedMessage();
        throw e.unwrapIOException();
      } finally {
        if (parsedMessage != null) {
          mergeFrom(parsedMessage);
        }
      }
      return this;
    }
    private int bitField0_;

    private org.wso2.choreo.connect.discovery.config.enforcer.Security security_;
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.Security, org.wso2.choreo.connect.discovery.config.enforcer.Security.Builder, org.wso2.choreo.connect.discovery.config.enforcer.SecurityOrBuilder> securityBuilder_;
    /**
     * <code>.wso2.discovery.config.enforcer.Security security = 1;</code>
     * @return Whether the security field is set.
     */
    public boolean hasSecurity() {
      return securityBuilder_ != null || security_ != null;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Security security = 1;</code>
     * @return The security.
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.Security getSecurity() {
      if (securityBuilder_ == null) {
        return security_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.Security.getDefaultInstance() : security_;
      } else {
        return securityBuilder_.getMessage();
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Security security = 1;</code>
     */
    public Builder setSecurity(org.wso2.choreo.connect.discovery.config.enforcer.Security value) {
      if (securityBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        security_ = value;
        onChanged();
      } else {
        securityBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Security security = 1;</code>
     */
    public Builder setSecurity(
        org.wso2.choreo.connect.discovery.config.enforcer.Security.Builder builderForValue) {
      if (securityBuilder_ == null) {
        security_ = builderForValue.build();
        onChanged();
      } else {
        securityBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Security security = 1;</code>
     */
    public Builder mergeSecurity(org.wso2.choreo.connect.discovery.config.enforcer.Security value) {
      if (securityBuilder_ == null) {
        if (security_ != null) {
          security_ =
            org.wso2.choreo.connect.discovery.config.enforcer.Security.newBuilder(security_).mergeFrom(value).buildPartial();
        } else {
          security_ = value;
        }
        onChanged();
      } else {
        securityBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Security security = 1;</code>
     */
    public Builder clearSecurity() {
      if (securityBuilder_ == null) {
        security_ = null;
        onChanged();
      } else {
        security_ = null;
        securityBuilder_ = null;
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Security security = 1;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.Security.Builder getSecurityBuilder() {
      
      onChanged();
      return getSecurityFieldBuilder().getBuilder();
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Security security = 1;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.SecurityOrBuilder getSecurityOrBuilder() {
      if (securityBuilder_ != null) {
        return securityBuilder_.getMessageOrBuilder();
      } else {
        return security_ == null ?
            org.wso2.choreo.connect.discovery.config.enforcer.Security.getDefaultInstance() : security_;
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Security security = 1;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.Security, org.wso2.choreo.connect.discovery.config.enforcer.Security.Builder, org.wso2.choreo.connect.discovery.config.enforcer.SecurityOrBuilder> 
        getSecurityFieldBuilder() {
      if (securityBuilder_ == null) {
        securityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            org.wso2.choreo.connect.discovery.config.enforcer.Security, org.wso2.choreo.connect.discovery.config.enforcer.Security.Builder, org.wso2.choreo.connect.discovery.config.enforcer.SecurityOrBuilder>(
                getSecurity(),
                getParentForChildren(),
                isClean());
        security_ = null;
      }
      return securityBuilder_;
    }

    private org.wso2.choreo.connect.discovery.config.enforcer.CertStore keystore_;
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.CertStore, org.wso2.choreo.connect.discovery.config.enforcer.CertStore.Builder, org.wso2.choreo.connect.discovery.config.enforcer.CertStoreOrBuilder> keystoreBuilder_;
    /**
     * <code>.wso2.discovery.config.enforcer.CertStore keystore = 2;</code>
     * @return Whether the keystore field is set.
     */
    public boolean hasKeystore() {
      return keystoreBuilder_ != null || keystore_ != null;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.CertStore keystore = 2;</code>
     * @return The keystore.
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.CertStore getKeystore() {
      if (keystoreBuilder_ == null) {
        return keystore_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.CertStore.getDefaultInstance() : keystore_;
      } else {
        return keystoreBuilder_.getMessage();
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.CertStore keystore = 2;</code>
     */
    public Builder setKeystore(org.wso2.choreo.connect.discovery.config.enforcer.CertStore value) {
      if (keystoreBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        keystore_ = value;
        onChanged();
      } else {
        keystoreBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.CertStore keystore = 2;</code>
     */
    public Builder setKeystore(
        org.wso2.choreo.connect.discovery.config.enforcer.CertStore.Builder builderForValue) {
      if (keystoreBuilder_ == null) {
        keystore_ = builderForValue.build();
        onChanged();
      } else {
        keystoreBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.CertStore keystore = 2;</code>
     */
    public Builder mergeKeystore(org.wso2.choreo.connect.discovery.config.enforcer.CertStore value) {
      if (keystoreBuilder_ == null) {
        if (keystore_ != null) {
          keystore_ =
            org.wso2.choreo.connect.discovery.config.enforcer.CertStore.newBuilder(keystore_).mergeFrom(value).buildPartial();
        } else {
          keystore_ = value;
        }
        onChanged();
      } else {
        keystoreBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.CertStore keystore = 2;</code>
     */
    public Builder clearKeystore() {
      if (keystoreBuilder_ == null) {
        keystore_ = null;
        onChanged();
      } else {
        keystore_ = null;
        keystoreBuilder_ = null;
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.CertStore keystore = 2;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.CertStore.Builder getKeystoreBuilder() {
      
      onChanged();
      return getKeystoreFieldBuilder().getBuilder();
    }
    /**
     * <code>.wso2.discovery.config.enforcer.CertStore keystore = 2;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.CertStoreOrBuilder getKeystoreOrBuilder() {
      if (keystoreBuilder_ != null) {
        return keystoreBuilder_.getMessageOrBuilder();
      } else {
        return keystore_ == null ?
            org.wso2.choreo.connect.discovery.config.enforcer.CertStore.getDefaultInstance() : keystore_;
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.CertStore keystore = 2;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.CertStore, org.wso2.choreo.connect.discovery.config.enforcer.CertStore.Builder, org.wso2.choreo.connect.discovery.config.enforcer.CertStoreOrBuilder> 
        getKeystoreFieldBuilder() {
      if (keystoreBuilder_ == null) {
        keystoreBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            org.wso2.choreo.connect.discovery.config.enforcer.CertStore, org.wso2.choreo.connect.discovery.config.enforcer.CertStore.Builder, org.wso2.choreo.connect.discovery.config.enforcer.CertStoreOrBuilder>(
                getKeystore(),
                getParentForChildren(),
                isClean());
        keystore_ = null;
      }
      return keystoreBuilder_;
    }

    private org.wso2.choreo.connect.discovery.config.enforcer.CertStore truststore_;
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.CertStore, org.wso2.choreo.connect.discovery.config.enforcer.CertStore.Builder, org.wso2.choreo.connect.discovery.config.enforcer.CertStoreOrBuilder> truststoreBuilder_;
    /**
     * <code>.wso2.discovery.config.enforcer.CertStore truststore = 3;</code>
     * @return Whether the truststore field is set.
     */
    public boolean hasTruststore() {
      return truststoreBuilder_ != null || truststore_ != null;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.CertStore truststore = 3;</code>
     * @return The truststore.
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.CertStore getTruststore() {
      if (truststoreBuilder_ == null) {
        return truststore_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.CertStore.getDefaultInstance() : truststore_;
      } else {
        return truststoreBuilder_.getMessage();
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.CertStore truststore = 3;</code>
     */
    public Builder setTruststore(org.wso2.choreo.connect.discovery.config.enforcer.CertStore value) {
      if (truststoreBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        truststore_ = value;
        onChanged();
      } else {
        truststoreBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.CertStore truststore = 3;</code>
     */
    public Builder setTruststore(
        org.wso2.choreo.connect.discovery.config.enforcer.CertStore.Builder builderForValue) {
      if (truststoreBuilder_ == null) {
        truststore_ = builderForValue.build();
        onChanged();
      } else {
        truststoreBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.CertStore truststore = 3;</code>
     */
    public Builder mergeTruststore(org.wso2.choreo.connect.discovery.config.enforcer.CertStore value) {
      if (truststoreBuilder_ == null) {
        if (truststore_ != null) {
          truststore_ =
            org.wso2.choreo.connect.discovery.config.enforcer.CertStore.newBuilder(truststore_).mergeFrom(value).buildPartial();
        } else {
          truststore_ = value;
        }
        onChanged();
      } else {
        truststoreBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.CertStore truststore = 3;</code>
     */
    public Builder clearTruststore() {
      if (truststoreBuilder_ == null) {
        truststore_ = null;
        onChanged();
      } else {
        truststore_ = null;
        truststoreBuilder_ = null;
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.CertStore truststore = 3;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.CertStore.Builder getTruststoreBuilder() {
      
      onChanged();
      return getTruststoreFieldBuilder().getBuilder();
    }
    /**
     * <code>.wso2.discovery.config.enforcer.CertStore truststore = 3;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.CertStoreOrBuilder getTruststoreOrBuilder() {
      if (truststoreBuilder_ != null) {
        return truststoreBuilder_.getMessageOrBuilder();
      } else {
        return truststore_ == null ?
            org.wso2.choreo.connect.discovery.config.enforcer.CertStore.getDefaultInstance() : truststore_;
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.CertStore truststore = 3;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.CertStore, org.wso2.choreo.connect.discovery.config.enforcer.CertStore.Builder, org.wso2.choreo.connect.discovery.config.enforcer.CertStoreOrBuilder> 
        getTruststoreFieldBuilder() {
      if (truststoreBuilder_ == null) {
        truststoreBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            org.wso2.choreo.connect.discovery.config.enforcer.CertStore, org.wso2.choreo.connect.discovery.config.enforcer.CertStore.Builder, org.wso2.choreo.connect.discovery.config.enforcer.CertStoreOrBuilder>(
                getTruststore(),
                getParentForChildren(),
                isClean());
        truststore_ = null;
      }
      return truststoreBuilder_;
    }

    private org.wso2.choreo.connect.discovery.config.enforcer.Service authService_;
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.Service, org.wso2.choreo.connect.discovery.config.enforcer.Service.Builder, org.wso2.choreo.connect.discovery.config.enforcer.ServiceOrBuilder> authServiceBuilder_;
    /**
     * <code>.wso2.discovery.config.enforcer.Service authService = 4;</code>
     * @return Whether the authService field is set.
     */
    public boolean hasAuthService() {
      return authServiceBuilder_ != null || authService_ != null;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Service authService = 4;</code>
     * @return The authService.
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.Service getAuthService() {
      if (authServiceBuilder_ == null) {
        return authService_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.Service.getDefaultInstance() : authService_;
      } else {
        return authServiceBuilder_.getMessage();
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Service authService = 4;</code>
     */
    public Builder setAuthService(org.wso2.choreo.connect.discovery.config.enforcer.Service value) {
      if (authServiceBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        authService_ = value;
        onChanged();
      } else {
        authServiceBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Service authService = 4;</code>
     */
    public Builder setAuthService(
        org.wso2.choreo.connect.discovery.config.enforcer.Service.Builder builderForValue) {
      if (authServiceBuilder_ == null) {
        authService_ = builderForValue.build();
        onChanged();
      } else {
        authServiceBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Service authService = 4;</code>
     */
    public Builder mergeAuthService(org.wso2.choreo.connect.discovery.config.enforcer.Service value) {
      if (authServiceBuilder_ == null) {
        if (authService_ != null) {
          authService_ =
            org.wso2.choreo.connect.discovery.config.enforcer.Service.newBuilder(authService_).mergeFrom(value).buildPartial();
        } else {
          authService_ = value;
        }
        onChanged();
      } else {
        authServiceBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Service authService = 4;</code>
     */
    public Builder clearAuthService() {
      if (authServiceBuilder_ == null) {
        authService_ = null;
        onChanged();
      } else {
        authService_ = null;
        authServiceBuilder_ = null;
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Service authService = 4;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.Service.Builder getAuthServiceBuilder() {
      
      onChanged();
      return getAuthServiceFieldBuilder().getBuilder();
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Service authService = 4;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.ServiceOrBuilder getAuthServiceOrBuilder() {
      if (authServiceBuilder_ != null) {
        return authServiceBuilder_.getMessageOrBuilder();
      } else {
        return authService_ == null ?
            org.wso2.choreo.connect.discovery.config.enforcer.Service.getDefaultInstance() : authService_;
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Service authService = 4;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.Service, org.wso2.choreo.connect.discovery.config.enforcer.Service.Builder, org.wso2.choreo.connect.discovery.config.enforcer.ServiceOrBuilder> 
        getAuthServiceFieldBuilder() {
      if (authServiceBuilder_ == null) {
        authServiceBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            org.wso2.choreo.connect.discovery.config.enforcer.Service, org.wso2.choreo.connect.discovery.config.enforcer.Service.Builder, org.wso2.choreo.connect.discovery.config.enforcer.ServiceOrBuilder>(
                getAuthService(),
                getParentForChildren(),
                isClean());
        authService_ = null;
      }
      return authServiceBuilder_;
    }

    private org.wso2.choreo.connect.discovery.config.enforcer.JWTGenerator jwtGenerator_;
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.JWTGenerator, org.wso2.choreo.connect.discovery.config.enforcer.JWTGenerator.Builder, org.wso2.choreo.connect.discovery.config.enforcer.JWTGeneratorOrBuilder> jwtGeneratorBuilder_;
    /**
     * <code>.wso2.discovery.config.enforcer.JWTGenerator jwtGenerator = 5;</code>
     * @return Whether the jwtGenerator field is set.
     */
    public boolean hasJwtGenerator() {
      return jwtGeneratorBuilder_ != null || jwtGenerator_ != null;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.JWTGenerator jwtGenerator = 5;</code>
     * @return The jwtGenerator.
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.JWTGenerator getJwtGenerator() {
      if (jwtGeneratorBuilder_ == null) {
        return jwtGenerator_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.JWTGenerator.getDefaultInstance() : jwtGenerator_;
      } else {
        return jwtGeneratorBuilder_.getMessage();
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.JWTGenerator jwtGenerator = 5;</code>
     */
    public Builder setJwtGenerator(org.wso2.choreo.connect.discovery.config.enforcer.JWTGenerator value) {
      if (jwtGeneratorBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        jwtGenerator_ = value;
        onChanged();
      } else {
        jwtGeneratorBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.JWTGenerator jwtGenerator = 5;</code>
     */
    public Builder setJwtGenerator(
        org.wso2.choreo.connect.discovery.config.enforcer.JWTGenerator.Builder builderForValue) {
      if (jwtGeneratorBuilder_ == null) {
        jwtGenerator_ = builderForValue.build();
        onChanged();
      } else {
        jwtGeneratorBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.JWTGenerator jwtGenerator = 5;</code>
     */
    public Builder mergeJwtGenerator(org.wso2.choreo.connect.discovery.config.enforcer.JWTGenerator value) {
      if (jwtGeneratorBuilder_ == null) {
        if (jwtGenerator_ != null) {
          jwtGenerator_ =
            org.wso2.choreo.connect.discovery.config.enforcer.JWTGenerator.newBuilder(jwtGenerator_).mergeFrom(value).buildPartial();
        } else {
          jwtGenerator_ = value;
        }
        onChanged();
      } else {
        jwtGeneratorBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.JWTGenerator jwtGenerator = 5;</code>
     */
    public Builder clearJwtGenerator() {
      if (jwtGeneratorBuilder_ == null) {
        jwtGenerator_ = null;
        onChanged();
      } else {
        jwtGenerator_ = null;
        jwtGeneratorBuilder_ = null;
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.JWTGenerator jwtGenerator = 5;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.JWTGenerator.Builder getJwtGeneratorBuilder() {
      
      onChanged();
      return getJwtGeneratorFieldBuilder().getBuilder();
    }
    /**
     * <code>.wso2.discovery.config.enforcer.JWTGenerator jwtGenerator = 5;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.JWTGeneratorOrBuilder getJwtGeneratorOrBuilder() {
      if (jwtGeneratorBuilder_ != null) {
        return jwtGeneratorBuilder_.getMessageOrBuilder();
      } else {
        return jwtGenerator_ == null ?
            org.wso2.choreo.connect.discovery.config.enforcer.JWTGenerator.getDefaultInstance() : jwtGenerator_;
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.JWTGenerator jwtGenerator = 5;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.JWTGenerator, org.wso2.choreo.connect.discovery.config.enforcer.JWTGenerator.Builder, org.wso2.choreo.connect.discovery.config.enforcer.JWTGeneratorOrBuilder> 
        getJwtGeneratorFieldBuilder() {
      if (jwtGeneratorBuilder_ == null) {
        jwtGeneratorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            org.wso2.choreo.connect.discovery.config.enforcer.JWTGenerator, org.wso2.choreo.connect.discovery.config.enforcer.JWTGenerator.Builder, org.wso2.choreo.connect.discovery.config.enforcer.JWTGeneratorOrBuilder>(
                getJwtGenerator(),
                getParentForChildren(),
                isClean());
        jwtGenerator_ = null;
      }
      return jwtGeneratorBuilder_;
    }

    private org.wso2.choreo.connect.discovery.config.enforcer.Throttling throttling_;
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.Throttling, org.wso2.choreo.connect.discovery.config.enforcer.Throttling.Builder, org.wso2.choreo.connect.discovery.config.enforcer.ThrottlingOrBuilder> throttlingBuilder_;
    /**
     * <code>.wso2.discovery.config.enforcer.Throttling throttling = 6;</code>
     * @return Whether the throttling field is set.
     */
    public boolean hasThrottling() {
      return throttlingBuilder_ != null || throttling_ != null;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Throttling throttling = 6;</code>
     * @return The throttling.
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.Throttling getThrottling() {
      if (throttlingBuilder_ == null) {
        return throttling_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.Throttling.getDefaultInstance() : throttling_;
      } else {
        return throttlingBuilder_.getMessage();
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Throttling throttling = 6;</code>
     */
    public Builder setThrottling(org.wso2.choreo.connect.discovery.config.enforcer.Throttling value) {
      if (throttlingBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        throttling_ = value;
        onChanged();
      } else {
        throttlingBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Throttling throttling = 6;</code>
     */
    public Builder setThrottling(
        org.wso2.choreo.connect.discovery.config.enforcer.Throttling.Builder builderForValue) {
      if (throttlingBuilder_ == null) {
        throttling_ = builderForValue.build();
        onChanged();
      } else {
        throttlingBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Throttling throttling = 6;</code>
     */
    public Builder mergeThrottling(org.wso2.choreo.connect.discovery.config.enforcer.Throttling value) {
      if (throttlingBuilder_ == null) {
        if (throttling_ != null) {
          throttling_ =
            org.wso2.choreo.connect.discovery.config.enforcer.Throttling.newBuilder(throttling_).mergeFrom(value).buildPartial();
        } else {
          throttling_ = value;
        }
        onChanged();
      } else {
        throttlingBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Throttling throttling = 6;</code>
     */
    public Builder clearThrottling() {
      if (throttlingBuilder_ == null) {
        throttling_ = null;
        onChanged();
      } else {
        throttling_ = null;
        throttlingBuilder_ = null;
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Throttling throttling = 6;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.Throttling.Builder getThrottlingBuilder() {
      
      onChanged();
      return getThrottlingFieldBuilder().getBuilder();
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Throttling throttling = 6;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.ThrottlingOrBuilder getThrottlingOrBuilder() {
      if (throttlingBuilder_ != null) {
        return throttlingBuilder_.getMessageOrBuilder();
      } else {
        return throttling_ == null ?
            org.wso2.choreo.connect.discovery.config.enforcer.Throttling.getDefaultInstance() : throttling_;
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Throttling throttling = 6;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.Throttling, org.wso2.choreo.connect.discovery.config.enforcer.Throttling.Builder, org.wso2.choreo.connect.discovery.config.enforcer.ThrottlingOrBuilder> 
        getThrottlingFieldBuilder() {
      if (throttlingBuilder_ == null) {
        throttlingBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            org.wso2.choreo.connect.discovery.config.enforcer.Throttling, org.wso2.choreo.connect.discovery.config.enforcer.Throttling.Builder, org.wso2.choreo.connect.discovery.config.enforcer.ThrottlingOrBuilder>(
                getThrottling(),
                getParentForChildren(),
                isClean());
        throttling_ = null;
      }
      return throttlingBuilder_;
    }

    private org.wso2.choreo.connect.discovery.config.enforcer.Cache cache_;
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.Cache, org.wso2.choreo.connect.discovery.config.enforcer.Cache.Builder, org.wso2.choreo.connect.discovery.config.enforcer.CacheOrBuilder> cacheBuilder_;
    /**
     * <code>.wso2.discovery.config.enforcer.Cache cache = 7;</code>
     * @return Whether the cache field is set.
     */
    public boolean hasCache() {
      return cacheBuilder_ != null || cache_ != null;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Cache cache = 7;</code>
     * @return The cache.
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.Cache getCache() {
      if (cacheBuilder_ == null) {
        return cache_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.Cache.getDefaultInstance() : cache_;
      } else {
        return cacheBuilder_.getMessage();
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Cache cache = 7;</code>
     */
    public Builder setCache(org.wso2.choreo.connect.discovery.config.enforcer.Cache value) {
      if (cacheBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        cache_ = value;
        onChanged();
      } else {
        cacheBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Cache cache = 7;</code>
     */
    public Builder setCache(
        org.wso2.choreo.connect.discovery.config.enforcer.Cache.Builder builderForValue) {
      if (cacheBuilder_ == null) {
        cache_ = builderForValue.build();
        onChanged();
      } else {
        cacheBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Cache cache = 7;</code>
     */
    public Builder mergeCache(org.wso2.choreo.connect.discovery.config.enforcer.Cache value) {
      if (cacheBuilder_ == null) {
        if (cache_ != null) {
          cache_ =
            org.wso2.choreo.connect.discovery.config.enforcer.Cache.newBuilder(cache_).mergeFrom(value).buildPartial();
        } else {
          cache_ = value;
        }
        onChanged();
      } else {
        cacheBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Cache cache = 7;</code>
     */
    public Builder clearCache() {
      if (cacheBuilder_ == null) {
        cache_ = null;
        onChanged();
      } else {
        cache_ = null;
        cacheBuilder_ = null;
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Cache cache = 7;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.Cache.Builder getCacheBuilder() {
      
      onChanged();
      return getCacheFieldBuilder().getBuilder();
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Cache cache = 7;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.CacheOrBuilder getCacheOrBuilder() {
      if (cacheBuilder_ != null) {
        return cacheBuilder_.getMessageOrBuilder();
      } else {
        return cache_ == null ?
            org.wso2.choreo.connect.discovery.config.enforcer.Cache.getDefaultInstance() : cache_;
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Cache cache = 7;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.Cache, org.wso2.choreo.connect.discovery.config.enforcer.Cache.Builder, org.wso2.choreo.connect.discovery.config.enforcer.CacheOrBuilder> 
        getCacheFieldBuilder() {
      if (cacheBuilder_ == null) {
        cacheBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            org.wso2.choreo.connect.discovery.config.enforcer.Cache, org.wso2.choreo.connect.discovery.config.enforcer.Cache.Builder, org.wso2.choreo.connect.discovery.config.enforcer.CacheOrBuilder>(
                getCache(),
                getParentForChildren(),
                isClean());
        cache_ = null;
      }
      return cacheBuilder_;
    }

    private org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuer jwtIssuer_;
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuer, org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuer.Builder, org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuerOrBuilder> jwtIssuerBuilder_;
    /**
     * <code>.wso2.discovery.config.enforcer.JWTIssuer jwtIssuer = 8;</code>
     * @return Whether the jwtIssuer field is set.
     */
    public boolean hasJwtIssuer() {
      return jwtIssuerBuilder_ != null || jwtIssuer_ != null;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.JWTIssuer jwtIssuer = 8;</code>
     * @return The jwtIssuer.
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuer getJwtIssuer() {
      if (jwtIssuerBuilder_ == null) {
        return jwtIssuer_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuer.getDefaultInstance() : jwtIssuer_;
      } else {
        return jwtIssuerBuilder_.getMessage();
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.JWTIssuer jwtIssuer = 8;</code>
     */
    public Builder setJwtIssuer(org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuer value) {
      if (jwtIssuerBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        jwtIssuer_ = value;
        onChanged();
      } else {
        jwtIssuerBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.JWTIssuer jwtIssuer = 8;</code>
     */
    public Builder setJwtIssuer(
        org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuer.Builder builderForValue) {
      if (jwtIssuerBuilder_ == null) {
        jwtIssuer_ = builderForValue.build();
        onChanged();
      } else {
        jwtIssuerBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.JWTIssuer jwtIssuer = 8;</code>
     */
    public Builder mergeJwtIssuer(org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuer value) {
      if (jwtIssuerBuilder_ == null) {
        if (jwtIssuer_ != null) {
          jwtIssuer_ =
            org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuer.newBuilder(jwtIssuer_).mergeFrom(value).buildPartial();
        } else {
          jwtIssuer_ = value;
        }
        onChanged();
      } else {
        jwtIssuerBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.JWTIssuer jwtIssuer = 8;</code>
     */
    public Builder clearJwtIssuer() {
      if (jwtIssuerBuilder_ == null) {
        jwtIssuer_ = null;
        onChanged();
      } else {
        jwtIssuer_ = null;
        jwtIssuerBuilder_ = null;
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.JWTIssuer jwtIssuer = 8;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuer.Builder getJwtIssuerBuilder() {
      
      onChanged();
      return getJwtIssuerFieldBuilder().getBuilder();
    }
    /**
     * <code>.wso2.discovery.config.enforcer.JWTIssuer jwtIssuer = 8;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuerOrBuilder getJwtIssuerOrBuilder() {
      if (jwtIssuerBuilder_ != null) {
        return jwtIssuerBuilder_.getMessageOrBuilder();
      } else {
        return jwtIssuer_ == null ?
            org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuer.getDefaultInstance() : jwtIssuer_;
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.JWTIssuer jwtIssuer = 8;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuer, org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuer.Builder, org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuerOrBuilder> 
        getJwtIssuerFieldBuilder() {
      if (jwtIssuerBuilder_ == null) {
        jwtIssuerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuer, org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuer.Builder, org.wso2.choreo.connect.discovery.config.enforcer.JWTIssuerOrBuilder>(
                getJwtIssuer(),
                getParentForChildren(),
                isClean());
        jwtIssuer_ = null;
      }
      return jwtIssuerBuilder_;
    }

    private org.wso2.choreo.connect.discovery.config.enforcer.Analytics analytics_;
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.Analytics, org.wso2.choreo.connect.discovery.config.enforcer.Analytics.Builder, org.wso2.choreo.connect.discovery.config.enforcer.AnalyticsOrBuilder> analyticsBuilder_;
    /**
     * <code>.wso2.discovery.config.enforcer.Analytics analytics = 9;</code>
     * @return Whether the analytics field is set.
     */
    public boolean hasAnalytics() {
      return analyticsBuilder_ != null || analytics_ != null;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Analytics analytics = 9;</code>
     * @return The analytics.
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.Analytics getAnalytics() {
      if (analyticsBuilder_ == null) {
        return analytics_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.Analytics.getDefaultInstance() : analytics_;
      } else {
        return analyticsBuilder_.getMessage();
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Analytics analytics = 9;</code>
     */
    public Builder setAnalytics(org.wso2.choreo.connect.discovery.config.enforcer.Analytics value) {
      if (analyticsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        analytics_ = value;
        onChanged();
      } else {
        analyticsBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Analytics analytics = 9;</code>
     */
    public Builder setAnalytics(
        org.wso2.choreo.connect.discovery.config.enforcer.Analytics.Builder builderForValue) {
      if (analyticsBuilder_ == null) {
        analytics_ = builderForValue.build();
        onChanged();
      } else {
        analyticsBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Analytics analytics = 9;</code>
     */
    public Builder mergeAnalytics(org.wso2.choreo.connect.discovery.config.enforcer.Analytics value) {
      if (analyticsBuilder_ == null) {
        if (analytics_ != null) {
          analytics_ =
            org.wso2.choreo.connect.discovery.config.enforcer.Analytics.newBuilder(analytics_).mergeFrom(value).buildPartial();
        } else {
          analytics_ = value;
        }
        onChanged();
      } else {
        analyticsBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Analytics analytics = 9;</code>
     */
    public Builder clearAnalytics() {
      if (analyticsBuilder_ == null) {
        analytics_ = null;
        onChanged();
      } else {
        analytics_ = null;
        analyticsBuilder_ = null;
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Analytics analytics = 9;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.Analytics.Builder getAnalyticsBuilder() {
      
      onChanged();
      return getAnalyticsFieldBuilder().getBuilder();
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Analytics analytics = 9;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.AnalyticsOrBuilder getAnalyticsOrBuilder() {
      if (analyticsBuilder_ != null) {
        return analyticsBuilder_.getMessageOrBuilder();
      } else {
        return analytics_ == null ?
            org.wso2.choreo.connect.discovery.config.enforcer.Analytics.getDefaultInstance() : analytics_;
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Analytics analytics = 9;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.Analytics, org.wso2.choreo.connect.discovery.config.enforcer.Analytics.Builder, org.wso2.choreo.connect.discovery.config.enforcer.AnalyticsOrBuilder> 
        getAnalyticsFieldBuilder() {
      if (analyticsBuilder_ == null) {
        analyticsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            org.wso2.choreo.connect.discovery.config.enforcer.Analytics, org.wso2.choreo.connect.discovery.config.enforcer.Analytics.Builder, org.wso2.choreo.connect.discovery.config.enforcer.AnalyticsOrBuilder>(
                getAnalytics(),
                getParentForChildren(),
                isClean());
        analytics_ = null;
      }
      return analyticsBuilder_;
    }

    private org.wso2.choreo.connect.discovery.config.enforcer.Management management_;
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.Management, org.wso2.choreo.connect.discovery.config.enforcer.Management.Builder, org.wso2.choreo.connect.discovery.config.enforcer.ManagementOrBuilder> managementBuilder_;
    /**
     * <code>.wso2.discovery.config.enforcer.Management management = 10;</code>
     * @return Whether the management field is set.
     */
    public boolean hasManagement() {
      return managementBuilder_ != null || management_ != null;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Management management = 10;</code>
     * @return The management.
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.Management getManagement() {
      if (managementBuilder_ == null) {
        return management_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.Management.getDefaultInstance() : management_;
      } else {
        return managementBuilder_.getMessage();
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Management management = 10;</code>
     */
    public Builder setManagement(org.wso2.choreo.connect.discovery.config.enforcer.Management value) {
      if (managementBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        management_ = value;
        onChanged();
      } else {
        managementBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Management management = 10;</code>
     */
    public Builder setManagement(
        org.wso2.choreo.connect.discovery.config.enforcer.Management.Builder builderForValue) {
      if (managementBuilder_ == null) {
        management_ = builderForValue.build();
        onChanged();
      } else {
        managementBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Management management = 10;</code>
     */
    public Builder mergeManagement(org.wso2.choreo.connect.discovery.config.enforcer.Management value) {
      if (managementBuilder_ == null) {
        if (management_ != null) {
          management_ =
            org.wso2.choreo.connect.discovery.config.enforcer.Management.newBuilder(management_).mergeFrom(value).buildPartial();
        } else {
          management_ = value;
        }
        onChanged();
      } else {
        managementBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Management management = 10;</code>
     */
    public Builder clearManagement() {
      if (managementBuilder_ == null) {
        management_ = null;
        onChanged();
      } else {
        management_ = null;
        managementBuilder_ = null;
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Management management = 10;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.Management.Builder getManagementBuilder() {
      
      onChanged();
      return getManagementFieldBuilder().getBuilder();
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Management management = 10;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.ManagementOrBuilder getManagementOrBuilder() {
      if (managementBuilder_ != null) {
        return managementBuilder_.getMessageOrBuilder();
      } else {
        return management_ == null ?
            org.wso2.choreo.connect.discovery.config.enforcer.Management.getDefaultInstance() : management_;
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Management management = 10;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.Management, org.wso2.choreo.connect.discovery.config.enforcer.Management.Builder, org.wso2.choreo.connect.discovery.config.enforcer.ManagementOrBuilder> 
        getManagementFieldBuilder() {
      if (managementBuilder_ == null) {
        managementBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            org.wso2.choreo.connect.discovery.config.enforcer.Management, org.wso2.choreo.connect.discovery.config.enforcer.Management.Builder, org.wso2.choreo.connect.discovery.config.enforcer.ManagementOrBuilder>(
                getManagement(),
                getParentForChildren(),
                isClean());
        management_ = null;
      }
      return managementBuilder_;
    }

    private org.wso2.choreo.connect.discovery.config.enforcer.RestServer restServer_;
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.RestServer, org.wso2.choreo.connect.discovery.config.enforcer.RestServer.Builder, org.wso2.choreo.connect.discovery.config.enforcer.RestServerOrBuilder> restServerBuilder_;
    /**
     * <code>.wso2.discovery.config.enforcer.RestServer restServer = 11;</code>
     * @return Whether the restServer field is set.
     */
    public boolean hasRestServer() {
      return restServerBuilder_ != null || restServer_ != null;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.RestServer restServer = 11;</code>
     * @return The restServer.
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.RestServer getRestServer() {
      if (restServerBuilder_ == null) {
        return restServer_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.RestServer.getDefaultInstance() : restServer_;
      } else {
        return restServerBuilder_.getMessage();
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.RestServer restServer = 11;</code>
     */
    public Builder setRestServer(org.wso2.choreo.connect.discovery.config.enforcer.RestServer value) {
      if (restServerBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        restServer_ = value;
        onChanged();
      } else {
        restServerBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.RestServer restServer = 11;</code>
     */
    public Builder setRestServer(
        org.wso2.choreo.connect.discovery.config.enforcer.RestServer.Builder builderForValue) {
      if (restServerBuilder_ == null) {
        restServer_ = builderForValue.build();
        onChanged();
      } else {
        restServerBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.RestServer restServer = 11;</code>
     */
    public Builder mergeRestServer(org.wso2.choreo.connect.discovery.config.enforcer.RestServer value) {
      if (restServerBuilder_ == null) {
        if (restServer_ != null) {
          restServer_ =
            org.wso2.choreo.connect.discovery.config.enforcer.RestServer.newBuilder(restServer_).mergeFrom(value).buildPartial();
        } else {
          restServer_ = value;
        }
        onChanged();
      } else {
        restServerBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.RestServer restServer = 11;</code>
     */
    public Builder clearRestServer() {
      if (restServerBuilder_ == null) {
        restServer_ = null;
        onChanged();
      } else {
        restServer_ = null;
        restServerBuilder_ = null;
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.RestServer restServer = 11;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.RestServer.Builder getRestServerBuilder() {
      
      onChanged();
      return getRestServerFieldBuilder().getBuilder();
    }
    /**
     * <code>.wso2.discovery.config.enforcer.RestServer restServer = 11;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.RestServerOrBuilder getRestServerOrBuilder() {
      if (restServerBuilder_ != null) {
        return restServerBuilder_.getMessageOrBuilder();
      } else {
        return restServer_ == null ?
            org.wso2.choreo.connect.discovery.config.enforcer.RestServer.getDefaultInstance() : restServer_;
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.RestServer restServer = 11;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.RestServer, org.wso2.choreo.connect.discovery.config.enforcer.RestServer.Builder, org.wso2.choreo.connect.discovery.config.enforcer.RestServerOrBuilder> 
        getRestServerFieldBuilder() {
      if (restServerBuilder_ == null) {
        restServerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            org.wso2.choreo.connect.discovery.config.enforcer.RestServer, org.wso2.choreo.connect.discovery.config.enforcer.RestServer.Builder, org.wso2.choreo.connect.discovery.config.enforcer.RestServerOrBuilder>(
                getRestServer(),
                getParentForChildren(),
                isClean());
        restServer_ = null;
      }
      return restServerBuilder_;
    }

    private org.wso2.choreo.connect.discovery.config.enforcer.Tracing tracing_;
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.Tracing, org.wso2.choreo.connect.discovery.config.enforcer.Tracing.Builder, org.wso2.choreo.connect.discovery.config.enforcer.TracingOrBuilder> tracingBuilder_;
    /**
     * <code>.wso2.discovery.config.enforcer.Tracing tracing = 12;</code>
     * @return Whether the tracing field is set.
     */
    public boolean hasTracing() {
      return tracingBuilder_ != null || tracing_ != null;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Tracing tracing = 12;</code>
     * @return The tracing.
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.Tracing getTracing() {
      if (tracingBuilder_ == null) {
        return tracing_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.Tracing.getDefaultInstance() : tracing_;
      } else {
        return tracingBuilder_.getMessage();
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Tracing tracing = 12;</code>
     */
    public Builder setTracing(org.wso2.choreo.connect.discovery.config.enforcer.Tracing value) {
      if (tracingBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        tracing_ = value;
        onChanged();
      } else {
        tracingBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Tracing tracing = 12;</code>
     */
    public Builder setTracing(
        org.wso2.choreo.connect.discovery.config.enforcer.Tracing.Builder builderForValue) {
      if (tracingBuilder_ == null) {
        tracing_ = builderForValue.build();
        onChanged();
      } else {
        tracingBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Tracing tracing = 12;</code>
     */
    public Builder mergeTracing(org.wso2.choreo.connect.discovery.config.enforcer.Tracing value) {
      if (tracingBuilder_ == null) {
        if (tracing_ != null) {
          tracing_ =
            org.wso2.choreo.connect.discovery.config.enforcer.Tracing.newBuilder(tracing_).mergeFrom(value).buildPartial();
        } else {
          tracing_ = value;
        }
        onChanged();
      } else {
        tracingBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Tracing tracing = 12;</code>
     */
    public Builder clearTracing() {
      if (tracingBuilder_ == null) {
        tracing_ = null;
        onChanged();
      } else {
        tracing_ = null;
        tracingBuilder_ = null;
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Tracing tracing = 12;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.Tracing.Builder getTracingBuilder() {
      
      onChanged();
      return getTracingFieldBuilder().getBuilder();
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Tracing tracing = 12;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.TracingOrBuilder getTracingOrBuilder() {
      if (tracingBuilder_ != null) {
        return tracingBuilder_.getMessageOrBuilder();
      } else {
        return tracing_ == null ?
            org.wso2.choreo.connect.discovery.config.enforcer.Tracing.getDefaultInstance() : tracing_;
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Tracing tracing = 12;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.Tracing, org.wso2.choreo.connect.discovery.config.enforcer.Tracing.Builder, org.wso2.choreo.connect.discovery.config.enforcer.TracingOrBuilder> 
        getTracingFieldBuilder() {
      if (tracingBuilder_ == null) {
        tracingBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            org.wso2.choreo.connect.discovery.config.enforcer.Tracing, org.wso2.choreo.connect.discovery.config.enforcer.Tracing.Builder, org.wso2.choreo.connect.discovery.config.enforcer.TracingOrBuilder>(
                getTracing(),
                getParentForChildren(),
                isClean());
        tracing_ = null;
      }
      return tracingBuilder_;
    }

    private org.wso2.choreo.connect.discovery.config.enforcer.Metrics metrics_;
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.Metrics, org.wso2.choreo.connect.discovery.config.enforcer.Metrics.Builder, org.wso2.choreo.connect.discovery.config.enforcer.MetricsOrBuilder> metricsBuilder_;
    /**
     * <code>.wso2.discovery.config.enforcer.Metrics metrics = 13;</code>
     * @return Whether the metrics field is set.
     */
    public boolean hasMetrics() {
      return metricsBuilder_ != null || metrics_ != null;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Metrics metrics = 13;</code>
     * @return The metrics.
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.Metrics getMetrics() {
      if (metricsBuilder_ == null) {
        return metrics_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.Metrics.getDefaultInstance() : metrics_;
      } else {
        return metricsBuilder_.getMessage();
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Metrics metrics = 13;</code>
     */
    public Builder setMetrics(org.wso2.choreo.connect.discovery.config.enforcer.Metrics value) {
      if (metricsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        metrics_ = value;
        onChanged();
      } else {
        metricsBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Metrics metrics = 13;</code>
     */
    public Builder setMetrics(
        org.wso2.choreo.connect.discovery.config.enforcer.Metrics.Builder builderForValue) {
      if (metricsBuilder_ == null) {
        metrics_ = builderForValue.build();
        onChanged();
      } else {
        metricsBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Metrics metrics = 13;</code>
     */
    public Builder mergeMetrics(org.wso2.choreo.connect.discovery.config.enforcer.Metrics value) {
      if (metricsBuilder_ == null) {
        if (metrics_ != null) {
          metrics_ =
            org.wso2.choreo.connect.discovery.config.enforcer.Metrics.newBuilder(metrics_).mergeFrom(value).buildPartial();
        } else {
          metrics_ = value;
        }
        onChanged();
      } else {
        metricsBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Metrics metrics = 13;</code>
     */
    public Builder clearMetrics() {
      if (metricsBuilder_ == null) {
        metrics_ = null;
        onChanged();
      } else {
        metrics_ = null;
        metricsBuilder_ = null;
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Metrics metrics = 13;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.Metrics.Builder getMetricsBuilder() {
      
      onChanged();
      return getMetricsFieldBuilder().getBuilder();
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Metrics metrics = 13;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.MetricsOrBuilder getMetricsOrBuilder() {
      if (metricsBuilder_ != null) {
        return metricsBuilder_.getMessageOrBuilder();
      } else {
        return metrics_ == null ?
            org.wso2.choreo.connect.discovery.config.enforcer.Metrics.getDefaultInstance() : metrics_;
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Metrics metrics = 13;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.Metrics, org.wso2.choreo.connect.discovery.config.enforcer.Metrics.Builder, org.wso2.choreo.connect.discovery.config.enforcer.MetricsOrBuilder> 
        getMetricsFieldBuilder() {
      if (metricsBuilder_ == null) {
        metricsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            org.wso2.choreo.connect.discovery.config.enforcer.Metrics, org.wso2.choreo.connect.discovery.config.enforcer.Metrics.Builder, org.wso2.choreo.connect.discovery.config.enforcer.MetricsOrBuilder>(
                getMetrics(),
                getParentForChildren(),
                isClean());
        metrics_ = null;
      }
      return metricsBuilder_;
    }

    private java.util.List<org.wso2.choreo.connect.discovery.config.enforcer.Filter> filters_ =
      java.util.Collections.emptyList();
    private void ensureFiltersIsMutable() {
      if (!((bitField0_ & 0x00000001) != 0)) {
        filters_ = new java.util.ArrayList<org.wso2.choreo.connect.discovery.config.enforcer.Filter>(filters_);
        bitField0_ |= 0x00000001;
       }
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.Filter, org.wso2.choreo.connect.discovery.config.enforcer.Filter.Builder, org.wso2.choreo.connect.discovery.config.enforcer.FilterOrBuilder> filtersBuilder_;

    /**
     * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
     */
    public java.util.List<org.wso2.choreo.connect.discovery.config.enforcer.Filter> getFiltersList() {
      if (filtersBuilder_ == null) {
        return java.util.Collections.unmodifiableList(filters_);
      } else {
        return filtersBuilder_.getMessageList();
      }
    }
    /**
     * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
     */
    public int getFiltersCount() {
      if (filtersBuilder_ == null) {
        return filters_.size();
      } else {
        return filtersBuilder_.getCount();
      }
    }
    /**
     * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.Filter getFilters(int index) {
      if (filtersBuilder_ == null) {
        return filters_.get(index);
      } else {
        return filtersBuilder_.getMessage(index);
      }
    }
    /**
     * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
     */
    public Builder setFilters(
        int index, org.wso2.choreo.connect.discovery.config.enforcer.Filter value) {
      if (filtersBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureFiltersIsMutable();
        filters_.set(index, value);
        onChanged();
      } else {
        filtersBuilder_.setMessage(index, value);
      }
      return this;
    }
    /**
     * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
     */
    public Builder setFilters(
        int index, org.wso2.choreo.connect.discovery.config.enforcer.Filter.Builder builderForValue) {
      if (filtersBuilder_ == null) {
        ensureFiltersIsMutable();
        filters_.set(index, builderForValue.build());
        onChanged();
      } else {
        filtersBuilder_.setMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
     */
    public Builder addFilters(org.wso2.choreo.connect.discovery.config.enforcer.Filter value) {
      if (filtersBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureFiltersIsMutable();
        filters_.add(value);
        onChanged();
      } else {
        filtersBuilder_.addMessage(value);
      }
      return this;
    }
    /**
     * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
     */
    public Builder addFilters(
        int index, org.wso2.choreo.connect.discovery.config.enforcer.Filter value) {
      if (filtersBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureFiltersIsMutable();
        filters_.add(index, value);
        onChanged();
      } else {
        filtersBuilder_.addMessage(index, value);
      }
      return this;
    }
    /**
     * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
     */
    public Builder addFilters(
        org.wso2.choreo.connect.discovery.config.enforcer.Filter.Builder builderForValue) {
      if (filtersBuilder_ == null) {
        ensureFiltersIsMutable();
        filters_.add(builderForValue.build());
        onChanged();
      } else {
        filtersBuilder_.addMessage(builderForValue.build());
      }
      return this;
    }
    /**
     * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
     */
    public Builder addFilters(
        int index, org.wso2.choreo.connect.discovery.config.enforcer.Filter.Builder builderForValue) {
      if (filtersBuilder_ == null) {
        ensureFiltersIsMutable();
        filters_.add(index, builderForValue.build());
        onChanged();
      } else {
        filtersBuilder_.addMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
     */
    public Builder addAllFilters(
        java.lang.Iterable<? extends org.wso2.choreo.connect.discovery.config.enforcer.Filter> values) {
      if (filtersBuilder_ == null) {
        ensureFiltersIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, filters_);
        onChanged();
      } else {
        filtersBuilder_.addAllMessages(values);
      }
      return this;
    }
    /**
     * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
     */
    public Builder clearFilters() {
      if (filtersBuilder_ == null) {
        filters_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
      } else {
        filtersBuilder_.clear();
      }
      return this;
    }
    /**
     * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
     */
    public Builder removeFilters(int index) {
      if (filtersBuilder_ == null) {
        ensureFiltersIsMutable();
        filters_.remove(index);
        onChanged();
      } else {
        filtersBuilder_.remove(index);
      }
      return this;
    }
    /**
     * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.Filter.Builder getFiltersBuilder(
        int index) {
      return getFiltersFieldBuilder().getBuilder(index);
    }
    /**
     * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.FilterOrBuilder getFiltersOrBuilder(
        int index) {
      if (filtersBuilder_ == null) {
        return filters_.get(index);  } else {
        return filtersBuilder_.getMessageOrBuilder(index);
      }
    }
    /**
     * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
     */
    public java.util.List<? extends org.wso2.choreo.connect.discovery.config.enforcer.FilterOrBuilder> 
         getFiltersOrBuilderList() {
      if (filtersBuilder_ != null) {
        return filtersBuilder_.getMessageOrBuilderList();
      } else {
        return java.util.Collections.unmodifiableList(filters_);
      }
    }
    /**
     * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.Filter.Builder addFiltersBuilder() {
      return getFiltersFieldBuilder().addBuilder(
          org.wso2.choreo.connect.discovery.config.enforcer.Filter.getDefaultInstance());
    }
    /**
     * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.Filter.Builder addFiltersBuilder(
        int index) {
      return getFiltersFieldBuilder().addBuilder(
          index, org.wso2.choreo.connect.discovery.config.enforcer.Filter.getDefaultInstance());
    }
    /**
     * <code>repeated .wso2.discovery.config.enforcer.Filter filters = 14;</code>
     */
    public java.util.List<org.wso2.choreo.connect.discovery.config.enforcer.Filter.Builder> 
         getFiltersBuilderList() {
      return getFiltersFieldBuilder().getBuilderList();
    }
    private com.google.protobuf.RepeatedFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.Filter, org.wso2.choreo.connect.discovery.config.enforcer.Filter.Builder, org.wso2.choreo.connect.discovery.config.enforcer.FilterOrBuilder> 
        getFiltersFieldBuilder() {
      if (filtersBuilder_ == null) {
        filtersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
            org.wso2.choreo.connect.discovery.config.enforcer.Filter, org.wso2.choreo.connect.discovery.config.enforcer.Filter.Builder, org.wso2.choreo.connect.discovery.config.enforcer.FilterOrBuilder>(
                filters_,
                ((bitField0_ & 0x00000001) != 0),
                getParentForChildren(),
                isClean());
        filters_ = null;
      }
      return filtersBuilder_;
    }

    private org.wso2.choreo.connect.discovery.config.enforcer.Soap soap_;
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.Soap, org.wso2.choreo.connect.discovery.config.enforcer.Soap.Builder, org.wso2.choreo.connect.discovery.config.enforcer.SoapOrBuilder> soapBuilder_;
    /**
     * <code>.wso2.discovery.config.enforcer.Soap soap = 15;</code>
     * @return Whether the soap field is set.
     */
    public boolean hasSoap() {
      return soapBuilder_ != null || soap_ != null;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Soap soap = 15;</code>
     * @return The soap.
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.Soap getSoap() {
      if (soapBuilder_ == null) {
        return soap_ == null ? org.wso2.choreo.connect.discovery.config.enforcer.Soap.getDefaultInstance() : soap_;
      } else {
        return soapBuilder_.getMessage();
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Soap soap = 15;</code>
     */
    public Builder setSoap(org.wso2.choreo.connect.discovery.config.enforcer.Soap value) {
      if (soapBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        soap_ = value;
        onChanged();
      } else {
        soapBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Soap soap = 15;</code>
     */
    public Builder setSoap(
        org.wso2.choreo.connect.discovery.config.enforcer.Soap.Builder builderForValue) {
      if (soapBuilder_ == null) {
        soap_ = builderForValue.build();
        onChanged();
      } else {
        soapBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Soap soap = 15;</code>
     */
    public Builder mergeSoap(org.wso2.choreo.connect.discovery.config.enforcer.Soap value) {
      if (soapBuilder_ == null) {
        if (soap_ != null) {
          soap_ =
            org.wso2.choreo.connect.discovery.config.enforcer.Soap.newBuilder(soap_).mergeFrom(value).buildPartial();
        } else {
          soap_ = value;
        }
        onChanged();
      } else {
        soapBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Soap soap = 15;</code>
     */
    public Builder clearSoap() {
      if (soapBuilder_ == null) {
        soap_ = null;
        onChanged();
      } else {
        soap_ = null;
        soapBuilder_ = null;
      }

      return this;
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Soap soap = 15;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.Soap.Builder getSoapBuilder() {
      
      onChanged();
      return getSoapFieldBuilder().getBuilder();
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Soap soap = 15;</code>
     */
    public org.wso2.choreo.connect.discovery.config.enforcer.SoapOrBuilder getSoapOrBuilder() {
      if (soapBuilder_ != null) {
        return soapBuilder_.getMessageOrBuilder();
      } else {
        return soap_ == null ?
            org.wso2.choreo.connect.discovery.config.enforcer.Soap.getDefaultInstance() : soap_;
      }
    }
    /**
     * <code>.wso2.discovery.config.enforcer.Soap soap = 15;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        org.wso2.choreo.connect.discovery.config.enforcer.Soap, org.wso2.choreo.connect.discovery.config.enforcer.Soap.Builder, org.wso2.choreo.connect.discovery.config.enforcer.SoapOrBuilder> 
        getSoapFieldBuilder() {
      if (soapBuilder_ == null) {
        soapBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            org.wso2.choreo.connect.discovery.config.enforcer.Soap, org.wso2.choreo.connect.discovery.config.enforcer.Soap.Builder, org.wso2.choreo.connect.discovery.config.enforcer.SoapOrBuilder>(
                getSoap(),
                getParentForChildren(),
                isClean());
        soap_ = null;
      }
      return soapBuilder_;
    }

    private boolean controlPlaneEnabled_ ;
    /**
     * <code>bool controlPlaneEnabled = 16;</code>
     * @return The controlPlaneEnabled.
     */
    @java.lang.Override
    public boolean getControlPlaneEnabled() {
      return controlPlaneEnabled_;
    }
    /**
     * <code>bool controlPlaneEnabled = 16;</code>
     * @param value The controlPlaneEnabled to set.
     * @return This builder for chaining.
     */
    public Builder setControlPlaneEnabled(boolean value) {
      
      controlPlaneEnabled_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>bool controlPlaneEnabled = 16;</code>
     * @return This builder for chaining.
     */
    public Builder clearControlPlaneEnabled() {
      
      controlPlaneEnabled_ = false;
      onChanged();
      return this;
    }
    @java.lang.Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFields(unknownFields);
    }

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


    // @@protoc_insertion_point(builder_scope:wso2.discovery.config.enforcer.Config)
  }

  // @@protoc_insertion_point(class_scope:wso2.discovery.config.enforcer.Config)
  private static final org.wso2.choreo.connect.discovery.config.enforcer.Config DEFAULT_INSTANCE;
  static {
    DEFAULT_INSTANCE = new org.wso2.choreo.connect.discovery.config.enforcer.Config();
  }

  public static org.wso2.choreo.connect.discovery.config.enforcer.Config getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<Config>
      PARSER = new com.google.protobuf.AbstractParser<Config>() {
    @java.lang.Override
    public Config parsePartialFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return new Config(input, extensionRegistry);
    }
  };

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

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

  @java.lang.Override
  public org.wso2.choreo.connect.discovery.config.enforcer.Config getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }

}

