module Stratosphere.ResourceProperties.S3WebsiteRoutingRules where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
import Stratosphere.ResourceProperties.S3WebsiteRedirectRule
import Stratosphere.ResourceProperties.S3WebsiteRoutingRuleCondition
data S3WebsiteRoutingRules =
S3WebsiteRoutingRules
{ _s3WebsiteRoutingRulesRedirectRule :: S3WebsiteRedirectRule
, _s3WebsiteRoutingRulesRoutingRuleCondition :: Maybe S3WebsiteRoutingRuleCondition
} deriving (Show, Generic)
instance ToJSON S3WebsiteRoutingRules where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 22, omitNothingFields = True }
instance FromJSON S3WebsiteRoutingRules where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 22, omitNothingFields = True }
s3WebsiteRoutingRules
:: S3WebsiteRedirectRule
-> S3WebsiteRoutingRules
s3WebsiteRoutingRules redirectRulearg =
S3WebsiteRoutingRules
{ _s3WebsiteRoutingRulesRedirectRule = redirectRulearg
, _s3WebsiteRoutingRulesRoutingRuleCondition = Nothing
}
swrrRedirectRule :: Lens' S3WebsiteRoutingRules S3WebsiteRedirectRule
swrrRedirectRule = lens _s3WebsiteRoutingRulesRedirectRule (\s a -> s { _s3WebsiteRoutingRulesRedirectRule = a })
swrrRoutingRuleCondition :: Lens' S3WebsiteRoutingRules (Maybe S3WebsiteRoutingRuleCondition)
swrrRoutingRuleCondition = lens _s3WebsiteRoutingRulesRoutingRuleCondition (\s a -> s { _s3WebsiteRoutingRulesRoutingRuleCondition = a })