{-# 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.WorkSpaces.DescribeWorkspaceBundles
(
describeWorkspaceBundles
, DescribeWorkspaceBundles
, dwbBundleIds
, dwbOwner
, dwbNextToken
, describeWorkspaceBundlesResponse
, DescribeWorkspaceBundlesResponse
, dwbrsBundles
, dwbrsNextToken
, dwbrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.WorkSpaces.Types
import Network.AWS.WorkSpaces.Types.Product
data DescribeWorkspaceBundles = DescribeWorkspaceBundles'
{ _dwbBundleIds :: !(Maybe (List1 Text))
, _dwbOwner :: !(Maybe Text)
, _dwbNextToken :: !(Maybe Text)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeWorkspaceBundles
:: DescribeWorkspaceBundles
describeWorkspaceBundles =
DescribeWorkspaceBundles'
{_dwbBundleIds = Nothing, _dwbOwner = Nothing, _dwbNextToken = Nothing}
dwbBundleIds :: Lens' DescribeWorkspaceBundles (Maybe (NonEmpty Text))
dwbBundleIds = lens _dwbBundleIds (\ s a -> s{_dwbBundleIds = a}) . mapping _List1
dwbOwner :: Lens' DescribeWorkspaceBundles (Maybe Text)
dwbOwner = lens _dwbOwner (\ s a -> s{_dwbOwner = a})
dwbNextToken :: Lens' DescribeWorkspaceBundles (Maybe Text)
dwbNextToken = lens _dwbNextToken (\ s a -> s{_dwbNextToken = a})
instance AWSPager DescribeWorkspaceBundles where
page rq rs
| stop (rs ^. dwbrsNextToken) = Nothing
| stop (rs ^. dwbrsBundles) = Nothing
| otherwise =
Just $ rq & dwbNextToken .~ rs ^. dwbrsNextToken
instance AWSRequest DescribeWorkspaceBundles where
type Rs DescribeWorkspaceBundles =
DescribeWorkspaceBundlesResponse
request = postJSON workSpaces
response
= receiveJSON
(\ s h x ->
DescribeWorkspaceBundlesResponse' <$>
(x .?> "Bundles" .!@ mempty) <*> (x .?> "NextToken")
<*> (pure (fromEnum s)))
instance Hashable DescribeWorkspaceBundles where
instance NFData DescribeWorkspaceBundles where
instance ToHeaders DescribeWorkspaceBundles where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("WorkspacesService.DescribeWorkspaceBundles" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeWorkspaceBundles where
toJSON DescribeWorkspaceBundles'{..}
= object
(catMaybes
[("BundleIds" .=) <$> _dwbBundleIds,
("Owner" .=) <$> _dwbOwner,
("NextToken" .=) <$> _dwbNextToken])
instance ToPath DescribeWorkspaceBundles where
toPath = const "/"
instance ToQuery DescribeWorkspaceBundles where
toQuery = const mempty
data DescribeWorkspaceBundlesResponse = DescribeWorkspaceBundlesResponse'
{ _dwbrsBundles :: !(Maybe [WorkspaceBundle])
, _dwbrsNextToken :: !(Maybe Text)
, _dwbrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeWorkspaceBundlesResponse
:: Int
-> DescribeWorkspaceBundlesResponse
describeWorkspaceBundlesResponse pResponseStatus_ =
DescribeWorkspaceBundlesResponse'
{ _dwbrsBundles = Nothing
, _dwbrsNextToken = Nothing
, _dwbrsResponseStatus = pResponseStatus_
}
dwbrsBundles :: Lens' DescribeWorkspaceBundlesResponse [WorkspaceBundle]
dwbrsBundles = lens _dwbrsBundles (\ s a -> s{_dwbrsBundles = a}) . _Default . _Coerce
dwbrsNextToken :: Lens' DescribeWorkspaceBundlesResponse (Maybe Text)
dwbrsNextToken = lens _dwbrsNextToken (\ s a -> s{_dwbrsNextToken = a})
dwbrsResponseStatus :: Lens' DescribeWorkspaceBundlesResponse Int
dwbrsResponseStatus = lens _dwbrsResponseStatus (\ s a -> s{_dwbrsResponseStatus = a})
instance NFData DescribeWorkspaceBundlesResponse
where