code: def request(self, commands, encoding=None, reqid=None, **kwargs):
          
          commands = make_iterable(commands)
          reqid = id(self) if reqid is None else reqid
          params = {'version': 1, 'cmds': commands, 'format': encoding}
          if 'autoComplete' in kwargs:
              params['autoComplete'] = kwargs['autoComplete']
          if 'expandAliases' in kwargs:
              params['expandAliases'] = kwargs['expandAliases']
          return json.dumps({'jsonrpc': '2.0', 'method': 'runCmds',
                             'params': params, 'id': str(reqid)})
docs: Generates an eAPI request object
  
          This method will take a list of EOS commands and generate a valid
          eAPI request object form them.  The eAPI request object is then
          JSON encoding and returned to the caller.
  
          eAPI Request Object
  
          .. code-block:: json
  
              {
                  "jsonrpc": "2.0",
                  "method": "runCmds",
                  "params": {
                      "version": 1,
                      "cmds": [
                          <commands>
                      ],
                      "format": [json, text],
                  }
                  "id": <reqid>
              }
  
          Args:
              commands (list): A list of commands to include in the eAPI
                  request object
              encoding (string): The encoding method passed as the `format`
                  parameter in the eAPI request
              reqid (string): A custom value to assign to the request ID
                  field.  This value is automatically generated if not passed
              **kwargs: Additional keyword arguments for expanded eAPI
                  functionality. Only supported eAPI params are used in building
                  the request
  
          Returns:
              A JSON encoding request structure that can be send over eAPI