{-# 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 where
instance NFData GetInstanceAccessDetails where
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
where