class_docstr: OutputDispatcher is the base class to handle routing alerts to outputs
  
  Public methods:
      format_output_config: returns a formatted version of the outputs configuration
          that is to be written to disk
      get_user_defined_properties: returns any properties for this output that must be
          provided by the user. must be implemented by subclasses
      dispatch: handles the actual sending of alerts to the configured service. must
          be implemented by subclass
docstr: Method to return the json loaded response for this PUT request
  This method implements support for backoff to retry failed requests
  
  Args:
      url (str): Endpoint for this request
      params (dict): Payload to send with this request
      headers (dict): Dictionary containing request-specific header parameters
      verify (bool): Whether or not the server's SSL certificate should be verified
  Returns:
      dict: Contains the http response object
  Raises:
      OutputRequestFailure
docstr_tok: ["Method","to","return","the","json","loaded","response","for","this","PUT","request","This","method","implements","support","for","backoff","to","retry","failed","requests","Args",":","url","(","str",")",":","Endpoint","for","this","request","params","(","dict",")",":","Payload","to","send","with","this","request","headers","(","dict",")",":","Dictionary","containing","request-specific","header","parameters","verify","(","bool",")",":","Whether","or","not","the","server","'s","SSL","certificate","should","be","verified","Returns",":","dict",":","Contains","the","http","response","object","Raises",":","OutputRequestFailure"]
code: def _put_request_retry(
      cls, url, params=None, headers=None, verify=True
  ):
      """Method to return the json loaded response for this PUT request
      This method implements support for backoff to retry failed requests
  
      Args:
          url (str): Endpoint for this request
          params (dict): Payload to send with this request
          headers (dict): Dictionary containing request-specific header parameters
          verify (bool): Whether or not the server's SSL certificate should be verified
      Returns:
          dict: Contains the http response object
      Raises:
          OutputRequestFailure
      """
  
      @retry_on_exception(cls._catch_exceptions())
      def do_put_request():
          """Decorated nested function to perform the request with retry/backoff"""
          resp = cls._put_request(url, params, headers, verify)
          success = cls._check_http_response(resp)
          if not success:
              raise OutputRequestFailure(resp)
  
          return resp
  
      return do_put_request()
  
imports: from abc import ABCMeta, abstractmethod
  from collections import namedtuple
  import requests
  from requests.exceptions import Timeout
  import urllib3
  import backoff
  from streamalert.alert_processor.outputs.credentials.provider import OutputCredentialsProvider
  from streamalert.shared.backoff_handlers import backoff_handler, success_handler, giveup_handler
  from streamalert.shared.helpers.boto import REGION
  from streamalert.shared.logger import get_logger
label_desc: Use image node_id 7 for calling the OutputDispatcher obj's underlying member method code with example usage: obj._put_request_retry(cls, url, params, headers, verify) and returns: do_put_request, resp