{-# 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.DescribeDhcpOptions -- Copyright : (c) 2013-2014 Brendan Hay -- 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 -- Stability : experimental -- Portability : non-portable (GHC extensions) -- | Describes one or more of your DHCP options sets. For more information about -- DHCP options sets, see DHCP Options Sets in the Amazon Virtual Private -- Cloud User Guide. -- -- module Network.AWS.EC2.DescribeDhcpOptions ( -- * Request DescribeDhcpOptions -- ** Request constructor , describeDhcpOptions -- ** Request lenses , ddoDhcpOptionsIds , ddoDryRun , ddoFilters -- * Response , DescribeDhcpOptionsResponse -- ** Response constructor , describeDhcpOptionsResponse -- ** Response lenses , ddorDhcpOptions ) where import Network.AWS.Prelude import Network.AWS.Request.Query import Network.AWS.EC2.Types import qualified GHC.Exts data DescribeDhcpOptions = DescribeDhcpOptions { _ddoDhcpOptionsIds :: List "DhcpOptionsId" Text , _ddoDryRun :: Maybe Bool , _ddoFilters :: List "Filter" Filter } deriving (Eq, Show) -- | 'DescribeDhcpOptions' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'ddoDhcpOptionsIds' @::@ ['Text'] -- -- * 'ddoDryRun' @::@ 'Maybe' 'Bool' -- -- * 'ddoFilters' @::@ ['Filter'] -- describeDhcpOptions :: DescribeDhcpOptions describeDhcpOptions = DescribeDhcpOptions { _ddoDryRun = Nothing , _ddoDhcpOptionsIds = mempty , _ddoFilters = mempty } -- | The IDs of one or more DHCP options sets. Default: Describes all your -- DHCP options sets. ddoDhcpOptionsIds :: Lens' DescribeDhcpOptions [Text] ddoDhcpOptionsIds = lens _ddoDhcpOptionsIds (\s a -> s { _ddoDhcpOptionsIds = a }) . _List ddoDryRun :: Lens' DescribeDhcpOptions (Maybe Bool) ddoDryRun = lens _ddoDryRun (\s a -> s { _ddoDryRun = a }) -- | One or more filters. dhcp-options-id - The ID of a set of DHCP options. -- key - The key for one of the options (for example, domain-name). value - -- The value for one of the options. tag:key=value - The key/value -- combination of a tag assigned to the resource. tag-key - The key of a tag -- assigned to the resource. This filter is independent of the tag-value -- filter. For example, if you use both the filter "tag-key=Purpose" and the -- filter "tag-value=X", you get any resources assigned both the tag key -- Purpose (regardless of what the tag's value is), and the tag value X -- (regardless of what the tag's key is). If you want to list only resources -- where Purpose is X, see the tag:key=value filter. tag-value - The value -- of a tag assigned to the resource. This filter is independent of the -- tag-key filter. ddoFilters :: Lens' DescribeDhcpOptions [Filter] ddoFilters = lens _ddoFilters (\s a -> s { _ddoFilters = a }) . _List newtype DescribeDhcpOptionsResponse = DescribeDhcpOptionsResponse { _ddorDhcpOptions :: List "item" DhcpOptions } deriving (Eq, Show, Monoid, Semigroup) instance GHC.Exts.IsList DescribeDhcpOptionsResponse where type Item DescribeDhcpOptionsResponse = DhcpOptions fromList = DescribeDhcpOptionsResponse . GHC.Exts.fromList toList = GHC.Exts.toList . _ddorDhcpOptions -- | 'DescribeDhcpOptionsResponse' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'ddorDhcpOptions' @::@ ['DhcpOptions'] -- describeDhcpOptionsResponse :: DescribeDhcpOptionsResponse describeDhcpOptionsResponse = DescribeDhcpOptionsResponse { _ddorDhcpOptions = mempty } -- | Information about one or more DHCP options sets. ddorDhcpOptions :: Lens' DescribeDhcpOptionsResponse [DhcpOptions] ddorDhcpOptions = lens _ddorDhcpOptions (\s a -> s { _ddorDhcpOptions = a }) . _List instance ToPath DescribeDhcpOptions where toPath = const "/" instance ToQuery DescribeDhcpOptions where toQuery DescribeDhcpOptions{..} = mconcat [ "DhcpOptionsId" =? _ddoDhcpOptionsIds , "dryRun" =? _ddoDryRun , "Filter" =? _ddoFilters ] instance ToHeaders DescribeDhcpOptions instance AWSRequest DescribeDhcpOptions where type Sv DescribeDhcpOptions = EC2 type Rs DescribeDhcpOptions = DescribeDhcpOptionsResponse request = post "DescribeDhcpOptions" response = xmlResponse instance FromXML DescribeDhcpOptionsResponse where parseXML x = DescribeDhcpOptionsResponse <$> x .@ "dhcpOptionsSet"