{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} -- Module : Network.AWS.MachineLearning.CreateBatchPrediction -- Copyright : (c) 2013-2014 Brendan Hay -- License : This Source Code Form is subject to the terms of -- the Mozilla Public License, v. 2.0. -- A copy of the MPL can be found in the LICENSE file or -- you can obtain it at http://mozilla.org/MPL/2.0/. -- Maintainer : Brendan Hay -- Stability : experimental -- Portability : non-portable (GHC extensions) -- -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | Generates predictions for a group of observations. The observations to -- process exist in one or more data files referenced by a 'DataSource'. This -- operation creates a new 'BatchPrediction', and uses an 'MLModel' and the data -- files referenced by the 'DataSource' as information sources. -- -- 'CreateBatchPrediction' is an asynchronous operation. In response to 'CreateBatchPrediction', Amazon Machine Learning (Amazon ML) immediately returns and sets the 'BatchPrediction' status to 'PENDING'. After the 'BatchPrediction' completes, Amazon ML sets the -- status to 'COMPLETED'. -- -- You can poll for status updates by using the 'GetBatchPrediction' operation -- and checking the 'Status' parameter of the result. After the 'COMPLETED' status -- appears, the results are available in the location specified by the 'OutputUri' -- parameter. -- -- module Network.AWS.MachineLearning.CreateBatchPrediction ( -- * Request CreateBatchPrediction -- ** Request constructor , createBatchPrediction -- ** Request lenses , cbpBatchPredictionDataSourceId , cbpBatchPredictionId , cbpBatchPredictionName , cbpMLModelId , cbpOutputUri -- * Response , CreateBatchPredictionResponse -- ** Response constructor , createBatchPredictionResponse -- ** Response lenses , cbprBatchPredictionId ) 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 CreateBatchPrediction = CreateBatchPrediction { _cbpBatchPredictionDataSourceId :: Text , _cbpBatchPredictionId :: Text , _cbpBatchPredictionName :: Maybe Text , _cbpMLModelId :: Text , _cbpOutputUri :: Text } deriving (Eq, Ord, Read, Show) -- | 'CreateBatchPrediction' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'cbpBatchPredictionDataSourceId' @::@ 'Text' -- -- * 'cbpBatchPredictionId' @::@ 'Text' -- -- * 'cbpBatchPredictionName' @::@ 'Maybe' 'Text' -- -- * 'cbpMLModelId' @::@ 'Text' -- -- * 'cbpOutputUri' @::@ 'Text' -- createBatchPrediction :: Text -- ^ 'cbpBatchPredictionId' -> Text -- ^ 'cbpMLModelId' -> Text -- ^ 'cbpBatchPredictionDataSourceId' -> Text -- ^ 'cbpOutputUri' -> CreateBatchPrediction createBatchPrediction p1 p2 p3 p4 = CreateBatchPrediction { _cbpBatchPredictionId = p1 , _cbpMLModelId = p2 , _cbpBatchPredictionDataSourceId = p3 , _cbpOutputUri = p4 , _cbpBatchPredictionName = Nothing } -- | The ID of the 'DataSource' that points to the group of observations to predict. cbpBatchPredictionDataSourceId :: Lens' CreateBatchPrediction Text cbpBatchPredictionDataSourceId = lens _cbpBatchPredictionDataSourceId (\s a -> s { _cbpBatchPredictionDataSourceId = a }) -- | A user-supplied ID that uniquely identifies the 'BatchPrediction'. cbpBatchPredictionId :: Lens' CreateBatchPrediction Text cbpBatchPredictionId = lens _cbpBatchPredictionId (\s a -> s { _cbpBatchPredictionId = a }) -- | A user-supplied name or description of the 'BatchPrediction'. 'BatchPredictionName' can only use the UTF-8 character set. cbpBatchPredictionName :: Lens' CreateBatchPrediction (Maybe Text) cbpBatchPredictionName = lens _cbpBatchPredictionName (\s a -> s { _cbpBatchPredictionName = a }) -- | The ID of the 'MLModel' that will generate predictions for the group of -- observations. cbpMLModelId :: Lens' CreateBatchPrediction Text cbpMLModelId = lens _cbpMLModelId (\s a -> s { _cbpMLModelId = a }) -- | The location of an Amazon Simple Storage Service (Amazon S3) bucket or -- directory to store the batch prediction results. The following substrings are -- not allowed in the s3 key portion of the "outputURI" field: ':', '//', '/./', -- '/../'. -- -- Amazon ML needs permissions to store and retrieve the logs on your behalf. -- For information about how to set permissions, see the . cbpOutputUri :: Lens' CreateBatchPrediction Text cbpOutputUri = lens _cbpOutputUri (\s a -> s { _cbpOutputUri = a }) newtype CreateBatchPredictionResponse = CreateBatchPredictionResponse { _cbprBatchPredictionId :: Maybe Text } deriving (Eq, Ord, Read, Show, Monoid) -- | 'CreateBatchPredictionResponse' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'cbprBatchPredictionId' @::@ 'Maybe' 'Text' -- createBatchPredictionResponse :: CreateBatchPredictionResponse createBatchPredictionResponse = CreateBatchPredictionResponse { _cbprBatchPredictionId = Nothing } -- | A user-supplied ID that uniquely identifies the 'BatchPrediction'. This value -- is identical to the value of the 'BatchPredictionId' in the request. cbprBatchPredictionId :: Lens' CreateBatchPredictionResponse (Maybe Text) cbprBatchPredictionId = lens _cbprBatchPredictionId (\s a -> s { _cbprBatchPredictionId = a }) instance ToPath CreateBatchPrediction where toPath = const "/" instance ToQuery CreateBatchPrediction where toQuery = const mempty instance ToHeaders CreateBatchPrediction instance ToJSON CreateBatchPrediction where toJSON CreateBatchPrediction{..} = object [ "BatchPredictionId" .= _cbpBatchPredictionId , "BatchPredictionName" .= _cbpBatchPredictionName , "MLModelId" .= _cbpMLModelId , "BatchPredictionDataSourceId" .= _cbpBatchPredictionDataSourceId , "OutputUri" .= _cbpOutputUri ] instance AWSRequest CreateBatchPrediction where type Sv CreateBatchPrediction = MachineLearning type Rs CreateBatchPrediction = CreateBatchPredictionResponse request = post "CreateBatchPrediction" response = jsonResponse instance FromJSON CreateBatchPredictionResponse where parseJSON = withObject "CreateBatchPredictionResponse" $ \o -> CreateBatchPredictionResponse <$> o .:? "BatchPredictionId"