{-# 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.Inspector.CreateResourceGroup
(
createResourceGroup
, CreateResourceGroup
, crgResourceGroupTags
, createResourceGroupResponse
, CreateResourceGroupResponse
, crgrsResponseStatus
, crgrsResourceGroupARN
) 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
newtype CreateResourceGroup = CreateResourceGroup'
{ _crgResourceGroupTags :: List1 ResourceGroupTag
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createResourceGroup
:: NonEmpty ResourceGroupTag
-> CreateResourceGroup
createResourceGroup pResourceGroupTags_ =
CreateResourceGroup'
{ _crgResourceGroupTags = _List1 # pResourceGroupTags_
}
crgResourceGroupTags :: Lens' CreateResourceGroup (NonEmpty ResourceGroupTag)
crgResourceGroupTags = lens _crgResourceGroupTags (\ s a -> s{_crgResourceGroupTags = a}) . _List1;
instance AWSRequest CreateResourceGroup where
type Rs CreateResourceGroup =
CreateResourceGroupResponse
request = postJSON inspector
response
= receiveJSON
(\ s h x ->
CreateResourceGroupResponse' <$>
(pure (fromEnum s)) <*> (x .:> "resourceGroupArn"))
instance Hashable CreateResourceGroup
instance NFData CreateResourceGroup
instance ToHeaders CreateResourceGroup where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("InspectorService.CreateResourceGroup" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateResourceGroup where
toJSON CreateResourceGroup'{..}
= object
(catMaybes
[Just
("resourceGroupTags" .= _crgResourceGroupTags)])
instance ToPath CreateResourceGroup where
toPath = const "/"
instance ToQuery CreateResourceGroup where
toQuery = const mempty
data CreateResourceGroupResponse = CreateResourceGroupResponse'
{ _crgrsResponseStatus :: !Int
, _crgrsResourceGroupARN :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createResourceGroupResponse
:: Int
-> Text
-> CreateResourceGroupResponse
createResourceGroupResponse pResponseStatus_ pResourceGroupARN_ =
CreateResourceGroupResponse'
{ _crgrsResponseStatus = pResponseStatus_
, _crgrsResourceGroupARN = pResourceGroupARN_
}
crgrsResponseStatus :: Lens' CreateResourceGroupResponse Int
crgrsResponseStatus = lens _crgrsResponseStatus (\ s a -> s{_crgrsResponseStatus = a});
crgrsResourceGroupARN :: Lens' CreateResourceGroupResponse Text
crgrsResourceGroupARN = lens _crgrsResourceGroupARN (\ s a -> s{_crgrsResourceGroupARN = a});
instance NFData CreateResourceGroupResponse