stratosphere-0.29.0: library-gen/Stratosphere/Resources/SageMakerModel.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-model.html
module Stratosphere.Resources.SageMakerModel where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.SageMakerModelContainerDefinition
import Stratosphere.ResourceProperties.Tag
import Stratosphere.ResourceProperties.SageMakerModelVpcConfig
-- | Full data type definition for SageMakerModel. See 'sageMakerModel' for a
-- more convenient constructor.
data SageMakerModel =
SageMakerModel
{ _sageMakerModelContainers :: Maybe [SageMakerModelContainerDefinition]
, _sageMakerModelExecutionRoleArn :: Val Text
, _sageMakerModelModelName :: Maybe (Val Text)
, _sageMakerModelPrimaryContainer :: Maybe SageMakerModelContainerDefinition
, _sageMakerModelTags :: Maybe [Tag]
, _sageMakerModelVpcConfig :: Maybe SageMakerModelVpcConfig
} deriving (Show, Eq)
instance ToJSON SageMakerModel where
toJSON SageMakerModel{..} =
object $
catMaybes
[ fmap (("Containers",) . toJSON) _sageMakerModelContainers
, (Just . ("ExecutionRoleArn",) . toJSON) _sageMakerModelExecutionRoleArn
, fmap (("ModelName",) . toJSON) _sageMakerModelModelName
, fmap (("PrimaryContainer",) . toJSON) _sageMakerModelPrimaryContainer
, fmap (("Tags",) . toJSON) _sageMakerModelTags
, fmap (("VpcConfig",) . toJSON) _sageMakerModelVpcConfig
]
instance FromJSON SageMakerModel where
parseJSON (Object obj) =
SageMakerModel <$>
(obj .:? "Containers") <*>
(obj .: "ExecutionRoleArn") <*>
(obj .:? "ModelName") <*>
(obj .:? "PrimaryContainer") <*>
(obj .:? "Tags") <*>
(obj .:? "VpcConfig")
parseJSON _ = mempty
-- | Constructor for 'SageMakerModel' containing required fields as arguments.
sageMakerModel
:: Val Text -- ^ 'smmExecutionRoleArn'
-> SageMakerModel
sageMakerModel executionRoleArnarg =
SageMakerModel
{ _sageMakerModelContainers = Nothing
, _sageMakerModelExecutionRoleArn = executionRoleArnarg
, _sageMakerModelModelName = Nothing
, _sageMakerModelPrimaryContainer = Nothing
, _sageMakerModelTags = Nothing
, _sageMakerModelVpcConfig = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-model.html#cfn-sagemaker-model-containers
smmContainers :: Lens' SageMakerModel (Maybe [SageMakerModelContainerDefinition])
smmContainers = lens _sageMakerModelContainers (\s a -> s { _sageMakerModelContainers = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-model.html#cfn-sagemaker-model-executionrolearn
smmExecutionRoleArn :: Lens' SageMakerModel (Val Text)
smmExecutionRoleArn = lens _sageMakerModelExecutionRoleArn (\s a -> s { _sageMakerModelExecutionRoleArn = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-model.html#cfn-sagemaker-model-modelname
smmModelName :: Lens' SageMakerModel (Maybe (Val Text))
smmModelName = lens _sageMakerModelModelName (\s a -> s { _sageMakerModelModelName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-model.html#cfn-sagemaker-model-primarycontainer
smmPrimaryContainer :: Lens' SageMakerModel (Maybe SageMakerModelContainerDefinition)
smmPrimaryContainer = lens _sageMakerModelPrimaryContainer (\s a -> s { _sageMakerModelPrimaryContainer = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-model.html#cfn-sagemaker-model-tags
smmTags :: Lens' SageMakerModel (Maybe [Tag])
smmTags = lens _sageMakerModelTags (\s a -> s { _sageMakerModelTags = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-model.html#cfn-sagemaker-model-vpcconfig
smmVpcConfig :: Lens' SageMakerModel (Maybe SageMakerModelVpcConfig)
smmVpcConfig = lens _sageMakerModelVpcConfig (\s a -> s { _sageMakerModelVpcConfig = a })