code: def _execute(self, api_command, *, timeout=None):
          
  
          if api_command.observe:
              self._observe(api_command)
              return
  
          method = api_command.method
          path = api_command.path
          data = api_command.data
          parse_json = api_command.parse_json
          url = api_command.url(self._host)
  
          proc_timeout = self._timeout
          if timeout is not None:
              proc_timeout = timeout
  
          command = self._base_command(method)
  
          kwargs = {
              'stderr': subprocess.DEVNULL,
              'timeout': proc_timeout,
              'universal_newlines': True,
          }
  
          if data is not None:
              kwargs['input'] = json.dumps(data)
              command.append('-f')
              command.append('-')
              _LOGGER.debug('Executing %s %s %s: %s', self._host, method, path,
                            data)
          else:
              _LOGGER.debug('Executing %s %s %s', self._host, method, path)
  
          command.append(url)
  
          try:
              return_value = subprocess.check_output(command, **kwargs)
          except subprocess.TimeoutExpired:
              raise RequestTimeout() from None
          except subprocess.CalledProcessError as err:
              raise RequestError(
                  'Error executing request: {}'.format(err)) from None
  
          api_command.result = _process_output(return_value, parse_json)
          return api_command.result
docs: Execute the command.