""" .. module: lemur.plugins.bases.notification :platform: Unix :copyright: (c) 2018 by Netflix Inc., see AUTHORS for more :license: Apache, see LICENSE for more details. .. moduleauthor:: Kevin Glisson """ from lemur.plugins.base import Plugin class NotificationPlugin(Plugin): """ This is the base class from which all of the supported issuers will inherit from. """ type = 'notification' def send(self, notification_type, message, targets, options, **kwargs): raise NotImplementedError class ExpirationNotificationPlugin(NotificationPlugin): """ This is the base class for all expiration notification plugins. It contains some default options that are needed for all expiration notification plugins. """ default_options = [ { 'name': 'interval', 'type': 'int', 'required': True, 'validation': '^\d+$', 'helpMessage': 'Number of days to be alert before expiration.', }, { 'name': 'unit', 'type': 'select', 'required': True, 'validation': '', 'available': ['days', 'weeks', 'months'], 'helpMessage': 'Interval unit', } ] @property def options(self): return self.default_options + self.additional_options def send(self, notification_type, message, targets, options, **kwargs): raise NotImplementedError