{"id":15022662,"url":"https://github.com/puppetlabs/puppet-resource_api","last_synced_at":"2025-04-08T00:36:12.092Z","repository":{"id":24648188,"uuid":"101997158","full_name":"puppetlabs/puppet-resource_api","owner":"puppetlabs","description":"This library provides a simple way to write new native resources for https://puppet.com.","archived":false,"fork":false,"pushed_at":"2025-03-14T09:57:06.000Z","size":1259,"stargazers_count":27,"open_issues_count":44,"forks_count":42,"subscribers_count":102,"default_branch":"main","last_synced_at":"2025-03-31T23:33:44.510Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/puppetlabs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-31T12:11:51.000Z","updated_at":"2025-03-14T09:50:38.000Z","dependencies_parsed_at":"2023-12-19T14:26:24.827Z","dependency_job_id":"45b499b8-2aa2-4a88-abb1-0c7e59218c43","html_url":"https://github.com/puppetlabs/puppet-resource_api","commit_stats":{"total_commits":584,"total_committers":42,"mean_commits":"13.904761904761905","dds":"0.42808219178082196","last_synced_commit":"29f141c12481f69b7b62a336820d630761a7cbd3"},"previous_names":[],"tags_count":45,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puppetlabs%2Fpuppet-resource_api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puppetlabs%2Fpuppet-resource_api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puppetlabs%2Fpuppet-resource_api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puppetlabs%2Fpuppet-resource_api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/puppetlabs","download_url":"https://codeload.github.com/puppetlabs/puppet-resource_api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247755560,"owners_count":20990620,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-24T19:58:14.891Z","updated_at":"2025-04-08T00:36:12.065Z","avatar_url":"https://github.com/puppetlabs.png","language":"Ruby","funding_links":[],"categories":["References"],"sub_categories":[],"readme":"# Puppet::ResourceApi [![codecov](https://codecov.io/gh/puppetlabs/puppet-resource_api/branch/main/graph/badge.svg)](https://codecov.io/gh/puppetlabs/puppet-resource_api)\n\nThis is an implementation of the [Resource API specification](https://github.com/puppetlabs/puppet-specifications/blob/master/language/resource-api/README.md).\n\nFind a working example of a new-style providers in the [Palo Alto Firewall module](https://github.com/puppetlabs/puppetlabs-panos/):\n* [Type](https://github.com/puppetlabs/puppetlabs-panos/blob/main/lib/puppet/type/panos_address.rb)\n* [Base provider](https://github.com/puppetlabs/puppetlabs-panos/blob/main/lib/puppet/provider/panos_provider.rb)\n* [Actual provider with validation and xml processing](https://github.com/puppetlabs/puppetlabs-panos/blob/main/lib/puppet/provider/panos_address/panos_address.rb)\n* [New unit tests](https://github.com/puppetlabs/puppetlabs-panos/blob/main/spec/unit/puppet/provider/panos_provider_spec.rb) for 100% coverage.\n\n## [Find the full Resource API documentation here](https://puppet.com/docs/puppet/latest/custom_resources.html)\n\n## Related Documents\n\n* The [Resource API specs](https://github.com/puppetlabs/puppet-specifications/blob/master/language/resource-api/README.md) describes details of all the capabilities of this gem.\n* The [puppetlabs-hue module](https://github.com/puppetlabs/puppetlabs-hue) is a very simple example for using the Resource API for remote resources.\n* The [meraki module](https://github.com/meraki/puppet-module) is a full example for using the Resource API for remote resources.\n* This [Introduction to Testing Puppet Modules](https://www.youtube.com/watch?v=GgNrxLfoDF8) talk describes rspec usage in more detail.\n* The [RSpec docs](https://rspec.info/documentation/) provide an overview of the capabilities of rspec.\n* Read [betterspecs](http://www.betterspecs.org/) for general guidelines on what is considered good specs.\n\n\n## Deployment\n\nThe `puppet-resource_api` gem is part of Puppet from version 6 onward.\n\n\n## Contributing\nWe welcome 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](https://github.com/puppetlabs/puppet-resource_api) and the [Resource API Backlog](https://github.com/puppetlabs/puppet-resource_api/projects/1).\n\n\n## Known Issues\n\nThere are still a few notable gaps between the implementation and the specification:\n* Only a single runtime environment (the Puppet commands) is currently implemented.\n\nRestrictions of puppet:\n* `supports_noop` is not effective, as puppet doesn't call into the type under noop at all.\n* Attributes cannot be called `title`, `provider`, or any of the [metaparameters](https://puppet.com/docs/puppet/5.5/metaparameter.html), as those are reserved by puppet itself.\n\nFuture possibilities:\n* [Multiple Providers](https://tickets.puppetlabs.com/browse/PDK-530)\n* [Commands API](https://tickets.puppetlabs.com/browse/PDK-847)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpuppetlabs%2Fpuppet-resource_api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpuppetlabs%2Fpuppet-resource_api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpuppetlabs%2Fpuppet-resource_api/lists"}