packages feed

stratosphere-0.50.0: library-gen/Stratosphere/Resources/ConfigConformancePack.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-conformancepack.html

module Stratosphere.Resources.ConfigConformancePack where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.ConfigConformancePackConformancePackInputParameter

-- | Full data type definition for ConfigConformancePack. See
-- 'configConformancePack' for a more convenient constructor.
data ConfigConformancePack =
  ConfigConformancePack
  { _configConformancePackConformancePackInputParameters :: Maybe [ConfigConformancePackConformancePackInputParameter]
  , _configConformancePackConformancePackName :: Val Text
  , _configConformancePackDeliveryS3Bucket :: Val Text
  , _configConformancePackDeliveryS3KeyPrefix :: Maybe (Val Text)
  , _configConformancePackTemplateBody :: Maybe (Val Text)
  , _configConformancePackTemplateS3Uri :: Maybe (Val Text)
  } deriving (Show, Eq)

instance ToResourceProperties ConfigConformancePack where
  toResourceProperties ConfigConformancePack{..} =
    ResourceProperties
    { resourcePropertiesType = "AWS::Config::ConformancePack"
    , resourcePropertiesProperties =
        hashMapFromList $ catMaybes
        [ fmap (("ConformancePackInputParameters",) . toJSON) _configConformancePackConformancePackInputParameters
        , (Just . ("ConformancePackName",) . toJSON) _configConformancePackConformancePackName
        , (Just . ("DeliveryS3Bucket",) . toJSON) _configConformancePackDeliveryS3Bucket
        , fmap (("DeliveryS3KeyPrefix",) . toJSON) _configConformancePackDeliveryS3KeyPrefix
        , fmap (("TemplateBody",) . toJSON) _configConformancePackTemplateBody
        , fmap (("TemplateS3Uri",) . toJSON) _configConformancePackTemplateS3Uri
        ]
    }

-- | Constructor for 'ConfigConformancePack' containing required fields as
-- arguments.
configConformancePack
  :: Val Text -- ^ 'ccpConformancePackName'
  -> Val Text -- ^ 'ccpDeliveryS3Bucket'
  -> ConfigConformancePack
configConformancePack conformancePackNamearg deliveryS3Bucketarg =
  ConfigConformancePack
  { _configConformancePackConformancePackInputParameters = Nothing
  , _configConformancePackConformancePackName = conformancePackNamearg
  , _configConformancePackDeliveryS3Bucket = deliveryS3Bucketarg
  , _configConformancePackDeliveryS3KeyPrefix = Nothing
  , _configConformancePackTemplateBody = Nothing
  , _configConformancePackTemplateS3Uri = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-conformancepack.html#cfn-config-conformancepack-conformancepackinputparameters
ccpConformancePackInputParameters :: Lens' ConfigConformancePack (Maybe [ConfigConformancePackConformancePackInputParameter])
ccpConformancePackInputParameters = lens _configConformancePackConformancePackInputParameters (\s a -> s { _configConformancePackConformancePackInputParameters = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-conformancepack.html#cfn-config-conformancepack-conformancepackname
ccpConformancePackName :: Lens' ConfigConformancePack (Val Text)
ccpConformancePackName = lens _configConformancePackConformancePackName (\s a -> s { _configConformancePackConformancePackName = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-conformancepack.html#cfn-config-conformancepack-deliverys3bucket
ccpDeliveryS3Bucket :: Lens' ConfigConformancePack (Val Text)
ccpDeliveryS3Bucket = lens _configConformancePackDeliveryS3Bucket (\s a -> s { _configConformancePackDeliveryS3Bucket = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-conformancepack.html#cfn-config-conformancepack-deliverys3keyprefix
ccpDeliveryS3KeyPrefix :: Lens' ConfigConformancePack (Maybe (Val Text))
ccpDeliveryS3KeyPrefix = lens _configConformancePackDeliveryS3KeyPrefix (\s a -> s { _configConformancePackDeliveryS3KeyPrefix = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-conformancepack.html#cfn-config-conformancepack-templatebody
ccpTemplateBody :: Lens' ConfigConformancePack (Maybe (Val Text))
ccpTemplateBody = lens _configConformancePackTemplateBody (\s a -> s { _configConformancePackTemplateBody = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-conformancepack.html#cfn-config-conformancepack-templates3uri
ccpTemplateS3Uri :: Lens' ConfigConformancePack (Maybe (Val Text))
ccpTemplateS3Uri = lens _configConformancePackTemplateS3Uri (\s a -> s { _configConformancePackTemplateS3Uri = a })