module Stratosphere.ResourceProperties.DynamoDBAttributeDefinition where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
import Stratosphere.Types
data DynamoDBAttributeDefinition =
DynamoDBAttributeDefinition
{ _dynamoDBAttributeDefinitionAttributeName :: Val Text
, _dynamoDBAttributeDefinitionAttributeType :: AttributeType
} deriving (Show, Generic)
instance ToJSON DynamoDBAttributeDefinition where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }
instance FromJSON DynamoDBAttributeDefinition where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }
dynamoDBAttributeDefinition
:: Val Text
-> AttributeType
-> DynamoDBAttributeDefinition
dynamoDBAttributeDefinition attributeNamearg attributeTypearg =
DynamoDBAttributeDefinition
{ _dynamoDBAttributeDefinitionAttributeName = attributeNamearg
, _dynamoDBAttributeDefinitionAttributeType = attributeTypearg
}
ddbadAttributeName :: Lens' DynamoDBAttributeDefinition (Val Text)
ddbadAttributeName = lens _dynamoDBAttributeDefinitionAttributeName (\s a -> s { _dynamoDBAttributeDefinitionAttributeName = a })
ddbadAttributeType :: Lens' DynamoDBAttributeDefinition AttributeType
ddbadAttributeType = lens _dynamoDBAttributeDefinitionAttributeType (\s a -> s { _dynamoDBAttributeDefinitionAttributeType = a })