amazonka-transcribe-1.6.0: gen/Network/AWS/Transcribe/CreateVocabulary.hs
{-# 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.Transcribe.CreateVocabulary
-- Copyright : (c) 2013-2018 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates a new custom vocabulary that you can use to change the way Amazon Transcribe handles transcription of an audio file.
--
--
module Network.AWS.Transcribe.CreateVocabulary
(
-- * Creating a Request
createVocabulary
, CreateVocabulary
-- * Request Lenses
, cvVocabularyName
, cvLanguageCode
, cvPhrases
-- * Destructuring the Response
, createVocabularyResponse
, CreateVocabularyResponse
-- * Response Lenses
, cvrsFailureReason
, cvrsLanguageCode
, cvrsVocabularyName
, cvrsLastModifiedTime
, cvrsVocabularyState
, cvrsResponseStatus
) 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
-- | /See:/ 'createVocabulary' smart constructor.
data CreateVocabulary = CreateVocabulary'
{ _cvVocabularyName :: !Text
, _cvLanguageCode :: !LanguageCode
, _cvPhrases :: ![Text]
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'CreateVocabulary' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'cvVocabularyName' - The name of the vocabulary. The name must be unique within an AWS account. The name is case-sensitive.
--
-- * 'cvLanguageCode' - The language code of the vocabulary entries.
--
-- * 'cvPhrases' - An array of strings that contains the vocabulary entries.
createVocabulary
:: Text -- ^ 'cvVocabularyName'
-> LanguageCode -- ^ 'cvLanguageCode'
-> CreateVocabulary
createVocabulary pVocabularyName_ pLanguageCode_ =
CreateVocabulary'
{ _cvVocabularyName = pVocabularyName_
, _cvLanguageCode = pLanguageCode_
, _cvPhrases = mempty
}
-- | The name of the vocabulary. The name must be unique within an AWS account. The name is case-sensitive.
cvVocabularyName :: Lens' CreateVocabulary Text
cvVocabularyName = lens _cvVocabularyName (\ s a -> s{_cvVocabularyName = a})
-- | The language code of the vocabulary entries.
cvLanguageCode :: Lens' CreateVocabulary LanguageCode
cvLanguageCode = lens _cvLanguageCode (\ s a -> s{_cvLanguageCode = a})
-- | An array of strings that contains the vocabulary entries.
cvPhrases :: Lens' CreateVocabulary [Text]
cvPhrases = lens _cvPhrases (\ s a -> s{_cvPhrases = a}) . _Coerce
instance AWSRequest CreateVocabulary where
type Rs CreateVocabulary = CreateVocabularyResponse
request = postJSON transcribe
response
= receiveJSON
(\ s h x ->
CreateVocabularyResponse' <$>
(x .?> "FailureReason") <*> (x .?> "LanguageCode")
<*> (x .?> "VocabularyName")
<*> (x .?> "LastModifiedTime")
<*> (x .?> "VocabularyState")
<*> (pure (fromEnum s)))
instance Hashable CreateVocabulary where
instance NFData CreateVocabulary where
instance ToHeaders CreateVocabulary where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("Transcribe.CreateVocabulary" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateVocabulary where
toJSON CreateVocabulary'{..}
= object
(catMaybes
[Just ("VocabularyName" .= _cvVocabularyName),
Just ("LanguageCode" .= _cvLanguageCode),
Just ("Phrases" .= _cvPhrases)])
instance ToPath CreateVocabulary where
toPath = const "/"
instance ToQuery CreateVocabulary where
toQuery = const mempty
-- | /See:/ 'createVocabularyResponse' smart constructor.
data CreateVocabularyResponse = CreateVocabularyResponse'
{ _cvrsFailureReason :: !(Maybe Text)
, _cvrsLanguageCode :: !(Maybe LanguageCode)
, _cvrsVocabularyName :: !(Maybe Text)
, _cvrsLastModifiedTime :: !(Maybe POSIX)
, _cvrsVocabularyState :: !(Maybe VocabularyState)
, _cvrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'CreateVocabularyResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'cvrsFailureReason' - If the @VocabularyState@ field is @FAILED@ , this field contains information about why the job failed.
--
-- * 'cvrsLanguageCode' - The language code of the vocabulary entries.
--
-- * 'cvrsVocabularyName' - The name of the vocabulary.
--
-- * 'cvrsLastModifiedTime' - The date and time that the vocabulary was created.
--
-- * 'cvrsVocabularyState' - The processing state of the vocabulary. When the @VocabularyState@ field contains @READY@ the vocabulary is ready to be used in a @StartTranscriptionJob@ request.
--
-- * 'cvrsResponseStatus' - -- | The response status code.
createVocabularyResponse
:: Int -- ^ 'cvrsResponseStatus'
-> CreateVocabularyResponse
createVocabularyResponse pResponseStatus_ =
CreateVocabularyResponse'
{ _cvrsFailureReason = Nothing
, _cvrsLanguageCode = Nothing
, _cvrsVocabularyName = Nothing
, _cvrsLastModifiedTime = Nothing
, _cvrsVocabularyState = Nothing
, _cvrsResponseStatus = pResponseStatus_
}
-- | If the @VocabularyState@ field is @FAILED@ , this field contains information about why the job failed.
cvrsFailureReason :: Lens' CreateVocabularyResponse (Maybe Text)
cvrsFailureReason = lens _cvrsFailureReason (\ s a -> s{_cvrsFailureReason = a})
-- | The language code of the vocabulary entries.
cvrsLanguageCode :: Lens' CreateVocabularyResponse (Maybe LanguageCode)
cvrsLanguageCode = lens _cvrsLanguageCode (\ s a -> s{_cvrsLanguageCode = a})
-- | The name of the vocabulary.
cvrsVocabularyName :: Lens' CreateVocabularyResponse (Maybe Text)
cvrsVocabularyName = lens _cvrsVocabularyName (\ s a -> s{_cvrsVocabularyName = a})
-- | The date and time that the vocabulary was created.
cvrsLastModifiedTime :: Lens' CreateVocabularyResponse (Maybe UTCTime)
cvrsLastModifiedTime = lens _cvrsLastModifiedTime (\ s a -> s{_cvrsLastModifiedTime = a}) . mapping _Time
-- | The processing state of the vocabulary. When the @VocabularyState@ field contains @READY@ the vocabulary is ready to be used in a @StartTranscriptionJob@ request.
cvrsVocabularyState :: Lens' CreateVocabularyResponse (Maybe VocabularyState)
cvrsVocabularyState = lens _cvrsVocabularyState (\ s a -> s{_cvrsVocabularyState = a})
-- | -- | The response status code.
cvrsResponseStatus :: Lens' CreateVocabularyResponse Int
cvrsResponseStatus = lens _cvrsResponseStatus (\ s a -> s{_cvrsResponseStatus = a})
instance NFData CreateVocabularyResponse where