amazonka-health-1.4.5: gen/Network/AWS/AWSHealth/DescribeEntityAggregates.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.AWSHealth.DescribeEntityAggregates
-- 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)
--
-- Returns the number of entities that are affected by each of the specified events. If no events are specified, the counts of all affected entities are returned.
--
--
module Network.AWS.AWSHealth.DescribeEntityAggregates
(
-- * Creating a Request
describeEntityAggregates
, DescribeEntityAggregates
-- * Request Lenses
, deaEventARNs
-- * Destructuring the Response
, describeEntityAggregatesResponse
, DescribeEntityAggregatesResponse
-- * Response Lenses
, dearsEntityAggregates
, dearsResponseStatus
) where
import Network.AWS.AWSHealth.Types
import Network.AWS.AWSHealth.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
-- | /See:/ 'describeEntityAggregates' smart constructor.
newtype DescribeEntityAggregates = DescribeEntityAggregates'
{ _deaEventARNs :: Maybe (List1 Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'DescribeEntityAggregates' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'deaEventARNs' - A list of event ARNs (unique identifiers). For example: @"arn:aws:health:us-east-1::event/AWS_EC2_MAINTENANCE_5331", "arn:aws:health:us-west-1::event/AWS_EBS_LOST_VOLUME_xyz"@
describeEntityAggregates
:: DescribeEntityAggregates
describeEntityAggregates =
DescribeEntityAggregates'
{ _deaEventARNs = Nothing
}
-- | A list of event ARNs (unique identifiers). For example: @"arn:aws:health:us-east-1::event/AWS_EC2_MAINTENANCE_5331", "arn:aws:health:us-west-1::event/AWS_EBS_LOST_VOLUME_xyz"@
deaEventARNs :: Lens' DescribeEntityAggregates (Maybe (NonEmpty Text))
deaEventARNs = lens _deaEventARNs (\ s a -> s{_deaEventARNs = a}) . mapping _List1;
instance AWSRequest DescribeEntityAggregates where
type Rs DescribeEntityAggregates =
DescribeEntityAggregatesResponse
request = postJSON awsHealth
response
= receiveJSON
(\ s h x ->
DescribeEntityAggregatesResponse' <$>
(x .?> "entityAggregates" .!@ mempty) <*>
(pure (fromEnum s)))
instance Hashable DescribeEntityAggregates
instance NFData DescribeEntityAggregates
instance ToHeaders DescribeEntityAggregates where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSHealth_20160804.DescribeEntityAggregates" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeEntityAggregates where
toJSON DescribeEntityAggregates'{..}
= object
(catMaybes [("eventArns" .=) <$> _deaEventARNs])
instance ToPath DescribeEntityAggregates where
toPath = const "/"
instance ToQuery DescribeEntityAggregates where
toQuery = const mempty
-- | /See:/ 'describeEntityAggregatesResponse' smart constructor.
data DescribeEntityAggregatesResponse = DescribeEntityAggregatesResponse'
{ _dearsEntityAggregates :: !(Maybe [EntityAggregate])
, _dearsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'DescribeEntityAggregatesResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'dearsEntityAggregates' - The number of entities that are affected by each of the specified events.
--
-- * 'dearsResponseStatus' - -- | The response status code.
describeEntityAggregatesResponse
:: Int -- ^ 'dearsResponseStatus'
-> DescribeEntityAggregatesResponse
describeEntityAggregatesResponse pResponseStatus_ =
DescribeEntityAggregatesResponse'
{ _dearsEntityAggregates = Nothing
, _dearsResponseStatus = pResponseStatus_
}
-- | The number of entities that are affected by each of the specified events.
dearsEntityAggregates :: Lens' DescribeEntityAggregatesResponse [EntityAggregate]
dearsEntityAggregates = lens _dearsEntityAggregates (\ s a -> s{_dearsEntityAggregates = a}) . _Default . _Coerce;
-- | -- | The response status code.
dearsResponseStatus :: Lens' DescribeEntityAggregatesResponse Int
dearsResponseStatus = lens _dearsResponseStatus (\ s a -> s{_dearsResponseStatus = a});
instance NFData DescribeEntityAggregatesResponse