class_docstr: Encapsulates a single alert and handles serializing to Dynamo and merging.
class_docstr_tok: ["Encapsulates","a","single","alert","and","handles","serializing","to","Dynamo","and","merging","."]
docstr: Return the set of outputs which still need to be sent for this alert.
docstr_tok: ["Return","the","set","of","outputs","which","still","need","to","be","sent","for","this","alert","."]
code: def remaining_outputs(self):
      """Return the set of outputs which still need to be sent for this alert."""
      if self.merge_enabled:
          # This alert will be merged later - for now, we care only about required outputs.
          outputs_to_send_now = self.outputs.intersection(
              resources.get_required_outputs()
          )
      else:
          outputs_to_send_now = self.outputs
      return outputs_to_send_now.difference(self.outputs_sent)
  
imports: from datetime import datetime, timedelta
  import json
  import uuid
  from streamalert.shared import resources, utils
label_desc: Use image node_id 7 for calling the Alert obj's underlying member method code with example usage: obj.remaining_outputs() and returns: outputs_to_send_now