{-# 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.Greengrass.ListGroupVersions
(
listGroupVersions
, ListGroupVersions
, lgvNextToken
, lgvMaxResults
, lgvGroupId
, listGroupVersionsResponse
, ListGroupVersionsResponse
, lgvrsVersions
, lgvrsNextToken
, lgvrsResponseStatus
) where
import Network.AWS.Greengrass.Types
import Network.AWS.Greengrass.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ListGroupVersions = ListGroupVersions'
{ _lgvNextToken :: !(Maybe Text)
, _lgvMaxResults :: !(Maybe Text)
, _lgvGroupId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listGroupVersions
:: Text
-> ListGroupVersions
listGroupVersions pGroupId_ =
ListGroupVersions'
{_lgvNextToken = Nothing, _lgvMaxResults = Nothing, _lgvGroupId = pGroupId_}
lgvNextToken :: Lens' ListGroupVersions (Maybe Text)
lgvNextToken = lens _lgvNextToken (\ s a -> s{_lgvNextToken = a})
lgvMaxResults :: Lens' ListGroupVersions (Maybe Text)
lgvMaxResults = lens _lgvMaxResults (\ s a -> s{_lgvMaxResults = a})
lgvGroupId :: Lens' ListGroupVersions Text
lgvGroupId = lens _lgvGroupId (\ s a -> s{_lgvGroupId = a})
instance AWSRequest ListGroupVersions where
type Rs ListGroupVersions = ListGroupVersionsResponse
request = get greengrass
response
= receiveJSON
(\ s h x ->
ListGroupVersionsResponse' <$>
(x .?> "Versions" .!@ mempty) <*> (x .?> "NextToken")
<*> (pure (fromEnum s)))
instance Hashable ListGroupVersions where
instance NFData ListGroupVersions where
instance ToHeaders ListGroupVersions where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToPath ListGroupVersions where
toPath ListGroupVersions'{..}
= mconcat
["/greengrass/groups/", toBS _lgvGroupId,
"/versions"]
instance ToQuery ListGroupVersions where
toQuery ListGroupVersions'{..}
= mconcat
["NextToken" =: _lgvNextToken,
"MaxResults" =: _lgvMaxResults]
data ListGroupVersionsResponse = ListGroupVersionsResponse'
{ _lgvrsVersions :: !(Maybe [VersionInformation])
, _lgvrsNextToken :: !(Maybe Text)
, _lgvrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listGroupVersionsResponse
:: Int
-> ListGroupVersionsResponse
listGroupVersionsResponse pResponseStatus_ =
ListGroupVersionsResponse'
{ _lgvrsVersions = Nothing
, _lgvrsNextToken = Nothing
, _lgvrsResponseStatus = pResponseStatus_
}
lgvrsVersions :: Lens' ListGroupVersionsResponse [VersionInformation]
lgvrsVersions = lens _lgvrsVersions (\ s a -> s{_lgvrsVersions = a}) . _Default . _Coerce
lgvrsNextToken :: Lens' ListGroupVersionsResponse (Maybe Text)
lgvrsNextToken = lens _lgvrsNextToken (\ s a -> s{_lgvrsNextToken = a})
lgvrsResponseStatus :: Lens' ListGroupVersionsResponse Int
lgvrsResponseStatus = lens _lgvrsResponseStatus (\ s a -> s{_lgvrsResponseStatus = a})
instance NFData ListGroupVersionsResponse where