def get_selected_resource_types(self):
        selected_resource_types = []
        selected_resource_types_str = setting_resource_selection.get_for_resource(DivvyPlugin.get_current_plugin())
        for resource_type_str in selected_resource_types_str:
            if not(resource_type_str in [cls.get_resource_type().lower() for cls in get_all_classes()]):
                logging.getLogger("DataExporter").error("%s is not a valid resources, skipping" % (resource_type_str))
                continue
            selected_resource_types.append(get_class_for_type(resource_type_str))

        return selected_resource_types
    category = 'Data Exporters'
    managed = False

# Prefix for settings and properties used by this plugin
_SETTING_PROPERTY_PREFIX = DivvyPlugin.get_current_plugin().name

# Global settings that are saved
_SETTING_RESOURCE_LIST            = '%s.export_list' % (_SETTING_PROPERTY_PREFIX)
_SETTING_ENABLED            = '%s.enabled' % (_SETTING_PROPERTY_PREFIX)

# Get the plugin resource id
_PLUGIN_RESOURCE_ID_STR = DivvyPlugin.get_current_plugin().get_resource_id().to_string()


# Define form elements for the plugin settings
resource_choices = [str(cls.get_resource_type()) for cls in get_all_classes() ]
setting_resource_selection = GlobalSetting(name=_SETTING_RESOURCE_LIST,display_name='Select Resources to export',type_hint='json_list',description='Select Resources to Export',choices=resource_choices)
setting_enabled = GlobalSetting(name=_SETTING_ENABLED,display_name='Enabled exporter',type_hint='bool',description='Enabled data exporter',default_value='false')


class ResourceExporter(PluginJob):
    def __init__(self):
        super(ResourceExporter, self).__init__()

    @EscalatePermissions()
    @SharedSessionScope(DivvyCloudGatewayORM)
    def get_selected_resource_types(self):
        """
        Only export resource types that have been configured via the UI
        """
        selected_resource_types = []