stratosphere-0.1.5: library-gen/Stratosphere/ResourceProperties/S3WebsiteRoutingRules.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
-- | The RoutingRules property is an embedded property of the Amazon S3
-- Website Configuration Property property. This property describes the
-- redirect behavior and when a redirect is applied.
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
-- | Full data type definition for S3WebsiteRoutingRules. See
-- 's3WebsiteRoutingRules' for a more convenient constructor.
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 }
-- | Constructor for 'S3WebsiteRoutingRules' containing required fields as
-- arguments.
s3WebsiteRoutingRules
:: S3WebsiteRedirectRule -- ^ 'swrrRedirectRule'
-> S3WebsiteRoutingRules
s3WebsiteRoutingRules redirectRulearg =
S3WebsiteRoutingRules
{ _s3WebsiteRoutingRulesRedirectRule = redirectRulearg
, _s3WebsiteRoutingRulesRoutingRuleCondition = Nothing
}
-- | Redirect requests to another host, to another page, or with another
-- protocol.
swrrRedirectRule :: Lens' S3WebsiteRoutingRules S3WebsiteRedirectRule
swrrRedirectRule = lens _s3WebsiteRoutingRulesRedirectRule (\s a -> s { _s3WebsiteRoutingRulesRedirectRule = a })
-- | Rules that define when a redirect is applied.
swrrRoutingRuleCondition :: Lens' S3WebsiteRoutingRules (Maybe S3WebsiteRoutingRuleCondition)
swrrRoutingRuleCondition = lens _s3WebsiteRoutingRulesRoutingRuleCondition (\s a -> s { _s3WebsiteRoutingRulesRoutingRuleCondition = a })