class_docstr: Drivers encapsulate logic for loading credentials
class_docstr_tok: ["Drivers","encapsulate","logic","for","loading","credentials"]
docstr: Determines whether the current driver is capable of loading the requested credentials.
  
  Args:
      descriptor (string): Descriptor for the current output service
  
  Return:
      bool: True if this driver has the requested Credentials, False otherwise.
docstr_tok: ["Determines","whether","the","current","driver","is","capable","of","loading","the","requested","credentials",".","Args",":","descriptor","(","string",")",":","Descriptor","for","the","current","output","service","Return",":","bool",":","True","if","this","driver","has","the","requested","Credentials",",","False","otherwise","."]
code: def has_credentials(self, descriptor):
      """Determines whether the current driver is capable of loading the requested credentials.
  
      Args:
          descriptor (string): Descriptor for the current output service
  
      Return:
          bool: True if this driver has the requested Credentials, False otherwise.
      """
  
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 CredentialsProvidingDriver obj's underlying member method code with example usage: obj.has_credentials(descriptor) without return types