{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TupleSections #-} -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html module Stratosphere.Resources.ConfigRemediationConfiguration where import Stratosphere.ResourceImports -- | Full data type definition for ConfigRemediationConfiguration. See -- 'configRemediationConfiguration' for a more convenient constructor. data ConfigRemediationConfiguration = ConfigRemediationConfiguration { _configRemediationConfigurationConfigRuleName :: Val Text , _configRemediationConfigurationParameters :: Maybe Object , _configRemediationConfigurationResourceType :: Maybe (Val Text) , _configRemediationConfigurationTargetId :: Val Text , _configRemediationConfigurationTargetType :: Val Text , _configRemediationConfigurationTargetVersion :: Maybe (Val Text) } deriving (Show, Eq) instance ToResourceProperties ConfigRemediationConfiguration where toResourceProperties ConfigRemediationConfiguration{..} = ResourceProperties { resourcePropertiesType = "AWS::Config::RemediationConfiguration" , resourcePropertiesProperties = hashMapFromList $ catMaybes [ (Just . ("ConfigRuleName",) . toJSON) _configRemediationConfigurationConfigRuleName , fmap (("Parameters",) . toJSON) _configRemediationConfigurationParameters , fmap (("ResourceType",) . toJSON) _configRemediationConfigurationResourceType , (Just . ("TargetId",) . toJSON) _configRemediationConfigurationTargetId , (Just . ("TargetType",) . toJSON) _configRemediationConfigurationTargetType , fmap (("TargetVersion",) . toJSON) _configRemediationConfigurationTargetVersion ] } -- | Constructor for 'ConfigRemediationConfiguration' containing required -- fields as arguments. configRemediationConfiguration :: Val Text -- ^ 'crcConfigRuleName' -> Val Text -- ^ 'crcTargetId' -> Val Text -- ^ 'crcTargetType' -> ConfigRemediationConfiguration configRemediationConfiguration configRuleNamearg targetIdarg targetTypearg = ConfigRemediationConfiguration { _configRemediationConfigurationConfigRuleName = configRuleNamearg , _configRemediationConfigurationParameters = Nothing , _configRemediationConfigurationResourceType = Nothing , _configRemediationConfigurationTargetId = targetIdarg , _configRemediationConfigurationTargetType = targetTypearg , _configRemediationConfigurationTargetVersion = Nothing } -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html#cfn-config-remediationconfiguration-configrulename crcConfigRuleName :: Lens' ConfigRemediationConfiguration (Val Text) crcConfigRuleName = lens _configRemediationConfigurationConfigRuleName (\s a -> s { _configRemediationConfigurationConfigRuleName = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html#cfn-config-remediationconfiguration-parameters crcParameters :: Lens' ConfigRemediationConfiguration (Maybe Object) crcParameters = lens _configRemediationConfigurationParameters (\s a -> s { _configRemediationConfigurationParameters = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html#cfn-config-remediationconfiguration-resourcetype crcResourceType :: Lens' ConfigRemediationConfiguration (Maybe (Val Text)) crcResourceType = lens _configRemediationConfigurationResourceType (\s a -> s { _configRemediationConfigurationResourceType = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html#cfn-config-remediationconfiguration-targetid crcTargetId :: Lens' ConfigRemediationConfiguration (Val Text) crcTargetId = lens _configRemediationConfigurationTargetId (\s a -> s { _configRemediationConfigurationTargetId = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html#cfn-config-remediationconfiguration-targettype crcTargetType :: Lens' ConfigRemediationConfiguration (Val Text) crcTargetType = lens _configRemediationConfigurationTargetType (\s a -> s { _configRemediationConfigurationTargetType = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html#cfn-config-remediationconfiguration-targetversion crcTargetVersion :: Lens' ConfigRemediationConfiguration (Maybe (Val Text)) crcTargetVersion = lens _configRemediationConfigurationTargetVersion (\s a -> s { _configRemediationConfigurationTargetVersion = a })