-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Google Translate API bindings
--   
--   Google Translate Library
@package google-translate
@version 0.4.1


module Web.Google.Translate

-- | Detect target language
detect :: Manager -> Key -> Body -> IO (Either ServantError DetectionResponse)

-- | Retrieve all languages If <a>Target</a> specified, return langauge
--   name in <a>Target</a> langauge.
getLanguages :: Manager -> Key -> Maybe Target -> IO (Either ServantError LanguageResponse)

-- | Perform translation from <a>Source</a> language to <a>Target</a>
--   langauge. If <a>Source</a> not specified, attempt detection of
--   <a>Lang</a>
translate :: Manager -> Key -> Maybe Source -> Target -> Body -> IO (Either ServantError TranslationResponse)

-- | Google Translate API
type GoogleTranslateAPI = ("language" :> ("translate" :> ("v2" :> (QueryParam "key" Key :> (QueryParam "source" Source :> (QueryParam "target" Target :> (QueryParam "q" Body :> Get '[JSON] TranslationResponse))))))) :<|> (("language" :> ("translate" :> ("v2" :> ("detect" :> (QueryParam "key" Key :> (QueryParam "q" Body :> Get '[JSON] DetectionResponse)))))) :<|> ("language" :> ("translate" :> ("v2" :> ("languages" :> (QueryParam "key" Key :> (QueryParam "target" Target :> Get '[JSON] LanguageResponse)))))))

-- | API type
api :: Proxy GoogleTranslateAPI

-- | API Key
newtype Key
Key :: Text -> Key

-- | Source Language
newtype Source
Source :: Lang -> Source

-- | Target Language
newtype Target
Target :: Lang -> Target

-- | Text for translation
newtype Body
Body :: Text -> Body

-- | Languages for translation
data Lang
Afrikaans :: Lang
Albanian :: Lang
Arabic :: Lang
Armenian :: Lang
Azerbaijani :: Lang
Basque :: Lang
Belarusian :: Lang
Bengali :: Lang
Bosnian :: Lang
Bulgarian :: Lang
Catalan :: Lang
Cebuano :: Lang
Chichewa :: Lang
ChineseSimplified :: Lang
ChineseTraditional :: Lang
Croatian :: Lang
Czech :: Lang
Danish :: Lang
Dutch :: Lang
English :: Lang
Esperanto :: Lang
Estonian :: Lang
Filipino :: Lang
Finnish :: Lang
French :: Lang
Galician :: Lang
Georgian :: Lang
German :: Lang
Greek :: Lang
Gujarati :: Lang
HaitianCreole :: Lang
Hausa :: Lang
Hebrew :: Lang
Hindi :: Lang
Hmong :: Lang
Hungarian :: Lang
Icelandic :: Lang
Igbo :: Lang
Indonesian :: Lang
Irish :: Lang
Italian :: Lang
Japanese :: Lang
Javanese :: Lang
Kannada :: Lang
Kazakh :: Lang
Khmer :: Lang
Korean :: Lang
Lao :: Lang
Latin :: Lang
Latvian :: Lang
Lithuanian :: Lang
Macedonian :: Lang
Malagasy :: Lang
Malay :: Lang
Malayalam :: Lang
Maltese :: Lang
Maori :: Lang
Marathi :: Lang
Mongolian :: Lang
MyanmarBurmese :: Lang
Nepali :: Lang
Norwegian :: Lang
Persian :: Lang
Polish :: Lang
Portuguese :: Lang
Punjabi :: Lang
Romanian :: Lang
Russian :: Lang
Serbian :: Lang
Sesotho :: Lang
Sinhala :: Lang
Slovak :: Lang
Slovenian :: Lang
Somali :: Lang
Spanish :: Lang
Sundanese :: Lang
Swahili :: Lang
Swedish :: Lang
Tajik :: Lang
Tamil :: Lang
Telugu :: Lang
Thai :: Lang
Turkish :: Lang
Ukrainian :: Lang
Urdu :: Lang
Uzbek :: Lang
Vietnamese :: Lang
Welsh :: Lang
Yiddish :: Lang
Yoruba :: Lang
Zulu :: Lang

-- | Confidence
newtype Confidence
Confidence :: Double -> Confidence

-- | IsReliable
newtype IsReliable
IsReliable :: Bool -> IsReliable

-- | Translated Text
newtype TranslatedText
TranslatedText :: Text -> TranslatedText

-- | Translation Reponse
data TranslationResponse
TranslationResponse :: [Translation] -> TranslationResponse
[translations] :: TranslationResponse -> [Translation]

-- | Translation
data Translation
Translation :: TranslatedText -> Maybe Lang -> Translation
[translatedText] :: Translation -> TranslatedText
[detectedSourceLanguage] :: Translation -> Maybe Lang

-- | Detection Response
data DetectionResponse
DetectionResponse :: [[Detection]] -> DetectionResponse
[detections] :: DetectionResponse -> [[Detection]]

-- | Detection
data Detection
Detection :: Lang -> IsReliable -> Confidence -> Detection
[language] :: Detection -> Lang
[isReliable] :: Detection -> IsReliable
[confidence] :: Detection -> Confidence

-- | Language Response
data LanguageResponse
LanguageResponse :: [Language] -> LanguageResponse
[languages] :: LanguageResponse -> [Language]

-- | Language Name
newtype LanguageName
LanguageName :: Text -> LanguageName

-- | Language
data Language
Language :: Lang -> Maybe LanguageName -> Language
[lang] :: Language -> Lang
[name] :: Language -> Maybe LanguageName
instance GHC.Classes.Ord Web.Google.Translate.Source
instance GHC.Classes.Eq Web.Google.Translate.Source
instance GHC.Show.Show Web.Google.Translate.Source
instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Translate.Source
instance GHC.Classes.Ord Web.Google.Translate.Target
instance GHC.Classes.Eq Web.Google.Translate.Target
instance GHC.Show.Show Web.Google.Translate.Target
instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Translate.Target
instance GHC.Generics.Generic Web.Google.Translate.TranslationResponse
instance GHC.Classes.Ord Web.Google.Translate.TranslationResponse
instance GHC.Classes.Eq Web.Google.Translate.TranslationResponse
instance GHC.Show.Show Web.Google.Translate.TranslationResponse
instance GHC.Classes.Ord Web.Google.Translate.Translation
instance GHC.Generics.Generic Web.Google.Translate.Translation
instance GHC.Classes.Eq Web.Google.Translate.Translation
instance GHC.Show.Show Web.Google.Translate.Translation
instance GHC.Generics.Generic Web.Google.Translate.DetectionResponse
instance GHC.Classes.Ord Web.Google.Translate.DetectionResponse
instance GHC.Classes.Eq Web.Google.Translate.DetectionResponse
instance GHC.Show.Show Web.Google.Translate.DetectionResponse
instance GHC.Classes.Ord Web.Google.Translate.Detection
instance GHC.Generics.Generic Web.Google.Translate.Detection
instance GHC.Classes.Eq Web.Google.Translate.Detection
instance GHC.Show.Show Web.Google.Translate.Detection
instance GHC.Generics.Generic Web.Google.Translate.LanguageResponse
instance GHC.Classes.Ord Web.Google.Translate.LanguageResponse
instance GHC.Classes.Eq Web.Google.Translate.LanguageResponse
instance GHC.Show.Show Web.Google.Translate.LanguageResponse
instance GHC.Classes.Ord Web.Google.Translate.Language
instance GHC.Generics.Generic Web.Google.Translate.Language
instance GHC.Classes.Eq Web.Google.Translate.Language
instance GHC.Show.Show Web.Google.Translate.Language
instance GHC.Classes.Ord Web.Google.Translate.Lang
instance GHC.Classes.Eq Web.Google.Translate.Lang
instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Translate.LanguageName
instance GHC.Classes.Ord Web.Google.Translate.LanguageName
instance GHC.Classes.Eq Web.Google.Translate.LanguageName
instance GHC.Show.Show Web.Google.Translate.LanguageName
instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Translate.IsReliable
instance GHC.Classes.Ord Web.Google.Translate.IsReliable
instance GHC.Classes.Eq Web.Google.Translate.IsReliable
instance GHC.Show.Show Web.Google.Translate.IsReliable
instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Translate.Confidence
instance GHC.Classes.Ord Web.Google.Translate.Confidence
instance GHC.Classes.Eq Web.Google.Translate.Confidence
instance GHC.Show.Show Web.Google.Translate.Confidence
instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Translate.TranslatedText
instance GHC.Classes.Ord Web.Google.Translate.TranslatedText
instance GHC.Classes.Eq Web.Google.Translate.TranslatedText
instance GHC.Show.Show Web.Google.Translate.TranslatedText
instance Web.Internal.HttpApiData.FromHttpApiData Web.Google.Translate.TranslatedText
instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Translate.TranslatedText
instance GHC.Classes.Ord Web.Google.Translate.Body
instance GHC.Classes.Eq Web.Google.Translate.Body
instance GHC.Show.Show Web.Google.Translate.Body
instance Web.Internal.HttpApiData.FromHttpApiData Web.Google.Translate.Body
instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Translate.Body
instance GHC.Classes.Ord Web.Google.Translate.Key
instance GHC.Classes.Eq Web.Google.Translate.Key
instance GHC.Show.Show Web.Google.Translate.Key
instance Web.Internal.HttpApiData.FromHttpApiData Web.Google.Translate.Key
instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Translate.Key
instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Translate.TranslationResponse
instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Translate.Translation
instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Translate.DetectionResponse
instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Translate.Detection
instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Translate.LanguageResponse
instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Translate.Language
instance GHC.Show.Show Web.Google.Translate.Lang
instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Translate.Lang
instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Translate.Lang
instance Data.Aeson.Types.ToJSON.ToJSON Web.Google.Translate.Lang
