module Stratosphere.ResourceProperties.S3LifecycleRuleTransition where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
data S3LifecycleRuleTransition =
S3LifecycleRuleTransition
{ _s3LifecycleRuleTransitionStorageClass :: Val Text
, _s3LifecycleRuleTransitionTransitionDate :: Maybe (Val Text)
, _s3LifecycleRuleTransitionTransitionInDays :: Maybe (Val Integer')
} deriving (Show, Generic)
instance ToJSON S3LifecycleRuleTransition where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }
instance FromJSON S3LifecycleRuleTransition where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }
s3LifecycleRuleTransition
:: Val Text
-> S3LifecycleRuleTransition
s3LifecycleRuleTransition storageClassarg =
S3LifecycleRuleTransition
{ _s3LifecycleRuleTransitionStorageClass = storageClassarg
, _s3LifecycleRuleTransitionTransitionDate = Nothing
, _s3LifecycleRuleTransitionTransitionInDays = Nothing
}
slrtStorageClass :: Lens' S3LifecycleRuleTransition (Val Text)
slrtStorageClass = lens _s3LifecycleRuleTransitionStorageClass (\s a -> s { _s3LifecycleRuleTransitionStorageClass = a })
slrtTransitionDate :: Lens' S3LifecycleRuleTransition (Maybe (Val Text))
slrtTransitionDate = lens _s3LifecycleRuleTransitionTransitionDate (\s a -> s { _s3LifecycleRuleTransitionTransitionDate = a })
slrtTransitionInDays :: Lens' S3LifecycleRuleTransition (Maybe (Val Integer'))
slrtTransitionInDays = lens _s3LifecycleRuleTransitionTransitionInDays (\s a -> s { _s3LifecycleRuleTransitionTransitionInDays = a })