{-# 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 #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Network.AWS.RDS.DescribeReservedDBInstancesOfferings -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Lists available reserved DB instance offerings. -- -- -- -- This operation returns paginated results. module Network.AWS.RDS.DescribeReservedDBInstancesOfferings ( -- * Creating a Request describeReservedDBInstancesOfferings , DescribeReservedDBInstancesOfferings -- * Request Lenses , drdioProductDescription , drdioFilters , drdioDBInstanceClass , drdioMarker , drdioMaxRecords , drdioMultiAZ , drdioReservedDBInstancesOfferingId , drdioOfferingType , drdioDuration -- * Destructuring the Response , describeReservedDBInstancesOfferingsResponse , DescribeReservedDBInstancesOfferingsResponse -- * Response Lenses , drdiorsMarker , drdiorsReservedDBInstancesOfferings , drdiorsResponseStatus ) where import Network.AWS.Lens import Network.AWS.Pager import Network.AWS.Prelude import Network.AWS.RDS.Types import Network.AWS.RDS.Types.Product import Network.AWS.Request import Network.AWS.Response -- | -- -- -- -- /See:/ 'describeReservedDBInstancesOfferings' smart constructor. data DescribeReservedDBInstancesOfferings = DescribeReservedDBInstancesOfferings' { _drdioProductDescription :: !(Maybe Text) , _drdioFilters :: !(Maybe [Filter]) , _drdioDBInstanceClass :: !(Maybe Text) , _drdioMarker :: !(Maybe Text) , _drdioMaxRecords :: !(Maybe Int) , _drdioMultiAZ :: !(Maybe Bool) , _drdioReservedDBInstancesOfferingId :: !(Maybe Text) , _drdioOfferingType :: !(Maybe Text) , _drdioDuration :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'DescribeReservedDBInstancesOfferings' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'drdioProductDescription' - Product description filter value. Specify this parameter to show only the available offerings matching the specified product description. -- -- * 'drdioFilters' - This parameter is not currently supported. -- -- * 'drdioDBInstanceClass' - The DB instance class filter value. Specify this parameter to show only the available offerings matching the specified DB instance class. -- -- * 'drdioMarker' - 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@ . -- -- * 'drdioMaxRecords' - 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. -- -- * 'drdioMultiAZ' - The Multi-AZ filter value. Specify this parameter to show only the available offerings matching the specified Multi-AZ parameter. -- -- * 'drdioReservedDBInstancesOfferingId' - 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@ -- -- * 'drdioOfferingType' - The offering type filter value. Specify this parameter to show only the available offerings matching the specified offering type. Valid Values: @"Partial Upfront" | "All Upfront" | "No Upfront" @ -- -- * 'drdioDuration' - Duration filter value, specified in years or seconds. Specify this parameter to show only reservations for this duration. Valid Values: @1 | 3 | 31536000 | 94608000@ describeReservedDBInstancesOfferings :: DescribeReservedDBInstancesOfferings describeReservedDBInstancesOfferings = DescribeReservedDBInstancesOfferings' { _drdioProductDescription = Nothing , _drdioFilters = Nothing , _drdioDBInstanceClass = Nothing , _drdioMarker = Nothing , _drdioMaxRecords = Nothing , _drdioMultiAZ = Nothing , _drdioReservedDBInstancesOfferingId = Nothing , _drdioOfferingType = Nothing , _drdioDuration = Nothing } -- | Product description filter value. Specify this parameter to show only the available offerings matching the specified product description. drdioProductDescription :: Lens' DescribeReservedDBInstancesOfferings (Maybe Text) drdioProductDescription = lens _drdioProductDescription (\ s a -> s{_drdioProductDescription = a}); -- | This parameter is not currently supported. drdioFilters :: Lens' DescribeReservedDBInstancesOfferings [Filter] drdioFilters = lens _drdioFilters (\ s a -> s{_drdioFilters = a}) . _Default . _Coerce; -- | The DB instance class filter value. Specify this parameter to show only the available offerings matching the specified DB instance class. drdioDBInstanceClass :: Lens' DescribeReservedDBInstancesOfferings (Maybe Text) drdioDBInstanceClass = lens _drdioDBInstanceClass (\ s a -> s{_drdioDBInstanceClass = a}); -- | 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@ . drdioMarker :: Lens' DescribeReservedDBInstancesOfferings (Maybe Text) drdioMarker = lens _drdioMarker (\ s a -> s{_drdioMarker = 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. drdioMaxRecords :: Lens' DescribeReservedDBInstancesOfferings (Maybe Int) drdioMaxRecords = lens _drdioMaxRecords (\ s a -> s{_drdioMaxRecords = a}); -- | The Multi-AZ filter value. Specify this parameter to show only the available offerings matching the specified Multi-AZ parameter. drdioMultiAZ :: Lens' DescribeReservedDBInstancesOfferings (Maybe Bool) drdioMultiAZ = lens _drdioMultiAZ (\ s a -> s{_drdioMultiAZ = 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@ drdioReservedDBInstancesOfferingId :: Lens' DescribeReservedDBInstancesOfferings (Maybe Text) drdioReservedDBInstancesOfferingId = lens _drdioReservedDBInstancesOfferingId (\ s a -> s{_drdioReservedDBInstancesOfferingId = a}); -- | The offering type filter value. Specify this parameter to show only the available offerings matching the specified offering type. Valid Values: @"Partial Upfront" | "All Upfront" | "No Upfront" @ drdioOfferingType :: Lens' DescribeReservedDBInstancesOfferings (Maybe Text) drdioOfferingType = lens _drdioOfferingType (\ s a -> s{_drdioOfferingType = 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@ drdioDuration :: Lens' DescribeReservedDBInstancesOfferings (Maybe Text) drdioDuration = lens _drdioDuration (\ s a -> s{_drdioDuration = a}); instance AWSPager DescribeReservedDBInstancesOfferings where page rq rs | stop (rs ^. drdiorsMarker) = Nothing | stop (rs ^. drdiorsReservedDBInstancesOfferings) = Nothing | otherwise = Just $ rq & drdioMarker .~ rs ^. drdiorsMarker instance AWSRequest DescribeReservedDBInstancesOfferings where type Rs DescribeReservedDBInstancesOfferings = DescribeReservedDBInstancesOfferingsResponse request = postQuery rds response = receiveXMLWrapper "DescribeReservedDBInstancesOfferingsResult" (\ s h x -> DescribeReservedDBInstancesOfferingsResponse' <$> (x .@? "Marker") <*> (x .@? "ReservedDBInstancesOfferings" .!@ mempty >>= may (parseXMLList "ReservedDBInstancesOffering")) <*> (pure (fromEnum s))) instance Hashable DescribeReservedDBInstancesOfferings instance NFData DescribeReservedDBInstancesOfferings instance ToHeaders DescribeReservedDBInstancesOfferings where toHeaders = const mempty instance ToPath DescribeReservedDBInstancesOfferings where toPath = const "/" instance ToQuery DescribeReservedDBInstancesOfferings where toQuery DescribeReservedDBInstancesOfferings'{..} = mconcat ["Action" =: ("DescribeReservedDBInstancesOfferings" :: ByteString), "Version" =: ("2014-10-31" :: ByteString), "ProductDescription" =: _drdioProductDescription, "Filters" =: toQuery (toQueryList "Filter" <$> _drdioFilters), "DBInstanceClass" =: _drdioDBInstanceClass, "Marker" =: _drdioMarker, "MaxRecords" =: _drdioMaxRecords, "MultiAZ" =: _drdioMultiAZ, "ReservedDBInstancesOfferingId" =: _drdioReservedDBInstancesOfferingId, "OfferingType" =: _drdioOfferingType, "Duration" =: _drdioDuration] -- | Contains the result of a successful invocation of the 'DescribeReservedDBInstancesOfferings' action. -- -- -- -- /See:/ 'describeReservedDBInstancesOfferingsResponse' smart constructor. data DescribeReservedDBInstancesOfferingsResponse = DescribeReservedDBInstancesOfferingsResponse' { _drdiorsMarker :: !(Maybe Text) , _drdiorsReservedDBInstancesOfferings :: !(Maybe [ReservedDBInstancesOffering]) , _drdiorsResponseStatus :: !Int } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'DescribeReservedDBInstancesOfferingsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'drdiorsMarker' - 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@ . -- -- * 'drdiorsReservedDBInstancesOfferings' - A list of reserved DB instance offerings. -- -- * 'drdiorsResponseStatus' - -- | The response status code. describeReservedDBInstancesOfferingsResponse :: Int -- ^ 'drdiorsResponseStatus' -> DescribeReservedDBInstancesOfferingsResponse describeReservedDBInstancesOfferingsResponse pResponseStatus_ = DescribeReservedDBInstancesOfferingsResponse' { _drdiorsMarker = Nothing , _drdiorsReservedDBInstancesOfferings = Nothing , _drdiorsResponseStatus = pResponseStatus_ } -- | 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@ . drdiorsMarker :: Lens' DescribeReservedDBInstancesOfferingsResponse (Maybe Text) drdiorsMarker = lens _drdiorsMarker (\ s a -> s{_drdiorsMarker = a}); -- | A list of reserved DB instance offerings. drdiorsReservedDBInstancesOfferings :: Lens' DescribeReservedDBInstancesOfferingsResponse [ReservedDBInstancesOffering] drdiorsReservedDBInstancesOfferings = lens _drdiorsReservedDBInstancesOfferings (\ s a -> s{_drdiorsReservedDBInstancesOfferings = a}) . _Default . _Coerce; -- | -- | The response status code. drdiorsResponseStatus :: Lens' DescribeReservedDBInstancesOfferingsResponse Int drdiorsResponseStatus = lens _drdiorsResponseStatus (\ s a -> s{_drdiorsResponseStatus = a}); instance NFData DescribeReservedDBInstancesOfferingsResponse