packages feed

stratosphere-elasticache (empty) → 1.0.0

raw patch · 46 files changed

+2561/−0 lines, 46 filesdep +aesondep +basedep +stratosphere

Dependencies added: aeson, base, stratosphere

Files

+ LICENSE.md view
@@ -0,0 +1,20 @@+Copyright (c) 2016 David Reaver+Copyright (c) 2022 Markus Schirp++Permission is hereby granted, free of charge, to any person obtaining a copy of+this software and associated documentation files (the "Software"), to deal in+the Software without restriction, including without limitation the rights to+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies+of the Software, and to permit persons to whom the Software is furnished to do+so, subject to the following conditions:++The above copyright notice and this permission notice shall be included in all+copies or substantial portions of the Software.++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+SOFTWARE.
+ gen/Stratosphere/ElastiCache/CacheCluster.hs view
@@ -0,0 +1,277 @@+module Stratosphere.ElastiCache.CacheCluster (+        module Exports, CacheCluster(..), mkCacheCluster+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import {-# SOURCE #-} Stratosphere.ElastiCache.CacheCluster.LogDeliveryConfigurationRequestProperty as Exports+import Stratosphere.ResourceProperties+import Stratosphere.Tag+import Stratosphere.Value+data CacheCluster+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html>+    CacheCluster {haddock_workaround_ :: (),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-azmode>+                  aZMode :: (Prelude.Maybe (Value Prelude.Text)),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-autominorversionupgrade>+                  autoMinorVersionUpgrade :: (Prelude.Maybe (Value Prelude.Bool)),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-cachenodetype>+                  cacheNodeType :: (Value Prelude.Text),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-cacheparametergroupname>+                  cacheParameterGroupName :: (Prelude.Maybe (Value Prelude.Text)),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-cachesecuritygroupnames>+                  cacheSecurityGroupNames :: (Prelude.Maybe (ValueList Prelude.Text)),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-cachesubnetgroupname>+                  cacheSubnetGroupName :: (Prelude.Maybe (Value Prelude.Text)),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-clustername>+                  clusterName :: (Prelude.Maybe (Value Prelude.Text)),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-engine>+                  engine :: (Value Prelude.Text),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-engineversion>+                  engineVersion :: (Prelude.Maybe (Value Prelude.Text)),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-ipdiscovery>+                  ipDiscovery :: (Prelude.Maybe (Value Prelude.Text)),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-logdeliveryconfigurations>+                  logDeliveryConfigurations :: (Prelude.Maybe [LogDeliveryConfigurationRequestProperty]),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-networktype>+                  networkType :: (Prelude.Maybe (Value Prelude.Text)),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-notificationtopicarn>+                  notificationTopicArn :: (Prelude.Maybe (Value Prelude.Text)),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-numcachenodes>+                  numCacheNodes :: (Value Prelude.Integer),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-port>+                  port :: (Prelude.Maybe (Value Prelude.Integer)),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-preferredavailabilityzone>+                  preferredAvailabilityZone :: (Prelude.Maybe (Value Prelude.Text)),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-preferredavailabilityzones>+                  preferredAvailabilityZones :: (Prelude.Maybe (ValueList Prelude.Text)),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-preferredmaintenancewindow>+                  preferredMaintenanceWindow :: (Prelude.Maybe (Value Prelude.Text)),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-snapshotarns>+                  snapshotArns :: (Prelude.Maybe (ValueList Prelude.Text)),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-snapshotname>+                  snapshotName :: (Prelude.Maybe (Value Prelude.Text)),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-snapshotretentionlimit>+                  snapshotRetentionLimit :: (Prelude.Maybe (Value Prelude.Integer)),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-snapshotwindow>+                  snapshotWindow :: (Prelude.Maybe (Value Prelude.Text)),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-tags>+                  tags :: (Prelude.Maybe [Tag]),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-transitencryptionenabled>+                  transitEncryptionEnabled :: (Prelude.Maybe (Value Prelude.Bool)),+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-vpcsecuritygroupids>+                  vpcSecurityGroupIds :: (Prelude.Maybe (ValueList Prelude.Text))}+  deriving stock (Prelude.Eq, Prelude.Show)+mkCacheCluster ::+  Value Prelude.Text+  -> Value Prelude.Text -> Value Prelude.Integer -> CacheCluster+mkCacheCluster cacheNodeType engine numCacheNodes+  = CacheCluster+      {haddock_workaround_ = (), cacheNodeType = cacheNodeType,+       engine = engine, numCacheNodes = numCacheNodes,+       aZMode = Prelude.Nothing,+       autoMinorVersionUpgrade = Prelude.Nothing,+       cacheParameterGroupName = Prelude.Nothing,+       cacheSecurityGroupNames = Prelude.Nothing,+       cacheSubnetGroupName = Prelude.Nothing,+       clusterName = Prelude.Nothing, engineVersion = Prelude.Nothing,+       ipDiscovery = Prelude.Nothing,+       logDeliveryConfigurations = Prelude.Nothing,+       networkType = Prelude.Nothing,+       notificationTopicArn = Prelude.Nothing, port = Prelude.Nothing,+       preferredAvailabilityZone = Prelude.Nothing,+       preferredAvailabilityZones = Prelude.Nothing,+       preferredMaintenanceWindow = Prelude.Nothing,+       snapshotArns = Prelude.Nothing, snapshotName = Prelude.Nothing,+       snapshotRetentionLimit = Prelude.Nothing,+       snapshotWindow = Prelude.Nothing, tags = Prelude.Nothing,+       transitEncryptionEnabled = Prelude.Nothing,+       vpcSecurityGroupIds = Prelude.Nothing}+instance ToResourceProperties CacheCluster where+  toResourceProperties CacheCluster {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::CacheCluster",+         supportsTags = Prelude.True,+         properties = Prelude.fromList+                        ((Prelude.<>)+                           ["CacheNodeType" JSON..= cacheNodeType, "Engine" JSON..= engine,+                            "NumCacheNodes" JSON..= numCacheNodes]+                           (Prelude.catMaybes+                              [(JSON..=) "AZMode" Prelude.<$> aZMode,+                               (JSON..=) "AutoMinorVersionUpgrade"+                                 Prelude.<$> autoMinorVersionUpgrade,+                               (JSON..=) "CacheParameterGroupName"+                                 Prelude.<$> cacheParameterGroupName,+                               (JSON..=) "CacheSecurityGroupNames"+                                 Prelude.<$> cacheSecurityGroupNames,+                               (JSON..=) "CacheSubnetGroupName" Prelude.<$> cacheSubnetGroupName,+                               (JSON..=) "ClusterName" Prelude.<$> clusterName,+                               (JSON..=) "EngineVersion" Prelude.<$> engineVersion,+                               (JSON..=) "IpDiscovery" Prelude.<$> ipDiscovery,+                               (JSON..=) "LogDeliveryConfigurations"+                                 Prelude.<$> logDeliveryConfigurations,+                               (JSON..=) "NetworkType" Prelude.<$> networkType,+                               (JSON..=) "NotificationTopicArn" Prelude.<$> notificationTopicArn,+                               (JSON..=) "Port" Prelude.<$> port,+                               (JSON..=) "PreferredAvailabilityZone"+                                 Prelude.<$> preferredAvailabilityZone,+                               (JSON..=) "PreferredAvailabilityZones"+                                 Prelude.<$> preferredAvailabilityZones,+                               (JSON..=) "PreferredMaintenanceWindow"+                                 Prelude.<$> preferredMaintenanceWindow,+                               (JSON..=) "SnapshotArns" Prelude.<$> snapshotArns,+                               (JSON..=) "SnapshotName" Prelude.<$> snapshotName,+                               (JSON..=) "SnapshotRetentionLimit"+                                 Prelude.<$> snapshotRetentionLimit,+                               (JSON..=) "SnapshotWindow" Prelude.<$> snapshotWindow,+                               (JSON..=) "Tags" Prelude.<$> tags,+                               (JSON..=) "TransitEncryptionEnabled"+                                 Prelude.<$> transitEncryptionEnabled,+                               (JSON..=) "VpcSecurityGroupIds" Prelude.<$> vpcSecurityGroupIds]))}+instance JSON.ToJSON CacheCluster where+  toJSON CacheCluster {..}+    = JSON.object+        (Prelude.fromList+           ((Prelude.<>)+              ["CacheNodeType" JSON..= cacheNodeType, "Engine" JSON..= engine,+               "NumCacheNodes" JSON..= numCacheNodes]+              (Prelude.catMaybes+                 [(JSON..=) "AZMode" Prelude.<$> aZMode,+                  (JSON..=) "AutoMinorVersionUpgrade"+                    Prelude.<$> autoMinorVersionUpgrade,+                  (JSON..=) "CacheParameterGroupName"+                    Prelude.<$> cacheParameterGroupName,+                  (JSON..=) "CacheSecurityGroupNames"+                    Prelude.<$> cacheSecurityGroupNames,+                  (JSON..=) "CacheSubnetGroupName" Prelude.<$> cacheSubnetGroupName,+                  (JSON..=) "ClusterName" Prelude.<$> clusterName,+                  (JSON..=) "EngineVersion" Prelude.<$> engineVersion,+                  (JSON..=) "IpDiscovery" Prelude.<$> ipDiscovery,+                  (JSON..=) "LogDeliveryConfigurations"+                    Prelude.<$> logDeliveryConfigurations,+                  (JSON..=) "NetworkType" Prelude.<$> networkType,+                  (JSON..=) "NotificationTopicArn" Prelude.<$> notificationTopicArn,+                  (JSON..=) "Port" Prelude.<$> port,+                  (JSON..=) "PreferredAvailabilityZone"+                    Prelude.<$> preferredAvailabilityZone,+                  (JSON..=) "PreferredAvailabilityZones"+                    Prelude.<$> preferredAvailabilityZones,+                  (JSON..=) "PreferredMaintenanceWindow"+                    Prelude.<$> preferredMaintenanceWindow,+                  (JSON..=) "SnapshotArns" Prelude.<$> snapshotArns,+                  (JSON..=) "SnapshotName" Prelude.<$> snapshotName,+                  (JSON..=) "SnapshotRetentionLimit"+                    Prelude.<$> snapshotRetentionLimit,+                  (JSON..=) "SnapshotWindow" Prelude.<$> snapshotWindow,+                  (JSON..=) "Tags" Prelude.<$> tags,+                  (JSON..=) "TransitEncryptionEnabled"+                    Prelude.<$> transitEncryptionEnabled,+                  (JSON..=) "VpcSecurityGroupIds" Prelude.<$> vpcSecurityGroupIds])))+instance Property "AZMode" CacheCluster where+  type PropertyType "AZMode" CacheCluster = Value Prelude.Text+  set newValue CacheCluster {..}+    = CacheCluster {aZMode = Prelude.pure newValue, ..}+instance Property "AutoMinorVersionUpgrade" CacheCluster where+  type PropertyType "AutoMinorVersionUpgrade" CacheCluster = Value Prelude.Bool+  set newValue CacheCluster {..}+    = CacheCluster+        {autoMinorVersionUpgrade = Prelude.pure newValue, ..}+instance Property "CacheNodeType" CacheCluster where+  type PropertyType "CacheNodeType" CacheCluster = Value Prelude.Text+  set newValue CacheCluster {..}+    = CacheCluster {cacheNodeType = newValue, ..}+instance Property "CacheParameterGroupName" CacheCluster where+  type PropertyType "CacheParameterGroupName" CacheCluster = Value Prelude.Text+  set newValue CacheCluster {..}+    = CacheCluster+        {cacheParameterGroupName = Prelude.pure newValue, ..}+instance Property "CacheSecurityGroupNames" CacheCluster where+  type PropertyType "CacheSecurityGroupNames" CacheCluster = ValueList Prelude.Text+  set newValue CacheCluster {..}+    = CacheCluster+        {cacheSecurityGroupNames = Prelude.pure newValue, ..}+instance Property "CacheSubnetGroupName" CacheCluster where+  type PropertyType "CacheSubnetGroupName" CacheCluster = Value Prelude.Text+  set newValue CacheCluster {..}+    = CacheCluster {cacheSubnetGroupName = Prelude.pure newValue, ..}+instance Property "ClusterName" CacheCluster where+  type PropertyType "ClusterName" CacheCluster = Value Prelude.Text+  set newValue CacheCluster {..}+    = CacheCluster {clusterName = Prelude.pure newValue, ..}+instance Property "Engine" CacheCluster where+  type PropertyType "Engine" CacheCluster = Value Prelude.Text+  set newValue CacheCluster {..}+    = CacheCluster {engine = newValue, ..}+instance Property "EngineVersion" CacheCluster where+  type PropertyType "EngineVersion" CacheCluster = Value Prelude.Text+  set newValue CacheCluster {..}+    = CacheCluster {engineVersion = Prelude.pure newValue, ..}+instance Property "IpDiscovery" CacheCluster where+  type PropertyType "IpDiscovery" CacheCluster = Value Prelude.Text+  set newValue CacheCluster {..}+    = CacheCluster {ipDiscovery = Prelude.pure newValue, ..}+instance Property "LogDeliveryConfigurations" CacheCluster where+  type PropertyType "LogDeliveryConfigurations" CacheCluster = [LogDeliveryConfigurationRequestProperty]+  set newValue CacheCluster {..}+    = CacheCluster+        {logDeliveryConfigurations = Prelude.pure newValue, ..}+instance Property "NetworkType" CacheCluster where+  type PropertyType "NetworkType" CacheCluster = Value Prelude.Text+  set newValue CacheCluster {..}+    = CacheCluster {networkType = Prelude.pure newValue, ..}+instance Property "NotificationTopicArn" CacheCluster where+  type PropertyType "NotificationTopicArn" CacheCluster = Value Prelude.Text+  set newValue CacheCluster {..}+    = CacheCluster {notificationTopicArn = Prelude.pure newValue, ..}+instance Property "NumCacheNodes" CacheCluster where+  type PropertyType "NumCacheNodes" CacheCluster = Value Prelude.Integer+  set newValue CacheCluster {..}+    = CacheCluster {numCacheNodes = newValue, ..}+instance Property "Port" CacheCluster where+  type PropertyType "Port" CacheCluster = Value Prelude.Integer+  set newValue CacheCluster {..}+    = CacheCluster {port = Prelude.pure newValue, ..}+instance Property "PreferredAvailabilityZone" CacheCluster where+  type PropertyType "PreferredAvailabilityZone" CacheCluster = Value Prelude.Text+  set newValue CacheCluster {..}+    = CacheCluster+        {preferredAvailabilityZone = Prelude.pure newValue, ..}+instance Property "PreferredAvailabilityZones" CacheCluster where+  type PropertyType "PreferredAvailabilityZones" CacheCluster = ValueList Prelude.Text+  set newValue CacheCluster {..}+    = CacheCluster+        {preferredAvailabilityZones = Prelude.pure newValue, ..}+instance Property "PreferredMaintenanceWindow" CacheCluster where+  type PropertyType "PreferredMaintenanceWindow" CacheCluster = Value Prelude.Text+  set newValue CacheCluster {..}+    = CacheCluster+        {preferredMaintenanceWindow = Prelude.pure newValue, ..}+instance Property "SnapshotArns" CacheCluster where+  type PropertyType "SnapshotArns" CacheCluster = ValueList Prelude.Text+  set newValue CacheCluster {..}+    = CacheCluster {snapshotArns = Prelude.pure newValue, ..}+instance Property "SnapshotName" CacheCluster where+  type PropertyType "SnapshotName" CacheCluster = Value Prelude.Text+  set newValue CacheCluster {..}+    = CacheCluster {snapshotName = Prelude.pure newValue, ..}+instance Property "SnapshotRetentionLimit" CacheCluster where+  type PropertyType "SnapshotRetentionLimit" CacheCluster = Value Prelude.Integer+  set newValue CacheCluster {..}+    = CacheCluster {snapshotRetentionLimit = Prelude.pure newValue, ..}+instance Property "SnapshotWindow" CacheCluster where+  type PropertyType "SnapshotWindow" CacheCluster = Value Prelude.Text+  set newValue CacheCluster {..}+    = CacheCluster {snapshotWindow = Prelude.pure newValue, ..}+instance Property "Tags" CacheCluster where+  type PropertyType "Tags" CacheCluster = [Tag]+  set newValue CacheCluster {..}+    = CacheCluster {tags = Prelude.pure newValue, ..}+instance Property "TransitEncryptionEnabled" CacheCluster where+  type PropertyType "TransitEncryptionEnabled" CacheCluster = Value Prelude.Bool+  set newValue CacheCluster {..}+    = CacheCluster+        {transitEncryptionEnabled = Prelude.pure newValue, ..}+instance Property "VpcSecurityGroupIds" CacheCluster where+  type PropertyType "VpcSecurityGroupIds" CacheCluster = ValueList Prelude.Text+  set newValue CacheCluster {..}+    = CacheCluster {vpcSecurityGroupIds = Prelude.pure newValue, ..}
+ gen/Stratosphere/ElastiCache/CacheCluster/CloudWatchLogsDestinationDetailsProperty.hs view
@@ -0,0 +1,34 @@+module Stratosphere.ElastiCache.CacheCluster.CloudWatchLogsDestinationDetailsProperty (+        CloudWatchLogsDestinationDetailsProperty(..),+        mkCloudWatchLogsDestinationDetailsProperty+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import Stratosphere.ResourceProperties+import Stratosphere.Value+data CloudWatchLogsDestinationDetailsProperty+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-cloudwatchlogsdestinationdetails.html>+    CloudWatchLogsDestinationDetailsProperty {haddock_workaround_ :: (),+                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-cloudwatchlogsdestinationdetails.html#cfn-elasticache-cachecluster-cloudwatchlogsdestinationdetails-loggroup>+                                              logGroup :: (Value Prelude.Text)}+  deriving stock (Prelude.Eq, Prelude.Show)+mkCloudWatchLogsDestinationDetailsProperty ::+  Value Prelude.Text -> CloudWatchLogsDestinationDetailsProperty+mkCloudWatchLogsDestinationDetailsProperty logGroup+  = CloudWatchLogsDestinationDetailsProperty+      {haddock_workaround_ = (), logGroup = logGroup}+instance ToResourceProperties CloudWatchLogsDestinationDetailsProperty where+  toResourceProperties CloudWatchLogsDestinationDetailsProperty {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::CacheCluster.CloudWatchLogsDestinationDetails",+         supportsTags = Prelude.False,+         properties = ["LogGroup" JSON..= logGroup]}+instance JSON.ToJSON CloudWatchLogsDestinationDetailsProperty where+  toJSON CloudWatchLogsDestinationDetailsProperty {..}+    = JSON.object ["LogGroup" JSON..= logGroup]+instance Property "LogGroup" CloudWatchLogsDestinationDetailsProperty where+  type PropertyType "LogGroup" CloudWatchLogsDestinationDetailsProperty = Value Prelude.Text+  set newValue CloudWatchLogsDestinationDetailsProperty {..}+    = CloudWatchLogsDestinationDetailsProperty+        {logGroup = newValue, ..}
+ gen/Stratosphere/ElastiCache/CacheCluster/CloudWatchLogsDestinationDetailsProperty.hs-boot view
@@ -0,0 +1,9 @@+module Stratosphere.ElastiCache.CacheCluster.CloudWatchLogsDestinationDetailsProperty where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.ResourceProperties+data CloudWatchLogsDestinationDetailsProperty :: Prelude.Type+instance ToResourceProperties CloudWatchLogsDestinationDetailsProperty+instance Prelude.Eq CloudWatchLogsDestinationDetailsProperty+instance Prelude.Show CloudWatchLogsDestinationDetailsProperty+instance JSON.ToJSON CloudWatchLogsDestinationDetailsProperty
+ gen/Stratosphere/ElastiCache/CacheCluster/DestinationDetailsProperty.hs view
@@ -0,0 +1,53 @@+module Stratosphere.ElastiCache.CacheCluster.DestinationDetailsProperty (+        module Exports, DestinationDetailsProperty(..),+        mkDestinationDetailsProperty+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import {-# SOURCE #-} Stratosphere.ElastiCache.CacheCluster.CloudWatchLogsDestinationDetailsProperty as Exports+import {-# SOURCE #-} Stratosphere.ElastiCache.CacheCluster.KinesisFirehoseDestinationDetailsProperty as Exports+import Stratosphere.ResourceProperties+data DestinationDetailsProperty+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-destinationdetails.html>+    DestinationDetailsProperty {haddock_workaround_ :: (),+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-destinationdetails.html#cfn-elasticache-cachecluster-destinationdetails-cloudwatchlogsdetails>+                                cloudWatchLogsDetails :: (Prelude.Maybe CloudWatchLogsDestinationDetailsProperty),+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-destinationdetails.html#cfn-elasticache-cachecluster-destinationdetails-kinesisfirehosedetails>+                                kinesisFirehoseDetails :: (Prelude.Maybe KinesisFirehoseDestinationDetailsProperty)}+  deriving stock (Prelude.Eq, Prelude.Show)+mkDestinationDetailsProperty :: DestinationDetailsProperty+mkDestinationDetailsProperty+  = DestinationDetailsProperty+      {haddock_workaround_ = (), cloudWatchLogsDetails = Prelude.Nothing,+       kinesisFirehoseDetails = Prelude.Nothing}+instance ToResourceProperties DestinationDetailsProperty where+  toResourceProperties DestinationDetailsProperty {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::CacheCluster.DestinationDetails",+         supportsTags = Prelude.False,+         properties = Prelude.fromList+                        (Prelude.catMaybes+                           [(JSON..=) "CloudWatchLogsDetails"+                              Prelude.<$> cloudWatchLogsDetails,+                            (JSON..=) "KinesisFirehoseDetails"+                              Prelude.<$> kinesisFirehoseDetails])}+instance JSON.ToJSON DestinationDetailsProperty where+  toJSON DestinationDetailsProperty {..}+    = JSON.object+        (Prelude.fromList+           (Prelude.catMaybes+              [(JSON..=) "CloudWatchLogsDetails"+                 Prelude.<$> cloudWatchLogsDetails,+               (JSON..=) "KinesisFirehoseDetails"+                 Prelude.<$> kinesisFirehoseDetails]))+instance Property "CloudWatchLogsDetails" DestinationDetailsProperty where+  type PropertyType "CloudWatchLogsDetails" DestinationDetailsProperty = CloudWatchLogsDestinationDetailsProperty+  set newValue DestinationDetailsProperty {..}+    = DestinationDetailsProperty+        {cloudWatchLogsDetails = Prelude.pure newValue, ..}+instance Property "KinesisFirehoseDetails" DestinationDetailsProperty where+  type PropertyType "KinesisFirehoseDetails" DestinationDetailsProperty = KinesisFirehoseDestinationDetailsProperty+  set newValue DestinationDetailsProperty {..}+    = DestinationDetailsProperty+        {kinesisFirehoseDetails = Prelude.pure newValue, ..}
+ gen/Stratosphere/ElastiCache/CacheCluster/DestinationDetailsProperty.hs-boot view
@@ -0,0 +1,9 @@+module Stratosphere.ElastiCache.CacheCluster.DestinationDetailsProperty where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.ResourceProperties+data DestinationDetailsProperty :: Prelude.Type+instance ToResourceProperties DestinationDetailsProperty+instance Prelude.Eq DestinationDetailsProperty+instance Prelude.Show DestinationDetailsProperty+instance JSON.ToJSON DestinationDetailsProperty
+ gen/Stratosphere/ElastiCache/CacheCluster/KinesisFirehoseDestinationDetailsProperty.hs view
@@ -0,0 +1,34 @@+module Stratosphere.ElastiCache.CacheCluster.KinesisFirehoseDestinationDetailsProperty (+        KinesisFirehoseDestinationDetailsProperty(..),+        mkKinesisFirehoseDestinationDetailsProperty+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import Stratosphere.ResourceProperties+import Stratosphere.Value+data KinesisFirehoseDestinationDetailsProperty+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-kinesisfirehosedestinationdetails.html>+    KinesisFirehoseDestinationDetailsProperty {haddock_workaround_ :: (),+                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-kinesisfirehosedestinationdetails.html#cfn-elasticache-cachecluster-kinesisfirehosedestinationdetails-deliverystream>+                                               deliveryStream :: (Value Prelude.Text)}+  deriving stock (Prelude.Eq, Prelude.Show)+mkKinesisFirehoseDestinationDetailsProperty ::+  Value Prelude.Text -> KinesisFirehoseDestinationDetailsProperty+mkKinesisFirehoseDestinationDetailsProperty deliveryStream+  = KinesisFirehoseDestinationDetailsProperty+      {haddock_workaround_ = (), deliveryStream = deliveryStream}+instance ToResourceProperties KinesisFirehoseDestinationDetailsProperty where+  toResourceProperties KinesisFirehoseDestinationDetailsProperty {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::CacheCluster.KinesisFirehoseDestinationDetails",+         supportsTags = Prelude.False,+         properties = ["DeliveryStream" JSON..= deliveryStream]}+instance JSON.ToJSON KinesisFirehoseDestinationDetailsProperty where+  toJSON KinesisFirehoseDestinationDetailsProperty {..}+    = JSON.object ["DeliveryStream" JSON..= deliveryStream]+instance Property "DeliveryStream" KinesisFirehoseDestinationDetailsProperty where+  type PropertyType "DeliveryStream" KinesisFirehoseDestinationDetailsProperty = Value Prelude.Text+  set newValue KinesisFirehoseDestinationDetailsProperty {..}+    = KinesisFirehoseDestinationDetailsProperty+        {deliveryStream = newValue, ..}
+ gen/Stratosphere/ElastiCache/CacheCluster/KinesisFirehoseDestinationDetailsProperty.hs-boot view
@@ -0,0 +1,9 @@+module Stratosphere.ElastiCache.CacheCluster.KinesisFirehoseDestinationDetailsProperty where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.ResourceProperties+data KinesisFirehoseDestinationDetailsProperty :: Prelude.Type+instance ToResourceProperties KinesisFirehoseDestinationDetailsProperty+instance Prelude.Eq KinesisFirehoseDestinationDetailsProperty+instance Prelude.Show KinesisFirehoseDestinationDetailsProperty+instance JSON.ToJSON KinesisFirehoseDestinationDetailsProperty
+ gen/Stratosphere/ElastiCache/CacheCluster/LogDeliveryConfigurationRequestProperty.hs view
@@ -0,0 +1,69 @@+module Stratosphere.ElastiCache.CacheCluster.LogDeliveryConfigurationRequestProperty (+        module Exports, LogDeliveryConfigurationRequestProperty(..),+        mkLogDeliveryConfigurationRequestProperty+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import {-# SOURCE #-} Stratosphere.ElastiCache.CacheCluster.DestinationDetailsProperty as Exports+import Stratosphere.ResourceProperties+import Stratosphere.Value+data LogDeliveryConfigurationRequestProperty+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-logdeliveryconfigurationrequest.html>+    LogDeliveryConfigurationRequestProperty {haddock_workaround_ :: (),+                                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-logdeliveryconfigurationrequest.html#cfn-elasticache-cachecluster-logdeliveryconfigurationrequest-destinationdetails>+                                             destinationDetails :: DestinationDetailsProperty,+                                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-logdeliveryconfigurationrequest.html#cfn-elasticache-cachecluster-logdeliveryconfigurationrequest-destinationtype>+                                             destinationType :: (Value Prelude.Text),+                                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-logdeliveryconfigurationrequest.html#cfn-elasticache-cachecluster-logdeliveryconfigurationrequest-logformat>+                                             logFormat :: (Value Prelude.Text),+                                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-logdeliveryconfigurationrequest.html#cfn-elasticache-cachecluster-logdeliveryconfigurationrequest-logtype>+                                             logType :: (Value Prelude.Text)}+  deriving stock (Prelude.Eq, Prelude.Show)+mkLogDeliveryConfigurationRequestProperty ::+  DestinationDetailsProperty+  -> Value Prelude.Text+     -> Value Prelude.Text+        -> Value Prelude.Text -> LogDeliveryConfigurationRequestProperty+mkLogDeliveryConfigurationRequestProperty+  destinationDetails+  destinationType+  logFormat+  logType+  = LogDeliveryConfigurationRequestProperty+      {haddock_workaround_ = (), destinationDetails = destinationDetails,+       destinationType = destinationType, logFormat = logFormat,+       logType = logType}+instance ToResourceProperties LogDeliveryConfigurationRequestProperty where+  toResourceProperties LogDeliveryConfigurationRequestProperty {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::CacheCluster.LogDeliveryConfigurationRequest",+         supportsTags = Prelude.False,+         properties = ["DestinationDetails" JSON..= destinationDetails,+                       "DestinationType" JSON..= destinationType,+                       "LogFormat" JSON..= logFormat, "LogType" JSON..= logType]}+instance JSON.ToJSON LogDeliveryConfigurationRequestProperty where+  toJSON LogDeliveryConfigurationRequestProperty {..}+    = JSON.object+        ["DestinationDetails" JSON..= destinationDetails,+         "DestinationType" JSON..= destinationType,+         "LogFormat" JSON..= logFormat, "LogType" JSON..= logType]+instance Property "DestinationDetails" LogDeliveryConfigurationRequestProperty where+  type PropertyType "DestinationDetails" LogDeliveryConfigurationRequestProperty = DestinationDetailsProperty+  set newValue LogDeliveryConfigurationRequestProperty {..}+    = LogDeliveryConfigurationRequestProperty+        {destinationDetails = newValue, ..}+instance Property "DestinationType" LogDeliveryConfigurationRequestProperty where+  type PropertyType "DestinationType" LogDeliveryConfigurationRequestProperty = Value Prelude.Text+  set newValue LogDeliveryConfigurationRequestProperty {..}+    = LogDeliveryConfigurationRequestProperty+        {destinationType = newValue, ..}+instance Property "LogFormat" LogDeliveryConfigurationRequestProperty where+  type PropertyType "LogFormat" LogDeliveryConfigurationRequestProperty = Value Prelude.Text+  set newValue LogDeliveryConfigurationRequestProperty {..}+    = LogDeliveryConfigurationRequestProperty+        {logFormat = newValue, ..}+instance Property "LogType" LogDeliveryConfigurationRequestProperty where+  type PropertyType "LogType" LogDeliveryConfigurationRequestProperty = Value Prelude.Text+  set newValue LogDeliveryConfigurationRequestProperty {..}+    = LogDeliveryConfigurationRequestProperty {logType = newValue, ..}
+ gen/Stratosphere/ElastiCache/CacheCluster/LogDeliveryConfigurationRequestProperty.hs-boot view
@@ -0,0 +1,9 @@+module Stratosphere.ElastiCache.CacheCluster.LogDeliveryConfigurationRequestProperty where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.ResourceProperties+data LogDeliveryConfigurationRequestProperty :: Prelude.Type+instance ToResourceProperties LogDeliveryConfigurationRequestProperty+instance Prelude.Eq LogDeliveryConfigurationRequestProperty+instance Prelude.Show LogDeliveryConfigurationRequestProperty+instance JSON.ToJSON LogDeliveryConfigurationRequestProperty
+ gen/Stratosphere/ElastiCache/GlobalReplicationGroup.hs view
@@ -0,0 +1,140 @@+module Stratosphere.ElastiCache.GlobalReplicationGroup (+        module Exports, GlobalReplicationGroup(..),+        mkGlobalReplicationGroup+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import {-# SOURCE #-} Stratosphere.ElastiCache.GlobalReplicationGroup.GlobalReplicationGroupMemberProperty as Exports+import {-# SOURCE #-} Stratosphere.ElastiCache.GlobalReplicationGroup.RegionalConfigurationProperty as Exports+import Stratosphere.ResourceProperties+import Stratosphere.Value+data GlobalReplicationGroup+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html>+    GlobalReplicationGroup {haddock_workaround_ :: (),+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html#cfn-elasticache-globalreplicationgroup-automaticfailoverenabled>+                            automaticFailoverEnabled :: (Prelude.Maybe (Value Prelude.Bool)),+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html#cfn-elasticache-globalreplicationgroup-cachenodetype>+                            cacheNodeType :: (Prelude.Maybe (Value Prelude.Text)),+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html#cfn-elasticache-globalreplicationgroup-cacheparametergroupname>+                            cacheParameterGroupName :: (Prelude.Maybe (Value Prelude.Text)),+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html#cfn-elasticache-globalreplicationgroup-engine>+                            engine :: (Prelude.Maybe (Value Prelude.Text)),+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html#cfn-elasticache-globalreplicationgroup-engineversion>+                            engineVersion :: (Prelude.Maybe (Value Prelude.Text)),+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html#cfn-elasticache-globalreplicationgroup-globalnodegroupcount>+                            globalNodeGroupCount :: (Prelude.Maybe (Value Prelude.Integer)),+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html#cfn-elasticache-globalreplicationgroup-globalreplicationgroupdescription>+                            globalReplicationGroupDescription :: (Prelude.Maybe (Value Prelude.Text)),+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html#cfn-elasticache-globalreplicationgroup-globalreplicationgroupidsuffix>+                            globalReplicationGroupIdSuffix :: (Prelude.Maybe (Value Prelude.Text)),+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html#cfn-elasticache-globalreplicationgroup-members>+                            members :: [GlobalReplicationGroupMemberProperty],+                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html#cfn-elasticache-globalreplicationgroup-regionalconfigurations>+                            regionalConfigurations :: (Prelude.Maybe [RegionalConfigurationProperty])}+  deriving stock (Prelude.Eq, Prelude.Show)+mkGlobalReplicationGroup ::+  [GlobalReplicationGroupMemberProperty] -> GlobalReplicationGroup+mkGlobalReplicationGroup members+  = GlobalReplicationGroup+      {haddock_workaround_ = (), members = members,+       automaticFailoverEnabled = Prelude.Nothing,+       cacheNodeType = Prelude.Nothing,+       cacheParameterGroupName = Prelude.Nothing,+       engine = Prelude.Nothing, engineVersion = Prelude.Nothing,+       globalNodeGroupCount = Prelude.Nothing,+       globalReplicationGroupDescription = Prelude.Nothing,+       globalReplicationGroupIdSuffix = Prelude.Nothing,+       regionalConfigurations = Prelude.Nothing}+instance ToResourceProperties GlobalReplicationGroup where+  toResourceProperties GlobalReplicationGroup {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::GlobalReplicationGroup",+         supportsTags = Prelude.False,+         properties = Prelude.fromList+                        ((Prelude.<>)+                           ["Members" JSON..= members]+                           (Prelude.catMaybes+                              [(JSON..=) "AutomaticFailoverEnabled"+                                 Prelude.<$> automaticFailoverEnabled,+                               (JSON..=) "CacheNodeType" Prelude.<$> cacheNodeType,+                               (JSON..=) "CacheParameterGroupName"+                                 Prelude.<$> cacheParameterGroupName,+                               (JSON..=) "Engine" Prelude.<$> engine,+                               (JSON..=) "EngineVersion" Prelude.<$> engineVersion,+                               (JSON..=) "GlobalNodeGroupCount" Prelude.<$> globalNodeGroupCount,+                               (JSON..=) "GlobalReplicationGroupDescription"+                                 Prelude.<$> globalReplicationGroupDescription,+                               (JSON..=) "GlobalReplicationGroupIdSuffix"+                                 Prelude.<$> globalReplicationGroupIdSuffix,+                               (JSON..=) "RegionalConfigurations"+                                 Prelude.<$> regionalConfigurations]))}+instance JSON.ToJSON GlobalReplicationGroup where+  toJSON GlobalReplicationGroup {..}+    = JSON.object+        (Prelude.fromList+           ((Prelude.<>)+              ["Members" JSON..= members]+              (Prelude.catMaybes+                 [(JSON..=) "AutomaticFailoverEnabled"+                    Prelude.<$> automaticFailoverEnabled,+                  (JSON..=) "CacheNodeType" Prelude.<$> cacheNodeType,+                  (JSON..=) "CacheParameterGroupName"+                    Prelude.<$> cacheParameterGroupName,+                  (JSON..=) "Engine" Prelude.<$> engine,+                  (JSON..=) "EngineVersion" Prelude.<$> engineVersion,+                  (JSON..=) "GlobalNodeGroupCount" Prelude.<$> globalNodeGroupCount,+                  (JSON..=) "GlobalReplicationGroupDescription"+                    Prelude.<$> globalReplicationGroupDescription,+                  (JSON..=) "GlobalReplicationGroupIdSuffix"+                    Prelude.<$> globalReplicationGroupIdSuffix,+                  (JSON..=) "RegionalConfigurations"+                    Prelude.<$> regionalConfigurations])))+instance Property "AutomaticFailoverEnabled" GlobalReplicationGroup where+  type PropertyType "AutomaticFailoverEnabled" GlobalReplicationGroup = Value Prelude.Bool+  set newValue GlobalReplicationGroup {..}+    = GlobalReplicationGroup+        {automaticFailoverEnabled = Prelude.pure newValue, ..}+instance Property "CacheNodeType" GlobalReplicationGroup where+  type PropertyType "CacheNodeType" GlobalReplicationGroup = Value Prelude.Text+  set newValue GlobalReplicationGroup {..}+    = GlobalReplicationGroup+        {cacheNodeType = Prelude.pure newValue, ..}+instance Property "CacheParameterGroupName" GlobalReplicationGroup where+  type PropertyType "CacheParameterGroupName" GlobalReplicationGroup = Value Prelude.Text+  set newValue GlobalReplicationGroup {..}+    = GlobalReplicationGroup+        {cacheParameterGroupName = Prelude.pure newValue, ..}+instance Property "Engine" GlobalReplicationGroup where+  type PropertyType "Engine" GlobalReplicationGroup = Value Prelude.Text+  set newValue GlobalReplicationGroup {..}+    = GlobalReplicationGroup {engine = Prelude.pure newValue, ..}+instance Property "EngineVersion" GlobalReplicationGroup where+  type PropertyType "EngineVersion" GlobalReplicationGroup = Value Prelude.Text+  set newValue GlobalReplicationGroup {..}+    = GlobalReplicationGroup+        {engineVersion = Prelude.pure newValue, ..}+instance Property "GlobalNodeGroupCount" GlobalReplicationGroup where+  type PropertyType "GlobalNodeGroupCount" GlobalReplicationGroup = Value Prelude.Integer+  set newValue GlobalReplicationGroup {..}+    = GlobalReplicationGroup+        {globalNodeGroupCount = Prelude.pure newValue, ..}+instance Property "GlobalReplicationGroupDescription" GlobalReplicationGroup where+  type PropertyType "GlobalReplicationGroupDescription" GlobalReplicationGroup = Value Prelude.Text+  set newValue GlobalReplicationGroup {..}+    = GlobalReplicationGroup+        {globalReplicationGroupDescription = Prelude.pure newValue, ..}+instance Property "GlobalReplicationGroupIdSuffix" GlobalReplicationGroup where+  type PropertyType "GlobalReplicationGroupIdSuffix" GlobalReplicationGroup = Value Prelude.Text+  set newValue GlobalReplicationGroup {..}+    = GlobalReplicationGroup+        {globalReplicationGroupIdSuffix = Prelude.pure newValue, ..}+instance Property "Members" GlobalReplicationGroup where+  type PropertyType "Members" GlobalReplicationGroup = [GlobalReplicationGroupMemberProperty]+  set newValue GlobalReplicationGroup {..}+    = GlobalReplicationGroup {members = newValue, ..}+instance Property "RegionalConfigurations" GlobalReplicationGroup where+  type PropertyType "RegionalConfigurations" GlobalReplicationGroup = [RegionalConfigurationProperty]+  set newValue GlobalReplicationGroup {..}+    = GlobalReplicationGroup+        {regionalConfigurations = Prelude.pure newValue, ..}
+ gen/Stratosphere/ElastiCache/GlobalReplicationGroup/GlobalReplicationGroupMemberProperty.hs view
@@ -0,0 +1,60 @@+module Stratosphere.ElastiCache.GlobalReplicationGroup.GlobalReplicationGroupMemberProperty (+        GlobalReplicationGroupMemberProperty(..),+        mkGlobalReplicationGroupMemberProperty+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import Stratosphere.ResourceProperties+import Stratosphere.Value+data GlobalReplicationGroupMemberProperty+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-globalreplicationgroupmember.html>+    GlobalReplicationGroupMemberProperty {haddock_workaround_ :: (),+                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-globalreplicationgroupmember.html#cfn-elasticache-globalreplicationgroup-globalreplicationgroupmember-replicationgroupid>+                                          replicationGroupId :: (Prelude.Maybe (Value Prelude.Text)),+                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-globalreplicationgroupmember.html#cfn-elasticache-globalreplicationgroup-globalreplicationgroupmember-replicationgroupregion>+                                          replicationGroupRegion :: (Prelude.Maybe (Value Prelude.Text)),+                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-globalreplicationgroupmember.html#cfn-elasticache-globalreplicationgroup-globalreplicationgroupmember-role>+                                          role :: (Prelude.Maybe (Value Prelude.Text))}+  deriving stock (Prelude.Eq, Prelude.Show)+mkGlobalReplicationGroupMemberProperty ::+  GlobalReplicationGroupMemberProperty+mkGlobalReplicationGroupMemberProperty+  = GlobalReplicationGroupMemberProperty+      {haddock_workaround_ = (), replicationGroupId = Prelude.Nothing,+       replicationGroupRegion = Prelude.Nothing, role = Prelude.Nothing}+instance ToResourceProperties GlobalReplicationGroupMemberProperty where+  toResourceProperties GlobalReplicationGroupMemberProperty {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::GlobalReplicationGroup.GlobalReplicationGroupMember",+         supportsTags = Prelude.False,+         properties = Prelude.fromList+                        (Prelude.catMaybes+                           [(JSON..=) "ReplicationGroupId" Prelude.<$> replicationGroupId,+                            (JSON..=) "ReplicationGroupRegion"+                              Prelude.<$> replicationGroupRegion,+                            (JSON..=) "Role" Prelude.<$> role])}+instance JSON.ToJSON GlobalReplicationGroupMemberProperty where+  toJSON GlobalReplicationGroupMemberProperty {..}+    = JSON.object+        (Prelude.fromList+           (Prelude.catMaybes+              [(JSON..=) "ReplicationGroupId" Prelude.<$> replicationGroupId,+               (JSON..=) "ReplicationGroupRegion"+                 Prelude.<$> replicationGroupRegion,+               (JSON..=) "Role" Prelude.<$> role]))+instance Property "ReplicationGroupId" GlobalReplicationGroupMemberProperty where+  type PropertyType "ReplicationGroupId" GlobalReplicationGroupMemberProperty = Value Prelude.Text+  set newValue GlobalReplicationGroupMemberProperty {..}+    = GlobalReplicationGroupMemberProperty+        {replicationGroupId = Prelude.pure newValue, ..}+instance Property "ReplicationGroupRegion" GlobalReplicationGroupMemberProperty where+  type PropertyType "ReplicationGroupRegion" GlobalReplicationGroupMemberProperty = Value Prelude.Text+  set newValue GlobalReplicationGroupMemberProperty {..}+    = GlobalReplicationGroupMemberProperty+        {replicationGroupRegion = Prelude.pure newValue, ..}+instance Property "Role" GlobalReplicationGroupMemberProperty where+  type PropertyType "Role" GlobalReplicationGroupMemberProperty = Value Prelude.Text+  set newValue GlobalReplicationGroupMemberProperty {..}+    = GlobalReplicationGroupMemberProperty+        {role = Prelude.pure newValue, ..}
+ gen/Stratosphere/ElastiCache/GlobalReplicationGroup/GlobalReplicationGroupMemberProperty.hs-boot view
@@ -0,0 +1,9 @@+module Stratosphere.ElastiCache.GlobalReplicationGroup.GlobalReplicationGroupMemberProperty where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.ResourceProperties+data GlobalReplicationGroupMemberProperty :: Prelude.Type+instance ToResourceProperties GlobalReplicationGroupMemberProperty+instance Prelude.Eq GlobalReplicationGroupMemberProperty+instance Prelude.Show GlobalReplicationGroupMemberProperty+instance JSON.ToJSON GlobalReplicationGroupMemberProperty
+ gen/Stratosphere/ElastiCache/GlobalReplicationGroup/RegionalConfigurationProperty.hs view
@@ -0,0 +1,63 @@+module Stratosphere.ElastiCache.GlobalReplicationGroup.RegionalConfigurationProperty (+        module Exports, RegionalConfigurationProperty(..),+        mkRegionalConfigurationProperty+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import {-# SOURCE #-} Stratosphere.ElastiCache.GlobalReplicationGroup.ReshardingConfigurationProperty as Exports+import Stratosphere.ResourceProperties+import Stratosphere.Value+data RegionalConfigurationProperty+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-regionalconfiguration.html>+    RegionalConfigurationProperty {haddock_workaround_ :: (),+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-regionalconfiguration.html#cfn-elasticache-globalreplicationgroup-regionalconfiguration-replicationgroupid>+                                   replicationGroupId :: (Prelude.Maybe (Value Prelude.Text)),+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-regionalconfiguration.html#cfn-elasticache-globalreplicationgroup-regionalconfiguration-replicationgroupregion>+                                   replicationGroupRegion :: (Prelude.Maybe (Value Prelude.Text)),+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-regionalconfiguration.html#cfn-elasticache-globalreplicationgroup-regionalconfiguration-reshardingconfigurations>+                                   reshardingConfigurations :: (Prelude.Maybe [ReshardingConfigurationProperty])}+  deriving stock (Prelude.Eq, Prelude.Show)+mkRegionalConfigurationProperty :: RegionalConfigurationProperty+mkRegionalConfigurationProperty+  = RegionalConfigurationProperty+      {haddock_workaround_ = (), replicationGroupId = Prelude.Nothing,+       replicationGroupRegion = Prelude.Nothing,+       reshardingConfigurations = Prelude.Nothing}+instance ToResourceProperties RegionalConfigurationProperty where+  toResourceProperties RegionalConfigurationProperty {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::GlobalReplicationGroup.RegionalConfiguration",+         supportsTags = Prelude.False,+         properties = Prelude.fromList+                        (Prelude.catMaybes+                           [(JSON..=) "ReplicationGroupId" Prelude.<$> replicationGroupId,+                            (JSON..=) "ReplicationGroupRegion"+                              Prelude.<$> replicationGroupRegion,+                            (JSON..=) "ReshardingConfigurations"+                              Prelude.<$> reshardingConfigurations])}+instance JSON.ToJSON RegionalConfigurationProperty where+  toJSON RegionalConfigurationProperty {..}+    = JSON.object+        (Prelude.fromList+           (Prelude.catMaybes+              [(JSON..=) "ReplicationGroupId" Prelude.<$> replicationGroupId,+               (JSON..=) "ReplicationGroupRegion"+                 Prelude.<$> replicationGroupRegion,+               (JSON..=) "ReshardingConfigurations"+                 Prelude.<$> reshardingConfigurations]))+instance Property "ReplicationGroupId" RegionalConfigurationProperty where+  type PropertyType "ReplicationGroupId" RegionalConfigurationProperty = Value Prelude.Text+  set newValue RegionalConfigurationProperty {..}+    = RegionalConfigurationProperty+        {replicationGroupId = Prelude.pure newValue, ..}+instance Property "ReplicationGroupRegion" RegionalConfigurationProperty where+  type PropertyType "ReplicationGroupRegion" RegionalConfigurationProperty = Value Prelude.Text+  set newValue RegionalConfigurationProperty {..}+    = RegionalConfigurationProperty+        {replicationGroupRegion = Prelude.pure newValue, ..}+instance Property "ReshardingConfigurations" RegionalConfigurationProperty where+  type PropertyType "ReshardingConfigurations" RegionalConfigurationProperty = [ReshardingConfigurationProperty]+  set newValue RegionalConfigurationProperty {..}+    = RegionalConfigurationProperty+        {reshardingConfigurations = Prelude.pure newValue, ..}
+ gen/Stratosphere/ElastiCache/GlobalReplicationGroup/RegionalConfigurationProperty.hs-boot view
@@ -0,0 +1,9 @@+module Stratosphere.ElastiCache.GlobalReplicationGroup.RegionalConfigurationProperty where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.ResourceProperties+data RegionalConfigurationProperty :: Prelude.Type+instance ToResourceProperties RegionalConfigurationProperty+instance Prelude.Eq RegionalConfigurationProperty+instance Prelude.Show RegionalConfigurationProperty+instance JSON.ToJSON RegionalConfigurationProperty
+ gen/Stratosphere/ElastiCache/GlobalReplicationGroup/ReshardingConfigurationProperty.hs view
@@ -0,0 +1,51 @@+module Stratosphere.ElastiCache.GlobalReplicationGroup.ReshardingConfigurationProperty (+        ReshardingConfigurationProperty(..),+        mkReshardingConfigurationProperty+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import Stratosphere.ResourceProperties+import Stratosphere.Value+data ReshardingConfigurationProperty+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-reshardingconfiguration.html>+    ReshardingConfigurationProperty {haddock_workaround_ :: (),+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-reshardingconfiguration.html#cfn-elasticache-globalreplicationgroup-reshardingconfiguration-nodegroupid>+                                     nodeGroupId :: (Prelude.Maybe (Value Prelude.Text)),+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-reshardingconfiguration.html#cfn-elasticache-globalreplicationgroup-reshardingconfiguration-preferredavailabilityzones>+                                     preferredAvailabilityZones :: (Prelude.Maybe (ValueList Prelude.Text))}+  deriving stock (Prelude.Eq, Prelude.Show)+mkReshardingConfigurationProperty ::+  ReshardingConfigurationProperty+mkReshardingConfigurationProperty+  = ReshardingConfigurationProperty+      {haddock_workaround_ = (), nodeGroupId = Prelude.Nothing,+       preferredAvailabilityZones = Prelude.Nothing}+instance ToResourceProperties ReshardingConfigurationProperty where+  toResourceProperties ReshardingConfigurationProperty {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::GlobalReplicationGroup.ReshardingConfiguration",+         supportsTags = Prelude.False,+         properties = Prelude.fromList+                        (Prelude.catMaybes+                           [(JSON..=) "NodeGroupId" Prelude.<$> nodeGroupId,+                            (JSON..=) "PreferredAvailabilityZones"+                              Prelude.<$> preferredAvailabilityZones])}+instance JSON.ToJSON ReshardingConfigurationProperty where+  toJSON ReshardingConfigurationProperty {..}+    = JSON.object+        (Prelude.fromList+           (Prelude.catMaybes+              [(JSON..=) "NodeGroupId" Prelude.<$> nodeGroupId,+               (JSON..=) "PreferredAvailabilityZones"+                 Prelude.<$> preferredAvailabilityZones]))+instance Property "NodeGroupId" ReshardingConfigurationProperty where+  type PropertyType "NodeGroupId" ReshardingConfigurationProperty = Value Prelude.Text+  set newValue ReshardingConfigurationProperty {..}+    = ReshardingConfigurationProperty+        {nodeGroupId = Prelude.pure newValue, ..}+instance Property "PreferredAvailabilityZones" ReshardingConfigurationProperty where+  type PropertyType "PreferredAvailabilityZones" ReshardingConfigurationProperty = ValueList Prelude.Text+  set newValue ReshardingConfigurationProperty {..}+    = ReshardingConfigurationProperty+        {preferredAvailabilityZones = Prelude.pure newValue, ..}
+ gen/Stratosphere/ElastiCache/GlobalReplicationGroup/ReshardingConfigurationProperty.hs-boot view
@@ -0,0 +1,9 @@+module Stratosphere.ElastiCache.GlobalReplicationGroup.ReshardingConfigurationProperty where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.ResourceProperties+data ReshardingConfigurationProperty :: Prelude.Type+instance ToResourceProperties ReshardingConfigurationProperty+instance Prelude.Eq ReshardingConfigurationProperty+instance Prelude.Show ReshardingConfigurationProperty+instance JSON.ToJSON ReshardingConfigurationProperty
+ gen/Stratosphere/ElastiCache/ParameterGroup.hs view
@@ -0,0 +1,67 @@+module Stratosphere.ElastiCache.ParameterGroup (+        ParameterGroup(..), mkParameterGroup+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import Stratosphere.ResourceProperties+import Stratosphere.Tag+import Stratosphere.Value+data ParameterGroup+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-parametergroup.html>+    ParameterGroup {haddock_workaround_ :: (),+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-parametergroup.html#cfn-elasticache-parametergroup-cacheparametergroupfamily>+                    cacheParameterGroupFamily :: (Value Prelude.Text),+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-parametergroup.html#cfn-elasticache-parametergroup-description>+                    description :: (Value Prelude.Text),+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-parametergroup.html#cfn-elasticache-parametergroup-properties>+                    properties :: (Prelude.Maybe (Prelude.Map Prelude.Text (Value Prelude.Text))),+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-parametergroup.html#cfn-elasticache-parametergroup-tags>+                    tags :: (Prelude.Maybe [Tag])}+  deriving stock (Prelude.Eq, Prelude.Show)+mkParameterGroup ::+  Value Prelude.Text -> Value Prelude.Text -> ParameterGroup+mkParameterGroup cacheParameterGroupFamily description+  = ParameterGroup+      {haddock_workaround_ = (),+       cacheParameterGroupFamily = cacheParameterGroupFamily,+       description = description, properties = Prelude.Nothing,+       tags = Prelude.Nothing}+instance ToResourceProperties ParameterGroup where+  toResourceProperties ParameterGroup {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::ParameterGroup",+         supportsTags = Prelude.True,+         properties = Prelude.fromList+                        ((Prelude.<>)+                           ["CacheParameterGroupFamily" JSON..= cacheParameterGroupFamily,+                            "Description" JSON..= description]+                           (Prelude.catMaybes+                              [(JSON..=) "Properties" Prelude.<$> properties,+                               (JSON..=) "Tags" Prelude.<$> tags]))}+instance JSON.ToJSON ParameterGroup where+  toJSON ParameterGroup {..}+    = JSON.object+        (Prelude.fromList+           ((Prelude.<>)+              ["CacheParameterGroupFamily" JSON..= cacheParameterGroupFamily,+               "Description" JSON..= description]+              (Prelude.catMaybes+                 [(JSON..=) "Properties" Prelude.<$> properties,+                  (JSON..=) "Tags" Prelude.<$> tags])))+instance Property "CacheParameterGroupFamily" ParameterGroup where+  type PropertyType "CacheParameterGroupFamily" ParameterGroup = Value Prelude.Text+  set newValue ParameterGroup {..}+    = ParameterGroup {cacheParameterGroupFamily = newValue, ..}+instance Property "Description" ParameterGroup where+  type PropertyType "Description" ParameterGroup = Value Prelude.Text+  set newValue ParameterGroup {..}+    = ParameterGroup {description = newValue, ..}+instance Property "Properties" ParameterGroup where+  type PropertyType "Properties" ParameterGroup = Prelude.Map Prelude.Text (Value Prelude.Text)+  set newValue ParameterGroup {..}+    = ParameterGroup {properties = Prelude.pure newValue, ..}+instance Property "Tags" ParameterGroup where+  type PropertyType "Tags" ParameterGroup = [Tag]+  set newValue ParameterGroup {..}+    = ParameterGroup {tags = Prelude.pure newValue, ..}
+ gen/Stratosphere/ElastiCache/ReplicationGroup.hs view
@@ -0,0 +1,423 @@+module Stratosphere.ElastiCache.ReplicationGroup (+        module Exports, ReplicationGroup(..), mkReplicationGroup+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import {-# SOURCE #-} Stratosphere.ElastiCache.ReplicationGroup.LogDeliveryConfigurationRequestProperty as Exports+import {-# SOURCE #-} Stratosphere.ElastiCache.ReplicationGroup.NodeGroupConfigurationProperty as Exports+import Stratosphere.ResourceProperties+import Stratosphere.Tag+import Stratosphere.Value+data ReplicationGroup+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html>+    ReplicationGroup {haddock_workaround_ :: (),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-atrestencryptionenabled>+                      atRestEncryptionEnabled :: (Prelude.Maybe (Value Prelude.Bool)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-authtoken>+                      authToken :: (Prelude.Maybe (Value Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-autominorversionupgrade>+                      autoMinorVersionUpgrade :: (Prelude.Maybe (Value Prelude.Bool)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-automaticfailoverenabled>+                      automaticFailoverEnabled :: (Prelude.Maybe (Value Prelude.Bool)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-cachenodetype>+                      cacheNodeType :: (Prelude.Maybe (Value Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-cacheparametergroupname>+                      cacheParameterGroupName :: (Prelude.Maybe (Value Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-cachesecuritygroupnames>+                      cacheSecurityGroupNames :: (Prelude.Maybe (ValueList Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-cachesubnetgroupname>+                      cacheSubnetGroupName :: (Prelude.Maybe (Value Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-clustermode>+                      clusterMode :: (Prelude.Maybe (Value Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-datatieringenabled>+                      dataTieringEnabled :: (Prelude.Maybe (Value Prelude.Bool)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-engine>+                      engine :: (Prelude.Maybe (Value Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-engineversion>+                      engineVersion :: (Prelude.Maybe (Value Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-globalreplicationgroupid>+                      globalReplicationGroupId :: (Prelude.Maybe (Value Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-ipdiscovery>+                      ipDiscovery :: (Prelude.Maybe (Value Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-kmskeyid>+                      kmsKeyId :: (Prelude.Maybe (Value Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-logdeliveryconfigurations>+                      logDeliveryConfigurations :: (Prelude.Maybe [LogDeliveryConfigurationRequestProperty]),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-multiazenabled>+                      multiAZEnabled :: (Prelude.Maybe (Value Prelude.Bool)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-networktype>+                      networkType :: (Prelude.Maybe (Value Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-nodegroupconfiguration>+                      nodeGroupConfiguration :: (Prelude.Maybe [NodeGroupConfigurationProperty]),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-notificationtopicarn>+                      notificationTopicArn :: (Prelude.Maybe (Value Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-numcacheclusters>+                      numCacheClusters :: (Prelude.Maybe (Value Prelude.Integer)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-numnodegroups>+                      numNodeGroups :: (Prelude.Maybe (Value Prelude.Integer)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-port>+                      port :: (Prelude.Maybe (Value Prelude.Integer)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-preferredcacheclusterazs>+                      preferredCacheClusterAZs :: (Prelude.Maybe (ValueList Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-preferredmaintenancewindow>+                      preferredMaintenanceWindow :: (Prelude.Maybe (Value Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-primaryclusterid>+                      primaryClusterId :: (Prelude.Maybe (Value Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-replicaspernodegroup>+                      replicasPerNodeGroup :: (Prelude.Maybe (Value Prelude.Integer)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-replicationgroupdescription>+                      replicationGroupDescription :: (Value Prelude.Text),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-replicationgroupid>+                      replicationGroupId :: (Prelude.Maybe (Value Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-securitygroupids>+                      securityGroupIds :: (Prelude.Maybe (ValueList Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-snapshotarns>+                      snapshotArns :: (Prelude.Maybe (ValueList Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-snapshotname>+                      snapshotName :: (Prelude.Maybe (Value Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-snapshotretentionlimit>+                      snapshotRetentionLimit :: (Prelude.Maybe (Value Prelude.Integer)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-snapshotwindow>+                      snapshotWindow :: (Prelude.Maybe (Value Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-snapshottingclusterid>+                      snapshottingClusterId :: (Prelude.Maybe (Value Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-tags>+                      tags :: (Prelude.Maybe [Tag]),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-transitencryptionenabled>+                      transitEncryptionEnabled :: (Prelude.Maybe (Value Prelude.Bool)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-transitencryptionmode>+                      transitEncryptionMode :: (Prelude.Maybe (Value Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-usergroupids>+                      userGroupIds :: (Prelude.Maybe (ValueList Prelude.Text))}+  deriving stock (Prelude.Eq, Prelude.Show)+mkReplicationGroup :: Value Prelude.Text -> ReplicationGroup+mkReplicationGroup replicationGroupDescription+  = ReplicationGroup+      {haddock_workaround_ = (),+       replicationGroupDescription = replicationGroupDescription,+       atRestEncryptionEnabled = Prelude.Nothing,+       authToken = Prelude.Nothing,+       autoMinorVersionUpgrade = Prelude.Nothing,+       automaticFailoverEnabled = Prelude.Nothing,+       cacheNodeType = Prelude.Nothing,+       cacheParameterGroupName = Prelude.Nothing,+       cacheSecurityGroupNames = Prelude.Nothing,+       cacheSubnetGroupName = Prelude.Nothing,+       clusterMode = Prelude.Nothing,+       dataTieringEnabled = Prelude.Nothing, engine = Prelude.Nothing,+       engineVersion = Prelude.Nothing,+       globalReplicationGroupId = Prelude.Nothing,+       ipDiscovery = Prelude.Nothing, kmsKeyId = Prelude.Nothing,+       logDeliveryConfigurations = Prelude.Nothing,+       multiAZEnabled = Prelude.Nothing, networkType = Prelude.Nothing,+       nodeGroupConfiguration = Prelude.Nothing,+       notificationTopicArn = Prelude.Nothing,+       numCacheClusters = Prelude.Nothing,+       numNodeGroups = Prelude.Nothing, port = Prelude.Nothing,+       preferredCacheClusterAZs = Prelude.Nothing,+       preferredMaintenanceWindow = Prelude.Nothing,+       primaryClusterId = Prelude.Nothing,+       replicasPerNodeGroup = Prelude.Nothing,+       replicationGroupId = Prelude.Nothing,+       securityGroupIds = Prelude.Nothing, snapshotArns = Prelude.Nothing,+       snapshotName = Prelude.Nothing,+       snapshotRetentionLimit = Prelude.Nothing,+       snapshotWindow = Prelude.Nothing,+       snapshottingClusterId = Prelude.Nothing, tags = Prelude.Nothing,+       transitEncryptionEnabled = Prelude.Nothing,+       transitEncryptionMode = Prelude.Nothing,+       userGroupIds = Prelude.Nothing}+instance ToResourceProperties ReplicationGroup where+  toResourceProperties ReplicationGroup {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::ReplicationGroup",+         supportsTags = Prelude.True,+         properties = Prelude.fromList+                        ((Prelude.<>)+                           ["ReplicationGroupDescription" JSON..= replicationGroupDescription]+                           (Prelude.catMaybes+                              [(JSON..=) "AtRestEncryptionEnabled"+                                 Prelude.<$> atRestEncryptionEnabled,+                               (JSON..=) "AuthToken" Prelude.<$> authToken,+                               (JSON..=) "AutoMinorVersionUpgrade"+                                 Prelude.<$> autoMinorVersionUpgrade,+                               (JSON..=) "AutomaticFailoverEnabled"+                                 Prelude.<$> automaticFailoverEnabled,+                               (JSON..=) "CacheNodeType" Prelude.<$> cacheNodeType,+                               (JSON..=) "CacheParameterGroupName"+                                 Prelude.<$> cacheParameterGroupName,+                               (JSON..=) "CacheSecurityGroupNames"+                                 Prelude.<$> cacheSecurityGroupNames,+                               (JSON..=) "CacheSubnetGroupName" Prelude.<$> cacheSubnetGroupName,+                               (JSON..=) "ClusterMode" Prelude.<$> clusterMode,+                               (JSON..=) "DataTieringEnabled" Prelude.<$> dataTieringEnabled,+                               (JSON..=) "Engine" Prelude.<$> engine,+                               (JSON..=) "EngineVersion" Prelude.<$> engineVersion,+                               (JSON..=) "GlobalReplicationGroupId"+                                 Prelude.<$> globalReplicationGroupId,+                               (JSON..=) "IpDiscovery" Prelude.<$> ipDiscovery,+                               (JSON..=) "KmsKeyId" Prelude.<$> kmsKeyId,+                               (JSON..=) "LogDeliveryConfigurations"+                                 Prelude.<$> logDeliveryConfigurations,+                               (JSON..=) "MultiAZEnabled" Prelude.<$> multiAZEnabled,+                               (JSON..=) "NetworkType" Prelude.<$> networkType,+                               (JSON..=) "NodeGroupConfiguration"+                                 Prelude.<$> nodeGroupConfiguration,+                               (JSON..=) "NotificationTopicArn" Prelude.<$> notificationTopicArn,+                               (JSON..=) "NumCacheClusters" Prelude.<$> numCacheClusters,+                               (JSON..=) "NumNodeGroups" Prelude.<$> numNodeGroups,+                               (JSON..=) "Port" Prelude.<$> port,+                               (JSON..=) "PreferredCacheClusterAZs"+                                 Prelude.<$> preferredCacheClusterAZs,+                               (JSON..=) "PreferredMaintenanceWindow"+                                 Prelude.<$> preferredMaintenanceWindow,+                               (JSON..=) "PrimaryClusterId" Prelude.<$> primaryClusterId,+                               (JSON..=) "ReplicasPerNodeGroup" Prelude.<$> replicasPerNodeGroup,+                               (JSON..=) "ReplicationGroupId" Prelude.<$> replicationGroupId,+                               (JSON..=) "SecurityGroupIds" Prelude.<$> securityGroupIds,+                               (JSON..=) "SnapshotArns" Prelude.<$> snapshotArns,+                               (JSON..=) "SnapshotName" Prelude.<$> snapshotName,+                               (JSON..=) "SnapshotRetentionLimit"+                                 Prelude.<$> snapshotRetentionLimit,+                               (JSON..=) "SnapshotWindow" Prelude.<$> snapshotWindow,+                               (JSON..=) "SnapshottingClusterId"+                                 Prelude.<$> snapshottingClusterId,+                               (JSON..=) "Tags" Prelude.<$> tags,+                               (JSON..=) "TransitEncryptionEnabled"+                                 Prelude.<$> transitEncryptionEnabled,+                               (JSON..=) "TransitEncryptionMode"+                                 Prelude.<$> transitEncryptionMode,+                               (JSON..=) "UserGroupIds" Prelude.<$> userGroupIds]))}+instance JSON.ToJSON ReplicationGroup where+  toJSON ReplicationGroup {..}+    = JSON.object+        (Prelude.fromList+           ((Prelude.<>)+              ["ReplicationGroupDescription" JSON..= replicationGroupDescription]+              (Prelude.catMaybes+                 [(JSON..=) "AtRestEncryptionEnabled"+                    Prelude.<$> atRestEncryptionEnabled,+                  (JSON..=) "AuthToken" Prelude.<$> authToken,+                  (JSON..=) "AutoMinorVersionUpgrade"+                    Prelude.<$> autoMinorVersionUpgrade,+                  (JSON..=) "AutomaticFailoverEnabled"+                    Prelude.<$> automaticFailoverEnabled,+                  (JSON..=) "CacheNodeType" Prelude.<$> cacheNodeType,+                  (JSON..=) "CacheParameterGroupName"+                    Prelude.<$> cacheParameterGroupName,+                  (JSON..=) "CacheSecurityGroupNames"+                    Prelude.<$> cacheSecurityGroupNames,+                  (JSON..=) "CacheSubnetGroupName" Prelude.<$> cacheSubnetGroupName,+                  (JSON..=) "ClusterMode" Prelude.<$> clusterMode,+                  (JSON..=) "DataTieringEnabled" Prelude.<$> dataTieringEnabled,+                  (JSON..=) "Engine" Prelude.<$> engine,+                  (JSON..=) "EngineVersion" Prelude.<$> engineVersion,+                  (JSON..=) "GlobalReplicationGroupId"+                    Prelude.<$> globalReplicationGroupId,+                  (JSON..=) "IpDiscovery" Prelude.<$> ipDiscovery,+                  (JSON..=) "KmsKeyId" Prelude.<$> kmsKeyId,+                  (JSON..=) "LogDeliveryConfigurations"+                    Prelude.<$> logDeliveryConfigurations,+                  (JSON..=) "MultiAZEnabled" Prelude.<$> multiAZEnabled,+                  (JSON..=) "NetworkType" Prelude.<$> networkType,+                  (JSON..=) "NodeGroupConfiguration"+                    Prelude.<$> nodeGroupConfiguration,+                  (JSON..=) "NotificationTopicArn" Prelude.<$> notificationTopicArn,+                  (JSON..=) "NumCacheClusters" Prelude.<$> numCacheClusters,+                  (JSON..=) "NumNodeGroups" Prelude.<$> numNodeGroups,+                  (JSON..=) "Port" Prelude.<$> port,+                  (JSON..=) "PreferredCacheClusterAZs"+                    Prelude.<$> preferredCacheClusterAZs,+                  (JSON..=) "PreferredMaintenanceWindow"+                    Prelude.<$> preferredMaintenanceWindow,+                  (JSON..=) "PrimaryClusterId" Prelude.<$> primaryClusterId,+                  (JSON..=) "ReplicasPerNodeGroup" Prelude.<$> replicasPerNodeGroup,+                  (JSON..=) "ReplicationGroupId" Prelude.<$> replicationGroupId,+                  (JSON..=) "SecurityGroupIds" Prelude.<$> securityGroupIds,+                  (JSON..=) "SnapshotArns" Prelude.<$> snapshotArns,+                  (JSON..=) "SnapshotName" Prelude.<$> snapshotName,+                  (JSON..=) "SnapshotRetentionLimit"+                    Prelude.<$> snapshotRetentionLimit,+                  (JSON..=) "SnapshotWindow" Prelude.<$> snapshotWindow,+                  (JSON..=) "SnapshottingClusterId"+                    Prelude.<$> snapshottingClusterId,+                  (JSON..=) "Tags" Prelude.<$> tags,+                  (JSON..=) "TransitEncryptionEnabled"+                    Prelude.<$> transitEncryptionEnabled,+                  (JSON..=) "TransitEncryptionMode"+                    Prelude.<$> transitEncryptionMode,+                  (JSON..=) "UserGroupIds" Prelude.<$> userGroupIds])))+instance Property "AtRestEncryptionEnabled" ReplicationGroup where+  type PropertyType "AtRestEncryptionEnabled" ReplicationGroup = Value Prelude.Bool+  set newValue ReplicationGroup {..}+    = ReplicationGroup+        {atRestEncryptionEnabled = Prelude.pure newValue, ..}+instance Property "AuthToken" ReplicationGroup where+  type PropertyType "AuthToken" ReplicationGroup = Value Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup {authToken = Prelude.pure newValue, ..}+instance Property "AutoMinorVersionUpgrade" ReplicationGroup where+  type PropertyType "AutoMinorVersionUpgrade" ReplicationGroup = Value Prelude.Bool+  set newValue ReplicationGroup {..}+    = ReplicationGroup+        {autoMinorVersionUpgrade = Prelude.pure newValue, ..}+instance Property "AutomaticFailoverEnabled" ReplicationGroup where+  type PropertyType "AutomaticFailoverEnabled" ReplicationGroup = Value Prelude.Bool+  set newValue ReplicationGroup {..}+    = ReplicationGroup+        {automaticFailoverEnabled = Prelude.pure newValue, ..}+instance Property "CacheNodeType" ReplicationGroup where+  type PropertyType "CacheNodeType" ReplicationGroup = Value Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup {cacheNodeType = Prelude.pure newValue, ..}+instance Property "CacheParameterGroupName" ReplicationGroup where+  type PropertyType "CacheParameterGroupName" ReplicationGroup = Value Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup+        {cacheParameterGroupName = Prelude.pure newValue, ..}+instance Property "CacheSecurityGroupNames" ReplicationGroup where+  type PropertyType "CacheSecurityGroupNames" ReplicationGroup = ValueList Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup+        {cacheSecurityGroupNames = Prelude.pure newValue, ..}+instance Property "CacheSubnetGroupName" ReplicationGroup where+  type PropertyType "CacheSubnetGroupName" ReplicationGroup = Value Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup+        {cacheSubnetGroupName = Prelude.pure newValue, ..}+instance Property "ClusterMode" ReplicationGroup where+  type PropertyType "ClusterMode" ReplicationGroup = Value Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup {clusterMode = Prelude.pure newValue, ..}+instance Property "DataTieringEnabled" ReplicationGroup where+  type PropertyType "DataTieringEnabled" ReplicationGroup = Value Prelude.Bool+  set newValue ReplicationGroup {..}+    = ReplicationGroup {dataTieringEnabled = Prelude.pure newValue, ..}+instance Property "Engine" ReplicationGroup where+  type PropertyType "Engine" ReplicationGroup = Value Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup {engine = Prelude.pure newValue, ..}+instance Property "EngineVersion" ReplicationGroup where+  type PropertyType "EngineVersion" ReplicationGroup = Value Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup {engineVersion = Prelude.pure newValue, ..}+instance Property "GlobalReplicationGroupId" ReplicationGroup where+  type PropertyType "GlobalReplicationGroupId" ReplicationGroup = Value Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup+        {globalReplicationGroupId = Prelude.pure newValue, ..}+instance Property "IpDiscovery" ReplicationGroup where+  type PropertyType "IpDiscovery" ReplicationGroup = Value Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup {ipDiscovery = Prelude.pure newValue, ..}+instance Property "KmsKeyId" ReplicationGroup where+  type PropertyType "KmsKeyId" ReplicationGroup = Value Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup {kmsKeyId = Prelude.pure newValue, ..}+instance Property "LogDeliveryConfigurations" ReplicationGroup where+  type PropertyType "LogDeliveryConfigurations" ReplicationGroup = [LogDeliveryConfigurationRequestProperty]+  set newValue ReplicationGroup {..}+    = ReplicationGroup+        {logDeliveryConfigurations = Prelude.pure newValue, ..}+instance Property "MultiAZEnabled" ReplicationGroup where+  type PropertyType "MultiAZEnabled" ReplicationGroup = Value Prelude.Bool+  set newValue ReplicationGroup {..}+    = ReplicationGroup {multiAZEnabled = Prelude.pure newValue, ..}+instance Property "NetworkType" ReplicationGroup where+  type PropertyType "NetworkType" ReplicationGroup = Value Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup {networkType = Prelude.pure newValue, ..}+instance Property "NodeGroupConfiguration" ReplicationGroup where+  type PropertyType "NodeGroupConfiguration" ReplicationGroup = [NodeGroupConfigurationProperty]+  set newValue ReplicationGroup {..}+    = ReplicationGroup+        {nodeGroupConfiguration = Prelude.pure newValue, ..}+instance Property "NotificationTopicArn" ReplicationGroup where+  type PropertyType "NotificationTopicArn" ReplicationGroup = Value Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup+        {notificationTopicArn = Prelude.pure newValue, ..}+instance Property "NumCacheClusters" ReplicationGroup where+  type PropertyType "NumCacheClusters" ReplicationGroup = Value Prelude.Integer+  set newValue ReplicationGroup {..}+    = ReplicationGroup {numCacheClusters = Prelude.pure newValue, ..}+instance Property "NumNodeGroups" ReplicationGroup where+  type PropertyType "NumNodeGroups" ReplicationGroup = Value Prelude.Integer+  set newValue ReplicationGroup {..}+    = ReplicationGroup {numNodeGroups = Prelude.pure newValue, ..}+instance Property "Port" ReplicationGroup where+  type PropertyType "Port" ReplicationGroup = Value Prelude.Integer+  set newValue ReplicationGroup {..}+    = ReplicationGroup {port = Prelude.pure newValue, ..}+instance Property "PreferredCacheClusterAZs" ReplicationGroup where+  type PropertyType "PreferredCacheClusterAZs" ReplicationGroup = ValueList Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup+        {preferredCacheClusterAZs = Prelude.pure newValue, ..}+instance Property "PreferredMaintenanceWindow" ReplicationGroup where+  type PropertyType "PreferredMaintenanceWindow" ReplicationGroup = Value Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup+        {preferredMaintenanceWindow = Prelude.pure newValue, ..}+instance Property "PrimaryClusterId" ReplicationGroup where+  type PropertyType "PrimaryClusterId" ReplicationGroup = Value Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup {primaryClusterId = Prelude.pure newValue, ..}+instance Property "ReplicasPerNodeGroup" ReplicationGroup where+  type PropertyType "ReplicasPerNodeGroup" ReplicationGroup = Value Prelude.Integer+  set newValue ReplicationGroup {..}+    = ReplicationGroup+        {replicasPerNodeGroup = Prelude.pure newValue, ..}+instance Property "ReplicationGroupDescription" ReplicationGroup where+  type PropertyType "ReplicationGroupDescription" ReplicationGroup = Value Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup {replicationGroupDescription = newValue, ..}+instance Property "ReplicationGroupId" ReplicationGroup where+  type PropertyType "ReplicationGroupId" ReplicationGroup = Value Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup {replicationGroupId = Prelude.pure newValue, ..}+instance Property "SecurityGroupIds" ReplicationGroup where+  type PropertyType "SecurityGroupIds" ReplicationGroup = ValueList Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup {securityGroupIds = Prelude.pure newValue, ..}+instance Property "SnapshotArns" ReplicationGroup where+  type PropertyType "SnapshotArns" ReplicationGroup = ValueList Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup {snapshotArns = Prelude.pure newValue, ..}+instance Property "SnapshotName" ReplicationGroup where+  type PropertyType "SnapshotName" ReplicationGroup = Value Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup {snapshotName = Prelude.pure newValue, ..}+instance Property "SnapshotRetentionLimit" ReplicationGroup where+  type PropertyType "SnapshotRetentionLimit" ReplicationGroup = Value Prelude.Integer+  set newValue ReplicationGroup {..}+    = ReplicationGroup+        {snapshotRetentionLimit = Prelude.pure newValue, ..}+instance Property "SnapshotWindow" ReplicationGroup where+  type PropertyType "SnapshotWindow" ReplicationGroup = Value Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup {snapshotWindow = Prelude.pure newValue, ..}+instance Property "SnapshottingClusterId" ReplicationGroup where+  type PropertyType "SnapshottingClusterId" ReplicationGroup = Value Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup+        {snapshottingClusterId = Prelude.pure newValue, ..}+instance Property "Tags" ReplicationGroup where+  type PropertyType "Tags" ReplicationGroup = [Tag]+  set newValue ReplicationGroup {..}+    = ReplicationGroup {tags = Prelude.pure newValue, ..}+instance Property "TransitEncryptionEnabled" ReplicationGroup where+  type PropertyType "TransitEncryptionEnabled" ReplicationGroup = Value Prelude.Bool+  set newValue ReplicationGroup {..}+    = ReplicationGroup+        {transitEncryptionEnabled = Prelude.pure newValue, ..}+instance Property "TransitEncryptionMode" ReplicationGroup where+  type PropertyType "TransitEncryptionMode" ReplicationGroup = Value Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup+        {transitEncryptionMode = Prelude.pure newValue, ..}+instance Property "UserGroupIds" ReplicationGroup where+  type PropertyType "UserGroupIds" ReplicationGroup = ValueList Prelude.Text+  set newValue ReplicationGroup {..}+    = ReplicationGroup {userGroupIds = Prelude.pure newValue, ..}
+ gen/Stratosphere/ElastiCache/ReplicationGroup/CloudWatchLogsDestinationDetailsProperty.hs view
@@ -0,0 +1,34 @@+module Stratosphere.ElastiCache.ReplicationGroup.CloudWatchLogsDestinationDetailsProperty (+        CloudWatchLogsDestinationDetailsProperty(..),+        mkCloudWatchLogsDestinationDetailsProperty+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import Stratosphere.ResourceProperties+import Stratosphere.Value+data CloudWatchLogsDestinationDetailsProperty+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-cloudwatchlogsdestinationdetails.html>+    CloudWatchLogsDestinationDetailsProperty {haddock_workaround_ :: (),+                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-cloudwatchlogsdestinationdetails.html#cfn-elasticache-replicationgroup-cloudwatchlogsdestinationdetails-loggroup>+                                              logGroup :: (Value Prelude.Text)}+  deriving stock (Prelude.Eq, Prelude.Show)+mkCloudWatchLogsDestinationDetailsProperty ::+  Value Prelude.Text -> CloudWatchLogsDestinationDetailsProperty+mkCloudWatchLogsDestinationDetailsProperty logGroup+  = CloudWatchLogsDestinationDetailsProperty+      {haddock_workaround_ = (), logGroup = logGroup}+instance ToResourceProperties CloudWatchLogsDestinationDetailsProperty where+  toResourceProperties CloudWatchLogsDestinationDetailsProperty {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::ReplicationGroup.CloudWatchLogsDestinationDetails",+         supportsTags = Prelude.False,+         properties = ["LogGroup" JSON..= logGroup]}+instance JSON.ToJSON CloudWatchLogsDestinationDetailsProperty where+  toJSON CloudWatchLogsDestinationDetailsProperty {..}+    = JSON.object ["LogGroup" JSON..= logGroup]+instance Property "LogGroup" CloudWatchLogsDestinationDetailsProperty where+  type PropertyType "LogGroup" CloudWatchLogsDestinationDetailsProperty = Value Prelude.Text+  set newValue CloudWatchLogsDestinationDetailsProperty {..}+    = CloudWatchLogsDestinationDetailsProperty+        {logGroup = newValue, ..}
+ gen/Stratosphere/ElastiCache/ReplicationGroup/CloudWatchLogsDestinationDetailsProperty.hs-boot view
@@ -0,0 +1,9 @@+module Stratosphere.ElastiCache.ReplicationGroup.CloudWatchLogsDestinationDetailsProperty where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.ResourceProperties+data CloudWatchLogsDestinationDetailsProperty :: Prelude.Type+instance ToResourceProperties CloudWatchLogsDestinationDetailsProperty+instance Prelude.Eq CloudWatchLogsDestinationDetailsProperty+instance Prelude.Show CloudWatchLogsDestinationDetailsProperty+instance JSON.ToJSON CloudWatchLogsDestinationDetailsProperty
+ gen/Stratosphere/ElastiCache/ReplicationGroup/DestinationDetailsProperty.hs view
@@ -0,0 +1,53 @@+module Stratosphere.ElastiCache.ReplicationGroup.DestinationDetailsProperty (+        module Exports, DestinationDetailsProperty(..),+        mkDestinationDetailsProperty+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import {-# SOURCE #-} Stratosphere.ElastiCache.ReplicationGroup.CloudWatchLogsDestinationDetailsProperty as Exports+import {-# SOURCE #-} Stratosphere.ElastiCache.ReplicationGroup.KinesisFirehoseDestinationDetailsProperty as Exports+import Stratosphere.ResourceProperties+data DestinationDetailsProperty+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-destinationdetails.html>+    DestinationDetailsProperty {haddock_workaround_ :: (),+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-destinationdetails.html#cfn-elasticache-replicationgroup-destinationdetails-cloudwatchlogsdetails>+                                cloudWatchLogsDetails :: (Prelude.Maybe CloudWatchLogsDestinationDetailsProperty),+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-destinationdetails.html#cfn-elasticache-replicationgroup-destinationdetails-kinesisfirehosedetails>+                                kinesisFirehoseDetails :: (Prelude.Maybe KinesisFirehoseDestinationDetailsProperty)}+  deriving stock (Prelude.Eq, Prelude.Show)+mkDestinationDetailsProperty :: DestinationDetailsProperty+mkDestinationDetailsProperty+  = DestinationDetailsProperty+      {haddock_workaround_ = (), cloudWatchLogsDetails = Prelude.Nothing,+       kinesisFirehoseDetails = Prelude.Nothing}+instance ToResourceProperties DestinationDetailsProperty where+  toResourceProperties DestinationDetailsProperty {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::ReplicationGroup.DestinationDetails",+         supportsTags = Prelude.False,+         properties = Prelude.fromList+                        (Prelude.catMaybes+                           [(JSON..=) "CloudWatchLogsDetails"+                              Prelude.<$> cloudWatchLogsDetails,+                            (JSON..=) "KinesisFirehoseDetails"+                              Prelude.<$> kinesisFirehoseDetails])}+instance JSON.ToJSON DestinationDetailsProperty where+  toJSON DestinationDetailsProperty {..}+    = JSON.object+        (Prelude.fromList+           (Prelude.catMaybes+              [(JSON..=) "CloudWatchLogsDetails"+                 Prelude.<$> cloudWatchLogsDetails,+               (JSON..=) "KinesisFirehoseDetails"+                 Prelude.<$> kinesisFirehoseDetails]))+instance Property "CloudWatchLogsDetails" DestinationDetailsProperty where+  type PropertyType "CloudWatchLogsDetails" DestinationDetailsProperty = CloudWatchLogsDestinationDetailsProperty+  set newValue DestinationDetailsProperty {..}+    = DestinationDetailsProperty+        {cloudWatchLogsDetails = Prelude.pure newValue, ..}+instance Property "KinesisFirehoseDetails" DestinationDetailsProperty where+  type PropertyType "KinesisFirehoseDetails" DestinationDetailsProperty = KinesisFirehoseDestinationDetailsProperty+  set newValue DestinationDetailsProperty {..}+    = DestinationDetailsProperty+        {kinesisFirehoseDetails = Prelude.pure newValue, ..}
+ gen/Stratosphere/ElastiCache/ReplicationGroup/DestinationDetailsProperty.hs-boot view
@@ -0,0 +1,9 @@+module Stratosphere.ElastiCache.ReplicationGroup.DestinationDetailsProperty where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.ResourceProperties+data DestinationDetailsProperty :: Prelude.Type+instance ToResourceProperties DestinationDetailsProperty+instance Prelude.Eq DestinationDetailsProperty+instance Prelude.Show DestinationDetailsProperty+instance JSON.ToJSON DestinationDetailsProperty
+ gen/Stratosphere/ElastiCache/ReplicationGroup/KinesisFirehoseDestinationDetailsProperty.hs view
@@ -0,0 +1,34 @@+module Stratosphere.ElastiCache.ReplicationGroup.KinesisFirehoseDestinationDetailsProperty (+        KinesisFirehoseDestinationDetailsProperty(..),+        mkKinesisFirehoseDestinationDetailsProperty+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import Stratosphere.ResourceProperties+import Stratosphere.Value+data KinesisFirehoseDestinationDetailsProperty+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-kinesisfirehosedestinationdetails.html>+    KinesisFirehoseDestinationDetailsProperty {haddock_workaround_ :: (),+                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-kinesisfirehosedestinationdetails.html#cfn-elasticache-replicationgroup-kinesisfirehosedestinationdetails-deliverystream>+                                               deliveryStream :: (Value Prelude.Text)}+  deriving stock (Prelude.Eq, Prelude.Show)+mkKinesisFirehoseDestinationDetailsProperty ::+  Value Prelude.Text -> KinesisFirehoseDestinationDetailsProperty+mkKinesisFirehoseDestinationDetailsProperty deliveryStream+  = KinesisFirehoseDestinationDetailsProperty+      {haddock_workaround_ = (), deliveryStream = deliveryStream}+instance ToResourceProperties KinesisFirehoseDestinationDetailsProperty where+  toResourceProperties KinesisFirehoseDestinationDetailsProperty {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::ReplicationGroup.KinesisFirehoseDestinationDetails",+         supportsTags = Prelude.False,+         properties = ["DeliveryStream" JSON..= deliveryStream]}+instance JSON.ToJSON KinesisFirehoseDestinationDetailsProperty where+  toJSON KinesisFirehoseDestinationDetailsProperty {..}+    = JSON.object ["DeliveryStream" JSON..= deliveryStream]+instance Property "DeliveryStream" KinesisFirehoseDestinationDetailsProperty where+  type PropertyType "DeliveryStream" KinesisFirehoseDestinationDetailsProperty = Value Prelude.Text+  set newValue KinesisFirehoseDestinationDetailsProperty {..}+    = KinesisFirehoseDestinationDetailsProperty+        {deliveryStream = newValue, ..}
+ gen/Stratosphere/ElastiCache/ReplicationGroup/KinesisFirehoseDestinationDetailsProperty.hs-boot view
@@ -0,0 +1,9 @@+module Stratosphere.ElastiCache.ReplicationGroup.KinesisFirehoseDestinationDetailsProperty where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.ResourceProperties+data KinesisFirehoseDestinationDetailsProperty :: Prelude.Type+instance ToResourceProperties KinesisFirehoseDestinationDetailsProperty+instance Prelude.Eq KinesisFirehoseDestinationDetailsProperty+instance Prelude.Show KinesisFirehoseDestinationDetailsProperty+instance JSON.ToJSON KinesisFirehoseDestinationDetailsProperty
+ gen/Stratosphere/ElastiCache/ReplicationGroup/LogDeliveryConfigurationRequestProperty.hs view
@@ -0,0 +1,69 @@+module Stratosphere.ElastiCache.ReplicationGroup.LogDeliveryConfigurationRequestProperty (+        module Exports, LogDeliveryConfigurationRequestProperty(..),+        mkLogDeliveryConfigurationRequestProperty+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import {-# SOURCE #-} Stratosphere.ElastiCache.ReplicationGroup.DestinationDetailsProperty as Exports+import Stratosphere.ResourceProperties+import Stratosphere.Value+data LogDeliveryConfigurationRequestProperty+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-logdeliveryconfigurationrequest.html>+    LogDeliveryConfigurationRequestProperty {haddock_workaround_ :: (),+                                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-logdeliveryconfigurationrequest.html#cfn-elasticache-replicationgroup-logdeliveryconfigurationrequest-destinationdetails>+                                             destinationDetails :: DestinationDetailsProperty,+                                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-logdeliveryconfigurationrequest.html#cfn-elasticache-replicationgroup-logdeliveryconfigurationrequest-destinationtype>+                                             destinationType :: (Value Prelude.Text),+                                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-logdeliveryconfigurationrequest.html#cfn-elasticache-replicationgroup-logdeliveryconfigurationrequest-logformat>+                                             logFormat :: (Value Prelude.Text),+                                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-logdeliveryconfigurationrequest.html#cfn-elasticache-replicationgroup-logdeliveryconfigurationrequest-logtype>+                                             logType :: (Value Prelude.Text)}+  deriving stock (Prelude.Eq, Prelude.Show)+mkLogDeliveryConfigurationRequestProperty ::+  DestinationDetailsProperty+  -> Value Prelude.Text+     -> Value Prelude.Text+        -> Value Prelude.Text -> LogDeliveryConfigurationRequestProperty+mkLogDeliveryConfigurationRequestProperty+  destinationDetails+  destinationType+  logFormat+  logType+  = LogDeliveryConfigurationRequestProperty+      {haddock_workaround_ = (), destinationDetails = destinationDetails,+       destinationType = destinationType, logFormat = logFormat,+       logType = logType}+instance ToResourceProperties LogDeliveryConfigurationRequestProperty where+  toResourceProperties LogDeliveryConfigurationRequestProperty {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::ReplicationGroup.LogDeliveryConfigurationRequest",+         supportsTags = Prelude.False,+         properties = ["DestinationDetails" JSON..= destinationDetails,+                       "DestinationType" JSON..= destinationType,+                       "LogFormat" JSON..= logFormat, "LogType" JSON..= logType]}+instance JSON.ToJSON LogDeliveryConfigurationRequestProperty where+  toJSON LogDeliveryConfigurationRequestProperty {..}+    = JSON.object+        ["DestinationDetails" JSON..= destinationDetails,+         "DestinationType" JSON..= destinationType,+         "LogFormat" JSON..= logFormat, "LogType" JSON..= logType]+instance Property "DestinationDetails" LogDeliveryConfigurationRequestProperty where+  type PropertyType "DestinationDetails" LogDeliveryConfigurationRequestProperty = DestinationDetailsProperty+  set newValue LogDeliveryConfigurationRequestProperty {..}+    = LogDeliveryConfigurationRequestProperty+        {destinationDetails = newValue, ..}+instance Property "DestinationType" LogDeliveryConfigurationRequestProperty where+  type PropertyType "DestinationType" LogDeliveryConfigurationRequestProperty = Value Prelude.Text+  set newValue LogDeliveryConfigurationRequestProperty {..}+    = LogDeliveryConfigurationRequestProperty+        {destinationType = newValue, ..}+instance Property "LogFormat" LogDeliveryConfigurationRequestProperty where+  type PropertyType "LogFormat" LogDeliveryConfigurationRequestProperty = Value Prelude.Text+  set newValue LogDeliveryConfigurationRequestProperty {..}+    = LogDeliveryConfigurationRequestProperty+        {logFormat = newValue, ..}+instance Property "LogType" LogDeliveryConfigurationRequestProperty where+  type PropertyType "LogType" LogDeliveryConfigurationRequestProperty = Value Prelude.Text+  set newValue LogDeliveryConfigurationRequestProperty {..}+    = LogDeliveryConfigurationRequestProperty {logType = newValue, ..}
+ gen/Stratosphere/ElastiCache/ReplicationGroup/LogDeliveryConfigurationRequestProperty.hs-boot view
@@ -0,0 +1,9 @@+module Stratosphere.ElastiCache.ReplicationGroup.LogDeliveryConfigurationRequestProperty where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.ResourceProperties+data LogDeliveryConfigurationRequestProperty :: Prelude.Type+instance ToResourceProperties LogDeliveryConfigurationRequestProperty+instance Prelude.Eq LogDeliveryConfigurationRequestProperty+instance Prelude.Show LogDeliveryConfigurationRequestProperty+instance JSON.ToJSON LogDeliveryConfigurationRequestProperty
+ gen/Stratosphere/ElastiCache/ReplicationGroup/NodeGroupConfigurationProperty.hs view
@@ -0,0 +1,81 @@+module Stratosphere.ElastiCache.ReplicationGroup.NodeGroupConfigurationProperty (+        NodeGroupConfigurationProperty(..),+        mkNodeGroupConfigurationProperty+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import Stratosphere.ResourceProperties+import Stratosphere.Value+data NodeGroupConfigurationProperty+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html>+    NodeGroupConfigurationProperty {haddock_workaround_ :: (),+                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html#cfn-elasticache-replicationgroup-nodegroupconfiguration-nodegroupid>+                                    nodeGroupId :: (Prelude.Maybe (Value Prelude.Text)),+                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html#cfn-elasticache-replicationgroup-nodegroupconfiguration-primaryavailabilityzone>+                                    primaryAvailabilityZone :: (Prelude.Maybe (Value Prelude.Text)),+                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html#cfn-elasticache-replicationgroup-nodegroupconfiguration-replicaavailabilityzones>+                                    replicaAvailabilityZones :: (Prelude.Maybe (ValueList Prelude.Text)),+                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html#cfn-elasticache-replicationgroup-nodegroupconfiguration-replicacount>+                                    replicaCount :: (Prelude.Maybe (Value Prelude.Integer)),+                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html#cfn-elasticache-replicationgroup-nodegroupconfiguration-slots>+                                    slots :: (Prelude.Maybe (Value Prelude.Text))}+  deriving stock (Prelude.Eq, Prelude.Show)+mkNodeGroupConfigurationProperty :: NodeGroupConfigurationProperty+mkNodeGroupConfigurationProperty+  = NodeGroupConfigurationProperty+      {haddock_workaround_ = (), nodeGroupId = Prelude.Nothing,+       primaryAvailabilityZone = Prelude.Nothing,+       replicaAvailabilityZones = Prelude.Nothing,+       replicaCount = Prelude.Nothing, slots = Prelude.Nothing}+instance ToResourceProperties NodeGroupConfigurationProperty where+  toResourceProperties NodeGroupConfigurationProperty {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration",+         supportsTags = Prelude.False,+         properties = Prelude.fromList+                        (Prelude.catMaybes+                           [(JSON..=) "NodeGroupId" Prelude.<$> nodeGroupId,+                            (JSON..=) "PrimaryAvailabilityZone"+                              Prelude.<$> primaryAvailabilityZone,+                            (JSON..=) "ReplicaAvailabilityZones"+                              Prelude.<$> replicaAvailabilityZones,+                            (JSON..=) "ReplicaCount" Prelude.<$> replicaCount,+                            (JSON..=) "Slots" Prelude.<$> slots])}+instance JSON.ToJSON NodeGroupConfigurationProperty where+  toJSON NodeGroupConfigurationProperty {..}+    = JSON.object+        (Prelude.fromList+           (Prelude.catMaybes+              [(JSON..=) "NodeGroupId" Prelude.<$> nodeGroupId,+               (JSON..=) "PrimaryAvailabilityZone"+                 Prelude.<$> primaryAvailabilityZone,+               (JSON..=) "ReplicaAvailabilityZones"+                 Prelude.<$> replicaAvailabilityZones,+               (JSON..=) "ReplicaCount" Prelude.<$> replicaCount,+               (JSON..=) "Slots" Prelude.<$> slots]))+instance Property "NodeGroupId" NodeGroupConfigurationProperty where+  type PropertyType "NodeGroupId" NodeGroupConfigurationProperty = Value Prelude.Text+  set newValue NodeGroupConfigurationProperty {..}+    = NodeGroupConfigurationProperty+        {nodeGroupId = Prelude.pure newValue, ..}+instance Property "PrimaryAvailabilityZone" NodeGroupConfigurationProperty where+  type PropertyType "PrimaryAvailabilityZone" NodeGroupConfigurationProperty = Value Prelude.Text+  set newValue NodeGroupConfigurationProperty {..}+    = NodeGroupConfigurationProperty+        {primaryAvailabilityZone = Prelude.pure newValue, ..}+instance Property "ReplicaAvailabilityZones" NodeGroupConfigurationProperty where+  type PropertyType "ReplicaAvailabilityZones" NodeGroupConfigurationProperty = ValueList Prelude.Text+  set newValue NodeGroupConfigurationProperty {..}+    = NodeGroupConfigurationProperty+        {replicaAvailabilityZones = Prelude.pure newValue, ..}+instance Property "ReplicaCount" NodeGroupConfigurationProperty where+  type PropertyType "ReplicaCount" NodeGroupConfigurationProperty = Value Prelude.Integer+  set newValue NodeGroupConfigurationProperty {..}+    = NodeGroupConfigurationProperty+        {replicaCount = Prelude.pure newValue, ..}+instance Property "Slots" NodeGroupConfigurationProperty where+  type PropertyType "Slots" NodeGroupConfigurationProperty = Value Prelude.Text+  set newValue NodeGroupConfigurationProperty {..}+    = NodeGroupConfigurationProperty+        {slots = Prelude.pure newValue, ..}
+ gen/Stratosphere/ElastiCache/ReplicationGroup/NodeGroupConfigurationProperty.hs-boot view
@@ -0,0 +1,9 @@+module Stratosphere.ElastiCache.ReplicationGroup.NodeGroupConfigurationProperty where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.ResourceProperties+data NodeGroupConfigurationProperty :: Prelude.Type+instance ToResourceProperties NodeGroupConfigurationProperty+instance Prelude.Eq NodeGroupConfigurationProperty+instance Prelude.Show NodeGroupConfigurationProperty+instance JSON.ToJSON NodeGroupConfigurationProperty
+ gen/Stratosphere/ElastiCache/SecurityGroup.hs view
@@ -0,0 +1,46 @@+module Stratosphere.ElastiCache.SecurityGroup (+        SecurityGroup(..), mkSecurityGroup+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import Stratosphere.ResourceProperties+import Stratosphere.Tag+import Stratosphere.Value+data SecurityGroup+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group.html>+    SecurityGroup {haddock_workaround_ :: (),+                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group.html#cfn-elasticache-securitygroup-description>+                   description :: (Value Prelude.Text),+                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group.html#cfn-elasticache-securitygroup-tags>+                   tags :: (Prelude.Maybe [Tag])}+  deriving stock (Prelude.Eq, Prelude.Show)+mkSecurityGroup :: Value Prelude.Text -> SecurityGroup+mkSecurityGroup description+  = SecurityGroup+      {haddock_workaround_ = (), description = description,+       tags = Prelude.Nothing}+instance ToResourceProperties SecurityGroup where+  toResourceProperties SecurityGroup {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::SecurityGroup",+         supportsTags = Prelude.True,+         properties = Prelude.fromList+                        ((Prelude.<>)+                           ["Description" JSON..= description]+                           (Prelude.catMaybes [(JSON..=) "Tags" Prelude.<$> tags]))}+instance JSON.ToJSON SecurityGroup where+  toJSON SecurityGroup {..}+    = JSON.object+        (Prelude.fromList+           ((Prelude.<>)+              ["Description" JSON..= description]+              (Prelude.catMaybes [(JSON..=) "Tags" Prelude.<$> tags])))+instance Property "Description" SecurityGroup where+  type PropertyType "Description" SecurityGroup = Value Prelude.Text+  set newValue SecurityGroup {..}+    = SecurityGroup {description = newValue, ..}+instance Property "Tags" SecurityGroup where+  type PropertyType "Tags" SecurityGroup = [Tag]+  set newValue SecurityGroup {..}+    = SecurityGroup {tags = Prelude.pure newValue, ..}
+ gen/Stratosphere/ElastiCache/SecurityGroupIngress.hs view
@@ -0,0 +1,61 @@+module Stratosphere.ElastiCache.SecurityGroupIngress (+        SecurityGroupIngress(..), mkSecurityGroupIngress+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import Stratosphere.ResourceProperties+import Stratosphere.Value+data SecurityGroupIngress+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group-ingress.html>+    SecurityGroupIngress {haddock_workaround_ :: (),+                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group-ingress.html#cfn-elasticache-securitygroupingress-cachesecuritygroupname>+                          cacheSecurityGroupName :: (Value Prelude.Text),+                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group-ingress.html#cfn-elasticache-securitygroupingress-ec2securitygroupname>+                          eC2SecurityGroupName :: (Value Prelude.Text),+                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group-ingress.html#cfn-elasticache-securitygroupingress-ec2securitygroupownerid>+                          eC2SecurityGroupOwnerId :: (Prelude.Maybe (Value Prelude.Text))}+  deriving stock (Prelude.Eq, Prelude.Show)+mkSecurityGroupIngress ::+  Value Prelude.Text -> Value Prelude.Text -> SecurityGroupIngress+mkSecurityGroupIngress cacheSecurityGroupName eC2SecurityGroupName+  = SecurityGroupIngress+      {haddock_workaround_ = (),+       cacheSecurityGroupName = cacheSecurityGroupName,+       eC2SecurityGroupName = eC2SecurityGroupName,+       eC2SecurityGroupOwnerId = Prelude.Nothing}+instance ToResourceProperties SecurityGroupIngress where+  toResourceProperties SecurityGroupIngress {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::SecurityGroupIngress",+         supportsTags = Prelude.False,+         properties = Prelude.fromList+                        ((Prelude.<>)+                           ["CacheSecurityGroupName" JSON..= cacheSecurityGroupName,+                            "EC2SecurityGroupName" JSON..= eC2SecurityGroupName]+                           (Prelude.catMaybes+                              [(JSON..=) "EC2SecurityGroupOwnerId"+                                 Prelude.<$> eC2SecurityGroupOwnerId]))}+instance JSON.ToJSON SecurityGroupIngress where+  toJSON SecurityGroupIngress {..}+    = JSON.object+        (Prelude.fromList+           ((Prelude.<>)+              ["CacheSecurityGroupName" JSON..= cacheSecurityGroupName,+               "EC2SecurityGroupName" JSON..= eC2SecurityGroupName]+              (Prelude.catMaybes+                 [(JSON..=) "EC2SecurityGroupOwnerId"+                    Prelude.<$> eC2SecurityGroupOwnerId])))+instance Property "CacheSecurityGroupName" SecurityGroupIngress where+  type PropertyType "CacheSecurityGroupName" SecurityGroupIngress = Value Prelude.Text+  set newValue SecurityGroupIngress {..}+    = SecurityGroupIngress {cacheSecurityGroupName = newValue, ..}+instance Property "EC2SecurityGroupName" SecurityGroupIngress where+  type PropertyType "EC2SecurityGroupName" SecurityGroupIngress = Value Prelude.Text+  set newValue SecurityGroupIngress {..}+    = SecurityGroupIngress {eC2SecurityGroupName = newValue, ..}+instance Property "EC2SecurityGroupOwnerId" SecurityGroupIngress where+  type PropertyType "EC2SecurityGroupOwnerId" SecurityGroupIngress = Value Prelude.Text+  set newValue SecurityGroupIngress {..}+    = SecurityGroupIngress+        {eC2SecurityGroupOwnerId = Prelude.pure newValue, ..}
+ gen/Stratosphere/ElastiCache/ServerlessCache.hs view
@@ -0,0 +1,179 @@+module Stratosphere.ElastiCache.ServerlessCache (+        module Exports, ServerlessCache(..), mkServerlessCache+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import {-# SOURCE #-} Stratosphere.ElastiCache.ServerlessCache.CacheUsageLimitsProperty as Exports+import {-# SOURCE #-} Stratosphere.ElastiCache.ServerlessCache.EndpointProperty as Exports+import Stratosphere.ResourceProperties+import Stratosphere.Tag+import Stratosphere.Value+data ServerlessCache+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-serverlesscache.html>+    ServerlessCache {haddock_workaround_ :: (),+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-serverlesscache.html#cfn-elasticache-serverlesscache-cacheusagelimits>+                     cacheUsageLimits :: (Prelude.Maybe CacheUsageLimitsProperty),+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-serverlesscache.html#cfn-elasticache-serverlesscache-dailysnapshottime>+                     dailySnapshotTime :: (Prelude.Maybe (Value Prelude.Text)),+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-serverlesscache.html#cfn-elasticache-serverlesscache-description>+                     description :: (Prelude.Maybe (Value Prelude.Text)),+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-serverlesscache.html#cfn-elasticache-serverlesscache-endpoint>+                     endpoint :: (Prelude.Maybe EndpointProperty),+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-serverlesscache.html#cfn-elasticache-serverlesscache-engine>+                     engine :: (Value Prelude.Text),+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-serverlesscache.html#cfn-elasticache-serverlesscache-finalsnapshotname>+                     finalSnapshotName :: (Prelude.Maybe (Value Prelude.Text)),+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-serverlesscache.html#cfn-elasticache-serverlesscache-kmskeyid>+                     kmsKeyId :: (Prelude.Maybe (Value Prelude.Text)),+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-serverlesscache.html#cfn-elasticache-serverlesscache-majorengineversion>+                     majorEngineVersion :: (Prelude.Maybe (Value Prelude.Text)),+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-serverlesscache.html#cfn-elasticache-serverlesscache-readerendpoint>+                     readerEndpoint :: (Prelude.Maybe EndpointProperty),+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-serverlesscache.html#cfn-elasticache-serverlesscache-securitygroupids>+                     securityGroupIds :: (Prelude.Maybe (ValueList Prelude.Text)),+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-serverlesscache.html#cfn-elasticache-serverlesscache-serverlesscachename>+                     serverlessCacheName :: (Value Prelude.Text),+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-serverlesscache.html#cfn-elasticache-serverlesscache-snapshotarnstorestore>+                     snapshotArnsToRestore :: (Prelude.Maybe (ValueList Prelude.Text)),+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-serverlesscache.html#cfn-elasticache-serverlesscache-snapshotretentionlimit>+                     snapshotRetentionLimit :: (Prelude.Maybe (Value Prelude.Integer)),+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-serverlesscache.html#cfn-elasticache-serverlesscache-subnetids>+                     subnetIds :: (Prelude.Maybe (ValueList Prelude.Text)),+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-serverlesscache.html#cfn-elasticache-serverlesscache-tags>+                     tags :: (Prelude.Maybe [Tag]),+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-serverlesscache.html#cfn-elasticache-serverlesscache-usergroupid>+                     userGroupId :: (Prelude.Maybe (Value Prelude.Text))}+  deriving stock (Prelude.Eq, Prelude.Show)+mkServerlessCache ::+  Value Prelude.Text -> Value Prelude.Text -> ServerlessCache+mkServerlessCache engine serverlessCacheName+  = ServerlessCache+      {haddock_workaround_ = (), engine = engine,+       serverlessCacheName = serverlessCacheName,+       cacheUsageLimits = Prelude.Nothing,+       dailySnapshotTime = Prelude.Nothing, description = Prelude.Nothing,+       endpoint = Prelude.Nothing, finalSnapshotName = Prelude.Nothing,+       kmsKeyId = Prelude.Nothing, majorEngineVersion = Prelude.Nothing,+       readerEndpoint = Prelude.Nothing,+       securityGroupIds = Prelude.Nothing,+       snapshotArnsToRestore = Prelude.Nothing,+       snapshotRetentionLimit = Prelude.Nothing,+       subnetIds = Prelude.Nothing, tags = Prelude.Nothing,+       userGroupId = Prelude.Nothing}+instance ToResourceProperties ServerlessCache where+  toResourceProperties ServerlessCache {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::ServerlessCache",+         supportsTags = Prelude.True,+         properties = Prelude.fromList+                        ((Prelude.<>)+                           ["Engine" JSON..= engine,+                            "ServerlessCacheName" JSON..= serverlessCacheName]+                           (Prelude.catMaybes+                              [(JSON..=) "CacheUsageLimits" Prelude.<$> cacheUsageLimits,+                               (JSON..=) "DailySnapshotTime" Prelude.<$> dailySnapshotTime,+                               (JSON..=) "Description" Prelude.<$> description,+                               (JSON..=) "Endpoint" Prelude.<$> endpoint,+                               (JSON..=) "FinalSnapshotName" Prelude.<$> finalSnapshotName,+                               (JSON..=) "KmsKeyId" Prelude.<$> kmsKeyId,+                               (JSON..=) "MajorEngineVersion" Prelude.<$> majorEngineVersion,+                               (JSON..=) "ReaderEndpoint" Prelude.<$> readerEndpoint,+                               (JSON..=) "SecurityGroupIds" Prelude.<$> securityGroupIds,+                               (JSON..=) "SnapshotArnsToRestore"+                                 Prelude.<$> snapshotArnsToRestore,+                               (JSON..=) "SnapshotRetentionLimit"+                                 Prelude.<$> snapshotRetentionLimit,+                               (JSON..=) "SubnetIds" Prelude.<$> subnetIds,+                               (JSON..=) "Tags" Prelude.<$> tags,+                               (JSON..=) "UserGroupId" Prelude.<$> userGroupId]))}+instance JSON.ToJSON ServerlessCache where+  toJSON ServerlessCache {..}+    = JSON.object+        (Prelude.fromList+           ((Prelude.<>)+              ["Engine" JSON..= engine,+               "ServerlessCacheName" JSON..= serverlessCacheName]+              (Prelude.catMaybes+                 [(JSON..=) "CacheUsageLimits" Prelude.<$> cacheUsageLimits,+                  (JSON..=) "DailySnapshotTime" Prelude.<$> dailySnapshotTime,+                  (JSON..=) "Description" Prelude.<$> description,+                  (JSON..=) "Endpoint" Prelude.<$> endpoint,+                  (JSON..=) "FinalSnapshotName" Prelude.<$> finalSnapshotName,+                  (JSON..=) "KmsKeyId" Prelude.<$> kmsKeyId,+                  (JSON..=) "MajorEngineVersion" Prelude.<$> majorEngineVersion,+                  (JSON..=) "ReaderEndpoint" Prelude.<$> readerEndpoint,+                  (JSON..=) "SecurityGroupIds" Prelude.<$> securityGroupIds,+                  (JSON..=) "SnapshotArnsToRestore"+                    Prelude.<$> snapshotArnsToRestore,+                  (JSON..=) "SnapshotRetentionLimit"+                    Prelude.<$> snapshotRetentionLimit,+                  (JSON..=) "SubnetIds" Prelude.<$> subnetIds,+                  (JSON..=) "Tags" Prelude.<$> tags,+                  (JSON..=) "UserGroupId" Prelude.<$> userGroupId])))+instance Property "CacheUsageLimits" ServerlessCache where+  type PropertyType "CacheUsageLimits" ServerlessCache = CacheUsageLimitsProperty+  set newValue ServerlessCache {..}+    = ServerlessCache {cacheUsageLimits = Prelude.pure newValue, ..}+instance Property "DailySnapshotTime" ServerlessCache where+  type PropertyType "DailySnapshotTime" ServerlessCache = Value Prelude.Text+  set newValue ServerlessCache {..}+    = ServerlessCache {dailySnapshotTime = Prelude.pure newValue, ..}+instance Property "Description" ServerlessCache where+  type PropertyType "Description" ServerlessCache = Value Prelude.Text+  set newValue ServerlessCache {..}+    = ServerlessCache {description = Prelude.pure newValue, ..}+instance Property "Endpoint" ServerlessCache where+  type PropertyType "Endpoint" ServerlessCache = EndpointProperty+  set newValue ServerlessCache {..}+    = ServerlessCache {endpoint = Prelude.pure newValue, ..}+instance Property "Engine" ServerlessCache where+  type PropertyType "Engine" ServerlessCache = Value Prelude.Text+  set newValue ServerlessCache {..}+    = ServerlessCache {engine = newValue, ..}+instance Property "FinalSnapshotName" ServerlessCache where+  type PropertyType "FinalSnapshotName" ServerlessCache = Value Prelude.Text+  set newValue ServerlessCache {..}+    = ServerlessCache {finalSnapshotName = Prelude.pure newValue, ..}+instance Property "KmsKeyId" ServerlessCache where+  type PropertyType "KmsKeyId" ServerlessCache = Value Prelude.Text+  set newValue ServerlessCache {..}+    = ServerlessCache {kmsKeyId = Prelude.pure newValue, ..}+instance Property "MajorEngineVersion" ServerlessCache where+  type PropertyType "MajorEngineVersion" ServerlessCache = Value Prelude.Text+  set newValue ServerlessCache {..}+    = ServerlessCache {majorEngineVersion = Prelude.pure newValue, ..}+instance Property "ReaderEndpoint" ServerlessCache where+  type PropertyType "ReaderEndpoint" ServerlessCache = EndpointProperty+  set newValue ServerlessCache {..}+    = ServerlessCache {readerEndpoint = Prelude.pure newValue, ..}+instance Property "SecurityGroupIds" ServerlessCache where+  type PropertyType "SecurityGroupIds" ServerlessCache = ValueList Prelude.Text+  set newValue ServerlessCache {..}+    = ServerlessCache {securityGroupIds = Prelude.pure newValue, ..}+instance Property "ServerlessCacheName" ServerlessCache where+  type PropertyType "ServerlessCacheName" ServerlessCache = Value Prelude.Text+  set newValue ServerlessCache {..}+    = ServerlessCache {serverlessCacheName = newValue, ..}+instance Property "SnapshotArnsToRestore" ServerlessCache where+  type PropertyType "SnapshotArnsToRestore" ServerlessCache = ValueList Prelude.Text+  set newValue ServerlessCache {..}+    = ServerlessCache+        {snapshotArnsToRestore = Prelude.pure newValue, ..}+instance Property "SnapshotRetentionLimit" ServerlessCache where+  type PropertyType "SnapshotRetentionLimit" ServerlessCache = Value Prelude.Integer+  set newValue ServerlessCache {..}+    = ServerlessCache+        {snapshotRetentionLimit = Prelude.pure newValue, ..}+instance Property "SubnetIds" ServerlessCache where+  type PropertyType "SubnetIds" ServerlessCache = ValueList Prelude.Text+  set newValue ServerlessCache {..}+    = ServerlessCache {subnetIds = Prelude.pure newValue, ..}+instance Property "Tags" ServerlessCache where+  type PropertyType "Tags" ServerlessCache = [Tag]+  set newValue ServerlessCache {..}+    = ServerlessCache {tags = Prelude.pure newValue, ..}+instance Property "UserGroupId" ServerlessCache where+  type PropertyType "UserGroupId" ServerlessCache = Value Prelude.Text+  set newValue ServerlessCache {..}+    = ServerlessCache {userGroupId = Prelude.pure newValue, ..}
+ gen/Stratosphere/ElastiCache/ServerlessCache/CacheUsageLimitsProperty.hs view
@@ -0,0 +1,49 @@+module Stratosphere.ElastiCache.ServerlessCache.CacheUsageLimitsProperty (+        module Exports, CacheUsageLimitsProperty(..),+        mkCacheUsageLimitsProperty+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import {-# SOURCE #-} Stratosphere.ElastiCache.ServerlessCache.DataStorageProperty as Exports+import {-# SOURCE #-} Stratosphere.ElastiCache.ServerlessCache.ECPUPerSecondProperty as Exports+import Stratosphere.ResourceProperties+data CacheUsageLimitsProperty+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-serverlesscache-cacheusagelimits.html>+    CacheUsageLimitsProperty {haddock_workaround_ :: (),+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-serverlesscache-cacheusagelimits.html#cfn-elasticache-serverlesscache-cacheusagelimits-datastorage>+                              dataStorage :: (Prelude.Maybe DataStorageProperty),+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-serverlesscache-cacheusagelimits.html#cfn-elasticache-serverlesscache-cacheusagelimits-ecpupersecond>+                              eCPUPerSecond :: (Prelude.Maybe ECPUPerSecondProperty)}+  deriving stock (Prelude.Eq, Prelude.Show)+mkCacheUsageLimitsProperty :: CacheUsageLimitsProperty+mkCacheUsageLimitsProperty+  = CacheUsageLimitsProperty+      {haddock_workaround_ = (), dataStorage = Prelude.Nothing,+       eCPUPerSecond = Prelude.Nothing}+instance ToResourceProperties CacheUsageLimitsProperty where+  toResourceProperties CacheUsageLimitsProperty {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::ServerlessCache.CacheUsageLimits",+         supportsTags = Prelude.False,+         properties = Prelude.fromList+                        (Prelude.catMaybes+                           [(JSON..=) "DataStorage" Prelude.<$> dataStorage,+                            (JSON..=) "ECPUPerSecond" Prelude.<$> eCPUPerSecond])}+instance JSON.ToJSON CacheUsageLimitsProperty where+  toJSON CacheUsageLimitsProperty {..}+    = JSON.object+        (Prelude.fromList+           (Prelude.catMaybes+              [(JSON..=) "DataStorage" Prelude.<$> dataStorage,+               (JSON..=) "ECPUPerSecond" Prelude.<$> eCPUPerSecond]))+instance Property "DataStorage" CacheUsageLimitsProperty where+  type PropertyType "DataStorage" CacheUsageLimitsProperty = DataStorageProperty+  set newValue CacheUsageLimitsProperty {..}+    = CacheUsageLimitsProperty+        {dataStorage = Prelude.pure newValue, ..}+instance Property "ECPUPerSecond" CacheUsageLimitsProperty where+  type PropertyType "ECPUPerSecond" CacheUsageLimitsProperty = ECPUPerSecondProperty+  set newValue CacheUsageLimitsProperty {..}+    = CacheUsageLimitsProperty+        {eCPUPerSecond = Prelude.pure newValue, ..}
+ gen/Stratosphere/ElastiCache/ServerlessCache/CacheUsageLimitsProperty.hs-boot view
@@ -0,0 +1,9 @@+module Stratosphere.ElastiCache.ServerlessCache.CacheUsageLimitsProperty where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.ResourceProperties+data CacheUsageLimitsProperty :: Prelude.Type+instance ToResourceProperties CacheUsageLimitsProperty+instance Prelude.Eq CacheUsageLimitsProperty+instance Prelude.Show CacheUsageLimitsProperty+instance JSON.ToJSON CacheUsageLimitsProperty
+ gen/Stratosphere/ElastiCache/ServerlessCache/DataStorageProperty.hs view
@@ -0,0 +1,55 @@+module Stratosphere.ElastiCache.ServerlessCache.DataStorageProperty (+        DataStorageProperty(..), mkDataStorageProperty+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import Stratosphere.ResourceProperties+import Stratosphere.Value+data DataStorageProperty+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-serverlesscache-datastorage.html>+    DataStorageProperty {haddock_workaround_ :: (),+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-serverlesscache-datastorage.html#cfn-elasticache-serverlesscache-datastorage-maximum>+                         maximum :: (Prelude.Maybe (Value Prelude.Integer)),+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-serverlesscache-datastorage.html#cfn-elasticache-serverlesscache-datastorage-minimum>+                         minimum :: (Prelude.Maybe (Value Prelude.Integer)),+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-serverlesscache-datastorage.html#cfn-elasticache-serverlesscache-datastorage-unit>+                         unit :: (Value Prelude.Text)}+  deriving stock (Prelude.Eq, Prelude.Show)+mkDataStorageProperty :: Value Prelude.Text -> DataStorageProperty+mkDataStorageProperty unit+  = DataStorageProperty+      {haddock_workaround_ = (), unit = unit, maximum = Prelude.Nothing,+       minimum = Prelude.Nothing}+instance ToResourceProperties DataStorageProperty where+  toResourceProperties DataStorageProperty {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::ServerlessCache.DataStorage",+         supportsTags = Prelude.False,+         properties = Prelude.fromList+                        ((Prelude.<>)+                           ["Unit" JSON..= unit]+                           (Prelude.catMaybes+                              [(JSON..=) "Maximum" Prelude.<$> maximum,+                               (JSON..=) "Minimum" Prelude.<$> minimum]))}+instance JSON.ToJSON DataStorageProperty where+  toJSON DataStorageProperty {..}+    = JSON.object+        (Prelude.fromList+           ((Prelude.<>)+              ["Unit" JSON..= unit]+              (Prelude.catMaybes+                 [(JSON..=) "Maximum" Prelude.<$> maximum,+                  (JSON..=) "Minimum" Prelude.<$> minimum])))+instance Property "Maximum" DataStorageProperty where+  type PropertyType "Maximum" DataStorageProperty = Value Prelude.Integer+  set newValue DataStorageProperty {..}+    = DataStorageProperty {maximum = Prelude.pure newValue, ..}+instance Property "Minimum" DataStorageProperty where+  type PropertyType "Minimum" DataStorageProperty = Value Prelude.Integer+  set newValue DataStorageProperty {..}+    = DataStorageProperty {minimum = Prelude.pure newValue, ..}+instance Property "Unit" DataStorageProperty where+  type PropertyType "Unit" DataStorageProperty = Value Prelude.Text+  set newValue DataStorageProperty {..}+    = DataStorageProperty {unit = newValue, ..}
+ gen/Stratosphere/ElastiCache/ServerlessCache/DataStorageProperty.hs-boot view
@@ -0,0 +1,9 @@+module Stratosphere.ElastiCache.ServerlessCache.DataStorageProperty where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.ResourceProperties+data DataStorageProperty :: Prelude.Type+instance ToResourceProperties DataStorageProperty+instance Prelude.Eq DataStorageProperty+instance Prelude.Show DataStorageProperty+instance JSON.ToJSON DataStorageProperty
+ gen/Stratosphere/ElastiCache/ServerlessCache/ECPUPerSecondProperty.hs view
@@ -0,0 +1,45 @@+module Stratosphere.ElastiCache.ServerlessCache.ECPUPerSecondProperty (+        ECPUPerSecondProperty(..), mkECPUPerSecondProperty+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import Stratosphere.ResourceProperties+import Stratosphere.Value+data ECPUPerSecondProperty+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-serverlesscache-ecpupersecond.html>+    ECPUPerSecondProperty {haddock_workaround_ :: (),+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-serverlesscache-ecpupersecond.html#cfn-elasticache-serverlesscache-ecpupersecond-maximum>+                           maximum :: (Prelude.Maybe (Value Prelude.Integer)),+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-serverlesscache-ecpupersecond.html#cfn-elasticache-serverlesscache-ecpupersecond-minimum>+                           minimum :: (Prelude.Maybe (Value Prelude.Integer))}+  deriving stock (Prelude.Eq, Prelude.Show)+mkECPUPerSecondProperty :: ECPUPerSecondProperty+mkECPUPerSecondProperty+  = ECPUPerSecondProperty+      {haddock_workaround_ = (), maximum = Prelude.Nothing,+       minimum = Prelude.Nothing}+instance ToResourceProperties ECPUPerSecondProperty where+  toResourceProperties ECPUPerSecondProperty {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::ServerlessCache.ECPUPerSecond",+         supportsTags = Prelude.False,+         properties = Prelude.fromList+                        (Prelude.catMaybes+                           [(JSON..=) "Maximum" Prelude.<$> maximum,+                            (JSON..=) "Minimum" Prelude.<$> minimum])}+instance JSON.ToJSON ECPUPerSecondProperty where+  toJSON ECPUPerSecondProperty {..}+    = JSON.object+        (Prelude.fromList+           (Prelude.catMaybes+              [(JSON..=) "Maximum" Prelude.<$> maximum,+               (JSON..=) "Minimum" Prelude.<$> minimum]))+instance Property "Maximum" ECPUPerSecondProperty where+  type PropertyType "Maximum" ECPUPerSecondProperty = Value Prelude.Integer+  set newValue ECPUPerSecondProperty {..}+    = ECPUPerSecondProperty {maximum = Prelude.pure newValue, ..}+instance Property "Minimum" ECPUPerSecondProperty where+  type PropertyType "Minimum" ECPUPerSecondProperty = Value Prelude.Integer+  set newValue ECPUPerSecondProperty {..}+    = ECPUPerSecondProperty {minimum = Prelude.pure newValue, ..}
+ gen/Stratosphere/ElastiCache/ServerlessCache/ECPUPerSecondProperty.hs-boot view
@@ -0,0 +1,9 @@+module Stratosphere.ElastiCache.ServerlessCache.ECPUPerSecondProperty where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.ResourceProperties+data ECPUPerSecondProperty :: Prelude.Type+instance ToResourceProperties ECPUPerSecondProperty+instance Prelude.Eq ECPUPerSecondProperty+instance Prelude.Show ECPUPerSecondProperty+instance JSON.ToJSON ECPUPerSecondProperty
+ gen/Stratosphere/ElastiCache/ServerlessCache/EndpointProperty.hs view
@@ -0,0 +1,45 @@+module Stratosphere.ElastiCache.ServerlessCache.EndpointProperty (+        EndpointProperty(..), mkEndpointProperty+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import Stratosphere.ResourceProperties+import Stratosphere.Value+data EndpointProperty+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-serverlesscache-endpoint.html>+    EndpointProperty {haddock_workaround_ :: (),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-serverlesscache-endpoint.html#cfn-elasticache-serverlesscache-endpoint-address>+                      address :: (Prelude.Maybe (Value Prelude.Text)),+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-serverlesscache-endpoint.html#cfn-elasticache-serverlesscache-endpoint-port>+                      port :: (Prelude.Maybe (Value Prelude.Text))}+  deriving stock (Prelude.Eq, Prelude.Show)+mkEndpointProperty :: EndpointProperty+mkEndpointProperty+  = EndpointProperty+      {haddock_workaround_ = (), address = Prelude.Nothing,+       port = Prelude.Nothing}+instance ToResourceProperties EndpointProperty where+  toResourceProperties EndpointProperty {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::ServerlessCache.Endpoint",+         supportsTags = Prelude.False,+         properties = Prelude.fromList+                        (Prelude.catMaybes+                           [(JSON..=) "Address" Prelude.<$> address,+                            (JSON..=) "Port" Prelude.<$> port])}+instance JSON.ToJSON EndpointProperty where+  toJSON EndpointProperty {..}+    = JSON.object+        (Prelude.fromList+           (Prelude.catMaybes+              [(JSON..=) "Address" Prelude.<$> address,+               (JSON..=) "Port" Prelude.<$> port]))+instance Property "Address" EndpointProperty where+  type PropertyType "Address" EndpointProperty = Value Prelude.Text+  set newValue EndpointProperty {..}+    = EndpointProperty {address = Prelude.pure newValue, ..}+instance Property "Port" EndpointProperty where+  type PropertyType "Port" EndpointProperty = Value Prelude.Text+  set newValue EndpointProperty {..}+    = EndpointProperty {port = Prelude.pure newValue, ..}
+ gen/Stratosphere/ElastiCache/ServerlessCache/EndpointProperty.hs-boot view
@@ -0,0 +1,9 @@+module Stratosphere.ElastiCache.ServerlessCache.EndpointProperty where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.ResourceProperties+data EndpointProperty :: Prelude.Type+instance ToResourceProperties EndpointProperty+instance Prelude.Eq EndpointProperty+instance Prelude.Show EndpointProperty+instance JSON.ToJSON EndpointProperty
+ gen/Stratosphere/ElastiCache/SubnetGroup.hs view
@@ -0,0 +1,64 @@+module Stratosphere.ElastiCache.SubnetGroup (+        SubnetGroup(..), mkSubnetGroup+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import Stratosphere.ResourceProperties+import Stratosphere.Tag+import Stratosphere.Value+data SubnetGroup+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-subnetgroup.html>+    SubnetGroup {haddock_workaround_ :: (),+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-subnetgroup.html#cfn-elasticache-subnetgroup-cachesubnetgroupname>+                 cacheSubnetGroupName :: (Prelude.Maybe (Value Prelude.Text)),+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-subnetgroup.html#cfn-elasticache-subnetgroup-description>+                 description :: (Value Prelude.Text),+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-subnetgroup.html#cfn-elasticache-subnetgroup-subnetids>+                 subnetIds :: (ValueList Prelude.Text),+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-subnetgroup.html#cfn-elasticache-subnetgroup-tags>+                 tags :: (Prelude.Maybe [Tag])}+  deriving stock (Prelude.Eq, Prelude.Show)+mkSubnetGroup ::+  Value Prelude.Text -> ValueList Prelude.Text -> SubnetGroup+mkSubnetGroup description subnetIds+  = SubnetGroup+      {haddock_workaround_ = (), description = description,+       subnetIds = subnetIds, cacheSubnetGroupName = Prelude.Nothing,+       tags = Prelude.Nothing}+instance ToResourceProperties SubnetGroup where+  toResourceProperties SubnetGroup {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::SubnetGroup",+         supportsTags = Prelude.True,+         properties = Prelude.fromList+                        ((Prelude.<>)+                           ["Description" JSON..= description, "SubnetIds" JSON..= subnetIds]+                           (Prelude.catMaybes+                              [(JSON..=) "CacheSubnetGroupName" Prelude.<$> cacheSubnetGroupName,+                               (JSON..=) "Tags" Prelude.<$> tags]))}+instance JSON.ToJSON SubnetGroup where+  toJSON SubnetGroup {..}+    = JSON.object+        (Prelude.fromList+           ((Prelude.<>)+              ["Description" JSON..= description, "SubnetIds" JSON..= subnetIds]+              (Prelude.catMaybes+                 [(JSON..=) "CacheSubnetGroupName" Prelude.<$> cacheSubnetGroupName,+                  (JSON..=) "Tags" Prelude.<$> tags])))+instance Property "CacheSubnetGroupName" SubnetGroup where+  type PropertyType "CacheSubnetGroupName" SubnetGroup = Value Prelude.Text+  set newValue SubnetGroup {..}+    = SubnetGroup {cacheSubnetGroupName = Prelude.pure newValue, ..}+instance Property "Description" SubnetGroup where+  type PropertyType "Description" SubnetGroup = Value Prelude.Text+  set newValue SubnetGroup {..}+    = SubnetGroup {description = newValue, ..}+instance Property "SubnetIds" SubnetGroup where+  type PropertyType "SubnetIds" SubnetGroup = ValueList Prelude.Text+  set newValue SubnetGroup {..}+    = SubnetGroup {subnetIds = newValue, ..}+instance Property "Tags" SubnetGroup where+  type PropertyType "Tags" SubnetGroup = [Tag]+  set newValue SubnetGroup {..}+    = SubnetGroup {tags = Prelude.pure newValue, ..}
+ gen/Stratosphere/ElastiCache/User.hs view
@@ -0,0 +1,95 @@+module Stratosphere.ElastiCache.User (+        module Exports, User(..), mkUser+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import {-# SOURCE #-} Stratosphere.ElastiCache.User.AuthenticationModeProperty as Exports+import Stratosphere.ResourceProperties+import Stratosphere.Tag+import Stratosphere.Value+data User+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-user.html>+    User {haddock_workaround_ :: (),+          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-user.html#cfn-elasticache-user-accessstring>+          accessString :: (Prelude.Maybe (Value Prelude.Text)),+          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-user.html#cfn-elasticache-user-authenticationmode>+          authenticationMode :: (Prelude.Maybe AuthenticationModeProperty),+          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-user.html#cfn-elasticache-user-engine>+          engine :: (Value Prelude.Text),+          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-user.html#cfn-elasticache-user-nopasswordrequired>+          noPasswordRequired :: (Prelude.Maybe (Value Prelude.Bool)),+          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-user.html#cfn-elasticache-user-passwords>+          passwords :: (Prelude.Maybe (ValueList Prelude.Text)),+          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-user.html#cfn-elasticache-user-tags>+          tags :: (Prelude.Maybe [Tag]),+          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-user.html#cfn-elasticache-user-userid>+          userId :: (Value Prelude.Text),+          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-user.html#cfn-elasticache-user-username>+          userName :: (Value Prelude.Text)}+  deriving stock (Prelude.Eq, Prelude.Show)+mkUser ::+  Value Prelude.Text+  -> Value Prelude.Text -> Value Prelude.Text -> User+mkUser engine userId userName+  = User+      {haddock_workaround_ = (), engine = engine, userId = userId,+       userName = userName, accessString = Prelude.Nothing,+       authenticationMode = Prelude.Nothing,+       noPasswordRequired = Prelude.Nothing, passwords = Prelude.Nothing,+       tags = Prelude.Nothing}+instance ToResourceProperties User where+  toResourceProperties User {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::User", supportsTags = Prelude.True,+         properties = Prelude.fromList+                        ((Prelude.<>)+                           ["Engine" JSON..= engine, "UserId" JSON..= userId,+                            "UserName" JSON..= userName]+                           (Prelude.catMaybes+                              [(JSON..=) "AccessString" Prelude.<$> accessString,+                               (JSON..=) "AuthenticationMode" Prelude.<$> authenticationMode,+                               (JSON..=) "NoPasswordRequired" Prelude.<$> noPasswordRequired,+                               (JSON..=) "Passwords" Prelude.<$> passwords,+                               (JSON..=) "Tags" Prelude.<$> tags]))}+instance JSON.ToJSON User where+  toJSON User {..}+    = JSON.object+        (Prelude.fromList+           ((Prelude.<>)+              ["Engine" JSON..= engine, "UserId" JSON..= userId,+               "UserName" JSON..= userName]+              (Prelude.catMaybes+                 [(JSON..=) "AccessString" Prelude.<$> accessString,+                  (JSON..=) "AuthenticationMode" Prelude.<$> authenticationMode,+                  (JSON..=) "NoPasswordRequired" Prelude.<$> noPasswordRequired,+                  (JSON..=) "Passwords" Prelude.<$> passwords,+                  (JSON..=) "Tags" Prelude.<$> tags])))+instance Property "AccessString" User where+  type PropertyType "AccessString" User = Value Prelude.Text+  set newValue User {..}+    = User {accessString = Prelude.pure newValue, ..}+instance Property "AuthenticationMode" User where+  type PropertyType "AuthenticationMode" User = AuthenticationModeProperty+  set newValue User {..}+    = User {authenticationMode = Prelude.pure newValue, ..}+instance Property "Engine" User where+  type PropertyType "Engine" User = Value Prelude.Text+  set newValue User {..} = User {engine = newValue, ..}+instance Property "NoPasswordRequired" User where+  type PropertyType "NoPasswordRequired" User = Value Prelude.Bool+  set newValue User {..}+    = User {noPasswordRequired = Prelude.pure newValue, ..}+instance Property "Passwords" User where+  type PropertyType "Passwords" User = ValueList Prelude.Text+  set newValue User {..}+    = User {passwords = Prelude.pure newValue, ..}+instance Property "Tags" User where+  type PropertyType "Tags" User = [Tag]+  set newValue User {..} = User {tags = Prelude.pure newValue, ..}+instance Property "UserId" User where+  type PropertyType "UserId" User = Value Prelude.Text+  set newValue User {..} = User {userId = newValue, ..}+instance Property "UserName" User where+  type PropertyType "UserName" User = Value Prelude.Text+  set newValue User {..} = User {userName = newValue, ..}
+ gen/Stratosphere/ElastiCache/User/AuthenticationModeProperty.hs view
@@ -0,0 +1,47 @@+module Stratosphere.ElastiCache.User.AuthenticationModeProperty (+        AuthenticationModeProperty(..), mkAuthenticationModeProperty+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import Stratosphere.ResourceProperties+import Stratosphere.Value+data AuthenticationModeProperty+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-user-authenticationmode.html>+    AuthenticationModeProperty {haddock_workaround_ :: (),+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-user-authenticationmode.html#cfn-elasticache-user-authenticationmode-passwords>+                                passwords :: (Prelude.Maybe (ValueList Prelude.Text)),+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-user-authenticationmode.html#cfn-elasticache-user-authenticationmode-type>+                                type' :: (Value Prelude.Text)}+  deriving stock (Prelude.Eq, Prelude.Show)+mkAuthenticationModeProperty ::+  Value Prelude.Text -> AuthenticationModeProperty+mkAuthenticationModeProperty type'+  = AuthenticationModeProperty+      {haddock_workaround_ = (), type' = type',+       passwords = Prelude.Nothing}+instance ToResourceProperties AuthenticationModeProperty where+  toResourceProperties AuthenticationModeProperty {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::User.AuthenticationMode",+         supportsTags = Prelude.False,+         properties = Prelude.fromList+                        ((Prelude.<>)+                           ["Type" JSON..= type']+                           (Prelude.catMaybes [(JSON..=) "Passwords" Prelude.<$> passwords]))}+instance JSON.ToJSON AuthenticationModeProperty where+  toJSON AuthenticationModeProperty {..}+    = JSON.object+        (Prelude.fromList+           ((Prelude.<>)+              ["Type" JSON..= type']+              (Prelude.catMaybes [(JSON..=) "Passwords" Prelude.<$> passwords])))+instance Property "Passwords" AuthenticationModeProperty where+  type PropertyType "Passwords" AuthenticationModeProperty = ValueList Prelude.Text+  set newValue AuthenticationModeProperty {..}+    = AuthenticationModeProperty+        {passwords = Prelude.pure newValue, ..}+instance Property "Type" AuthenticationModeProperty where+  type PropertyType "Type" AuthenticationModeProperty = Value Prelude.Text+  set newValue AuthenticationModeProperty {..}+    = AuthenticationModeProperty {type' = newValue, ..}
+ gen/Stratosphere/ElastiCache/User/AuthenticationModeProperty.hs-boot view
@@ -0,0 +1,9 @@+module Stratosphere.ElastiCache.User.AuthenticationModeProperty where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.ResourceProperties+data AuthenticationModeProperty :: Prelude.Type+instance ToResourceProperties AuthenticationModeProperty+instance Prelude.Eq AuthenticationModeProperty+instance Prelude.Show AuthenticationModeProperty+instance JSON.ToJSON AuthenticationModeProperty
+ gen/Stratosphere/ElastiCache/UserGroup.hs view
@@ -0,0 +1,61 @@+module Stratosphere.ElastiCache.UserGroup (+        UserGroup(..), mkUserGroup+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import Stratosphere.ResourceProperties+import Stratosphere.Tag+import Stratosphere.Value+data UserGroup+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-usergroup.html>+    UserGroup {haddock_workaround_ :: (),+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-usergroup.html#cfn-elasticache-usergroup-engine>+               engine :: (Value Prelude.Text),+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-usergroup.html#cfn-elasticache-usergroup-tags>+               tags :: (Prelude.Maybe [Tag]),+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-usergroup.html#cfn-elasticache-usergroup-usergroupid>+               userGroupId :: (Value Prelude.Text),+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-usergroup.html#cfn-elasticache-usergroup-userids>+               userIds :: (ValueList Prelude.Text)}+  deriving stock (Prelude.Eq, Prelude.Show)+mkUserGroup ::+  Value Prelude.Text+  -> Value Prelude.Text -> ValueList Prelude.Text -> UserGroup+mkUserGroup engine userGroupId userIds+  = UserGroup+      {haddock_workaround_ = (), engine = engine,+       userGroupId = userGroupId, userIds = userIds,+       tags = Prelude.Nothing}+instance ToResourceProperties UserGroup where+  toResourceProperties UserGroup {..}+    = ResourceProperties+        {awsType = "AWS::ElastiCache::UserGroup",+         supportsTags = Prelude.True,+         properties = Prelude.fromList+                        ((Prelude.<>)+                           ["Engine" JSON..= engine, "UserGroupId" JSON..= userGroupId,+                            "UserIds" JSON..= userIds]+                           (Prelude.catMaybes [(JSON..=) "Tags" Prelude.<$> tags]))}+instance JSON.ToJSON UserGroup where+  toJSON UserGroup {..}+    = JSON.object+        (Prelude.fromList+           ((Prelude.<>)+              ["Engine" JSON..= engine, "UserGroupId" JSON..= userGroupId,+               "UserIds" JSON..= userIds]+              (Prelude.catMaybes [(JSON..=) "Tags" Prelude.<$> tags])))+instance Property "Engine" UserGroup where+  type PropertyType "Engine" UserGroup = Value Prelude.Text+  set newValue UserGroup {..} = UserGroup {engine = newValue, ..}+instance Property "Tags" UserGroup where+  type PropertyType "Tags" UserGroup = [Tag]+  set newValue UserGroup {..}+    = UserGroup {tags = Prelude.pure newValue, ..}+instance Property "UserGroupId" UserGroup where+  type PropertyType "UserGroupId" UserGroup = Value Prelude.Text+  set newValue UserGroup {..}+    = UserGroup {userGroupId = newValue, ..}+instance Property "UserIds" UserGroup where+  type PropertyType "UserIds" UserGroup = ValueList Prelude.Text+  set newValue UserGroup {..} = UserGroup {userIds = newValue, ..}
+ stratosphere-elasticache.cabal view
@@ -0,0 +1,99 @@+cabal-version: 1.12++-- This file has been generated from package.yaml by hpack version 0.38.2.+--+-- see: https://github.com/sol/hpack++name:           stratosphere-elasticache+version:        1.0.0+synopsis:       Stratosphere integration for AWS ElastiCache.+description:    Integration into stratosphere to generate resources and properties for AWS ElastiCache+category:       AWS, Cloud, ElastiCache+stability:      experimental+homepage:       https://github.com/mbj/stratosphere#readme+bug-reports:    https://github.com/mbj/stratosphere/issues+maintainer:     Markus Schirp+license:        MIT+license-file:   LICENSE.md+build-type:     Simple++source-repository head+  type: git+  location: https://github.com/mbj/stratosphere++flag development+  description: Run GHC with development flags+  manual: True+  default: False++library+  exposed-modules:+      Stratosphere.ElastiCache.CacheCluster+      Stratosphere.ElastiCache.CacheCluster.CloudWatchLogsDestinationDetailsProperty+      Stratosphere.ElastiCache.CacheCluster.DestinationDetailsProperty+      Stratosphere.ElastiCache.CacheCluster.KinesisFirehoseDestinationDetailsProperty+      Stratosphere.ElastiCache.CacheCluster.LogDeliveryConfigurationRequestProperty+      Stratosphere.ElastiCache.GlobalReplicationGroup+      Stratosphere.ElastiCache.GlobalReplicationGroup.GlobalReplicationGroupMemberProperty+      Stratosphere.ElastiCache.GlobalReplicationGroup.RegionalConfigurationProperty+      Stratosphere.ElastiCache.GlobalReplicationGroup.ReshardingConfigurationProperty+      Stratosphere.ElastiCache.ParameterGroup+      Stratosphere.ElastiCache.ReplicationGroup+      Stratosphere.ElastiCache.ReplicationGroup.CloudWatchLogsDestinationDetailsProperty+      Stratosphere.ElastiCache.ReplicationGroup.DestinationDetailsProperty+      Stratosphere.ElastiCache.ReplicationGroup.KinesisFirehoseDestinationDetailsProperty+      Stratosphere.ElastiCache.ReplicationGroup.LogDeliveryConfigurationRequestProperty+      Stratosphere.ElastiCache.ReplicationGroup.NodeGroupConfigurationProperty+      Stratosphere.ElastiCache.SecurityGroup+      Stratosphere.ElastiCache.SecurityGroupIngress+      Stratosphere.ElastiCache.ServerlessCache+      Stratosphere.ElastiCache.ServerlessCache.CacheUsageLimitsProperty+      Stratosphere.ElastiCache.ServerlessCache.DataStorageProperty+      Stratosphere.ElastiCache.ServerlessCache.ECPUPerSecondProperty+      Stratosphere.ElastiCache.ServerlessCache.EndpointProperty+      Stratosphere.ElastiCache.SubnetGroup+      Stratosphere.ElastiCache.User+      Stratosphere.ElastiCache.User.AuthenticationModeProperty+      Stratosphere.ElastiCache.UserGroup+  other-modules:+      Paths_stratosphere_elasticache+  hs-source-dirs:+      gen+  default-extensions:+      DataKinds+      DeriveGeneric+      DerivingStrategies+      DerivingVia+      DuplicateRecordFields+      FlexibleContexts+      FlexibleInstances+      GADTs+      GeneralizedNewtypeDeriving+      InstanceSigs+      LambdaCase+      MultiParamTypeClasses+      NoFieldSelectors+      NoImplicitPrelude+      NumericUnderscores+      OverloadedLists+      OverloadedRecordDot+      OverloadedStrings+      PolyKinds+      RecordWildCards+      ScopedTypeVariables+      StandaloneDeriving+      Strict+      TemplateHaskell+      TupleSections+      TypeApplications+      TypeFamilies+  ghc-options: -Wall -Wcompat -Widentities -Wimplicit-prelude -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-local-signatures -Wmissing-signatures -Wmonomorphism-restriction -Wredundant-constraints -fhide-source-paths -funbox-strict-fields -optP-Wno-nonportable-include-path -Wno-unused-imports+  build-depends:+      aeson ==2.*+    , base >=4.8 && <4.22+    , stratosphere ==1.0.0+  default-language: Haskell2010+  if flag(development)+    ghc-options: -Werror+  else+    ghc-options: -Wwarn