stratosphere-0.2.1: library-gen/Stratosphere/ResourceProperties/DynamoDBStreamSpecification.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
-- | StreamSpecification is a property of the AWS::DynamoDB::Table resource
-- that defines the settings of a DynamoDB table's stream.
module Stratosphere.ResourceProperties.DynamoDBStreamSpecification where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
import Stratosphere.Types
-- | Full data type definition for DynamoDBStreamSpecification. See
-- 'dynamoDBStreamSpecification' for a more convenient constructor.
data DynamoDBStreamSpecification =
DynamoDBStreamSpecification
{ _dynamoDBStreamSpecificationStreamViewType :: StreamViewType
} deriving (Show, Generic)
instance ToJSON DynamoDBStreamSpecification where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }
instance FromJSON DynamoDBStreamSpecification where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }
-- | Constructor for 'DynamoDBStreamSpecification' containing required fields
-- as arguments.
dynamoDBStreamSpecification
:: StreamViewType -- ^ 'ddbssStreamViewType'
-> DynamoDBStreamSpecification
dynamoDBStreamSpecification streamViewTypearg =
DynamoDBStreamSpecification
{ _dynamoDBStreamSpecificationStreamViewType = streamViewTypearg
}
-- | Determines the information that the stream captures when an item in the
-- table is modified. For valid values, see StreamSpecification in the Amazon
-- DynamoDB API Reference.
ddbssStreamViewType :: Lens' DynamoDBStreamSpecification StreamViewType
ddbssStreamViewType = lens _dynamoDBStreamSpecificationStreamViewType (\s a -> s { _dynamoDBStreamSpecificationStreamViewType = a })