module Network.AWS.SSM.CreateAssociation
(
createAssociation
, CreateAssociation
, caName
, caInstanceId
, createAssociationResponse
, CreateAssociationResponse
, carsAssociationDescription
, carsResponseStatus
) where
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.SSM.Types
import Network.AWS.SSM.Types.Product
data CreateAssociation = CreateAssociation'
{ _caName :: !Text
, _caInstanceId :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createAssociation
:: Text
-> Text
-> CreateAssociation
createAssociation pName_ pInstanceId_ =
CreateAssociation'
{ _caName = pName_
, _caInstanceId = pInstanceId_
}
caName :: Lens' CreateAssociation Text
caName = lens _caName (\ s a -> s{_caName = a});
caInstanceId :: Lens' CreateAssociation Text
caInstanceId = lens _caInstanceId (\ s a -> s{_caInstanceId = a});
instance AWSRequest CreateAssociation where
type Rs CreateAssociation = CreateAssociationResponse
request = postJSON sSM
response
= receiveJSON
(\ s h x ->
CreateAssociationResponse' <$>
(x .?> "AssociationDescription") <*>
(pure (fromEnum s)))
instance ToHeaders CreateAssociation where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AmazonSSM.CreateAssociation" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateAssociation where
toJSON CreateAssociation'{..}
= object
(catMaybes
[Just ("Name" .= _caName),
Just ("InstanceId" .= _caInstanceId)])
instance ToPath CreateAssociation where
toPath = const "/"
instance ToQuery CreateAssociation where
toQuery = const mempty
data CreateAssociationResponse = CreateAssociationResponse'
{ _carsAssociationDescription :: !(Maybe AssociationDescription)
, _carsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createAssociationResponse
:: Int
-> CreateAssociationResponse
createAssociationResponse pResponseStatus_ =
CreateAssociationResponse'
{ _carsAssociationDescription = Nothing
, _carsResponseStatus = pResponseStatus_
}
carsAssociationDescription :: Lens' CreateAssociationResponse (Maybe AssociationDescription)
carsAssociationDescription = lens _carsAssociationDescription (\ s a -> s{_carsAssociationDescription = a});
carsResponseStatus :: Lens' CreateAssociationResponse Int
carsResponseStatus = lens _carsResponseStatus (\ s a -> s{_carsResponseStatus = a});