Deprecated extension points and APIs

This version is out of date. For current versions, see Puppet packages and versions.

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.

See an issue? Please file a JIRA ticket in our [DOCUMENTATION] project
Puppet sites use proprietary and third-party cookies. By using our sites, you agree to our cookie policy.