module Stratosphere.ResourceProperties.S3ReplicationConfigurationRulesDestination where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
data S3ReplicationConfigurationRulesDestination =
S3ReplicationConfigurationRulesDestination
{ _s3ReplicationConfigurationRulesDestinationBucket :: Val Text
, _s3ReplicationConfigurationRulesDestinationStorageClass :: Maybe (Val Text)
} deriving (Show, Generic)
instance ToJSON S3ReplicationConfigurationRulesDestination where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 43, omitNothingFields = True }
instance FromJSON S3ReplicationConfigurationRulesDestination where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 43, omitNothingFields = True }
s3ReplicationConfigurationRulesDestination
:: Val Text
-> S3ReplicationConfigurationRulesDestination
s3ReplicationConfigurationRulesDestination bucketarg =
S3ReplicationConfigurationRulesDestination
{ _s3ReplicationConfigurationRulesDestinationBucket = bucketarg
, _s3ReplicationConfigurationRulesDestinationStorageClass = Nothing
}
srcrdBucket :: Lens' S3ReplicationConfigurationRulesDestination (Val Text)
srcrdBucket = lens _s3ReplicationConfigurationRulesDestinationBucket (\s a -> s { _s3ReplicationConfigurationRulesDestinationBucket = a })
srcrdStorageClass :: Lens' S3ReplicationConfigurationRulesDestination (Maybe (Val Text))
srcrdStorageClass = lens _s3ReplicationConfigurationRulesDestinationStorageClass (\s a -> s { _s3ReplicationConfigurationRulesDestinationStorageClass = a })