{"id":26414103,"url":"https://github.com/cwells/puppet-pingdom","last_synced_at":"2026-05-20T19:09:34.640Z","repository":{"id":57668209,"uuid":"109346279","full_name":"cwells/puppet-pingdom","owner":"cwells","description":"Puppet type and provider for the Pingdom API.","archived":false,"fork":false,"pushed_at":"2018-02-16T21:33:01.000Z","size":441,"stargazers_count":0,"open_issues_count":6,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-17T06:35:55.457Z","etag":null,"topics":["pingdom","pingdom-api","puppet","ruby"],"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/cwells.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-11-03T03:10:15.000Z","updated_at":"2018-02-26T23:04:19.000Z","dependencies_parsed_at":"2022-09-07T15:41:47.656Z","dependency_job_id":null,"html_url":"https://github.com/cwells/puppet-pingdom","commit_stats":null,"previous_names":[],"tags_count":39,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cwells%2Fpuppet-pingdom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cwells%2Fpuppet-pingdom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cwells%2Fpuppet-pingdom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cwells%2Fpuppet-pingdom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cwells","download_url":"https://codeload.github.com/cwells/puppet-pingdom/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244058570,"owners_count":20391125,"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":["pingdom","pingdom-api","puppet","ruby"],"created_at":"2025-03-17T23:57:51.344Z","updated_at":"2026-05-20T19:09:29.618Z","avatar_url":"https://github.com/cwells.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# puppet-pingdom \u003cimg align=\"right\" src=\"https://my.pingdom.com/images/pingdom.svg\" /\u003e\nPuppet type and provider for the Pingdom API.\n\n#### Status\nCurrently supports the [Pingdom 2.1 API](http://www.pingdom.com/resources/api/2.1).\n\nThis module has no external dependencies, and should be widely-compatible and simple to install.\n\nPlease consider helping by submitting [bug reports](https://github.com/cwells/puppet-pingdom/issues). Pull requests also welcome.\n\n---\n\n#### Types\n[`pingdom_check`][pingdom_check_properties] [`pingdom_user`][pingdom_user_properties] [`pingdom_team`][pingdom_team_properties] \u003csup\u003e[1]\u003c/sup\u003e [`pingdom_settings`][pingdom_settings_properties]\n\n\u003csup\u003e[1]\u003c/sup\u003e Multi-user accounts only.\n\n#### Check providers\n`dns` `http` `httpcustom` `imap` `ping` `pop3` `smtp` `tcp` `udp`\n\n---\n\n#### Example usage\n###### Defaults:\n```puppet\nPingdom_team {\n    account_email =\u003e Sensitive($pingdom_account_email),\n    user_email    =\u003e Sensitive($pingdom_user_email),\n    password      =\u003e Sensitive($pingdom_password),\n    appkey        =\u003e $pingdom_appkey\n}\n\nPingdom_user {\n    account_email =\u003e Sensitive($pingdom_account_email),\n    user_email    =\u003e Sensitive($pingdom_user_email),\n    password      =\u003e Sensitive($pingdom_password),\n    appkey        =\u003e $pingdom_appkey\n}\n\nPingdom_check {\n    account_email =\u003e Sensitive($pingdom_account_email),\n    user_email    =\u003e Sensitive($pingdom_user_email),\n    password      =\u003e Sensitive($pingdom_password),\n    appkey        =\u003e $pingdom_appkey,\n    probe_filters =\u003e ['NA']\n}\n```\n\n###### Contacts:\n```puppet\npingdom_user { 'Steve Smith':\n    ensure          =\u003e present,\n    contact_targets =\u003e [\n        { email  =\u003e 'ssmith@domain.com' },\n        { number =\u003e '555-123-1212', countrycode =\u003e '1' }\n    ]\n}\n\npingdom_user { 'DevOps Pager':\n    ensure          =\u003e present,\n    contact_targets =\u003e [\n        { number =\u003e '555-123-1213', countrycode =\u003e '1' }\n    ]\n}\n```\n\n###### Teams:\n```puppet\npingdom_team { 'DevOps':\n    ensure =\u003e present,\n    users  =\u003e [\n        'Steve Smith',\n        'DevOps Pager'\n    ]\n}\n```\n\n###### HTTP check:\n```puppet\npingdom_check { \"http://${facts['fqdn']}/check\":\n    ensure         =\u003e present,\n    provider       =\u003e 'http',\n    host           =\u003e $facts['fqdn'],\n    url            =\u003e '/check',\n    auth           =\u003e Sensitive(\"admin:p@ssw0rd\"),\n    resolution     =\u003e 5,\n    requestheaders =\u003e {\n        'Accept' =\u003e 'x-application/json'\n    },\n    postdata =\u003e Sensitive({\n        'api_key'  =\u003e 'abcdef1234567890abcdef1234567890',\n        'api_user' =\u003e 'automation'\n    }),\n    teams          =\u003e ['DevOps'],\n    tags           =\u003e ['http']\n}\n```\n\n###### DNS check:\n```puppet\npingdom_check { \"dns://${facts['fqdn']}\":\n    ensure     =\u003e present,\n    provider   =\u003e 'dns',\n    host       =\u003e $facts['fqdn'],\n    expectedip =\u003e '1.2.3.4',\n    nameserver =\u003e '8.8.8.8',\n    users      =\u003e ['DevOps Pager'],\n    tags       =\u003e ['dns']\n}\n```\n\n###### Ping check:\n```puppet\npingdom_check { \"ping://${facts['fqdn']}\":\n    ensure   =\u003e present,\n    provider =\u003e 'ping',\n    host     =\u003e $facts['fqdn'],\n    tags     =\u003e ['ping']\n}\n```\n\n###### Settings:\n```puppet\npingdom_settings { 'Pingdom Settings':\n    firstname   =\u003e 'Brad',\n    lastname    =\u003e 'Brown',\n    company     =\u003e 'Company, Inc.',\n    email       =\u003e 'bbrown@company.com',\n    cellphone   =\u003e '555-123-3333',\n    description =\u003e 'This account is managed by Puppet.'\n}\n```\n\n###### Hiera:\n\n```yaml\npingdom::account_email: support@company.com\npingdom::user_email: puppet@company.com\npingdom::password: ENC[PKCS7,EYAMLENCODEDPASSWORD]\npingdom::appkey: ABCDEF1234567890FEDCBA\n\npingdom::settings:\n  'Pingdom Settings':\n    firstname: Brad\n    lastname: Brown\n    company: Company, Inc.\n    email: bbrown@company.com\n    cellphone: 555-123-3333\n    description: This account is managed by Puppet.\n\npingdom::users:\n  'Steve Smith':\n    contact_targets:\n    - email: devops@company.com\n    - number: 555-123-1234\n      countrycode: 1\n\n  'DevOps Pager':\n    contact_targets:\n    - number: 555-123-3214\n      countrycode: 1\n\npingdom::teams:\n  'DevOps':\n    users:\n    - Steve Smith\n    - DevOps Pager\n\npingdom::checks:\n  \"http://%{facts.fqdn}/status\":\n    provider: http\n    host: \"%{facts.fqdn}\"\n    url: /status\n    teams:\n    - DevOps\n    tags:\n    - http\n\n  \"ping://%{facts.fqdn}\":\n    provider: ping\n    host: \"%{facts.fqdn}\"\n    users:\n    - DevOps Pager\n    tags:\n    - ping\n```\n\nAfter configuring Hiera, simply `include pingdom` in your manifest:\n\n```puppet\nclass myclass {\n    include pingdom\n}\n```\n\n---\n\n#### Installation\nSee instructions on [PuppetForge](https://forge.puppet.com/cwells/pingdom/readme).\n\n---\n\n#### Attention\nThis module utilizes a feature named `autofilter` [default: `true`]. Be aware that this feature will automatically tag your checks with a shortened SHA1 hash of the check's `name` property, and automatically set `filter_tags` to include this tag. This allows us to efficiently locate this check in the future. However, if you have existing checks, enabling `autofilter` will cause them to no longer be found (since they lack the requisite SHA1 tag in `filter_tags`).\n\nTo get around this, and have your existing checks tagged, set `autofilter =\u003e 'bootstrap'` and run Puppet on all your nodes. This will enable tagging, but not set `filter_tags`. If you have a lot of existing checks, this may be a slow Puppet run. Once the run has completed, set `autofilter =\u003e true` or simply remove the parameter altogether.\n\n---\n\n#### Known issues\n- `puppet resource pingdom_check` command will likely never work, since `self.instances` is a class method and doesn't have access to instantiation-time parameters such as credentials.\n- Users API is incomplete (can only manage contacts, not admins).\n- There's a difference in login requirements for _Starter_ and _Standard_ plans (specifically, these two levels lack multi-user login). I'm currently only able to test against _Enterprise_. If you have a _Starter_ or _Standard_ plan and have issues authenticating to Pingdom, reach out to me and we can get it working.\n- The Integrations API isn't documented, so we can't manage integrations yet.\n\n[pingdom_check_properties]: https://github.com/cwells/puppet-pingdom/wiki/Check-properties\n[pingdom_user_properties]: https://github.com/cwells/puppet-pingdom/wiki/User-properties\n[pingdom_team_properties]: https://github.com/cwells/puppet-pingdom/wiki/Team-properties\n[pingdom_settings_properties]: https://github.com/cwells/puppet-pingdom/wiki/Settings-properties\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcwells%2Fpuppet-pingdom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcwells%2Fpuppet-pingdom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcwells%2Fpuppet-pingdom/lists"}