{-# 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.StartTranscriptionJob
(
startTranscriptionJob
, StartTranscriptionJob
, stjSettings
, stjMediaSampleRateHertz
, stjTranscriptionJobName
, stjLanguageCode
, stjMediaFormat
, stjMedia
, startTranscriptionJobResponse
, StartTranscriptionJobResponse
, stjrsTranscriptionJob
, stjrsResponseStatus
) 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 StartTranscriptionJob = StartTranscriptionJob'
{ _stjSettings :: !(Maybe Settings)
, _stjMediaSampleRateHertz :: !(Maybe Nat)
, _stjTranscriptionJobName :: !Text
, _stjLanguageCode :: !LanguageCode
, _stjMediaFormat :: !MediaFormat
, _stjMedia :: !Media
} deriving (Eq, Read, Show, Data, Typeable, Generic)
startTranscriptionJob
:: Text
-> LanguageCode
-> MediaFormat
-> Media
-> StartTranscriptionJob
startTranscriptionJob pTranscriptionJobName_ pLanguageCode_ pMediaFormat_ pMedia_ =
StartTranscriptionJob'
{ _stjSettings = Nothing
, _stjMediaSampleRateHertz = Nothing
, _stjTranscriptionJobName = pTranscriptionJobName_
, _stjLanguageCode = pLanguageCode_
, _stjMediaFormat = pMediaFormat_
, _stjMedia = pMedia_
}
stjSettings :: Lens' StartTranscriptionJob (Maybe Settings)
stjSettings = lens _stjSettings (\ s a -> s{_stjSettings = a})
stjMediaSampleRateHertz :: Lens' StartTranscriptionJob (Maybe Natural)
stjMediaSampleRateHertz = lens _stjMediaSampleRateHertz (\ s a -> s{_stjMediaSampleRateHertz = a}) . mapping _Nat
stjTranscriptionJobName :: Lens' StartTranscriptionJob Text
stjTranscriptionJobName = lens _stjTranscriptionJobName (\ s a -> s{_stjTranscriptionJobName = a})
stjLanguageCode :: Lens' StartTranscriptionJob LanguageCode
stjLanguageCode = lens _stjLanguageCode (\ s a -> s{_stjLanguageCode = a})
stjMediaFormat :: Lens' StartTranscriptionJob MediaFormat
stjMediaFormat = lens _stjMediaFormat (\ s a -> s{_stjMediaFormat = a})
stjMedia :: Lens' StartTranscriptionJob Media
stjMedia = lens _stjMedia (\ s a -> s{_stjMedia = a})
instance AWSRequest StartTranscriptionJob where
type Rs StartTranscriptionJob =
StartTranscriptionJobResponse
request = postJSON transcribe
response
= receiveJSON
(\ s h x ->
StartTranscriptionJobResponse' <$>
(x .?> "TranscriptionJob") <*> (pure (fromEnum s)))
instance Hashable StartTranscriptionJob where
instance NFData StartTranscriptionJob where
instance ToHeaders StartTranscriptionJob where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("Transcribe.StartTranscriptionJob" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON StartTranscriptionJob where
toJSON StartTranscriptionJob'{..}
= object
(catMaybes
[("Settings" .=) <$> _stjSettings,
("MediaSampleRateHertz" .=) <$>
_stjMediaSampleRateHertz,
Just
("TranscriptionJobName" .= _stjTranscriptionJobName),
Just ("LanguageCode" .= _stjLanguageCode),
Just ("MediaFormat" .= _stjMediaFormat),
Just ("Media" .= _stjMedia)])
instance ToPath StartTranscriptionJob where
toPath = const "/"
instance ToQuery StartTranscriptionJob where
toQuery = const mempty
data StartTranscriptionJobResponse = StartTranscriptionJobResponse'
{ _stjrsTranscriptionJob :: !(Maybe TranscriptionJob)
, _stjrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
startTranscriptionJobResponse
:: Int
-> StartTranscriptionJobResponse
startTranscriptionJobResponse pResponseStatus_ =
StartTranscriptionJobResponse'
{_stjrsTranscriptionJob = Nothing, _stjrsResponseStatus = pResponseStatus_}
stjrsTranscriptionJob :: Lens' StartTranscriptionJobResponse (Maybe TranscriptionJob)
stjrsTranscriptionJob = lens _stjrsTranscriptionJob (\ s a -> s{_stjrsTranscriptionJob = a})
stjrsResponseStatus :: Lens' StartTranscriptionJobResponse Int
stjrsResponseStatus = lens _stjrsResponseStatus (\ s a -> s{_stjrsResponseStatus = a})
instance NFData StartTranscriptionJobResponse where