{-# 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.ListAssignmentsForHIT -- Copyright : (c) 2013-2018 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- The @ListAssignmentsForHIT@ operation retrieves completed assignments for a HIT. You can use this operation to retrieve the results for a HIT. -- -- -- You can get assignments for a HIT at any time, even if the HIT is not yet Reviewable. If a HIT requested multiple assignments, and has received some results but has not yet become Reviewable, you can still retrieve the partial results with this operation. -- -- Use the AssignmentStatus parameter to control which set of assignments for a HIT are returned. The ListAssignmentsForHIT operation can return submitted assignments awaiting approval, or it can return assignments that have already been approved or rejected. You can set AssignmentStatus=Approved,Rejected to get assignments that have already been approved and rejected together in one result set. -- -- Only the Requester who created the HIT can retrieve the assignments for that HIT. -- -- Results are sorted and divided into numbered pages and the operation returns a single page of results. You can use the parameters of the operation to control sorting and pagination. -- -- -- This operation returns paginated results. module Network.AWS.MechanicalTurk.ListAssignmentsForHIT ( -- * Creating a Request listAssignmentsForHIT , ListAssignmentsForHIT -- * Request Lenses , lafhitAssignmentStatuses , lafhitNextToken , lafhitMaxResults , lafhitHITId -- * Destructuring the Response , listAssignmentsForHITResponse , ListAssignmentsForHITResponse -- * Response Lenses , lafhitrsNextToken , lafhitrsNumResults , lafhitrsAssignments , lafhitrsResponseStatus ) where import Network.AWS.Lens import Network.AWS.MechanicalTurk.Types import Network.AWS.MechanicalTurk.Types.Product import Network.AWS.Pager import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | /See:/ 'listAssignmentsForHIT' smart constructor. data ListAssignmentsForHIT = ListAssignmentsForHIT' { _lafhitAssignmentStatuses :: !(Maybe [AssignmentStatus]) , _lafhitNextToken :: !(Maybe Text) , _lafhitMaxResults :: !(Maybe Nat) , _lafhitHITId :: !Text } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'ListAssignmentsForHIT' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'lafhitAssignmentStatuses' - The status of the assignments to return: Submitted | Approved | Rejected -- -- * 'lafhitNextToken' - Pagination token -- -- * 'lafhitMaxResults' - Undocumented member. -- -- * 'lafhitHITId' - The ID of the HIT. listAssignmentsForHIT :: Text -- ^ 'lafhitHITId' -> ListAssignmentsForHIT listAssignmentsForHIT pHITId_ = ListAssignmentsForHIT' { _lafhitAssignmentStatuses = Nothing , _lafhitNextToken = Nothing , _lafhitMaxResults = Nothing , _lafhitHITId = pHITId_ } -- | The status of the assignments to return: Submitted | Approved | Rejected lafhitAssignmentStatuses :: Lens' ListAssignmentsForHIT [AssignmentStatus] lafhitAssignmentStatuses = lens _lafhitAssignmentStatuses (\ s a -> s{_lafhitAssignmentStatuses = a}) . _Default . _Coerce -- | Pagination token lafhitNextToken :: Lens' ListAssignmentsForHIT (Maybe Text) lafhitNextToken = lens _lafhitNextToken (\ s a -> s{_lafhitNextToken = a}) -- | Undocumented member. lafhitMaxResults :: Lens' ListAssignmentsForHIT (Maybe Natural) lafhitMaxResults = lens _lafhitMaxResults (\ s a -> s{_lafhitMaxResults = a}) . mapping _Nat -- | The ID of the HIT. lafhitHITId :: Lens' ListAssignmentsForHIT Text lafhitHITId = lens _lafhitHITId (\ s a -> s{_lafhitHITId = a}) instance AWSPager ListAssignmentsForHIT where page rq rs | stop (rs ^. lafhitrsNextToken) = Nothing | stop (rs ^. lafhitrsAssignments) = Nothing | otherwise = Just $ rq & lafhitNextToken .~ rs ^. lafhitrsNextToken instance AWSRequest ListAssignmentsForHIT where type Rs ListAssignmentsForHIT = ListAssignmentsForHITResponse request = postJSON mechanicalTurk response = receiveJSON (\ s h x -> ListAssignmentsForHITResponse' <$> (x .?> "NextToken") <*> (x .?> "NumResults") <*> (x .?> "Assignments" .!@ mempty) <*> (pure (fromEnum s))) instance Hashable ListAssignmentsForHIT where instance NFData ListAssignmentsForHIT where instance ToHeaders ListAssignmentsForHIT where toHeaders = const (mconcat ["X-Amz-Target" =# ("MTurkRequesterServiceV20170117.ListAssignmentsForHIT" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON ListAssignmentsForHIT where toJSON ListAssignmentsForHIT'{..} = object (catMaybes [("AssignmentStatuses" .=) <$> _lafhitAssignmentStatuses, ("NextToken" .=) <$> _lafhitNextToken, ("MaxResults" .=) <$> _lafhitMaxResults, Just ("HITId" .= _lafhitHITId)]) instance ToPath ListAssignmentsForHIT where toPath = const "/" instance ToQuery ListAssignmentsForHIT where toQuery = const mempty -- | /See:/ 'listAssignmentsForHITResponse' smart constructor. data ListAssignmentsForHITResponse = ListAssignmentsForHITResponse' { _lafhitrsNextToken :: !(Maybe Text) , _lafhitrsNumResults :: !(Maybe Int) , _lafhitrsAssignments :: !(Maybe [Assignment]) , _lafhitrsResponseStatus :: !Int } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'ListAssignmentsForHITResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'lafhitrsNextToken' - Undocumented member. -- -- * 'lafhitrsNumResults' - The number of assignments on the page in the filtered results list, equivalent to the number of assignments returned by this call. -- -- * 'lafhitrsAssignments' - The collection of Assignment data structures returned by this call. -- -- * 'lafhitrsResponseStatus' - -- | The response status code. listAssignmentsForHITResponse :: Int -- ^ 'lafhitrsResponseStatus' -> ListAssignmentsForHITResponse listAssignmentsForHITResponse pResponseStatus_ = ListAssignmentsForHITResponse' { _lafhitrsNextToken = Nothing , _lafhitrsNumResults = Nothing , _lafhitrsAssignments = Nothing , _lafhitrsResponseStatus = pResponseStatus_ } -- | Undocumented member. lafhitrsNextToken :: Lens' ListAssignmentsForHITResponse (Maybe Text) lafhitrsNextToken = lens _lafhitrsNextToken (\ s a -> s{_lafhitrsNextToken = a}) -- | The number of assignments on the page in the filtered results list, equivalent to the number of assignments returned by this call. lafhitrsNumResults :: Lens' ListAssignmentsForHITResponse (Maybe Int) lafhitrsNumResults = lens _lafhitrsNumResults (\ s a -> s{_lafhitrsNumResults = a}) -- | The collection of Assignment data structures returned by this call. lafhitrsAssignments :: Lens' ListAssignmentsForHITResponse [Assignment] lafhitrsAssignments = lens _lafhitrsAssignments (\ s a -> s{_lafhitrsAssignments = a}) . _Default . _Coerce -- | -- | The response status code. lafhitrsResponseStatus :: Lens' ListAssignmentsForHITResponse Int lafhitrsResponseStatus = lens _lafhitrsResponseStatus (\ s a -> s{_lafhitrsResponseStatus = a}) instance NFData ListAssignmentsForHITResponse where