class_docstr: Base class for all app integrations to be implemented for various services
docstr: Get this log's origin service
  
  This should be implemented by all subclasses.
  
  Examples: 'duo', 'google', 'onelogin', 'box', etc
  
  Returns:
      str: The originating service name for these logs.
docstr_tok: ["Get","this","log","'s","origin","service","This","should","be","implemented","by","all","subclasses",".","Examples",":","'duo","'",",","'google","'",",","'onelogin","'",",","'box","'",",","etc","Returns",":","str",":","The","originating","service","name","for","these","logs","."]
code: def service(cls):
      """Get this log's origin service
  
      This should be implemented by all subclasses.
  
      Examples: 'duo', 'google', 'onelogin', 'box', etc
  
      Returns:
          str: The originating service name for these logs.
      """
  
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 3 for calling the AppIntegration obj's underlying member method code with example usage: obj.service(cls) without return types