{-# 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.MechanicalTurk.GetFileUploadURL -- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- The @GetFileUploadURL@ operation generates and returns a temporary URL. You use the temporary URL to retrieve a file uploaded by a Worker as an answer to a FileUploadAnswer question for a HIT. The temporary URL is generated the instant the GetFileUploadURL operation is called, and is valid for 60 seconds. You can get a temporary file upload URL any time until the HIT is disposed. After the HIT is disposed, any uploaded files are deleted, and cannot be retrieved. -- -- module Network.AWS.MechanicalTurk.GetFileUploadURL ( -- * Creating a Request getFileUploadURL , GetFileUploadURL -- * Request Lenses , gfuuAssignmentId , gfuuQuestionIdentifier -- * Destructuring the Response , getFileUploadURLResponse , GetFileUploadURLResponse -- * Response Lenses , gfuursFileUploadURL , gfuursResponseStatus ) where import Network.AWS.Lens import Network.AWS.MechanicalTurk.Types import Network.AWS.MechanicalTurk.Types.Product import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | /See:/ 'getFileUploadURL' smart constructor. data GetFileUploadURL = GetFileUploadURL' { _gfuuAssignmentId :: !Text , _gfuuQuestionIdentifier :: !Text } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'GetFileUploadURL' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'gfuuAssignmentId' - The ID of the assignment that contains the question with a FileUploadAnswer. -- -- * 'gfuuQuestionIdentifier' - The identifier of the question with a FileUploadAnswer, as specified in the QuestionForm of the HIT. getFileUploadURL :: Text -- ^ 'gfuuAssignmentId' -> Text -- ^ 'gfuuQuestionIdentifier' -> GetFileUploadURL getFileUploadURL pAssignmentId_ pQuestionIdentifier_ = GetFileUploadURL' { _gfuuAssignmentId = pAssignmentId_ , _gfuuQuestionIdentifier = pQuestionIdentifier_ } -- | The ID of the assignment that contains the question with a FileUploadAnswer. gfuuAssignmentId :: Lens' GetFileUploadURL Text gfuuAssignmentId = lens _gfuuAssignmentId (\ s a -> s{_gfuuAssignmentId = a}); -- | The identifier of the question with a FileUploadAnswer, as specified in the QuestionForm of the HIT. gfuuQuestionIdentifier :: Lens' GetFileUploadURL Text gfuuQuestionIdentifier = lens _gfuuQuestionIdentifier (\ s a -> s{_gfuuQuestionIdentifier = a}); instance AWSRequest GetFileUploadURL where type Rs GetFileUploadURL = GetFileUploadURLResponse request = postJSON mechanicalTurk response = receiveJSON (\ s h x -> GetFileUploadURLResponse' <$> (x .?> "FileUploadURL") <*> (pure (fromEnum s))) instance Hashable GetFileUploadURL where instance NFData GetFileUploadURL where instance ToHeaders GetFileUploadURL where toHeaders = const (mconcat ["X-Amz-Target" =# ("MTurkRequesterServiceV20170117.GetFileUploadURL" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON GetFileUploadURL where toJSON GetFileUploadURL'{..} = object (catMaybes [Just ("AssignmentId" .= _gfuuAssignmentId), Just ("QuestionIdentifier" .= _gfuuQuestionIdentifier)]) instance ToPath GetFileUploadURL where toPath = const "/" instance ToQuery GetFileUploadURL where toQuery = const mempty -- | /See:/ 'getFileUploadURLResponse' smart constructor. data GetFileUploadURLResponse = GetFileUploadURLResponse' { _gfuursFileUploadURL :: !(Maybe Text) , _gfuursResponseStatus :: !Int } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'GetFileUploadURLResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'gfuursFileUploadURL' - A temporary URL for the file that the Worker uploaded for the answer. -- -- * 'gfuursResponseStatus' - -- | The response status code. getFileUploadURLResponse :: Int -- ^ 'gfuursResponseStatus' -> GetFileUploadURLResponse getFileUploadURLResponse pResponseStatus_ = GetFileUploadURLResponse' {_gfuursFileUploadURL = Nothing, _gfuursResponseStatus = pResponseStatus_} -- | A temporary URL for the file that the Worker uploaded for the answer. gfuursFileUploadURL :: Lens' GetFileUploadURLResponse (Maybe Text) gfuursFileUploadURL = lens _gfuursFileUploadURL (\ s a -> s{_gfuursFileUploadURL = a}); -- | -- | The response status code. gfuursResponseStatus :: Lens' GetFileUploadURLResponse Int gfuursResponseStatus = lens _gfuursResponseStatus (\ s a -> s{_gfuursResponseStatus = a}); instance NFData GetFileUploadURLResponse where