module Stratosphere.ResourceProperties.DynamoDBProvisionedThroughput where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
data DynamoDBProvisionedThroughput =
DynamoDBProvisionedThroughput
{ _dynamoDBProvisionedThroughputReadCapacityUnits :: Val Integer'
, _dynamoDBProvisionedThroughputWriteCapacityUnits :: Val Integer'
} deriving (Show, Generic)
instance ToJSON DynamoDBProvisionedThroughput where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }
instance FromJSON DynamoDBProvisionedThroughput where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }
dynamoDBProvisionedThroughput
:: Val Integer'
-> Val Integer'
-> DynamoDBProvisionedThroughput
dynamoDBProvisionedThroughput readCapacityUnitsarg writeCapacityUnitsarg =
DynamoDBProvisionedThroughput
{ _dynamoDBProvisionedThroughputReadCapacityUnits = readCapacityUnitsarg
, _dynamoDBProvisionedThroughputWriteCapacityUnits = writeCapacityUnitsarg
}
ddbptReadCapacityUnits :: Lens' DynamoDBProvisionedThroughput (Val Integer')
ddbptReadCapacityUnits = lens _dynamoDBProvisionedThroughputReadCapacityUnits (\s a -> s { _dynamoDBProvisionedThroughputReadCapacityUnits = a })
ddbptWriteCapacityUnits :: Lens' DynamoDBProvisionedThroughput (Val Integer')
ddbptWriteCapacityUnits = lens _dynamoDBProvisionedThroughputWriteCapacityUnits (\s a -> s { _dynamoDBProvisionedThroughputWriteCapacityUnits = a })