class_docstr: G Suite Reports base app integration. This is subclassed for various endpoints
class_docstr_tok: ["G","Suite","Reports","base","app","integration",".","This","is","subclassed","for","various","endpoints"]
code: def _required_auth_info(cls):
      # Use a validation function to ensure the file the user provides is valid
      def keyfile_validator(keyfile):
          """A JSON formatted (not p12) Google service account private key file key"""
          try:
              with open(keyfile.strip(), "r") as json_keyfile:
                  keydata = json.load(json_keyfile)
          except (IOError, ValueError):
              return False
  
          if not cls._load_credentials(keydata):
              return False
  
          return keydata
  
      return {
          "keyfile": {
              "description": (
                  "the path on disk to the JSON formatted Google "
                  "service account private key file"
              ),
              "format": keyfile_validator,
          },
          "delegation_email": {
              "description": "the service account user email to delegate access to",
              "format": re.compile(
                  r"^[A-Za-z0-9-_.+]+@[A-Za-z0-9-.]+\.[A-Za-z]{2,}$"
              ),
          },
      }
  
imports: import logging
  import json
  import re
  import socket
  import ssl
  import googleapiclient.discovery
  import googleapiclient.errors
  from google.oauth2 import service_account
  from google.auth.exceptions import GoogleAuthError
  from .None import AppIntegration, StreamAlertApp, get_logger
label_desc: Use image node_id 8 for calling the GSuiteReportsApp obj's underlying member method code with example usage: obj._required_auth_info(cls) and returns: dict, keydata, False, False