module Network.AWS.DirectConnect.DescribeVirtualGateways
(
DescribeVirtualGateways
, describeVirtualGateways
, DescribeVirtualGatewaysResponse
, describeVirtualGatewaysResponse
, dvgrVirtualGateways
) where
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.DirectConnect.Types
import qualified GHC.Exts
data DescribeVirtualGateways = DescribeVirtualGateways
deriving (Eq, Ord, Show, Generic)
describeVirtualGateways :: DescribeVirtualGateways
describeVirtualGateways = DescribeVirtualGateways
newtype DescribeVirtualGatewaysResponse = DescribeVirtualGatewaysResponse
{ _dvgrVirtualGateways :: List "virtualGateways" VirtualGateway
} deriving (Eq, Show, Monoid, Semigroup)
instance GHC.Exts.IsList DescribeVirtualGatewaysResponse where
type Item DescribeVirtualGatewaysResponse = VirtualGateway
fromList = DescribeVirtualGatewaysResponse . GHC.Exts.fromList
toList = GHC.Exts.toList . _dvgrVirtualGateways
describeVirtualGatewaysResponse :: DescribeVirtualGatewaysResponse
describeVirtualGatewaysResponse = DescribeVirtualGatewaysResponse
{ _dvgrVirtualGateways = mempty
}
dvgrVirtualGateways :: Lens' DescribeVirtualGatewaysResponse [VirtualGateway]
dvgrVirtualGateways =
lens _dvgrVirtualGateways (\s a -> s { _dvgrVirtualGateways = a })
. _List
instance ToPath DescribeVirtualGateways where
toPath = const "/"
instance ToQuery DescribeVirtualGateways where
toQuery = const mempty
instance ToHeaders DescribeVirtualGateways
instance ToJSON DescribeVirtualGateways where
toJSON = const (toJSON Empty)
instance AWSRequest DescribeVirtualGateways where
type Sv DescribeVirtualGateways = DirectConnect
type Rs DescribeVirtualGateways = DescribeVirtualGatewaysResponse
request = post "DescribeVirtualGateways"
response = jsonResponse
instance FromJSON DescribeVirtualGatewaysResponse where
parseJSON = withObject "DescribeVirtualGatewaysResponse" $ \o -> DescribeVirtualGatewaysResponse
<$> o .:? "virtualGateways" .!= mempty