[
    {
        "name": "HttpBuilder",
        "comment": " Extra helpers for more easily building Http requests that require greater\nconfiguration than what is provided by `elm-http` out of the box.\n\n# Start a request\n@docs RequestBuilder, get, post, put, patch, delete, options, trace, head\n\n# Configure request properties\n@docs withHeader, withHeaders, withStringBody, withJsonBody, withMultipartStringBody, withUrlEncodedBody, withTimeout, withCredentials, withQueryParams, withExpect\n\n# Make the request\n@docs toRequest, send\n",
        "unions": [
            {
                "name": "RequestBuilder",
                "comment": " A type for chaining request configuration\n",
                "args": [
                    "a"
                ],
                "cases": []
            }
        ],
        "aliases": [],
        "values": [
            {
                "name": "delete",
                "comment": " Start building a DELETE request with a given URL\n\n    delete \"https://example.com/api/items/1\"\n",
                "type": "String -> RequestBuilder ()"
            },
            {
                "name": "get",
                "comment": " Start building a GET request with a given URL\n\n    get \"https://example.com/api/items/1\"\n",
                "type": "String -> RequestBuilder ()"
            },
            {
                "name": "head",
                "comment": " Start building a HEAD request with a given URL\n\n    head \"https://example.com/api/items/1\"\n",
                "type": "String -> RequestBuilder ()"
            },
            {
                "name": "options",
                "comment": " Start building a OPTIONS request with a given URL\n\n    options \"https://example.com/api/items/1\"\n",
                "type": "String -> RequestBuilder ()"
            },
            {
                "name": "patch",
                "comment": " Start building a PATCH request with a given URL\n\n    patch \"https://example.com/api/items/1\"\n",
                "type": "String -> RequestBuilder ()"
            },
            {
                "name": "post",
                "comment": " Start building a POST request with a given URL\n\n    post \"https://example.com/api/items\"\n",
                "type": "String -> RequestBuilder ()"
            },
            {
                "name": "put",
                "comment": " Start building a PUT request with a given URL\n\n    put \"https://example.com/api/items/1\"\n",
                "type": "String -> RequestBuilder ()"
            },
            {
                "name": "send",
                "comment": " Send the request using Http.send\n",
                "type": "(Result Error a -> msg) -> RequestBuilder a -> Cmd msg"
            },
            {
                "name": "toRequest",
                "comment": " Extract the Http.Request component of the builder, for introspection and\ntesting\n",
                "type": "RequestBuilder a -> Request a"
            },
            {
                "name": "trace",
                "comment": " Start building a TRACE request with a given URL\n\n    trace \"https://example.com/api/items/1\"\n",
                "type": "String -> RequestBuilder ()"
            },
            {
                "name": "withCredentials",
                "comment": " Set the `withCredentials` flag on the request to True. Works via\n[`XMLHttpRequest#withCredentials`](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials)\n\n    get \"https://example.com/api/items/1\"\n        |> withCredentials\n",
                "type": "RequestBuilder a -> RequestBuilder a"
            },
            {
                "name": "withExpect",
                "comment": " Choose an `Expect` for the request\n\n    get \"https://example.com/api/items/1\"\n        |> withExpect (Http.expectJson itemsDecoder)\n",
                "type": "Expect b -> RequestBuilder a -> RequestBuilder b"
            },
            {
                "name": "withHeader",
                "comment": " Add a single header to a request\n\n    get \"https://example.com/api/items/1\"\n        |> withHeader \"Content-Type\" \"application/json\"\n",
                "type": "String -> String -> RequestBuilder a -> RequestBuilder a"
            },
            {
                "name": "withHeaders",
                "comment": " Add many headers to a request\n\n    get \"https://example.com/api/items/1\"\n        |> withHeaders [(\"Content-Type\", \"application/json\"), (\"Accept\", \"application/json\")]\n",
                "type": "List ( String, String ) -> RequestBuilder a -> RequestBuilder a"
            },
            {
                "name": "withJsonBody",
                "comment": " Convenience function for adding a JSON body to a request\n\n    params = Json.Encode.object\n        [ (\"sortBy\", Json.Encode.string \"coolness\")\n        , (\"take\", Json.Encode.int 10)\n        ]\n\n    post \"https://example.com/api/items/1\"\n        |> withJsonBody params\n",
                "type": "Value -> RequestBuilder a -> RequestBuilder a"
            },
            {
                "name": "withMultipartStringBody",
                "comment": " Convience function for adding multipart bodies composed of String, String\nkey-value pairs. Since `Http.stringData` is currently the only `Http.Data`\ncreator having this function removes the need to use the `Http.Data` type in\nyour type signatures.\n\n    post \"https://example.com/api/items/1\"\n        |> withMultipartStringBody [(\"user\", JS.encode user)]\n",
                "type": "List ( String, String ) -> RequestBuilder a -> RequestBuilder a"
            },
            {
                "name": "withQueryParams",
                "comment": " Add some query params to the url for the request\n\n    get \"https://example.com/api/items/1\"\n        |> withQueryParams [(\"hello\", \"world\"), (\"foo\", \"bar\")]\n        |> withQueryParams [(\"baz\", \"qux\")]\n    -- sends a request to https://example.com/api/items/1?hello=world&foo=bar&baz=qux\n",
                "type": "List ( String, String ) -> RequestBuilder a -> RequestBuilder a"
            },
            {
                "name": "withStringBody",
                "comment": " Convenience function for adding a string body to a request\n\n    post \"https://example.com/api/items/1\"\n        |> withStringBody \"application/json\" \"\"\"{ \"sortBy\": \"coolness\", \"take\": 10 }\"\"\"\n",
                "type": "String -> String -> RequestBuilder a -> RequestBuilder a"
            },
            {
                "name": "withTimeout",
                "comment": " Set the `timeout` setting on the request\n\n    get \"https://example.com/api/items/1\"\n        |> withTimeout (10 * Time.second)\n",
                "type": "Time -> RequestBuilder a -> RequestBuilder a"
            },
            {
                "name": "withUrlEncodedBody",
                "comment": " Convenience function for adding url encoded bodies\n\n    post \"https://example.com/api/whatever\"\n        |> withUrlEncodedBody [(\"user\", \"Luke\"), (\"pwd\", \"secret\")]\n",
                "type": "List ( String, String ) -> RequestBuilder a -> RequestBuilder a"
            }
        ],
        "binops": []
    }
]