-
-
Notifications
You must be signed in to change notification settings - Fork 227
/
DeregisterTargets.hs
133 lines (114 loc) · 4.53 KB
/
DeregisterTargets.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
{-# 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.DeregisterTargets
-- 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)
--
-- Deregisters the specified targets from the specified target group. After the targets are deregistered, they no longer receive traffic from the load balancer.
--
--
module Network.AWS.ELBv2.DeregisterTargets
(
-- * Creating a Request
deregisterTargets
, DeregisterTargets
-- * Request Lenses
, dtTargetGroupARN
, dtTargets
-- * Destructuring the Response
, deregisterTargetsResponse
, DeregisterTargetsResponse
-- * Response Lenses
, dtsrsResponseStatus
) 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 DeregisterTargets.
--
--
--
-- /See:/ 'deregisterTargets' smart constructor.
data DeregisterTargets = DeregisterTargets'
{ _dtTargetGroupARN :: !Text
, _dtTargets :: ![TargetDescription]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'DeregisterTargets' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'dtTargetGroupARN' - The Amazon Resource Name (ARN) of the target group.
--
-- * 'dtTargets' - The targets. If you specified a port override when you registered a target, you must specify both the target ID and the port when you deregister it.
deregisterTargets
:: Text -- ^ 'dtTargetGroupARN'
-> DeregisterTargets
deregisterTargets pTargetGroupARN_ =
DeregisterTargets'
{ _dtTargetGroupARN = pTargetGroupARN_
, _dtTargets = mempty
}
-- | The Amazon Resource Name (ARN) of the target group.
dtTargetGroupARN :: Lens' DeregisterTargets Text
dtTargetGroupARN = lens _dtTargetGroupARN (\ s a -> s{_dtTargetGroupARN = a});
-- | The targets. If you specified a port override when you registered a target, you must specify both the target ID and the port when you deregister it.
dtTargets :: Lens' DeregisterTargets [TargetDescription]
dtTargets = lens _dtTargets (\ s a -> s{_dtTargets = a}) . _Coerce;
instance AWSRequest DeregisterTargets where
type Rs DeregisterTargets = DeregisterTargetsResponse
request = postQuery eLBv2
response
= receiveXMLWrapper "DeregisterTargetsResult"
(\ s h x ->
DeregisterTargetsResponse' <$> (pure (fromEnum s)))
instance Hashable DeregisterTargets
instance NFData DeregisterTargets
instance ToHeaders DeregisterTargets where
toHeaders = const mempty
instance ToPath DeregisterTargets where
toPath = const "/"
instance ToQuery DeregisterTargets where
toQuery DeregisterTargets'{..}
= mconcat
["Action" =: ("DeregisterTargets" :: ByteString),
"Version" =: ("2015-12-01" :: ByteString),
"TargetGroupArn" =: _dtTargetGroupARN,
"Targets" =: toQueryList "member" _dtTargets]
-- | Contains the output of DeregisterTargets.
--
--
--
-- /See:/ 'deregisterTargetsResponse' smart constructor.
newtype DeregisterTargetsResponse = DeregisterTargetsResponse'
{ _dtsrsResponseStatus :: Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'DeregisterTargetsResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'dtsrsResponseStatus' - -- | The response status code.
deregisterTargetsResponse
:: Int -- ^ 'dtsrsResponseStatus'
-> DeregisterTargetsResponse
deregisterTargetsResponse pResponseStatus_ =
DeregisterTargetsResponse'
{ _dtsrsResponseStatus = pResponseStatus_
}
-- | -- | The response status code.
dtsrsResponseStatus :: Lens' DeregisterTargetsResponse Int
dtsrsResponseStatus = lens _dtsrsResponseStatus (\ s a -> s{_dtsrsResponseStatus = a});
instance NFData DeregisterTargetsResponse