docstr: Setup: manage.py output set [options]
  
  Args:
      outputs (list): List of available output services
docstr_tok: ["Setup",":","manage.py","output","set","[","options","]","Args",":","outputs","(","list",")",":","List","of","available","output","services"]
code: def setup_subparser(cls, subparser):
      """Setup: manage.py output set [options]
  
      Args:
          outputs (list): List of available output services
      """
      outputs = sorted(StreamAlertOutput.get_all_outputs().keys())
  
      set_parser = generate_subparser(
          subparser,
          "set",
          description=cls.description,
          help=cls.description,
          subcommand=True,
      )
  
      # Add the required positional arg of service
      set_parser.add_argument(
          "service",
          choices=outputs,
          metavar="SERVICE",
          help="Create a new StreamAlert output for one of the available services: {}".format(
              ", ".join(outputs)
          ),
      )
  
      # Add the optional update flag, which allows existing outputs to be updated
      set_parser.add_argument(
          "--update",
          "-u",
          action="store_true",
          default=False,
          help="If the output already exists, overwrite it",
      )
  
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 1 for calling the OutputSetSubCommand obj's underlying member method code with example usage: obj.setup_subparser(cls, subparser) without return types