'Deserialize a Group from a json-like representation.
Args:
value: a dictionary with keys for the properties of the group.
Raises TypeError if the value doesn\'t have the right keys.'

@staticmethod
def from_json(value):

    if isinstance(value, Group):
        return value
    for key in ('id', 'name', 'version'):
        if (key not in value):
            raise TypeError("Group    dict    {0}    missing    value    key    '{1}'".format(value, key))
    if (value['version'] != Group.VERSION):
        raise TypeError('Group    dict    {0}    has    unexpected    version'.format(value))
    return Group(value['id'], value['name'])
