{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Network.AWS.Translate.TranslateText
(
translateText
, TranslateText
, ttText
, ttSourceLanguageCode
, ttTargetLanguageCode
, translateTextResponse
, TranslateTextResponse
, ttrsResponseStatus
, ttrsTranslatedText
, ttrsSourceLanguageCode
, ttrsTargetLanguageCode
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.Translate.Types
import Network.AWS.Translate.Types.Product
data TranslateText = TranslateText'
{ _ttText :: !Text
, _ttSourceLanguageCode :: !Text
, _ttTargetLanguageCode :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
translateText
:: Text
-> Text
-> Text
-> TranslateText
translateText pText_ pSourceLanguageCode_ pTargetLanguageCode_ =
TranslateText'
{ _ttText = pText_
, _ttSourceLanguageCode = pSourceLanguageCode_
, _ttTargetLanguageCode = pTargetLanguageCode_
}
ttText :: Lens' TranslateText Text
ttText = lens _ttText (\ s a -> s{_ttText = a})
ttSourceLanguageCode :: Lens' TranslateText Text
ttSourceLanguageCode = lens _ttSourceLanguageCode (\ s a -> s{_ttSourceLanguageCode = a})
ttTargetLanguageCode :: Lens' TranslateText Text
ttTargetLanguageCode = lens _ttTargetLanguageCode (\ s a -> s{_ttTargetLanguageCode = a})
instance AWSRequest TranslateText where
type Rs TranslateText = TranslateTextResponse
request = postJSON translate
response
= receiveJSON
(\ s h x ->
TranslateTextResponse' <$>
(pure (fromEnum s)) <*> (x .:> "TranslatedText") <*>
(x .:> "SourceLanguageCode")
<*> (x .:> "TargetLanguageCode"))
instance Hashable TranslateText where
instance NFData TranslateText where
instance ToHeaders TranslateText where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSShineFrontendService_20170701.TranslateText" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON TranslateText where
toJSON TranslateText'{..}
= object
(catMaybes
[Just ("Text" .= _ttText),
Just ("SourceLanguageCode" .= _ttSourceLanguageCode),
Just
("TargetLanguageCode" .= _ttTargetLanguageCode)])
instance ToPath TranslateText where
toPath = const "/"
instance ToQuery TranslateText where
toQuery = const mempty
data TranslateTextResponse = TranslateTextResponse'
{ _ttrsResponseStatus :: !Int
, _ttrsTranslatedText :: !Text
, _ttrsSourceLanguageCode :: !Text
, _ttrsTargetLanguageCode :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
translateTextResponse
:: Int
-> Text
-> Text
-> Text
-> TranslateTextResponse
translateTextResponse pResponseStatus_ pTranslatedText_ pSourceLanguageCode_ pTargetLanguageCode_ =
TranslateTextResponse'
{ _ttrsResponseStatus = pResponseStatus_
, _ttrsTranslatedText = pTranslatedText_
, _ttrsSourceLanguageCode = pSourceLanguageCode_
, _ttrsTargetLanguageCode = pTargetLanguageCode_
}
ttrsResponseStatus :: Lens' TranslateTextResponse Int
ttrsResponseStatus = lens _ttrsResponseStatus (\ s a -> s{_ttrsResponseStatus = a})
ttrsTranslatedText :: Lens' TranslateTextResponse Text
ttrsTranslatedText = lens _ttrsTranslatedText (\ s a -> s{_ttrsTranslatedText = a})
ttrsSourceLanguageCode :: Lens' TranslateTextResponse Text
ttrsSourceLanguageCode = lens _ttrsSourceLanguageCode (\ s a -> s{_ttrsSourceLanguageCode = a})
ttrsTargetLanguageCode :: Lens' TranslateTextResponse Text
ttrsTargetLanguageCode = lens _ttrsTargetLanguageCode (\ s a -> s{_ttrsTargetLanguageCode = a})
instance NFData TranslateTextResponse where