public void MergeFrom(Rule other)
 {
     if (other == null)
     {
         return;
     }
     if (other.Header.Length != 0)
     {
         Header = other.Header;
     }
     if (other.onHeaderPresent_ != null)
     {
         if (onHeaderPresent_ == null)
         {
             OnHeaderPresent = new global::Envoy.Config.Filter.Http.HeaderToMetadata.V3Alpha.Config.Types.KeyValuePair();
         }
         OnHeaderPresent.MergeFrom(other.OnHeaderPresent);
     }
     if (other.onHeaderMissing_ != null)
     {
         if (onHeaderMissing_ == null)
         {
             OnHeaderMissing = new global::Envoy.Config.Filter.Http.HeaderToMetadata.V3Alpha.Config.Types.KeyValuePair();
         }
         OnHeaderMissing.MergeFrom(other.OnHeaderMissing);
     }
     if (other.Remove != false)
     {
         Remove = other.Remove;
     }
     _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 }
                public void MergeFrom(pb::CodedInputStream input)
                {
                    uint tag;

                    while ((tag = input.ReadTag()) != 0)
                    {
                        switch (tag)
                        {
                        default:
                            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                            break;

                        case 10: {
                            Header = input.ReadString();
                            break;
                        }

                        case 18: {
                            if (onHeaderPresent_ == null)
                            {
                                OnHeaderPresent = new global::Envoy.Config.Filter.Http.HeaderToMetadata.V3Alpha.Config.Types.KeyValuePair();
                            }
                            input.ReadMessage(OnHeaderPresent);
                            break;
                        }

                        case 26: {
                            if (onHeaderMissing_ == null)
                            {
                                OnHeaderMissing = new global::Envoy.Config.Filter.Http.HeaderToMetadata.V3Alpha.Config.Types.KeyValuePair();
                            }
                            input.ReadMessage(OnHeaderMissing);
                            break;
                        }

                        case 32: {
                            Remove = input.ReadBool();
                            break;
                        }
                        }
                    }
                }