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 """