public void MergeFrom(CommonExtensionConfig other)
        {
            if (other == null)
            {
                return;
            }
            switch (other.ConfigTypeCase)
            {
            case ConfigTypeOneofCase.AdminConfig:
                if (AdminConfig == null)
                {
                    AdminConfig = new global::Envoy.Config.Common.Tap.V2Alpha.AdminConfig();
                }
                AdminConfig.MergeFrom(other.AdminConfig);
                break;

            case ConfigTypeOneofCase.StaticConfig:
                if (StaticConfig == null)
                {
                    StaticConfig = new global::Envoy.Service.Tap.V2Alpha.TapConfig();
                }
                StaticConfig.MergeFrom(other.StaticConfig);
                break;

            case ConfigTypeOneofCase.TapdsConfig:
                if (TapdsConfig == null)
                {
                    TapdsConfig = new global::Envoy.Config.Common.Tap.V2Alpha.CommonExtensionConfig.Types.TapDSConfig();
                }
                TapdsConfig.MergeFrom(other.TapdsConfig);
                break;
            }

            _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }
        public override int GetHashCode()
        {
            int hash = 1;

            if (configTypeCase_ == ConfigTypeOneofCase.AdminConfig)
            {
                hash ^= AdminConfig.GetHashCode();
            }
            if (configTypeCase_ == ConfigTypeOneofCase.StaticConfig)
            {
                hash ^= StaticConfig.GetHashCode();
            }
            if (configTypeCase_ == ConfigTypeOneofCase.TapdsConfig)
            {
                hash ^= TapdsConfig.GetHashCode();
            }
            hash ^= (int)configTypeCase_;
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }