64)      !"#$%&'(Nonetype synonym of a URI!type synonym of post body content type synonym of query parameters Is either ) containing an error or * containg a resultThe gained Access Token. Use Data.Aeson.decode to decode string to  AccessToken . The  refresheToken" is special at some case. e.g. 2https://developers.google.com/accounts/docs/OAuth2 Query Parameter RepresentationbPrepare the authorization URL. Redirect to this URL asking for user interactive authentication.APrepare URL and the request body query for fetching access token.kUsing a Refresh Token. obtain a new access token by sending a refresh token to the Authorization server.Append query parameters with ?Append query parameters with &Q. appendQueryParam' :: URI -> QueryParams -> URI appendQueryParam' uri q = uri + "&" + renderSimpleQuery False qFor GET method API.1Create QueryParams with given access token value.gaccessTokenToParam :: BS.ByteString -> QueryParams accessTokenToParam token = [("access_token", token)]*lift value in the Maybe and abonda Nothing"Parse JSON data into {AccessToken} (access code gained via authorization URL/access token request URL plus the request body.(access code gained via authorization URL Grant Type/access token request URL plus the request body.*refresh token gained via authorization URL0refresh token request URL plus the request body.Base URIAuthorized Access TokenCombined Result     None3)Request (via POST method) "Access Token".Request the "Refresh Token".1Conduct post request and return response as JSON.Conduct post request.0Conduct GET request and return response as JSON.Conduct GET request. same to ; but set access token to query parameter rather than header!1Conduct POST request and return response as JSON."Conduct POST request.#ZSends a HTTP request including the Authorization header with the specified access token.% Parses a Response to to  OAuth2Result& Parses a OAuth2Result BSL.ByteString into FromJSON a => a'set several header values. + userAgennt : hoauth2 + accept : application/json + authorization : Bearer xxxxx if AccessToken provided.(Sets the HTTP method to useHTTP connection manager OAuth Data.Authentication code gained after authorization Access TokenHTTP connection manager. OAuth context(refresh token gained after authorizationHTTP connection manager. OAuth optionsThe URL request bodyResponse as ByteStringHTTP connection manager. OAuth optionsURL Request body.Response as ByteStringHTTP connection manager.Full URLResponse as JSONHTTP connection manager.URLResponse as ByteString HTTP connection manager.URLResponse as ByteString!HTTP connection manager.Full URLResponse as JSON"HTTP connection manager.URLResponse as ByteString#Request to performModify request before sendingHTTP connection manager.$Request to performModify request before sendingHTTP connection manager.%&'( !"#$%&'( !"#$%&'( !"#$%&'(None(  !"#$%&'(,       !"#$%&'()*+,-+,./012 hoauth2-0.4.7Network.OAuth.OAuth2.InternalNetwork.OAuth.OAuth2.HttpClientNetwork.OAuth.OAuth2URIPostBody QueryParams OAuth2Result AccessToken accessToken refreshToken expiresIn tokenTypeOAuth2 oauthClientIdoauthClientSecretoauthOAuthorizeEndpointoauthAccessTokenEndpoint oauthCallbackauthorizationUrlaccessTokenUrlaccessTokenUrl'refreshAccessTokenUrlappendQueryParamappendAccessTokenaccessTokenToParam transform'$fFromJSONAccessTokenfetchAccessTokenfetchRefreshTokendoJSONPostRequestdoSimplePostRequest authGetJSON authGetBS authGetBS' authPostJSON authPostBS authRequest authRequest'handleResponseparseResponseJSONupdateRequestHeaders setMethodbase Data.EitherLeftRightbytestring-0.10.4.0Data.ByteStringappend