[
    {
        "name": "RemoteData.Http",
        "comment": " Friendly abstraction over remote API communication in JSON.\n\n\n# Commands\n\n@docs get, post, put, patch, delete\n\n\n# Tasks\n\n@docs getTask, postTask, putTask, patchTask, deleteTask\n\n\n# Additional configuration\n\n@docs Config, defaultConfig, noCacheConfig\n\n@docs noCache, acceptJson\n\n\n# Commands with configuration\n\n@docs getWithConfig, postWithConfig, putWithConfig, patchWithConfig, deleteWithConfig\n\n\n# Tasks with configuration\n\n@docs getTaskWithConfig, postTaskWithConfig, putTaskWithConfig, patchTaskWithConfig, deleteTaskWithConfig\n\n\n# Helpers\n\n@docs url\n\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\n",
                "args": [],
                "type": "{ headers : List Header, withCredentials : Bool, timeout : Maybe Time }"
            }
        ],
        "values": [
            {
                "name": "acceptJson",
                "comment": " Header for explicitly stating we are expecting JSON back.\n",
                "type": "Header"
            },
            {
                "name": "defaultConfig",
                "comment": " The default configuration for all requests besides `GET`:\n\n  - accept application/json\n  - without credentials\n  - no timeout\n\n",
                "type": "Config"
            },
            {
                "name": "delete",
                "comment": " `DELETE` request as a command, expecting a `String` response.\n\nIn many APIs, the response for successful delete requests has an empty\nHTTP body, so decoding it as JSON will always fail. This is why `delete` and\n`deleteTask` don't have a decoder argument. If you really want to decode the\nresponse, use `Json.Decode.decodeString`.\n\n    type Msg\n        = HandleDeleteCat (WebData String)\n\n    deleteCat : Cat -> Cmd Msg\n    deleteCat cat =\n        delete \"/api/cats/\" HandleDeleteCat (encodeCat cat)\n\n",
                "type": "String -> (WebData String -> msg) -> Value -> Cmd msg"
            },
            {
                "name": "deleteTask",
                "comment": " `DELETE` request as a task, expecting a `String` response.\n\nIn many APIs, the response for successful delete requests has an empty\nHTTP body, so decoding it as JSON will always fail. This is why `delete` and\n`deleteTask` don't have a decoder argument. If you really want to decode the\nresponse, use `Json.Decode.decodeString`.\n\n    deleteCatTask : Cat -> Task Never (WebData String)\n    deleteCatTask cat =\n        deleteTask \"/api/cats/\" (encodeCat cat)\n\n",
                "type": "String -> Value -> Task Never (WebData String)"
            },
            {
                "name": "deleteTaskWithConfig",
                "comment": " `DELETE` request as a task, with additional `Config`.\n\n    deleteTaskWithConfig defaultConfig == deleteTask\n\n",
                "type": "Config -> String -> Value -> Task Never (WebData String)"
            },
            {
                "name": "deleteWithConfig",
                "comment": " `DELETE` request as a command, with additional `Config`.\n\n    deleteWithConfig defaultConfig == deleteTask\n\n",
                "type": "Config -> String -> (WebData String -> msg) -> 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\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\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\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\n",
                "type": "Config -> String -> (WebData success -> msg) -> Decoder success -> Cmd msg"
            },
            {
                "name": "noCache",
                "comment": " Header that makes sure the response doesn't come from a cache.\nOnly relevant for GET requests.\n",
                "type": "Header"
            },
            {
                "name": "noCacheConfig",
                "comment": " The default configuration for `GET` requests:\n\n  - a `no-cache` header\n  - accept application/json\n  - without credentials\n  - no timeout\n\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\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\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\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\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\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\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\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\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\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\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\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\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\n    url \"<http://example.com/users\"> [ (\"name\", \"john doe\"), (\"age\", \"30\") ]\n    --> \"http://example.com/users?name=john+doe&age=30\"\n\n",
                "type": "String -> List ( String, String ) -> String"
            }
        ],
        "binops": []
    }
]