Submit `object_query` to MemberSuite, returning
    .models.MemberSuiteObjects.

    So this is a converter from MSQL to .models.MemberSuiteObjects.

    Returns query results as a list of MemberSuiteObjects.

def submit_msql_object_query(object_query, client=None):
    """Submit `object_query` to MemberSuite, returning
    .models.MemberSuiteObjects.

    So this is a converter from MSQL to .models.MemberSuiteObjects.

    Returns query results as a list of MemberSuiteObjects.

    """
    client = client or get_new_client()
    if not client.session_id:
        client.request_session()

    result = client.execute_object_query(object_query)
    execute_msql_result = result["body"]["ExecuteMSQLResult"]

    membersuite_object_list = []

    if execute_msql_result["Success"]:

        result_value = execute_msql_result["ResultValue"]

        if result_value["ObjectSearchResult"]["Objects"]:
            # Multiple results.
            membersuite_object_list = []
            for obj in (result_value["ObjectSearchResult"]["Objects"]
                        ["MemberSuiteObject"]):
                membersuite_object = membersuite_object_factory(obj)
                membersuite_object_list.append(membersuite_object)
        elif result_value["SingleObject"]["ClassType"]:
            # Only one result.
            membersuite_object = membersuite_object_factory(
                execute_msql_result["ResultValue"]["SingleObject"])
            membersuite_object_list.append(membersuite_object)
        elif (result_value["ObjectSearchResult"]["Objects"] is None and
              result_value["SingleObject"]["ClassType"] is None):
            raise NoResultsError(result=execute_msql_result)

        return membersuite_object_list

    else:
        # @TODO Fix - exposing only the first of possibly many errors here.
        raise ExecuteMSQLError(result=execute_msql_result)