packages feed

stratosphere-0.33.0: library-gen/Stratosphere/Resources/RoboMakerSimulationApplication.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html

module Stratosphere.Resources.RoboMakerSimulationApplication where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.RoboMakerSimulationApplicationRenderingEngine
import Stratosphere.ResourceProperties.RoboMakerSimulationApplicationRobotSoftwareSuite
import Stratosphere.ResourceProperties.RoboMakerSimulationApplicationSimulationSoftwareSuite
import Stratosphere.ResourceProperties.RoboMakerSimulationApplicationSourceConfig

-- | Full data type definition for RoboMakerSimulationApplication. See
-- 'roboMakerSimulationApplication' for a more convenient constructor.
data RoboMakerSimulationApplication =
  RoboMakerSimulationApplication
  { _roboMakerSimulationApplicationCurrentRevisionId :: Maybe (Val Text)
  , _roboMakerSimulationApplicationName :: Maybe (Val Text)
  , _roboMakerSimulationApplicationRenderingEngine :: RoboMakerSimulationApplicationRenderingEngine
  , _roboMakerSimulationApplicationRobotSoftwareSuite :: RoboMakerSimulationApplicationRobotSoftwareSuite
  , _roboMakerSimulationApplicationSimulationSoftwareSuite :: RoboMakerSimulationApplicationSimulationSoftwareSuite
  , _roboMakerSimulationApplicationSources :: [RoboMakerSimulationApplicationSourceConfig]
  , _roboMakerSimulationApplicationTags :: Maybe Object
  } deriving (Show, Eq)

instance ToResourceProperties RoboMakerSimulationApplication where
  toResourceProperties RoboMakerSimulationApplication{..} =
    ResourceProperties
    { resourcePropertiesType = "AWS::RoboMaker::SimulationApplication"
    , resourcePropertiesProperties =
        hashMapFromList $ catMaybes
        [ fmap (("CurrentRevisionId",) . toJSON) _roboMakerSimulationApplicationCurrentRevisionId
        , fmap (("Name",) . toJSON) _roboMakerSimulationApplicationName
        , (Just . ("RenderingEngine",) . toJSON) _roboMakerSimulationApplicationRenderingEngine
        , (Just . ("RobotSoftwareSuite",) . toJSON) _roboMakerSimulationApplicationRobotSoftwareSuite
        , (Just . ("SimulationSoftwareSuite",) . toJSON) _roboMakerSimulationApplicationSimulationSoftwareSuite
        , (Just . ("Sources",) . toJSON) _roboMakerSimulationApplicationSources
        , fmap (("Tags",) . toJSON) _roboMakerSimulationApplicationTags
        ]
    }

-- | Constructor for 'RoboMakerSimulationApplication' containing required
-- fields as arguments.
roboMakerSimulationApplication
  :: RoboMakerSimulationApplicationRenderingEngine -- ^ 'rmsaRenderingEngine'
  -> RoboMakerSimulationApplicationRobotSoftwareSuite -- ^ 'rmsaRobotSoftwareSuite'
  -> RoboMakerSimulationApplicationSimulationSoftwareSuite -- ^ 'rmsaSimulationSoftwareSuite'
  -> [RoboMakerSimulationApplicationSourceConfig] -- ^ 'rmsaSources'
  -> RoboMakerSimulationApplication
roboMakerSimulationApplication renderingEnginearg robotSoftwareSuitearg simulationSoftwareSuitearg sourcesarg =
  RoboMakerSimulationApplication
  { _roboMakerSimulationApplicationCurrentRevisionId = Nothing
  , _roboMakerSimulationApplicationName = Nothing
  , _roboMakerSimulationApplicationRenderingEngine = renderingEnginearg
  , _roboMakerSimulationApplicationRobotSoftwareSuite = robotSoftwareSuitearg
  , _roboMakerSimulationApplicationSimulationSoftwareSuite = simulationSoftwareSuitearg
  , _roboMakerSimulationApplicationSources = sourcesarg
  , _roboMakerSimulationApplicationTags = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-currentrevisionid
rmsaCurrentRevisionId :: Lens' RoboMakerSimulationApplication (Maybe (Val Text))
rmsaCurrentRevisionId = lens _roboMakerSimulationApplicationCurrentRevisionId (\s a -> s { _roboMakerSimulationApplicationCurrentRevisionId = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-name
rmsaName :: Lens' RoboMakerSimulationApplication (Maybe (Val Text))
rmsaName = lens _roboMakerSimulationApplicationName (\s a -> s { _roboMakerSimulationApplicationName = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-renderingengine
rmsaRenderingEngine :: Lens' RoboMakerSimulationApplication RoboMakerSimulationApplicationRenderingEngine
rmsaRenderingEngine = lens _roboMakerSimulationApplicationRenderingEngine (\s a -> s { _roboMakerSimulationApplicationRenderingEngine = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-robotsoftwaresuite
rmsaRobotSoftwareSuite :: Lens' RoboMakerSimulationApplication RoboMakerSimulationApplicationRobotSoftwareSuite
rmsaRobotSoftwareSuite = lens _roboMakerSimulationApplicationRobotSoftwareSuite (\s a -> s { _roboMakerSimulationApplicationRobotSoftwareSuite = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-simulationsoftwaresuite
rmsaSimulationSoftwareSuite :: Lens' RoboMakerSimulationApplication RoboMakerSimulationApplicationSimulationSoftwareSuite
rmsaSimulationSoftwareSuite = lens _roboMakerSimulationApplicationSimulationSoftwareSuite (\s a -> s { _roboMakerSimulationApplicationSimulationSoftwareSuite = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-sources
rmsaSources :: Lens' RoboMakerSimulationApplication [RoboMakerSimulationApplicationSourceConfig]
rmsaSources = lens _roboMakerSimulationApplicationSources (\s a -> s { _roboMakerSimulationApplicationSources = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-tags
rmsaTags :: Lens' RoboMakerSimulationApplication (Maybe Object)
rmsaTags = lens _roboMakerSimulationApplicationTags (\s a -> s { _roboMakerSimulationApplicationTags = a })