module Network.AWS.OpsWorks.GrantAccess
(
grantAccess
, GrantAccess
, gaValidForInMinutes
, gaInstanceId
, grantAccessResponse
, GrantAccessResponse
, garsTemporaryCredential
, garsResponseStatus
) where
import Network.AWS.OpsWorks.Types
import Network.AWS.OpsWorks.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data GrantAccess = GrantAccess'
{ _gaValidForInMinutes :: !(Maybe Nat)
, _gaInstanceId :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
grantAccess
:: Text
-> GrantAccess
grantAccess pInstanceId_ =
GrantAccess'
{ _gaValidForInMinutes = Nothing
, _gaInstanceId = pInstanceId_
}
gaValidForInMinutes :: Lens' GrantAccess (Maybe Natural)
gaValidForInMinutes = lens _gaValidForInMinutes (\ s a -> s{_gaValidForInMinutes = a}) . mapping _Nat;
gaInstanceId :: Lens' GrantAccess Text
gaInstanceId = lens _gaInstanceId (\ s a -> s{_gaInstanceId = a});
instance AWSRequest GrantAccess where
type Rs GrantAccess = GrantAccessResponse
request = postJSON opsWorks
response
= receiveJSON
(\ s h x ->
GrantAccessResponse' <$>
(x .?> "TemporaryCredential") <*>
(pure (fromEnum s)))
instance ToHeaders GrantAccess where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("OpsWorks_20130218.GrantAccess" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON GrantAccess where
toJSON GrantAccess'{..}
= object
(catMaybes
[("ValidForInMinutes" .=) <$> _gaValidForInMinutes,
Just ("InstanceId" .= _gaInstanceId)])
instance ToPath GrantAccess where
toPath = const "/"
instance ToQuery GrantAccess where
toQuery = const mempty
data GrantAccessResponse = GrantAccessResponse'
{ _garsTemporaryCredential :: !(Maybe TemporaryCredential)
, _garsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
grantAccessResponse
:: Int
-> GrantAccessResponse
grantAccessResponse pResponseStatus_ =
GrantAccessResponse'
{ _garsTemporaryCredential = Nothing
, _garsResponseStatus = pResponseStatus_
}
garsTemporaryCredential :: Lens' GrantAccessResponse (Maybe TemporaryCredential)
garsTemporaryCredential = lens _garsTemporaryCredential (\ s a -> s{_garsTemporaryCredential = a});
garsResponseStatus :: Lens' GrantAccessResponse Int
garsResponseStatus = lens _garsResponseStatus (\ s a -> s{_garsResponseStatus = a});