{-# 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.Lightsail.GetInstanceAccessDetails
(
getInstanceAccessDetails
, GetInstanceAccessDetails
, giadProtocol
, giadInstanceName
, getInstanceAccessDetailsResponse
, GetInstanceAccessDetailsResponse
, giadrsAccessDetails
, giadrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Lightsail.Types
import Network.AWS.Lightsail.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data GetInstanceAccessDetails = GetInstanceAccessDetails'
{ _giadProtocol :: !(Maybe InstanceAccessProtocol)
, _giadInstanceName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
getInstanceAccessDetails
:: Text
-> GetInstanceAccessDetails
getInstanceAccessDetails pInstanceName_ =
GetInstanceAccessDetails'
{ _giadProtocol = Nothing
, _giadInstanceName = pInstanceName_
}
giadProtocol :: Lens' GetInstanceAccessDetails (Maybe InstanceAccessProtocol)
giadProtocol = lens _giadProtocol (\ s a -> s{_giadProtocol = a});
giadInstanceName :: Lens' GetInstanceAccessDetails Text
giadInstanceName = lens _giadInstanceName (\ s a -> s{_giadInstanceName = a});
instance AWSRequest GetInstanceAccessDetails where
type Rs GetInstanceAccessDetails =
GetInstanceAccessDetailsResponse
request = postJSON lightsail
response
= receiveJSON
(\ s h x ->
GetInstanceAccessDetailsResponse' <$>
(x .?> "accessDetails") <*> (pure (fromEnum s)))
instance Hashable GetInstanceAccessDetails
instance NFData GetInstanceAccessDetails
instance ToHeaders GetInstanceAccessDetails where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("Lightsail_20161128.GetInstanceAccessDetails" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON GetInstanceAccessDetails where
toJSON GetInstanceAccessDetails'{..}
= object
(catMaybes
[("protocol" .=) <$> _giadProtocol,
Just ("instanceName" .= _giadInstanceName)])
instance ToPath GetInstanceAccessDetails where
toPath = const "/"
instance ToQuery GetInstanceAccessDetails where
toQuery = const mempty
data GetInstanceAccessDetailsResponse = GetInstanceAccessDetailsResponse'
{ _giadrsAccessDetails :: !(Maybe InstanceAccessDetails)
, _giadrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
getInstanceAccessDetailsResponse
:: Int
-> GetInstanceAccessDetailsResponse
getInstanceAccessDetailsResponse pResponseStatus_ =
GetInstanceAccessDetailsResponse'
{ _giadrsAccessDetails = Nothing
, _giadrsResponseStatus = pResponseStatus_
}
giadrsAccessDetails :: Lens' GetInstanceAccessDetailsResponse (Maybe InstanceAccessDetails)
giadrsAccessDetails = lens _giadrsAccessDetails (\ s a -> s{_giadrsAccessDetails = a});
giadrsResponseStatus :: Lens' GetInstanceAccessDetailsResponse Int
giadrsResponseStatus = lens _giadrsResponseStatus (\ s a -> s{_giadrsResponseStatus = a});
instance NFData GetInstanceAccessDetailsResponse