{-# 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.DeviceFarm.GetOfferingStatus
(
getOfferingStatus
, GetOfferingStatus
, gosNextToken
, getOfferingStatusResponse
, GetOfferingStatusResponse
, gosrsNextPeriod
, gosrsCurrent
, gosrsNextToken
, gosrsResponseStatus
) where
import Network.AWS.DeviceFarm.Types
import Network.AWS.DeviceFarm.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
newtype GetOfferingStatus = GetOfferingStatus'
{ _gosNextToken :: Maybe Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getOfferingStatus
:: GetOfferingStatus
getOfferingStatus = GetOfferingStatus' {_gosNextToken = Nothing}
gosNextToken :: Lens' GetOfferingStatus (Maybe Text)
gosNextToken = lens _gosNextToken (\ s a -> s{_gosNextToken = a})
instance AWSPager GetOfferingStatus where
page rq rs
| stop (rs ^. gosrsNextToken) = Nothing
| stop (rs ^. gosrsCurrent) = Nothing
| stop (rs ^. gosrsNextPeriod) = Nothing
| otherwise =
Just $ rq & gosNextToken .~ rs ^. gosrsNextToken
instance AWSRequest GetOfferingStatus where
type Rs GetOfferingStatus = GetOfferingStatusResponse
request = postJSON deviceFarm
response
= receiveJSON
(\ s h x ->
GetOfferingStatusResponse' <$>
(x .?> "nextPeriod" .!@ mempty) <*>
(x .?> "current" .!@ mempty)
<*> (x .?> "nextToken")
<*> (pure (fromEnum s)))
instance Hashable GetOfferingStatus where
instance NFData GetOfferingStatus where
instance ToHeaders GetOfferingStatus where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("DeviceFarm_20150623.GetOfferingStatus" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON GetOfferingStatus where
toJSON GetOfferingStatus'{..}
= object
(catMaybes [("nextToken" .=) <$> _gosNextToken])
instance ToPath GetOfferingStatus where
toPath = const "/"
instance ToQuery GetOfferingStatus where
toQuery = const mempty
data GetOfferingStatusResponse = GetOfferingStatusResponse'
{ _gosrsNextPeriod :: !(Maybe (Map Text OfferingStatus))
, _gosrsCurrent :: !(Maybe (Map Text OfferingStatus))
, _gosrsNextToken :: !(Maybe Text)
, _gosrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getOfferingStatusResponse
:: Int
-> GetOfferingStatusResponse
getOfferingStatusResponse pResponseStatus_ =
GetOfferingStatusResponse'
{ _gosrsNextPeriod = Nothing
, _gosrsCurrent = Nothing
, _gosrsNextToken = Nothing
, _gosrsResponseStatus = pResponseStatus_
}
gosrsNextPeriod :: Lens' GetOfferingStatusResponse (HashMap Text OfferingStatus)
gosrsNextPeriod = lens _gosrsNextPeriod (\ s a -> s{_gosrsNextPeriod = a}) . _Default . _Map
gosrsCurrent :: Lens' GetOfferingStatusResponse (HashMap Text OfferingStatus)
gosrsCurrent = lens _gosrsCurrent (\ s a -> s{_gosrsCurrent = a}) . _Default . _Map
gosrsNextToken :: Lens' GetOfferingStatusResponse (Maybe Text)
gosrsNextToken = lens _gosrsNextToken (\ s a -> s{_gosrsNextToken = a})
gosrsResponseStatus :: Lens' GetOfferingStatusResponse Int
gosrsResponseStatus = lens _gosrsResponseStatus (\ s a -> s{_gosrsResponseStatus = a})
instance NFData GetOfferingStatusResponse where