In a prior environment, I also used filebeat and winlogbeat sent via logstash. I had the beat modules that use ingest pipelines using logstash. I don’t have the configs, but logstash output section checks to see if the pipeline name exists and if it does, passes that to logstash.
The negative is you must control the beats version in use and pre-load the pipelines before updating beats version.