docstr: Args:
      prefix (str): StreamAlert account prefix in configs
      service_name (str): The service name for the OutputDispatcher using this
      region (str): AWS Region
      cache_driver (CredentialsProvidingDriver|None):
          Optional. When provided, the downloaded credentials will be cached in the given
          driver. This is useful for reducing the number of SSM/KMS calls and speeding up the
          system.
  
          (!) Storage encryption of the credentials is determined by the driver.
docstr_tok: ["Args",":","prefix","(","str",")",":","StreamAlert","account","prefix","in","configs","service_name","(","str",")",":","The","service","name","for","the","OutputDispatcher","using","this","region","(","str",")",":","AWS","Region","cache_driver","(","CredentialsProvidingDriver|None",")",":","Optional",".","When","provided",",","the","downloaded","credentials","will","be","cached","in","the","given","driver",".","This","is","useful","for","reducing","the","number","of","SSM\/KMS","calls","and","speeding","up","the","system",".","(","!",")","Storage","encryption","of","the","credentials","is","determined","by","the","driver","."]
code: def __init__(self, prefix, service_name, region, cache_driver=None):
      """
      Args:
          prefix (str): StreamAlert account prefix in configs
          service_name (str): The service name for the OutputDispatcher using this
          region (str): AWS Region
          cache_driver (CredentialsProvidingDriver|None):
              Optional. When provided, the downloaded credentials will be cached in the given
              driver. This is useful for reducing the number of SSM/KMS calls and speeding up the
              system.
  
              (!) Storage encryption of the credentials is determined by the driver.
      """
      self._service_name = service_name
      self._region = region
      self._prefix = prefix
  
      self._cache_driver = cache_driver
  
imports: import json
  import os
  import shutil
  import tempfile
  from abc import abstractmethod
  from botocore.exceptions import ClientError
  from streamalert.shared.helpers.aws_api_client import AwsKms, AwsSsm
  from streamalert.shared.logger import get_logger
label_desc: Use image node_id 1 to create a new SSMDriver object from inherited base classes: CredentialsProvidingDriver with example: obj = SSMDriver(prefix, service_name, region, cache_driver)