module Stratosphere.Resources.CacheCluster where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
import Stratosphere.ResourceProperties.ResourceTag
data CacheCluster =
CacheCluster
{ _cacheClusterAutoMinorVersionUpgrade :: Maybe (Val Bool')
, _cacheClusterAZMode :: Maybe (Val Text)
, _cacheClusterCacheNodeType :: Val Text
, _cacheClusterCacheParameterGroupName :: Maybe (Val Text)
, _cacheClusterCacheSecurityGroupNames :: Maybe [Val Text]
, _cacheClusterCacheSubnetGroupName :: Maybe (Val Text)
, _cacheClusterClusterName :: Maybe (Val Text)
, _cacheClusterEngine :: Val Text
, _cacheClusterEngineVersion :: Maybe (Val Text)
, _cacheClusterNotificationTopicArn :: Maybe (Val Text)
, _cacheClusterNumCacheNodes :: Val Integer'
, _cacheClusterPort :: Maybe (Val Integer')
, _cacheClusterPreferredAvailabilityZone :: Maybe (Val Text)
, _cacheClusterPreferredAvailabilityZones :: Maybe [Val Text]
, _cacheClusterPreferredMaintenanceWindow :: Maybe (Val Text)
, _cacheClusterSnapshotArns :: Maybe [Val Text]
, _cacheClusterSnapshotName :: Maybe (Val Text)
, _cacheClusterSnapshotRetentionLimit :: Maybe (Val Integer')
, _cacheClusterSnapshotWindow :: Maybe (Val Text)
, _cacheClusterTags :: Maybe [ResourceTag]
, _cacheClusterVpcSecurityGroupIds :: Maybe [Val Text]
} deriving (Show, Generic)
instance ToJSON CacheCluster where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 13, omitNothingFields = True }
instance FromJSON CacheCluster where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 13, omitNothingFields = True }
cacheCluster
:: Val Text
-> Val Text
-> Val Integer'
-> CacheCluster
cacheCluster cacheNodeTypearg enginearg numCacheNodesarg =
CacheCluster
{ _cacheClusterAutoMinorVersionUpgrade = Nothing
, _cacheClusterAZMode = Nothing
, _cacheClusterCacheNodeType = cacheNodeTypearg
, _cacheClusterCacheParameterGroupName = Nothing
, _cacheClusterCacheSecurityGroupNames = Nothing
, _cacheClusterCacheSubnetGroupName = Nothing
, _cacheClusterClusterName = Nothing
, _cacheClusterEngine = enginearg
, _cacheClusterEngineVersion = Nothing
, _cacheClusterNotificationTopicArn = Nothing
, _cacheClusterNumCacheNodes = numCacheNodesarg
, _cacheClusterPort = Nothing
, _cacheClusterPreferredAvailabilityZone = Nothing
, _cacheClusterPreferredAvailabilityZones = Nothing
, _cacheClusterPreferredMaintenanceWindow = Nothing
, _cacheClusterSnapshotArns = Nothing
, _cacheClusterSnapshotName = Nothing
, _cacheClusterSnapshotRetentionLimit = Nothing
, _cacheClusterSnapshotWindow = Nothing
, _cacheClusterTags = Nothing
, _cacheClusterVpcSecurityGroupIds = Nothing
}
ccAutoMinorVersionUpgrade :: Lens' CacheCluster (Maybe (Val Bool'))
ccAutoMinorVersionUpgrade = lens _cacheClusterAutoMinorVersionUpgrade (\s a -> s { _cacheClusterAutoMinorVersionUpgrade = a })
ccAZMode :: Lens' CacheCluster (Maybe (Val Text))
ccAZMode = lens _cacheClusterAZMode (\s a -> s { _cacheClusterAZMode = a })
ccCacheNodeType :: Lens' CacheCluster (Val Text)
ccCacheNodeType = lens _cacheClusterCacheNodeType (\s a -> s { _cacheClusterCacheNodeType = a })
ccCacheParameterGroupName :: Lens' CacheCluster (Maybe (Val Text))
ccCacheParameterGroupName = lens _cacheClusterCacheParameterGroupName (\s a -> s { _cacheClusterCacheParameterGroupName = a })
ccCacheSecurityGroupNames :: Lens' CacheCluster (Maybe [Val Text])
ccCacheSecurityGroupNames = lens _cacheClusterCacheSecurityGroupNames (\s a -> s { _cacheClusterCacheSecurityGroupNames = a })
ccCacheSubnetGroupName :: Lens' CacheCluster (Maybe (Val Text))
ccCacheSubnetGroupName = lens _cacheClusterCacheSubnetGroupName (\s a -> s { _cacheClusterCacheSubnetGroupName = a })
ccClusterName :: Lens' CacheCluster (Maybe (Val Text))
ccClusterName = lens _cacheClusterClusterName (\s a -> s { _cacheClusterClusterName = a })
ccEngine :: Lens' CacheCluster (Val Text)
ccEngine = lens _cacheClusterEngine (\s a -> s { _cacheClusterEngine = a })
ccEngineVersion :: Lens' CacheCluster (Maybe (Val Text))
ccEngineVersion = lens _cacheClusterEngineVersion (\s a -> s { _cacheClusterEngineVersion = a })
ccNotificationTopicArn :: Lens' CacheCluster (Maybe (Val Text))
ccNotificationTopicArn = lens _cacheClusterNotificationTopicArn (\s a -> s { _cacheClusterNotificationTopicArn = a })
ccNumCacheNodes :: Lens' CacheCluster (Val Integer')
ccNumCacheNodes = lens _cacheClusterNumCacheNodes (\s a -> s { _cacheClusterNumCacheNodes = a })
ccPort :: Lens' CacheCluster (Maybe (Val Integer'))
ccPort = lens _cacheClusterPort (\s a -> s { _cacheClusterPort = a })
ccPreferredAvailabilityZone :: Lens' CacheCluster (Maybe (Val Text))
ccPreferredAvailabilityZone = lens _cacheClusterPreferredAvailabilityZone (\s a -> s { _cacheClusterPreferredAvailabilityZone = a })
ccPreferredAvailabilityZones :: Lens' CacheCluster (Maybe [Val Text])
ccPreferredAvailabilityZones = lens _cacheClusterPreferredAvailabilityZones (\s a -> s { _cacheClusterPreferredAvailabilityZones = a })
ccPreferredMaintenanceWindow :: Lens' CacheCluster (Maybe (Val Text))
ccPreferredMaintenanceWindow = lens _cacheClusterPreferredMaintenanceWindow (\s a -> s { _cacheClusterPreferredMaintenanceWindow = a })
ccSnapshotArns :: Lens' CacheCluster (Maybe [Val Text])
ccSnapshotArns = lens _cacheClusterSnapshotArns (\s a -> s { _cacheClusterSnapshotArns = a })
ccSnapshotName :: Lens' CacheCluster (Maybe (Val Text))
ccSnapshotName = lens _cacheClusterSnapshotName (\s a -> s { _cacheClusterSnapshotName = a })
ccSnapshotRetentionLimit :: Lens' CacheCluster (Maybe (Val Integer'))
ccSnapshotRetentionLimit = lens _cacheClusterSnapshotRetentionLimit (\s a -> s { _cacheClusterSnapshotRetentionLimit = a })
ccSnapshotWindow :: Lens' CacheCluster (Maybe (Val Text))
ccSnapshotWindow = lens _cacheClusterSnapshotWindow (\s a -> s { _cacheClusterSnapshotWindow = a })
ccTags :: Lens' CacheCluster (Maybe [ResourceTag])
ccTags = lens _cacheClusterTags (\s a -> s { _cacheClusterTags = a })
ccVpcSecurityGroupIds :: Lens' CacheCluster (Maybe [Val Text])
ccVpcSecurityGroupIds = lens _cacheClusterVpcSecurityGroupIds (\s a -> s { _cacheClusterVpcSecurityGroupIds = a })