module Network.AWS.ELB.DescribeInstanceHealth
(
DescribeInstanceHealth
, describeInstanceHealth
, dihInstances
, dihLoadBalancerName
, DescribeInstanceHealthResponse
, describeInstanceHealthResponse
, dihrInstanceStates
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.ELB.Types
import qualified GHC.Exts
data DescribeInstanceHealth = DescribeInstanceHealth
{ _dihInstances :: List "member" Instance
, _dihLoadBalancerName :: Text
} deriving (Eq, Show)
describeInstanceHealth :: Text
-> DescribeInstanceHealth
describeInstanceHealth p1 = DescribeInstanceHealth
{ _dihLoadBalancerName = p1
, _dihInstances = mempty
}
dihInstances :: Lens' DescribeInstanceHealth [Instance]
dihInstances = lens _dihInstances (\s a -> s { _dihInstances = a }) . _List
dihLoadBalancerName :: Lens' DescribeInstanceHealth Text
dihLoadBalancerName =
lens _dihLoadBalancerName (\s a -> s { _dihLoadBalancerName = a })
newtype DescribeInstanceHealthResponse = DescribeInstanceHealthResponse
{ _dihrInstanceStates :: List "member" InstanceState
} deriving (Eq, Show, Monoid, Semigroup)
instance GHC.Exts.IsList DescribeInstanceHealthResponse where
type Item DescribeInstanceHealthResponse = InstanceState
fromList = DescribeInstanceHealthResponse . GHC.Exts.fromList
toList = GHC.Exts.toList . _dihrInstanceStates
describeInstanceHealthResponse :: DescribeInstanceHealthResponse
describeInstanceHealthResponse = DescribeInstanceHealthResponse
{ _dihrInstanceStates = mempty
}
dihrInstanceStates :: Lens' DescribeInstanceHealthResponse [InstanceState]
dihrInstanceStates =
lens _dihrInstanceStates (\s a -> s { _dihrInstanceStates = a })
. _List
instance ToPath DescribeInstanceHealth where
toPath = const "/"
instance ToQuery DescribeInstanceHealth where
toQuery DescribeInstanceHealth{..} = mconcat
[ "Instances" =? _dihInstances
, "LoadBalancerName" =? _dihLoadBalancerName
]
instance ToHeaders DescribeInstanceHealth
instance AWSRequest DescribeInstanceHealth where
type Sv DescribeInstanceHealth = ELB
type Rs DescribeInstanceHealth = DescribeInstanceHealthResponse
request = post "DescribeInstanceHealth"
response = xmlResponse
instance FromXML DescribeInstanceHealthResponse where
parseXML = withElement "DescribeInstanceHealthResult" $ \x -> DescribeInstanceHealthResponse
<$> x .@? "InstanceStates" .!@ mempty