{-# 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.Transcribe.UpdateVocabulary
(
updateVocabulary
, UpdateVocabulary
, uvVocabularyName
, uvLanguageCode
, uvPhrases
, updateVocabularyResponse
, UpdateVocabularyResponse
, uvrsLanguageCode
, uvrsVocabularyName
, uvrsLastModifiedTime
, uvrsVocabularyState
, uvrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.Transcribe.Types
import Network.AWS.Transcribe.Types.Product
data UpdateVocabulary = UpdateVocabulary'
{ _uvVocabularyName :: !Text
, _uvLanguageCode :: !LanguageCode
, _uvPhrases :: ![Text]
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateVocabulary
:: Text
-> LanguageCode
-> UpdateVocabulary
updateVocabulary pVocabularyName_ pLanguageCode_ =
UpdateVocabulary'
{ _uvVocabularyName = pVocabularyName_
, _uvLanguageCode = pLanguageCode_
, _uvPhrases = mempty
}
uvVocabularyName :: Lens' UpdateVocabulary Text
uvVocabularyName = lens _uvVocabularyName (\ s a -> s{_uvVocabularyName = a})
uvLanguageCode :: Lens' UpdateVocabulary LanguageCode
uvLanguageCode = lens _uvLanguageCode (\ s a -> s{_uvLanguageCode = a})
uvPhrases :: Lens' UpdateVocabulary [Text]
uvPhrases = lens _uvPhrases (\ s a -> s{_uvPhrases = a}) . _Coerce
instance AWSRequest UpdateVocabulary where
type Rs UpdateVocabulary = UpdateVocabularyResponse
request = postJSON transcribe
response
= receiveJSON
(\ s h x ->
UpdateVocabularyResponse' <$>
(x .?> "LanguageCode") <*> (x .?> "VocabularyName")
<*> (x .?> "LastModifiedTime")
<*> (x .?> "VocabularyState")
<*> (pure (fromEnum s)))
instance Hashable UpdateVocabulary where
instance NFData UpdateVocabulary where
instance ToHeaders UpdateVocabulary where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("Transcribe.UpdateVocabulary" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON UpdateVocabulary where
toJSON UpdateVocabulary'{..}
= object
(catMaybes
[Just ("VocabularyName" .= _uvVocabularyName),
Just ("LanguageCode" .= _uvLanguageCode),
Just ("Phrases" .= _uvPhrases)])
instance ToPath UpdateVocabulary where
toPath = const "/"
instance ToQuery UpdateVocabulary where
toQuery = const mempty
data UpdateVocabularyResponse = UpdateVocabularyResponse'
{ _uvrsLanguageCode :: !(Maybe LanguageCode)
, _uvrsVocabularyName :: !(Maybe Text)
, _uvrsLastModifiedTime :: !(Maybe POSIX)
, _uvrsVocabularyState :: !(Maybe VocabularyState)
, _uvrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateVocabularyResponse
:: Int
-> UpdateVocabularyResponse
updateVocabularyResponse pResponseStatus_ =
UpdateVocabularyResponse'
{ _uvrsLanguageCode = Nothing
, _uvrsVocabularyName = Nothing
, _uvrsLastModifiedTime = Nothing
, _uvrsVocabularyState = Nothing
, _uvrsResponseStatus = pResponseStatus_
}
uvrsLanguageCode :: Lens' UpdateVocabularyResponse (Maybe LanguageCode)
uvrsLanguageCode = lens _uvrsLanguageCode (\ s a -> s{_uvrsLanguageCode = a})
uvrsVocabularyName :: Lens' UpdateVocabularyResponse (Maybe Text)
uvrsVocabularyName = lens _uvrsVocabularyName (\ s a -> s{_uvrsVocabularyName = a})
uvrsLastModifiedTime :: Lens' UpdateVocabularyResponse (Maybe UTCTime)
uvrsLastModifiedTime = lens _uvrsLastModifiedTime (\ s a -> s{_uvrsLastModifiedTime = a}) . mapping _Time
uvrsVocabularyState :: Lens' UpdateVocabularyResponse (Maybe VocabularyState)
uvrsVocabularyState = lens _uvrsVocabularyState (\ s a -> s{_uvrsVocabularyState = a})
uvrsResponseStatus :: Lens' UpdateVocabularyResponse Int
uvrsResponseStatus = lens _uvrsResponseStatus (\ s a -> s{_uvrsResponseStatus = a})
instance NFData UpdateVocabularyResponse where