/etc/httpd/conf/httpd.conf*.conf in /etc/httpd/modules-enabled/, as well as all files in /etc/httpd/sites-enabled/. Additionally, it imports all files in /etc/httpd/configs.d/, which holds some of the default configuration you might normally find in /etc/httpd/conf/httpd.conf, but that can be shared amongst different hosts in your environment.
/etc/httpd/sites-enabled/webserver::virtualhost type provided by the webserver module), on a file per ServerName basis.
/etc/httpd/modules-enabled/webserver::module type provided with the webserver module), and uses the package name to both install the required packages, as well as source and place the configuration file for that module.
/etc/httpd/includes.d//etc/httpd/configs.d/conf.d/ directory. Because the only way to load these modules from a global configuration file is to Include conf.d/*.conf, the webserver module uses a differrent directory for configuration files managed by Puppet. Imagine the following scenario:
Listen 443 in listen.conf.
ssl.conf file in conf.d/. This file also contains Listen 443.
Listen 443 statement.
ssl.conf, because it does not have the same name as the package used to install mod_ssl with. There is also no sustainable way to tell Puppet to first apply everything in terms of package management, and then to purge conf.d/, because the webserver module for Puppet simply can't know what RPMs you do or do not want. And no, Puppet cannot require tagged resources from within another resource either.