packages feed

stratosphere-0.25.0: library-gen/Stratosphere/ResourceProperties/DAXClusterSSESpecification.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dax-cluster-ssespecification.html

module Stratosphere.ResourceProperties.DAXClusterSSESpecification where

import Stratosphere.ResourceImports


-- | Full data type definition for DAXClusterSSESpecification. See
-- 'daxClusterSSESpecification' for a more convenient constructor.
data DAXClusterSSESpecification =
  DAXClusterSSESpecification
  { _dAXClusterSSESpecificationSSEEnabled :: Maybe (Val Bool)
  } deriving (Show, Eq)

instance ToJSON DAXClusterSSESpecification where
  toJSON DAXClusterSSESpecification{..} =
    object $
    catMaybes
    [ fmap (("SSEEnabled",) . toJSON . fmap Bool') _dAXClusterSSESpecificationSSEEnabled
    ]

instance FromJSON DAXClusterSSESpecification where
  parseJSON (Object obj) =
    DAXClusterSSESpecification <$>
      fmap (fmap (fmap unBool')) (obj .:? "SSEEnabled")
  parseJSON _ = mempty

-- | Constructor for 'DAXClusterSSESpecification' containing required fields
-- as arguments.
daxClusterSSESpecification
  :: DAXClusterSSESpecification
daxClusterSSESpecification  =
  DAXClusterSSESpecification
  { _dAXClusterSSESpecificationSSEEnabled = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dax-cluster-ssespecification.html#cfn-dax-cluster-ssespecification-sseenabled
daxcssesSSEEnabled :: Lens' DAXClusterSSESpecification (Maybe (Val Bool))
daxcssesSSEEnabled = lens _dAXClusterSSESpecificationSSEEnabled (\s a -> s { _dAXClusterSSESpecificationSSEEnabled = a })