docs: def _get_scenarios(network_id, include_data, user_id, scenario_ids=None):
      """
          Get all the scenarios in a network
      """
      scen_qry = db.DBSession.query(Scenario).filter(
                      Scenario.network_id == network_id).options(
                          noload('network')).filter(
                          Scenario.status == 'A')
  
      if scenario_ids:
          logging.info("Filtering by scenario_ids %s",scenario_ids)
          scen_qry = scen_qry.filter(Scenario.id.in_(scenario_ids))
      extras = {'resourcescenarios': [], 'resourcegroupitems': []}
      scens = [JSONObject(s,extras=extras) for s in db.DBSession.execute(scen_qry.statement).fetchall()]
  
      all_resource_group_items = _get_all_group_items(network_id)
  
      if include_data == 'Y' or include_data == True:
          all_rs = _get_all_resourcescenarios(network_id, user_id)
          metadata = _get_metadata(network_id, user_id)
  
      for s in scens:
          s.resourcegroupitems = all_resource_group_items.get(s.id, [])
  
          if include_data == 'Y' or include_data == True:
              s.resourcescenarios  = all_rs.get(s.id, [])
  
              for rs in s.resourcescenarios:
                  rs.dataset.metadata = metadata.get(rs.dataset_id, {})
  
      return scens