amazonka-ec2-0.0.2: gen/Network/AWS/EC2/DescribeKeyPairs.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- Module : Network.AWS.EC2.DescribeKeyPairs
-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
-- License : This Source Code Form is subject to the terms of
-- the Mozilla Public License, v. 2.0.
-- A copy of the MPL can be found in the LICENSE file or
-- you can obtain it at http://mozilla.org/MPL/2.0/.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : experimental
-- Portability : non-portable (GHC extensions)
-- | Describes one or more of your key pairs.
--
-- For more information about key pairs, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html Key Pairs> in the /Amazon ElasticCompute Cloud User Guide/.
--
-- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeKeyPairs.html>
module Network.AWS.EC2.DescribeKeyPairs
(
-- * Request
DescribeKeyPairs
-- ** Request constructor
, describeKeyPairs
-- ** Request lenses
, dkp1DryRun
, dkp1Filters
, dkp1KeyNames
-- * Response
, DescribeKeyPairsResponse
-- ** Response constructor
, describeKeyPairsResponse
-- ** Response lenses
, dkprKeyPairs
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.EC2.Types
import qualified GHC.Exts
data DescribeKeyPairs = DescribeKeyPairs
{ _dkp1DryRun :: Maybe Bool
, _dkp1Filters :: List "Filter" Filter
, _dkp1KeyNames :: List "KeyName" Text
} deriving (Eq, Show)
-- | 'DescribeKeyPairs' constructor.
--
-- The fields accessible through corresponding lenses are:
--
-- * 'dkp1DryRun' @::@ 'Maybe' 'Bool'
--
-- * 'dkp1Filters' @::@ ['Filter']
--
-- * 'dkp1KeyNames' @::@ ['Text']
--
describeKeyPairs :: DescribeKeyPairs
describeKeyPairs = DescribeKeyPairs
{ _dkp1DryRun = Nothing
, _dkp1KeyNames = mempty
, _dkp1Filters = mempty
}
dkp1DryRun :: Lens' DescribeKeyPairs (Maybe Bool)
dkp1DryRun = lens _dkp1DryRun (\s a -> s { _dkp1DryRun = a })
-- | One or more filters.
--
-- 'fingerprint' - The fingerprint of the key pair.
--
-- 'key-name' - The name of the key pair.
--
--
dkp1Filters :: Lens' DescribeKeyPairs [Filter]
dkp1Filters = lens _dkp1Filters (\s a -> s { _dkp1Filters = a }) . _List
-- | One or more key pair names.
--
-- Default: Describes all your key pairs.
dkp1KeyNames :: Lens' DescribeKeyPairs [Text]
dkp1KeyNames = lens _dkp1KeyNames (\s a -> s { _dkp1KeyNames = a }) . _List
newtype DescribeKeyPairsResponse = DescribeKeyPairsResponse
{ _dkprKeyPairs :: List "item" KeyPairInfo
} deriving (Eq, Show, Monoid, Semigroup)
instance GHC.Exts.IsList DescribeKeyPairsResponse where
type Item DescribeKeyPairsResponse = KeyPairInfo
fromList = DescribeKeyPairsResponse . GHC.Exts.fromList
toList = GHC.Exts.toList . _dkprKeyPairs
-- | 'DescribeKeyPairsResponse' constructor.
--
-- The fields accessible through corresponding lenses are:
--
-- * 'dkprKeyPairs' @::@ ['KeyPairInfo']
--
describeKeyPairsResponse :: DescribeKeyPairsResponse
describeKeyPairsResponse = DescribeKeyPairsResponse
{ _dkprKeyPairs = mempty
}
-- | Information about one or more key pairs.
dkprKeyPairs :: Lens' DescribeKeyPairsResponse [KeyPairInfo]
dkprKeyPairs = lens _dkprKeyPairs (\s a -> s { _dkprKeyPairs = a }) . _List
instance ToPath DescribeKeyPairs where
toPath = const "/"
instance ToQuery DescribeKeyPairs where
toQuery DescribeKeyPairs{..} = mconcat
[ "dryRun" =? _dkp1DryRun
, "Filter" =? _dkp1Filters
, "KeyName" =? _dkp1KeyNames
]
instance ToHeaders DescribeKeyPairs
instance AWSRequest DescribeKeyPairs where
type Sv DescribeKeyPairs = EC2
type Rs DescribeKeyPairs = DescribeKeyPairsResponse
request = post "DescribeKeyPairs"
response = xmlResponse
instance FromXML DescribeKeyPairsResponse where
parseXML x = DescribeKeyPairsResponse
<$> x .@ "keySet"