{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TupleSections #-} -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-geomatchset.html module Stratosphere.Resources.WAFRegionalGeoMatchSet where import Stratosphere.ResourceImports import Stratosphere.ResourceProperties.WAFRegionalGeoMatchSetGeoMatchConstraint -- | Full data type definition for WAFRegionalGeoMatchSet. See -- 'wafRegionalGeoMatchSet' for a more convenient constructor. data WAFRegionalGeoMatchSet = WAFRegionalGeoMatchSet { _wAFRegionalGeoMatchSetGeoMatchConstraints :: Maybe [WAFRegionalGeoMatchSetGeoMatchConstraint] , _wAFRegionalGeoMatchSetName :: Val Text } deriving (Show, Eq) instance ToResourceProperties WAFRegionalGeoMatchSet where toResourceProperties WAFRegionalGeoMatchSet{..} = ResourceProperties { resourcePropertiesType = "AWS::WAFRegional::GeoMatchSet" , resourcePropertiesProperties = hashMapFromList $ catMaybes [ fmap (("GeoMatchConstraints",) . toJSON) _wAFRegionalGeoMatchSetGeoMatchConstraints , (Just . ("Name",) . toJSON) _wAFRegionalGeoMatchSetName ] } -- | Constructor for 'WAFRegionalGeoMatchSet' containing required fields as -- arguments. wafRegionalGeoMatchSet :: Val Text -- ^ 'wafrgmsName' -> WAFRegionalGeoMatchSet wafRegionalGeoMatchSet namearg = WAFRegionalGeoMatchSet { _wAFRegionalGeoMatchSetGeoMatchConstraints = Nothing , _wAFRegionalGeoMatchSetName = namearg } -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-geomatchset.html#cfn-wafregional-geomatchset-geomatchconstraints wafrgmsGeoMatchConstraints :: Lens' WAFRegionalGeoMatchSet (Maybe [WAFRegionalGeoMatchSetGeoMatchConstraint]) wafrgmsGeoMatchConstraints = lens _wAFRegionalGeoMatchSetGeoMatchConstraints (\s a -> s { _wAFRegionalGeoMatchSetGeoMatchConstraints = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-geomatchset.html#cfn-wafregional-geomatchset-name wafrgmsName :: Lens' WAFRegionalGeoMatchSet (Val Text) wafrgmsName = lens _wAFRegionalGeoMatchSetName (\s a -> s { _wAFRegionalGeoMatchSetName = a })