{-# 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.StartTranscriptionJob -- Copyright : (c) 2013-2018 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Starts an asynchronous job to transcribe speech to text. -- -- module Network.AWS.Transcribe.StartTranscriptionJob ( -- * Creating a Request startTranscriptionJob , StartTranscriptionJob -- * Request Lenses , stjSettings , stjMediaSampleRateHertz , stjTranscriptionJobName , stjLanguageCode , stjMediaFormat , stjMedia -- * Destructuring the Response , startTranscriptionJobResponse , StartTranscriptionJobResponse -- * Response Lenses , 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 -- | /See:/ 'startTranscriptionJob' smart constructor. data StartTranscriptionJob = StartTranscriptionJob' { _stjSettings :: !(Maybe Settings) , _stjMediaSampleRateHertz :: !(Maybe Nat) , _stjTranscriptionJobName :: !Text , _stjLanguageCode :: !LanguageCode , _stjMediaFormat :: !MediaFormat , _stjMedia :: !Media } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'StartTranscriptionJob' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'stjSettings' - A @Settings@ object that provides optional settings for a transcription job. -- -- * 'stjMediaSampleRateHertz' - The sample rate, in Hertz, of the audio track in the input media file. -- -- * 'stjTranscriptionJobName' - The name of the job. The name must be unique within an AWS account. -- -- * 'stjLanguageCode' - The language code for the language used in the input media file. -- -- * 'stjMediaFormat' - The format of the input media file. -- -- * 'stjMedia' - An object that describes the input media for a transcription job. startTranscriptionJob :: Text -- ^ 'stjTranscriptionJobName' -> LanguageCode -- ^ 'stjLanguageCode' -> MediaFormat -- ^ 'stjMediaFormat' -> Media -- ^ 'stjMedia' -> StartTranscriptionJob startTranscriptionJob pTranscriptionJobName_ pLanguageCode_ pMediaFormat_ pMedia_ = StartTranscriptionJob' { _stjSettings = Nothing , _stjMediaSampleRateHertz = Nothing , _stjTranscriptionJobName = pTranscriptionJobName_ , _stjLanguageCode = pLanguageCode_ , _stjMediaFormat = pMediaFormat_ , _stjMedia = pMedia_ } -- | A @Settings@ object that provides optional settings for a transcription job. stjSettings :: Lens' StartTranscriptionJob (Maybe Settings) stjSettings = lens _stjSettings (\ s a -> s{_stjSettings = a}) -- | The sample rate, in Hertz, of the audio track in the input media file. stjMediaSampleRateHertz :: Lens' StartTranscriptionJob (Maybe Natural) stjMediaSampleRateHertz = lens _stjMediaSampleRateHertz (\ s a -> s{_stjMediaSampleRateHertz = a}) . mapping _Nat -- | The name of the job. The name must be unique within an AWS account. stjTranscriptionJobName :: Lens' StartTranscriptionJob Text stjTranscriptionJobName = lens _stjTranscriptionJobName (\ s a -> s{_stjTranscriptionJobName = a}) -- | The language code for the language used in the input media file. stjLanguageCode :: Lens' StartTranscriptionJob LanguageCode stjLanguageCode = lens _stjLanguageCode (\ s a -> s{_stjLanguageCode = a}) -- | The format of the input media file. stjMediaFormat :: Lens' StartTranscriptionJob MediaFormat stjMediaFormat = lens _stjMediaFormat (\ s a -> s{_stjMediaFormat = a}) -- | An object that describes the input media for a transcription job. 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 -- | /See:/ 'startTranscriptionJobResponse' smart constructor. data StartTranscriptionJobResponse = StartTranscriptionJobResponse' { _stjrsTranscriptionJob :: !(Maybe TranscriptionJob) , _stjrsResponseStatus :: !Int } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'StartTranscriptionJobResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'stjrsTranscriptionJob' - An object containing details of the asynchronous transcription job. -- -- * 'stjrsResponseStatus' - -- | The response status code. startTranscriptionJobResponse :: Int -- ^ 'stjrsResponseStatus' -> StartTranscriptionJobResponse startTranscriptionJobResponse pResponseStatus_ = StartTranscriptionJobResponse' {_stjrsTranscriptionJob = Nothing, _stjrsResponseStatus = pResponseStatus_} -- | An object containing details of the asynchronous transcription job. stjrsTranscriptionJob :: Lens' StartTranscriptionJobResponse (Maybe TranscriptionJob) stjrsTranscriptionJob = lens _stjrsTranscriptionJob (\ s a -> s{_stjrsTranscriptionJob = a}) -- | -- | The response status code. stjrsResponseStatus :: Lens' StartTranscriptionJobResponse Int stjrsResponseStatus = lens _stjrsResponseStatus (\ s a -> s{_stjrsResponseStatus = a}) instance NFData StartTranscriptionJobResponse where