{-# 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.MediaLive.UpdateInputSecurityGroup
(
updateInputSecurityGroup
, UpdateInputSecurityGroup
, uisgWhitelistRules
, uisgInputSecurityGroupId
, updateInputSecurityGroupResponse
, UpdateInputSecurityGroupResponse
, uisgrsSecurityGroup
, uisgrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.MediaLive.Types
import Network.AWS.MediaLive.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data UpdateInputSecurityGroup = UpdateInputSecurityGroup'
{ _uisgWhitelistRules :: !(Maybe [InputWhitelistRuleCidr])
, _uisgInputSecurityGroupId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateInputSecurityGroup
:: Text
-> UpdateInputSecurityGroup
updateInputSecurityGroup pInputSecurityGroupId_ =
UpdateInputSecurityGroup'
{ _uisgWhitelistRules = Nothing
, _uisgInputSecurityGroupId = pInputSecurityGroupId_
}
uisgWhitelistRules :: Lens' UpdateInputSecurityGroup [InputWhitelistRuleCidr]
uisgWhitelistRules = lens _uisgWhitelistRules (\ s a -> s{_uisgWhitelistRules = a}) . _Default . _Coerce
uisgInputSecurityGroupId :: Lens' UpdateInputSecurityGroup Text
uisgInputSecurityGroupId = lens _uisgInputSecurityGroupId (\ s a -> s{_uisgInputSecurityGroupId = a})
instance AWSRequest UpdateInputSecurityGroup where
type Rs UpdateInputSecurityGroup =
UpdateInputSecurityGroupResponse
request = putJSON mediaLive
response
= receiveJSON
(\ s h x ->
UpdateInputSecurityGroupResponse' <$>
(x .?> "securityGroup") <*> (pure (fromEnum s)))
instance Hashable UpdateInputSecurityGroup where
instance NFData UpdateInputSecurityGroup where
instance ToHeaders UpdateInputSecurityGroup where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON UpdateInputSecurityGroup where
toJSON UpdateInputSecurityGroup'{..}
= object
(catMaybes
[("whitelistRules" .=) <$> _uisgWhitelistRules])
instance ToPath UpdateInputSecurityGroup where
toPath UpdateInputSecurityGroup'{..}
= mconcat
["/prod/inputSecurityGroups/",
toBS _uisgInputSecurityGroupId]
instance ToQuery UpdateInputSecurityGroup where
toQuery = const mempty
data UpdateInputSecurityGroupResponse = UpdateInputSecurityGroupResponse'
{ _uisgrsSecurityGroup :: !(Maybe InputSecurityGroup)
, _uisgrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateInputSecurityGroupResponse
:: Int
-> UpdateInputSecurityGroupResponse
updateInputSecurityGroupResponse pResponseStatus_ =
UpdateInputSecurityGroupResponse'
{_uisgrsSecurityGroup = Nothing, _uisgrsResponseStatus = pResponseStatus_}
uisgrsSecurityGroup :: Lens' UpdateInputSecurityGroupResponse (Maybe InputSecurityGroup)
uisgrsSecurityGroup = lens _uisgrsSecurityGroup (\ s a -> s{_uisgrsSecurityGroup = a})
uisgrsResponseStatus :: Lens' UpdateInputSecurityGroupResponse Int
uisgrsResponseStatus = lens _uisgrsResponseStatus (\ s a -> s{_uisgrsResponseStatus = a})
instance NFData UpdateInputSecurityGroupResponse
where