class_docstr: High throughput Alert delivery to AWS S3
class_docstr_tok: ["High","throughput","Alert","delivery","to","AWS","S3"]
docstr: Properties assigned by the user when configuring a new Firehose output
  
  Every output should return a dict that contains a 'descriptor' with a description of the
  integration being configured.
  
  Returns:
      OrderedDict: Contains various OutputProperty items
code: def get_user_defined_properties(cls):
      """Properties assigned by the user when configuring a new Firehose output
  
      Every output should return a dict that contains a 'descriptor' with a description of the
      integration being configured.
  
      Returns:
          OrderedDict: Contains various OutputProperty items
      """
      return OrderedDict(
          [
              (
                  "descriptor",
                  OutputProperty(
                      description="a short and unique descriptor for this Firehose Delivery Stream"
                  ),
              ),
              (
                  "aws_value",
                  OutputProperty(
                      description="the Firehose Delivery Stream name"
                  ),
              ),
          ]
      )
  
imports: from abc import abstractmethod
  from collections import OrderedDict
  from email.mime.application import MIMEApplication
  from email.mime.multipart import MIMEMultipart
  from email.mime.text import MIMEText
  from datetime import datetime
  import json
  import uuid
  import backoff
  from botocore.exceptions import ClientError
  import boto3
  from streamalert.alert_processor.helpers import compose_alert, elide_string_middle
  from streamalert.alert_processor.outputs.output_base import OutputDispatcher, OutputProperty, StreamAlertOutput
  from streamalert.shared.backoff_handlers import backoff_handler, success_handler, giveup_handler
  from streamalert.shared.logger import get_logger
label_desc: Use image node_id 1 for calling the KinesisFirehoseOutput obj's underlying member method code with example usage: obj.get_user_defined_properties(cls) and returns: OrderedDict