class_docstr: Class to retrieve IOCs from ThreatStream.com and store them in DynamoDB
docstr: Convert expiration time (in UTC) to epoch time
  Args:
      time_str (str): expiration time in string format
          Example: '2017-12-19T04:45:18.412Z'
      days (int): default expiration days which 90 days from now
  
  Returns:
      (int): Epoch time. If no expiration time presented, return to
          default value which is current time + 90 days.
docstr_tok: ["Convert","expiration","time","(","in","UTC",")","to","epoch","time","Args",":","time_str","(","str",")",":","expiration","time","in","string","format","Example",":","'2017-12-19T04:45:18.412Z'","days","(","int",")",":","default","expiration","days","which","90","days","from","now","Returns",":","(","int",")",":","Epoch","time",".","If","no","expiration","time","presented",",","return","to","default","value","which","is","current","time","+","90","days","."]
code: def _epoch_time(time_str, days=90):
      """Convert expiration time (in UTC) to epoch time
      Args:
          time_str (str): expiration time in string format
              Example: '2017-12-19T04:45:18.412Z'
          days (int): default expiration days which 90 days from now
  
      Returns:
          (int): Epoch time. If no expiration time presented, return to
              default value which is current time + 90 days.
      """
      if not time_str:
          return int(
              (
                  datetime.utcnow()
                  + timedelta(days)
                  - datetime.utcfromtimestamp(0)
              ).total_seconds()
          )
  
      try:
          utc_time = datetime.strptime(
              time_str, "%Y-%m-%dT%H:%M:%S.%fZ"
          )
          return int(
              (utc_time - datetime.utcfromtimestamp(0)).total_seconds()
          )
      except ValueError:
          LOGGER.error(
              "Cannot convert expiration date '%s' to epoch time",
              time_str,
          )
          raise
  
imports: from datetime import datetime, timedelta
  import json
  import backoff
  import boto3
  from botocore.exceptions import ClientError
  import requests
  from streamalert.shared.backoff_handlers import backoff_handler, success_handler, giveup_handler
  from streamalert.shared.config import load_config, parse_lambda_arn
  from streamalert.shared.logger import get_logger
  from streamalert.threat_intel_downloader.exceptions import ThreatStreamCredsError, ThreatStreamLambdaInvokeError, ThreatStreamRequestsError
label_desc: Use image node_id 7 for calling the ThreatStream obj's underlying member method code with example usage: obj._epoch_time(time_str, days) and returns: int, int