module Network.AWS.OpsWorks.RegisterInstance
(
registerInstance
, RegisterInstance
, riPrivateIP
, riHostname
, riInstanceIdentity
, riPublicIP
, riRsaPublicKeyFingerprint
, riRsaPublicKey
, riStackId
, registerInstanceResponse
, RegisterInstanceResponse
, rirsInstanceId
, rirsStatus
) 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 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 Sv RegisterInstance = OpsWorks
type Rs RegisterInstance = RegisterInstanceResponse
request = postJSON
response
= receiveJSON
(\ s h x ->
RegisterInstanceResponse' <$>
(x .?> "InstanceId") <*> (pure (fromEnum s)))
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
["PrivateIp" .= _riPrivateIP,
"Hostname" .= _riHostname,
"InstanceIdentity" .= _riInstanceIdentity,
"PublicIp" .= _riPublicIP,
"RsaPublicKeyFingerprint" .=
_riRsaPublicKeyFingerprint,
"RsaPublicKey" .= _riRsaPublicKey,
"StackId" .= _riStackId]
instance ToPath RegisterInstance where
toPath = const "/"
instance ToQuery RegisterInstance where
toQuery = const mempty
data RegisterInstanceResponse = RegisterInstanceResponse'
{ _rirsInstanceId :: !(Maybe Text)
, _rirsStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
registerInstanceResponse
:: Int
-> RegisterInstanceResponse
registerInstanceResponse pStatus_ =
RegisterInstanceResponse'
{ _rirsInstanceId = Nothing
, _rirsStatus = pStatus_
}
rirsInstanceId :: Lens' RegisterInstanceResponse (Maybe Text)
rirsInstanceId = lens _rirsInstanceId (\ s a -> s{_rirsInstanceId = a});
rirsStatus :: Lens' RegisterInstanceResponse Int
rirsStatus = lens _rirsStatus (\ s a -> s{_rirsStatus = a});