amazonka-elbv2-1.4.4: gen/Network/AWS/ELBv2/SetRulePriorities.hs
{-# 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.ELBv2.SetRulePriorities
-- Copyright : (c) 2013-2016 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Sets the priorities of the specified rules.
--
-- You can reorder the rules as long as there are no priority conflicts in the new order. Any existing rules that you do not specify retain their current priority.
module Network.AWS.ELBv2.SetRulePriorities
(
-- * Creating a Request
setRulePriorities
, SetRulePriorities
-- * Request Lenses
, srpRulePriorities
-- * Destructuring the Response
, setRulePrioritiesResponse
, SetRulePrioritiesResponse
-- * Response Lenses
, srprsRules
, srprsResponseStatus
) where
import Network.AWS.ELBv2.Types
import Network.AWS.ELBv2.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
-- | Contains the parameters for SetRulePriorities.
--
-- /See:/ 'setRulePriorities' smart constructor.
newtype SetRulePriorities = SetRulePriorities'
{ _srpRulePriorities :: [RulePriorityPair]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'SetRulePriorities' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'srpRulePriorities'
setRulePriorities
:: SetRulePriorities
setRulePriorities =
SetRulePriorities'
{ _srpRulePriorities = mempty
}
-- | The rule priorities.
srpRulePriorities :: Lens' SetRulePriorities [RulePriorityPair]
srpRulePriorities = lens _srpRulePriorities (\ s a -> s{_srpRulePriorities = a}) . _Coerce;
instance AWSRequest SetRulePriorities where
type Rs SetRulePriorities = SetRulePrioritiesResponse
request = postQuery eLBv2
response
= receiveXMLWrapper "SetRulePrioritiesResult"
(\ s h x ->
SetRulePrioritiesResponse' <$>
(x .@? "Rules" .!@ mempty >>=
may (parseXMLList "member"))
<*> (pure (fromEnum s)))
instance Hashable SetRulePriorities
instance NFData SetRulePriorities
instance ToHeaders SetRulePriorities where
toHeaders = const mempty
instance ToPath SetRulePriorities where
toPath = const "/"
instance ToQuery SetRulePriorities where
toQuery SetRulePriorities'{..}
= mconcat
["Action" =: ("SetRulePriorities" :: ByteString),
"Version" =: ("2015-12-01" :: ByteString),
"RulePriorities" =:
toQueryList "member" _srpRulePriorities]
-- | Contains the output of SetRulePriorities.
--
-- /See:/ 'setRulePrioritiesResponse' smart constructor.
data SetRulePrioritiesResponse = SetRulePrioritiesResponse'
{ _srprsRules :: !(Maybe [Rule])
, _srprsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'SetRulePrioritiesResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'srprsRules'
--
-- * 'srprsResponseStatus'
setRulePrioritiesResponse
:: Int -- ^ 'srprsResponseStatus'
-> SetRulePrioritiesResponse
setRulePrioritiesResponse pResponseStatus_ =
SetRulePrioritiesResponse'
{ _srprsRules = Nothing
, _srprsResponseStatus = pResponseStatus_
}
-- | Information about the rules.
srprsRules :: Lens' SetRulePrioritiesResponse [Rule]
srprsRules = lens _srprsRules (\ s a -> s{_srprsRules = a}) . _Default . _Coerce;
-- | The response status code.
srprsResponseStatus :: Lens' SetRulePrioritiesResponse Int
srprsResponseStatus = lens _srprsResponseStatus (\ s a -> s{_srprsResponseStatus = a});
instance NFData SetRulePrioritiesResponse