docs: def _query(action=None,
             command=None,
             args=None,
             method='GET',
             header_dict=None,
             data=None):
      '''
      Make a web call to GoGrid
  
      .. versionadded:: 2015.8.0
      '''
      vm_ = get_configured_provider()
      apikey = config.get_cloud_config_value(
          'apikey', vm_, __opts__, search_global=False
      )
      sharedsecret = config.get_cloud_config_value(
          'sharedsecret', vm_, __opts__, search_global=False
      )
  
      path = 'https://api.gogrid.com/api/'
  
      if action:
          path += action
  
      if command:
          path += '/{0}'.format(command)
  
      log.debug('GoGrid URL: %s', path)
  
      if not isinstance(args, dict):
          args = {}
  
      epoch = six.text_type(int(time.time()))
      hashtext = ''.join((apikey, sharedsecret, epoch))
      args['sig'] = salt.utils.hashutils.md5_digest(hashtext)
      args['format'] = 'json'
      args['v'] = '1.0'
      args['api_key'] = apikey
  
      if header_dict is None:
          header_dict = {}
  
      if method != 'POST':
          header_dict['Accept'] = 'application/json'
  
      decode = True
      if method == 'DELETE':
          decode = False
  
      return_content = None
      result = salt.utils.http.query(
          path,
          method,
          params=args,
          data=data,
          header_dict=header_dict,
          decode=decode,
          decode_type='json',
          text=True,
          status=True,
          opts=__opts__,
      )
      log.debug('GoGrid Response Status Code: %s', result['status'])
  
      return result['dict']