docstr: Loads credentials from AWS SSM parameter store.
  
  Args:
      descriptor (str): Service destination (ie: slack channel, pd integration)
  
  Returns:
      Credentials: The loaded Credentials. None on failure
docstr_tok: ["Loads","credentials","from","AWS","SSM","parameter","store",".","Args",":","descriptor","(","str",")",":","Service","destination","(","ie",":","slack","channel",",","pd","integration",")","Returns",":","Credentials",":","The","loaded","Credentials",".","None","on","failure"]
code: def load_credentials(self, descriptor):
      """Loads credentials from AWS SSM parameter store.
  
      Args:
          descriptor (str): Service destination (ie: slack channel, pd integration)
  
      Returns:
          Credentials: The loaded Credentials. None on failure
      """
      parameter_name = self._get_parameter_name(descriptor)
      try:
          plaintext_creds = AwsSsm.get_parameter(
              parameter_name, self._region
          )
          credentials = Credentials(
              plaintext_creds, is_encrypted=False, region=self._region
          )
          if self._cache_driver:
              self._cache_driver.save_credentials(
                  descriptor, credentials
              )
  
          return credentials
      except ClientError:
          LOGGER.exception(
              "credentials for '%s' could not be downloaded from SSM",
              get_formatted_output_credentials_name(
                  self._service_name, descriptor
              ),
          )
          return None
  
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 2 for calling the SSMDriver obj's underlying member method code with example usage: obj.load_credentials(descriptor) and returns: credentials, None