from abc import ABCMeta, abstractmethod from collections import namedtuple from six import add_metaclass class GlobalMessage( namedtuple('GlobalMessage', [ 'uuid', 'content', 'severity', 'media_type_name', ])): def to_dict(self): return { 'uuid': self.uuid, 'content': self.content, 'severity': self.severity, 'media_type': self.media_type_name, } @add_metaclass(ABCMeta) class GlobalMessageDataInterface(object): """ Data interface for globalmessages API """ @abstractmethod def get_all_messages(self): """ Returns: list(GlobalMessage) """ @abstractmethod def create_message(self, severity, media_type_name, content): """ Returns: GlobalMessage or None """ @abstractmethod def delete_message(self, uuid): """ Returns: void """