{-# 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 #-}
module Network.AWS.Route53AutoNaming.GetInstancesHealthStatus
(
getInstancesHealthStatus
, GetInstancesHealthStatus
, gihsNextToken
, gihsInstances
, gihsMaxResults
, gihsServiceId
, getInstancesHealthStatusResponse
, GetInstancesHealthStatusResponse
, gihsrsStatus
, gihsrsNextToken
, gihsrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.Route53AutoNaming.Types
import Network.AWS.Route53AutoNaming.Types.Product
data GetInstancesHealthStatus = GetInstancesHealthStatus'
{ _gihsNextToken :: !(Maybe Text)
, _gihsInstances :: !(Maybe (List1 Text))
, _gihsMaxResults :: !(Maybe Nat)
, _gihsServiceId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getInstancesHealthStatus
:: Text
-> GetInstancesHealthStatus
getInstancesHealthStatus pServiceId_ =
GetInstancesHealthStatus'
{ _gihsNextToken = Nothing
, _gihsInstances = Nothing
, _gihsMaxResults = Nothing
, _gihsServiceId = pServiceId_
}
gihsNextToken :: Lens' GetInstancesHealthStatus (Maybe Text)
gihsNextToken = lens _gihsNextToken (\ s a -> s{_gihsNextToken = a})
gihsInstances :: Lens' GetInstancesHealthStatus (Maybe (NonEmpty Text))
gihsInstances = lens _gihsInstances (\ s a -> s{_gihsInstances = a}) . mapping _List1
gihsMaxResults :: Lens' GetInstancesHealthStatus (Maybe Natural)
gihsMaxResults = lens _gihsMaxResults (\ s a -> s{_gihsMaxResults = a}) . mapping _Nat
gihsServiceId :: Lens' GetInstancesHealthStatus Text
gihsServiceId = lens _gihsServiceId (\ s a -> s{_gihsServiceId = a})
instance AWSRequest GetInstancesHealthStatus where
type Rs GetInstancesHealthStatus =
GetInstancesHealthStatusResponse
request = postJSON route53AutoNaming
response
= receiveJSON
(\ s h x ->
GetInstancesHealthStatusResponse' <$>
(x .?> "Status" .!@ mempty) <*> (x .?> "NextToken")
<*> (pure (fromEnum s)))
instance Hashable GetInstancesHealthStatus where
instance NFData GetInstancesHealthStatus where
instance ToHeaders GetInstancesHealthStatus where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("Route53AutoNaming_v20170314.GetInstancesHealthStatus"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON GetInstancesHealthStatus where
toJSON GetInstancesHealthStatus'{..}
= object
(catMaybes
[("NextToken" .=) <$> _gihsNextToken,
("Instances" .=) <$> _gihsInstances,
("MaxResults" .=) <$> _gihsMaxResults,
Just ("ServiceId" .= _gihsServiceId)])
instance ToPath GetInstancesHealthStatus where
toPath = const "/"
instance ToQuery GetInstancesHealthStatus where
toQuery = const mempty
data GetInstancesHealthStatusResponse = GetInstancesHealthStatusResponse'
{ _gihsrsStatus :: !(Maybe (Map Text HealthStatus))
, _gihsrsNextToken :: !(Maybe Text)
, _gihsrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getInstancesHealthStatusResponse
:: Int
-> GetInstancesHealthStatusResponse
getInstancesHealthStatusResponse pResponseStatus_ =
GetInstancesHealthStatusResponse'
{ _gihsrsStatus = Nothing
, _gihsrsNextToken = Nothing
, _gihsrsResponseStatus = pResponseStatus_
}
gihsrsStatus :: Lens' GetInstancesHealthStatusResponse (HashMap Text HealthStatus)
gihsrsStatus = lens _gihsrsStatus (\ s a -> s{_gihsrsStatus = a}) . _Default . _Map
gihsrsNextToken :: Lens' GetInstancesHealthStatusResponse (Maybe Text)
gihsrsNextToken = lens _gihsrsNextToken (\ s a -> s{_gihsrsNextToken = a})
gihsrsResponseStatus :: Lens' GetInstancesHealthStatusResponse Int
gihsrsResponseStatus = lens _gihsrsResponseStatus (\ s a -> s{_gihsrsResponseStatus = a})
instance NFData GetInstancesHealthStatusResponse
where