class_docstr: S3Output handles all alert dispatching for AWS S3
class_docstr_tok: ["S3Output","handles","all","alert","dispatching","for","AWS","S3"]
docstr: Get properties that must be assigned by the user when configuring a new S3
  output.  This should be sensitive or unique information for this use-case that needs
  to come from the user.
  
  Every output should return a dict that contains a 'descriptor' with a description of the
  integration being configured.
  
  S3 also requires a user provided bucket name to be used for this service output. This
  value should not be masked during input and is not a credential requirement
  that needs encrypted.
  
  Returns:
      OrderedDict: Contains various OutputProperty items
code: def get_user_defined_properties(cls):
      """Get properties that must be assigned by the user when configuring a new S3
      output.  This should be sensitive or unique information for this use-case that needs
      to come from the user.
  
      Every output should return a dict that contains a 'descriptor' with a description of the
      integration being configured.
  
      S3 also requires a user provided bucket name to be used for this service output. This
      value should not be masked during input and is not a credential requirement
      that needs encrypted.
  
      Returns:
          OrderedDict: Contains various OutputProperty items
      """
      return OrderedDict(
          [
              (
                  "descriptor",
                  OutputProperty(
                      description="a short and unique descriptor for this S3 bucket (ie: bucket name)"
                  ),
              ),
              (
                  "aws_value",
                  OutputProperty(
                      description="the AWS S3 bucket name to use for this S3 configuration"
                  ),
              ),
          ]
      )
  
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 S3Output obj's underlying member method code with example usage: obj.get_user_defined_properties(cls) and returns: OrderedDict