public override int GetHashCode()
        {
            int hash = 1;

            if (ApiType != global::Envoy.Api.V2.Core.ApiConfigSource.Types.ApiType.UnsupportedRestLegacy)
            {
                hash ^= ApiType.GetHashCode();
            }
            hash ^= clusterNames_.GetHashCode();
            hash ^= grpcServices_.GetHashCode();
            if (refreshDelay_ != null)
            {
                hash ^= RefreshDelay.GetHashCode();
            }
            if (requestTimeout_ != null)
            {
                hash ^= RequestTimeout.GetHashCode();
            }
            if (rateLimitSettings_ != null)
            {
                hash ^= RateLimitSettings.GetHashCode();
            }
            if (SetNodeOnFirstMessageOnly != false)
            {
                hash ^= SetNodeOnFirstMessageOnly.GetHashCode();
            }
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }
 public void MergeFrom(ApiConfigSource other)
 {
     if (other == null)
     {
         return;
     }
     if (other.ApiType != global::Envoy.Api.V2.Core.ApiConfigSource.Types.ApiType.UnsupportedRestLegacy)
     {
         ApiType = other.ApiType;
     }
     clusterNames_.Add(other.clusterNames_);
     grpcServices_.Add(other.grpcServices_);
     if (other.refreshDelay_ != null)
     {
         if (refreshDelay_ == null)
         {
             RefreshDelay = new global::Google.Protobuf.WellKnownTypes.Duration();
         }
         RefreshDelay.MergeFrom(other.RefreshDelay);
     }
     if (other.requestTimeout_ != null)
     {
         if (requestTimeout_ == null)
         {
             RequestTimeout = new global::Google.Protobuf.WellKnownTypes.Duration();
         }
         RequestTimeout.MergeFrom(other.RequestTimeout);
     }
     if (other.rateLimitSettings_ != null)
     {
         if (rateLimitSettings_ == null)
         {
             RateLimitSettings = new global::Envoy.Api.V2.Core.RateLimitSettings();
         }
         RateLimitSettings.MergeFrom(other.RateLimitSettings);
     }
     if (other.SetNodeOnFirstMessageOnly != false)
     {
         SetNodeOnFirstMessageOnly = other.SetNodeOnFirstMessageOnly;
     }
     _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 }