docstr: List configured outputs
  Args:
      options (argparse.Namespace): Basically a namedtuple with the service setting
      config (StreamAlert.config): The configuration of StreamAlert
  Returns:
      bool: False if errors occurred, True otherwise
docstr_tok: ["List","configured","outputs","Args",":","options","(","argparse.Namespace",")",":","Basically","a","namedtuple","with","the","service","setting","config","(","StreamAlert.config",")",":","The","configuration","of","StreamAlert","Returns",":","bool",":","False","if","errors","occurred",",","True","otherwise"]
code: def handler(cls, options, config):
      """List configured outputs
      Args:
          options (argparse.Namespace): Basically a namedtuple with the service setting
          config (StreamAlert.config): The configuration of StreamAlert
      Returns:
          bool: False if errors occurred, True otherwise
      """
      outputs = config["outputs"]
  
      print("\nConfigured outputs 'service:descriptor':")
      for output in options.service:
          if output not in outputs:
              continue
          for descriptor in outputs[output]:
              print("\t{}:{}".format(output, descriptor))
          print()
  
imports: import json
  from streamalert.shared.logger import get_logger
  from streamalert.alert_processor.outputs.output_base import StreamAlertOutput, OutputCredentialsProvider
  from streamalert_cli.helpers import user_input, response_is_valid
  from streamalert_cli.outputs.helpers import output_exists
  from streamalert_cli.utils import CLICommand, generate_subparser
label_desc: Use image node_id 2 for calling the OutputListSubCommand obj's underlying member method code with example usage: obj.handler(cls, options, config) without return types