module Stratosphere.ResourceProperties.S3ReplicationConfigurationRule where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
import Stratosphere.ResourceProperties.S3ReplicationConfigurationRulesDestination
data S3ReplicationConfigurationRule =
S3ReplicationConfigurationRule
{ _s3ReplicationConfigurationRuleDestination :: S3ReplicationConfigurationRulesDestination
, _s3ReplicationConfigurationRuleId :: Maybe (Val Text)
, _s3ReplicationConfigurationRulePrefix :: Val Text
, _s3ReplicationConfigurationRuleStatus :: Val Text
} deriving (Show, Generic)
instance ToJSON S3ReplicationConfigurationRule where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }
instance FromJSON S3ReplicationConfigurationRule where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }
s3ReplicationConfigurationRule
:: S3ReplicationConfigurationRulesDestination
-> Val Text
-> Val Text
-> S3ReplicationConfigurationRule
s3ReplicationConfigurationRule destinationarg prefixarg statusarg =
S3ReplicationConfigurationRule
{ _s3ReplicationConfigurationRuleDestination = destinationarg
, _s3ReplicationConfigurationRuleId = Nothing
, _s3ReplicationConfigurationRulePrefix = prefixarg
, _s3ReplicationConfigurationRuleStatus = statusarg
}
srcrDestination :: Lens' S3ReplicationConfigurationRule S3ReplicationConfigurationRulesDestination
srcrDestination = lens _s3ReplicationConfigurationRuleDestination (\s a -> s { _s3ReplicationConfigurationRuleDestination = a })
srcrId :: Lens' S3ReplicationConfigurationRule (Maybe (Val Text))
srcrId = lens _s3ReplicationConfigurationRuleId (\s a -> s { _s3ReplicationConfigurationRuleId = a })
srcrPrefix :: Lens' S3ReplicationConfigurationRule (Val Text)
srcrPrefix = lens _s3ReplicationConfigurationRulePrefix (\s a -> s { _s3ReplicationConfigurationRulePrefix = a })
srcrStatus :: Lens' S3ReplicationConfigurationRule (Val Text)
srcrStatus = lens _s3ReplicationConfigurationRuleStatus (\s a -> s { _s3ReplicationConfigurationRuleStatus = a })