{-# 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.OpsWorks.GrantAccess
(
grantAccess
, GrantAccess
, gaValidForInMinutes
, gaInstanceId
, grantAccessResponse
, GrantAccessResponse
, garsTemporaryCredential
, garsResponseStatus
) where
import Network.AWS.Lens
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 Hashable GrantAccess where
instance NFData GrantAccess where
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})
instance NFData GrantAccessResponse where