public void MergeFrom(ConfigSource other)
        {
            if (other == null)
            {
                return;
            }
            switch (other.ConfigSourceSpecifierCase)
            {
            case ConfigSourceSpecifierOneofCase.Path:
                Path = other.Path;
                break;

            case ConfigSourceSpecifierOneofCase.ApiConfigSource:
                if (ApiConfigSource == null)
                {
                    ApiConfigSource = new global::Envoy.Api.V2.Core.ApiConfigSource();
                }
                ApiConfigSource.MergeFrom(other.ApiConfigSource);
                break;

            case ConfigSourceSpecifierOneofCase.Ads:
                if (Ads == null)
                {
                    Ads = new global::Envoy.Api.V2.Core.AggregatedConfigSource();
                }
                Ads.MergeFrom(other.Ads);
                break;
            }

            _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: {
                    Path = input.ReadString();
                    break;
                }

                case 18: {
                    global::Envoy.Api.V2.Core.ApiConfigSource subBuilder = new global::Envoy.Api.V2.Core.ApiConfigSource();
                    if (configSourceSpecifierCase_ == ConfigSourceSpecifierOneofCase.ApiConfigSource)
                    {
                        subBuilder.MergeFrom(ApiConfigSource);
                    }
                    input.ReadMessage(subBuilder);
                    ApiConfigSource = subBuilder;
                    break;
                }

                case 26: {
                    global::Envoy.Api.V2.Core.AggregatedConfigSource subBuilder = new global::Envoy.Api.V2.Core.AggregatedConfigSource();
                    if (configSourceSpecifierCase_ == ConfigSourceSpecifierOneofCase.Ads)
                    {
                        subBuilder.MergeFrom(Ads);
                    }
                    input.ReadMessage(subBuilder);
                    Ads = subBuilder;
                    break;
                }

                case 34: {
                    if (initialFetchTimeout_ == null)
                    {
                        InitialFetchTimeout = new global::Google.Protobuf.WellKnownTypes.Duration();
                    }
                    input.ReadMessage(InitialFetchTimeout);
                    break;
                }
                }
            }
        }
        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: {
                    Path = input.ReadString();
                    break;
                }

                case 18: {
                    global::Envoy.Api.V2.Core.ApiConfigSource subBuilder = new global::Envoy.Api.V2.Core.ApiConfigSource();
                    if (configSourceSpecifierCase_ == ConfigSourceSpecifierOneofCase.ApiConfigSource)
                    {
                        subBuilder.MergeFrom(ApiConfigSource);
                    }
                    input.ReadMessage(subBuilder);
                    ApiConfigSource = subBuilder;
                    break;
                }

                case 26: {
                    global::Envoy.Api.V2.Core.AggregatedConfigSource subBuilder = new global::Envoy.Api.V2.Core.AggregatedConfigSource();
                    if (configSourceSpecifierCase_ == ConfigSourceSpecifierOneofCase.Ads)
                    {
                        subBuilder.MergeFrom(Ads);
                    }
                    input.ReadMessage(subBuilder);
                    Ads = subBuilder;
                    break;
                }
                }
            }
        }
        public void MergeFrom(ConfigSource other)
        {
            if (other == null)
            {
                return;
            }
            if (other.initialFetchTimeout_ != null)
            {
                if (initialFetchTimeout_ == null)
                {
                    InitialFetchTimeout = new global::Google.Protobuf.WellKnownTypes.Duration();
                }
                InitialFetchTimeout.MergeFrom(other.InitialFetchTimeout);
            }
            switch (other.ConfigSourceSpecifierCase)
            {
            case ConfigSourceSpecifierOneofCase.Path:
                Path = other.Path;
                break;

            case ConfigSourceSpecifierOneofCase.ApiConfigSource:
                if (ApiConfigSource == null)
                {
                    ApiConfigSource = new global::Envoy.Api.V2.Core.ApiConfigSource();
                }
                ApiConfigSource.MergeFrom(other.ApiConfigSource);
                break;

            case ConfigSourceSpecifierOneofCase.Ads:
                if (Ads == null)
                {
                    Ads = new global::Envoy.Api.V2.Core.AggregatedConfigSource();
                }
                Ads.MergeFrom(other.Ads);
                break;
            }

            _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }