'save new configs, if necessary'

def save(self):

    app.logger.info('{}    deleted    {}    in    {}'.format(len(self.deleted_items), self.i_am_plural, self.accounts))
    app.logger.info('{}    created    {}    in    {}'.format(len(self.created_items), self.i_am_plural, self.accounts))
    for item in (self.created_items + self.deleted_items):
        item.save(self.datastore)
    if self.ephemerals_skipped():
        changed_locations = [item.location() for item in self.changed_items]
        new_item_revisions = [item for item in self.ephemeral_items if (item.location() in changed_locations)]
        app.logger.info('{}    changed    {}    in    {}'.format(len(new_item_revisions), self.i_am_plural, self.accounts))
        for item in new_item_revisions:
            item.save(self.datastore)
        edit_item_revisions = [item for item in self.ephemeral_items if (item.location() not in changed_locations)]
        app.logger.info('{}    ephemerally    changed    {}    in    {}'.format(len(edit_item_revisions), self.i_am_plural, self.accounts))
        for item in edit_item_revisions:
            item.save(self.datastore, ephemeral=True)
    else:
        app.logger.info('{}    changed    {}    in    {}'.format(len(self.changed_items), self.i_am_plural, self.accounts))
        for item in self.changed_items:
            item.save(self.datastore)
    report_watcher_changes(self)
