Query a resource, and decode the return data

    Passes through all the parameters described in the
    :py:func:`utils.http.query function <salt.utils.http.query>`:

    .. autofunction:: salt.utils.http.query

    CLI Example:

    .. code-block:: bash

        salt '*' http.query http://somelink.com/
        salt '*' http.query http://somelink.com/ method=POST \
            params='key1=val1&key2=val2'
        salt '*' http.query http://somelink.com/ method=POST \
            data='<xml>somecontent</xml>'

    For more information about the ``http.query`` module, refer to the
    :ref:`HTTP Tutorial <tutorial-http>`.

def query(url, **kwargs):
    '''
    Query a resource, and decode the return data

    Passes through all the parameters described in the
    :py:func:`utils.http.query function <salt.utils.http.query>`:

    .. autofunction:: salt.utils.http.query

    CLI Example:

    .. code-block:: bash

        salt '*' http.query http://somelink.com/
        salt '*' http.query http://somelink.com/ method=POST \
            params='key1=val1&key2=val2'
        salt '*' http.query http://somelink.com/ method=POST \
            data='<xml>somecontent</xml>'

    For more information about the ``http.query`` module, refer to the
    :ref:`HTTP Tutorial <tutorial-http>`.
    '''
    opts = __opts__.copy()
    if 'opts' in kwargs:
        opts.update(kwargs['opts'])
        del kwargs['opts']

    return salt.utils.http.query(url=url, opts=opts, **kwargs)