{-# 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.WorkSpaces.AuthorizeIPRules
(
authorizeIPRules
, AuthorizeIPRules
, airGroupId
, airUserRules
, authorizeIPRulesResponse
, AuthorizeIPRulesResponse
, airrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.WorkSpaces.Types
import Network.AWS.WorkSpaces.Types.Product
data AuthorizeIPRules = AuthorizeIPRules'
{ _airGroupId :: !Text
, _airUserRules :: ![IPRuleItem]
} deriving (Eq, Read, Show, Data, Typeable, Generic)
authorizeIPRules
:: Text
-> AuthorizeIPRules
authorizeIPRules pGroupId_ =
AuthorizeIPRules' {_airGroupId = pGroupId_, _airUserRules = mempty}
airGroupId :: Lens' AuthorizeIPRules Text
airGroupId = lens _airGroupId (\ s a -> s{_airGroupId = a})
airUserRules :: Lens' AuthorizeIPRules [IPRuleItem]
airUserRules = lens _airUserRules (\ s a -> s{_airUserRules = a}) . _Coerce
instance AWSRequest AuthorizeIPRules where
type Rs AuthorizeIPRules = AuthorizeIPRulesResponse
request = postJSON workSpaces
response
= receiveEmpty
(\ s h x ->
AuthorizeIPRulesResponse' <$> (pure (fromEnum s)))
instance Hashable AuthorizeIPRules where
instance NFData AuthorizeIPRules where
instance ToHeaders AuthorizeIPRules where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("WorkspacesService.AuthorizeIpRules" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON AuthorizeIPRules where
toJSON AuthorizeIPRules'{..}
= object
(catMaybes
[Just ("GroupId" .= _airGroupId),
Just ("UserRules" .= _airUserRules)])
instance ToPath AuthorizeIPRules where
toPath = const "/"
instance ToQuery AuthorizeIPRules where
toQuery = const mempty
newtype AuthorizeIPRulesResponse = AuthorizeIPRulesResponse'
{ _airrsResponseStatus :: Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
authorizeIPRulesResponse
:: Int
-> AuthorizeIPRulesResponse
authorizeIPRulesResponse pResponseStatus_ =
AuthorizeIPRulesResponse' {_airrsResponseStatus = pResponseStatus_}
airrsResponseStatus :: Lens' AuthorizeIPRulesResponse Int
airrsResponseStatus = lens _airrsResponseStatus (\ s a -> s{_airrsResponseStatus = a})
instance NFData AuthorizeIPRulesResponse where