class_docstr: Drivers encapsulate logic for loading credentials
class_docstr_tok: ["Drivers","encapsulate","logic","for","loading","credentials"]
docstr: Loads the requested credentials into a new Credentials object.
  
  The behavior can be nondeterministic if has_credentials() is false.
  
  Args:
      descriptor (string): Descriptor for the current output service
  
  Return:
      Credentials|None: Returns None when loading fails.
docstr_tok: ["Loads","the","requested","credentials","into","a","new","Credentials","object",".","The","behavior","can","be","nondeterministic","if","has_credentials","(",")","is","false",".","Args",":","descriptor","(","string",")",":","Descriptor","for","the","current","output","service","Return",":","Credentials|None",":","Returns","None","when","loading","fails","."]
code: def load_credentials(self, descriptor):
      """Loads the requested credentials into a new Credentials object.
  
      The behavior can be nondeterministic if has_credentials() is false.
  
      Args:
          descriptor (string): Descriptor for the current output service
  
      Return:
          Credentials|None: Returns None when loading fails.
      """
  
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 for calling the CredentialsProvidingDriver obj's underlying member method code with example usage: obj.load_credentials(descriptor) without return types