class_docstr: Base class for all app integrations to be implemented for various services
docstr: Protected method to get the expected info that this service's auth dict should contain.
  
  This must be implemented by subclasses and provide context as to what authentication
  information is required as well as a description of the data and an optional regex
  that the data should conform to.
  
  This is called from the public `required_auth_info` method and validated there.
  
  Returns:
      dict: Required authentication keys, with optional description and
          format they should follow
docstr_tok: ["Protected","method","to","get","the","expected","info","that","this","service","'s","auth","dict","should","contain",".","This","must","be","implemented","by","subclasses","and","provide","context","as","to","what","authentication","information","is","required","as","well","as","a","description","of","the","data","and","an","optional","regex","that","the","data","should","conform","to",".","This","is","called","from","the","public","`","required_auth_info","`","method","and","validated","there",".","Returns",":","dict",":","Required","authentication","keys",",","with","optional","description","and","format","they","should","follow"]
code: def _required_auth_info(cls):
      """Protected method to get the expected info that this service's auth dict should contain.
  
      This must be implemented by subclasses and provide context as to what authentication
      information is required as well as a description of the data and an optional regex
      that the data should conform to.
  
      This is called from the public `required_auth_info` method and validated there.
  
      Returns:
          dict: Required authentication keys, with optional description and
              format they should follow
      """
  
imports: from abc import ABCMeta, abstractmethod, abstractproperty
  from json import JSONDecodeError
  import time
  import boto3
  from botocore.exceptions import ClientError
  import requests
  from streamalert.apps.config import AppConfig
  from streamalert.apps.batcher import Batcher
  from streamalert.shared.logger import get_logger
label_desc: Use image node_id 7 for calling the AppIntegration obj's underlying member method code with example usage: obj._required_auth_info(cls) without return types