{-# 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.EC2.DescribeHosts
(
describeHosts
, DescribeHosts
, dhNextToken
, dhFilter
, dhHostIds
, dhMaxResults
, describeHostsResponse
, DescribeHostsResponse
, dhrsHosts
, dhrsNextToken
, dhrsResponseStatus
) where
import Network.AWS.EC2.Types
import Network.AWS.EC2.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeHosts = DescribeHosts'
{ _dhNextToken :: !(Maybe Text)
, _dhFilter :: !(Maybe [Filter])
, _dhHostIds :: !(Maybe [Text])
, _dhMaxResults :: !(Maybe Int)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeHosts
:: DescribeHosts
describeHosts =
DescribeHosts'
{ _dhNextToken = Nothing
, _dhFilter = Nothing
, _dhHostIds = Nothing
, _dhMaxResults = Nothing
}
dhNextToken :: Lens' DescribeHosts (Maybe Text)
dhNextToken = lens _dhNextToken (\ s a -> s{_dhNextToken = a});
dhFilter :: Lens' DescribeHosts [Filter]
dhFilter = lens _dhFilter (\ s a -> s{_dhFilter = a}) . _Default . _Coerce;
dhHostIds :: Lens' DescribeHosts [Text]
dhHostIds = lens _dhHostIds (\ s a -> s{_dhHostIds = a}) . _Default . _Coerce;
dhMaxResults :: Lens' DescribeHosts (Maybe Int)
dhMaxResults = lens _dhMaxResults (\ s a -> s{_dhMaxResults = a});
instance AWSRequest DescribeHosts where
type Rs DescribeHosts = DescribeHostsResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
DescribeHostsResponse' <$>
(x .@? "hostSet" .!@ mempty >>=
may (parseXMLList "item"))
<*> (x .@? "nextToken")
<*> (pure (fromEnum s)))
instance Hashable DescribeHosts
instance NFData DescribeHosts
instance ToHeaders DescribeHosts where
toHeaders = const mempty
instance ToPath DescribeHosts where
toPath = const "/"
instance ToQuery DescribeHosts where
toQuery DescribeHosts'{..}
= mconcat
["Action" =: ("DescribeHosts" :: ByteString),
"Version" =: ("2016-04-01" :: ByteString),
"NextToken" =: _dhNextToken,
toQuery (toQueryList "Filter" <$> _dhFilter),
toQuery (toQueryList "HostId" <$> _dhHostIds),
"MaxResults" =: _dhMaxResults]
data DescribeHostsResponse = DescribeHostsResponse'
{ _dhrsHosts :: !(Maybe [Host])
, _dhrsNextToken :: !(Maybe Text)
, _dhrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeHostsResponse
:: Int
-> DescribeHostsResponse
describeHostsResponse pResponseStatus_ =
DescribeHostsResponse'
{ _dhrsHosts = Nothing
, _dhrsNextToken = Nothing
, _dhrsResponseStatus = pResponseStatus_
}
dhrsHosts :: Lens' DescribeHostsResponse [Host]
dhrsHosts = lens _dhrsHosts (\ s a -> s{_dhrsHosts = a}) . _Default . _Coerce;
dhrsNextToken :: Lens' DescribeHostsResponse (Maybe Text)
dhrsNextToken = lens _dhrsNextToken (\ s a -> s{_dhrsNextToken = a});
dhrsResponseStatus :: Lens' DescribeHostsResponse Int
dhrsResponseStatus = lens _dhrsResponseStatus (\ s a -> s{_dhrsResponseStatus = a});
instance NFData DescribeHostsResponse