{-# 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.MechanicalTurk.ListWorkerBlocks
(
listWorkerBlocks
, ListWorkerBlocks
, lwbNextToken
, lwbMaxResults
, listWorkerBlocksResponse
, ListWorkerBlocksResponse
, lwbrsWorkerBlocks
, lwbrsNextToken
, lwbrsNumResults
, lwbrsResponseStatus
) 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
data ListWorkerBlocks = ListWorkerBlocks'
{ _lwbNextToken :: !(Maybe Text)
, _lwbMaxResults :: !(Maybe Nat)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listWorkerBlocks
:: ListWorkerBlocks
listWorkerBlocks =
ListWorkerBlocks' {_lwbNextToken = Nothing, _lwbMaxResults = Nothing}
lwbNextToken :: Lens' ListWorkerBlocks (Maybe Text)
lwbNextToken = lens _lwbNextToken (\ s a -> s{_lwbNextToken = a})
lwbMaxResults :: Lens' ListWorkerBlocks (Maybe Natural)
lwbMaxResults = lens _lwbMaxResults (\ s a -> s{_lwbMaxResults = a}) . mapping _Nat
instance AWSPager ListWorkerBlocks where
page rq rs
| stop (rs ^. lwbrsNextToken) = Nothing
| stop (rs ^. lwbrsWorkerBlocks) = Nothing
| otherwise =
Just $ rq & lwbNextToken .~ rs ^. lwbrsNextToken
instance AWSRequest ListWorkerBlocks where
type Rs ListWorkerBlocks = ListWorkerBlocksResponse
request = postJSON mechanicalTurk
response
= receiveJSON
(\ s h x ->
ListWorkerBlocksResponse' <$>
(x .?> "WorkerBlocks" .!@ mempty) <*>
(x .?> "NextToken")
<*> (x .?> "NumResults")
<*> (pure (fromEnum s)))
instance Hashable ListWorkerBlocks where
instance NFData ListWorkerBlocks where
instance ToHeaders ListWorkerBlocks where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("MTurkRequesterServiceV20170117.ListWorkerBlocks" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListWorkerBlocks where
toJSON ListWorkerBlocks'{..}
= object
(catMaybes
[("NextToken" .=) <$> _lwbNextToken,
("MaxResults" .=) <$> _lwbMaxResults])
instance ToPath ListWorkerBlocks where
toPath = const "/"
instance ToQuery ListWorkerBlocks where
toQuery = const mempty
data ListWorkerBlocksResponse = ListWorkerBlocksResponse'
{ _lwbrsWorkerBlocks :: !(Maybe [WorkerBlock])
, _lwbrsNextToken :: !(Maybe Text)
, _lwbrsNumResults :: !(Maybe Int)
, _lwbrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listWorkerBlocksResponse
:: Int
-> ListWorkerBlocksResponse
listWorkerBlocksResponse pResponseStatus_ =
ListWorkerBlocksResponse'
{ _lwbrsWorkerBlocks = Nothing
, _lwbrsNextToken = Nothing
, _lwbrsNumResults = Nothing
, _lwbrsResponseStatus = pResponseStatus_
}
lwbrsWorkerBlocks :: Lens' ListWorkerBlocksResponse [WorkerBlock]
lwbrsWorkerBlocks = lens _lwbrsWorkerBlocks (\ s a -> s{_lwbrsWorkerBlocks = a}) . _Default . _Coerce
lwbrsNextToken :: Lens' ListWorkerBlocksResponse (Maybe Text)
lwbrsNextToken = lens _lwbrsNextToken (\ s a -> s{_lwbrsNextToken = a})
lwbrsNumResults :: Lens' ListWorkerBlocksResponse (Maybe Int)
lwbrsNumResults = lens _lwbrsNumResults (\ s a -> s{_lwbrsNumResults = a})
lwbrsResponseStatus :: Lens' ListWorkerBlocksResponse Int
lwbrsResponseStatus = lens _lwbrsResponseStatus (\ s a -> s{_lwbrsResponseStatus = a})
instance NFData ListWorkerBlocksResponse where