Deprecated extension points and APIs


The following APIs and extension points are deprecated, and will be removed in Puppet 5.0.

Puppet Faces is a private API

(This isn’t actually a deprecation, since we don’t have a specific plan to remove the Faces APIs. But we needed a place to mention this on the record, and this section seems like the best long-term bet.)

The Puppet::Face and Puppet::Indirector::Face classes are private APIs, and we won’t be documenting or supporting them. Please don’t use them. If you want to develop CLI applications that use Puppet’s data, you should:

  • Pick a popular, well-maintained Ruby framework for CLI apps, like Thor or Commander.
  • Use Puppet’s public Ruby APIs to access its settings and data. See the developer documentation for comprehensive info about the classes and methods available for this.
  • Distribute your application as a Gem or native package, not as a Puppet module.
  • If you really want your command to be available as a puppet <NAME>-style subcommand, you can name it puppet-<NAME> and make sure it’s in your $PATH — there’s a secret feature that lets you leave out the hyphen.

Resource type and provider APIs

resource_types endpoint

As of Puppet 4.5, the resource_types API endpoint is deprecated in favor of Puppet Server’s environment_classes endpoint and will be removed in Puppet 5.0. Calls to the resource_types endpoint include a deprecation warning in the response.


This method on the top-level Puppet module was just a proxy for Puppet::Type.newtype. It will be removed in Puppet 5.0. Update any custom resource types to use Puppet::Type.newtype instead.

Miscellaneous APIs


This method currently does nothing, and will be removed in Puppet 5.0.

How helpful was this page?
Puppet sites use proprietary and third-party cookies. By using our sites, you agree to our cookie policy.