amazonka-inspector-1.6.0: gen/Network/AWS/Inspector/DescribeRulesPackages.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.Inspector.DescribeRulesPackages
-- Copyright : (c) 2013-2018 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Describes the rules packages that are specified by the ARNs of the rules packages.
--
--
module Network.AWS.Inspector.DescribeRulesPackages
(
-- * Creating a Request
describeRulesPackages
, DescribeRulesPackages
-- * Request Lenses
, drpLocale
, drpRulesPackageARNs
-- * Destructuring the Response
, describeRulesPackagesResponse
, DescribeRulesPackagesResponse
-- * Response Lenses
, drprsResponseStatus
, drprsRulesPackages
, drprsFailedItems
) where
import Network.AWS.Inspector.Types
import Network.AWS.Inspector.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
-- | /See:/ 'describeRulesPackages' smart constructor.
data DescribeRulesPackages = DescribeRulesPackages'
{ _drpLocale :: !(Maybe Locale)
, _drpRulesPackageARNs :: !(List1 Text)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'DescribeRulesPackages' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'drpLocale' - The locale that you want to translate a rules package description into.
--
-- * 'drpRulesPackageARNs' - The ARN that specifies the rules package that you want to describe.
describeRulesPackages
:: NonEmpty Text -- ^ 'drpRulesPackageARNs'
-> DescribeRulesPackages
describeRulesPackages pRulesPackageARNs_ =
DescribeRulesPackages'
{_drpLocale = Nothing, _drpRulesPackageARNs = _List1 # pRulesPackageARNs_}
-- | The locale that you want to translate a rules package description into.
drpLocale :: Lens' DescribeRulesPackages (Maybe Locale)
drpLocale = lens _drpLocale (\ s a -> s{_drpLocale = a})
-- | The ARN that specifies the rules package that you want to describe.
drpRulesPackageARNs :: Lens' DescribeRulesPackages (NonEmpty Text)
drpRulesPackageARNs = lens _drpRulesPackageARNs (\ s a -> s{_drpRulesPackageARNs = a}) . _List1
instance AWSRequest DescribeRulesPackages where
type Rs DescribeRulesPackages =
DescribeRulesPackagesResponse
request = postJSON inspector
response
= receiveJSON
(\ s h x ->
DescribeRulesPackagesResponse' <$>
(pure (fromEnum s)) <*>
(x .?> "rulesPackages" .!@ mempty)
<*> (x .?> "failedItems" .!@ mempty))
instance Hashable DescribeRulesPackages where
instance NFData DescribeRulesPackages where
instance ToHeaders DescribeRulesPackages where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("InspectorService.DescribeRulesPackages" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeRulesPackages where
toJSON DescribeRulesPackages'{..}
= object
(catMaybes
[("locale" .=) <$> _drpLocale,
Just ("rulesPackageArns" .= _drpRulesPackageARNs)])
instance ToPath DescribeRulesPackages where
toPath = const "/"
instance ToQuery DescribeRulesPackages where
toQuery = const mempty
-- | /See:/ 'describeRulesPackagesResponse' smart constructor.
data DescribeRulesPackagesResponse = DescribeRulesPackagesResponse'
{ _drprsResponseStatus :: !Int
, _drprsRulesPackages :: ![RulesPackage]
, _drprsFailedItems :: !(Map Text FailedItemDetails)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'DescribeRulesPackagesResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'drprsResponseStatus' - -- | The response status code.
--
-- * 'drprsRulesPackages' - Information about the rules package.
--
-- * 'drprsFailedItems' - Rules package details that cannot be described. An error code is provided for each failed item.
describeRulesPackagesResponse
:: Int -- ^ 'drprsResponseStatus'
-> DescribeRulesPackagesResponse
describeRulesPackagesResponse pResponseStatus_ =
DescribeRulesPackagesResponse'
{ _drprsResponseStatus = pResponseStatus_
, _drprsRulesPackages = mempty
, _drprsFailedItems = mempty
}
-- | -- | The response status code.
drprsResponseStatus :: Lens' DescribeRulesPackagesResponse Int
drprsResponseStatus = lens _drprsResponseStatus (\ s a -> s{_drprsResponseStatus = a})
-- | Information about the rules package.
drprsRulesPackages :: Lens' DescribeRulesPackagesResponse [RulesPackage]
drprsRulesPackages = lens _drprsRulesPackages (\ s a -> s{_drprsRulesPackages = a}) . _Coerce
-- | Rules package details that cannot be described. An error code is provided for each failed item.
drprsFailedItems :: Lens' DescribeRulesPackagesResponse (HashMap Text FailedItemDetails)
drprsFailedItems = lens _drprsFailedItems (\ s a -> s{_drprsFailedItems = a}) . _Map
instance NFData DescribeRulesPackagesResponse where