module Network.AWS.OpsWorks.RegisterInstance
(
registerInstance
, RegisterInstance
, riPrivateIP
, riHostname
, riInstanceIdentity
, riPublicIP
, riRsaPublicKeyFingerprint
, riRsaPublicKey
, riStackId
, registerInstanceResponse
, RegisterInstanceResponse
, rirsInstanceId
, rirsResponseStatus
) 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 RegisterInstance = RegisterInstance'
{ _riPrivateIP :: !(Maybe Text)
, _riHostname :: !(Maybe Text)
, _riInstanceIdentity :: !(Maybe InstanceIdentity)
, _riPublicIP :: !(Maybe Text)
, _riRsaPublicKeyFingerprint :: !(Maybe Text)
, _riRsaPublicKey :: !(Maybe Text)
, _riStackId :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
registerInstance
:: Text
-> RegisterInstance
registerInstance pStackId_ =
RegisterInstance'
{ _riPrivateIP = Nothing
, _riHostname = Nothing
, _riInstanceIdentity = Nothing
, _riPublicIP = Nothing
, _riRsaPublicKeyFingerprint = Nothing
, _riRsaPublicKey = Nothing
, _riStackId = pStackId_
}
riPrivateIP :: Lens' RegisterInstance (Maybe Text)
riPrivateIP = lens _riPrivateIP (\ s a -> s{_riPrivateIP = a});
riHostname :: Lens' RegisterInstance (Maybe Text)
riHostname = lens _riHostname (\ s a -> s{_riHostname = a});
riInstanceIdentity :: Lens' RegisterInstance (Maybe InstanceIdentity)
riInstanceIdentity = lens _riInstanceIdentity (\ s a -> s{_riInstanceIdentity = a});
riPublicIP :: Lens' RegisterInstance (Maybe Text)
riPublicIP = lens _riPublicIP (\ s a -> s{_riPublicIP = a});
riRsaPublicKeyFingerprint :: Lens' RegisterInstance (Maybe Text)
riRsaPublicKeyFingerprint = lens _riRsaPublicKeyFingerprint (\ s a -> s{_riRsaPublicKeyFingerprint = a});
riRsaPublicKey :: Lens' RegisterInstance (Maybe Text)
riRsaPublicKey = lens _riRsaPublicKey (\ s a -> s{_riRsaPublicKey = a});
riStackId :: Lens' RegisterInstance Text
riStackId = lens _riStackId (\ s a -> s{_riStackId = a});
instance AWSRequest RegisterInstance where
type Rs RegisterInstance = RegisterInstanceResponse
request = postJSON opsWorks
response
= receiveJSON
(\ s h x ->
RegisterInstanceResponse' <$>
(x .?> "InstanceId") <*> (pure (fromEnum s)))
instance Hashable RegisterInstance
instance ToHeaders RegisterInstance where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("OpsWorks_20130218.RegisterInstance" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON RegisterInstance where
toJSON RegisterInstance'{..}
= object
(catMaybes
[("PrivateIp" .=) <$> _riPrivateIP,
("Hostname" .=) <$> _riHostname,
("InstanceIdentity" .=) <$> _riInstanceIdentity,
("PublicIp" .=) <$> _riPublicIP,
("RsaPublicKeyFingerprint" .=) <$>
_riRsaPublicKeyFingerprint,
("RsaPublicKey" .=) <$> _riRsaPublicKey,
Just ("StackId" .= _riStackId)])
instance ToPath RegisterInstance where
toPath = const "/"
instance ToQuery RegisterInstance where
toQuery = const mempty
data RegisterInstanceResponse = RegisterInstanceResponse'
{ _rirsInstanceId :: !(Maybe Text)
, _rirsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
registerInstanceResponse
:: Int
-> RegisterInstanceResponse
registerInstanceResponse pResponseStatus_ =
RegisterInstanceResponse'
{ _rirsInstanceId = Nothing
, _rirsResponseStatus = pResponseStatus_
}
rirsInstanceId :: Lens' RegisterInstanceResponse (Maybe Text)
rirsInstanceId = lens _rirsInstanceId (\ s a -> s{_rirsInstanceId = a});
rirsResponseStatus :: Lens' RegisterInstanceResponse Int
rirsResponseStatus = lens _rirsResponseStatus (\ s a -> s{_rirsResponseStatus = a});