@classmethod
def is_equal(cls, requested_flow, flow_from_server):
    """Return True if a RequestedFlow is equal to an existing flow from BusinessFlow.

        For each source, destination, user, network_application and service check if that it is equal to
        the flow's relevant attribute.
        If all of the above are true, it means that the requested flow equals to the existing one.

        Args:
            requested_flow (algosec.models.RequestedFlow): The new flow to check if included in the existing flow.
            flow_from_server (dict): The existing flow from BusinessFlow.

        Returns:
            bool:  True if the requested flow is equal to the existing flow.
        """
    return all([cls._are_sources_equal_in_flow(requested_flow.sources,
        flow_from_server['sources']), cls._are_destinations_equal_in_flow(
        requested_flow.destinations, flow_from_server['destinations']), cls
        ._are_network_services_equal_in_flow(requested_flow.
        network_services, flow_from_server['services']), cls.
        _are_network_applications_equal_in_flow(requested_flow.
        network_applications, flow_from_server.get('networkApplications', [
        ])), cls._are_network_users_equal_in_flow(requested_flow.
        network_users, flow_from_server.get('networkUsers', []))])
