module Stratosphere.ResourceProperties.SQSRedrivePolicy where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
data SQSRedrivePolicy =
SQSRedrivePolicy
{ _sQSRedrivePolicydeadLetterTargetArn :: Val Text
, _sQSRedrivePolicymaxReceiveCount :: Maybe (Val Integer')
} deriving (Show, Generic)
instance ToJSON SQSRedrivePolicy where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }
instance FromJSON SQSRedrivePolicy where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }
sqsRedrivePolicy
:: Val Text
-> SQSRedrivePolicy
sqsRedrivePolicy deadLetterTargetArnarg =
SQSRedrivePolicy
{ _sQSRedrivePolicydeadLetterTargetArn = deadLetterTargetArnarg
, _sQSRedrivePolicymaxReceiveCount = Nothing
}
sqsrpdeadLetterTargetArn :: Lens' SQSRedrivePolicy (Val Text)
sqsrpdeadLetterTargetArn = lens _sQSRedrivePolicydeadLetterTargetArn (\s a -> s { _sQSRedrivePolicydeadLetterTargetArn = a })
sqsrpmaxReceiveCount :: Lens' SQSRedrivePolicy (Maybe (Val Integer'))
sqsrpmaxReceiveCount = lens _sQSRedrivePolicymaxReceiveCount (\s a -> s { _sQSRedrivePolicymaxReceiveCount = a })