class_docstr: Provides convenience methods for accessing and modifying the alerts table.
docstr: Mark a specific alert as dispatched (in progress).
  
  Args:
      alert (Alert): Alert instance which has just been sent to the alert processor
docstr_tok: ["Mark","a","specific","alert","as","dispatched","(","in","progress",")",".","Args",":","alert","(","Alert",")",":","Alert","instance","which","has","just","been","sent","to","the","alert","processor"]
code: def mark_as_dispatched(self, alert):
      """Mark a specific alert as dispatched (in progress).
  
      Args:
          alert (Alert): Alert instance which has just been sent to the alert processor
      """
      # Update the alerts table with the dispatch time, but only if the alert still exists.
      # (The alert processor could have deleted the alert before this table update finishes).
      self._table.update_item(
          Key=alert.dynamo_key,
          UpdateExpression="SET Attempts = :attempts, Dispatched = :dispatched",
          ExpressionAttributeValues={
              ":attempts": alert.attempts,
              ":dispatched": alert.dispatched.strftime(
                  Alert.DATETIME_FORMAT
              ),
          },
          ConditionExpression="attribute_exists(AlertID)",
      )
  
file_path: streamalert/streamalert/shared/alert_table.py
imports: from datetime import datetime, timedelta
  import boto3
  from boto3.dynamodb.conditions import Attr, Key
  from streamalert.shared.alert import Alert
  from streamalert.shared.helpers.dynamodb import ignore_conditional_failure
label_desc: Use image node_id 8 for calling the AlertTable obj's underlying member method code with example usage: obj.mark_as_dispatched(alert) without return types