module Network.AWS.MachineLearning.Predict
(
Predict
, predict
, pMLModelId
, pPredictEndpoint
, pRecord
, PredictResponse
, predictResponse
, prPrediction
) where
import Network.AWS.Data (Object)
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.MachineLearning.Types
import qualified GHC.Exts
data Predict = Predict
{ _pMLModelId :: Text
, _pPredictEndpoint :: Text
, _pRecord :: Map Text Text
} deriving (Eq, Read, Show)
predict :: Text
-> Text
-> Predict
predict p1 p2 = Predict
{ _pMLModelId = p1
, _pPredictEndpoint = p2
, _pRecord = mempty
}
pMLModelId :: Lens' Predict Text
pMLModelId = lens _pMLModelId (\s a -> s { _pMLModelId = a })
pPredictEndpoint :: Lens' Predict Text
pPredictEndpoint = lens _pPredictEndpoint (\s a -> s { _pPredictEndpoint = a })
pRecord :: Lens' Predict (HashMap Text Text)
pRecord = lens _pRecord (\s a -> s { _pRecord = a }) . _Map
newtype PredictResponse = PredictResponse
{ _prPrediction :: Maybe Prediction
} deriving (Eq, Read, Show)
predictResponse :: PredictResponse
predictResponse = PredictResponse
{ _prPrediction = Nothing
}
prPrediction :: Lens' PredictResponse (Maybe Prediction)
prPrediction = lens _prPrediction (\s a -> s { _prPrediction = a })
instance ToPath Predict where
toPath = const "/"
instance ToQuery Predict where
toQuery = const mempty
instance ToHeaders Predict
instance ToJSON Predict where
toJSON Predict{..} = object
[ "MLModelId" .= _pMLModelId
, "Record" .= _pRecord
, "PredictEndpoint" .= _pPredictEndpoint
]
instance AWSRequest Predict where
type Sv Predict = MachineLearning
type Rs Predict = PredictResponse
request = post "Predict"
response = jsonResponse
instance FromJSON PredictResponse where
parseJSON = withObject "PredictResponse" $ \o -> PredictResponse
<$> o .:? "Prediction"