module Stratosphere.ResourceProperties.S3WebsiteConfiguration where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
import Stratosphere.ResourceProperties.S3WebsiteRedirectAllRequestsTo
import Stratosphere.ResourceProperties.S3WebsiteRoutingRules
data S3WebsiteConfiguration =
S3WebsiteConfiguration
{ _s3WebsiteConfigurationErrorDocument :: Maybe (Val Text)
, _s3WebsiteConfigurationIndexDocument :: Val Text
, _s3WebsiteConfigurationRedirectAllRequestsTo :: Maybe S3WebsiteRedirectAllRequestsTo
, _s3WebsiteConfigurationRoutingRules :: Maybe S3WebsiteRoutingRules
} deriving (Show, Generic)
instance ToJSON S3WebsiteConfiguration where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }
instance FromJSON S3WebsiteConfiguration where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }
s3WebsiteConfiguration
:: Val Text
-> S3WebsiteConfiguration
s3WebsiteConfiguration indexDocumentarg =
S3WebsiteConfiguration
{ _s3WebsiteConfigurationErrorDocument = Nothing
, _s3WebsiteConfigurationIndexDocument = indexDocumentarg
, _s3WebsiteConfigurationRedirectAllRequestsTo = Nothing
, _s3WebsiteConfigurationRoutingRules = Nothing
}
swcErrorDocument :: Lens' S3WebsiteConfiguration (Maybe (Val Text))
swcErrorDocument = lens _s3WebsiteConfigurationErrorDocument (\s a -> s { _s3WebsiteConfigurationErrorDocument = a })
swcIndexDocument :: Lens' S3WebsiteConfiguration (Val Text)
swcIndexDocument = lens _s3WebsiteConfigurationIndexDocument (\s a -> s { _s3WebsiteConfigurationIndexDocument = a })
swcRedirectAllRequestsTo :: Lens' S3WebsiteConfiguration (Maybe S3WebsiteRedirectAllRequestsTo)
swcRedirectAllRequestsTo = lens _s3WebsiteConfigurationRedirectAllRequestsTo (\s a -> s { _s3WebsiteConfigurationRedirectAllRequestsTo = a })
swcRoutingRules :: Lens' S3WebsiteConfiguration (Maybe S3WebsiteRoutingRules)
swcRoutingRules = lens _s3WebsiteConfigurationRoutingRules (\s a -> s { _s3WebsiteConfigurationRoutingRules = a })