packages feed

stratosphere-0.58.0: library-gen/Stratosphere/ResourceProperties/SageMakerMonitoringScheduleMonitoringJobDefinition.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-monitoringschedule-monitoringjobdefinition.html

module Stratosphere.ResourceProperties.SageMakerMonitoringScheduleMonitoringJobDefinition where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.SageMakerMonitoringScheduleBaselineConfig
import Stratosphere.ResourceProperties.SageMakerMonitoringScheduleMonitoringAppSpecification
import Stratosphere.ResourceProperties.SageMakerMonitoringScheduleMonitoringInputs
import Stratosphere.ResourceProperties.SageMakerMonitoringScheduleMonitoringOutputConfig
import Stratosphere.ResourceProperties.SageMakerMonitoringScheduleMonitoringResources
import Stratosphere.ResourceProperties.SageMakerMonitoringScheduleNetworkConfig
import Stratosphere.ResourceProperties.SageMakerMonitoringScheduleStoppingCondition

-- | Full data type definition for
-- SageMakerMonitoringScheduleMonitoringJobDefinition. See
-- 'sageMakerMonitoringScheduleMonitoringJobDefinition' for a more
-- convenient constructor.
data SageMakerMonitoringScheduleMonitoringJobDefinition =
  SageMakerMonitoringScheduleMonitoringJobDefinition
  { _sageMakerMonitoringScheduleMonitoringJobDefinitionBaselineConfig :: Maybe SageMakerMonitoringScheduleBaselineConfig
  , _sageMakerMonitoringScheduleMonitoringJobDefinitionMonitoringAppSpecification :: SageMakerMonitoringScheduleMonitoringAppSpecification
  , _sageMakerMonitoringScheduleMonitoringJobDefinitionMonitoringInputs :: SageMakerMonitoringScheduleMonitoringInputs
  , _sageMakerMonitoringScheduleMonitoringJobDefinitionMonitoringOutputConfig :: SageMakerMonitoringScheduleMonitoringOutputConfig
  , _sageMakerMonitoringScheduleMonitoringJobDefinitionMonitoringResources :: SageMakerMonitoringScheduleMonitoringResources
  , _sageMakerMonitoringScheduleMonitoringJobDefinitionNetworkConfig :: Maybe SageMakerMonitoringScheduleNetworkConfig
  , _sageMakerMonitoringScheduleMonitoringJobDefinitionRoleArn :: Val Text
  , _sageMakerMonitoringScheduleMonitoringJobDefinitionStoppingCondition :: Maybe SageMakerMonitoringScheduleStoppingCondition
  } deriving (Show, Eq)

instance ToJSON SageMakerMonitoringScheduleMonitoringJobDefinition where
  toJSON SageMakerMonitoringScheduleMonitoringJobDefinition{..} =
    object $
    catMaybes
    [ fmap (("BaselineConfig",) . toJSON) _sageMakerMonitoringScheduleMonitoringJobDefinitionBaselineConfig
    , (Just . ("MonitoringAppSpecification",) . toJSON) _sageMakerMonitoringScheduleMonitoringJobDefinitionMonitoringAppSpecification
    , (Just . ("MonitoringInputs",) . toJSON) _sageMakerMonitoringScheduleMonitoringJobDefinitionMonitoringInputs
    , (Just . ("MonitoringOutputConfig",) . toJSON) _sageMakerMonitoringScheduleMonitoringJobDefinitionMonitoringOutputConfig
    , (Just . ("MonitoringResources",) . toJSON) _sageMakerMonitoringScheduleMonitoringJobDefinitionMonitoringResources
    , fmap (("NetworkConfig",) . toJSON) _sageMakerMonitoringScheduleMonitoringJobDefinitionNetworkConfig
    , (Just . ("RoleArn",) . toJSON) _sageMakerMonitoringScheduleMonitoringJobDefinitionRoleArn
    , fmap (("StoppingCondition",) . toJSON) _sageMakerMonitoringScheduleMonitoringJobDefinitionStoppingCondition
    ]

-- | Constructor for 'SageMakerMonitoringScheduleMonitoringJobDefinition'
-- containing required fields as arguments.
sageMakerMonitoringScheduleMonitoringJobDefinition
  :: SageMakerMonitoringScheduleMonitoringAppSpecification -- ^ 'smmsmjdMonitoringAppSpecification'
  -> SageMakerMonitoringScheduleMonitoringInputs -- ^ 'smmsmjdMonitoringInputs'
  -> SageMakerMonitoringScheduleMonitoringOutputConfig -- ^ 'smmsmjdMonitoringOutputConfig'
  -> SageMakerMonitoringScheduleMonitoringResources -- ^ 'smmsmjdMonitoringResources'
  -> Val Text -- ^ 'smmsmjdRoleArn'
  -> SageMakerMonitoringScheduleMonitoringJobDefinition
sageMakerMonitoringScheduleMonitoringJobDefinition monitoringAppSpecificationarg monitoringInputsarg monitoringOutputConfigarg monitoringResourcesarg roleArnarg =
  SageMakerMonitoringScheduleMonitoringJobDefinition
  { _sageMakerMonitoringScheduleMonitoringJobDefinitionBaselineConfig = Nothing
  , _sageMakerMonitoringScheduleMonitoringJobDefinitionMonitoringAppSpecification = monitoringAppSpecificationarg
  , _sageMakerMonitoringScheduleMonitoringJobDefinitionMonitoringInputs = monitoringInputsarg
  , _sageMakerMonitoringScheduleMonitoringJobDefinitionMonitoringOutputConfig = monitoringOutputConfigarg
  , _sageMakerMonitoringScheduleMonitoringJobDefinitionMonitoringResources = monitoringResourcesarg
  , _sageMakerMonitoringScheduleMonitoringJobDefinitionNetworkConfig = Nothing
  , _sageMakerMonitoringScheduleMonitoringJobDefinitionRoleArn = roleArnarg
  , _sageMakerMonitoringScheduleMonitoringJobDefinitionStoppingCondition = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-monitoringschedule-monitoringjobdefinition.html#cfn-sagemaker-monitoringschedule-monitoringjobdefinition-baselineconfig
smmsmjdBaselineConfig :: Lens' SageMakerMonitoringScheduleMonitoringJobDefinition (Maybe SageMakerMonitoringScheduleBaselineConfig)
smmsmjdBaselineConfig = lens _sageMakerMonitoringScheduleMonitoringJobDefinitionBaselineConfig (\s a -> s { _sageMakerMonitoringScheduleMonitoringJobDefinitionBaselineConfig = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-monitoringschedule-monitoringjobdefinition.html#cfn-sagemaker-monitoringschedule-monitoringjobdefinition-monitoringappspecification
smmsmjdMonitoringAppSpecification :: Lens' SageMakerMonitoringScheduleMonitoringJobDefinition SageMakerMonitoringScheduleMonitoringAppSpecification
smmsmjdMonitoringAppSpecification = lens _sageMakerMonitoringScheduleMonitoringJobDefinitionMonitoringAppSpecification (\s a -> s { _sageMakerMonitoringScheduleMonitoringJobDefinitionMonitoringAppSpecification = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-monitoringschedule-monitoringjobdefinition.html#cfn-sagemaker-monitoringschedule-monitoringjobdefinition-monitoringinputs
smmsmjdMonitoringInputs :: Lens' SageMakerMonitoringScheduleMonitoringJobDefinition SageMakerMonitoringScheduleMonitoringInputs
smmsmjdMonitoringInputs = lens _sageMakerMonitoringScheduleMonitoringJobDefinitionMonitoringInputs (\s a -> s { _sageMakerMonitoringScheduleMonitoringJobDefinitionMonitoringInputs = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-monitoringschedule-monitoringjobdefinition.html#cfn-sagemaker-monitoringschedule-monitoringjobdefinition-monitoringoutputconfig
smmsmjdMonitoringOutputConfig :: Lens' SageMakerMonitoringScheduleMonitoringJobDefinition SageMakerMonitoringScheduleMonitoringOutputConfig
smmsmjdMonitoringOutputConfig = lens _sageMakerMonitoringScheduleMonitoringJobDefinitionMonitoringOutputConfig (\s a -> s { _sageMakerMonitoringScheduleMonitoringJobDefinitionMonitoringOutputConfig = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-monitoringschedule-monitoringjobdefinition.html#cfn-sagemaker-monitoringschedule-monitoringjobdefinition-monitoringresources
smmsmjdMonitoringResources :: Lens' SageMakerMonitoringScheduleMonitoringJobDefinition SageMakerMonitoringScheduleMonitoringResources
smmsmjdMonitoringResources = lens _sageMakerMonitoringScheduleMonitoringJobDefinitionMonitoringResources (\s a -> s { _sageMakerMonitoringScheduleMonitoringJobDefinitionMonitoringResources = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-monitoringschedule-monitoringjobdefinition.html#cfn-sagemaker-monitoringschedule-monitoringjobdefinition-networkconfig
smmsmjdNetworkConfig :: Lens' SageMakerMonitoringScheduleMonitoringJobDefinition (Maybe SageMakerMonitoringScheduleNetworkConfig)
smmsmjdNetworkConfig = lens _sageMakerMonitoringScheduleMonitoringJobDefinitionNetworkConfig (\s a -> s { _sageMakerMonitoringScheduleMonitoringJobDefinitionNetworkConfig = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-monitoringschedule-monitoringjobdefinition.html#cfn-sagemaker-monitoringschedule-monitoringjobdefinition-rolearn
smmsmjdRoleArn :: Lens' SageMakerMonitoringScheduleMonitoringJobDefinition (Val Text)
smmsmjdRoleArn = lens _sageMakerMonitoringScheduleMonitoringJobDefinitionRoleArn (\s a -> s { _sageMakerMonitoringScheduleMonitoringJobDefinitionRoleArn = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-monitoringschedule-monitoringjobdefinition.html#cfn-sagemaker-monitoringschedule-monitoringjobdefinition-stoppingcondition
smmsmjdStoppingCondition :: Lens' SageMakerMonitoringScheduleMonitoringJobDefinition (Maybe SageMakerMonitoringScheduleStoppingCondition)
smmsmjdStoppingCondition = lens _sageMakerMonitoringScheduleMonitoringJobDefinitionStoppingCondition (\s a -> s { _sageMakerMonitoringScheduleMonitoringJobDefinitionStoppingCondition = a })