Puppet::ResourceApi TravisCI Build Status Appveyor Build status codecov

This is an implementation of the Resource API specification.

Find a working example of a new-style providers in the Palo Alto Firewall module:

Find the full Resource API documentation here


The puppet-resource_api gem is part of the Puppet 6 Platform. With older versions of Puppet, you can use the puppetlabs-resource_api module to install the gem on your servers and agents.


We are always welcoming bug reports and pull requests on the Resource API, so that we can continue to improve it to the best of our ability. If you would like to contribute, have a look at our GitHub and the Resource API Backlog.

Known Issues

There are still a few notable gaps between the implementation and the specification:

  • Only a single runtime environment (the Puppet commands) is currently implemented.

Restrictions of puppet:

  • supports_noop is not effective, as puppet doesn't call into the type under noop at all.
  • Attributes cannot be called title, provider, or any of the metaparameters, as those are reserved by puppet itself.

Future possibilities: