class_docstr: Interface for Drivers capable of offering file-handles to aid in download of credentials.
class_docstr_tok: ["Interface","for","Drivers","capable","of","offering","file-handles","to","aid","in","download","of","credentials","."]
docstr: Offers a file-like object.
  
  The caller is expected to call this method in a with block, and this file-like object
  is expected to automatically close.
  
  Returns:
       file object
docstr_tok: ["Offers","a","file-like","object",".","The","caller","is","expected","to","call","this","method","in","a","with","block",",","and","this","file-like","object","is","expected","to","automatically","close",".","Returns",":","file","object"]
code: def offer_fileobj(self, descriptor):
      """Offers a file-like object.
  
      The caller is expected to call this method in a with block, and this file-like object
      is expected to automatically close.
  
      Returns:
           file object
      """
  
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 FileDescriptorProvider obj's underlying member method code with example usage: obj.offer_fileobj(descriptor) without return types