{-# 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.GetMLModel -- 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. -- | Returns an 'MLModel' that includes detailed metadata, and data source -- information as well as the current status of the 'MLModel'. -- -- 'GetMLModel' provides results in normal or verbose format. -- -- module Network.AWS.MachineLearning.GetMLModel ( -- * Request GetMLModel -- ** Request constructor , getMLModel -- ** Request lenses , gmlmMLModelId , gmlmVerbose -- * Response , GetMLModelResponse -- ** Response constructor , getMLModelResponse -- ** Response lenses , gmlmrCreatedAt , gmlmrCreatedByIamUser , gmlmrEndpointInfo , gmlmrInputDataLocationS3 , gmlmrLastUpdatedAt , gmlmrLogUri , gmlmrMLModelId , gmlmrMLModelType , gmlmrMessage , gmlmrName , gmlmrRecipe , gmlmrSchema , gmlmrScoreThreshold , gmlmrScoreThresholdLastUpdatedAt , gmlmrSizeInBytes , gmlmrStatus , gmlmrTrainingDataSourceId , gmlmrTrainingParameters ) 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 GetMLModel = GetMLModel { _gmlmMLModelId :: Text , _gmlmVerbose :: Maybe Bool } deriving (Eq, Ord, Read, Show) -- | 'GetMLModel' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'gmlmMLModelId' @::@ 'Text' -- -- * 'gmlmVerbose' @::@ 'Maybe' 'Bool' -- getMLModel :: Text -- ^ 'gmlmMLModelId' -> GetMLModel getMLModel p1 = GetMLModel { _gmlmMLModelId = p1 , _gmlmVerbose = Nothing } -- | The ID assigned to the 'MLModel' at creation. gmlmMLModelId :: Lens' GetMLModel Text gmlmMLModelId = lens _gmlmMLModelId (\s a -> s { _gmlmMLModelId = a }) -- | Specifies whether the 'GetMLModel' operation should return 'Recipe'. -- -- If true, 'Recipe' is returned. -- -- If false, 'Recipe' is not returned. gmlmVerbose :: Lens' GetMLModel (Maybe Bool) gmlmVerbose = lens _gmlmVerbose (\s a -> s { _gmlmVerbose = a }) data GetMLModelResponse = GetMLModelResponse { _gmlmrCreatedAt :: Maybe POSIX , _gmlmrCreatedByIamUser :: Maybe Text , _gmlmrEndpointInfo :: Maybe RealtimeEndpointInfo , _gmlmrInputDataLocationS3 :: Maybe Text , _gmlmrLastUpdatedAt :: Maybe POSIX , _gmlmrLogUri :: Maybe Text , _gmlmrMLModelId :: Maybe Text , _gmlmrMLModelType :: Maybe MLModelType , _gmlmrMessage :: Maybe Text , _gmlmrName :: Maybe Text , _gmlmrRecipe :: Maybe Text , _gmlmrSchema :: Maybe Text , _gmlmrScoreThreshold :: Maybe Double , _gmlmrScoreThresholdLastUpdatedAt :: Maybe POSIX , _gmlmrSizeInBytes :: Maybe Integer , _gmlmrStatus :: Maybe EntityStatus , _gmlmrTrainingDataSourceId :: Maybe Text , _gmlmrTrainingParameters :: Map Text Text } deriving (Eq, Read, Show) -- | 'GetMLModelResponse' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'gmlmrCreatedAt' @::@ 'Maybe' 'UTCTime' -- -- * 'gmlmrCreatedByIamUser' @::@ 'Maybe' 'Text' -- -- * 'gmlmrEndpointInfo' @::@ 'Maybe' 'RealtimeEndpointInfo' -- -- * 'gmlmrInputDataLocationS3' @::@ 'Maybe' 'Text' -- -- * 'gmlmrLastUpdatedAt' @::@ 'Maybe' 'UTCTime' -- -- * 'gmlmrLogUri' @::@ 'Maybe' 'Text' -- -- * 'gmlmrMLModelId' @::@ 'Maybe' 'Text' -- -- * 'gmlmrMLModelType' @::@ 'Maybe' 'MLModelType' -- -- * 'gmlmrMessage' @::@ 'Maybe' 'Text' -- -- * 'gmlmrName' @::@ 'Maybe' 'Text' -- -- * 'gmlmrRecipe' @::@ 'Maybe' 'Text' -- -- * 'gmlmrSchema' @::@ 'Maybe' 'Text' -- -- * 'gmlmrScoreThreshold' @::@ 'Maybe' 'Double' -- -- * 'gmlmrScoreThresholdLastUpdatedAt' @::@ 'Maybe' 'UTCTime' -- -- * 'gmlmrSizeInBytes' @::@ 'Maybe' 'Integer' -- -- * 'gmlmrStatus' @::@ 'Maybe' 'EntityStatus' -- -- * 'gmlmrTrainingDataSourceId' @::@ 'Maybe' 'Text' -- -- * 'gmlmrTrainingParameters' @::@ 'HashMap' 'Text' 'Text' -- getMLModelResponse :: GetMLModelResponse getMLModelResponse = GetMLModelResponse { _gmlmrMLModelId = Nothing , _gmlmrTrainingDataSourceId = Nothing , _gmlmrCreatedByIamUser = Nothing , _gmlmrCreatedAt = Nothing , _gmlmrLastUpdatedAt = Nothing , _gmlmrName = Nothing , _gmlmrStatus = Nothing , _gmlmrSizeInBytes = Nothing , _gmlmrEndpointInfo = Nothing , _gmlmrTrainingParameters = mempty , _gmlmrInputDataLocationS3 = Nothing , _gmlmrMLModelType = Nothing , _gmlmrScoreThreshold = Nothing , _gmlmrScoreThresholdLastUpdatedAt = Nothing , _gmlmrLogUri = Nothing , _gmlmrMessage = Nothing , _gmlmrRecipe = Nothing , _gmlmrSchema = Nothing } -- | The time that the 'MLModel' was created. The time is expressed in epoch time. gmlmrCreatedAt :: Lens' GetMLModelResponse (Maybe UTCTime) gmlmrCreatedAt = lens _gmlmrCreatedAt (\s a -> s { _gmlmrCreatedAt = a }) . mapping _Time -- | The AWS user account from which the 'MLModel' was created. The account type can -- be either an AWS root account or an AWS Identity and Access Management (IAM) -- user account. gmlmrCreatedByIamUser :: Lens' GetMLModelResponse (Maybe Text) gmlmrCreatedByIamUser = lens _gmlmrCreatedByIamUser (\s a -> s { _gmlmrCreatedByIamUser = a }) -- | The current endpoint of the 'MLModel' gmlmrEndpointInfo :: Lens' GetMLModelResponse (Maybe RealtimeEndpointInfo) gmlmrEndpointInfo = lens _gmlmrEndpointInfo (\s a -> s { _gmlmrEndpointInfo = a }) -- | The location of the data file or directory in Amazon Simple Storage Service -- (Amazon S3). gmlmrInputDataLocationS3 :: Lens' GetMLModelResponse (Maybe Text) gmlmrInputDataLocationS3 = lens _gmlmrInputDataLocationS3 (\s a -> s { _gmlmrInputDataLocationS3 = a }) -- | The time of the most recent edit to the 'MLModel'. The time is expressed in -- epoch time. gmlmrLastUpdatedAt :: Lens' GetMLModelResponse (Maybe UTCTime) gmlmrLastUpdatedAt = lens _gmlmrLastUpdatedAt (\s a -> s { _gmlmrLastUpdatedAt = a }) . mapping _Time -- | A link to the file that contains logs of the 'CreateMLModel' operation. gmlmrLogUri :: Lens' GetMLModelResponse (Maybe Text) gmlmrLogUri = lens _gmlmrLogUri (\s a -> s { _gmlmrLogUri = a }) -- | The MLModel ID which is same as the 'MLModelId' in the request. gmlmrMLModelId :: Lens' GetMLModelResponse (Maybe Text) gmlmrMLModelId = lens _gmlmrMLModelId (\s a -> s { _gmlmrMLModelId = a }) -- | Identifies the 'MLModel' category. The following are the available types: -- -- REGRESSION -- Produces a numeric result. For example, "What listing price -- should a house have?" BINARY -- Produces one of two possible results. For -- example, "Is this an e-commerce website?" MULTICLASS -- Produces more than -- two possible results. For example, "Is this a HIGH, LOW or MEDIUM risk trade?" -- gmlmrMLModelType :: Lens' GetMLModelResponse (Maybe MLModelType) gmlmrMLModelType = lens _gmlmrMLModelType (\s a -> s { _gmlmrMLModelType = a }) -- | Description of the most recent details about accessing the 'MLModel'. gmlmrMessage :: Lens' GetMLModelResponse (Maybe Text) gmlmrMessage = lens _gmlmrMessage (\s a -> s { _gmlmrMessage = a }) -- | A user-supplied name or description of the 'MLModel'. gmlmrName :: Lens' GetMLModelResponse (Maybe Text) gmlmrName = lens _gmlmrName (\s a -> s { _gmlmrName = a }) -- | The recipe to use when training the 'MLModel'. The 'Recipe' provides detailed -- information about the observation data to use during training, as well as -- manipulations to perform on the observation data during training. -- -- Note This parameter is provided as part of the verbose format. -- gmlmrRecipe :: Lens' GetMLModelResponse (Maybe Text) gmlmrRecipe = lens _gmlmrRecipe (\s a -> s { _gmlmrRecipe = a }) -- | The schema used by all of the data files referenced by the 'DataSource'. -- -- Note This parameter is provided as part of the verbose format. -- gmlmrSchema :: Lens' GetMLModelResponse (Maybe Text) gmlmrSchema = lens _gmlmrSchema (\s a -> s { _gmlmrSchema = a }) -- | The scoring threshold is used in binary classification 'MLModel's, and marks -- the boundary between a positive prediction and a negative prediction. -- -- Output values greater than or equal to the threshold receive a positive -- result from the MLModel, such as 'true'. Output values less than the threshold -- receive a negative response from the MLModel, such as 'false'. gmlmrScoreThreshold :: Lens' GetMLModelResponse (Maybe Double) gmlmrScoreThreshold = lens _gmlmrScoreThreshold (\s a -> s { _gmlmrScoreThreshold = a }) -- | The time of the most recent edit to the 'ScoreThreshold'. The time is expressed -- in epoch time. gmlmrScoreThresholdLastUpdatedAt :: Lens' GetMLModelResponse (Maybe UTCTime) gmlmrScoreThresholdLastUpdatedAt = lens _gmlmrScoreThresholdLastUpdatedAt (\s a -> s { _gmlmrScoreThresholdLastUpdatedAt = a }) . mapping _Time gmlmrSizeInBytes :: Lens' GetMLModelResponse (Maybe Integer) gmlmrSizeInBytes = lens _gmlmrSizeInBytes (\s a -> s { _gmlmrSizeInBytes = a }) -- | The current status of the 'MLModel'. This element can have one of the following -- values: -- -- 'PENDING' - Amazon Machine Learning (Amazon ML) submitted a request to -- describe a 'MLModel'. 'INPROGRESS' - The request is processing. 'FAILED' - The -- request did not run to completion. It is not usable. 'COMPLETED' - The request -- completed successfully. 'DELETED' - The 'MLModel' is marked as deleted. It is -- not usable. gmlmrStatus :: Lens' GetMLModelResponse (Maybe EntityStatus) gmlmrStatus = lens _gmlmrStatus (\s a -> s { _gmlmrStatus = a }) -- | The ID of the training 'DataSource'. gmlmrTrainingDataSourceId :: Lens' GetMLModelResponse (Maybe Text) gmlmrTrainingDataSourceId = lens _gmlmrTrainingDataSourceId (\s a -> s { _gmlmrTrainingDataSourceId = a }) -- | A list of the training parameters in the 'MLModel'. The list is implemented as -- a map of key/value pairs. -- -- The following is the current set of training parameters: -- -- 'sgd.l1RegularizationAmount' - Coefficient regularization L1 norm. It -- controls overfitting the data by penalizing large coefficients. This tends to -- drive coefficients to zero, resulting in a sparse feature set. If you use -- this parameter, specify a small value, such as 1.0E-04 or 1.0E-08. -- -- The value is a double that ranges from 0 to MAX_DOUBLE. The default is not -- to use L1 normalization. The parameter cannot be used when 'L2' is specified. -- Use this parameter sparingly. -- -- 'sgd.l2RegularizationAmount' - Coefficient regularization L2 norm. It -- controls overfitting the data by penalizing large coefficients. This tends to -- drive coefficients to small, nonzero values. If you use this parameter, -- specify a small value, such as 1.0E-04 or 1.0E-08. -- -- The value is a double that ranges from 0 to MAX_DOUBLE. The default is not -- to use L2 normalization. This parameter cannot be used when 'L1' is specified. -- Use this parameter sparingly. -- -- 'sgd.maxPasses' - The number of times that the training process traverses the -- observations to build the 'MLModel'. The value is an integer that ranges from 1 -- to 10000. The default value is 10. -- -- 'sgd.maxMLModelSizeInBytes' - The maximum allowed size of the model. -- Depending on the input data, the model size might affect performance. -- -- The value is an integer that ranges from 100000 to 2147483648. The default -- value is 33554432. -- -- gmlmrTrainingParameters :: Lens' GetMLModelResponse (HashMap Text Text) gmlmrTrainingParameters = lens _gmlmrTrainingParameters (\s a -> s { _gmlmrTrainingParameters = a }) . _Map instance ToPath GetMLModel where toPath = const "/" instance ToQuery GetMLModel where toQuery = const mempty instance ToHeaders GetMLModel instance ToJSON GetMLModel where toJSON GetMLModel{..} = object [ "MLModelId" .= _gmlmMLModelId , "Verbose" .= _gmlmVerbose ] instance AWSRequest GetMLModel where type Sv GetMLModel = MachineLearning type Rs GetMLModel = GetMLModelResponse request = post "GetMLModel" response = jsonResponse instance FromJSON GetMLModelResponse where parseJSON = withObject "GetMLModelResponse" $ \o -> GetMLModelResponse <$> o .:? "CreatedAt" <*> o .:? "CreatedByIamUser" <*> o .:? "EndpointInfo" <*> o .:? "InputDataLocationS3" <*> o .:? "LastUpdatedAt" <*> o .:? "LogUri" <*> o .:? "MLModelId" <*> o .:? "MLModelType" <*> o .:? "Message" <*> o .:? "Name" <*> o .:? "Recipe" <*> o .:? "Schema" <*> o .:? "ScoreThreshold" <*> o .:? "ScoreThresholdLastUpdatedAt" <*> o .:? "SizeInBytes" <*> o .:? "Status" <*> o .:? "TrainingDataSourceId" <*> o .:? "TrainingParameters" .!= mempty