{-# 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 #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Network.AWS.Translate.TranslateText -- Copyright : (c) 2013-2018 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Translates input text from the source language to the target language. You can translate between English (en) and one of the following languages, or between one of the following languages and English. -- -- -- * Arabic (ar) -- -- * Chinese (Simplified) (zh) -- -- * French (fr) -- -- * German (de) -- -- * Portuguese (pt) -- -- * Spanish (es) -- -- -- -- To have Amazon Translate determine the source language of your text, you can specify @auto@ in the @SourceLanguageCode@ field. If you specify @auto@ , Amazon Translate will call Amazon Comprehend to determine the source language. -- module Network.AWS.Translate.TranslateText ( -- * Creating a Request translateText , TranslateText -- * Request Lenses , ttText , ttSourceLanguageCode , ttTargetLanguageCode -- * Destructuring the Response , translateTextResponse , TranslateTextResponse -- * Response Lenses , 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 -- | /See:/ 'translateText' smart constructor. data TranslateText = TranslateText' { _ttText :: !Text , _ttSourceLanguageCode :: !Text , _ttTargetLanguageCode :: !Text } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'TranslateText' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'ttText' - The text to translate. -- -- * 'ttSourceLanguageCode' - One of the supported language codes for the source text. If the @TargetLanguageCode@ is not "en", the @SourceLanguageCode@ must be "en". To have Amazon Translate determine the source language of your text, you can specify @auto@ in the @SourceLanguageCode@ field. If you specify @auto@ , Amazon Translate will call Amazon Comprehend to determine the source language. -- -- * 'ttTargetLanguageCode' - One of the supported language codes for the target text. If the @SourceLanguageCode@ is not "en", the @TargetLanguageCode@ must be "en". translateText :: Text -- ^ 'ttText' -> Text -- ^ 'ttSourceLanguageCode' -> Text -- ^ 'ttTargetLanguageCode' -> TranslateText translateText pText_ pSourceLanguageCode_ pTargetLanguageCode_ = TranslateText' { _ttText = pText_ , _ttSourceLanguageCode = pSourceLanguageCode_ , _ttTargetLanguageCode = pTargetLanguageCode_ } -- | The text to translate. ttText :: Lens' TranslateText Text ttText = lens _ttText (\ s a -> s{_ttText = a}) -- | One of the supported language codes for the source text. If the @TargetLanguageCode@ is not "en", the @SourceLanguageCode@ must be "en". To have Amazon Translate determine the source language of your text, you can specify @auto@ in the @SourceLanguageCode@ field. If you specify @auto@ , Amazon Translate will call Amazon Comprehend to determine the source language. ttSourceLanguageCode :: Lens' TranslateText Text ttSourceLanguageCode = lens _ttSourceLanguageCode (\ s a -> s{_ttSourceLanguageCode = a}) -- | One of the supported language codes for the target text. If the @SourceLanguageCode@ is not "en", the @TargetLanguageCode@ must be "en". 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 -- | /See:/ 'translateTextResponse' smart constructor. data TranslateTextResponse = TranslateTextResponse' { _ttrsResponseStatus :: !Int , _ttrsTranslatedText :: !Text , _ttrsSourceLanguageCode :: !Text , _ttrsTargetLanguageCode :: !Text } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'TranslateTextResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'ttrsResponseStatus' - -- | The response status code. -- -- * 'ttrsTranslatedText' - The text translated into the target language. -- -- * 'ttrsSourceLanguageCode' - The language code for the language of the input text. -- -- * 'ttrsTargetLanguageCode' - The language code for the language of the translated text. translateTextResponse :: Int -- ^ 'ttrsResponseStatus' -> Text -- ^ 'ttrsTranslatedText' -> Text -- ^ 'ttrsSourceLanguageCode' -> Text -- ^ 'ttrsTargetLanguageCode' -> TranslateTextResponse translateTextResponse pResponseStatus_ pTranslatedText_ pSourceLanguageCode_ pTargetLanguageCode_ = TranslateTextResponse' { _ttrsResponseStatus = pResponseStatus_ , _ttrsTranslatedText = pTranslatedText_ , _ttrsSourceLanguageCode = pSourceLanguageCode_ , _ttrsTargetLanguageCode = pTargetLanguageCode_ } -- | -- | The response status code. ttrsResponseStatus :: Lens' TranslateTextResponse Int ttrsResponseStatus = lens _ttrsResponseStatus (\ s a -> s{_ttrsResponseStatus = a}) -- | The text translated into the target language. ttrsTranslatedText :: Lens' TranslateTextResponse Text ttrsTranslatedText = lens _ttrsTranslatedText (\ s a -> s{_ttrsTranslatedText = a}) -- | The language code for the language of the input text. ttrsSourceLanguageCode :: Lens' TranslateTextResponse Text ttrsSourceLanguageCode = lens _ttrsSourceLanguageCode (\ s a -> s{_ttrsSourceLanguageCode = a}) -- | The language code for the language of the translated text. ttrsTargetLanguageCode :: Lens' TranslateTextResponse Text ttrsTargetLanguageCode = lens _ttrsTargetLanguageCode (\ s a -> s{_ttrsTargetLanguageCode = a}) instance NFData TranslateTextResponse where