def call(self, function_expr, **kwargs):
if '<STR_LIT:.>' in function_expr:<EOL><INDENT>tech, service_type, function_name = function_expr.split('<STR_LIT:.>')<EOL><DEDENT>else:<EOL><INDENT>tech = self.conn_details.get('<STR_LIT>')<EOL>service_type = self.conn_details.get('<STR_LIT>', '<STR_LIT>')<EOL>function_name = function_expr<EOL><DEDENT>@sts_conn(tech, service_type=service_type)<EOL>def wrapped_method(function_name, **nargs):<EOL><INDENT>service_type = nargs.pop(nargs.pop('<STR_LIT>', '<STR_LIT>'))<EOL>return getattr(service_type, function_name)(**nargs)<EOL><DEDENT>kwargs.update(self.conn_details)<EOL>if '<STR_LIT>' in kwargs:<EOL><INDENT>del kwargs['<STR_LIT>']<EOL><DEDENT>return wrapped_method(function_name, **kwargs)<EOL>
cloudaux = CloudAux(
    **{'account_number': '000000000000',
       'assume_role': 'role_name',
       'session_name': 'testing',
       'region': 'us-east-1',
       'tech': 'kms',
       'service_type': 'client'
    })

cloudaux.call("list_aliases")
cloudaux.call("kms.client.list_aliases")