gogol-freebasesearch-0.1.0: gen/Network/Google/Method/Freebase/Search.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- |
-- Module : Network.Google.Method.Freebase.Search
-- Copyright : (c) 2015-2016 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Search Freebase open data.
--
-- /See:/ <https://developers.google.com/freebase/ Freebase Search Reference> for @freebase.search@.
module Network.Google.Method.Freebase.Search
(
-- * REST Resource
SearchMethod
-- * Creating a Request
, search
, Search
-- * Request Lenses
, sWithout
, sCursor
, sWith
, sDomain
, sFormat
, sHelp
, sLang
, sIndent
, sOutput
, sQuery
, sScoring
, sLimit
, sFilter
, sMqlOutput
, sMid
, sType
, sStemmed
, sExact
, sSpell
, sAsOfTime
, sEncode
, sPrefixed
, sCallback
) where
import Network.Google.FreebaseSearch.Types
import Network.Google.Prelude
-- | A resource alias for @freebase.search@ method which the
-- 'Search' request conforms to.
type SearchMethod =
"freebase" :>
"v1" :>
"search" :>
QueryParams "without" Text :>
QueryParam "cursor" (Textual Int32) :>
QueryParams "with" Text :>
QueryParams "domain" Text :>
QueryParam "format" FreebaseSearchFormat :>
QueryParam "help" FreebaseSearchHelp :>
QueryParams "lang" Text :>
QueryParam "indent" Bool :>
QueryParam "output" Text :>
QueryParam "query" Text :>
QueryParam "scoring" FreebaseSearchScoring :>
QueryParam "limit" (Textual Int32) :>
QueryParams "filter" Text :>
QueryParam "mql_output" Text :>
QueryParams "mid" Text :>
QueryParams "type" Text :>
QueryParam "stemmed" Bool :>
QueryParam "exact" Bool :>
QueryParam "spell"
FreebaseSearchSpell
:>
QueryParam "as_of_time" Text :>
QueryParam "encode"
FreebaseSearchEncode
:>
QueryParam "prefixed" Bool
:>
QueryParam "callback"
Text
:>
QueryParam "alt"
AltJSON
:> Get '[JSON] ()
:<|>
"freebase" :>
"v1" :>
"search" :>
QueryParams "without" Text :>
QueryParam "cursor" (Textual Int32) :>
QueryParams "with" Text :>
QueryParams "domain" Text :>
QueryParam "format" FreebaseSearchFormat :>
QueryParam "help" FreebaseSearchHelp :>
QueryParams "lang" Text :>
QueryParam "indent" Bool :>
QueryParam "output" Text :>
QueryParam "query" Text :>
QueryParam "scoring" FreebaseSearchScoring :>
QueryParam "limit" (Textual Int32) :>
QueryParams "filter" Text :>
QueryParam "mql_output" Text :>
QueryParams "mid" Text :>
QueryParams "type" Text :>
QueryParam "stemmed" Bool :>
QueryParam "exact" Bool :>
QueryParam "spell"
FreebaseSearchSpell
:>
QueryParam "as_of_time" Text
:>
QueryParam "encode"
FreebaseSearchEncode
:>
QueryParam "prefixed"
Bool
:>
QueryParam "callback"
Text
:>
QueryParam "alt"
AltMedia
:>
Get '[OctetStream]
Stream
-- | Search Freebase open data.
--
-- /See:/ 'search' smart constructor.
data Search = Search'
{ _sWithout :: !(Maybe [Text])
, _sCursor :: !(Maybe (Textual Int32))
, _sWith :: !(Maybe [Text])
, _sDomain :: !(Maybe [Text])
, _sFormat :: !FreebaseSearchFormat
, _sHelp :: !(Maybe FreebaseSearchHelp)
, _sLang :: !(Maybe [Text])
, _sIndent :: !(Maybe Bool)
, _sOutput :: !(Maybe Text)
, _sQuery :: !(Maybe Text)
, _sScoring :: !FreebaseSearchScoring
, _sLimit :: !(Textual Int32)
, _sFilter :: !(Maybe [Text])
, _sMqlOutput :: !(Maybe Text)
, _sMid :: !(Maybe [Text])
, _sType :: !(Maybe [Text])
, _sStemmed :: !(Maybe Bool)
, _sExact :: !(Maybe Bool)
, _sSpell :: !FreebaseSearchSpell
, _sAsOfTime :: !(Maybe Text)
, _sEncode :: !FreebaseSearchEncode
, _sPrefixed :: !(Maybe Bool)
, _sCallback :: !(Maybe Text)
} deriving (Eq,Show,Data,Typeable,Generic)
-- | Creates a value of 'Search' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'sWithout'
--
-- * 'sCursor'
--
-- * 'sWith'
--
-- * 'sDomain'
--
-- * 'sFormat'
--
-- * 'sHelp'
--
-- * 'sLang'
--
-- * 'sIndent'
--
-- * 'sOutput'
--
-- * 'sQuery'
--
-- * 'sScoring'
--
-- * 'sLimit'
--
-- * 'sFilter'
--
-- * 'sMqlOutput'
--
-- * 'sMid'
--
-- * 'sType'
--
-- * 'sStemmed'
--
-- * 'sExact'
--
-- * 'sSpell'
--
-- * 'sAsOfTime'
--
-- * 'sEncode'
--
-- * 'sPrefixed'
--
-- * 'sCallback'
search
:: Search
search =
Search'
{ _sWithout = Nothing
, _sCursor = Nothing
, _sWith = Nothing
, _sDomain = Nothing
, _sFormat = Entity
, _sHelp = Nothing
, _sLang = Nothing
, _sIndent = Nothing
, _sOutput = Nothing
, _sQuery = Nothing
, _sScoring = FSSEntity
, _sLimit = 20
, _sFilter = Nothing
, _sMqlOutput = Nothing
, _sMid = Nothing
, _sType = Nothing
, _sStemmed = Nothing
, _sExact = Nothing
, _sSpell = NoSpelling
, _sAsOfTime = Nothing
, _sEncode = Off
, _sPrefixed = Nothing
, _sCallback = Nothing
}
-- | A rule to not match against.
sWithout :: Lens' Search [Text]
sWithout
= lens _sWithout (\ s a -> s{_sWithout = a}) .
_Default
. _Coerce
-- | The cursor value to use for the next page of results.
sCursor :: Lens' Search (Maybe Int32)
sCursor
= lens _sCursor (\ s a -> s{_sCursor = a}) .
mapping _Coerce
-- | A rule to match against.
sWith :: Lens' Search [Text]
sWith
= lens _sWith (\ s a -> s{_sWith = a}) . _Default .
_Coerce
-- | Restrict to topics with this Freebase domain id.
sDomain :: Lens' Search [Text]
sDomain
= lens _sDomain (\ s a -> s{_sDomain = a}) . _Default
. _Coerce
-- | Structural format of the json response.
sFormat :: Lens' Search FreebaseSearchFormat
sFormat = lens _sFormat (\ s a -> s{_sFormat = a})
-- | The keyword to request help on.
sHelp :: Lens' Search (Maybe FreebaseSearchHelp)
sHelp = lens _sHelp (\ s a -> s{_sHelp = a})
-- | The code of the language to run the query with. Default is \'en\'.
sLang :: Lens' Search [Text]
sLang
= lens _sLang (\ s a -> s{_sLang = a}) . _Default .
_Coerce
-- | Whether to indent the json results or not.
sIndent :: Lens' Search (Maybe Bool)
sIndent = lens _sIndent (\ s a -> s{_sIndent = a})
-- | An output expression to request data from matches.
sOutput :: Lens' Search (Maybe Text)
sOutput = lens _sOutput (\ s a -> s{_sOutput = a})
-- | Query term to search for.
sQuery :: Lens' Search (Maybe Text)
sQuery = lens _sQuery (\ s a -> s{_sQuery = a})
-- | Relevance scoring algorithm to use.
sScoring :: Lens' Search FreebaseSearchScoring
sScoring = lens _sScoring (\ s a -> s{_sScoring = a})
-- | Maximum number of results to return.
sLimit :: Lens' Search Int32
sLimit
= lens _sLimit (\ s a -> s{_sLimit = a}) . _Coerce
-- | A filter to apply to the query.
sFilter :: Lens' Search [Text]
sFilter
= lens _sFilter (\ s a -> s{_sFilter = a}) . _Default
. _Coerce
-- | The MQL query to run againist the results to extract more data.
sMqlOutput :: Lens' Search (Maybe Text)
sMqlOutput
= lens _sMqlOutput (\ s a -> s{_sMqlOutput = a})
-- | A mid to use instead of a query.
sMid :: Lens' Search [Text]
sMid
= lens _sMid (\ s a -> s{_sMid = a}) . _Default .
_Coerce
-- | Restrict to topics with this Freebase type id.
sType :: Lens' Search [Text]
sType
= lens _sType (\ s a -> s{_sType = a}) . _Default .
_Coerce
-- | Query on stemmed names and aliases. May not be used with prefixed.
sStemmed :: Lens' Search (Maybe Bool)
sStemmed = lens _sStemmed (\ s a -> s{_sStemmed = a})
-- | Query on exact name and keys only.
sExact :: Lens' Search (Maybe Bool)
sExact = lens _sExact (\ s a -> s{_sExact = a})
-- | Request \'did you mean\' suggestions
sSpell :: Lens' Search FreebaseSearchSpell
sSpell = lens _sSpell (\ s a -> s{_sSpell = a})
-- | A mql as_of_time value to use with mql_output queries.
sAsOfTime :: Lens' Search (Maybe Text)
sAsOfTime
= lens _sAsOfTime (\ s a -> s{_sAsOfTime = a})
-- | The encoding of the response. You can use this parameter to enable html
-- encoding.
sEncode :: Lens' Search FreebaseSearchEncode
sEncode = lens _sEncode (\ s a -> s{_sEncode = a})
-- | Prefix match against names and aliases.
sPrefixed :: Lens' Search (Maybe Bool)
sPrefixed
= lens _sPrefixed (\ s a -> s{_sPrefixed = a})
-- | JS method name for JSONP callbacks.
sCallback :: Lens' Search (Maybe Text)
sCallback
= lens _sCallback (\ s a -> s{_sCallback = a})
instance GoogleRequest Search where
type Rs Search = ()
type Scopes Search = '[]
requestClient Search'{..}
= go (_sWithout ^. _Default) _sCursor
(_sWith ^. _Default)
(_sDomain ^. _Default)
(Just _sFormat)
_sHelp
(_sLang ^. _Default)
_sIndent
_sOutput
_sQuery
(Just _sScoring)
(Just _sLimit)
(_sFilter ^. _Default)
_sMqlOutput
(_sMid ^. _Default)
(_sType ^. _Default)
_sStemmed
_sExact
(Just _sSpell)
_sAsOfTime
(Just _sEncode)
_sPrefixed
_sCallback
(Just AltJSON)
freebaseSearchService
where go :<|> _
= buildClient (Proxy :: Proxy SearchMethod) mempty
instance GoogleRequest (MediaDownload Search) where
type Rs (MediaDownload Search) = Stream
type Scopes (MediaDownload Search) = Scopes Search
requestClient (MediaDownload Search'{..})
= go (_sWithout ^. _Default) _sCursor
(_sWith ^. _Default)
(_sDomain ^. _Default)
(Just _sFormat)
_sHelp
(_sLang ^. _Default)
_sIndent
_sOutput
_sQuery
(Just _sScoring)
(Just _sLimit)
(_sFilter ^. _Default)
_sMqlOutput
(_sMid ^. _Default)
(_sType ^. _Default)
_sStemmed
_sExact
(Just _sSpell)
_sAsOfTime
(Just _sEncode)
_sPrefixed
_sCallback
(Just AltMedia)
freebaseSearchService
where _ :<|> go
= buildClient (Proxy :: Proxy SearchMethod) mempty