module Network.AWS.SWF.CountOpenWorkflowExecutions
(
CountOpenWorkflowExecutions
, countOpenWorkflowExecutions
, coweDomain
, coweExecutionFilter
, coweStartTimeFilter
, coweTagFilter
, coweTypeFilter
, CountOpenWorkflowExecutionsResponse
, countOpenWorkflowExecutionsResponse
, cowerCount
, cowerTruncated
) where
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.SWF.Types
import qualified GHC.Exts
data CountOpenWorkflowExecutions = CountOpenWorkflowExecutions
{ _coweDomain :: Text
, _coweExecutionFilter :: Maybe WorkflowExecutionFilter
, _coweStartTimeFilter :: ExecutionTimeFilter
, _coweTagFilter :: Maybe TagFilter
, _coweTypeFilter :: Maybe WorkflowTypeFilter
} deriving (Eq, Show)
countOpenWorkflowExecutions :: Text
-> ExecutionTimeFilter
-> CountOpenWorkflowExecutions
countOpenWorkflowExecutions p1 p2 = CountOpenWorkflowExecutions
{ _coweDomain = p1
, _coweStartTimeFilter = p2
, _coweTypeFilter = Nothing
, _coweTagFilter = Nothing
, _coweExecutionFilter = Nothing
}
coweDomain :: Lens' CountOpenWorkflowExecutions Text
coweDomain = lens _coweDomain (\s a -> s { _coweDomain = a })
coweExecutionFilter :: Lens' CountOpenWorkflowExecutions (Maybe WorkflowExecutionFilter)
coweExecutionFilter =
lens _coweExecutionFilter (\s a -> s { _coweExecutionFilter = a })
coweStartTimeFilter :: Lens' CountOpenWorkflowExecutions ExecutionTimeFilter
coweStartTimeFilter =
lens _coweStartTimeFilter (\s a -> s { _coweStartTimeFilter = a })
coweTagFilter :: Lens' CountOpenWorkflowExecutions (Maybe TagFilter)
coweTagFilter = lens _coweTagFilter (\s a -> s { _coweTagFilter = a })
coweTypeFilter :: Lens' CountOpenWorkflowExecutions (Maybe WorkflowTypeFilter)
coweTypeFilter = lens _coweTypeFilter (\s a -> s { _coweTypeFilter = a })
data CountOpenWorkflowExecutionsResponse = CountOpenWorkflowExecutionsResponse
{ _cowerCount :: Nat
, _cowerTruncated :: Maybe Bool
} deriving (Eq, Ord, Show)
countOpenWorkflowExecutionsResponse :: Natural
-> CountOpenWorkflowExecutionsResponse
countOpenWorkflowExecutionsResponse p1 = CountOpenWorkflowExecutionsResponse
{ _cowerCount = withIso _Nat (const id) p1
, _cowerTruncated = Nothing
}
cowerCount :: Lens' CountOpenWorkflowExecutionsResponse Natural
cowerCount = lens _cowerCount (\s a -> s { _cowerCount = a }) . _Nat
cowerTruncated :: Lens' CountOpenWorkflowExecutionsResponse (Maybe Bool)
cowerTruncated = lens _cowerTruncated (\s a -> s { _cowerTruncated = a })
instance ToPath CountOpenWorkflowExecutions where
toPath = const "/"
instance ToQuery CountOpenWorkflowExecutions where
toQuery = const mempty
instance ToHeaders CountOpenWorkflowExecutions
instance ToJSON CountOpenWorkflowExecutions where
toJSON CountOpenWorkflowExecutions{..} = object
[ "domain" .= _coweDomain
, "startTimeFilter" .= _coweStartTimeFilter
, "typeFilter" .= _coweTypeFilter
, "tagFilter" .= _coweTagFilter
, "executionFilter" .= _coweExecutionFilter
]
instance AWSRequest CountOpenWorkflowExecutions where
type Sv CountOpenWorkflowExecutions = SWF
type Rs CountOpenWorkflowExecutions = CountOpenWorkflowExecutionsResponse
request = post "CountOpenWorkflowExecutions"
response = jsonResponse
instance FromJSON CountOpenWorkflowExecutionsResponse where
parseJSON = withObject "CountOpenWorkflowExecutionsResponse" $ \o -> CountOpenWorkflowExecutionsResponse
<$> o .: "count"
<*> o .:? "truncated"