packages feed

stratosphere-0.32.0: library-gen/Stratosphere/ResourceProperties/RoboMakerRobotApplicationSourceConfig.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-sourceconfig.html

module Stratosphere.ResourceProperties.RoboMakerRobotApplicationSourceConfig where

import Stratosphere.ResourceImports


-- | Full data type definition for RoboMakerRobotApplicationSourceConfig. See
-- 'roboMakerRobotApplicationSourceConfig' for a more convenient
-- constructor.
data RoboMakerRobotApplicationSourceConfig =
  RoboMakerRobotApplicationSourceConfig
  { _roboMakerRobotApplicationSourceConfigArchitecture :: Val Text
  , _roboMakerRobotApplicationSourceConfigS3Bucket :: Val Text
  , _roboMakerRobotApplicationSourceConfigS3Key :: Val Text
  } deriving (Show, Eq)

instance ToJSON RoboMakerRobotApplicationSourceConfig where
  toJSON RoboMakerRobotApplicationSourceConfig{..} =
    object $
    catMaybes
    [ (Just . ("Architecture",) . toJSON) _roboMakerRobotApplicationSourceConfigArchitecture
    , (Just . ("S3Bucket",) . toJSON) _roboMakerRobotApplicationSourceConfigS3Bucket
    , (Just . ("S3Key",) . toJSON) _roboMakerRobotApplicationSourceConfigS3Key
    ]

-- | Constructor for 'RoboMakerRobotApplicationSourceConfig' containing
-- required fields as arguments.
roboMakerRobotApplicationSourceConfig
  :: Val Text -- ^ 'rmrascArchitecture'
  -> Val Text -- ^ 'rmrascS3Bucket'
  -> Val Text -- ^ 'rmrascS3Key'
  -> RoboMakerRobotApplicationSourceConfig
roboMakerRobotApplicationSourceConfig architecturearg s3Bucketarg s3Keyarg =
  RoboMakerRobotApplicationSourceConfig
  { _roboMakerRobotApplicationSourceConfigArchitecture = architecturearg
  , _roboMakerRobotApplicationSourceConfigS3Bucket = s3Bucketarg
  , _roboMakerRobotApplicationSourceConfigS3Key = s3Keyarg
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-sourceconfig.html#cfn-robomaker-robotapplication-sourceconfig-architecture
rmrascArchitecture :: Lens' RoboMakerRobotApplicationSourceConfig (Val Text)
rmrascArchitecture = lens _roboMakerRobotApplicationSourceConfigArchitecture (\s a -> s { _roboMakerRobotApplicationSourceConfigArchitecture = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-sourceconfig.html#cfn-robomaker-robotapplication-sourceconfig-s3bucket
rmrascS3Bucket :: Lens' RoboMakerRobotApplicationSourceConfig (Val Text)
rmrascS3Bucket = lens _roboMakerRobotApplicationSourceConfigS3Bucket (\s a -> s { _roboMakerRobotApplicationSourceConfigS3Bucket = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-sourceconfig.html#cfn-robomaker-robotapplication-sourceconfig-s3key
rmrascS3Key :: Lens' RoboMakerRobotApplicationSourceConfig (Val Text)
rmrascS3Key = lens _roboMakerRobotApplicationSourceConfigS3Key (\s a -> s { _roboMakerRobotApplicationSourceConfigS3Key = a })