{-# 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.EC2.DescribeReservedInstancesModifications -- Copyright : (c) 2013-2015 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Describes the modifications made to your Reserved Instances. If no -- parameter is specified, information about all your Reserved Instances -- modification requests is returned. If a modification ID is specified, -- only information about the specific modification is returned. -- -- For more information, see -- -- in the Amazon Elastic Compute Cloud User Guide. -- -- /See:/ for DescribeReservedInstancesModifications. -- -- This operation returns paginated results. module Network.AWS.EC2.DescribeReservedInstancesModifications ( -- * Creating a Request describeReservedInstancesModifications , DescribeReservedInstancesModifications -- * Request Lenses , drimFilters , drimReservedInstancesModificationIds , drimNextToken -- * Destructuring the Response , describeReservedInstancesModificationsResponse , DescribeReservedInstancesModificationsResponse -- * Response Lenses , drimrsNextToken , drimrsReservedInstancesModifications , drimrsStatus ) where import Network.AWS.EC2.Types import Network.AWS.EC2.Types.Product import Network.AWS.Pager import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | /See:/ 'describeReservedInstancesModifications' smart constructor. data DescribeReservedInstancesModifications = DescribeReservedInstancesModifications' { _drimFilters :: !(Maybe [Filter]) , _drimReservedInstancesModificationIds :: !(Maybe [Text]) , _drimNextToken :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'DescribeReservedInstancesModifications' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'drimFilters' -- -- * 'drimReservedInstancesModificationIds' -- -- * 'drimNextToken' describeReservedInstancesModifications :: DescribeReservedInstancesModifications describeReservedInstancesModifications = DescribeReservedInstancesModifications' { _drimFilters = Nothing , _drimReservedInstancesModificationIds = Nothing , _drimNextToken = Nothing } -- | One or more filters. -- -- - 'client-token' - The idempotency token for the modification request. -- -- - 'create-date' - The time when the modification request was created. -- -- - 'effective-date' - The time when the modification becomes effective. -- -- - 'modification-result.reserved-instances-id' - The ID for the -- Reserved Instances created as part of the modification request. This -- ID is only available when the status of the modification is -- 'fulfilled'. -- -- - 'modification-result.target-configuration.availability-zone' - The -- Availability Zone for the new Reserved Instances. -- -- - 'modification-result.target-configuration.instance-count ' - The -- number of new Reserved Instances. -- -- - 'modification-result.target-configuration.instance-type' - The -- instance type of the new Reserved Instances. -- -- - 'modification-result.target-configuration.platform' - The network -- platform of the new Reserved Instances ('EC2-Classic' | 'EC2-VPC'). -- -- - 'reserved-instances-id' - The ID of the Reserved Instances modified. -- -- - 'reserved-instances-modification-id' - The ID of the modification -- request. -- -- - 'status' - The status of the Reserved Instances modification request -- ('processing' | 'fulfilled' | 'failed'). -- -- - 'status-message' - The reason for the status. -- -- - 'update-date' - The time when the modification request was last -- updated. -- drimFilters :: Lens' DescribeReservedInstancesModifications [Filter] drimFilters = lens _drimFilters (\ s a -> s{_drimFilters = a}) . _Default . _Coerce; -- | IDs for the submitted modification request. drimReservedInstancesModificationIds :: Lens' DescribeReservedInstancesModifications [Text] drimReservedInstancesModificationIds = lens _drimReservedInstancesModificationIds (\ s a -> s{_drimReservedInstancesModificationIds = a}) . _Default . _Coerce; -- | The token to retrieve the next page of results. drimNextToken :: Lens' DescribeReservedInstancesModifications (Maybe Text) drimNextToken = lens _drimNextToken (\ s a -> s{_drimNextToken = a}); instance AWSPager DescribeReservedInstancesModifications where page rq rs | stop (rs ^. drimrsNextToken) = Nothing | stop (rs ^. drimrsReservedInstancesModifications) = Nothing | otherwise = Just $ rq & drimNextToken .~ rs ^. drimrsNextToken instance AWSRequest DescribeReservedInstancesModifications where type Sv DescribeReservedInstancesModifications = EC2 type Rs DescribeReservedInstancesModifications = DescribeReservedInstancesModificationsResponse request = post response = receiveXML (\ s h x -> DescribeReservedInstancesModificationsResponse' <$> (x .@? "nextToken") <*> (x .@? "reservedInstancesModificationsSet" .!@ mempty >>= may (parseXMLList "item")) <*> (pure (fromEnum s))) instance ToHeaders DescribeReservedInstancesModifications where toHeaders = const mempty instance ToPath DescribeReservedInstancesModifications where toPath = const "/" instance ToQuery DescribeReservedInstancesModifications where toQuery DescribeReservedInstancesModifications'{..} = mconcat ["Action" =: ("DescribeReservedInstancesModifications" :: ByteString), "Version" =: ("2015-04-15" :: ByteString), toQuery (toQueryList "Filter" <$> _drimFilters), toQuery (toQueryList "ReservedInstancesModificationId" <$> _drimReservedInstancesModificationIds), "NextToken" =: _drimNextToken] -- | /See:/ 'describeReservedInstancesModificationsResponse' smart constructor. data DescribeReservedInstancesModificationsResponse = DescribeReservedInstancesModificationsResponse' { _drimrsNextToken :: !(Maybe Text) , _drimrsReservedInstancesModifications :: !(Maybe [ReservedInstancesModification]) , _drimrsStatus :: !Int } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'DescribeReservedInstancesModificationsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'drimrsNextToken' -- -- * 'drimrsReservedInstancesModifications' -- -- * 'drimrsStatus' describeReservedInstancesModificationsResponse :: Int -- ^ 'drimrsStatus' -> DescribeReservedInstancesModificationsResponse describeReservedInstancesModificationsResponse pStatus_ = DescribeReservedInstancesModificationsResponse' { _drimrsNextToken = Nothing , _drimrsReservedInstancesModifications = Nothing , _drimrsStatus = pStatus_ } -- | The token to use to retrieve the next page of results. This value is -- 'null' when there are no more results to return. drimrsNextToken :: Lens' DescribeReservedInstancesModificationsResponse (Maybe Text) drimrsNextToken = lens _drimrsNextToken (\ s a -> s{_drimrsNextToken = a}); -- | The Reserved Instance modification information. drimrsReservedInstancesModifications :: Lens' DescribeReservedInstancesModificationsResponse [ReservedInstancesModification] drimrsReservedInstancesModifications = lens _drimrsReservedInstancesModifications (\ s a -> s{_drimrsReservedInstancesModifications = a}) . _Default . _Coerce; -- | The response status code. drimrsStatus :: Lens' DescribeReservedInstancesModificationsResponse Int drimrsStatus = lens _drimrsStatus (\ s a -> s{_drimrsStatus = a});