amazonka-ec2-0.3.5: gen/Network/AWS/EC2/CancelSpotFleetRequests.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.CancelSpotFleetRequests
-- 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)
--
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- | Cancels the specified Spot fleet requests.
--
-- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CancelSpotFleetRequests.html>
module Network.AWS.EC2.CancelSpotFleetRequests
(
-- * Request
CancelSpotFleetRequests
-- ** Request constructor
, cancelSpotFleetRequests
-- ** Request lenses
, csfrDryRun
, csfrSpotFleetRequestIds
, csfrTerminateInstances
-- * Response
, CancelSpotFleetRequestsResponse
-- ** Response constructor
, cancelSpotFleetRequestsResponse
-- ** Response lenses
, csfrrSuccessfulFleetRequests
, csfrrUnsuccessfulFleetRequests
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.EC2.Types
import qualified GHC.Exts
data CancelSpotFleetRequests = CancelSpotFleetRequests
{ _csfrDryRun :: Maybe Bool
, _csfrSpotFleetRequestIds :: List "item" Text
, _csfrTerminateInstances :: Bool
} deriving (Eq, Ord, Read, Show)
-- | 'CancelSpotFleetRequests' constructor.
--
-- The fields accessible through corresponding lenses are:
--
-- * 'csfrDryRun' @::@ 'Maybe' 'Bool'
--
-- * 'csfrSpotFleetRequestIds' @::@ ['Text']
--
-- * 'csfrTerminateInstances' @::@ 'Bool'
--
cancelSpotFleetRequests :: Bool -- ^ 'csfrTerminateInstances'
-> CancelSpotFleetRequests
cancelSpotFleetRequests p1 = CancelSpotFleetRequests
{ _csfrTerminateInstances = p1
, _csfrDryRun = Nothing
, _csfrSpotFleetRequestIds = mempty
}
-- | Checks whether you have the required permissions for the action, without
-- actually making the request, and provides an error response. If you have the
-- required permissions, the error response is 'DryRunOperation'. Otherwise, it is 'UnauthorizedOperation'.
csfrDryRun :: Lens' CancelSpotFleetRequests (Maybe Bool)
csfrDryRun = lens _csfrDryRun (\s a -> s { _csfrDryRun = a })
-- | The IDs of the Spot fleet requests.
csfrSpotFleetRequestIds :: Lens' CancelSpotFleetRequests [Text]
csfrSpotFleetRequestIds =
lens _csfrSpotFleetRequestIds (\s a -> s { _csfrSpotFleetRequestIds = a })
. _List
-- | Indicates whether to terminate instances for a Spot fleet request if it is
-- canceled successfully.
csfrTerminateInstances :: Lens' CancelSpotFleetRequests Bool
csfrTerminateInstances =
lens _csfrTerminateInstances (\s a -> s { _csfrTerminateInstances = a })
data CancelSpotFleetRequestsResponse = CancelSpotFleetRequestsResponse
{ _csfrrSuccessfulFleetRequests :: List "item" CancelSpotFleetRequestsSuccessItem
, _csfrrUnsuccessfulFleetRequests :: List "item" CancelSpotFleetRequestsErrorItem
} deriving (Eq, Read, Show)
-- | 'CancelSpotFleetRequestsResponse' constructor.
--
-- The fields accessible through corresponding lenses are:
--
-- * 'csfrrSuccessfulFleetRequests' @::@ ['CancelSpotFleetRequestsSuccessItem']
--
-- * 'csfrrUnsuccessfulFleetRequests' @::@ ['CancelSpotFleetRequestsErrorItem']
--
cancelSpotFleetRequestsResponse :: CancelSpotFleetRequestsResponse
cancelSpotFleetRequestsResponse = CancelSpotFleetRequestsResponse
{ _csfrrUnsuccessfulFleetRequests = mempty
, _csfrrSuccessfulFleetRequests = mempty
}
-- | Information about the Spot fleet requests that are successfully canceled.
csfrrSuccessfulFleetRequests :: Lens' CancelSpotFleetRequestsResponse [CancelSpotFleetRequestsSuccessItem]
csfrrSuccessfulFleetRequests =
lens _csfrrSuccessfulFleetRequests
(\s a -> s { _csfrrSuccessfulFleetRequests = a })
. _List
-- | Information about the Spot fleet requests that are not successfully canceled.
csfrrUnsuccessfulFleetRequests :: Lens' CancelSpotFleetRequestsResponse [CancelSpotFleetRequestsErrorItem]
csfrrUnsuccessfulFleetRequests =
lens _csfrrUnsuccessfulFleetRequests
(\s a -> s { _csfrrUnsuccessfulFleetRequests = a })
. _List
instance ToPath CancelSpotFleetRequests where
toPath = const "/"
instance ToQuery CancelSpotFleetRequests where
toQuery CancelSpotFleetRequests{..} = mconcat
[ "DryRun" =? _csfrDryRun
, "SpotFleetRequestId" `toQueryList` _csfrSpotFleetRequestIds
, "TerminateInstances" =? _csfrTerminateInstances
]
instance ToHeaders CancelSpotFleetRequests
instance AWSRequest CancelSpotFleetRequests where
type Sv CancelSpotFleetRequests = EC2
type Rs CancelSpotFleetRequests = CancelSpotFleetRequestsResponse
request = post "CancelSpotFleetRequests"
response = xmlResponse
instance FromXML CancelSpotFleetRequestsResponse where
parseXML x = CancelSpotFleetRequestsResponse
<$> x .@? "successfulFleetRequestSet" .!@ mempty
<*> x .@? "unsuccessfulFleetRequestSet" .!@ mempty