def is_valid_resource_representation(resource, create=False):
    """
    Checks if resource is a valid *resource object* or *resource identifier*.

    Only checks the member properties, **not** the values assigned to
    the properties.

    Args:
        resource: The resource object checked
        create: If set to ``True``, denotes the resource is part of a
            create operation, which means the ``id`` members is not required
            as it may be generated by the server.

    Returns
        bool: ``True`` if it follows the JSON API resource format.
            ``False`` otherwise.
    """
    if create:
        return True if 'type' in resource else False
    else:
        members = 'id', 'type'
        for member in members:
            if member not in resource:
                return False
        return True
