{-# 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.RDS.DescribeReservedDBInstancesOfferings -- 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) -- -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | Lists available reserved DB instance offerings. -- -- module Network.AWS.RDS.DescribeReservedDBInstancesOfferings ( -- * Request DescribeReservedDBInstancesOfferings -- ** Request constructor , describeReservedDBInstancesOfferings -- ** Request lenses , drdbioDBInstanceClass , drdbioDuration , drdbioFilters , drdbioMarker , drdbioMaxRecords , drdbioMultiAZ , drdbioOfferingType , drdbioProductDescription , drdbioReservedDBInstancesOfferingId -- * Response , DescribeReservedDBInstancesOfferingsResponse -- ** Response constructor , describeReservedDBInstancesOfferingsResponse -- ** Response lenses , drdbiorMarker , drdbiorReservedDBInstancesOfferings ) where import Network.AWS.Prelude import Network.AWS.Request.Query import Network.AWS.RDS.Types import qualified GHC.Exts data DescribeReservedDBInstancesOfferings = DescribeReservedDBInstancesOfferings { _drdbioDBInstanceClass :: Maybe Text , _drdbioDuration :: Maybe Text , _drdbioFilters :: List "member" Filter , _drdbioMarker :: Maybe Text , _drdbioMaxRecords :: Maybe Int , _drdbioMultiAZ :: Maybe Bool , _drdbioOfferingType :: Maybe Text , _drdbioProductDescription :: Maybe Text , _drdbioReservedDBInstancesOfferingId :: Maybe Text } deriving (Eq, Read, Show) -- | 'DescribeReservedDBInstancesOfferings' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'drdbioDBInstanceClass' @::@ 'Maybe' 'Text' -- -- * 'drdbioDuration' @::@ 'Maybe' 'Text' -- -- * 'drdbioFilters' @::@ ['Filter'] -- -- * 'drdbioMarker' @::@ 'Maybe' 'Text' -- -- * 'drdbioMaxRecords' @::@ 'Maybe' 'Int' -- -- * 'drdbioMultiAZ' @::@ 'Maybe' 'Bool' -- -- * 'drdbioOfferingType' @::@ 'Maybe' 'Text' -- -- * 'drdbioProductDescription' @::@ 'Maybe' 'Text' -- -- * 'drdbioReservedDBInstancesOfferingId' @::@ 'Maybe' 'Text' -- describeReservedDBInstancesOfferings :: DescribeReservedDBInstancesOfferings describeReservedDBInstancesOfferings = DescribeReservedDBInstancesOfferings { _drdbioReservedDBInstancesOfferingId = Nothing , _drdbioDBInstanceClass = Nothing , _drdbioDuration = Nothing , _drdbioProductDescription = Nothing , _drdbioOfferingType = Nothing , _drdbioMultiAZ = Nothing , _drdbioFilters = mempty , _drdbioMaxRecords = Nothing , _drdbioMarker = Nothing } -- | The DB instance class filter value. Specify this parameter to show only the -- available offerings matching the specified DB instance class. drdbioDBInstanceClass :: Lens' DescribeReservedDBInstancesOfferings (Maybe Text) drdbioDBInstanceClass = lens _drdbioDBInstanceClass (\s a -> s { _drdbioDBInstanceClass = a }) -- | Duration filter value, specified in years or seconds. Specify this parameter -- to show only reservations for this duration. -- -- Valid Values: '1 | 3 | 31536000 | 94608000' drdbioDuration :: Lens' DescribeReservedDBInstancesOfferings (Maybe Text) drdbioDuration = lens _drdbioDuration (\s a -> s { _drdbioDuration = a }) -- | This parameter is not currently supported. drdbioFilters :: Lens' DescribeReservedDBInstancesOfferings [Filter] drdbioFilters = lens _drdbioFilters (\s a -> s { _drdbioFilters = a }) . _List -- | An optional pagination token provided by a previous request. If this -- parameter is specified, the response includes only records beyond the marker, -- up to the value specified by 'MaxRecords'. drdbioMarker :: Lens' DescribeReservedDBInstancesOfferings (Maybe Text) drdbioMarker = lens _drdbioMarker (\s a -> s { _drdbioMarker = a }) -- | The maximum number of records to include in the response. If more than the 'MaxRecords' value is available, a pagination token called a marker is included in the -- response so that the following results can be retrieved. -- -- Default: 100 -- -- Constraints: minimum 20, maximum 100 drdbioMaxRecords :: Lens' DescribeReservedDBInstancesOfferings (Maybe Int) drdbioMaxRecords = lens _drdbioMaxRecords (\s a -> s { _drdbioMaxRecords = a }) -- | The Multi-AZ filter value. Specify this parameter to show only the available -- offerings matching the specified Multi-AZ parameter. drdbioMultiAZ :: Lens' DescribeReservedDBInstancesOfferings (Maybe Bool) drdbioMultiAZ = lens _drdbioMultiAZ (\s a -> s { _drdbioMultiAZ = a }) -- | The offering type filter value. Specify this parameter to show only the -- available offerings matching the specified offering type. -- -- Valid Values: '"Light Utilization" | "Medium Utilization" | "HeavyUtilization" ' drdbioOfferingType :: Lens' DescribeReservedDBInstancesOfferings (Maybe Text) drdbioOfferingType = lens _drdbioOfferingType (\s a -> s { _drdbioOfferingType = a }) -- | Product description filter value. Specify this parameter to show only the -- available offerings matching the specified product description. drdbioProductDescription :: Lens' DescribeReservedDBInstancesOfferings (Maybe Text) drdbioProductDescription = lens _drdbioProductDescription (\s a -> s { _drdbioProductDescription = a }) -- | The offering identifier filter value. Specify this parameter to show only -- the available offering that matches the specified reservation identifier. -- -- Example: '438012d3-4052-4cc7-b2e3-8d3372e0e706' drdbioReservedDBInstancesOfferingId :: Lens' DescribeReservedDBInstancesOfferings (Maybe Text) drdbioReservedDBInstancesOfferingId = lens _drdbioReservedDBInstancesOfferingId (\s a -> s { _drdbioReservedDBInstancesOfferingId = a }) data DescribeReservedDBInstancesOfferingsResponse = DescribeReservedDBInstancesOfferingsResponse { _drdbiorMarker :: Maybe Text , _drdbiorReservedDBInstancesOfferings :: List "member" ReservedDBInstancesOffering } deriving (Eq, Read, Show) -- | 'DescribeReservedDBInstancesOfferingsResponse' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'drdbiorMarker' @::@ 'Maybe' 'Text' -- -- * 'drdbiorReservedDBInstancesOfferings' @::@ ['ReservedDBInstancesOffering'] -- describeReservedDBInstancesOfferingsResponse :: DescribeReservedDBInstancesOfferingsResponse describeReservedDBInstancesOfferingsResponse = DescribeReservedDBInstancesOfferingsResponse { _drdbiorMarker = Nothing , _drdbiorReservedDBInstancesOfferings = mempty } -- | An optional pagination token provided by a previous request. If this -- parameter is specified, the response includes only records beyond the marker, -- up to the value specified by 'MaxRecords'. drdbiorMarker :: Lens' DescribeReservedDBInstancesOfferingsResponse (Maybe Text) drdbiorMarker = lens _drdbiorMarker (\s a -> s { _drdbiorMarker = a }) -- | A list of reserved DB instance offerings. drdbiorReservedDBInstancesOfferings :: Lens' DescribeReservedDBInstancesOfferingsResponse [ReservedDBInstancesOffering] drdbiorReservedDBInstancesOfferings = lens _drdbiorReservedDBInstancesOfferings (\s a -> s { _drdbiorReservedDBInstancesOfferings = a }) . _List instance ToPath DescribeReservedDBInstancesOfferings where toPath = const "/" instance ToQuery DescribeReservedDBInstancesOfferings where toQuery DescribeReservedDBInstancesOfferings{..} = mconcat [ "DBInstanceClass" =? _drdbioDBInstanceClass , "Duration" =? _drdbioDuration , "Filters" =? _drdbioFilters , "Marker" =? _drdbioMarker , "MaxRecords" =? _drdbioMaxRecords , "MultiAZ" =? _drdbioMultiAZ , "OfferingType" =? _drdbioOfferingType , "ProductDescription" =? _drdbioProductDescription , "ReservedDBInstancesOfferingId" =? _drdbioReservedDBInstancesOfferingId ] instance ToHeaders DescribeReservedDBInstancesOfferings instance AWSRequest DescribeReservedDBInstancesOfferings where type Sv DescribeReservedDBInstancesOfferings = RDS type Rs DescribeReservedDBInstancesOfferings = DescribeReservedDBInstancesOfferingsResponse request = post "DescribeReservedDBInstancesOfferings" response = xmlResponse instance FromXML DescribeReservedDBInstancesOfferingsResponse where parseXML = withElement "DescribeReservedDBInstancesOfferingsResult" $ \x -> DescribeReservedDBInstancesOfferingsResponse <$> x .@? "Marker" <*> x .@? "ReservedDBInstancesOfferings" .!@ mempty instance AWSPager DescribeReservedDBInstancesOfferings where page rq rs | stop (rs ^. drdbiorMarker) = Nothing | otherwise = (\x -> rq & drdbioMarker ?~ x) <$> (rs ^. drdbiorMarker)