salt/states/pagerduty_user.py
# -*- coding: utf-8 -*-
'''
Manage PagerDuty users.
Example:
.. code-block:: yaml
ensure bruce test user 1:
pagerduty.user_present:
- name: 'Bruce TestUser1'
- email: bruce+test1@lyft.com
- requester_id: P1GV5NT
'''
# Import Python libs
from __future__ import absolute_import, print_function, unicode_literals
def __virtual__():
'''
Only load if the pygerduty module is available in __salt__
'''
return 'pagerduty_user' if 'pagerduty_util.get_resource' in __salt__ else False
def present(profile='pagerduty', subdomain=None, api_key=None, **kwargs):
'''
Ensure pagerduty user exists.
Arguments match those supported by
https://developer.pagerduty.com/documentation/rest/users/create.
'''
return __salt__['pagerduty_util.resource_present']('users',
['email', 'name', 'id'],
None,
profile,
subdomain,
api_key,
**kwargs)
def absent(profile='pagerduty', subdomain=None, api_key=None, **kwargs):
'''
Ensure pagerduty user does not exist.
Name can be pagerduty id, email address, or user name.
'''
return __salt__['pagerduty_util.resource_absent']('users',
['email', 'name', 'id'],
profile,
subdomain,
api_key,
**kwargs)