[
    {
        "name": "RemoteData.Http",
        "comment": " Friendly abstraction over remote API communication in JSON.\n\n# Commands\n@docs get, post, put, patch, delete\n\n# Tasks\n@docs getTask, postTask, putTask, patchTask, deleteTask\n\n# Additional configuration\n@docs Config, defaultConfig, noCacheConfig\n\n# Commands with configuration\n@docs getWithConfig, postWithConfig, putWithConfig, patchWithConfig, deleteWithConfig\n\n# Tasks with configuration\n@docs getTaskWithConfig, postTaskWithConfig, putTaskWithConfig, patchTaskWithConfig, deleteTaskWithConfig\n\n\n# Helpers\n@docs url\n",
        "unions": [],
        "aliases": [
            {
                "name": "Config",
                "comment": " If you need more control over the request, you can use the\n`<verb>WithConfig` function with a record like this.\n\n    specialConfig : Config\n    specialConfig =\n        { headers = [ specialHeader, anotherHeader ]\n        , withCredentials = True\n        , timeout = Nothing\n        }\n\n    postCat : Cat -> Cmd Msg\n    postCat cat =\n        postWithConfig specialConfig \"/api/cats/\" HandlePostCat catDecoder (encodeCat cat)\n",
                "args": [],
                "type": "{ headers : List Header, withCredentials : Bool, timeout : Maybe Time }"
            }
        ],
        "values": [
            {
                "name": "defaultConfig",
                "comment": " The default configuration for all requests besides `GET`:\n\n- empty headers\n- without credentials\n- no timeout\n",
                "type": "Config"
            },
            {
                "name": "delete",
                "comment": " `DELETE` request as a command.\n\n    type Msg\n        = HandleDeleteCat (WebData DeleteResponse)\n\n    deleteCat : Cat -> Cmd Msg\n    deleteCat cat =\n        delete \"/api/cats/\" HandleDeleteCat deleteDecoder (encodeCat cat)\n",
                "type": "String -> (WebData success -> msg) -> Decoder success -> Value -> Cmd msg"
            },
            {
                "name": "deleteTask",
                "comment": " `DELETE` request as a task.\n\n    deleteCatTask : Cat -> Task Never (WebData Cat)\n    deleteCatTask cat =\n        deleteTask \"/api/cats/\" catDecoder (encodeCat cat)\n",
                "type": "String -> Decoder success -> Value -> Task Never (WebData success)"
            },
            {
                "name": "deleteTaskWithConfig",
                "comment": " `DELETE` request as a task, with additional `Config`.\n\n    deleteTaskWithConfig defaultConfig == deleteTask\n",
                "type": "Config -> String -> Decoder success -> Value -> Task Never (WebData success)"
            },
            {
                "name": "deleteWithConfig",
                "comment": " `DELETE` request as a command, with additional `Config`.\n\n    deleteWithConfig defaultConfig == deleteTask\n",
                "type": "Config -> String -> (WebData success -> msg) -> Decoder success -> Value -> Cmd msg"
            },
            {
                "name": "get",
                "comment": " `GET` request as a command.\nHas a `no-cache` header to ensure data integrity.\n\n    type Msg\n        = HandleGetCat (WebData Cat)\n\n    getCat : Cmd Msg\n    getCat =\n        get \"/api/cats/1\" HandleGetCat catDecoder\n",
                "type": "String -> (WebData success -> msg) -> Decoder success -> Cmd msg"
            },
            {
                "name": "getTask",
                "comment": " `GET` request as a task.\nHas a `no-cache` header to ensure data integrity.\n\n    getCatTask : Task Never (WebData Cat)\n    getCatTask =\n        getTask \"/api/cats/1\" catDecoder\n",
                "type": "String -> Decoder success -> Task Never (WebData success)"
            },
            {
                "name": "getTaskWithConfig",
                "comment": " `GET` request as a task, with additional `Config`. *NB.* allowing cache in API `GET` calls can lead\nto strange conditions.\n\n    getTaskWithConfig noCacheConfig \"http://example.com/users.json\" userDecoder\n      == getTask \"http://example.com/users.json\" userDecoder\n\nFor a request without any headers, you can use:\n\n    getTaskWithConfig defaultConfig url decoder\n",
                "type": "Config -> String -> Decoder success -> Task Never (WebData success)"
            },
            {
                "name": "getWithConfig",
                "comment": " `GET` request as a command, with cache. *NB.* allowing cache in API `GET` calls can lead\nto strange conditions.\n\n    getWithConfig noCacheConfig \"http://example.com/users.json\" userDecoder\n      == get \"http://example.com/users.json\" userDecoder\n\nFor a request without any headers, you can use:\n\n    getWithConfig defaultConfig url decoder\n",
                "type": "Config -> String -> (WebData success -> msg) -> Decoder success -> Cmd msg"
            },
            {
                "name": "noCacheConfig",
                "comment": " The default configuration for `GET` requests:\n\n- a `no-cache` header\n- without credentials\n- no timeout\n",
                "type": "Config"
            },
            {
                "name": "patch",
                "comment": " `PATCH` request as a command.\n\n    type Msg\n        = HandlePatchCat (WebData Cat)\n\n    patchCat : Cat -> Cmd Msg\n    patchCat cat =\n        patch \"/api/cats/\" HandlePatchCat catDecoder (encodeCat cat)\n",
                "type": "String -> (WebData success -> msg) -> Decoder success -> Value -> Cmd msg"
            },
            {
                "name": "patchTask",
                "comment": " `PATCH` request as a task.\n\n    patchCatTask : Cat -> Task Never (WebData Cat)\n    patchCatTask cat =\n        patchTask \"/api/cats/\" catDecoder (encodeCat cat)\n",
                "type": "String -> Decoder success -> Value -> Task Never (WebData success)"
            },
            {
                "name": "patchTaskWithConfig",
                "comment": " `PATCH` request as a task, with additional `Config`.\n\n    patchTaskWithConfig defaultConfig == patchTask\n",
                "type": "Config -> String -> Decoder success -> Value -> Task Never (WebData success)"
            },
            {
                "name": "patchWithConfig",
                "comment": " `PATCH` request as a command, with additional `Config`.\n\n    patchWithConfig defaultConfig == patchTask\n",
                "type": "Config -> String -> (WebData success -> msg) -> Decoder success -> Value -> Cmd msg"
            },
            {
                "name": "post",
                "comment": " `POST` request as a command.\n\n    type Msg\n        = HandlePostCat (WebData Cat)\n\n    postCat : Cat -> Cmd Msg\n    postCat cat =\n        post \"/api/cats/\" HandlePostCat catDecoder (encodeCat cat)\n",
                "type": "String -> (WebData success -> msg) -> Decoder success -> Value -> Cmd msg"
            },
            {
                "name": "postTask",
                "comment": " `POST` request as a task.\n\n    postCatTask : Cat -> Task Never (WebData Cat)\n    postCatTask cat =\n        postTask \"/api/cats/\" catDecoder (encodeCat cat)\n",
                "type": "String -> Decoder success -> Value -> Task Never (WebData success)"
            },
            {
                "name": "postTaskWithConfig",
                "comment": " `POST` request as a task, with additional `Config`.\n\n    postTaskWithConfig defaultConfig == postTask\n",
                "type": "Config -> String -> Decoder success -> Value -> Task Never (WebData success)"
            },
            {
                "name": "postWithConfig",
                "comment": " `POST` request as a command, with additional `Config`.\n\n    postWithConfig defaultConfig == postTask\n",
                "type": "Config -> String -> (WebData success -> msg) -> Decoder success -> Value -> Cmd msg"
            },
            {
                "name": "put",
                "comment": " `PUT` request as a command.\n\n    type Msg\n        = HandlePutCat (WebData Cat)\n\n    putCat : Cat -> Cmd Msg\n    putCat cat =\n        put \"/api/cats/\" HandlePutCat catDecoder (encodeCat cat)\n",
                "type": "String -> (WebData success -> msg) -> Decoder success -> Value -> Cmd msg"
            },
            {
                "name": "putTask",
                "comment": " `PUT` request as a task.\n\n    putCatTask : Cat -> Task Never (WebData Cat)\n    putCatTask cat =\n        putTask \"/api/cats/\" catDecoder (encodeCat cat)\n",
                "type": "String -> Decoder success -> Value -> Task Never (WebData success)"
            },
            {
                "name": "putTaskWithConfig",
                "comment": " `PUT` request as a task, with additional `Config`.\n\n    putTaskWithConfig defaultConfig == putTask\n",
                "type": "Config -> String -> Decoder success -> Value -> Task Never (WebData success)"
            },
            {
                "name": "putWithConfig",
                "comment": " `PUT` request as a command, with additional `Config`.\n\n    putWithConfig defaultConfig == putTask\n",
                "type": "Config -> String -> (WebData success -> msg) -> Decoder success -> Value -> Cmd msg"
            },
            {
                "name": "url",
                "comment": " This is the old `url` function from evancz/elm-http.\n\nCreate a properly encoded URL with a [query string][qs]. The first argument is\nthe portion of the URL before the query string, which is assumed to be\nproperly encoded already. The second argument is a list of all the\nkey/value pairs needed for the query string. Both the keys and values\nwill be appropriately encoded, so they can contain spaces, ampersands, etc.\n[qs]: http://en.wikipedia.org/wiki/Query_string\n    url \"http://example.com/users\" [ (\"name\", \"john doe\"), (\"age\", \"30\") ]\n    -- http://example.com/users?name=john+doe&age=30\n",
                "type": "String -> List ( String, String ) -> String"
            }
        ],
        "binops": []
    }
]