{-# 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.WorkMail.PutMailboxPermissions
(
putMailboxPermissions
, PutMailboxPermissions
, pmpOrganizationId
, pmpEntityId
, pmpGranteeId
, pmpPermissionValues
, putMailboxPermissionsResponse
, PutMailboxPermissionsResponse
, pmprsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.WorkMail.Types
import Network.AWS.WorkMail.Types.Product
data PutMailboxPermissions = PutMailboxPermissions'
{ _pmpOrganizationId :: !Text
, _pmpEntityId :: !Text
, _pmpGranteeId :: !Text
, _pmpPermissionValues :: ![PermissionType]
} deriving (Eq, Read, Show, Data, Typeable, Generic)
putMailboxPermissions
:: Text
-> Text
-> Text
-> PutMailboxPermissions
putMailboxPermissions pOrganizationId_ pEntityId_ pGranteeId_ =
PutMailboxPermissions'
{ _pmpOrganizationId = pOrganizationId_
, _pmpEntityId = pEntityId_
, _pmpGranteeId = pGranteeId_
, _pmpPermissionValues = mempty
}
pmpOrganizationId :: Lens' PutMailboxPermissions Text
pmpOrganizationId = lens _pmpOrganizationId (\ s a -> s{_pmpOrganizationId = a})
pmpEntityId :: Lens' PutMailboxPermissions Text
pmpEntityId = lens _pmpEntityId (\ s a -> s{_pmpEntityId = a})
pmpGranteeId :: Lens' PutMailboxPermissions Text
pmpGranteeId = lens _pmpGranteeId (\ s a -> s{_pmpGranteeId = a})
pmpPermissionValues :: Lens' PutMailboxPermissions [PermissionType]
pmpPermissionValues = lens _pmpPermissionValues (\ s a -> s{_pmpPermissionValues = a}) . _Coerce
instance AWSRequest PutMailboxPermissions where
type Rs PutMailboxPermissions =
PutMailboxPermissionsResponse
request = postJSON workMail
response
= receiveEmpty
(\ s h x ->
PutMailboxPermissionsResponse' <$>
(pure (fromEnum s)))
instance Hashable PutMailboxPermissions where
instance NFData PutMailboxPermissions where
instance ToHeaders PutMailboxPermissions where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("WorkMailService.PutMailboxPermissions" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON PutMailboxPermissions where
toJSON PutMailboxPermissions'{..}
= object
(catMaybes
[Just ("OrganizationId" .= _pmpOrganizationId),
Just ("EntityId" .= _pmpEntityId),
Just ("GranteeId" .= _pmpGranteeId),
Just ("PermissionValues" .= _pmpPermissionValues)])
instance ToPath PutMailboxPermissions where
toPath = const "/"
instance ToQuery PutMailboxPermissions where
toQuery = const mempty
newtype PutMailboxPermissionsResponse = PutMailboxPermissionsResponse'
{ _pmprsResponseStatus :: Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
putMailboxPermissionsResponse
:: Int
-> PutMailboxPermissionsResponse
putMailboxPermissionsResponse pResponseStatus_ =
PutMailboxPermissionsResponse' {_pmprsResponseStatus = pResponseStatus_}
pmprsResponseStatus :: Lens' PutMailboxPermissionsResponse Int
pmprsResponseStatus = lens _pmprsResponseStatus (\ s a -> s{_pmprsResponseStatus = a})
instance NFData PutMailboxPermissionsResponse where