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

            if (delay_ != null)
            {
                hash ^= Delay.GetHashCode();
            }
            if (abort_ != null)
            {
                hash ^= Abort.GetHashCode();
            }
            if (UpstreamCluster.Length != 0)
            {
                hash ^= UpstreamCluster.GetHashCode();
            }
            hash ^= headers_.GetHashCode();
            hash ^= downstreamNodes_.GetHashCode();
            if (maxActiveFaults_ != null)
            {
                hash ^= MaxActiveFaults.GetHashCode();
            }
            if (responseRateLimit_ != null)
            {
                hash ^= ResponseRateLimit.GetHashCode();
            }
            if (DelayPercentRuntime.Length != 0)
            {
                hash ^= DelayPercentRuntime.GetHashCode();
            }
            if (AbortPercentRuntime.Length != 0)
            {
                hash ^= AbortPercentRuntime.GetHashCode();
            }
            if (DelayDurationRuntime.Length != 0)
            {
                hash ^= DelayDurationRuntime.GetHashCode();
            }
            if (AbortHttpStatusRuntime.Length != 0)
            {
                hash ^= AbortHttpStatusRuntime.GetHashCode();
            }
            if (MaxActiveFaultsRuntime.Length != 0)
            {
                hash ^= MaxActiveFaultsRuntime.GetHashCode();
            }
            if (ResponseRateLimitPercentRuntime.Length != 0)
            {
                hash ^= ResponseRateLimitPercentRuntime.GetHashCode();
            }
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }