module Network.AWS.WorkDocs.AddResourcePermissions
(
addResourcePermissions
, AddResourcePermissions
, arpAuthenticationToken
, arpResourceId
, arpPrincipals
, addResourcePermissionsResponse
, AddResourcePermissionsResponse
, arprsShareResults
, arprsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.WorkDocs.Types
import Network.AWS.WorkDocs.Types.Product
data AddResourcePermissions = AddResourcePermissions'
{ _arpAuthenticationToken :: !(Maybe (Sensitive Text))
, _arpResourceId :: !Text
, _arpPrincipals :: ![SharePrincipal]
} deriving (Eq, Show, Data, Typeable, Generic)
addResourcePermissions
:: Text
-> AddResourcePermissions
addResourcePermissions pResourceId_ =
AddResourcePermissions'
{ _arpAuthenticationToken = Nothing
, _arpResourceId = pResourceId_
, _arpPrincipals = mempty
}
arpAuthenticationToken :: Lens' AddResourcePermissions (Maybe Text)
arpAuthenticationToken = lens _arpAuthenticationToken (\ s a -> s{_arpAuthenticationToken = a}) . mapping _Sensitive;
arpResourceId :: Lens' AddResourcePermissions Text
arpResourceId = lens _arpResourceId (\ s a -> s{_arpResourceId = a});
arpPrincipals :: Lens' AddResourcePermissions [SharePrincipal]
arpPrincipals = lens _arpPrincipals (\ s a -> s{_arpPrincipals = a}) . _Coerce;
instance AWSRequest AddResourcePermissions where
type Rs AddResourcePermissions =
AddResourcePermissionsResponse
request = postJSON workDocs
response
= receiveJSON
(\ s h x ->
AddResourcePermissionsResponse' <$>
(x .?> "ShareResults" .!@ mempty) <*>
(pure (fromEnum s)))
instance Hashable AddResourcePermissions where
instance NFData AddResourcePermissions where
instance ToHeaders AddResourcePermissions where
toHeaders AddResourcePermissions'{..}
= mconcat
["Authentication" =# _arpAuthenticationToken,
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)]
instance ToJSON AddResourcePermissions where
toJSON AddResourcePermissions'{..}
= object
(catMaybes [Just ("Principals" .= _arpPrincipals)])
instance ToPath AddResourcePermissions where
toPath AddResourcePermissions'{..}
= mconcat
["/api/v1/resources/", toBS _arpResourceId,
"/permissions"]
instance ToQuery AddResourcePermissions where
toQuery = const mempty
data AddResourcePermissionsResponse = AddResourcePermissionsResponse'
{ _arprsShareResults :: !(Maybe [ShareResult])
, _arprsResponseStatus :: !Int
} deriving (Eq, Show, Data, Typeable, Generic)
addResourcePermissionsResponse
:: Int
-> AddResourcePermissionsResponse
addResourcePermissionsResponse pResponseStatus_ =
AddResourcePermissionsResponse'
{_arprsShareResults = Nothing, _arprsResponseStatus = pResponseStatus_}
arprsShareResults :: Lens' AddResourcePermissionsResponse [ShareResult]
arprsShareResults = lens _arprsShareResults (\ s a -> s{_arprsShareResults = a}) . _Default . _Coerce;
arprsResponseStatus :: Lens' AddResourcePermissionsResponse Int
arprsResponseStatus = lens _arprsResponseStatus (\ s a -> s{_arprsResponseStatus = a});
instance NFData AddResourcePermissionsResponse where