packages feed

amazonka-elasticache 1.4.5 → 1.5.0

raw patch · 53 files changed

+5163/−4134 lines, 53 filesdep ~amazonka-coredep ~amazonka-elasticachedep ~amazonka-testPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: amazonka-core, amazonka-elasticache, amazonka-test

API changes (from Hackage documentation)

+ Network.AWS.ElastiCache: _APICallRateForCustomerExceededFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _NodeGroupNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _TestFailoverNotAvailableFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: ccAtRestEncryptionEnabled :: Lens' CacheCluster (Maybe Bool)
+ Network.AWS.ElastiCache: ccAuthTokenEnabled :: Lens' CacheCluster (Maybe Bool)
+ Network.AWS.ElastiCache: ccTransitEncryptionEnabled :: Lens' CacheCluster (Maybe Bool)
+ Network.AWS.ElastiCache: data ReshardingConfiguration
+ Network.AWS.ElastiCache: data ReshardingStatus
+ Network.AWS.ElastiCache: data SlotMigration
+ Network.AWS.ElastiCache: rcPreferredAvailabilityZones :: Lens' ReshardingConfiguration [Text]
+ Network.AWS.ElastiCache: reshardingConfiguration :: ReshardingConfiguration
+ Network.AWS.ElastiCache: reshardingStatus :: ReshardingStatus
+ Network.AWS.ElastiCache: rgAtRestEncryptionEnabled :: Lens' ReplicationGroup (Maybe Bool)
+ Network.AWS.ElastiCache: rgAuthTokenEnabled :: Lens' ReplicationGroup (Maybe Bool)
+ Network.AWS.ElastiCache: rgCacheNodeType :: Lens' ReplicationGroup (Maybe Text)
+ Network.AWS.ElastiCache: rgClusterEnabled :: Lens' ReplicationGroup (Maybe Bool)
+ Network.AWS.ElastiCache: rgTransitEncryptionEnabled :: Lens' ReplicationGroup (Maybe Bool)
+ Network.AWS.ElastiCache: rgpmvResharding :: Lens' ReplicationGroupPendingModifiedValues (Maybe ReshardingStatus)
+ Network.AWS.ElastiCache: rsSlotMigration :: Lens' ReshardingStatus (Maybe SlotMigration)
+ Network.AWS.ElastiCache: slotMigration :: SlotMigration
+ Network.AWS.ElastiCache: smProgressPercentage :: Lens' SlotMigration (Maybe Double)
+ Network.AWS.ElastiCache.CreateReplicationGroup: crgAtRestEncryptionEnabled :: Lens' CreateReplicationGroup (Maybe Bool)
+ Network.AWS.ElastiCache.CreateReplicationGroup: crgTransitEncryptionEnabled :: Lens' CreateReplicationGroup (Maybe Bool)
+ Network.AWS.ElastiCache.DescribeCacheClusters: dShowCacheClustersNotInReplicationGroups :: Lens' DescribeCacheClusters (Maybe Bool)
+ Network.AWS.ElastiCache.ModifyReplicationGroup: mrgNodeGroupId :: Lens' ModifyReplicationGroup (Maybe Text)
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: data ModifyReplicationGroupShardConfiguration
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: data ModifyReplicationGroupShardConfigurationResponse
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: instance Control.DeepSeq.NFData Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration.ModifyReplicationGroupShardConfiguration
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: instance Control.DeepSeq.NFData Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration.ModifyReplicationGroupShardConfigurationResponse
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: instance Data.Data.Data Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration.ModifyReplicationGroupShardConfiguration
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: instance Data.Data.Data Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration.ModifyReplicationGroupShardConfigurationResponse
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: instance Data.Hashable.Class.Hashable Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration.ModifyReplicationGroupShardConfiguration
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: instance GHC.Classes.Eq Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration.ModifyReplicationGroupShardConfiguration
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: instance GHC.Classes.Eq Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration.ModifyReplicationGroupShardConfigurationResponse
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: instance GHC.Generics.Generic Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration.ModifyReplicationGroupShardConfiguration
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: instance GHC.Generics.Generic Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration.ModifyReplicationGroupShardConfigurationResponse
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: instance GHC.Read.Read Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration.ModifyReplicationGroupShardConfiguration
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: instance GHC.Read.Read Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration.ModifyReplicationGroupShardConfigurationResponse
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: instance GHC.Show.Show Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration.ModifyReplicationGroupShardConfiguration
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: instance GHC.Show.Show Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration.ModifyReplicationGroupShardConfigurationResponse
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration.ModifyReplicationGroupShardConfiguration
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: instance Network.AWS.Data.Path.ToPath Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration.ModifyReplicationGroupShardConfiguration
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: instance Network.AWS.Data.Query.ToQuery Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration.ModifyReplicationGroupShardConfiguration
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: instance Network.AWS.Types.AWSRequest Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration.ModifyReplicationGroupShardConfiguration
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: modifyReplicationGroupShardConfiguration :: Text -> Int -> Bool -> ModifyReplicationGroupShardConfiguration
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: modifyReplicationGroupShardConfigurationResponse :: Int -> ModifyReplicationGroupShardConfigurationResponse
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: mrgscApplyImmediately :: Lens' ModifyReplicationGroupShardConfiguration Bool
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: mrgscNodeGroupCount :: Lens' ModifyReplicationGroupShardConfiguration Int
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: mrgscNodeGroupsToRemove :: Lens' ModifyReplicationGroupShardConfiguration [Text]
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: mrgscReplicationGroupId :: Lens' ModifyReplicationGroupShardConfiguration Text
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: mrgscReshardingConfiguration :: Lens' ModifyReplicationGroupShardConfiguration [ReshardingConfiguration]
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: mrgscrsReplicationGroup :: Lens' ModifyReplicationGroupShardConfigurationResponse (Maybe ReplicationGroup)
+ Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration: mrgscrsResponseStatus :: Lens' ModifyReplicationGroupShardConfigurationResponse Int
+ Network.AWS.ElastiCache.TestFailover: data TestFailover
+ Network.AWS.ElastiCache.TestFailover: data TestFailoverResponse
+ Network.AWS.ElastiCache.TestFailover: instance Control.DeepSeq.NFData Network.AWS.ElastiCache.TestFailover.TestFailover
+ Network.AWS.ElastiCache.TestFailover: instance Control.DeepSeq.NFData Network.AWS.ElastiCache.TestFailover.TestFailoverResponse
+ Network.AWS.ElastiCache.TestFailover: instance Data.Data.Data Network.AWS.ElastiCache.TestFailover.TestFailover
+ Network.AWS.ElastiCache.TestFailover: instance Data.Data.Data Network.AWS.ElastiCache.TestFailover.TestFailoverResponse
+ Network.AWS.ElastiCache.TestFailover: instance Data.Hashable.Class.Hashable Network.AWS.ElastiCache.TestFailover.TestFailover
+ Network.AWS.ElastiCache.TestFailover: instance GHC.Classes.Eq Network.AWS.ElastiCache.TestFailover.TestFailover
+ Network.AWS.ElastiCache.TestFailover: instance GHC.Classes.Eq Network.AWS.ElastiCache.TestFailover.TestFailoverResponse
+ Network.AWS.ElastiCache.TestFailover: instance GHC.Generics.Generic Network.AWS.ElastiCache.TestFailover.TestFailover
+ Network.AWS.ElastiCache.TestFailover: instance GHC.Generics.Generic Network.AWS.ElastiCache.TestFailover.TestFailoverResponse
+ Network.AWS.ElastiCache.TestFailover: instance GHC.Read.Read Network.AWS.ElastiCache.TestFailover.TestFailover
+ Network.AWS.ElastiCache.TestFailover: instance GHC.Read.Read Network.AWS.ElastiCache.TestFailover.TestFailoverResponse
+ Network.AWS.ElastiCache.TestFailover: instance GHC.Show.Show Network.AWS.ElastiCache.TestFailover.TestFailover
+ Network.AWS.ElastiCache.TestFailover: instance GHC.Show.Show Network.AWS.ElastiCache.TestFailover.TestFailoverResponse
+ Network.AWS.ElastiCache.TestFailover: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ElastiCache.TestFailover.TestFailover
+ Network.AWS.ElastiCache.TestFailover: instance Network.AWS.Data.Path.ToPath Network.AWS.ElastiCache.TestFailover.TestFailover
+ Network.AWS.ElastiCache.TestFailover: instance Network.AWS.Data.Query.ToQuery Network.AWS.ElastiCache.TestFailover.TestFailover
+ Network.AWS.ElastiCache.TestFailover: instance Network.AWS.Types.AWSRequest Network.AWS.ElastiCache.TestFailover.TestFailover
+ Network.AWS.ElastiCache.TestFailover: testFailover :: Text -> Text -> TestFailover
+ Network.AWS.ElastiCache.TestFailover: testFailoverResponse :: Int -> TestFailoverResponse
+ Network.AWS.ElastiCache.TestFailover: tfNodeGroupId :: Lens' TestFailover Text
+ Network.AWS.ElastiCache.TestFailover: tfReplicationGroupId :: Lens' TestFailover Text
+ Network.AWS.ElastiCache.TestFailover: tfrsReplicationGroup :: Lens' TestFailoverResponse (Maybe ReplicationGroup)
+ Network.AWS.ElastiCache.TestFailover: tfrsResponseStatus :: Lens' TestFailoverResponse Int
+ Network.AWS.ElastiCache.Types: _APICallRateForCustomerExceededFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _NodeGroupNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _TestFailoverNotAvailableFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: ccAtRestEncryptionEnabled :: Lens' CacheCluster (Maybe Bool)
+ Network.AWS.ElastiCache.Types: ccAuthTokenEnabled :: Lens' CacheCluster (Maybe Bool)
+ Network.AWS.ElastiCache.Types: ccTransitEncryptionEnabled :: Lens' CacheCluster (Maybe Bool)
+ Network.AWS.ElastiCache.Types: data ReshardingConfiguration
+ Network.AWS.ElastiCache.Types: data ReshardingStatus
+ Network.AWS.ElastiCache.Types: data SlotMigration
+ Network.AWS.ElastiCache.Types: rcPreferredAvailabilityZones :: Lens' ReshardingConfiguration [Text]
+ Network.AWS.ElastiCache.Types: reshardingConfiguration :: ReshardingConfiguration
+ Network.AWS.ElastiCache.Types: reshardingStatus :: ReshardingStatus
+ Network.AWS.ElastiCache.Types: rgAtRestEncryptionEnabled :: Lens' ReplicationGroup (Maybe Bool)
+ Network.AWS.ElastiCache.Types: rgAuthTokenEnabled :: Lens' ReplicationGroup (Maybe Bool)
+ Network.AWS.ElastiCache.Types: rgCacheNodeType :: Lens' ReplicationGroup (Maybe Text)
+ Network.AWS.ElastiCache.Types: rgClusterEnabled :: Lens' ReplicationGroup (Maybe Bool)
+ Network.AWS.ElastiCache.Types: rgTransitEncryptionEnabled :: Lens' ReplicationGroup (Maybe Bool)
+ Network.AWS.ElastiCache.Types: rgpmvResharding :: Lens' ReplicationGroupPendingModifiedValues (Maybe ReshardingStatus)
+ Network.AWS.ElastiCache.Types: rsSlotMigration :: Lens' ReshardingStatus (Maybe SlotMigration)
+ Network.AWS.ElastiCache.Types: slotMigration :: SlotMigration
+ Network.AWS.ElastiCache.Types: smProgressPercentage :: Lens' SlotMigration (Maybe Double)

Files

README.md view
@@ -8,7 +8,7 @@  ## Version -`1.4.5`+`1.5.0`   ## Description
amazonka-elasticache.cabal view
@@ -1,13 +1,13 @@ name:                  amazonka-elasticache-version:               1.4.5+version:               1.5.0 synopsis:              Amazon ElastiCache SDK. homepage:              https://github.com/brendanhay/amazonka bug-reports:           https://github.com/brendanhay/amazonka/issues-license:               OtherLicense+license:               MPL-2.0 license-file:          LICENSE author:                Brendan Hay-maintainer:            Brendan Hay <brendan.g.hay@gmail.com>-copyright:             Copyright (c) 2013-2016 Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay+amazonka@gmail.com>+copyright:             Copyright (c) 2013-2017 Brendan Hay category:              Network, AWS, Cloud, Distributed Computing build-type:            Simple cabal-version:         >= 1.10@@ -29,14 +29,19 @@     to get started.  source-repository head-    type:     git-    location: git://github.com/brendanhay/amazonka.git+    type:              git+    location:          git://github.com/brendanhay/amazonka.git+    subdir:            amazonka-elasticache  library     default-language:  Haskell2010     hs-source-dirs:    src gen -    ghc-options:       -Wall+    ghc-options:+        -Wall+        -fwarn-incomplete-uni-patterns+        -fwarn-incomplete-record-updates+        -funbox-strict-fields      exposed-modules:           Network.AWS.ElastiCache@@ -73,11 +78,13 @@         , Network.AWS.ElastiCache.ModifyCacheParameterGroup         , Network.AWS.ElastiCache.ModifyCacheSubnetGroup         , Network.AWS.ElastiCache.ModifyReplicationGroup+        , Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration         , Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering         , Network.AWS.ElastiCache.RebootCacheCluster         , Network.AWS.ElastiCache.RemoveTagsFromResource         , Network.AWS.ElastiCache.ResetCacheParameterGroup         , Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress+        , Network.AWS.ElastiCache.TestFailover         , Network.AWS.ElastiCache.Types         , Network.AWS.ElastiCache.Waiters @@ -86,7 +93,7 @@         , Network.AWS.ElastiCache.Types.Sum      build-depends:-          amazonka-core == 1.4.5.*+          amazonka-core == 1.5.0.*         , base          >= 4.7     && < 5  test-suite amazonka-elasticache-test@@ -106,9 +113,9 @@         , Test.AWS.ElastiCache.Internal      build-depends:-          amazonka-core == 1.4.5.*-        , amazonka-test == 1.4.5.*-        , amazonka-elasticache == 1.4.5.*+          amazonka-core == 1.5.0.*+        , amazonka-test == 1.5.0.*+        , amazonka-elasticache         , base         , bytestring         , tasty
+ fixture/ModifyReplicationGroupShardConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/elasticache/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  elasticache.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ModifyReplicationGroupShardConfigurationResponse.proto view
+ fixture/TestFailover.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/elasticache/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  elasticache.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/TestFailoverResponse.proto view
gen/Network/AWS/ElastiCache.hs view
@@ -5,9 +5,9 @@  -- | -- Module      : Network.AWS.ElastiCache--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -84,6 +84,12 @@     -- ** NodeQuotaForClusterExceededFault     , _NodeQuotaForClusterExceededFault +    -- ** APICallRateForCustomerExceededFault+    , _APICallRateForCustomerExceededFault++    -- ** NodeGroupNotFoundFault+    , _NodeGroupNotFoundFault+     -- ** CacheParameterGroupAlreadyExistsFault     , _CacheParameterGroupAlreadyExistsFault @@ -99,6 +105,9 @@     -- ** InvalidParameterValueException     , _InvalidParameterValueException +    -- ** TestFailoverNotAvailableFault+    , _TestFailoverNotAvailableFault+     -- ** InvalidReplicationGroupStateFault     , _InvalidReplicationGroupStateFault @@ -201,6 +210,9 @@     -- ** ModifyCacheParameterGroup     , module Network.AWS.ElastiCache.ModifyCacheParameterGroup +    -- ** TestFailover+    , module Network.AWS.ElastiCache.TestFailover+     -- ** DeleteReplicationGroup     , module Network.AWS.ElastiCache.DeleteReplicationGroup @@ -249,6 +261,9 @@     -- ** ListAllowedNodeTypeModifications     , module Network.AWS.ElastiCache.ListAllowedNodeTypeModifications +    -- ** ModifyReplicationGroupShardConfiguration+    , module Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration+     -- ** DescribeSnapshots (Paginated)     , module Network.AWS.ElastiCache.DescribeSnapshots @@ -317,14 +332,17 @@     , ccCacheNodeType     , ccCacheNodes     , ccCacheClusterCreateTime+    , ccAtRestEncryptionEnabled     , ccAutoMinorVersionUpgrade     , ccSecurityGroups     , ccNotificationConfiguration+    , ccTransitEncryptionEnabled     , ccSnapshotWindow     , ccCacheClusterId     , ccConfigurationEndpoint     , ccEngine     , ccCacheSecurityGroups+    , ccAuthTokenEnabled     , ccClientDownloadLandingPage     , ccPreferredMaintenanceWindow     , ccCacheSubnetGroupName@@ -525,10 +543,15 @@     , ReplicationGroup     , replicationGroup     , rgStatus+    , rgCacheNodeType     , rgNodeGroups     , rgSnapshottingClusterId+    , rgClusterEnabled+    , rgAtRestEncryptionEnabled+    , rgTransitEncryptionEnabled     , rgSnapshotWindow     , rgConfigurationEndpoint+    , rgAuthTokenEnabled     , rgMemberClusters     , rgSnapshotRetentionLimit     , rgDescription@@ -539,6 +562,7 @@     -- ** ReplicationGroupPendingModifiedValues     , ReplicationGroupPendingModifiedValues     , replicationGroupPendingModifiedValues+    , rgpmvResharding     , rgpmvPrimaryClusterId     , rgpmvAutomaticFailoverStatus @@ -570,12 +594,27 @@     , rcnoDuration     , rcnoReservedCacheNodesOfferingId +    -- ** ReshardingConfiguration+    , ReshardingConfiguration+    , reshardingConfiguration+    , rcPreferredAvailabilityZones++    -- ** ReshardingStatus+    , ReshardingStatus+    , reshardingStatus+    , rsSlotMigration+     -- ** SecurityGroupMembership     , SecurityGroupMembership     , securityGroupMembership     , sgmStatus     , sgmSecurityGroupId +    -- ** SlotMigration+    , SlotMigration+    , slotMigration+    , smProgressPercentage+     -- ** Snapshot     , Snapshot     , snapshot@@ -622,46 +661,48 @@     , tlmTagList     ) where -import           Network.AWS.ElastiCache.AddTagsToResource-import           Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress-import           Network.AWS.ElastiCache.CopySnapshot-import           Network.AWS.ElastiCache.CreateCacheCluster-import           Network.AWS.ElastiCache.CreateCacheParameterGroup-import           Network.AWS.ElastiCache.CreateCacheSecurityGroup-import           Network.AWS.ElastiCache.CreateCacheSubnetGroup-import           Network.AWS.ElastiCache.CreateReplicationGroup-import           Network.AWS.ElastiCache.CreateSnapshot-import           Network.AWS.ElastiCache.DeleteCacheCluster-import           Network.AWS.ElastiCache.DeleteCacheParameterGroup-import           Network.AWS.ElastiCache.DeleteCacheSecurityGroup-import           Network.AWS.ElastiCache.DeleteCacheSubnetGroup-import           Network.AWS.ElastiCache.DeleteReplicationGroup-import           Network.AWS.ElastiCache.DeleteSnapshot-import           Network.AWS.ElastiCache.DescribeCacheClusters-import           Network.AWS.ElastiCache.DescribeCacheEngineVersions-import           Network.AWS.ElastiCache.DescribeCacheParameterGroups-import           Network.AWS.ElastiCache.DescribeCacheParameters-import           Network.AWS.ElastiCache.DescribeCacheSecurityGroups-import           Network.AWS.ElastiCache.DescribeCacheSubnetGroups-import           Network.AWS.ElastiCache.DescribeEngineDefaultParameters-import           Network.AWS.ElastiCache.DescribeEvents-import           Network.AWS.ElastiCache.DescribeReplicationGroups-import           Network.AWS.ElastiCache.DescribeReservedCacheNodes-import           Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings-import           Network.AWS.ElastiCache.DescribeSnapshots-import           Network.AWS.ElastiCache.ListAllowedNodeTypeModifications-import           Network.AWS.ElastiCache.ListTagsForResource-import           Network.AWS.ElastiCache.ModifyCacheCluster-import           Network.AWS.ElastiCache.ModifyCacheParameterGroup-import           Network.AWS.ElastiCache.ModifyCacheSubnetGroup-import           Network.AWS.ElastiCache.ModifyReplicationGroup-import           Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering-import           Network.AWS.ElastiCache.RebootCacheCluster-import           Network.AWS.ElastiCache.RemoveTagsFromResource-import           Network.AWS.ElastiCache.ResetCacheParameterGroup-import           Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress-import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Waiters+import Network.AWS.ElastiCache.AddTagsToResource+import Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress+import Network.AWS.ElastiCache.CopySnapshot+import Network.AWS.ElastiCache.CreateCacheCluster+import Network.AWS.ElastiCache.CreateCacheParameterGroup+import Network.AWS.ElastiCache.CreateCacheSecurityGroup+import Network.AWS.ElastiCache.CreateCacheSubnetGroup+import Network.AWS.ElastiCache.CreateReplicationGroup+import Network.AWS.ElastiCache.CreateSnapshot+import Network.AWS.ElastiCache.DeleteCacheCluster+import Network.AWS.ElastiCache.DeleteCacheParameterGroup+import Network.AWS.ElastiCache.DeleteCacheSecurityGroup+import Network.AWS.ElastiCache.DeleteCacheSubnetGroup+import Network.AWS.ElastiCache.DeleteReplicationGroup+import Network.AWS.ElastiCache.DeleteSnapshot+import Network.AWS.ElastiCache.DescribeCacheClusters+import Network.AWS.ElastiCache.DescribeCacheEngineVersions+import Network.AWS.ElastiCache.DescribeCacheParameterGroups+import Network.AWS.ElastiCache.DescribeCacheParameters+import Network.AWS.ElastiCache.DescribeCacheSecurityGroups+import Network.AWS.ElastiCache.DescribeCacheSubnetGroups+import Network.AWS.ElastiCache.DescribeEngineDefaultParameters+import Network.AWS.ElastiCache.DescribeEvents+import Network.AWS.ElastiCache.DescribeReplicationGroups+import Network.AWS.ElastiCache.DescribeReservedCacheNodes+import Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings+import Network.AWS.ElastiCache.DescribeSnapshots+import Network.AWS.ElastiCache.ListAllowedNodeTypeModifications+import Network.AWS.ElastiCache.ListTagsForResource+import Network.AWS.ElastiCache.ModifyCacheCluster+import Network.AWS.ElastiCache.ModifyCacheParameterGroup+import Network.AWS.ElastiCache.ModifyCacheSubnetGroup+import Network.AWS.ElastiCache.ModifyReplicationGroup+import Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration+import Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering+import Network.AWS.ElastiCache.RebootCacheCluster+import Network.AWS.ElastiCache.RemoveTagsFromResource+import Network.AWS.ElastiCache.ResetCacheParameterGroup+import Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress+import Network.AWS.ElastiCache.TestFailover+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Waiters  {- $errors Error matchers are designed for use with the functions provided by
gen/Network/AWS/ElastiCache/AddTagsToResource.hs view
@@ -12,13 +12,13 @@  -- | -- Module      : Network.AWS.ElastiCache.AddTagsToResource--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Adds up to 10 cost allocation tags to the named resource. A cost allocation tag is a key-value pair where the key and value are case-sensitive. You can use cost allocation tags to categorize and track your AWS costs.+-- Adds up to 50 cost allocation tags to the named resource. A cost allocation tag is a key-value pair where the key and value are case-sensitive. You can use cost allocation tags to categorize and track your AWS costs. -- -- -- When you apply tags to your ElastiCache resources, AWS generates a cost allocation report as a comma-separated value (CSV) file with your usage and costs aggregated by your tags. You can apply tags that represent business categories (such as cost centers, application names, or owners) to organize your costs across multiple services. For more information, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Tagging.html Using Cost Allocation Tags in Amazon ElastiCache> in the /ElastiCache User Guide/ .@@ -39,12 +39,12 @@     , tlmTagList     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of an AddTagsToResource operation. --@@ -52,27 +52,26 @@ -- -- /See:/ 'addTagsToResource' smart constructor. data AddTagsToResource = AddTagsToResource'-    { _attrResourceName :: !Text-    , _attrTags         :: ![Tag]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _attrResourceName :: !Text+  , _attrTags         :: ![Tag]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AddTagsToResource' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'attrResourceName' - The Amazon Resource Name (ARN) of the resource to which the tags are to be added, for example @arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster@ or @arn:aws:elasticache:us-west-2:0123456789:snapshot:mySnapshot@ . For more information about ARNs, see <http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs) and AWS Service Namespaces> .+-- * 'attrResourceName' - The Amazon Resource Name (ARN) of the resource to which the tags are to be added, for example @arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster@ or @arn:aws:elasticache:us-west-2:0123456789:snapshot:mySnapshot@ . ElastiCache resources are /cluster/ and /snapshot/ . For more information about ARNs, see <http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs) and AWS Service Namespaces> . -- -- * 'attrTags' - A list of cost allocation tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value. addTagsToResource     :: Text -- ^ 'attrResourceName'     -> AddTagsToResource addTagsToResource pResourceName_ =-    AddTagsToResource'-    { _attrResourceName = pResourceName_-    , _attrTags = mempty-    }+  AddTagsToResource' {_attrResourceName = pResourceName_, _attrTags = mempty} --- | The Amazon Resource Name (ARN) of the resource to which the tags are to be added, for example @arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster@ or @arn:aws:elasticache:us-west-2:0123456789:snapshot:mySnapshot@ . For more information about ARNs, see <http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs) and AWS Service Namespaces> .++-- | The Amazon Resource Name (ARN) of the resource to which the tags are to be added, for example @arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster@ or @arn:aws:elasticache:us-west-2:0123456789:snapshot:mySnapshot@ . ElastiCache resources are /cluster/ and /snapshot/ . For more information about ARNs, see <http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs) and AWS Service Namespaces> . attrResourceName :: Lens' AddTagsToResource Text attrResourceName = lens _attrResourceName (\ s a -> s{_attrResourceName = a}); @@ -87,9 +86,9 @@           = receiveXMLWrapper "AddTagsToResourceResult"               (\ s h x -> parseXML x) -instance Hashable AddTagsToResource+instance Hashable AddTagsToResource where -instance NFData AddTagsToResource+instance NFData AddTagsToResource where  instance ToHeaders AddTagsToResource where         toHeaders = const mempty
gen/Network/AWS/ElastiCache/AuthorizeCacheSecurityGroupIngress.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , acsgirsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of an AuthorizeCacheSecurityGroupIngress operation. --@@ -52,11 +52,12 @@ -- -- /See:/ 'authorizeCacheSecurityGroupIngress' smart constructor. data AuthorizeCacheSecurityGroupIngress = AuthorizeCacheSecurityGroupIngress'-    { _acsgiCacheSecurityGroupName  :: !Text-    , _acsgiEC2SecurityGroupName    :: !Text-    , _acsgiEC2SecurityGroupOwnerId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _acsgiCacheSecurityGroupName  :: !Text+  , _acsgiEC2SecurityGroupName    :: !Text+  , _acsgiEC2SecurityGroupOwnerId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AuthorizeCacheSecurityGroupIngress' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,12 +73,13 @@     -> Text -- ^ 'acsgiEC2SecurityGroupOwnerId'     -> AuthorizeCacheSecurityGroupIngress authorizeCacheSecurityGroupIngress pCacheSecurityGroupName_ pEC2SecurityGroupName_ pEC2SecurityGroupOwnerId_ =-    AuthorizeCacheSecurityGroupIngress'-    { _acsgiCacheSecurityGroupName = pCacheSecurityGroupName_-    , _acsgiEC2SecurityGroupName = pEC2SecurityGroupName_-    , _acsgiEC2SecurityGroupOwnerId = pEC2SecurityGroupOwnerId_-    }+  AuthorizeCacheSecurityGroupIngress'+  { _acsgiCacheSecurityGroupName = pCacheSecurityGroupName_+  , _acsgiEC2SecurityGroupName = pEC2SecurityGroupName_+  , _acsgiEC2SecurityGroupOwnerId = pEC2SecurityGroupOwnerId_+  } + -- | The cache security group that allows network ingress. acsgiCacheSecurityGroupName :: Lens' AuthorizeCacheSecurityGroupIngress Text acsgiCacheSecurityGroupName = lens _acsgiCacheSecurityGroupName (\ s a -> s{_acsgiCacheSecurityGroupName = a});@@ -91,7 +93,8 @@ acsgiEC2SecurityGroupOwnerId = lens _acsgiEC2SecurityGroupOwnerId (\ s a -> s{_acsgiEC2SecurityGroupOwnerId = a});  instance AWSRequest-         AuthorizeCacheSecurityGroupIngress where+           AuthorizeCacheSecurityGroupIngress+         where         type Rs AuthorizeCacheSecurityGroupIngress =              AuthorizeCacheSecurityGroupIngressResponse         request = postQuery elastiCache@@ -103,8 +106,10 @@                    (x .@? "CacheSecurityGroup") <*> (pure (fromEnum s)))  instance Hashable AuthorizeCacheSecurityGroupIngress+         where  instance NFData AuthorizeCacheSecurityGroupIngress+         where  instance ToHeaders AuthorizeCacheSecurityGroupIngress          where@@ -129,10 +134,11 @@  -- | /See:/ 'authorizeCacheSecurityGroupIngressResponse' smart constructor. data AuthorizeCacheSecurityGroupIngressResponse = AuthorizeCacheSecurityGroupIngressResponse'-    { _acsgirsCacheSecurityGroup :: !(Maybe CacheSecurityGroup)-    , _acsgirsResponseStatus     :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _acsgirsCacheSecurityGroup :: !(Maybe CacheSecurityGroup)+  , _acsgirsResponseStatus     :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AuthorizeCacheSecurityGroupIngressResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -144,11 +150,12 @@     :: Int -- ^ 'acsgirsResponseStatus'     -> AuthorizeCacheSecurityGroupIngressResponse authorizeCacheSecurityGroupIngressResponse pResponseStatus_ =-    AuthorizeCacheSecurityGroupIngressResponse'-    { _acsgirsCacheSecurityGroup = Nothing-    , _acsgirsResponseStatus = pResponseStatus_-    }+  AuthorizeCacheSecurityGroupIngressResponse'+  { _acsgirsCacheSecurityGroup = Nothing+  , _acsgirsResponseStatus = pResponseStatus_+  } + -- | Undocumented member. acsgirsCacheSecurityGroup :: Lens' AuthorizeCacheSecurityGroupIngressResponse (Maybe CacheSecurityGroup) acsgirsCacheSecurityGroup = lens _acsgirsCacheSecurityGroup (\ s a -> s{_acsgirsCacheSecurityGroup = a});@@ -158,4 +165,5 @@ acsgirsResponseStatus = lens _acsgirsResponseStatus (\ s a -> s{_acsgirsResponseStatus = a});  instance NFData-         AuthorizeCacheSecurityGroupIngressResponse+           AuthorizeCacheSecurityGroupIngressResponse+         where
gen/Network/AWS/ElastiCache/CopySnapshot.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.CopySnapshot--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -79,12 +79,12 @@     , csrsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @CopySnapshotMessage@ operation. --@@ -92,11 +92,12 @@ -- -- /See:/ 'copySnapshot' smart constructor. data CopySnapshot = CopySnapshot'-    { _csTargetBucket       :: !(Maybe Text)-    , _csSourceSnapshotName :: !Text-    , _csTargetSnapshotName :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _csTargetBucket       :: !(Maybe Text)+  , _csSourceSnapshotName :: !Text+  , _csTargetSnapshotName :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CopySnapshot' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -111,12 +112,13 @@     -> Text -- ^ 'csTargetSnapshotName'     -> CopySnapshot copySnapshot pSourceSnapshotName_ pTargetSnapshotName_ =-    CopySnapshot'-    { _csTargetBucket = Nothing-    , _csSourceSnapshotName = pSourceSnapshotName_-    , _csTargetSnapshotName = pTargetSnapshotName_-    }+  CopySnapshot'+  { _csTargetBucket = Nothing+  , _csSourceSnapshotName = pSourceSnapshotName_+  , _csTargetSnapshotName = pTargetSnapshotName_+  } + -- | The Amazon S3 bucket to which the snapshot is exported. This parameter is used only when exporting a snapshot for external access. When using this parameter to export a snapshot, be sure Amazon ElastiCache has the needed permissions to this S3 bucket. For more information, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Snapshots.Exporting.html#Snapshots.Exporting.GrantAccess Step 2: Grant ElastiCache Access to Your Amazon S3 Bucket> in the /Amazon ElastiCache User Guide/ . For more information, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Snapshots.Exporting.html Exporting a Snapshot> in the /Amazon ElastiCache User Guide/ . csTargetBucket :: Lens' CopySnapshot (Maybe Text) csTargetBucket = lens _csTargetBucket (\ s a -> s{_csTargetBucket = a});@@ -138,9 +140,9 @@                  CopySnapshotResponse' <$>                    (x .@? "Snapshot") <*> (pure (fromEnum s))) -instance Hashable CopySnapshot+instance Hashable CopySnapshot where -instance NFData CopySnapshot+instance NFData CopySnapshot where  instance ToHeaders CopySnapshot where         toHeaders = const mempty@@ -159,10 +161,11 @@  -- | /See:/ 'copySnapshotResponse' smart constructor. data CopySnapshotResponse = CopySnapshotResponse'-    { _csrsSnapshot       :: !(Maybe Snapshot)-    , _csrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _csrsSnapshot       :: !(Maybe Snapshot)+  , _csrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CopySnapshotResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -174,11 +177,10 @@     :: Int -- ^ 'csrsResponseStatus'     -> CopySnapshotResponse copySnapshotResponse pResponseStatus_ =-    CopySnapshotResponse'-    { _csrsSnapshot = Nothing-    , _csrsResponseStatus = pResponseStatus_-    }+  CopySnapshotResponse'+  {_csrsSnapshot = Nothing, _csrsResponseStatus = pResponseStatus_} + -- | Undocumented member. csrsSnapshot :: Lens' CopySnapshotResponse (Maybe Snapshot) csrsSnapshot = lens _csrsSnapshot (\ s a -> s{_csrsSnapshot = a});@@ -187,4 +189,4 @@ csrsResponseStatus :: Lens' CopySnapshotResponse Int csrsResponseStatus = lens _csrsResponseStatus (\ s a -> s{_csrsResponseStatus = a}); -instance NFData CopySnapshotResponse+instance NFData CopySnapshotResponse where
gen/Network/AWS/ElastiCache/CreateCacheCluster.hs view
@@ -12,13 +12,13 @@  -- | -- Module      : Network.AWS.ElastiCache.CreateCacheCluster--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Creates a cache cluster. All nodes in the cache cluster run the same protocol-compliant cache engine software, either Memcached or Redis.+-- Creates a cluster. All nodes in the cluster run the same protocol-compliant cache engine software, either Memcached or Redis. -- -- -- /Important:/ Due to current limitations on Redis (cluster mode disabled), this operation or parameter is not supported on Redis (cluster mode enabled) replication groups.@@ -61,12 +61,12 @@     , cccrsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a CreateCacheCluster operation. --@@ -74,119 +74,121 @@ -- -- /See:/ 'createCacheCluster' smart constructor. data CreateCacheCluster = CreateCacheCluster'-    { _cccEngineVersion              :: !(Maybe Text)-    , _cccCacheNodeType              :: !(Maybe Text)-    , _cccSecurityGroupIds           :: !(Maybe [Text])-    , _cccSnapshotARNs               :: !(Maybe [Text])-    , _cccAutoMinorVersionUpgrade    :: !(Maybe Bool)-    , _cccCacheParameterGroupName    :: !(Maybe Text)-    , _cccSnapshotWindow             :: !(Maybe Text)-    , _cccAuthToken                  :: !(Maybe Text)-    , _cccEngine                     :: !(Maybe Text)-    , _cccPreferredAvailabilityZones :: !(Maybe [Text])-    , _cccPreferredMaintenanceWindow :: !(Maybe Text)-    , _cccCacheSubnetGroupName       :: !(Maybe Text)-    , _cccPreferredAvailabilityZone  :: !(Maybe Text)-    , _cccSnapshotRetentionLimit     :: !(Maybe Int)-    , _cccAZMode                     :: !(Maybe AZMode)-    , _cccSnapshotName               :: !(Maybe Text)-    , _cccReplicationGroupId         :: !(Maybe Text)-    , _cccNotificationTopicARN       :: !(Maybe Text)-    , _cccNumCacheNodes              :: !(Maybe Int)-    , _cccTags                       :: !(Maybe [Tag])-    , _cccPort                       :: !(Maybe Int)-    , _cccCacheSecurityGroupNames    :: !(Maybe [Text])-    , _cccCacheClusterId             :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cccEngineVersion              :: !(Maybe Text)+  , _cccCacheNodeType              :: !(Maybe Text)+  , _cccSecurityGroupIds           :: !(Maybe [Text])+  , _cccSnapshotARNs               :: !(Maybe [Text])+  , _cccAutoMinorVersionUpgrade    :: !(Maybe Bool)+  , _cccCacheParameterGroupName    :: !(Maybe Text)+  , _cccSnapshotWindow             :: !(Maybe Text)+  , _cccAuthToken                  :: !(Maybe Text)+  , _cccEngine                     :: !(Maybe Text)+  , _cccPreferredAvailabilityZones :: !(Maybe [Text])+  , _cccPreferredMaintenanceWindow :: !(Maybe Text)+  , _cccCacheSubnetGroupName       :: !(Maybe Text)+  , _cccPreferredAvailabilityZone  :: !(Maybe Text)+  , _cccSnapshotRetentionLimit     :: !(Maybe Int)+  , _cccAZMode                     :: !(Maybe AZMode)+  , _cccSnapshotName               :: !(Maybe Text)+  , _cccReplicationGroupId         :: !(Maybe Text)+  , _cccNotificationTopicARN       :: !(Maybe Text)+  , _cccNumCacheNodes              :: !(Maybe Int)+  , _cccTags                       :: !(Maybe [Tag])+  , _cccPort                       :: !(Maybe Int)+  , _cccCacheSecurityGroupNames    :: !(Maybe [Text])+  , _cccCacheClusterId             :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateCacheCluster' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'cccEngineVersion' - The version number of the cache engine to be used for this cache cluster. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation. __Important:__ You can upgrade to a newer engine version (see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SelectEngine.html#VersionManagement Selecting a Cache Engine and Version> ), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cache cluster or replication group and create it anew with the earlier engine version.+-- * 'cccEngineVersion' - The version number of the cache engine to be used for this cluster. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation. __Important:__ You can upgrade to a newer engine version (see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SelectEngine.html#VersionManagement Selecting a Cache Engine and Version> ), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cluster or replication group and create it anew with the earlier engine version. ----- * 'cccCacheNodeType' - The compute and memory capacity of the nodes in the node group (shard). Valid node types are as follows:     * General purpose:     * Current generation: @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@ , @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@ , @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: @cache.t1.micro@ , @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized: @cache.c1.xlarge@      * Memory optimized:     * Current generation: @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .+-- * 'cccCacheNodeType' - The compute and memory capacity of the nodes in the node group (shard). The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.     * General purpose:     * Current generation:  __T2 node types:__ @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@  __M3 node types:__ @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@  __M4 node types:__ @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: (not recommended) __T1 node types:__ @cache.t1.micro@  __M1 node types:__ @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized:     * Previous generation: (not recommended) __C1 node types:__ @cache.c1.xlarge@      * Memory optimized:     * Current generation:  __R3 node types:__ @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: (not recommended) __M2 node types:__ @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances.      * Redis (cluster mode enabled): Backup/restore is not supported on T1 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> . ----- * 'cccSecurityGroupIds' - One or more VPC security groups associated with the cache cluster. Use this parameter only when you are creating a cache cluster in an Amazon Virtual Private Cloud (Amazon VPC).+-- * 'cccSecurityGroupIds' - One or more VPC security groups associated with the cluster. Use this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud (Amazon VPC). -- -- * 'cccSnapshotARNs' - A single-element string list containing an Amazon Resource Name (ARN) that uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot file is used to populate the node group (shard). The Amazon S3 object name in the ARN cannot contain any commas. Example of an Amazon S3 ARN: @arn:aws:s3:::my_bucket/snapshot1.rdb@ -- -- * 'cccAutoMinorVersionUpgrade' - This parameter is currently disabled. ----- * 'cccCacheParameterGroupName' - The name of the parameter group to associate with this cache cluster. If this argument is omitted, the default parameter group for the specified engine is used. You cannot use any parameter group which has @cluster-enabled='yes'@ when creating a cluster.+-- * 'cccCacheParameterGroupName' - The name of the parameter group to associate with this cluster. If this argument is omitted, the default parameter group for the specified engine is used. You cannot use any parameter group which has @cluster-enabled='yes'@ when creating a cluster. ----- * 'cccSnapshotWindow' - The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: @05:00-09:00@  If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. __Note:__ This parameter is only valid if the @Engine@ parameter is @redis@ .+-- * 'cccSnapshotWindow' - The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: @05:00-09:00@  If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. ----- * 'cccAuthToken' - The password used to access a password protected server. Password constraints:     * Must be only printable ASCII characters.     * Must be at least 16 characters and no more than 128 characters in length.     * Cannot contain any of the following characters: '/', '"', or "@".  For more information, see <http://redis.io/commands/AUTH AUTH password> at Redis.+-- * 'cccAuthToken' - __Reserved parameter.__ The password used to access a password protected server. This parameter is valid only if:     * The parameter @TransitEncryptionEnabled@ was set to @true@ when the cluster was created.     * The line @requirepass@ was added to the database configuration file. Password constraints:     * Must be only printable ASCII characters.     * Must be at least 16 characters and no more than 128 characters in length.     * Cannot contain any of the following characters: '/', '"', or '@'.  For more information, see <http://redis.io/commands/AUTH AUTH password> at http://redis.io/commands/AUTH. ----- * 'cccEngine' - The name of the cache engine to be used for this cache cluster. Valid values for this parameter are: @memcached@ | @redis@+-- * 'cccEngine' - The name of the cache engine to be used for this cluster. Valid values for this parameter are: @memcached@ | @redis@ -- -- * 'cccPreferredAvailabilityZones' - A list of the Availability Zones in which cache nodes are created. The order of the zones in the list is not important. This option is only supported on Memcached. If you want all the nodes in the same Availability Zone, use @PreferredAvailabilityZone@ instead, or repeat the Availability Zone multiple times in the list. Default: System chosen Availability Zones. ----- * 'cccPreferredMaintenanceWindow' - Specifies the weekly time range during which maintenance on the cache cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are: Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are:     * @sun@      * @mon@      * @tue@      * @wed@      * @thu@      * @fri@      * @sat@  Example: @sun:23:00-mon:01:30@+-- * 'cccPreferredMaintenanceWindow' - Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are: Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are:     * @sun@      * @mon@      * @tue@      * @wed@      * @thu@      * @fri@      * @sat@  Example: @sun:23:00-mon:01:30@ ----- * 'cccCacheSubnetGroupName' - The name of the subnet group to be used for the cache cluster. Use this parameter only when you are creating a cache cluster in an Amazon Virtual Private Cloud (Amazon VPC). /Important:/ If you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster. For more information, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SubnetGroups.html Subnets and Subnet Groups> .+-- * 'cccCacheSubnetGroupName' - The name of the subnet group to be used for the cluster. Use this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud (Amazon VPC). /Important:/ If you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster. For more information, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SubnetGroups.html Subnets and Subnet Groups> . ----- * 'cccPreferredAvailabilityZone' - The EC2 Availability Zone in which the cache cluster is created. All nodes belonging to this Memcached cache cluster are placed in the preferred Availability Zone. If you want to create your nodes across multiple Availability Zones, use @PreferredAvailabilityZones@ . Default: System chosen Availability Zone.+-- * 'cccPreferredAvailabilityZone' - The EC2 Availability Zone in which the cluster is created. All nodes belonging to this Memcached cluster are placed in the preferred Availability Zone. If you want to create your nodes across multiple Availability Zones, use @PreferredAvailabilityZones@ . Default: System chosen Availability Zone. ----- * 'cccSnapshotRetentionLimit' - The number of days for which ElastiCache retains automatic snapshots before deleting them. For example, if you set @SnapshotRetentionLimit@ to 5, a snapshot taken today is retained for 5 days before being deleted. Default: 0 (i.e., automatic backups are disabled for this cache cluster).+-- * 'cccSnapshotRetentionLimit' - The number of days for which ElastiCache retains automatic snapshots before deleting them. For example, if you set @SnapshotRetentionLimit@ to 5, a snapshot taken today is retained for 5 days before being deleted. Default: 0 (i.e., automatic backups are disabled for this cluster). ----- * 'cccAZMode' - Specifies whether the nodes in this Memcached cluster are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. This parameter is only supported for Memcached cache clusters. If the @AZMode@ and @PreferredAvailabilityZones@ are not specified, ElastiCache assumes @single-az@ mode.+-- * 'cccAZMode' - Specifies whether the nodes in this Memcached cluster are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. This parameter is only supported for Memcached clusters. If the @AZMode@ and @PreferredAvailabilityZones@ are not specified, ElastiCache assumes @single-az@ mode. -- -- * 'cccSnapshotName' - The name of a Redis snapshot from which to restore data into the new node group (shard). The snapshot status changes to @restoring@ while the new node group (shard) is being created. ----- * 'cccReplicationGroupId' - /Important:/ Due to current limitations on Redis (cluster mode disabled), this operation or parameter is not supported on Redis (cluster mode enabled) replication groups. The ID of the replication group to which this cache cluster should belong. If this parameter is specified, the cache cluster is added to the specified replication group as a read replica; otherwise, the cache cluster is a standalone primary that is not part of any replication group. If the specified replication group is Multi-AZ enabled and the Availability Zone is not specified, the cache cluster is created in Availability Zones that provide the best spread of read replicas across Availability Zones.+-- * 'cccReplicationGroupId' - /Important:/ Due to current limitations on Redis (cluster mode disabled), this operation or parameter is not supported on Redis (cluster mode enabled) replication groups. The ID of the replication group to which this cluster should belong. If this parameter is specified, the cluster is added to the specified replication group as a read replica; otherwise, the cluster is a standalone primary that is not part of any replication group. If the specified replication group is Multi-AZ enabled and the Availability Zone is not specified, the cluster is created in Availability Zones that provide the best spread of read replicas across Availability Zones. -- -- * 'cccNotificationTopicARN' - The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent. ----- * 'cccNumCacheNodes' - The initial number of cache nodes that the cache cluster has. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20. If you need more than 20 nodes for your Memcached cluster, please fill out the ElastiCache Limit Increase Request form at <http://aws.amazon.com/contact-us/elasticache-node-limit-request/ http://aws.amazon.com/contact-us/elasticache-node-limit-request/> .+-- * 'cccNumCacheNodes' - The initial number of cache nodes that the cluster has. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20. If you need more than 20 nodes for your Memcached cluster, please fill out the ElastiCache Limit Increase Request form at <http://aws.amazon.com/contact-us/elasticache-node-limit-request/ http://aws.amazon.com/contact-us/elasticache-node-limit-request/> . ----- * 'cccTags' - A list of cost allocation tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value.+-- * 'cccTags' - A list of cost allocation tags to be added to this resource. -- -- * 'cccPort' - The port number on which each of the cache nodes accepts connections. ----- * 'cccCacheSecurityGroupNames' - A list of security group names to associate with this cache cluster. Use this parameter only when you are creating a cache cluster outside of an Amazon Virtual Private Cloud (Amazon VPC).+-- * 'cccCacheSecurityGroupNames' - A list of security group names to associate with this cluster. Use this parameter only when you are creating a cluster outside of an Amazon Virtual Private Cloud (Amazon VPC). -- -- * 'cccCacheClusterId' - The node group (shard) identifier. This parameter is stored as a lowercase string. __Constraints:__      * A name must contain from 1 to 20 alphanumeric characters or hyphens.     * The first character must be a letter.     * A name cannot end with a hyphen or contain two consecutive hyphens. createCacheCluster     :: Text -- ^ 'cccCacheClusterId'     -> CreateCacheCluster createCacheCluster pCacheClusterId_ =-    CreateCacheCluster'-    { _cccEngineVersion = Nothing-    , _cccCacheNodeType = Nothing-    , _cccSecurityGroupIds = Nothing-    , _cccSnapshotARNs = Nothing-    , _cccAutoMinorVersionUpgrade = Nothing-    , _cccCacheParameterGroupName = Nothing-    , _cccSnapshotWindow = Nothing-    , _cccAuthToken = Nothing-    , _cccEngine = Nothing-    , _cccPreferredAvailabilityZones = Nothing-    , _cccPreferredMaintenanceWindow = Nothing-    , _cccCacheSubnetGroupName = Nothing-    , _cccPreferredAvailabilityZone = Nothing-    , _cccSnapshotRetentionLimit = Nothing-    , _cccAZMode = Nothing-    , _cccSnapshotName = Nothing-    , _cccReplicationGroupId = Nothing-    , _cccNotificationTopicARN = Nothing-    , _cccNumCacheNodes = Nothing-    , _cccTags = Nothing-    , _cccPort = Nothing-    , _cccCacheSecurityGroupNames = Nothing-    , _cccCacheClusterId = pCacheClusterId_-    }+  CreateCacheCluster'+  { _cccEngineVersion = Nothing+  , _cccCacheNodeType = Nothing+  , _cccSecurityGroupIds = Nothing+  , _cccSnapshotARNs = Nothing+  , _cccAutoMinorVersionUpgrade = Nothing+  , _cccCacheParameterGroupName = Nothing+  , _cccSnapshotWindow = Nothing+  , _cccAuthToken = Nothing+  , _cccEngine = Nothing+  , _cccPreferredAvailabilityZones = Nothing+  , _cccPreferredMaintenanceWindow = Nothing+  , _cccCacheSubnetGroupName = Nothing+  , _cccPreferredAvailabilityZone = Nothing+  , _cccSnapshotRetentionLimit = Nothing+  , _cccAZMode = Nothing+  , _cccSnapshotName = Nothing+  , _cccReplicationGroupId = Nothing+  , _cccNotificationTopicARN = Nothing+  , _cccNumCacheNodes = Nothing+  , _cccTags = Nothing+  , _cccPort = Nothing+  , _cccCacheSecurityGroupNames = Nothing+  , _cccCacheClusterId = pCacheClusterId_+  } --- | The version number of the cache engine to be used for this cache cluster. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation. __Important:__ You can upgrade to a newer engine version (see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SelectEngine.html#VersionManagement Selecting a Cache Engine and Version> ), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cache cluster or replication group and create it anew with the earlier engine version.++-- | The version number of the cache engine to be used for this cluster. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation. __Important:__ You can upgrade to a newer engine version (see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SelectEngine.html#VersionManagement Selecting a Cache Engine and Version> ), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cluster or replication group and create it anew with the earlier engine version. cccEngineVersion :: Lens' CreateCacheCluster (Maybe Text) cccEngineVersion = lens _cccEngineVersion (\ s a -> s{_cccEngineVersion = a}); --- | The compute and memory capacity of the nodes in the node group (shard). Valid node types are as follows:     * General purpose:     * Current generation: @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@ , @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@ , @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: @cache.t1.micro@ , @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized: @cache.c1.xlarge@      * Memory optimized:     * Current generation: @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .+-- | The compute and memory capacity of the nodes in the node group (shard). The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.     * General purpose:     * Current generation:  __T2 node types:__ @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@  __M3 node types:__ @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@  __M4 node types:__ @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: (not recommended) __T1 node types:__ @cache.t1.micro@  __M1 node types:__ @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized:     * Previous generation: (not recommended) __C1 node types:__ @cache.c1.xlarge@      * Memory optimized:     * Current generation:  __R3 node types:__ @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: (not recommended) __M2 node types:__ @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances.      * Redis (cluster mode enabled): Backup/restore is not supported on T1 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> . cccCacheNodeType :: Lens' CreateCacheCluster (Maybe Text) cccCacheNodeType = lens _cccCacheNodeType (\ s a -> s{_cccCacheNodeType = a}); --- | One or more VPC security groups associated with the cache cluster. Use this parameter only when you are creating a cache cluster in an Amazon Virtual Private Cloud (Amazon VPC).+-- | One or more VPC security groups associated with the cluster. Use this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud (Amazon VPC). cccSecurityGroupIds :: Lens' CreateCacheCluster [Text] cccSecurityGroupIds = lens _cccSecurityGroupIds (\ s a -> s{_cccSecurityGroupIds = a}) . _Default . _Coerce; @@ -198,19 +200,19 @@ cccAutoMinorVersionUpgrade :: Lens' CreateCacheCluster (Maybe Bool) cccAutoMinorVersionUpgrade = lens _cccAutoMinorVersionUpgrade (\ s a -> s{_cccAutoMinorVersionUpgrade = a}); --- | The name of the parameter group to associate with this cache cluster. If this argument is omitted, the default parameter group for the specified engine is used. You cannot use any parameter group which has @cluster-enabled='yes'@ when creating a cluster.+-- | The name of the parameter group to associate with this cluster. If this argument is omitted, the default parameter group for the specified engine is used. You cannot use any parameter group which has @cluster-enabled='yes'@ when creating a cluster. cccCacheParameterGroupName :: Lens' CreateCacheCluster (Maybe Text) cccCacheParameterGroupName = lens _cccCacheParameterGroupName (\ s a -> s{_cccCacheParameterGroupName = a}); --- | The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: @05:00-09:00@  If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. __Note:__ This parameter is only valid if the @Engine@ parameter is @redis@ .+-- | The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: @05:00-09:00@  If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. cccSnapshotWindow :: Lens' CreateCacheCluster (Maybe Text) cccSnapshotWindow = lens _cccSnapshotWindow (\ s a -> s{_cccSnapshotWindow = a}); --- | The password used to access a password protected server. Password constraints:     * Must be only printable ASCII characters.     * Must be at least 16 characters and no more than 128 characters in length.     * Cannot contain any of the following characters: '/', '"', or "@".  For more information, see <http://redis.io/commands/AUTH AUTH password> at Redis.+-- | __Reserved parameter.__ The password used to access a password protected server. This parameter is valid only if:     * The parameter @TransitEncryptionEnabled@ was set to @true@ when the cluster was created.     * The line @requirepass@ was added to the database configuration file. Password constraints:     * Must be only printable ASCII characters.     * Must be at least 16 characters and no more than 128 characters in length.     * Cannot contain any of the following characters: '/', '"', or '@'.  For more information, see <http://redis.io/commands/AUTH AUTH password> at http://redis.io/commands/AUTH. cccAuthToken :: Lens' CreateCacheCluster (Maybe Text) cccAuthToken = lens _cccAuthToken (\ s a -> s{_cccAuthToken = a}); --- | The name of the cache engine to be used for this cache cluster. Valid values for this parameter are: @memcached@ | @redis@+-- | The name of the cache engine to be used for this cluster. Valid values for this parameter are: @memcached@ | @redis@ cccEngine :: Lens' CreateCacheCluster (Maybe Text) cccEngine = lens _cccEngine (\ s a -> s{_cccEngine = a}); @@ -218,23 +220,23 @@ cccPreferredAvailabilityZones :: Lens' CreateCacheCluster [Text] cccPreferredAvailabilityZones = lens _cccPreferredAvailabilityZones (\ s a -> s{_cccPreferredAvailabilityZones = a}) . _Default . _Coerce; --- | Specifies the weekly time range during which maintenance on the cache cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are: Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are:     * @sun@      * @mon@      * @tue@      * @wed@      * @thu@      * @fri@      * @sat@  Example: @sun:23:00-mon:01:30@+-- | Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are: Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are:     * @sun@      * @mon@      * @tue@      * @wed@      * @thu@      * @fri@      * @sat@  Example: @sun:23:00-mon:01:30@ cccPreferredMaintenanceWindow :: Lens' CreateCacheCluster (Maybe Text) cccPreferredMaintenanceWindow = lens _cccPreferredMaintenanceWindow (\ s a -> s{_cccPreferredMaintenanceWindow = a}); --- | The name of the subnet group to be used for the cache cluster. Use this parameter only when you are creating a cache cluster in an Amazon Virtual Private Cloud (Amazon VPC). /Important:/ If you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster. For more information, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SubnetGroups.html Subnets and Subnet Groups> .+-- | The name of the subnet group to be used for the cluster. Use this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud (Amazon VPC). /Important:/ If you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster. For more information, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SubnetGroups.html Subnets and Subnet Groups> . cccCacheSubnetGroupName :: Lens' CreateCacheCluster (Maybe Text) cccCacheSubnetGroupName = lens _cccCacheSubnetGroupName (\ s a -> s{_cccCacheSubnetGroupName = a}); --- | The EC2 Availability Zone in which the cache cluster is created. All nodes belonging to this Memcached cache cluster are placed in the preferred Availability Zone. If you want to create your nodes across multiple Availability Zones, use @PreferredAvailabilityZones@ . Default: System chosen Availability Zone.+-- | The EC2 Availability Zone in which the cluster is created. All nodes belonging to this Memcached cluster are placed in the preferred Availability Zone. If you want to create your nodes across multiple Availability Zones, use @PreferredAvailabilityZones@ . Default: System chosen Availability Zone. cccPreferredAvailabilityZone :: Lens' CreateCacheCluster (Maybe Text) cccPreferredAvailabilityZone = lens _cccPreferredAvailabilityZone (\ s a -> s{_cccPreferredAvailabilityZone = a}); --- | The number of days for which ElastiCache retains automatic snapshots before deleting them. For example, if you set @SnapshotRetentionLimit@ to 5, a snapshot taken today is retained for 5 days before being deleted. Default: 0 (i.e., automatic backups are disabled for this cache cluster).+-- | The number of days for which ElastiCache retains automatic snapshots before deleting them. For example, if you set @SnapshotRetentionLimit@ to 5, a snapshot taken today is retained for 5 days before being deleted. Default: 0 (i.e., automatic backups are disabled for this cluster). cccSnapshotRetentionLimit :: Lens' CreateCacheCluster (Maybe Int) cccSnapshotRetentionLimit = lens _cccSnapshotRetentionLimit (\ s a -> s{_cccSnapshotRetentionLimit = a}); --- | Specifies whether the nodes in this Memcached cluster are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. This parameter is only supported for Memcached cache clusters. If the @AZMode@ and @PreferredAvailabilityZones@ are not specified, ElastiCache assumes @single-az@ mode.+-- | Specifies whether the nodes in this Memcached cluster are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. This parameter is only supported for Memcached clusters. If the @AZMode@ and @PreferredAvailabilityZones@ are not specified, ElastiCache assumes @single-az@ mode. cccAZMode :: Lens' CreateCacheCluster (Maybe AZMode) cccAZMode = lens _cccAZMode (\ s a -> s{_cccAZMode = a}); @@ -242,7 +244,7 @@ cccSnapshotName :: Lens' CreateCacheCluster (Maybe Text) cccSnapshotName = lens _cccSnapshotName (\ s a -> s{_cccSnapshotName = a}); --- | /Important:/ Due to current limitations on Redis (cluster mode disabled), this operation or parameter is not supported on Redis (cluster mode enabled) replication groups. The ID of the replication group to which this cache cluster should belong. If this parameter is specified, the cache cluster is added to the specified replication group as a read replica; otherwise, the cache cluster is a standalone primary that is not part of any replication group. If the specified replication group is Multi-AZ enabled and the Availability Zone is not specified, the cache cluster is created in Availability Zones that provide the best spread of read replicas across Availability Zones.+-- | /Important:/ Due to current limitations on Redis (cluster mode disabled), this operation or parameter is not supported on Redis (cluster mode enabled) replication groups. The ID of the replication group to which this cluster should belong. If this parameter is specified, the cluster is added to the specified replication group as a read replica; otherwise, the cluster is a standalone primary that is not part of any replication group. If the specified replication group is Multi-AZ enabled and the Availability Zone is not specified, the cluster is created in Availability Zones that provide the best spread of read replicas across Availability Zones. cccReplicationGroupId :: Lens' CreateCacheCluster (Maybe Text) cccReplicationGroupId = lens _cccReplicationGroupId (\ s a -> s{_cccReplicationGroupId = a}); @@ -250,11 +252,11 @@ cccNotificationTopicARN :: Lens' CreateCacheCluster (Maybe Text) cccNotificationTopicARN = lens _cccNotificationTopicARN (\ s a -> s{_cccNotificationTopicARN = a}); --- | The initial number of cache nodes that the cache cluster has. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20. If you need more than 20 nodes for your Memcached cluster, please fill out the ElastiCache Limit Increase Request form at <http://aws.amazon.com/contact-us/elasticache-node-limit-request/ http://aws.amazon.com/contact-us/elasticache-node-limit-request/> .+-- | The initial number of cache nodes that the cluster has. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20. If you need more than 20 nodes for your Memcached cluster, please fill out the ElastiCache Limit Increase Request form at <http://aws.amazon.com/contact-us/elasticache-node-limit-request/ http://aws.amazon.com/contact-us/elasticache-node-limit-request/> . cccNumCacheNodes :: Lens' CreateCacheCluster (Maybe Int) cccNumCacheNodes = lens _cccNumCacheNodes (\ s a -> s{_cccNumCacheNodes = a}); --- | A list of cost allocation tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value.+-- | A list of cost allocation tags to be added to this resource. cccTags :: Lens' CreateCacheCluster [Tag] cccTags = lens _cccTags (\ s a -> s{_cccTags = a}) . _Default . _Coerce; @@ -262,7 +264,7 @@ cccPort :: Lens' CreateCacheCluster (Maybe Int) cccPort = lens _cccPort (\ s a -> s{_cccPort = a}); --- | A list of security group names to associate with this cache cluster. Use this parameter only when you are creating a cache cluster outside of an Amazon Virtual Private Cloud (Amazon VPC).+-- | A list of security group names to associate with this cluster. Use this parameter only when you are creating a cluster outside of an Amazon Virtual Private Cloud (Amazon VPC). cccCacheSecurityGroupNames :: Lens' CreateCacheCluster [Text] cccCacheSecurityGroupNames = lens _cccCacheSecurityGroupNames (\ s a -> s{_cccCacheSecurityGroupNames = a}) . _Default . _Coerce; @@ -280,9 +282,9 @@                  CreateCacheClusterResponse' <$>                    (x .@? "CacheCluster") <*> (pure (fromEnum s))) -instance Hashable CreateCacheCluster+instance Hashable CreateCacheCluster where -instance NFData CreateCacheCluster+instance NFData CreateCacheCluster where  instance ToHeaders CreateCacheCluster where         toHeaders = const mempty@@ -336,10 +338,11 @@  -- | /See:/ 'createCacheClusterResponse' smart constructor. data CreateCacheClusterResponse = CreateCacheClusterResponse'-    { _cccrsCacheCluster   :: !(Maybe CacheCluster)-    , _cccrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cccrsCacheCluster   :: !(Maybe CacheCluster)+  , _cccrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateCacheClusterResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -351,11 +354,10 @@     :: Int -- ^ 'cccrsResponseStatus'     -> CreateCacheClusterResponse createCacheClusterResponse pResponseStatus_ =-    CreateCacheClusterResponse'-    { _cccrsCacheCluster = Nothing-    , _cccrsResponseStatus = pResponseStatus_-    }+  CreateCacheClusterResponse'+  {_cccrsCacheCluster = Nothing, _cccrsResponseStatus = pResponseStatus_} + -- | Undocumented member. cccrsCacheCluster :: Lens' CreateCacheClusterResponse (Maybe CacheCluster) cccrsCacheCluster = lens _cccrsCacheCluster (\ s a -> s{_cccrsCacheCluster = a});@@ -364,4 +366,4 @@ cccrsResponseStatus :: Lens' CreateCacheClusterResponse Int cccrsResponseStatus = lens _cccrsResponseStatus (\ s a -> s{_cccrsResponseStatus = a}); -instance NFData CreateCacheClusterResponse+instance NFData CreateCacheClusterResponse where
gen/Network/AWS/ElastiCache/CreateCacheParameterGroup.hs view
@@ -12,15 +12,23 @@  -- | -- Module      : Network.AWS.ElastiCache.CreateCacheParameterGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Creates a new cache parameter group. A cache parameter group is a collection of parameters that you apply to all of the nodes in a cache cluster.+-- Creates a new Amazon ElastiCache cache parameter group. An ElastiCache cache parameter group is a collection of parameters and their values that are applied to all of the nodes in any cluster or replication group using the CacheParameterGroup. -- --+-- A newly created CacheParameterGroup is an exact duplicate of the default parameter group for the CacheParameterGroupFamily. To customize the newly created CacheParameterGroup you can change the values of specific parameters. For more information, see:+--+--     * <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheParameterGroup.html ModifyCacheParameterGroup> in the ElastiCache API Reference.+--+--     * <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/ParameterGroups.html Parameters and Parameter Groups> in the ElastiCache User Guide.+--+--+-- module Network.AWS.ElastiCache.CreateCacheParameterGroup     (     -- * Creating a Request@@ -39,12 +47,12 @@     , ccpgrsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @CreateCacheParameterGroup@ operation. --@@ -52,11 +60,12 @@ -- -- /See:/ 'createCacheParameterGroup' smart constructor. data CreateCacheParameterGroup = CreateCacheParameterGroup'-    { _ccpgCacheParameterGroupName   :: !Text-    , _ccpgCacheParameterGroupFamily :: !Text-    , _ccpgDescription               :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ccpgCacheParameterGroupName   :: !Text+  , _ccpgCacheParameterGroupFamily :: !Text+  , _ccpgDescription               :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateCacheParameterGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,12 +81,13 @@     -> Text -- ^ 'ccpgDescription'     -> CreateCacheParameterGroup createCacheParameterGroup pCacheParameterGroupName_ pCacheParameterGroupFamily_ pDescription_ =-    CreateCacheParameterGroup'-    { _ccpgCacheParameterGroupName = pCacheParameterGroupName_-    , _ccpgCacheParameterGroupFamily = pCacheParameterGroupFamily_-    , _ccpgDescription = pDescription_-    }+  CreateCacheParameterGroup'+  { _ccpgCacheParameterGroupName = pCacheParameterGroupName_+  , _ccpgCacheParameterGroupFamily = pCacheParameterGroupFamily_+  , _ccpgDescription = pDescription_+  } + -- | A user-specified name for the cache parameter group. ccpgCacheParameterGroupName :: Lens' CreateCacheParameterGroup Text ccpgCacheParameterGroupName = lens _ccpgCacheParameterGroupName (\ s a -> s{_ccpgCacheParameterGroupName = a});@@ -101,9 +111,9 @@                    (x .@? "CacheParameterGroup") <*>                      (pure (fromEnum s))) -instance Hashable CreateCacheParameterGroup+instance Hashable CreateCacheParameterGroup where -instance NFData CreateCacheParameterGroup+instance NFData CreateCacheParameterGroup where  instance ToHeaders CreateCacheParameterGroup where         toHeaders = const mempty@@ -125,10 +135,11 @@  -- | /See:/ 'createCacheParameterGroupResponse' smart constructor. data CreateCacheParameterGroupResponse = CreateCacheParameterGroupResponse'-    { _ccpgrsCacheParameterGroup :: !(Maybe CacheParameterGroup)-    , _ccpgrsResponseStatus      :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ccpgrsCacheParameterGroup :: !(Maybe CacheParameterGroup)+  , _ccpgrsResponseStatus      :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateCacheParameterGroupResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -140,11 +151,12 @@     :: Int -- ^ 'ccpgrsResponseStatus'     -> CreateCacheParameterGroupResponse createCacheParameterGroupResponse pResponseStatus_ =-    CreateCacheParameterGroupResponse'-    { _ccpgrsCacheParameterGroup = Nothing-    , _ccpgrsResponseStatus = pResponseStatus_-    }+  CreateCacheParameterGroupResponse'+  { _ccpgrsCacheParameterGroup = Nothing+  , _ccpgrsResponseStatus = pResponseStatus_+  } + -- | Undocumented member. ccpgrsCacheParameterGroup :: Lens' CreateCacheParameterGroupResponse (Maybe CacheParameterGroup) ccpgrsCacheParameterGroup = lens _ccpgrsCacheParameterGroup (\ s a -> s{_ccpgrsCacheParameterGroup = a});@@ -154,3 +166,4 @@ ccpgrsResponseStatus = lens _ccpgrsResponseStatus (\ s a -> s{_ccpgrsResponseStatus = a});  instance NFData CreateCacheParameterGroupResponse+         where
gen/Network/AWS/ElastiCache/CreateCacheSecurityGroup.hs view
@@ -12,16 +12,16 @@  -- | -- Module      : Network.AWS.ElastiCache.CreateCacheSecurityGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Creates a new cache security group. Use a cache security group to control access to one or more cache clusters.+-- Creates a new cache security group. Use a cache security group to control access to one or more clusters. -- ----- Cache security groups are only used when you are creating a cache cluster outside of an Amazon Virtual Private Cloud (Amazon VPC). If you are creating a cache cluster inside of a VPC, use a cache subnet group instead. For more information, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheSubnetGroup.html CreateCacheSubnetGroup> .+-- Cache security groups are only used when you are creating a cluster outside of an Amazon Virtual Private Cloud (Amazon VPC). If you are creating a cluster inside of a VPC, use a cache subnet group instead. For more information, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheSubnetGroup.html CreateCacheSubnetGroup> . -- module Network.AWS.ElastiCache.CreateCacheSecurityGroup     (@@ -40,12 +40,12 @@     , ccsgrsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @CreateCacheSecurityGroup@ operation. --@@ -53,10 +53,11 @@ -- -- /See:/ 'createCacheSecurityGroup' smart constructor. data CreateCacheSecurityGroup = CreateCacheSecurityGroup'-    { _ccsgCacheSecurityGroupName :: !Text-    , _ccsgDescription            :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ccsgCacheSecurityGroupName :: !Text+  , _ccsgDescription            :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateCacheSecurityGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -69,11 +70,12 @@     -> Text -- ^ 'ccsgDescription'     -> CreateCacheSecurityGroup createCacheSecurityGroup pCacheSecurityGroupName_ pDescription_ =-    CreateCacheSecurityGroup'-    { _ccsgCacheSecurityGroupName = pCacheSecurityGroupName_-    , _ccsgDescription = pDescription_-    }+  CreateCacheSecurityGroup'+  { _ccsgCacheSecurityGroupName = pCacheSecurityGroupName_+  , _ccsgDescription = pDescription_+  } + -- | A name for the cache security group. This value is stored as a lowercase string. Constraints: Must contain no more than 255 alphanumeric characters. Cannot be the word "Default". Example: @mysecuritygroup@ ccsgCacheSecurityGroupName :: Lens' CreateCacheSecurityGroup Text ccsgCacheSecurityGroupName = lens _ccsgCacheSecurityGroupName (\ s a -> s{_ccsgCacheSecurityGroupName = a});@@ -92,9 +94,9 @@                  CreateCacheSecurityGroupResponse' <$>                    (x .@? "CacheSecurityGroup") <*> (pure (fromEnum s))) -instance Hashable CreateCacheSecurityGroup+instance Hashable CreateCacheSecurityGroup where -instance NFData CreateCacheSecurityGroup+instance NFData CreateCacheSecurityGroup where  instance ToHeaders CreateCacheSecurityGroup where         toHeaders = const mempty@@ -114,10 +116,11 @@  -- | /See:/ 'createCacheSecurityGroupResponse' smart constructor. data CreateCacheSecurityGroupResponse = CreateCacheSecurityGroupResponse'-    { _ccsgrsCacheSecurityGroup :: !(Maybe CacheSecurityGroup)-    , _ccsgrsResponseStatus     :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ccsgrsCacheSecurityGroup :: !(Maybe CacheSecurityGroup)+  , _ccsgrsResponseStatus     :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateCacheSecurityGroupResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -129,11 +132,12 @@     :: Int -- ^ 'ccsgrsResponseStatus'     -> CreateCacheSecurityGroupResponse createCacheSecurityGroupResponse pResponseStatus_ =-    CreateCacheSecurityGroupResponse'-    { _ccsgrsCacheSecurityGroup = Nothing-    , _ccsgrsResponseStatus = pResponseStatus_-    }+  CreateCacheSecurityGroupResponse'+  { _ccsgrsCacheSecurityGroup = Nothing+  , _ccsgrsResponseStatus = pResponseStatus_+  } + -- | Undocumented member. ccsgrsCacheSecurityGroup :: Lens' CreateCacheSecurityGroupResponse (Maybe CacheSecurityGroup) ccsgrsCacheSecurityGroup = lens _ccsgrsCacheSecurityGroup (\ s a -> s{_ccsgrsCacheSecurityGroup = a});@@ -143,3 +147,4 @@ ccsgrsResponseStatus = lens _ccsgrsResponseStatus (\ s a -> s{_ccsgrsResponseStatus = a});  instance NFData CreateCacheSecurityGroupResponse+         where
gen/Network/AWS/ElastiCache/CreateCacheSubnetGroup.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.CreateCacheSubnetGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,12 +41,12 @@     , crsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @CreateCacheSubnetGroup@ operation. --@@ -54,11 +54,12 @@ -- -- /See:/ 'createCacheSubnetGroup' smart constructor. data CreateCacheSubnetGroup = CreateCacheSubnetGroup'-    { _ccsgCacheSubnetGroupName        :: !Text-    , _ccsgCacheSubnetGroupDescription :: !Text-    , _ccsgSubnetIds                   :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ccsgCacheSubnetGroupName        :: !Text+  , _ccsgCacheSubnetGroupDescription :: !Text+  , _ccsgSubnetIds                   :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateCacheSubnetGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,12 +74,13 @@     -> Text -- ^ 'ccsgCacheSubnetGroupDescription'     -> CreateCacheSubnetGroup createCacheSubnetGroup pCacheSubnetGroupName_ pCacheSubnetGroupDescription_ =-    CreateCacheSubnetGroup'-    { _ccsgCacheSubnetGroupName = pCacheSubnetGroupName_-    , _ccsgCacheSubnetGroupDescription = pCacheSubnetGroupDescription_-    , _ccsgSubnetIds = mempty-    }+  CreateCacheSubnetGroup'+  { _ccsgCacheSubnetGroupName = pCacheSubnetGroupName_+  , _ccsgCacheSubnetGroupDescription = pCacheSubnetGroupDescription_+  , _ccsgSubnetIds = mempty+  } + -- | A name for the cache subnet group. This value is stored as a lowercase string. Constraints: Must contain no more than 255 alphanumeric characters or hyphens. Example: @mysubnetgroup@ ccsgCacheSubnetGroupName :: Lens' CreateCacheSubnetGroup Text ccsgCacheSubnetGroupName = lens _ccsgCacheSubnetGroupName (\ s a -> s{_ccsgCacheSubnetGroupName = a});@@ -101,9 +103,9 @@                  CreateCacheSubnetGroupResponse' <$>                    (x .@? "CacheSubnetGroup") <*> (pure (fromEnum s))) -instance Hashable CreateCacheSubnetGroup+instance Hashable CreateCacheSubnetGroup where -instance NFData CreateCacheSubnetGroup+instance NFData CreateCacheSubnetGroup where  instance ToHeaders CreateCacheSubnetGroup where         toHeaders = const mempty@@ -125,10 +127,11 @@  -- | /See:/ 'createCacheSubnetGroupResponse' smart constructor. data CreateCacheSubnetGroupResponse = CreateCacheSubnetGroupResponse'-    { _crsCacheSubnetGroup :: !(Maybe CacheSubnetGroup)-    , _crsResponseStatus   :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _crsCacheSubnetGroup :: !(Maybe CacheSubnetGroup)+  , _crsResponseStatus   :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateCacheSubnetGroupResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -140,11 +143,10 @@     :: Int -- ^ 'crsResponseStatus'     -> CreateCacheSubnetGroupResponse createCacheSubnetGroupResponse pResponseStatus_ =-    CreateCacheSubnetGroupResponse'-    { _crsCacheSubnetGroup = Nothing-    , _crsResponseStatus = pResponseStatus_-    }+  CreateCacheSubnetGroupResponse'+  {_crsCacheSubnetGroup = Nothing, _crsResponseStatus = pResponseStatus_} + -- | Undocumented member. crsCacheSubnetGroup :: Lens' CreateCacheSubnetGroupResponse (Maybe CacheSubnetGroup) crsCacheSubnetGroup = lens _crsCacheSubnetGroup (\ s a -> s{_crsCacheSubnetGroup = a});@@ -153,4 +155,4 @@ crsResponseStatus :: Lens' CreateCacheSubnetGroupResponse Int crsResponseStatus = lens _crsResponseStatus (\ s a -> s{_crsResponseStatus = a}); -instance NFData CreateCacheSubnetGroupResponse+instance NFData CreateCacheSubnetGroupResponse where
gen/Network/AWS/ElastiCache/CreateReplicationGroup.hs view
@@ -12,20 +12,20 @@  -- | -- Module      : Network.AWS.ElastiCache.CreateReplicationGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Creates a Redis (cluster mode disabled) or a Redis (cluster mode enabled) replication group. -- ----- A Redis (cluster mode disabled) replication group is a collection of cache clusters, where one of the cache clusters is a read/write primary and the others are read-only replicas. Writes to the primary are asynchronously propagated to the replicas.+-- A Redis (cluster mode disabled) replication group is a collection of clusters, where one of the clusters is a read/write primary and the others are read-only replicas. Writes to the primary are asynchronously propagated to the replicas. -- -- A Redis (cluster mode enabled) replication group is a collection of 1 to 15 node groups (shards). Each node group (shard) has one read/write primary node and up to 5 read-only replica nodes. Writes to the primary are asynchronously propagated to the replicas. Redis (cluster mode enabled) replication groups partition the data across node groups (shards). ----- When a Redis (cluster mode disabled) replication group has been successfully created, you can add one or more read replicas to it, up to a total of 5 read replicas. You cannot alter a Redis (cluster mode enabled) replication group after it has been created.+-- When a Redis (cluster mode disabled) replication group has been successfully created, you can add one or more read replicas to it, up to a total of 5 read replicas. You cannot alter a Redis (cluster mode enabled) replication group after it has been created. However, if you need to increase or decrease the number of node groups (console: shards), you can avail yourself of ElastiCache for Redis' enhanced backup and restore. For more information, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/backups-restoring.html Restoring From a Backup with Cluster Resizing> in the /ElastiCache User Guide/ . -- module Network.AWS.ElastiCache.CreateReplicationGroup     (@@ -37,10 +37,12 @@     , crgEngineVersion     , crgCacheNodeType     , crgNodeGroupConfiguration+    , crgAtRestEncryptionEnabled     , crgSecurityGroupIds     , crgSnapshotARNs     , crgAutoMinorVersionUpgrade     , crgCacheParameterGroupName+    , crgTransitEncryptionEnabled     , crgSnapshotWindow     , crgAuthToken     , crgPrimaryClusterId@@ -68,12 +70,12 @@     , crgrsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @CreateReplicationGroup@ operation. --@@ -81,81 +83,88 @@ -- -- /See:/ 'createReplicationGroup' smart constructor. data CreateReplicationGroup = CreateReplicationGroup'-    { _crgAutomaticFailoverEnabled    :: !(Maybe Bool)-    , _crgEngineVersion               :: !(Maybe Text)-    , _crgCacheNodeType               :: !(Maybe Text)-    , _crgNodeGroupConfiguration      :: !(Maybe [NodeGroupConfiguration])-    , _crgSecurityGroupIds            :: !(Maybe [Text])-    , _crgSnapshotARNs                :: !(Maybe [Text])-    , _crgAutoMinorVersionUpgrade     :: !(Maybe Bool)-    , _crgCacheParameterGroupName     :: !(Maybe Text)-    , _crgSnapshotWindow              :: !(Maybe Text)-    , _crgAuthToken                   :: !(Maybe Text)-    , _crgPrimaryClusterId            :: !(Maybe Text)-    , _crgEngine                      :: !(Maybe Text)-    , _crgPreferredMaintenanceWindow  :: !(Maybe Text)-    , _crgCacheSubnetGroupName        :: !(Maybe Text)-    , _crgNumNodeGroups               :: !(Maybe Int)-    , _crgSnapshotRetentionLimit      :: !(Maybe Int)-    , _crgReplicasPerNodeGroup        :: !(Maybe Int)-    , _crgNumCacheClusters            :: !(Maybe Int)-    , _crgPreferredCacheClusterAZs    :: !(Maybe [Text])-    , _crgSnapshotName                :: !(Maybe Text)-    , _crgNotificationTopicARN        :: !(Maybe Text)-    , _crgTags                        :: !(Maybe [Tag])-    , _crgPort                        :: !(Maybe Int)-    , _crgCacheSecurityGroupNames     :: !(Maybe [Text])-    , _crgReplicationGroupId          :: !Text-    , _crgReplicationGroupDescription :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _crgAutomaticFailoverEnabled    :: !(Maybe Bool)+  , _crgEngineVersion               :: !(Maybe Text)+  , _crgCacheNodeType               :: !(Maybe Text)+  , _crgNodeGroupConfiguration      :: !(Maybe [NodeGroupConfiguration])+  , _crgAtRestEncryptionEnabled     :: !(Maybe Bool)+  , _crgSecurityGroupIds            :: !(Maybe [Text])+  , _crgSnapshotARNs                :: !(Maybe [Text])+  , _crgAutoMinorVersionUpgrade     :: !(Maybe Bool)+  , _crgCacheParameterGroupName     :: !(Maybe Text)+  , _crgTransitEncryptionEnabled    :: !(Maybe Bool)+  , _crgSnapshotWindow              :: !(Maybe Text)+  , _crgAuthToken                   :: !(Maybe Text)+  , _crgPrimaryClusterId            :: !(Maybe Text)+  , _crgEngine                      :: !(Maybe Text)+  , _crgPreferredMaintenanceWindow  :: !(Maybe Text)+  , _crgCacheSubnetGroupName        :: !(Maybe Text)+  , _crgNumNodeGroups               :: !(Maybe Int)+  , _crgSnapshotRetentionLimit      :: !(Maybe Int)+  , _crgReplicasPerNodeGroup        :: !(Maybe Int)+  , _crgNumCacheClusters            :: !(Maybe Int)+  , _crgPreferredCacheClusterAZs    :: !(Maybe [Text])+  , _crgSnapshotName                :: !(Maybe Text)+  , _crgNotificationTopicARN        :: !(Maybe Text)+  , _crgTags                        :: !(Maybe [Tag])+  , _crgPort                        :: !(Maybe Int)+  , _crgCacheSecurityGroupNames     :: !(Maybe [Text])+  , _crgReplicationGroupId          :: !Text+  , _crgReplicationGroupDescription :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateReplicationGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'crgAutomaticFailoverEnabled' - Specifies whether a read-only replica is automatically promoted to read/write primary if the existing primary fails. If @true@ , Multi-AZ is enabled for this replication group. If @false@ , Multi-AZ is disabled for this replication group. @AutomaticFailoverEnabled@ must be enabled for Redis (cluster mode enabled) replication groups. Default: false+-- * 'crgAutomaticFailoverEnabled' - Specifies whether a read-only replica is automatically promoted to read/write primary if the existing primary fails. If @true@ , Multi-AZ is enabled for this replication group. If @false@ , Multi-AZ is disabled for this replication group. @AutomaticFailoverEnabled@ must be enabled for Redis (cluster mode enabled) replication groups. Default: false Amazon ElastiCache for Redis does not support Multi-AZ with automatic failover on:     * Redis versions earlier than 2.8.6.     * Redis (cluster mode disabled): T1 and T2 cache node types.     * Redis (cluster mode enabled): T1 node types. ----- * 'crgEngineVersion' - The version number of the cache engine to be used for the cache clusters in this replication group. To view the supported cache engine versions, use the @DescribeCacheEngineVersions@ operation. __Important:__ You can upgrade to a newer engine version (see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SelectEngine.html#VersionManagement Selecting a Cache Engine and Version> ) in the /ElastiCache User Guide/ , but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cache cluster or replication group and create it anew with the earlier engine version.+-- * 'crgEngineVersion' - The version number of the cache engine to be used for the clusters in this replication group. To view the supported cache engine versions, use the @DescribeCacheEngineVersions@ operation. __Important:__ You can upgrade to a newer engine version (see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SelectEngine.html#VersionManagement Selecting a Cache Engine and Version> ) in the /ElastiCache User Guide/ , but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cluster or replication group and create it anew with the earlier engine version. ----- * 'crgCacheNodeType' - The compute and memory capacity of the nodes in the node group (shard). Valid node types are as follows:     * General purpose:     * Current generation: @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@ , @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@ , @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: @cache.t1.micro@ , @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized: @cache.c1.xlarge@      * Memory optimized:     * Current generation: @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .+-- * 'crgCacheNodeType' - The compute and memory capacity of the nodes in the node group (shard). The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.     * General purpose:     * Current generation:  __T2 node types:__ @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@  __M3 node types:__ @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@  __M4 node types:__ @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: (not recommended) __T1 node types:__ @cache.t1.micro@  __M1 node types:__ @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized:     * Previous generation: (not recommended) __C1 node types:__ @cache.c1.xlarge@      * Memory optimized:     * Current generation:  __R3 node types:__ @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: (not recommended) __M2 node types:__ @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances.      * Redis (cluster mode enabled): Backup/restore is not supported on T1 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> . ----- * 'crgNodeGroupConfiguration' - A list of node group (shard) configuration options. Each node group (shard) configuration has the following: Slots, PrimaryAvailabilityZone, ReplicaAvailabilityZones, ReplicaCount. If you're creating a Redis (cluster mode disabled) or a Redis (cluster mode enabled) replication group, you can use this parameter to configure one node group (shard) or you can omit this parameter.+-- * 'crgNodeGroupConfiguration' - A list of node group (shard) configuration options. Each node group (shard) configuration has the following: Slots, PrimaryAvailabilityZone, ReplicaAvailabilityZones, ReplicaCount. If you're creating a Redis (cluster mode disabled) or a Redis (cluster mode enabled) replication group, you can use this parameter to individually configure each node group (shard), or you can omit this parameter. --+-- * 'crgAtRestEncryptionEnabled' - A flag that enables encryption at rest when set to @true@ . You cannot modify the value of @AtRestEncryptionEnabled@ after the replication group is created. To enable encryption at rest on a replication group you must set @AtRestEncryptionEnabled@ to @true@ when you create the replication group.  Default: @false@+-- -- * 'crgSecurityGroupIds' - One or more Amazon VPC security groups associated with this replication group. Use this parameter only when you are creating a replication group in an Amazon Virtual Private Cloud (Amazon VPC). ----- * 'crgSnapshotARNs' - A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB snapshot files stored in Amazon S3. The snapshot files are used to populate the replication group. The Amazon S3 object name in the ARN cannot contain any commas. The list must match the number of node groups (shards) in the replication group, which means you cannot repartition. Example of an Amazon S3 ARN: @arn:aws:s3:::my_bucket/snapshot1.rdb@+-- * 'crgSnapshotARNs' - A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB snapshot files stored in Amazon S3. The snapshot files are used to populate the new replication group. The Amazon S3 object name in the ARN cannot contain any commas. The new replication group will have the number of node groups (console: shards) specified by the parameter /NumNodeGroups/ or the number of node groups configured by /NodeGroupConfiguration/ regardless of the number of ARNs specified here. Example of an Amazon S3 ARN: @arn:aws:s3:::my_bucket/snapshot1.rdb@ -- -- * 'crgAutoMinorVersionUpgrade' - This parameter is currently disabled. -- -- * 'crgCacheParameterGroupName' - The name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used. If you are running Redis version 3.2.4 or later, only one node group (shard), and want to use a default parameter group, we recommend that you specify the parameter group by name.      * To create a Redis (cluster mode disabled) replication group, use @CacheParameterGroupName=default.redis3.2@ .     * To create a Redis (cluster mode enabled) replication group, use @CacheParameterGroupName=default.redis3.2.cluster.on@ . --+-- * 'crgTransitEncryptionEnabled' - A flag that enables in-transit encryption when set to @true@ . You cannot modify the value of @TransitEncryptionEnabled@ after the cluster is created. To enable in-transit encryption on a cluster you must set @TransitEncryptionEnabled@ to @true@ when you create a cluster. This parameter is valid only if the @Engine@ parameter is @redis@ , the @EngineVersion@ parameter is @3.2.4@ or later, and the cluster is being created in an Amazon VPC. If you enable in-transit encryption, you must also specify a value for @CacheSubnetGroup@ . Default: @false@+-- -- * 'crgSnapshotWindow' - The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: @05:00-09:00@  If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. ----- * 'crgAuthToken' - The password used to access a password protected server. Password constraints:     * Must be only printable ASCII characters.     * Must be at least 16 characters and no more than 128 characters in length.     * Cannot contain any of the following characters: '/', '"', or "@".  For more information, see <http://redis.io/commands/AUTH AUTH password> at Redis.+-- * 'crgAuthToken' - __Reserved parameter.__ The password used to access a password protected server. This parameter is valid only if:     * The parameter @TransitEncryptionEnabled@ was set to @true@ when the cluster was created.     * The line @requirepass@ was added to the database configuration file. Password constraints:     * Must be only printable ASCII characters.     * Must be at least 16 characters and no more than 128 characters in length.     * Cannot contain any of the following characters: '/', '"', or '@'.  For more information, see <http://redis.io/commands/AUTH AUTH password> at http://redis.io/commands/AUTH. ----- * 'crgPrimaryClusterId' - The identifier of the cache cluster that serves as the primary for this replication group. This cache cluster must already exist and have a status of @available@ . This parameter is not required if @NumCacheClusters@ , @NumNodeGroups@ , or @ReplicasPerNodeGroup@ is specified.+-- * 'crgPrimaryClusterId' - The identifier of the cluster that serves as the primary for this replication group. This cluster must already exist and have a status of @available@ . This parameter is not required if @NumCacheClusters@ , @NumNodeGroups@ , or @ReplicasPerNodeGroup@ is specified. ----- * 'crgEngine' - The name of the cache engine to be used for the cache clusters in this replication group.+-- * 'crgEngine' - The name of the cache engine to be used for the clusters in this replication group. ----- * 'crgPreferredMaintenanceWindow' - Specifies the weekly time range during which maintenance on the cache cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are: Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are:     * @sun@      * @mon@      * @tue@      * @wed@      * @thu@      * @fri@      * @sat@  Example: @sun:23:00-mon:01:30@+-- * 'crgPreferredMaintenanceWindow' - Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are: Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are:     * @sun@      * @mon@      * @tue@      * @wed@      * @thu@      * @fri@      * @sat@  Example: @sun:23:00-mon:01:30@ -- -- * 'crgCacheSubnetGroupName' - The name of the cache subnet group to be used for the replication group. /Important:/ If you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster. For more information, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SubnetGroups.html Subnets and Subnet Groups> . -- -- * 'crgNumNodeGroups' - An optional parameter that specifies the number of node groups (shards) for this Redis (cluster mode enabled) replication group. For Redis (cluster mode disabled) either omit this parameter or set it to 1. Default: 1 ----- * 'crgSnapshotRetentionLimit' - The number of days for which ElastiCache retains automatic snapshots before deleting them. For example, if you set @SnapshotRetentionLimit@ to 5, a snapshot that was taken today is retained for 5 days before being deleted. Default: 0 (i.e., automatic backups are disabled for this cache cluster).+-- * 'crgSnapshotRetentionLimit' - The number of days for which ElastiCache retains automatic snapshots before deleting them. For example, if you set @SnapshotRetentionLimit@ to 5, a snapshot that was taken today is retained for 5 days before being deleted. Default: 0 (i.e., automatic backups are disabled for this cluster). -- -- * 'crgReplicasPerNodeGroup' - An optional parameter that specifies the number of replica nodes in each node group (shard). Valid values are 0 to 5. ----- * 'crgNumCacheClusters' - The number of clusters this replication group initially has. This parameter is not used if there is more than one node group (shard). You should use @ReplicasPerNodeGroup@ instead. If @Multi-AZ@ is @enabled@ , the value of this parameter must be at least 2. The maximum permitted value for @NumCacheClusters@ is 6 (primary plus 5 replicas).+-- * 'crgNumCacheClusters' - The number of clusters this replication group initially has. This parameter is not used if there is more than one node group (shard). You should use @ReplicasPerNodeGroup@ instead. If @AutomaticFailoverEnabled@ is @true@ , the value of this parameter must be at least 2. If @AutomaticFailoverEnabled@ is @false@ you can omit this parameter (it will default to 1), or you can explicitly set it to a value between 2 and 6. The maximum permitted value for @NumCacheClusters@ is 6 (primary plus 5 replicas). ----- * 'crgPreferredCacheClusterAZs' - A list of EC2 Availability Zones in which the replication group's cache clusters are created. The order of the Availability Zones in the list is the order in which clusters are allocated. The primary cluster is created in the first AZ in the list. This parameter is not used if there is more than one node group (shard). You should use @NodeGroupConfiguration@ instead. Default: system chosen Availability Zones.+-- * 'crgPreferredCacheClusterAZs' - A list of EC2 Availability Zones in which the replication group's clusters are created. The order of the Availability Zones in the list is the order in which clusters are allocated. The primary cluster is created in the first AZ in the list. This parameter is not used if there is more than one node group (shard). You should use @NodeGroupConfiguration@ instead. Default: system chosen Availability Zones. -- -- * 'crgSnapshotName' - The name of a snapshot from which to restore data into the new replication group. The snapshot status changes to @restoring@ while the new replication group is being created. -- -- * 'crgNotificationTopicARN' - The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent. ----- * 'crgTags' - A list of cost allocation tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value.+-- * 'crgTags' - A list of cost allocation tags to be added to this resource. A tag is a key-value pair. A tag key does not have to be accompanied by a tag value. -- -- * 'crgPort' - The port number on which each member of the replication group accepts connections. --@@ -169,56 +178,63 @@     -> Text -- ^ 'crgReplicationGroupDescription'     -> CreateReplicationGroup createReplicationGroup pReplicationGroupId_ pReplicationGroupDescription_ =-    CreateReplicationGroup'-    { _crgAutomaticFailoverEnabled = Nothing-    , _crgEngineVersion = Nothing-    , _crgCacheNodeType = Nothing-    , _crgNodeGroupConfiguration = Nothing-    , _crgSecurityGroupIds = Nothing-    , _crgSnapshotARNs = Nothing-    , _crgAutoMinorVersionUpgrade = Nothing-    , _crgCacheParameterGroupName = Nothing-    , _crgSnapshotWindow = Nothing-    , _crgAuthToken = Nothing-    , _crgPrimaryClusterId = Nothing-    , _crgEngine = Nothing-    , _crgPreferredMaintenanceWindow = Nothing-    , _crgCacheSubnetGroupName = Nothing-    , _crgNumNodeGroups = Nothing-    , _crgSnapshotRetentionLimit = Nothing-    , _crgReplicasPerNodeGroup = Nothing-    , _crgNumCacheClusters = Nothing-    , _crgPreferredCacheClusterAZs = Nothing-    , _crgSnapshotName = Nothing-    , _crgNotificationTopicARN = Nothing-    , _crgTags = Nothing-    , _crgPort = Nothing-    , _crgCacheSecurityGroupNames = Nothing-    , _crgReplicationGroupId = pReplicationGroupId_-    , _crgReplicationGroupDescription = pReplicationGroupDescription_-    }+  CreateReplicationGroup'+  { _crgAutomaticFailoverEnabled = Nothing+  , _crgEngineVersion = Nothing+  , _crgCacheNodeType = Nothing+  , _crgNodeGroupConfiguration = Nothing+  , _crgAtRestEncryptionEnabled = Nothing+  , _crgSecurityGroupIds = Nothing+  , _crgSnapshotARNs = Nothing+  , _crgAutoMinorVersionUpgrade = Nothing+  , _crgCacheParameterGroupName = Nothing+  , _crgTransitEncryptionEnabled = Nothing+  , _crgSnapshotWindow = Nothing+  , _crgAuthToken = Nothing+  , _crgPrimaryClusterId = Nothing+  , _crgEngine = Nothing+  , _crgPreferredMaintenanceWindow = Nothing+  , _crgCacheSubnetGroupName = Nothing+  , _crgNumNodeGroups = Nothing+  , _crgSnapshotRetentionLimit = Nothing+  , _crgReplicasPerNodeGroup = Nothing+  , _crgNumCacheClusters = Nothing+  , _crgPreferredCacheClusterAZs = Nothing+  , _crgSnapshotName = Nothing+  , _crgNotificationTopicARN = Nothing+  , _crgTags = Nothing+  , _crgPort = Nothing+  , _crgCacheSecurityGroupNames = Nothing+  , _crgReplicationGroupId = pReplicationGroupId_+  , _crgReplicationGroupDescription = pReplicationGroupDescription_+  } --- | Specifies whether a read-only replica is automatically promoted to read/write primary if the existing primary fails. If @true@ , Multi-AZ is enabled for this replication group. If @false@ , Multi-AZ is disabled for this replication group. @AutomaticFailoverEnabled@ must be enabled for Redis (cluster mode enabled) replication groups. Default: false++-- | Specifies whether a read-only replica is automatically promoted to read/write primary if the existing primary fails. If @true@ , Multi-AZ is enabled for this replication group. If @false@ , Multi-AZ is disabled for this replication group. @AutomaticFailoverEnabled@ must be enabled for Redis (cluster mode enabled) replication groups. Default: false Amazon ElastiCache for Redis does not support Multi-AZ with automatic failover on:     * Redis versions earlier than 2.8.6.     * Redis (cluster mode disabled): T1 and T2 cache node types.     * Redis (cluster mode enabled): T1 node types. crgAutomaticFailoverEnabled :: Lens' CreateReplicationGroup (Maybe Bool) crgAutomaticFailoverEnabled = lens _crgAutomaticFailoverEnabled (\ s a -> s{_crgAutomaticFailoverEnabled = a}); --- | The version number of the cache engine to be used for the cache clusters in this replication group. To view the supported cache engine versions, use the @DescribeCacheEngineVersions@ operation. __Important:__ You can upgrade to a newer engine version (see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SelectEngine.html#VersionManagement Selecting a Cache Engine and Version> ) in the /ElastiCache User Guide/ , but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cache cluster or replication group and create it anew with the earlier engine version.+-- | The version number of the cache engine to be used for the clusters in this replication group. To view the supported cache engine versions, use the @DescribeCacheEngineVersions@ operation. __Important:__ You can upgrade to a newer engine version (see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SelectEngine.html#VersionManagement Selecting a Cache Engine and Version> ) in the /ElastiCache User Guide/ , but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cluster or replication group and create it anew with the earlier engine version. crgEngineVersion :: Lens' CreateReplicationGroup (Maybe Text) crgEngineVersion = lens _crgEngineVersion (\ s a -> s{_crgEngineVersion = a}); --- | The compute and memory capacity of the nodes in the node group (shard). Valid node types are as follows:     * General purpose:     * Current generation: @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@ , @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@ , @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: @cache.t1.micro@ , @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized: @cache.c1.xlarge@      * Memory optimized:     * Current generation: @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .+-- | The compute and memory capacity of the nodes in the node group (shard). The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.     * General purpose:     * Current generation:  __T2 node types:__ @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@  __M3 node types:__ @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@  __M4 node types:__ @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: (not recommended) __T1 node types:__ @cache.t1.micro@  __M1 node types:__ @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized:     * Previous generation: (not recommended) __C1 node types:__ @cache.c1.xlarge@      * Memory optimized:     * Current generation:  __R3 node types:__ @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: (not recommended) __M2 node types:__ @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances.      * Redis (cluster mode enabled): Backup/restore is not supported on T1 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> . crgCacheNodeType :: Lens' CreateReplicationGroup (Maybe Text) crgCacheNodeType = lens _crgCacheNodeType (\ s a -> s{_crgCacheNodeType = a}); --- | A list of node group (shard) configuration options. Each node group (shard) configuration has the following: Slots, PrimaryAvailabilityZone, ReplicaAvailabilityZones, ReplicaCount. If you're creating a Redis (cluster mode disabled) or a Redis (cluster mode enabled) replication group, you can use this parameter to configure one node group (shard) or you can omit this parameter.+-- | A list of node group (shard) configuration options. Each node group (shard) configuration has the following: Slots, PrimaryAvailabilityZone, ReplicaAvailabilityZones, ReplicaCount. If you're creating a Redis (cluster mode disabled) or a Redis (cluster mode enabled) replication group, you can use this parameter to individually configure each node group (shard), or you can omit this parameter. crgNodeGroupConfiguration :: Lens' CreateReplicationGroup [NodeGroupConfiguration] crgNodeGroupConfiguration = lens _crgNodeGroupConfiguration (\ s a -> s{_crgNodeGroupConfiguration = a}) . _Default . _Coerce; +-- | A flag that enables encryption at rest when set to @true@ . You cannot modify the value of @AtRestEncryptionEnabled@ after the replication group is created. To enable encryption at rest on a replication group you must set @AtRestEncryptionEnabled@ to @true@ when you create the replication group.  Default: @false@+crgAtRestEncryptionEnabled :: Lens' CreateReplicationGroup (Maybe Bool)+crgAtRestEncryptionEnabled = lens _crgAtRestEncryptionEnabled (\ s a -> s{_crgAtRestEncryptionEnabled = a});+ -- | One or more Amazon VPC security groups associated with this replication group. Use this parameter only when you are creating a replication group in an Amazon Virtual Private Cloud (Amazon VPC). crgSecurityGroupIds :: Lens' CreateReplicationGroup [Text] crgSecurityGroupIds = lens _crgSecurityGroupIds (\ s a -> s{_crgSecurityGroupIds = a}) . _Default . _Coerce; --- | A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB snapshot files stored in Amazon S3. The snapshot files are used to populate the replication group. The Amazon S3 object name in the ARN cannot contain any commas. The list must match the number of node groups (shards) in the replication group, which means you cannot repartition. Example of an Amazon S3 ARN: @arn:aws:s3:::my_bucket/snapshot1.rdb@+-- | A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB snapshot files stored in Amazon S3. The snapshot files are used to populate the new replication group. The Amazon S3 object name in the ARN cannot contain any commas. The new replication group will have the number of node groups (console: shards) specified by the parameter /NumNodeGroups/ or the number of node groups configured by /NodeGroupConfiguration/ regardless of the number of ARNs specified here. Example of an Amazon S3 ARN: @arn:aws:s3:::my_bucket/snapshot1.rdb@ crgSnapshotARNs :: Lens' CreateReplicationGroup [Text] crgSnapshotARNs = lens _crgSnapshotARNs (\ s a -> s{_crgSnapshotARNs = a}) . _Default . _Coerce; @@ -230,23 +246,27 @@ crgCacheParameterGroupName :: Lens' CreateReplicationGroup (Maybe Text) crgCacheParameterGroupName = lens _crgCacheParameterGroupName (\ s a -> s{_crgCacheParameterGroupName = a}); +-- | A flag that enables in-transit encryption when set to @true@ . You cannot modify the value of @TransitEncryptionEnabled@ after the cluster is created. To enable in-transit encryption on a cluster you must set @TransitEncryptionEnabled@ to @true@ when you create a cluster. This parameter is valid only if the @Engine@ parameter is @redis@ , the @EngineVersion@ parameter is @3.2.4@ or later, and the cluster is being created in an Amazon VPC. If you enable in-transit encryption, you must also specify a value for @CacheSubnetGroup@ . Default: @false@+crgTransitEncryptionEnabled :: Lens' CreateReplicationGroup (Maybe Bool)+crgTransitEncryptionEnabled = lens _crgTransitEncryptionEnabled (\ s a -> s{_crgTransitEncryptionEnabled = a});+ -- | The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: @05:00-09:00@  If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. crgSnapshotWindow :: Lens' CreateReplicationGroup (Maybe Text) crgSnapshotWindow = lens _crgSnapshotWindow (\ s a -> s{_crgSnapshotWindow = a}); --- | The password used to access a password protected server. Password constraints:     * Must be only printable ASCII characters.     * Must be at least 16 characters and no more than 128 characters in length.     * Cannot contain any of the following characters: '/', '"', or "@".  For more information, see <http://redis.io/commands/AUTH AUTH password> at Redis.+-- | __Reserved parameter.__ The password used to access a password protected server. This parameter is valid only if:     * The parameter @TransitEncryptionEnabled@ was set to @true@ when the cluster was created.     * The line @requirepass@ was added to the database configuration file. Password constraints:     * Must be only printable ASCII characters.     * Must be at least 16 characters and no more than 128 characters in length.     * Cannot contain any of the following characters: '/', '"', or '@'.  For more information, see <http://redis.io/commands/AUTH AUTH password> at http://redis.io/commands/AUTH. crgAuthToken :: Lens' CreateReplicationGroup (Maybe Text) crgAuthToken = lens _crgAuthToken (\ s a -> s{_crgAuthToken = a}); --- | The identifier of the cache cluster that serves as the primary for this replication group. This cache cluster must already exist and have a status of @available@ . This parameter is not required if @NumCacheClusters@ , @NumNodeGroups@ , or @ReplicasPerNodeGroup@ is specified.+-- | The identifier of the cluster that serves as the primary for this replication group. This cluster must already exist and have a status of @available@ . This parameter is not required if @NumCacheClusters@ , @NumNodeGroups@ , or @ReplicasPerNodeGroup@ is specified. crgPrimaryClusterId :: Lens' CreateReplicationGroup (Maybe Text) crgPrimaryClusterId = lens _crgPrimaryClusterId (\ s a -> s{_crgPrimaryClusterId = a}); --- | The name of the cache engine to be used for the cache clusters in this replication group.+-- | The name of the cache engine to be used for the clusters in this replication group. crgEngine :: Lens' CreateReplicationGroup (Maybe Text) crgEngine = lens _crgEngine (\ s a -> s{_crgEngine = a}); --- | Specifies the weekly time range during which maintenance on the cache cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are: Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are:     * @sun@      * @mon@      * @tue@      * @wed@      * @thu@      * @fri@      * @sat@  Example: @sun:23:00-mon:01:30@+-- | Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are: Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are:     * @sun@      * @mon@      * @tue@      * @wed@      * @thu@      * @fri@      * @sat@  Example: @sun:23:00-mon:01:30@ crgPreferredMaintenanceWindow :: Lens' CreateReplicationGroup (Maybe Text) crgPreferredMaintenanceWindow = lens _crgPreferredMaintenanceWindow (\ s a -> s{_crgPreferredMaintenanceWindow = a}); @@ -258,7 +278,7 @@ crgNumNodeGroups :: Lens' CreateReplicationGroup (Maybe Int) crgNumNodeGroups = lens _crgNumNodeGroups (\ s a -> s{_crgNumNodeGroups = a}); --- | The number of days for which ElastiCache retains automatic snapshots before deleting them. For example, if you set @SnapshotRetentionLimit@ to 5, a snapshot that was taken today is retained for 5 days before being deleted. Default: 0 (i.e., automatic backups are disabled for this cache cluster).+-- | The number of days for which ElastiCache retains automatic snapshots before deleting them. For example, if you set @SnapshotRetentionLimit@ to 5, a snapshot that was taken today is retained for 5 days before being deleted. Default: 0 (i.e., automatic backups are disabled for this cluster). crgSnapshotRetentionLimit :: Lens' CreateReplicationGroup (Maybe Int) crgSnapshotRetentionLimit = lens _crgSnapshotRetentionLimit (\ s a -> s{_crgSnapshotRetentionLimit = a}); @@ -266,11 +286,11 @@ crgReplicasPerNodeGroup :: Lens' CreateReplicationGroup (Maybe Int) crgReplicasPerNodeGroup = lens _crgReplicasPerNodeGroup (\ s a -> s{_crgReplicasPerNodeGroup = a}); --- | The number of clusters this replication group initially has. This parameter is not used if there is more than one node group (shard). You should use @ReplicasPerNodeGroup@ instead. If @Multi-AZ@ is @enabled@ , the value of this parameter must be at least 2. The maximum permitted value for @NumCacheClusters@ is 6 (primary plus 5 replicas).+-- | The number of clusters this replication group initially has. This parameter is not used if there is more than one node group (shard). You should use @ReplicasPerNodeGroup@ instead. If @AutomaticFailoverEnabled@ is @true@ , the value of this parameter must be at least 2. If @AutomaticFailoverEnabled@ is @false@ you can omit this parameter (it will default to 1), or you can explicitly set it to a value between 2 and 6. The maximum permitted value for @NumCacheClusters@ is 6 (primary plus 5 replicas). crgNumCacheClusters :: Lens' CreateReplicationGroup (Maybe Int) crgNumCacheClusters = lens _crgNumCacheClusters (\ s a -> s{_crgNumCacheClusters = a}); --- | A list of EC2 Availability Zones in which the replication group's cache clusters are created. The order of the Availability Zones in the list is the order in which clusters are allocated. The primary cluster is created in the first AZ in the list. This parameter is not used if there is more than one node group (shard). You should use @NodeGroupConfiguration@ instead. Default: system chosen Availability Zones.+-- | A list of EC2 Availability Zones in which the replication group's clusters are created. The order of the Availability Zones in the list is the order in which clusters are allocated. The primary cluster is created in the first AZ in the list. This parameter is not used if there is more than one node group (shard). You should use @NodeGroupConfiguration@ instead. Default: system chosen Availability Zones. crgPreferredCacheClusterAZs :: Lens' CreateReplicationGroup [Text] crgPreferredCacheClusterAZs = lens _crgPreferredCacheClusterAZs (\ s a -> s{_crgPreferredCacheClusterAZs = a}) . _Default . _Coerce; @@ -282,7 +302,7 @@ crgNotificationTopicARN :: Lens' CreateReplicationGroup (Maybe Text) crgNotificationTopicARN = lens _crgNotificationTopicARN (\ s a -> s{_crgNotificationTopicARN = a}); --- | A list of cost allocation tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value.+-- | A list of cost allocation tags to be added to this resource. A tag is a key-value pair. A tag key does not have to be accompanied by a tag value. crgTags :: Lens' CreateReplicationGroup [Tag] crgTags = lens _crgTags (\ s a -> s{_crgTags = a}) . _Default . _Coerce; @@ -312,9 +332,9 @@                  CreateReplicationGroupResponse' <$>                    (x .@? "ReplicationGroup") <*> (pure (fromEnum s))) -instance Hashable CreateReplicationGroup+instance Hashable CreateReplicationGroup where -instance NFData CreateReplicationGroup+instance NFData CreateReplicationGroup where  instance ToHeaders CreateReplicationGroup where         toHeaders = const mempty@@ -336,6 +356,8 @@                  toQuery                    (toQueryList "NodeGroupConfiguration" <$>                       _crgNodeGroupConfiguration),+               "AtRestEncryptionEnabled" =:+                 _crgAtRestEncryptionEnabled,                "SecurityGroupIds" =:                  toQuery                    (toQueryList "SecurityGroupId" <$>@@ -347,6 +369,8 @@                  _crgAutoMinorVersionUpgrade,                "CacheParameterGroupName" =:                  _crgCacheParameterGroupName,+               "TransitEncryptionEnabled" =:+                 _crgTransitEncryptionEnabled,                "SnapshotWindow" =: _crgSnapshotWindow,                "AuthToken" =: _crgAuthToken,                "PrimaryClusterId" =: _crgPrimaryClusterId,@@ -377,10 +401,11 @@  -- | /See:/ 'createReplicationGroupResponse' smart constructor. data CreateReplicationGroupResponse = CreateReplicationGroupResponse'-    { _crgrsReplicationGroup :: !(Maybe ReplicationGroup)-    , _crgrsResponseStatus   :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _crgrsReplicationGroup :: !(Maybe ReplicationGroup)+  , _crgrsResponseStatus   :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateReplicationGroupResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -392,11 +417,10 @@     :: Int -- ^ 'crgrsResponseStatus'     -> CreateReplicationGroupResponse createReplicationGroupResponse pResponseStatus_ =-    CreateReplicationGroupResponse'-    { _crgrsReplicationGroup = Nothing-    , _crgrsResponseStatus = pResponseStatus_-    }+  CreateReplicationGroupResponse'+  {_crgrsReplicationGroup = Nothing, _crgrsResponseStatus = pResponseStatus_} + -- | Undocumented member. crgrsReplicationGroup :: Lens' CreateReplicationGroupResponse (Maybe ReplicationGroup) crgrsReplicationGroup = lens _crgrsReplicationGroup (\ s a -> s{_crgrsReplicationGroup = a});@@ -405,4 +429,4 @@ crgrsResponseStatus :: Lens' CreateReplicationGroupResponse Int crgrsResponseStatus = lens _crgrsResponseStatus (\ s a -> s{_crgrsResponseStatus = a}); -instance NFData CreateReplicationGroupResponse+instance NFData CreateReplicationGroupResponse where
gen/Network/AWS/ElastiCache/CreateSnapshot.hs view
@@ -12,13 +12,13 @@  -- | -- Module      : Network.AWS.ElastiCache.CreateSnapshot--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Creates a copy of an entire cache cluster or replication group at a specific moment in time.+-- Creates a copy of an entire cluster or replication group at a specific moment in time. -- -- module Network.AWS.ElastiCache.CreateSnapshot@@ -39,12 +39,12 @@     , crersResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @CreateSnapshot@ operation. --@@ -52,16 +52,17 @@ -- -- /See:/ 'createSnapshot' smart constructor. data CreateSnapshot = CreateSnapshot'-    { _csCacheClusterId     :: !(Maybe Text)-    , _csReplicationGroupId :: !(Maybe Text)-    , _csSnapshotName       :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _csCacheClusterId     :: !(Maybe Text)+  , _csReplicationGroupId :: !(Maybe Text)+  , _csSnapshotName       :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateSnapshot' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'csCacheClusterId' - The identifier of an existing cache cluster. The snapshot is created from this cache cluster.+-- * 'csCacheClusterId' - The identifier of an existing cluster. The snapshot is created from this cluster. -- -- * 'csReplicationGroupId' - The identifier of an existing replication group. The snapshot is created from this replication group. --@@ -70,13 +71,14 @@     :: Text -- ^ 'csSnapshotName'     -> CreateSnapshot createSnapshot pSnapshotName_ =-    CreateSnapshot'-    { _csCacheClusterId = Nothing-    , _csReplicationGroupId = Nothing-    , _csSnapshotName = pSnapshotName_-    }+  CreateSnapshot'+  { _csCacheClusterId = Nothing+  , _csReplicationGroupId = Nothing+  , _csSnapshotName = pSnapshotName_+  } --- | The identifier of an existing cache cluster. The snapshot is created from this cache cluster.++-- | The identifier of an existing cluster. The snapshot is created from this cluster. csCacheClusterId :: Lens' CreateSnapshot (Maybe Text) csCacheClusterId = lens _csCacheClusterId (\ s a -> s{_csCacheClusterId = a}); @@ -97,9 +99,9 @@                  CreateSnapshotResponse' <$>                    (x .@? "Snapshot") <*> (pure (fromEnum s))) -instance Hashable CreateSnapshot+instance Hashable CreateSnapshot where -instance NFData CreateSnapshot+instance NFData CreateSnapshot where  instance ToHeaders CreateSnapshot where         toHeaders = const mempty@@ -118,10 +120,11 @@  -- | /See:/ 'createSnapshotResponse' smart constructor. data CreateSnapshotResponse = CreateSnapshotResponse'-    { _crersSnapshot       :: !(Maybe Snapshot)-    , _crersResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _crersSnapshot       :: !(Maybe Snapshot)+  , _crersResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateSnapshotResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -133,11 +136,10 @@     :: Int -- ^ 'crersResponseStatus'     -> CreateSnapshotResponse createSnapshotResponse pResponseStatus_ =-    CreateSnapshotResponse'-    { _crersSnapshot = Nothing-    , _crersResponseStatus = pResponseStatus_-    }+  CreateSnapshotResponse'+  {_crersSnapshot = Nothing, _crersResponseStatus = pResponseStatus_} + -- | Undocumented member. crersSnapshot :: Lens' CreateSnapshotResponse (Maybe Snapshot) crersSnapshot = lens _crersSnapshot (\ s a -> s{_crersSnapshot = a});@@ -146,4 +148,4 @@ crersResponseStatus :: Lens' CreateSnapshotResponse Int crersResponseStatus = lens _crersResponseStatus (\ s a -> s{_crersResponseStatus = a}); -instance NFData CreateSnapshotResponse+instance NFData CreateSnapshotResponse where
gen/Network/AWS/ElastiCache/DeleteCacheCluster.hs view
@@ -12,16 +12,16 @@  -- | -- Module      : Network.AWS.ElastiCache.DeleteCacheCluster--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Deletes a previously provisioned cache cluster. @DeleteCacheCluster@ deletes all associated cache nodes, node endpoints and the cache cluster itself. When you receive a successful response from this operation, Amazon ElastiCache immediately begins deleting the cache cluster; you cannot cancel or revert this operation.+-- Deletes a previously provisioned cluster. @DeleteCacheCluster@ deletes all associated cache nodes, node endpoints and the cluster itself. When you receive a successful response from this operation, Amazon ElastiCache immediately begins deleting the cluster; you cannot cancel or revert this operation. -- ----- This operation cannot be used to delete a cache cluster that is the last read replica of a replication group or node group (shard) that has Multi-AZ mode enabled or a cache cluster from a Redis (cluster mode enabled) replication group.+-- This operation cannot be used to delete a cluster that is the last read replica of a replication group or node group (shard) that has Multi-AZ mode enabled or a cluster from a Redis (cluster mode enabled) replication group. -- -- /Important:/ Due to current limitations on Redis (cluster mode disabled), this operation or parameter is not supported on Redis (cluster mode enabled) replication groups. --@@ -42,12 +42,12 @@     , dccrsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @DeleteCacheCluster@ operation. --@@ -55,31 +55,31 @@ -- -- /See:/ 'deleteCacheCluster' smart constructor. data DeleteCacheCluster = DeleteCacheCluster'-    { _dccFinalSnapshotIdentifier :: !(Maybe Text)-    , _dccCacheClusterId          :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dccFinalSnapshotIdentifier :: !(Maybe Text)+  , _dccCacheClusterId          :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteCacheCluster' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'dccFinalSnapshotIdentifier' - The user-supplied name of a final cache cluster snapshot. This is the unique name that identifies the snapshot. ElastiCache creates the snapshot, and then deletes the cache cluster immediately afterward.+-- * 'dccFinalSnapshotIdentifier' - The user-supplied name of a final cluster snapshot. This is the unique name that identifies the snapshot. ElastiCache creates the snapshot, and then deletes the cluster immediately afterward. ----- * 'dccCacheClusterId' - The cache cluster identifier for the cluster to be deleted. This parameter is not case sensitive.+-- * 'dccCacheClusterId' - The cluster identifier for the cluster to be deleted. This parameter is not case sensitive. deleteCacheCluster     :: Text -- ^ 'dccCacheClusterId'     -> DeleteCacheCluster deleteCacheCluster pCacheClusterId_ =-    DeleteCacheCluster'-    { _dccFinalSnapshotIdentifier = Nothing-    , _dccCacheClusterId = pCacheClusterId_-    }+  DeleteCacheCluster'+  {_dccFinalSnapshotIdentifier = Nothing, _dccCacheClusterId = pCacheClusterId_} --- | The user-supplied name of a final cache cluster snapshot. This is the unique name that identifies the snapshot. ElastiCache creates the snapshot, and then deletes the cache cluster immediately afterward.++-- | The user-supplied name of a final cluster snapshot. This is the unique name that identifies the snapshot. ElastiCache creates the snapshot, and then deletes the cluster immediately afterward. dccFinalSnapshotIdentifier :: Lens' DeleteCacheCluster (Maybe Text) dccFinalSnapshotIdentifier = lens _dccFinalSnapshotIdentifier (\ s a -> s{_dccFinalSnapshotIdentifier = a}); --- | The cache cluster identifier for the cluster to be deleted. This parameter is not case sensitive.+-- | The cluster identifier for the cluster to be deleted. This parameter is not case sensitive. dccCacheClusterId :: Lens' DeleteCacheCluster Text dccCacheClusterId = lens _dccCacheClusterId (\ s a -> s{_dccCacheClusterId = a}); @@ -93,9 +93,9 @@                  DeleteCacheClusterResponse' <$>                    (x .@? "CacheCluster") <*> (pure (fromEnum s))) -instance Hashable DeleteCacheCluster+instance Hashable DeleteCacheCluster where -instance NFData DeleteCacheCluster+instance NFData DeleteCacheCluster where  instance ToHeaders DeleteCacheCluster where         toHeaders = const mempty@@ -114,10 +114,11 @@  -- | /See:/ 'deleteCacheClusterResponse' smart constructor. data DeleteCacheClusterResponse = DeleteCacheClusterResponse'-    { _dccrsCacheCluster   :: !(Maybe CacheCluster)-    , _dccrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dccrsCacheCluster   :: !(Maybe CacheCluster)+  , _dccrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteCacheClusterResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -129,11 +130,10 @@     :: Int -- ^ 'dccrsResponseStatus'     -> DeleteCacheClusterResponse deleteCacheClusterResponse pResponseStatus_ =-    DeleteCacheClusterResponse'-    { _dccrsCacheCluster = Nothing-    , _dccrsResponseStatus = pResponseStatus_-    }+  DeleteCacheClusterResponse'+  {_dccrsCacheCluster = Nothing, _dccrsResponseStatus = pResponseStatus_} + -- | Undocumented member. dccrsCacheCluster :: Lens' DeleteCacheClusterResponse (Maybe CacheCluster) dccrsCacheCluster = lens _dccrsCacheCluster (\ s a -> s{_dccrsCacheCluster = a});@@ -142,4 +142,4 @@ dccrsResponseStatus :: Lens' DeleteCacheClusterResponse Int dccrsResponseStatus = lens _dccrsResponseStatus (\ s a -> s{_dccrsResponseStatus = a}); -instance NFData DeleteCacheClusterResponse+instance NFData DeleteCacheClusterResponse where
gen/Network/AWS/ElastiCache/DeleteCacheParameterGroup.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.DeleteCacheParameterGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -34,12 +34,12 @@     , DeleteCacheParameterGroupResponse     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @DeleteCacheParameterGroup@ operation. --@@ -47,9 +47,10 @@ -- -- /See:/ 'deleteCacheParameterGroup' smart constructor. newtype DeleteCacheParameterGroup = DeleteCacheParameterGroup'-    { _dCacheParameterGroupName :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dCacheParameterGroupName :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteCacheParameterGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -59,10 +60,10 @@     :: Text -- ^ 'dCacheParameterGroupName'     -> DeleteCacheParameterGroup deleteCacheParameterGroup pCacheParameterGroupName_ =-    DeleteCacheParameterGroup'-    { _dCacheParameterGroupName = pCacheParameterGroupName_-    }+  DeleteCacheParameterGroup'+  {_dCacheParameterGroupName = pCacheParameterGroupName_} + -- | The name of the cache parameter group to delete. dCacheParameterGroupName :: Lens' DeleteCacheParameterGroup Text dCacheParameterGroupName = lens _dCacheParameterGroupName (\ s a -> s{_dCacheParameterGroupName = a});@@ -74,9 +75,9 @@         response           = receiveNull DeleteCacheParameterGroupResponse' -instance Hashable DeleteCacheParameterGroup+instance Hashable DeleteCacheParameterGroup where -instance NFData DeleteCacheParameterGroup+instance NFData DeleteCacheParameterGroup where  instance ToHeaders DeleteCacheParameterGroup where         toHeaders = const mempty@@ -95,13 +96,16 @@  -- | /See:/ 'deleteCacheParameterGroupResponse' smart constructor. data DeleteCacheParameterGroupResponse =-    DeleteCacheParameterGroupResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteCacheParameterGroupResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteCacheParameterGroupResponse' with the minimum fields required to make a request. -- deleteCacheParameterGroupResponse     :: DeleteCacheParameterGroupResponse deleteCacheParameterGroupResponse = DeleteCacheParameterGroupResponse' + instance NFData DeleteCacheParameterGroupResponse+         where
gen/Network/AWS/ElastiCache/DeleteCacheSecurityGroup.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.DeleteCacheSecurityGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -34,12 +34,12 @@     , DeleteCacheSecurityGroupResponse     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @DeleteCacheSecurityGroup@ operation. --@@ -47,9 +47,10 @@ -- -- /See:/ 'deleteCacheSecurityGroup' smart constructor. newtype DeleteCacheSecurityGroup = DeleteCacheSecurityGroup'-    { _dcsgCacheSecurityGroupName :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcsgCacheSecurityGroupName :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteCacheSecurityGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -59,10 +60,10 @@     :: Text -- ^ 'dcsgCacheSecurityGroupName'     -> DeleteCacheSecurityGroup deleteCacheSecurityGroup pCacheSecurityGroupName_ =-    DeleteCacheSecurityGroup'-    { _dcsgCacheSecurityGroupName = pCacheSecurityGroupName_-    }+  DeleteCacheSecurityGroup'+  {_dcsgCacheSecurityGroupName = pCacheSecurityGroupName_} + -- | The name of the cache security group to delete. dcsgCacheSecurityGroupName :: Lens' DeleteCacheSecurityGroup Text dcsgCacheSecurityGroupName = lens _dcsgCacheSecurityGroupName (\ s a -> s{_dcsgCacheSecurityGroupName = a});@@ -74,9 +75,9 @@         response           = receiveNull DeleteCacheSecurityGroupResponse' -instance Hashable DeleteCacheSecurityGroup+instance Hashable DeleteCacheSecurityGroup where -instance NFData DeleteCacheSecurityGroup+instance NFData DeleteCacheSecurityGroup where  instance ToHeaders DeleteCacheSecurityGroup where         toHeaders = const mempty@@ -95,13 +96,16 @@  -- | /See:/ 'deleteCacheSecurityGroupResponse' smart constructor. data DeleteCacheSecurityGroupResponse =-    DeleteCacheSecurityGroupResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteCacheSecurityGroupResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteCacheSecurityGroupResponse' with the minimum fields required to make a request. -- deleteCacheSecurityGroupResponse     :: DeleteCacheSecurityGroupResponse deleteCacheSecurityGroupResponse = DeleteCacheSecurityGroupResponse' + instance NFData DeleteCacheSecurityGroupResponse+         where
gen/Network/AWS/ElastiCache/DeleteCacheSubnetGroup.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.DeleteCacheSubnetGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -34,12 +34,12 @@     , DeleteCacheSubnetGroupResponse     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @DeleteCacheSubnetGroup@ operation. --@@ -47,9 +47,10 @@ -- -- /See:/ 'deleteCacheSubnetGroup' smart constructor. newtype DeleteCacheSubnetGroup = DeleteCacheSubnetGroup'-    { _dCacheSubnetGroupName :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dCacheSubnetGroupName :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteCacheSubnetGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -59,10 +60,9 @@     :: Text -- ^ 'dCacheSubnetGroupName'     -> DeleteCacheSubnetGroup deleteCacheSubnetGroup pCacheSubnetGroupName_ =-    DeleteCacheSubnetGroup'-    { _dCacheSubnetGroupName = pCacheSubnetGroupName_-    }+  DeleteCacheSubnetGroup' {_dCacheSubnetGroupName = pCacheSubnetGroupName_} + -- | The name of the cache subnet group to delete. Constraints: Must contain no more than 255 alphanumeric characters or hyphens. dCacheSubnetGroupName :: Lens' DeleteCacheSubnetGroup Text dCacheSubnetGroupName = lens _dCacheSubnetGroupName (\ s a -> s{_dCacheSubnetGroupName = a});@@ -74,9 +74,9 @@         response           = receiveNull DeleteCacheSubnetGroupResponse' -instance Hashable DeleteCacheSubnetGroup+instance Hashable DeleteCacheSubnetGroup where -instance NFData DeleteCacheSubnetGroup+instance NFData DeleteCacheSubnetGroup where  instance ToHeaders DeleteCacheSubnetGroup where         toHeaders = const mempty@@ -94,13 +94,15 @@  -- | /See:/ 'deleteCacheSubnetGroupResponse' smart constructor. data DeleteCacheSubnetGroupResponse =-    DeleteCacheSubnetGroupResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteCacheSubnetGroupResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteCacheSubnetGroupResponse' with the minimum fields required to make a request. -- deleteCacheSubnetGroupResponse     :: DeleteCacheSubnetGroupResponse deleteCacheSubnetGroupResponse = DeleteCacheSubnetGroupResponse' -instance NFData DeleteCacheSubnetGroupResponse++instance NFData DeleteCacheSubnetGroupResponse where
gen/Network/AWS/ElastiCache/DeleteReplicationGroup.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.DeleteReplicationGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,12 +41,12 @@     , delrsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @DeleteReplicationGroup@ operation. --@@ -54,11 +54,12 @@ -- -- /See:/ 'deleteReplicationGroup' smart constructor. data DeleteReplicationGroup = DeleteReplicationGroup'-    { _drgFinalSnapshotIdentifier :: !(Maybe Text)-    , _drgRetainPrimaryCluster    :: !(Maybe Bool)-    , _drgReplicationGroupId      :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drgFinalSnapshotIdentifier :: !(Maybe Text)+  , _drgRetainPrimaryCluster    :: !(Maybe Bool)+  , _drgReplicationGroupId      :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteReplicationGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,12 +73,13 @@     :: Text -- ^ 'drgReplicationGroupId'     -> DeleteReplicationGroup deleteReplicationGroup pReplicationGroupId_ =-    DeleteReplicationGroup'-    { _drgFinalSnapshotIdentifier = Nothing-    , _drgRetainPrimaryCluster = Nothing-    , _drgReplicationGroupId = pReplicationGroupId_-    }+  DeleteReplicationGroup'+  { _drgFinalSnapshotIdentifier = Nothing+  , _drgRetainPrimaryCluster = Nothing+  , _drgReplicationGroupId = pReplicationGroupId_+  } + -- | The name of a final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster, rather than one of the replicas; this is to ensure that it captures the freshest data. After the final snapshot is taken, the replication group is immediately deleted. drgFinalSnapshotIdentifier :: Lens' DeleteReplicationGroup (Maybe Text) drgFinalSnapshotIdentifier = lens _drgFinalSnapshotIdentifier (\ s a -> s{_drgFinalSnapshotIdentifier = a});@@ -100,9 +102,9 @@                  DeleteReplicationGroupResponse' <$>                    (x .@? "ReplicationGroup") <*> (pure (fromEnum s))) -instance Hashable DeleteReplicationGroup+instance Hashable DeleteReplicationGroup where -instance NFData DeleteReplicationGroup+instance NFData DeleteReplicationGroup where  instance ToHeaders DeleteReplicationGroup where         toHeaders = const mempty@@ -123,10 +125,11 @@  -- | /See:/ 'deleteReplicationGroupResponse' smart constructor. data DeleteReplicationGroupResponse = DeleteReplicationGroupResponse'-    { _delrsReplicationGroup :: !(Maybe ReplicationGroup)-    , _delrsResponseStatus   :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _delrsReplicationGroup :: !(Maybe ReplicationGroup)+  , _delrsResponseStatus   :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteReplicationGroupResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -138,11 +141,10 @@     :: Int -- ^ 'delrsResponseStatus'     -> DeleteReplicationGroupResponse deleteReplicationGroupResponse pResponseStatus_ =-    DeleteReplicationGroupResponse'-    { _delrsReplicationGroup = Nothing-    , _delrsResponseStatus = pResponseStatus_-    }+  DeleteReplicationGroupResponse'+  {_delrsReplicationGroup = Nothing, _delrsResponseStatus = pResponseStatus_} + -- | Undocumented member. delrsReplicationGroup :: Lens' DeleteReplicationGroupResponse (Maybe ReplicationGroup) delrsReplicationGroup = lens _delrsReplicationGroup (\ s a -> s{_delrsReplicationGroup = a});@@ -151,4 +153,4 @@ delrsResponseStatus :: Lens' DeleteReplicationGroupResponse Int delrsResponseStatus = lens _delrsResponseStatus (\ s a -> s{_delrsResponseStatus = a}); -instance NFData DeleteReplicationGroupResponse+instance NFData DeleteReplicationGroupResponse where
gen/Network/AWS/ElastiCache/DeleteSnapshot.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.DeleteSnapshot--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,12 +37,12 @@     , dsrsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @DeleteSnapshot@ operation. --@@ -50,9 +50,10 @@ -- -- /See:/ 'deleteSnapshot' smart constructor. newtype DeleteSnapshot = DeleteSnapshot'-    { _dSnapshotName :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dSnapshotName :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteSnapshot' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -62,10 +63,9 @@     :: Text -- ^ 'dSnapshotName'     -> DeleteSnapshot deleteSnapshot pSnapshotName_ =-    DeleteSnapshot'-    { _dSnapshotName = pSnapshotName_-    }+  DeleteSnapshot' {_dSnapshotName = pSnapshotName_} + -- | The name of the snapshot to be deleted. dSnapshotName :: Lens' DeleteSnapshot Text dSnapshotName = lens _dSnapshotName (\ s a -> s{_dSnapshotName = a});@@ -79,9 +79,9 @@                  DeleteSnapshotResponse' <$>                    (x .@? "Snapshot") <*> (pure (fromEnum s))) -instance Hashable DeleteSnapshot+instance Hashable DeleteSnapshot where -instance NFData DeleteSnapshot+instance NFData DeleteSnapshot where  instance ToHeaders DeleteSnapshot where         toHeaders = const mempty@@ -98,10 +98,11 @@  -- | /See:/ 'deleteSnapshotResponse' smart constructor. data DeleteSnapshotResponse = DeleteSnapshotResponse'-    { _dsrsSnapshot       :: !(Maybe Snapshot)-    , _dsrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsrsSnapshot       :: !(Maybe Snapshot)+  , _dsrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteSnapshotResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -113,11 +114,10 @@     :: Int -- ^ 'dsrsResponseStatus'     -> DeleteSnapshotResponse deleteSnapshotResponse pResponseStatus_ =-    DeleteSnapshotResponse'-    { _dsrsSnapshot = Nothing-    , _dsrsResponseStatus = pResponseStatus_-    }+  DeleteSnapshotResponse'+  {_dsrsSnapshot = Nothing, _dsrsResponseStatus = pResponseStatus_} + -- | Undocumented member. dsrsSnapshot :: Lens' DeleteSnapshotResponse (Maybe Snapshot) dsrsSnapshot = lens _dsrsSnapshot (\ s a -> s{_dsrsSnapshot = a});@@ -126,4 +126,4 @@ dsrsResponseStatus :: Lens' DeleteSnapshotResponse Int dsrsResponseStatus = lens _dsrsResponseStatus (\ s a -> s{_dsrsResponseStatus = a}); -instance NFData DeleteSnapshotResponse+instance NFData DeleteSnapshotResponse where
gen/Network/AWS/ElastiCache/DescribeCacheClusters.hs view
@@ -12,24 +12,24 @@  -- | -- Module      : Network.AWS.ElastiCache.DescribeCacheClusters--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Returns information about all provisioned cache clusters if no cache cluster identifier is specified, or about a specific cache cluster if a cache cluster identifier is supplied.+-- Returns information about all provisioned clusters if no cluster identifier is specified, or about a specific cache cluster if a cluster identifier is supplied. -- ----- By default, abbreviated information about the cache clusters are returned. You can use the optional @ShowDetails@ flag to retrieve detailed information about the cache nodes associated with the cache clusters. These details include the DNS address and port for the cache node endpoint.+-- By default, abbreviated information about the clusters is returned. You can use the optional /ShowCacheNodeInfo/ flag to retrieve detailed information about the cache nodes associated with the clusters. These details include the DNS address and port for the cache node endpoint. ----- If the cluster is in the CREATING state, only cluster-level information is displayed until all of the nodes are successfully provisioned.+-- If the cluster is in the /creating/ state, only cluster-level information is displayed until all of the nodes are successfully provisioned. ----- If the cluster is in the DELETING state, only cluster-level information is displayed.+-- If the cluster is in the /deleting/ state, only cluster-level information is displayed. ----- If cache nodes are currently being added to the cache cluster, node endpoint information and creation time for the additional nodes are not displayed until they are completely provisioned. When the cache cluster state is @available@ , the cluster is ready for use.+-- If cache nodes are currently being added to the cluster, node endpoint information and creation time for the additional nodes are not displayed until they are completely provisioned. When the cluster state is /available/ , the cluster is ready for use. ----- If cache nodes are currently being removed from the cache cluster, no endpoint information for the removed nodes is displayed.+-- If cache nodes are currently being removed from the cluster, no endpoint information for the removed nodes is displayed. -- -- -- This operation returns paginated results.@@ -39,6 +39,7 @@       describeCacheClusters     , DescribeCacheClusters     -- * Request Lenses+    , dShowCacheClustersNotInReplicationGroups     , dCacheClusterId     , dMarker     , dMaxRecords@@ -53,13 +54,13 @@     , drsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @DescribeCacheClusters@ operation. --@@ -67,34 +68,44 @@ -- -- /See:/ 'describeCacheClusters' smart constructor. data DescribeCacheClusters = DescribeCacheClusters'-    { _dCacheClusterId    :: !(Maybe Text)-    , _dMarker            :: !(Maybe Text)-    , _dMaxRecords        :: !(Maybe Int)-    , _dShowCacheNodeInfo :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dShowCacheClustersNotInReplicationGroups :: !(Maybe Bool)+  , _dCacheClusterId                          :: !(Maybe Text)+  , _dMarker                                  :: !(Maybe Text)+  , _dMaxRecords                              :: !(Maybe Int)+  , _dShowCacheNodeInfo                       :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeCacheClusters' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'dCacheClusterId' - The user-supplied cluster identifier. If this parameter is specified, only information about that specific cache cluster is returned. This parameter isn't case sensitive.+-- * 'dShowCacheClustersNotInReplicationGroups' - An optional flag that can be included in the @DescribeCacheCluster@ request to show only nodes (API/CLI: clusters) that are not members of a replication group. In practice, this mean Memcached and single node Redis clusters. --+-- * 'dCacheClusterId' - The user-supplied cluster identifier. If this parameter is specified, only information about that specific cluster is returned. This parameter isn't case sensitive.+-- -- * 'dMarker' - An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by @MaxRecords@ . -- -- * 'dMaxRecords' - The maximum number of records to include in the response. If more records exist than the specified @MaxRecords@ value, a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: minimum 20; maximum 100. ----- * 'dShowCacheNodeInfo' - An optional flag that can be included in the DescribeCacheCluster request to retrieve information about the individual cache nodes.+-- * 'dShowCacheNodeInfo' - An optional flag that can be included in the @DescribeCacheCluster@ request to retrieve information about the individual cache nodes. describeCacheClusters     :: DescribeCacheClusters describeCacheClusters =-    DescribeCacheClusters'-    { _dCacheClusterId = Nothing-    , _dMarker = Nothing-    , _dMaxRecords = Nothing-    , _dShowCacheNodeInfo = Nothing-    }+  DescribeCacheClusters'+  { _dShowCacheClustersNotInReplicationGroups = Nothing+  , _dCacheClusterId = Nothing+  , _dMarker = Nothing+  , _dMaxRecords = Nothing+  , _dShowCacheNodeInfo = Nothing+  } --- | The user-supplied cluster identifier. If this parameter is specified, only information about that specific cache cluster is returned. This parameter isn't case sensitive.++-- | An optional flag that can be included in the @DescribeCacheCluster@ request to show only nodes (API/CLI: clusters) that are not members of a replication group. In practice, this mean Memcached and single node Redis clusters.+dShowCacheClustersNotInReplicationGroups :: Lens' DescribeCacheClusters (Maybe Bool)+dShowCacheClustersNotInReplicationGroups = lens _dShowCacheClustersNotInReplicationGroups (\ s a -> s{_dShowCacheClustersNotInReplicationGroups = a});++-- | The user-supplied cluster identifier. If this parameter is specified, only information about that specific cluster is returned. This parameter isn't case sensitive. dCacheClusterId :: Lens' DescribeCacheClusters (Maybe Text) dCacheClusterId = lens _dCacheClusterId (\ s a -> s{_dCacheClusterId = a}); @@ -106,7 +117,7 @@ dMaxRecords :: Lens' DescribeCacheClusters (Maybe Int) dMaxRecords = lens _dMaxRecords (\ s a -> s{_dMaxRecords = a}); --- | An optional flag that can be included in the DescribeCacheCluster request to retrieve information about the individual cache nodes.+-- | An optional flag that can be included in the @DescribeCacheCluster@ request to retrieve information about the individual cache nodes. dShowCacheNodeInfo :: Lens' DescribeCacheClusters (Maybe Bool) dShowCacheNodeInfo = lens _dShowCacheNodeInfo (\ s a -> s{_dShowCacheNodeInfo = a}); @@ -129,9 +140,9 @@                      <*> (x .@? "Marker")                      <*> (pure (fromEnum s))) -instance Hashable DescribeCacheClusters+instance Hashable DescribeCacheClusters where -instance NFData DescribeCacheClusters+instance NFData DescribeCacheClusters where  instance ToHeaders DescribeCacheClusters where         toHeaders = const mempty@@ -144,6 +155,8 @@           = mconcat               ["Action" =: ("DescribeCacheClusters" :: ByteString),                "Version" =: ("2015-02-02" :: ByteString),+               "ShowCacheClustersNotInReplicationGroups" =:+                 _dShowCacheClustersNotInReplicationGroups,                "CacheClusterId" =: _dCacheClusterId,                "Marker" =: _dMarker, "MaxRecords" =: _dMaxRecords,                "ShowCacheNodeInfo" =: _dShowCacheNodeInfo]@@ -154,16 +167,17 @@ -- -- /See:/ 'describeCacheClustersResponse' smart constructor. data DescribeCacheClustersResponse = DescribeCacheClustersResponse'-    { _drsCacheClusters  :: !(Maybe [CacheCluster])-    , _drsMarker         :: !(Maybe Text)-    , _drsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drsCacheClusters  :: !(Maybe [CacheCluster])+  , _drsMarker         :: !(Maybe Text)+  , _drsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeCacheClustersResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'drsCacheClusters' - A list of cache clusters. Each item in the list contains detailed information about one cache cluster.+-- * 'drsCacheClusters' - A list of clusters. Each item in the list contains detailed information about one cluster. -- -- * 'drsMarker' - Provides an identifier to allow retrieval of paginated results. --@@ -172,13 +186,14 @@     :: Int -- ^ 'drsResponseStatus'     -> DescribeCacheClustersResponse describeCacheClustersResponse pResponseStatus_ =-    DescribeCacheClustersResponse'-    { _drsCacheClusters = Nothing-    , _drsMarker = Nothing-    , _drsResponseStatus = pResponseStatus_-    }+  DescribeCacheClustersResponse'+  { _drsCacheClusters = Nothing+  , _drsMarker = Nothing+  , _drsResponseStatus = pResponseStatus_+  } --- | A list of cache clusters. Each item in the list contains detailed information about one cache cluster.++-- | A list of clusters. Each item in the list contains detailed information about one cluster. drsCacheClusters :: Lens' DescribeCacheClustersResponse [CacheCluster] drsCacheClusters = lens _drsCacheClusters (\ s a -> s{_drsCacheClusters = a}) . _Default . _Coerce; @@ -190,4 +205,4 @@ drsResponseStatus :: Lens' DescribeCacheClustersResponse Int drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a}); -instance NFData DescribeCacheClustersResponse+instance NFData DescribeCacheClustersResponse where
gen/Network/AWS/ElastiCache/DescribeCacheEngineVersions.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.DescribeCacheEngineVersions--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -45,13 +45,13 @@     , dcevrsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @DescribeCacheEngineVersions@ operation. --@@ -59,14 +59,15 @@ -- -- /See:/ 'describeCacheEngineVersions' smart constructor. data DescribeCacheEngineVersions = DescribeCacheEngineVersions'-    { _dcevEngineVersion             :: !(Maybe Text)-    , _dcevCacheParameterGroupFamily :: !(Maybe Text)-    , _dcevDefaultOnly               :: !(Maybe Bool)-    , _dcevEngine                    :: !(Maybe Text)-    , _dcevMarker                    :: !(Maybe Text)-    , _dcevMaxRecords                :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcevEngineVersion             :: !(Maybe Text)+  , _dcevCacheParameterGroupFamily :: !(Maybe Text)+  , _dcevDefaultOnly               :: !(Maybe Bool)+  , _dcevEngine                    :: !(Maybe Text)+  , _dcevMarker                    :: !(Maybe Text)+  , _dcevMaxRecords                :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeCacheEngineVersions' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -85,15 +86,16 @@ describeCacheEngineVersions     :: DescribeCacheEngineVersions describeCacheEngineVersions =-    DescribeCacheEngineVersions'-    { _dcevEngineVersion = Nothing-    , _dcevCacheParameterGroupFamily = Nothing-    , _dcevDefaultOnly = Nothing-    , _dcevEngine = Nothing-    , _dcevMarker = Nothing-    , _dcevMaxRecords = Nothing-    }+  DescribeCacheEngineVersions'+  { _dcevEngineVersion = Nothing+  , _dcevCacheParameterGroupFamily = Nothing+  , _dcevDefaultOnly = Nothing+  , _dcevEngine = Nothing+  , _dcevMarker = Nothing+  , _dcevMaxRecords = Nothing+  } + -- | The cache engine version to return. Example: @1.4.14@ dcevEngineVersion :: Lens' DescribeCacheEngineVersions (Maybe Text) dcevEngineVersion = lens _dcevEngineVersion (\ s a -> s{_dcevEngineVersion = a});@@ -139,9 +141,9 @@                      <*> (x .@? "Marker")                      <*> (pure (fromEnum s))) -instance Hashable DescribeCacheEngineVersions+instance Hashable DescribeCacheEngineVersions where -instance NFData DescribeCacheEngineVersions+instance NFData DescribeCacheEngineVersions where  instance ToHeaders DescribeCacheEngineVersions where         toHeaders = const mempty@@ -168,11 +170,12 @@ -- -- /See:/ 'describeCacheEngineVersionsResponse' smart constructor. data DescribeCacheEngineVersionsResponse = DescribeCacheEngineVersionsResponse'-    { _dcevrsCacheEngineVersions :: !(Maybe [CacheEngineVersion])-    , _dcevrsMarker              :: !(Maybe Text)-    , _dcevrsResponseStatus      :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcevrsCacheEngineVersions :: !(Maybe [CacheEngineVersion])+  , _dcevrsMarker              :: !(Maybe Text)+  , _dcevrsResponseStatus      :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeCacheEngineVersionsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -186,12 +189,13 @@     :: Int -- ^ 'dcevrsResponseStatus'     -> DescribeCacheEngineVersionsResponse describeCacheEngineVersionsResponse pResponseStatus_ =-    DescribeCacheEngineVersionsResponse'-    { _dcevrsCacheEngineVersions = Nothing-    , _dcevrsMarker = Nothing-    , _dcevrsResponseStatus = pResponseStatus_-    }+  DescribeCacheEngineVersionsResponse'+  { _dcevrsCacheEngineVersions = Nothing+  , _dcevrsMarker = Nothing+  , _dcevrsResponseStatus = pResponseStatus_+  } + -- | A list of cache engine version details. Each element in the list contains detailed information about one cache engine version. dcevrsCacheEngineVersions :: Lens' DescribeCacheEngineVersionsResponse [CacheEngineVersion] dcevrsCacheEngineVersions = lens _dcevrsCacheEngineVersions (\ s a -> s{_dcevrsCacheEngineVersions = a}) . _Default . _Coerce;@@ -205,3 +209,4 @@ dcevrsResponseStatus = lens _dcevrsResponseStatus (\ s a -> s{_dcevrsResponseStatus = a});  instance NFData DescribeCacheEngineVersionsResponse+         where
gen/Network/AWS/ElastiCache/DescribeCacheParameterGroups.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.DescribeCacheParameterGroups--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -42,13 +42,13 @@     , dcpgrsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @DescribeCacheParameterGroups@ operation. --@@ -56,11 +56,12 @@ -- -- /See:/ 'describeCacheParameterGroups' smart constructor. data DescribeCacheParameterGroups = DescribeCacheParameterGroups'-    { _dcpgCacheParameterGroupName :: !(Maybe Text)-    , _dcpgMarker                  :: !(Maybe Text)-    , _dcpgMaxRecords              :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcpgCacheParameterGroupName :: !(Maybe Text)+  , _dcpgMarker                  :: !(Maybe Text)+  , _dcpgMaxRecords              :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeCacheParameterGroups' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,12 +74,13 @@ describeCacheParameterGroups     :: DescribeCacheParameterGroups describeCacheParameterGroups =-    DescribeCacheParameterGroups'-    { _dcpgCacheParameterGroupName = Nothing-    , _dcpgMarker = Nothing-    , _dcpgMaxRecords = Nothing-    }+  DescribeCacheParameterGroups'+  { _dcpgCacheParameterGroupName = Nothing+  , _dcpgMarker = Nothing+  , _dcpgMaxRecords = Nothing+  } + -- | The name of a specific cache parameter group to return details for. dcpgCacheParameterGroupName :: Lens' DescribeCacheParameterGroups (Maybe Text) dcpgCacheParameterGroupName = lens _dcpgCacheParameterGroupName (\ s a -> s{_dcpgCacheParameterGroupName = a});@@ -113,9 +115,9 @@                      <*> (x .@? "Marker")                      <*> (pure (fromEnum s))) -instance Hashable DescribeCacheParameterGroups+instance Hashable DescribeCacheParameterGroups where -instance NFData DescribeCacheParameterGroups+instance NFData DescribeCacheParameterGroups where  instance ToHeaders DescribeCacheParameterGroups where         toHeaders = const mempty@@ -140,11 +142,12 @@ -- -- /See:/ 'describeCacheParameterGroupsResponse' smart constructor. data DescribeCacheParameterGroupsResponse = DescribeCacheParameterGroupsResponse'-    { _dcpgrsCacheParameterGroups :: !(Maybe [CacheParameterGroup])-    , _dcpgrsMarker               :: !(Maybe Text)-    , _dcpgrsResponseStatus       :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcpgrsCacheParameterGroups :: !(Maybe [CacheParameterGroup])+  , _dcpgrsMarker               :: !(Maybe Text)+  , _dcpgrsResponseStatus       :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeCacheParameterGroupsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -158,12 +161,13 @@     :: Int -- ^ 'dcpgrsResponseStatus'     -> DescribeCacheParameterGroupsResponse describeCacheParameterGroupsResponse pResponseStatus_ =-    DescribeCacheParameterGroupsResponse'-    { _dcpgrsCacheParameterGroups = Nothing-    , _dcpgrsMarker = Nothing-    , _dcpgrsResponseStatus = pResponseStatus_-    }+  DescribeCacheParameterGroupsResponse'+  { _dcpgrsCacheParameterGroups = Nothing+  , _dcpgrsMarker = Nothing+  , _dcpgrsResponseStatus = pResponseStatus_+  } + -- | A list of cache parameter groups. Each element in the list contains detailed information about one cache parameter group. dcpgrsCacheParameterGroups :: Lens' DescribeCacheParameterGroupsResponse [CacheParameterGroup] dcpgrsCacheParameterGroups = lens _dcpgrsCacheParameterGroups (\ s a -> s{_dcpgrsCacheParameterGroups = a}) . _Default . _Coerce;@@ -177,3 +181,4 @@ dcpgrsResponseStatus = lens _dcpgrsResponseStatus (\ s a -> s{_dcpgrsResponseStatus = a});  instance NFData DescribeCacheParameterGroupsResponse+         where
gen/Network/AWS/ElastiCache/DescribeCacheParameters.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.DescribeCacheParameters--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -44,13 +44,13 @@     , dcprsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @DescribeCacheParameters@ operation. --@@ -58,12 +58,13 @@ -- -- /See:/ 'describeCacheParameters' smart constructor. data DescribeCacheParameters = DescribeCacheParameters'-    { _dcpMarker                  :: !(Maybe Text)-    , _dcpMaxRecords              :: !(Maybe Int)-    , _dcpSource                  :: !(Maybe Text)-    , _dcpCacheParameterGroupName :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcpMarker                  :: !(Maybe Text)+  , _dcpMaxRecords              :: !(Maybe Int)+  , _dcpSource                  :: !(Maybe Text)+  , _dcpCacheParameterGroupName :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeCacheParameters' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -79,13 +80,14 @@     :: Text -- ^ 'dcpCacheParameterGroupName'     -> DescribeCacheParameters describeCacheParameters pCacheParameterGroupName_ =-    DescribeCacheParameters'-    { _dcpMarker = Nothing-    , _dcpMaxRecords = Nothing-    , _dcpSource = Nothing-    , _dcpCacheParameterGroupName = pCacheParameterGroupName_-    }+  DescribeCacheParameters'+  { _dcpMarker = Nothing+  , _dcpMaxRecords = Nothing+  , _dcpSource = Nothing+  , _dcpCacheParameterGroupName = pCacheParameterGroupName_+  } + -- | An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by @MaxRecords@ . dcpMarker :: Lens' DescribeCacheParameters (Maybe Text) dcpMarker = lens _dcpMarker (\ s a -> s{_dcpMarker = a});@@ -126,9 +128,9 @@                         may (parseXMLList "Parameter"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeCacheParameters+instance Hashable DescribeCacheParameters where -instance NFData DescribeCacheParameters+instance NFData DescribeCacheParameters where  instance ToHeaders DescribeCacheParameters where         toHeaders = const mempty@@ -154,12 +156,13 @@ -- -- /See:/ 'describeCacheParametersResponse' smart constructor. data DescribeCacheParametersResponse = DescribeCacheParametersResponse'-    { _dcprsCacheNodeTypeSpecificParameters :: !(Maybe [CacheNodeTypeSpecificParameter])-    , _dcprsMarker                          :: !(Maybe Text)-    , _dcprsParameters                      :: !(Maybe [Parameter])-    , _dcprsResponseStatus                  :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcprsCacheNodeTypeSpecificParameters :: !(Maybe [CacheNodeTypeSpecificParameter])+  , _dcprsMarker :: !(Maybe Text)+  , _dcprsParameters :: !(Maybe [Parameter])+  , _dcprsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeCacheParametersResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -175,13 +178,14 @@     :: Int -- ^ 'dcprsResponseStatus'     -> DescribeCacheParametersResponse describeCacheParametersResponse pResponseStatus_ =-    DescribeCacheParametersResponse'-    { _dcprsCacheNodeTypeSpecificParameters = Nothing-    , _dcprsMarker = Nothing-    , _dcprsParameters = Nothing-    , _dcprsResponseStatus = pResponseStatus_-    }+  DescribeCacheParametersResponse'+  { _dcprsCacheNodeTypeSpecificParameters = Nothing+  , _dcprsMarker = Nothing+  , _dcprsParameters = Nothing+  , _dcprsResponseStatus = pResponseStatus_+  } + -- | A list of parameters specific to a particular cache node type. Each element in the list contains detailed information about one parameter. dcprsCacheNodeTypeSpecificParameters :: Lens' DescribeCacheParametersResponse [CacheNodeTypeSpecificParameter] dcprsCacheNodeTypeSpecificParameters = lens _dcprsCacheNodeTypeSpecificParameters (\ s a -> s{_dcprsCacheNodeTypeSpecificParameters = a}) . _Default . _Coerce;@@ -198,4 +202,4 @@ dcprsResponseStatus :: Lens' DescribeCacheParametersResponse Int dcprsResponseStatus = lens _dcprsResponseStatus (\ s a -> s{_dcprsResponseStatus = a}); -instance NFData DescribeCacheParametersResponse+instance NFData DescribeCacheParametersResponse where
gen/Network/AWS/ElastiCache/DescribeCacheSecurityGroups.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.DescribeCacheSecurityGroups--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -42,13 +42,13 @@     , dcsgsrsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @DescribeCacheSecurityGroups@ operation. --@@ -56,11 +56,12 @@ -- -- /See:/ 'describeCacheSecurityGroups' smart constructor. data DescribeCacheSecurityGroups = DescribeCacheSecurityGroups'-    { _dcsgsCacheSecurityGroupName :: !(Maybe Text)-    , _dcsgsMarker                 :: !(Maybe Text)-    , _dcsgsMaxRecords             :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcsgsCacheSecurityGroupName :: !(Maybe Text)+  , _dcsgsMarker                 :: !(Maybe Text)+  , _dcsgsMaxRecords             :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeCacheSecurityGroups' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,12 +74,13 @@ describeCacheSecurityGroups     :: DescribeCacheSecurityGroups describeCacheSecurityGroups =-    DescribeCacheSecurityGroups'-    { _dcsgsCacheSecurityGroupName = Nothing-    , _dcsgsMarker = Nothing-    , _dcsgsMaxRecords = Nothing-    }+  DescribeCacheSecurityGroups'+  { _dcsgsCacheSecurityGroupName = Nothing+  , _dcsgsMarker = Nothing+  , _dcsgsMaxRecords = Nothing+  } + -- | The name of the cache security group to return details for. dcsgsCacheSecurityGroupName :: Lens' DescribeCacheSecurityGroups (Maybe Text) dcsgsCacheSecurityGroupName = lens _dcsgsCacheSecurityGroupName (\ s a -> s{_dcsgsCacheSecurityGroupName = a});@@ -112,9 +114,9 @@                      <*> (x .@? "Marker")                      <*> (pure (fromEnum s))) -instance Hashable DescribeCacheSecurityGroups+instance Hashable DescribeCacheSecurityGroups where -instance NFData DescribeCacheSecurityGroups+instance NFData DescribeCacheSecurityGroups where  instance ToHeaders DescribeCacheSecurityGroups where         toHeaders = const mempty@@ -139,11 +141,12 @@ -- -- /See:/ 'describeCacheSecurityGroupsResponse' smart constructor. data DescribeCacheSecurityGroupsResponse = DescribeCacheSecurityGroupsResponse'-    { _dcsgsrsCacheSecurityGroups :: !(Maybe [CacheSecurityGroup])-    , _dcsgsrsMarker              :: !(Maybe Text)-    , _dcsgsrsResponseStatus      :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcsgsrsCacheSecurityGroups :: !(Maybe [CacheSecurityGroup])+  , _dcsgsrsMarker              :: !(Maybe Text)+  , _dcsgsrsResponseStatus      :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeCacheSecurityGroupsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -157,12 +160,13 @@     :: Int -- ^ 'dcsgsrsResponseStatus'     -> DescribeCacheSecurityGroupsResponse describeCacheSecurityGroupsResponse pResponseStatus_ =-    DescribeCacheSecurityGroupsResponse'-    { _dcsgsrsCacheSecurityGroups = Nothing-    , _dcsgsrsMarker = Nothing-    , _dcsgsrsResponseStatus = pResponseStatus_-    }+  DescribeCacheSecurityGroupsResponse'+  { _dcsgsrsCacheSecurityGroups = Nothing+  , _dcsgsrsMarker = Nothing+  , _dcsgsrsResponseStatus = pResponseStatus_+  } + -- | A list of cache security groups. Each element in the list contains detailed information about one group. dcsgsrsCacheSecurityGroups :: Lens' DescribeCacheSecurityGroupsResponse [CacheSecurityGroup] dcsgsrsCacheSecurityGroups = lens _dcsgsrsCacheSecurityGroups (\ s a -> s{_dcsgsrsCacheSecurityGroups = a}) . _Default . _Coerce;@@ -176,3 +180,4 @@ dcsgsrsResponseStatus = lens _dcsgsrsResponseStatus (\ s a -> s{_dcsgsrsResponseStatus = a});  instance NFData DescribeCacheSecurityGroupsResponse+         where
gen/Network/AWS/ElastiCache/DescribeCacheSubnetGroups.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.DescribeCacheSubnetGroups--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -42,13 +42,13 @@     , dcsgrsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @DescribeCacheSubnetGroups@ operation. --@@ -56,11 +56,12 @@ -- -- /See:/ 'describeCacheSubnetGroups' smart constructor. data DescribeCacheSubnetGroups = DescribeCacheSubnetGroups'-    { _dcsgCacheSubnetGroupName :: !(Maybe Text)-    , _dcsgMarker               :: !(Maybe Text)-    , _dcsgMaxRecords           :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcsgCacheSubnetGroupName :: !(Maybe Text)+  , _dcsgMarker               :: !(Maybe Text)+  , _dcsgMaxRecords           :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeCacheSubnetGroups' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,12 +74,13 @@ describeCacheSubnetGroups     :: DescribeCacheSubnetGroups describeCacheSubnetGroups =-    DescribeCacheSubnetGroups'-    { _dcsgCacheSubnetGroupName = Nothing-    , _dcsgMarker = Nothing-    , _dcsgMaxRecords = Nothing-    }+  DescribeCacheSubnetGroups'+  { _dcsgCacheSubnetGroupName = Nothing+  , _dcsgMarker = Nothing+  , _dcsgMaxRecords = Nothing+  } + -- | The name of the cache subnet group to return details for. dcsgCacheSubnetGroupName :: Lens' DescribeCacheSubnetGroups (Maybe Text) dcsgCacheSubnetGroupName = lens _dcsgCacheSubnetGroupName (\ s a -> s{_dcsgCacheSubnetGroupName = a});@@ -111,9 +113,9 @@                         may (parseXMLList "CacheSubnetGroup"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeCacheSubnetGroups+instance Hashable DescribeCacheSubnetGroups where -instance NFData DescribeCacheSubnetGroups+instance NFData DescribeCacheSubnetGroups where  instance ToHeaders DescribeCacheSubnetGroups where         toHeaders = const mempty@@ -137,11 +139,12 @@ -- -- /See:/ 'describeCacheSubnetGroupsResponse' smart constructor. data DescribeCacheSubnetGroupsResponse = DescribeCacheSubnetGroupsResponse'-    { _dcsgrsMarker            :: !(Maybe Text)-    , _dcsgrsCacheSubnetGroups :: !(Maybe [CacheSubnetGroup])-    , _dcsgrsResponseStatus    :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcsgrsMarker            :: !(Maybe Text)+  , _dcsgrsCacheSubnetGroups :: !(Maybe [CacheSubnetGroup])+  , _dcsgrsResponseStatus    :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeCacheSubnetGroupsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -155,12 +158,13 @@     :: Int -- ^ 'dcsgrsResponseStatus'     -> DescribeCacheSubnetGroupsResponse describeCacheSubnetGroupsResponse pResponseStatus_ =-    DescribeCacheSubnetGroupsResponse'-    { _dcsgrsMarker = Nothing-    , _dcsgrsCacheSubnetGroups = Nothing-    , _dcsgrsResponseStatus = pResponseStatus_-    }+  DescribeCacheSubnetGroupsResponse'+  { _dcsgrsMarker = Nothing+  , _dcsgrsCacheSubnetGroups = Nothing+  , _dcsgrsResponseStatus = pResponseStatus_+  } + -- | Provides an identifier to allow retrieval of paginated results. dcsgrsMarker :: Lens' DescribeCacheSubnetGroupsResponse (Maybe Text) dcsgrsMarker = lens _dcsgrsMarker (\ s a -> s{_dcsgrsMarker = a});@@ -174,3 +178,4 @@ dcsgrsResponseStatus = lens _dcsgrsResponseStatus (\ s a -> s{_dcsgrsResponseStatus = a});  instance NFData DescribeCacheSubnetGroupsResponse+         where
gen/Network/AWS/ElastiCache/DescribeEngineDefaultParameters.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.DescribeEngineDefaultParameters--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,13 +41,13 @@     , dedprsEngineDefaults     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @DescribeEngineDefaultParameters@ operation. --@@ -55,11 +55,12 @@ -- -- /See:/ 'describeEngineDefaultParameters' smart constructor. data DescribeEngineDefaultParameters = DescribeEngineDefaultParameters'-    { _dedpMarker                    :: !(Maybe Text)-    , _dedpMaxRecords                :: !(Maybe Int)-    , _dedpCacheParameterGroupFamily :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dedpMarker                    :: !(Maybe Text)+  , _dedpMaxRecords                :: !(Maybe Int)+  , _dedpCacheParameterGroupFamily :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeEngineDefaultParameters' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,12 +74,13 @@     :: Text -- ^ 'dedpCacheParameterGroupFamily'     -> DescribeEngineDefaultParameters describeEngineDefaultParameters pCacheParameterGroupFamily_ =-    DescribeEngineDefaultParameters'-    { _dedpMarker = Nothing-    , _dedpMaxRecords = Nothing-    , _dedpCacheParameterGroupFamily = pCacheParameterGroupFamily_-    }+  DescribeEngineDefaultParameters'+  { _dedpMarker = Nothing+  , _dedpMaxRecords = Nothing+  , _dedpCacheParameterGroupFamily = pCacheParameterGroupFamily_+  } + -- | An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by @MaxRecords@ . dedpMarker :: Lens' DescribeEngineDefaultParameters (Maybe Text) dedpMarker = lens _dedpMarker (\ s a -> s{_dedpMarker = a});@@ -117,8 +119,9 @@                    (pure (fromEnum s)) <*> (x .@ "EngineDefaults"))  instance Hashable DescribeEngineDefaultParameters+         where -instance NFData DescribeEngineDefaultParameters+instance NFData DescribeEngineDefaultParameters where  instance ToHeaders DescribeEngineDefaultParameters          where@@ -141,10 +144,11 @@  -- | /See:/ 'describeEngineDefaultParametersResponse' smart constructor. data DescribeEngineDefaultParametersResponse = DescribeEngineDefaultParametersResponse'-    { _dedprsResponseStatus :: !Int-    , _dedprsEngineDefaults :: !EngineDefaults-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dedprsResponseStatus :: !Int+  , _dedprsEngineDefaults :: !EngineDefaults+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeEngineDefaultParametersResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -157,11 +161,12 @@     -> EngineDefaults -- ^ 'dedprsEngineDefaults'     -> DescribeEngineDefaultParametersResponse describeEngineDefaultParametersResponse pResponseStatus_ pEngineDefaults_ =-    DescribeEngineDefaultParametersResponse'-    { _dedprsResponseStatus = pResponseStatus_-    , _dedprsEngineDefaults = pEngineDefaults_-    }+  DescribeEngineDefaultParametersResponse'+  { _dedprsResponseStatus = pResponseStatus_+  , _dedprsEngineDefaults = pEngineDefaults_+  } + -- | -- | The response status code. dedprsResponseStatus :: Lens' DescribeEngineDefaultParametersResponse Int dedprsResponseStatus = lens _dedprsResponseStatus (\ s a -> s{_dedprsResponseStatus = a});@@ -171,4 +176,5 @@ dedprsEngineDefaults = lens _dedprsEngineDefaults (\ s a -> s{_dedprsEngineDefaults = a});  instance NFData-         DescribeEngineDefaultParametersResponse+           DescribeEngineDefaultParametersResponse+         where
gen/Network/AWS/ElastiCache/DescribeEvents.hs view
@@ -12,13 +12,13 @@  -- | -- Module      : Network.AWS.ElastiCache.DescribeEvents--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Returns events related to cache clusters, cache security groups, and cache parameter groups. You can obtain events specific to a particular cache cluster, cache security group, or cache parameter group by providing the name as a parameter.+-- Returns events related to clusters, cache security groups, and cache parameter groups. You can obtain events specific to a particular cluster, cache security group, or cache parameter group by providing the name as a parameter. -- -- -- By default, only the events occurring within the last hour are returned; however, you can retrieve up to 14 days' worth of events if necessary.@@ -48,13 +48,13 @@     , dersResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @DescribeEvents@ operation. --@@ -62,20 +62,21 @@ -- -- /See:/ 'describeEvents' smart constructor. data DescribeEvents = DescribeEvents'-    { _deStartTime        :: !(Maybe ISO8601)-    , _deSourceType       :: !(Maybe SourceType)-    , _deSourceIdentifier :: !(Maybe Text)-    , _deMarker           :: !(Maybe Text)-    , _deMaxRecords       :: !(Maybe Int)-    , _deEndTime          :: !(Maybe ISO8601)-    , _deDuration         :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _deStartTime        :: !(Maybe ISO8601)+  , _deSourceType       :: !(Maybe SourceType)+  , _deSourceIdentifier :: !(Maybe Text)+  , _deMarker           :: !(Maybe Text)+  , _deMaxRecords       :: !(Maybe Int)+  , _deEndTime          :: !(Maybe ISO8601)+  , _deDuration         :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeEvents' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'deStartTime' - The beginning of the time interval to retrieve events for, specified in ISO 8601 format.+-- * 'deStartTime' - The beginning of the time interval to retrieve events for, specified in ISO 8601 format. __Example:__ 2017-03-30T07:03:49.555Z -- -- * 'deSourceType' - The event source to retrieve events for. If no value is specified, all events are returned. --@@ -85,23 +86,24 @@ -- -- * 'deMaxRecords' - The maximum number of records to include in the response. If more records exist than the specified @MaxRecords@ value, a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: minimum 20; maximum 100. ----- * 'deEndTime' - The end of the time interval for which to retrieve events, specified in ISO 8601 format.+-- * 'deEndTime' - The end of the time interval for which to retrieve events, specified in ISO 8601 format. __Example:__ 2017-03-30T07:03:49.555Z ----- * 'deDuration' - The number of minutes' worth of events to retrieve.+-- * 'deDuration' - The number of minutes worth of events to retrieve. describeEvents     :: DescribeEvents describeEvents =-    DescribeEvents'-    { _deStartTime = Nothing-    , _deSourceType = Nothing-    , _deSourceIdentifier = Nothing-    , _deMarker = Nothing-    , _deMaxRecords = Nothing-    , _deEndTime = Nothing-    , _deDuration = Nothing-    }+  DescribeEvents'+  { _deStartTime = Nothing+  , _deSourceType = Nothing+  , _deSourceIdentifier = Nothing+  , _deMarker = Nothing+  , _deMaxRecords = Nothing+  , _deEndTime = Nothing+  , _deDuration = Nothing+  } --- | The beginning of the time interval to retrieve events for, specified in ISO 8601 format.++-- | The beginning of the time interval to retrieve events for, specified in ISO 8601 format. __Example:__ 2017-03-30T07:03:49.555Z deStartTime :: Lens' DescribeEvents (Maybe UTCTime) deStartTime = lens _deStartTime (\ s a -> s{_deStartTime = a}) . mapping _Time; @@ -121,11 +123,11 @@ deMaxRecords :: Lens' DescribeEvents (Maybe Int) deMaxRecords = lens _deMaxRecords (\ s a -> s{_deMaxRecords = a}); --- | The end of the time interval for which to retrieve events, specified in ISO 8601 format.+-- | The end of the time interval for which to retrieve events, specified in ISO 8601 format. __Example:__ 2017-03-30T07:03:49.555Z deEndTime :: Lens' DescribeEvents (Maybe UTCTime) deEndTime = lens _deEndTime (\ s a -> s{_deEndTime = a}) . mapping _Time; --- | The number of minutes' worth of events to retrieve.+-- | The number of minutes worth of events to retrieve. deDuration :: Lens' DescribeEvents (Maybe Int) deDuration = lens _deDuration (\ s a -> s{_deDuration = a}); @@ -148,9 +150,9 @@                      <*> (x .@? "Marker")                      <*> (pure (fromEnum s))) -instance Hashable DescribeEvents+instance Hashable DescribeEvents where -instance NFData DescribeEvents+instance NFData DescribeEvents where  instance ToHeaders DescribeEvents where         toHeaders = const mempty@@ -175,11 +177,12 @@ -- -- /See:/ 'describeEventsResponse' smart constructor. data DescribeEventsResponse = DescribeEventsResponse'-    { _dersEvents         :: !(Maybe [Event])-    , _dersMarker         :: !(Maybe Text)-    , _dersResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dersEvents         :: !(Maybe [Event])+  , _dersMarker         :: !(Maybe Text)+  , _dersResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeEventsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -193,12 +196,13 @@     :: Int -- ^ 'dersResponseStatus'     -> DescribeEventsResponse describeEventsResponse pResponseStatus_ =-    DescribeEventsResponse'-    { _dersEvents = Nothing-    , _dersMarker = Nothing-    , _dersResponseStatus = pResponseStatus_-    }+  DescribeEventsResponse'+  { _dersEvents = Nothing+  , _dersMarker = Nothing+  , _dersResponseStatus = pResponseStatus_+  } + -- | A list of events. Each element in the list contains detailed information about one event. dersEvents :: Lens' DescribeEventsResponse [Event] dersEvents = lens _dersEvents (\ s a -> s{_dersEvents = a}) . _Default . _Coerce;@@ -211,4 +215,4 @@ dersResponseStatus :: Lens' DescribeEventsResponse Int dersResponseStatus = lens _dersResponseStatus (\ s a -> s{_dersResponseStatus = a}); -instance NFData DescribeEventsResponse+instance NFData DescribeEventsResponse where
gen/Network/AWS/ElastiCache/DescribeReplicationGroups.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.DescribeReplicationGroups--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -42,13 +42,13 @@     , drgrsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @DescribeReplicationGroups@ operation. --@@ -56,11 +56,12 @@ -- -- /See:/ 'describeReplicationGroups' smart constructor. data DescribeReplicationGroups = DescribeReplicationGroups'-    { _drgsMarker             :: !(Maybe Text)-    , _drgsMaxRecords         :: !(Maybe Int)-    , _drgsReplicationGroupId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drgsMarker             :: !(Maybe Text)+  , _drgsMaxRecords         :: !(Maybe Int)+  , _drgsReplicationGroupId :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeReplicationGroups' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,12 +74,13 @@ describeReplicationGroups     :: DescribeReplicationGroups describeReplicationGroups =-    DescribeReplicationGroups'-    { _drgsMarker = Nothing-    , _drgsMaxRecords = Nothing-    , _drgsReplicationGroupId = Nothing-    }+  DescribeReplicationGroups'+  { _drgsMarker = Nothing+  , _drgsMaxRecords = Nothing+  , _drgsReplicationGroupId = Nothing+  } + -- | An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by @MaxRecords@ . drgsMarker :: Lens' DescribeReplicationGroups (Maybe Text) drgsMarker = lens _drgsMarker (\ s a -> s{_drgsMarker = a});@@ -111,9 +113,9 @@                         may (parseXMLList "ReplicationGroup"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeReplicationGroups+instance Hashable DescribeReplicationGroups where -instance NFData DescribeReplicationGroups+instance NFData DescribeReplicationGroups where  instance ToHeaders DescribeReplicationGroups where         toHeaders = const mempty@@ -137,11 +139,12 @@ -- -- /See:/ 'describeReplicationGroupsResponse' smart constructor. data DescribeReplicationGroupsResponse = DescribeReplicationGroupsResponse'-    { _drgrsMarker            :: !(Maybe Text)-    , _drgrsReplicationGroups :: !(Maybe [ReplicationGroup])-    , _drgrsResponseStatus    :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drgrsMarker            :: !(Maybe Text)+  , _drgrsReplicationGroups :: !(Maybe [ReplicationGroup])+  , _drgrsResponseStatus    :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeReplicationGroupsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -155,12 +158,13 @@     :: Int -- ^ 'drgrsResponseStatus'     -> DescribeReplicationGroupsResponse describeReplicationGroupsResponse pResponseStatus_ =-    DescribeReplicationGroupsResponse'-    { _drgrsMarker = Nothing-    , _drgrsReplicationGroups = Nothing-    , _drgrsResponseStatus = pResponseStatus_-    }+  DescribeReplicationGroupsResponse'+  { _drgrsMarker = Nothing+  , _drgrsReplicationGroups = Nothing+  , _drgrsResponseStatus = pResponseStatus_+  } + -- | Provides an identifier to allow retrieval of paginated results. drgrsMarker :: Lens' DescribeReplicationGroupsResponse (Maybe Text) drgrsMarker = lens _drgrsMarker (\ s a -> s{_drgrsMarker = a});@@ -174,3 +178,4 @@ drgrsResponseStatus = lens _drgrsResponseStatus (\ s a -> s{_drgrsResponseStatus = a});  instance NFData DescribeReplicationGroupsResponse+         where
gen/Network/AWS/ElastiCache/DescribeReservedCacheNodes.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.DescribeReservedCacheNodes--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -47,13 +47,13 @@     , drcnrsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @DescribeReservedCacheNodes@ operation. --@@ -61,21 +61,22 @@ -- -- /See:/ 'describeReservedCacheNodes' smart constructor. data DescribeReservedCacheNodes = DescribeReservedCacheNodes'-    { _drcnCacheNodeType                :: !(Maybe Text)-    , _drcnProductDescription           :: !(Maybe Text)-    , _drcnMarker                       :: !(Maybe Text)-    , _drcnMaxRecords                   :: !(Maybe Int)-    , _drcnReservedCacheNodeId          :: !(Maybe Text)-    , _drcnOfferingType                 :: !(Maybe Text)-    , _drcnDuration                     :: !(Maybe Text)-    , _drcnReservedCacheNodesOfferingId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drcnCacheNodeType                :: !(Maybe Text)+  , _drcnProductDescription           :: !(Maybe Text)+  , _drcnMarker                       :: !(Maybe Text)+  , _drcnMaxRecords                   :: !(Maybe Int)+  , _drcnReservedCacheNodeId          :: !(Maybe Text)+  , _drcnOfferingType                 :: !(Maybe Text)+  , _drcnDuration                     :: !(Maybe Text)+  , _drcnReservedCacheNodesOfferingId :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeReservedCacheNodes' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'drcnCacheNodeType' - The cache node type filter value. Use this parameter to show only those reservations matching the specified cache node type. Valid node types are as follows:     * General purpose:     * Current generation: @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@ , @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@ , @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: @cache.t1.micro@ , @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized: @cache.c1.xlarge@      * Memory optimized:     * Current generation: @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .+-- * 'drcnCacheNodeType' - The cache node type filter value. Use this parameter to show only those reservations matching the specified cache node type. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.     * General purpose:     * Current generation:  __T2 node types:__ @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@  __M3 node types:__ @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@  __M4 node types:__ @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: (not recommended) __T1 node types:__ @cache.t1.micro@  __M1 node types:__ @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized:     * Previous generation: (not recommended) __C1 node types:__ @cache.c1.xlarge@      * Memory optimized:     * Current generation:  __R3 node types:__ @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: (not recommended) __M2 node types:__ @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances.      * Redis (cluster mode enabled): Backup/restore is not supported on T1 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> . -- -- * 'drcnProductDescription' - The product description filter value. Use this parameter to show only those reservations matching the specified product description. --@@ -93,18 +94,19 @@ describeReservedCacheNodes     :: DescribeReservedCacheNodes describeReservedCacheNodes =-    DescribeReservedCacheNodes'-    { _drcnCacheNodeType = Nothing-    , _drcnProductDescription = Nothing-    , _drcnMarker = Nothing-    , _drcnMaxRecords = Nothing-    , _drcnReservedCacheNodeId = Nothing-    , _drcnOfferingType = Nothing-    , _drcnDuration = Nothing-    , _drcnReservedCacheNodesOfferingId = Nothing-    }+  DescribeReservedCacheNodes'+  { _drcnCacheNodeType = Nothing+  , _drcnProductDescription = Nothing+  , _drcnMarker = Nothing+  , _drcnMaxRecords = Nothing+  , _drcnReservedCacheNodeId = Nothing+  , _drcnOfferingType = Nothing+  , _drcnDuration = Nothing+  , _drcnReservedCacheNodesOfferingId = Nothing+  } --- | The cache node type filter value. Use this parameter to show only those reservations matching the specified cache node type. Valid node types are as follows:     * General purpose:     * Current generation: @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@ , @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@ , @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: @cache.t1.micro@ , @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized: @cache.c1.xlarge@      * Memory optimized:     * Current generation: @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .++-- | The cache node type filter value. Use this parameter to show only those reservations matching the specified cache node type. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.     * General purpose:     * Current generation:  __T2 node types:__ @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@  __M3 node types:__ @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@  __M4 node types:__ @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: (not recommended) __T1 node types:__ @cache.t1.micro@  __M1 node types:__ @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized:     * Previous generation: (not recommended) __C1 node types:__ @cache.c1.xlarge@      * Memory optimized:     * Current generation:  __R3 node types:__ @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: (not recommended) __M2 node types:__ @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances.      * Redis (cluster mode enabled): Backup/restore is not supported on T1 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> . drcnCacheNodeType :: Lens' DescribeReservedCacheNodes (Maybe Text) drcnCacheNodeType = lens _drcnCacheNodeType (\ s a -> s{_drcnCacheNodeType = a}); @@ -157,9 +159,9 @@                         may (parseXMLList "ReservedCacheNode"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeReservedCacheNodes+instance Hashable DescribeReservedCacheNodes where -instance NFData DescribeReservedCacheNodes+instance NFData DescribeReservedCacheNodes where  instance ToHeaders DescribeReservedCacheNodes where         toHeaders = const mempty@@ -189,11 +191,12 @@ -- -- /See:/ 'describeReservedCacheNodesResponse' smart constructor. data DescribeReservedCacheNodesResponse = DescribeReservedCacheNodesResponse'-    { _drcnrsMarker             :: !(Maybe Text)-    , _drcnrsReservedCacheNodes :: !(Maybe [ReservedCacheNode])-    , _drcnrsResponseStatus     :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drcnrsMarker             :: !(Maybe Text)+  , _drcnrsReservedCacheNodes :: !(Maybe [ReservedCacheNode])+  , _drcnrsResponseStatus     :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeReservedCacheNodesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -207,12 +210,13 @@     :: Int -- ^ 'drcnrsResponseStatus'     -> DescribeReservedCacheNodesResponse describeReservedCacheNodesResponse pResponseStatus_ =-    DescribeReservedCacheNodesResponse'-    { _drcnrsMarker = Nothing-    , _drcnrsReservedCacheNodes = Nothing-    , _drcnrsResponseStatus = pResponseStatus_-    }+  DescribeReservedCacheNodesResponse'+  { _drcnrsMarker = Nothing+  , _drcnrsReservedCacheNodes = Nothing+  , _drcnrsResponseStatus = pResponseStatus_+  } + -- | Provides an identifier to allow retrieval of paginated results. drcnrsMarker :: Lens' DescribeReservedCacheNodesResponse (Maybe Text) drcnrsMarker = lens _drcnrsMarker (\ s a -> s{_drcnrsMarker = a});@@ -226,3 +230,4 @@ drcnrsResponseStatus = lens _drcnrsResponseStatus (\ s a -> s{_drcnrsResponseStatus = a});  instance NFData DescribeReservedCacheNodesResponse+         where
gen/Network/AWS/ElastiCache/DescribeReservedCacheNodesOfferings.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -46,13 +46,13 @@     , drcnorsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @DescribeReservedCacheNodesOfferings@ operation. --@@ -60,20 +60,21 @@ -- -- /See:/ 'describeReservedCacheNodesOfferings' smart constructor. data DescribeReservedCacheNodesOfferings = DescribeReservedCacheNodesOfferings'-    { _drcnoCacheNodeType                :: !(Maybe Text)-    , _drcnoProductDescription           :: !(Maybe Text)-    , _drcnoMarker                       :: !(Maybe Text)-    , _drcnoMaxRecords                   :: !(Maybe Int)-    , _drcnoOfferingType                 :: !(Maybe Text)-    , _drcnoDuration                     :: !(Maybe Text)-    , _drcnoReservedCacheNodesOfferingId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drcnoCacheNodeType                :: !(Maybe Text)+  , _drcnoProductDescription           :: !(Maybe Text)+  , _drcnoMarker                       :: !(Maybe Text)+  , _drcnoMaxRecords                   :: !(Maybe Int)+  , _drcnoOfferingType                 :: !(Maybe Text)+  , _drcnoDuration                     :: !(Maybe Text)+  , _drcnoReservedCacheNodesOfferingId :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeReservedCacheNodesOfferings' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'drcnoCacheNodeType' - The cache node type filter value. Use this parameter to show only the available offerings matching the specified cache node type. Valid node types are as follows:     * General purpose:     * Current generation: @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@ , @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@ , @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: @cache.t1.micro@ , @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized: @cache.c1.xlarge@      * Memory optimized:     * Current generation: @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .+-- * 'drcnoCacheNodeType' - The cache node type filter value. Use this parameter to show only the available offerings matching the specified cache node type. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.     * General purpose:     * Current generation:  __T2 node types:__ @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@  __M3 node types:__ @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@  __M4 node types:__ @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: (not recommended) __T1 node types:__ @cache.t1.micro@  __M1 node types:__ @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized:     * Previous generation: (not recommended) __C1 node types:__ @cache.c1.xlarge@      * Memory optimized:     * Current generation:  __R3 node types:__ @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: (not recommended) __M2 node types:__ @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances.      * Redis (cluster mode enabled): Backup/restore is not supported on T1 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> . -- -- * 'drcnoProductDescription' - The product description filter value. Use this parameter to show only the available offerings matching the specified product description. --@@ -89,17 +90,18 @@ describeReservedCacheNodesOfferings     :: DescribeReservedCacheNodesOfferings describeReservedCacheNodesOfferings =-    DescribeReservedCacheNodesOfferings'-    { _drcnoCacheNodeType = Nothing-    , _drcnoProductDescription = Nothing-    , _drcnoMarker = Nothing-    , _drcnoMaxRecords = Nothing-    , _drcnoOfferingType = Nothing-    , _drcnoDuration = Nothing-    , _drcnoReservedCacheNodesOfferingId = Nothing-    }+  DescribeReservedCacheNodesOfferings'+  { _drcnoCacheNodeType = Nothing+  , _drcnoProductDescription = Nothing+  , _drcnoMarker = Nothing+  , _drcnoMaxRecords = Nothing+  , _drcnoOfferingType = Nothing+  , _drcnoDuration = Nothing+  , _drcnoReservedCacheNodesOfferingId = Nothing+  } --- | The cache node type filter value. Use this parameter to show only the available offerings matching the specified cache node type. Valid node types are as follows:     * General purpose:     * Current generation: @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@ , @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@ , @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: @cache.t1.micro@ , @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized: @cache.c1.xlarge@      * Memory optimized:     * Current generation: @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .++-- | The cache node type filter value. Use this parameter to show only the available offerings matching the specified cache node type. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.     * General purpose:     * Current generation:  __T2 node types:__ @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@  __M3 node types:__ @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@  __M4 node types:__ @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: (not recommended) __T1 node types:__ @cache.t1.micro@  __M1 node types:__ @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized:     * Previous generation: (not recommended) __C1 node types:__ @cache.c1.xlarge@      * Memory optimized:     * Current generation:  __R3 node types:__ @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: (not recommended) __M2 node types:__ @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances.      * Redis (cluster mode enabled): Backup/restore is not supported on T1 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> . drcnoCacheNodeType :: Lens' DescribeReservedCacheNodesOfferings (Maybe Text) drcnoCacheNodeType = lens _drcnoCacheNodeType (\ s a -> s{_drcnoCacheNodeType = a}); @@ -137,7 +139,8 @@             Just $ rq & drcnoMarker .~ rs ^. drcnorsMarker  instance AWSRequest-         DescribeReservedCacheNodesOfferings where+           DescribeReservedCacheNodesOfferings+         where         type Rs DescribeReservedCacheNodesOfferings =              DescribeReservedCacheNodesOfferingsResponse         request = postQuery elastiCache@@ -152,11 +155,14 @@                      <*> (pure (fromEnum s)))  instance Hashable DescribeReservedCacheNodesOfferings+         where  instance NFData DescribeReservedCacheNodesOfferings+         where  instance ToHeaders-         DescribeReservedCacheNodesOfferings where+           DescribeReservedCacheNodesOfferings+         where         toHeaders = const mempty  instance ToPath DescribeReservedCacheNodesOfferings@@ -186,11 +192,12 @@ -- -- /See:/ 'describeReservedCacheNodesOfferingsResponse' smart constructor. data DescribeReservedCacheNodesOfferingsResponse = DescribeReservedCacheNodesOfferingsResponse'-    { _drcnorsMarker                      :: !(Maybe Text)-    , _drcnorsReservedCacheNodesOfferings :: !(Maybe [ReservedCacheNodesOffering])-    , _drcnorsResponseStatus              :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drcnorsMarker                      :: !(Maybe Text)+  , _drcnorsReservedCacheNodesOfferings :: !(Maybe [ReservedCacheNodesOffering])+  , _drcnorsResponseStatus              :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeReservedCacheNodesOfferingsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -204,12 +211,13 @@     :: Int -- ^ 'drcnorsResponseStatus'     -> DescribeReservedCacheNodesOfferingsResponse describeReservedCacheNodesOfferingsResponse pResponseStatus_ =-    DescribeReservedCacheNodesOfferingsResponse'-    { _drcnorsMarker = Nothing-    , _drcnorsReservedCacheNodesOfferings = Nothing-    , _drcnorsResponseStatus = pResponseStatus_-    }+  DescribeReservedCacheNodesOfferingsResponse'+  { _drcnorsMarker = Nothing+  , _drcnorsReservedCacheNodesOfferings = Nothing+  , _drcnorsResponseStatus = pResponseStatus_+  } + -- | Provides an identifier to allow retrieval of paginated results. drcnorsMarker :: Lens' DescribeReservedCacheNodesOfferingsResponse (Maybe Text) drcnorsMarker = lens _drcnorsMarker (\ s a -> s{_drcnorsMarker = a});@@ -223,4 +231,5 @@ drcnorsResponseStatus = lens _drcnorsResponseStatus (\ s a -> s{_drcnorsResponseStatus = a});  instance NFData-         DescribeReservedCacheNodesOfferingsResponse+           DescribeReservedCacheNodesOfferingsResponse+         where
gen/Network/AWS/ElastiCache/DescribeSnapshots.hs view
@@ -12,13 +12,13 @@  -- | -- Module      : Network.AWS.ElastiCache.DescribeSnapshots--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Returns information about cache cluster or replication group snapshots. By default, @DescribeSnapshots@ lists all of your snapshots; it can optionally describe a single snapshot, or just the snapshots associated with a particular cache cluster.+-- Returns information about cluster or replication group snapshots. By default, @DescribeSnapshots@ lists all of your snapshots; it can optionally describe a single snapshot, or just the snapshots associated with a particular cache cluster. -- -- --@@ -46,13 +46,13 @@     , dssrsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @DescribeSnapshotsMessage@ operation. --@@ -60,20 +60,21 @@ -- -- /See:/ 'describeSnapshots' smart constructor. data DescribeSnapshots = DescribeSnapshots'-    { _dsCacheClusterId      :: !(Maybe Text)-    , _dsMarker              :: !(Maybe Text)-    , _dsMaxRecords          :: !(Maybe Int)-    , _dsSnapshotName        :: !(Maybe Text)-    , _dsShowNodeGroupConfig :: !(Maybe Bool)-    , _dsReplicationGroupId  :: !(Maybe Text)-    , _dsSnapshotSource      :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsCacheClusterId      :: !(Maybe Text)+  , _dsMarker              :: !(Maybe Text)+  , _dsMaxRecords          :: !(Maybe Int)+  , _dsSnapshotName        :: !(Maybe Text)+  , _dsShowNodeGroupConfig :: !(Maybe Bool)+  , _dsReplicationGroupId  :: !(Maybe Text)+  , _dsSnapshotSource      :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSnapshots' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'dsCacheClusterId' - A user-supplied cluster identifier. If this parameter is specified, only snapshots associated with that specific cache cluster are described.+-- * 'dsCacheClusterId' - A user-supplied cluster identifier. If this parameter is specified, only snapshots associated with that specific cluster are described. -- -- * 'dsMarker' - An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by @MaxRecords@ . --@@ -89,17 +90,18 @@ describeSnapshots     :: DescribeSnapshots describeSnapshots =-    DescribeSnapshots'-    { _dsCacheClusterId = Nothing-    , _dsMarker = Nothing-    , _dsMaxRecords = Nothing-    , _dsSnapshotName = Nothing-    , _dsShowNodeGroupConfig = Nothing-    , _dsReplicationGroupId = Nothing-    , _dsSnapshotSource = Nothing-    }+  DescribeSnapshots'+  { _dsCacheClusterId = Nothing+  , _dsMarker = Nothing+  , _dsMaxRecords = Nothing+  , _dsSnapshotName = Nothing+  , _dsShowNodeGroupConfig = Nothing+  , _dsReplicationGroupId = Nothing+  , _dsSnapshotSource = Nothing+  } --- | A user-supplied cluster identifier. If this parameter is specified, only snapshots associated with that specific cache cluster are described.++-- | A user-supplied cluster identifier. If this parameter is specified, only snapshots associated with that specific cluster are described. dsCacheClusterId :: Lens' DescribeSnapshots (Maybe Text) dsCacheClusterId = lens _dsCacheClusterId (\ s a -> s{_dsCacheClusterId = a}); @@ -146,9 +148,9 @@                      <*> (x .@? "Marker")                      <*> (pure (fromEnum s))) -instance Hashable DescribeSnapshots+instance Hashable DescribeSnapshots where -instance NFData DescribeSnapshots+instance NFData DescribeSnapshots where  instance ToHeaders DescribeSnapshots where         toHeaders = const mempty@@ -174,11 +176,12 @@ -- -- /See:/ 'describeSnapshotsResponse' smart constructor. data DescribeSnapshotsResponse = DescribeSnapshotsResponse'-    { _dssrsSnapshots      :: !(Maybe [Snapshot])-    , _dssrsMarker         :: !(Maybe Text)-    , _dssrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dssrsSnapshots      :: !(Maybe [Snapshot])+  , _dssrsMarker         :: !(Maybe Text)+  , _dssrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSnapshotsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -192,12 +195,13 @@     :: Int -- ^ 'dssrsResponseStatus'     -> DescribeSnapshotsResponse describeSnapshotsResponse pResponseStatus_ =-    DescribeSnapshotsResponse'-    { _dssrsSnapshots = Nothing-    , _dssrsMarker = Nothing-    , _dssrsResponseStatus = pResponseStatus_-    }+  DescribeSnapshotsResponse'+  { _dssrsSnapshots = Nothing+  , _dssrsMarker = Nothing+  , _dssrsResponseStatus = pResponseStatus_+  } + -- | A list of snapshots. Each item in the list contains detailed information about one snapshot. dssrsSnapshots :: Lens' DescribeSnapshotsResponse [Snapshot] dssrsSnapshots = lens _dssrsSnapshots (\ s a -> s{_dssrsSnapshots = a}) . _Default . _Coerce;@@ -210,4 +214,4 @@ dssrsResponseStatus :: Lens' DescribeSnapshotsResponse Int dssrsResponseStatus = lens _dssrsResponseStatus (\ s a -> s{_dssrsResponseStatus = a}); -instance NFData DescribeSnapshotsResponse+instance NFData DescribeSnapshotsResponse where
gen/Network/AWS/ElastiCache/ListAllowedNodeTypeModifications.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.ListAllowedNodeTypeModifications--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -40,12 +40,12 @@     , lantmrsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | The input parameters for the @ListAllowedNodeTypeModifications@ operation. --@@ -53,26 +53,26 @@ -- -- /See:/ 'listAllowedNodeTypeModifications' smart constructor. data ListAllowedNodeTypeModifications = ListAllowedNodeTypeModifications'-    { _lantmCacheClusterId     :: !(Maybe Text)-    , _lantmReplicationGroupId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _lantmCacheClusterId     :: !(Maybe Text)+  , _lantmReplicationGroupId :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListAllowedNodeTypeModifications' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'lantmCacheClusterId' - The name of the cache cluster you want to scale up to a larger node instanced type. ElastiCache uses the cluster id to identify the current node type of this cluster and from that to create a list of node types you can scale up to. /Important:/ You must provide a value for either the @CacheClusterId@ or the @ReplicationGroupId@ .+-- * 'lantmCacheClusterId' - The name of the cluster you want to scale up to a larger node instanced type. ElastiCache uses the cluster id to identify the current node type of this cluster and from that to create a list of node types you can scale up to. /Important:/ You must provide a value for either the @CacheClusterId@ or the @ReplicationGroupId@ . -- -- * 'lantmReplicationGroupId' - The name of the replication group want to scale up to a larger node type. ElastiCache uses the replication group id to identify the current node type being used by this replication group, and from that to create a list of node types you can scale up to. /Important:/ You must provide a value for either the @CacheClusterId@ or the @ReplicationGroupId@ . listAllowedNodeTypeModifications     :: ListAllowedNodeTypeModifications listAllowedNodeTypeModifications =-    ListAllowedNodeTypeModifications'-    { _lantmCacheClusterId = Nothing-    , _lantmReplicationGroupId = Nothing-    }+  ListAllowedNodeTypeModifications'+  {_lantmCacheClusterId = Nothing, _lantmReplicationGroupId = Nothing} --- | The name of the cache cluster you want to scale up to a larger node instanced type. ElastiCache uses the cluster id to identify the current node type of this cluster and from that to create a list of node types you can scale up to. /Important:/ You must provide a value for either the @CacheClusterId@ or the @ReplicationGroupId@ .++-- | The name of the cluster you want to scale up to a larger node instanced type. ElastiCache uses the cluster id to identify the current node type of this cluster and from that to create a list of node types you can scale up to. /Important:/ You must provide a value for either the @CacheClusterId@ or the @ReplicationGroupId@ . lantmCacheClusterId :: Lens' ListAllowedNodeTypeModifications (Maybe Text) lantmCacheClusterId = lens _lantmCacheClusterId (\ s a -> s{_lantmCacheClusterId = a}); @@ -95,8 +95,10 @@                      <*> (pure (fromEnum s)))  instance Hashable ListAllowedNodeTypeModifications+         where  instance NFData ListAllowedNodeTypeModifications+         where  instance ToHeaders ListAllowedNodeTypeModifications          where@@ -116,29 +118,35 @@                "CacheClusterId" =: _lantmCacheClusterId,                "ReplicationGroupId" =: _lantmReplicationGroupId] --- | /See:/ 'listAllowedNodeTypeModificationsResponse' smart constructor.+-- | Represents the allowed node types you can use to modify your cluster or replication group.+--+--+--+-- /See:/ 'listAllowedNodeTypeModificationsResponse' smart constructor. data ListAllowedNodeTypeModificationsResponse = ListAllowedNodeTypeModificationsResponse'-    { _lantmrsScaleUpModifications :: !(Maybe [Text])-    , _lantmrsResponseStatus       :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _lantmrsScaleUpModifications :: !(Maybe [Text])+  , _lantmrsResponseStatus       :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListAllowedNodeTypeModificationsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'lantmrsScaleUpModifications' - Undocumented member.+-- * 'lantmrsScaleUpModifications' - A string list, each element of which specifies a cache node type which you can use to scale your cluster or replication group. When scaling up a Redis cluster or replication group using @ModifyCacheCluster@ or @ModifyReplicationGroup@ , use a value from this list for the @CacheNodeType@ parameter. -- -- * 'lantmrsResponseStatus' - -- | The response status code. listAllowedNodeTypeModificationsResponse     :: Int -- ^ 'lantmrsResponseStatus'     -> ListAllowedNodeTypeModificationsResponse listAllowedNodeTypeModificationsResponse pResponseStatus_ =-    ListAllowedNodeTypeModificationsResponse'-    { _lantmrsScaleUpModifications = Nothing-    , _lantmrsResponseStatus = pResponseStatus_-    }+  ListAllowedNodeTypeModificationsResponse'+  { _lantmrsScaleUpModifications = Nothing+  , _lantmrsResponseStatus = pResponseStatus_+  } --- | Undocumented member.++-- | A string list, each element of which specifies a cache node type which you can use to scale your cluster or replication group. When scaling up a Redis cluster or replication group using @ModifyCacheCluster@ or @ModifyReplicationGroup@ , use a value from this list for the @CacheNodeType@ parameter. lantmrsScaleUpModifications :: Lens' ListAllowedNodeTypeModificationsResponse [Text] lantmrsScaleUpModifications = lens _lantmrsScaleUpModifications (\ s a -> s{_lantmrsScaleUpModifications = a}) . _Default . _Coerce; @@ -147,4 +155,5 @@ lantmrsResponseStatus = lens _lantmrsResponseStatus (\ s a -> s{_lantmrsResponseStatus = a});  instance NFData-         ListAllowedNodeTypeModificationsResponse+           ListAllowedNodeTypeModificationsResponse+         where
gen/Network/AWS/ElastiCache/ListTagsForResource.hs view
@@ -12,16 +12,16 @@  -- | -- Module      : Network.AWS.ElastiCache.ListTagsForResource--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Lists all cost allocation tags currently on the named resource. A @cost allocation tag@ is a key-value pair where the key is case-sensitive and the value is optional. You can use cost allocation tags to categorize and track your AWS costs. -- ----- You can have a maximum of 10 cost allocation tags on an ElastiCache resource. For more information, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/BestPractices.html Using Cost Allocation Tags in Amazon ElastiCache> .+-- You can have a maximum of 50 cost allocation tags on an ElastiCache resource. For more information, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/BestPractices.html Using Cost Allocation Tags in Amazon ElastiCache> . -- module Network.AWS.ElastiCache.ListTagsForResource     (@@ -38,12 +38,12 @@     , tlmTagList     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | The input parameters for the @ListTagsForResource@ operation. --@@ -51,9 +51,10 @@ -- -- /See:/ 'listTagsForResource' smart constructor. newtype ListTagsForResource = ListTagsForResource'-    { _ltfrResourceName :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ltfrResourceName :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListTagsForResource' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -63,10 +64,9 @@     :: Text -- ^ 'ltfrResourceName'     -> ListTagsForResource listTagsForResource pResourceName_ =-    ListTagsForResource'-    { _ltfrResourceName = pResourceName_-    }+  ListTagsForResource' {_ltfrResourceName = pResourceName_} + -- | The Amazon Resource Name (ARN) of the resource for which you want the list of tags, for example @arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster@ or @arn:aws:elasticache:us-west-2:0123456789:snapshot:mySnapshot@ . For more information about ARNs, see <http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs) and AWS Service Namespaces> . ltfrResourceName :: Lens' ListTagsForResource Text ltfrResourceName = lens _ltfrResourceName (\ s a -> s{_ltfrResourceName = a});@@ -78,9 +78,9 @@           = receiveXMLWrapper "ListTagsForResourceResult"               (\ s h x -> parseXML x) -instance Hashable ListTagsForResource+instance Hashable ListTagsForResource where -instance NFData ListTagsForResource+instance NFData ListTagsForResource where  instance ToHeaders ListTagsForResource where         toHeaders = const mempty
gen/Network/AWS/ElastiCache/ModifyCacheCluster.hs view
@@ -12,13 +12,13 @@  -- | -- Module      : Network.AWS.ElastiCache.ModifyCacheCluster--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Modifies the settings for a cache cluster. You can use this operation to change one or more cluster configuration parameters by specifying the parameters and the new values.+-- Modifies the settings for a cluster. You can use this operation to change one or more cluster configuration parameters by specifying the parameters and the new values. -- -- module Network.AWS.ElastiCache.ModifyCacheCluster@@ -53,12 +53,12 @@     , mccrsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @ModifyCacheCluster@ operation. --@@ -66,95 +66,97 @@ -- -- /See:/ 'modifyCacheCluster' smart constructor. data ModifyCacheCluster = ModifyCacheCluster'-    { _mccEngineVersion              :: !(Maybe Text)-    , _mccCacheNodeType              :: !(Maybe Text)-    , _mccSecurityGroupIds           :: !(Maybe [Text])-    , _mccAutoMinorVersionUpgrade    :: !(Maybe Bool)-    , _mccCacheParameterGroupName    :: !(Maybe Text)-    , _mccSnapshotWindow             :: !(Maybe Text)-    , _mccNewAvailabilityZones       :: !(Maybe [Text])-    , _mccPreferredMaintenanceWindow :: !(Maybe Text)-    , _mccCacheNodeIdsToRemove       :: !(Maybe [Text])-    , _mccSnapshotRetentionLimit     :: !(Maybe Int)-    , _mccNotificationTopicStatus    :: !(Maybe Text)-    , _mccAZMode                     :: !(Maybe AZMode)-    , _mccApplyImmediately           :: !(Maybe Bool)-    , _mccNotificationTopicARN       :: !(Maybe Text)-    , _mccNumCacheNodes              :: !(Maybe Int)-    , _mccCacheSecurityGroupNames    :: !(Maybe [Text])-    , _mccCacheClusterId             :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mccEngineVersion              :: !(Maybe Text)+  , _mccCacheNodeType              :: !(Maybe Text)+  , _mccSecurityGroupIds           :: !(Maybe [Text])+  , _mccAutoMinorVersionUpgrade    :: !(Maybe Bool)+  , _mccCacheParameterGroupName    :: !(Maybe Text)+  , _mccSnapshotWindow             :: !(Maybe Text)+  , _mccNewAvailabilityZones       :: !(Maybe [Text])+  , _mccPreferredMaintenanceWindow :: !(Maybe Text)+  , _mccCacheNodeIdsToRemove       :: !(Maybe [Text])+  , _mccSnapshotRetentionLimit     :: !(Maybe Int)+  , _mccNotificationTopicStatus    :: !(Maybe Text)+  , _mccAZMode                     :: !(Maybe AZMode)+  , _mccApplyImmediately           :: !(Maybe Bool)+  , _mccNotificationTopicARN       :: !(Maybe Text)+  , _mccNumCacheNodes              :: !(Maybe Int)+  , _mccCacheSecurityGroupNames    :: !(Maybe [Text])+  , _mccCacheClusterId             :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyCacheCluster' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'mccEngineVersion' - The upgraded version of the cache engine to be run on the cache nodes. __Important:__ You can upgrade to a newer engine version (see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SelectEngine.html#VersionManagement Selecting a Cache Engine and Version> ), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cache cluster and create it anew with the earlier engine version.+-- * 'mccEngineVersion' - The upgraded version of the cache engine to be run on the cache nodes. __Important:__ You can upgrade to a newer engine version (see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SelectEngine.html#VersionManagement Selecting a Cache Engine and Version> ), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cluster and create it anew with the earlier engine version. ----- * 'mccCacheNodeType' - A valid cache node type that you want to scale this cache cluster up to.+-- * 'mccCacheNodeType' - A valid cache node type that you want to scale this cluster up to. ----- * 'mccSecurityGroupIds' - Specifies the VPC Security Groups associated with the cache cluster. This parameter can be used only with clusters that are created in an Amazon Virtual Private Cloud (Amazon VPC).+-- * 'mccSecurityGroupIds' - Specifies the VPC Security Groups associated with the cluster. This parameter can be used only with clusters that are created in an Amazon Virtual Private Cloud (Amazon VPC). -- -- * 'mccAutoMinorVersionUpgrade' - This parameter is currently disabled. ----- * 'mccCacheParameterGroupName' - The name of the cache parameter group to apply to this cache cluster. This change is asynchronously applied as soon as possible for parameters when the @ApplyImmediately@ parameter is specified as @true@ for this request.+-- * 'mccCacheParameterGroupName' - The name of the cache parameter group to apply to this cluster. This change is asynchronously applied as soon as possible for parameters when the @ApplyImmediately@ parameter is specified as @true@ for this request. ----- * 'mccSnapshotWindow' - The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your cache cluster.+-- * 'mccSnapshotWindow' - The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your cluster. -- -- * 'mccNewAvailabilityZones' - The list of Availability Zones where the new Memcached cache nodes are created. This parameter is only valid when @NumCacheNodes@ in the request is greater than the sum of the number of active cache nodes and the number of cache nodes pending creation (which may be zero). The number of Availability Zones supplied in this list must match the cache nodes being added in this request. This option is only supported on Memcached clusters. Scenarios:     * __Scenario 1:__ You have 3 active nodes and wish to add 2 nodes. Specify @NumCacheNodes=5@ (3 + 2) and optionally specify two Availability Zones for the two new nodes.     * __Scenario 2:__ You have 3 active nodes and 2 nodes pending creation (from the scenario 1 call) and want to add 1 more node. Specify @NumCacheNodes=6@ ((3 + 2) + 1) and optionally specify an Availability Zone for the new node.     * __Scenario 3:__ You want to cancel all pending operations. Specify @NumCacheNodes=3@ to cancel all pending operations. The Availability Zone placement of nodes pending creation cannot be modified. If you wish to cancel any nodes pending creation, add 0 nodes by setting @NumCacheNodes@ to the number of current nodes. If @cross-az@ is specified, existing Memcached nodes remain in their current Availability Zone. Only newly created nodes can be located in different Availability Zones. For guidance on how to move existing Memcached nodes to different Availability Zones, see the __Availability Zone Considerations__ section of <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheNode.Memcached.html Cache Node Considerations for Memcached> . __Impact of new add/remove requests upon pending requests__      * Scenario-1     * Pending Action: Delete     * New Request: Delete     * Result: The new delete, pending or immediate, replaces the pending delete.     * Scenario-2     * Pending Action: Delete     * New Request: Create     * Result: The new create, pending or immediate, replaces the pending delete.     * Scenario-3     * Pending Action: Create     * New Request: Delete     * Result: The new delete, pending or immediate, replaces the pending create.     * Scenario-4     * Pending Action: Create     * New Request: Create     * Result: The new create is added to the pending create. /Important:/ __Important:__ If the new create request is __Apply Immediately - Yes__ , all creates are performed immediately. If the new create request is __Apply Immediately - No__ , all creates are pending. -- -- * 'mccPreferredMaintenanceWindow' - Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are:     * @sun@      * @mon@      * @tue@      * @wed@      * @thu@      * @fri@      * @sat@  Example: @sun:23:00-mon:01:30@ ----- * 'mccCacheNodeIdsToRemove' - A list of cache node IDs to be removed. A node ID is a numeric identifier (0001, 0002, etc.). This parameter is only valid when @NumCacheNodes@ is less than the existing number of cache nodes. The number of cache node IDs supplied in this parameter must match the difference between the existing number of cache nodes in the cluster or pending cache nodes, whichever is greater, and the value of @NumCacheNodes@ in the request. For example: If you have 3 active cache nodes, 7 pending cache nodes, and the number of cache nodes in this @ModifyCacheCluser@ call is 5, you must list 2 (7 - 5) cache node IDs to remove.+-- * 'mccCacheNodeIdsToRemove' - A list of cache node IDs to be removed. A node ID is a numeric identifier (0001, 0002, etc.). This parameter is only valid when @NumCacheNodes@ is less than the existing number of cache nodes. The number of cache node IDs supplied in this parameter must match the difference between the existing number of cache nodes in the cluster or pending cache nodes, whichever is greater, and the value of @NumCacheNodes@ in the request. For example: If you have 3 active cache nodes, 7 pending cache nodes, and the number of cache nodes in this @ModifyCacheCluster@ call is 5, you must list 2 (7 - 5) cache node IDs to remove. ----- * 'mccSnapshotRetentionLimit' - The number of days for which ElastiCache retains automatic cache cluster snapshots before deleting them. For example, if you set @SnapshotRetentionLimit@ to 5, a snapshot that was taken today is retained for 5 days before being deleted.+-- * 'mccSnapshotRetentionLimit' - The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set @SnapshotRetentionLimit@ to 5, a snapshot that was taken today is retained for 5 days before being deleted. -- -- * 'mccNotificationTopicStatus' - The status of the Amazon SNS notification topic. Notifications are sent only if the status is @active@ . Valid values: @active@ | @inactive@ ----- * 'mccAZMode' - Specifies whether the new nodes in this Memcached cache cluster are all created in a single Availability Zone or created across multiple Availability Zones. Valid values: @single-az@ | @cross-az@ . This option is only supported for Memcached cache clusters.+-- * 'mccAZMode' - Specifies whether the new nodes in this Memcached cluster are all created in a single Availability Zone or created across multiple Availability Zones. Valid values: @single-az@ | @cross-az@ . This option is only supported for Memcached clusters. ----- * 'mccApplyImmediately' - If @true@ , this parameter causes the modifications in this request and any pending modifications to be applied, asynchronously and as soon as possible, regardless of the @PreferredMaintenanceWindow@ setting for the cache cluster. If @false@ , changes to the cache cluster are applied on the next maintenance reboot, or the next failure reboot, whichever occurs first. /Important:/ If you perform a @ModifyCacheCluster@ before a pending modification is applied, the pending modification is replaced by the newer modification. Valid values: @true@ | @false@  Default: @false@+-- * 'mccApplyImmediately' - If @true@ , this parameter causes the modifications in this request and any pending modifications to be applied, asynchronously and as soon as possible, regardless of the @PreferredMaintenanceWindow@ setting for the cluster. If @false@ , changes to the cluster are applied on the next maintenance reboot, or the next failure reboot, whichever occurs first. /Important:/ If you perform a @ModifyCacheCluster@ before a pending modification is applied, the pending modification is replaced by the newer modification. Valid values: @true@ | @false@  Default: @false@ -- -- * 'mccNotificationTopicARN' - The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications are sent. ----- * 'mccNumCacheNodes' - The number of cache nodes that the cache cluster should have. If the value for @NumCacheNodes@ is greater than the sum of the number of current cache nodes and the number of cache nodes pending creation (which may be zero), more nodes are added. If the value is less than the number of existing cache nodes, nodes are removed. If the value is equal to the number of current cache nodes, any pending add or remove requests are canceled. If you are removing cache nodes, you must use the @CacheNodeIdsToRemove@ parameter to provide the IDs of the specific cache nodes to remove. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.+-- * 'mccNumCacheNodes' - The number of cache nodes that the cluster should have. If the value for @NumCacheNodes@ is greater than the sum of the number of current cache nodes and the number of cache nodes pending creation (which may be zero), more nodes are added. If the value is less than the number of existing cache nodes, nodes are removed. If the value is equal to the number of current cache nodes, any pending add or remove requests are canceled. If you are removing cache nodes, you must use the @CacheNodeIdsToRemove@ parameter to provide the IDs of the specific cache nodes to remove. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20. ----- * 'mccCacheSecurityGroupNames' - A list of cache security group names to authorize on this cache cluster. This change is asynchronously applied as soon as possible. You can use this parameter only with clusters that are created outside of an Amazon Virtual Private Cloud (Amazon VPC). Constraints: Must contain no more than 255 alphanumeric characters. Must not be "Default".+-- * 'mccCacheSecurityGroupNames' - A list of cache security group names to authorize on this cluster. This change is asynchronously applied as soon as possible. You can use this parameter only with clusters that are created outside of an Amazon Virtual Private Cloud (Amazon VPC). Constraints: Must contain no more than 255 alphanumeric characters. Must not be "Default". ----- * 'mccCacheClusterId' - The cache cluster identifier. This value is stored as a lowercase string.+-- * 'mccCacheClusterId' - The cluster identifier. This value is stored as a lowercase string. modifyCacheCluster     :: Text -- ^ 'mccCacheClusterId'     -> ModifyCacheCluster modifyCacheCluster pCacheClusterId_ =-    ModifyCacheCluster'-    { _mccEngineVersion = Nothing-    , _mccCacheNodeType = Nothing-    , _mccSecurityGroupIds = Nothing-    , _mccAutoMinorVersionUpgrade = Nothing-    , _mccCacheParameterGroupName = Nothing-    , _mccSnapshotWindow = Nothing-    , _mccNewAvailabilityZones = Nothing-    , _mccPreferredMaintenanceWindow = Nothing-    , _mccCacheNodeIdsToRemove = Nothing-    , _mccSnapshotRetentionLimit = Nothing-    , _mccNotificationTopicStatus = Nothing-    , _mccAZMode = Nothing-    , _mccApplyImmediately = Nothing-    , _mccNotificationTopicARN = Nothing-    , _mccNumCacheNodes = Nothing-    , _mccCacheSecurityGroupNames = Nothing-    , _mccCacheClusterId = pCacheClusterId_-    }+  ModifyCacheCluster'+  { _mccEngineVersion = Nothing+  , _mccCacheNodeType = Nothing+  , _mccSecurityGroupIds = Nothing+  , _mccAutoMinorVersionUpgrade = Nothing+  , _mccCacheParameterGroupName = Nothing+  , _mccSnapshotWindow = Nothing+  , _mccNewAvailabilityZones = Nothing+  , _mccPreferredMaintenanceWindow = Nothing+  , _mccCacheNodeIdsToRemove = Nothing+  , _mccSnapshotRetentionLimit = Nothing+  , _mccNotificationTopicStatus = Nothing+  , _mccAZMode = Nothing+  , _mccApplyImmediately = Nothing+  , _mccNotificationTopicARN = Nothing+  , _mccNumCacheNodes = Nothing+  , _mccCacheSecurityGroupNames = Nothing+  , _mccCacheClusterId = pCacheClusterId_+  } --- | The upgraded version of the cache engine to be run on the cache nodes. __Important:__ You can upgrade to a newer engine version (see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SelectEngine.html#VersionManagement Selecting a Cache Engine and Version> ), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cache cluster and create it anew with the earlier engine version.++-- | The upgraded version of the cache engine to be run on the cache nodes. __Important:__ You can upgrade to a newer engine version (see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SelectEngine.html#VersionManagement Selecting a Cache Engine and Version> ), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cluster and create it anew with the earlier engine version. mccEngineVersion :: Lens' ModifyCacheCluster (Maybe Text) mccEngineVersion = lens _mccEngineVersion (\ s a -> s{_mccEngineVersion = a}); --- | A valid cache node type that you want to scale this cache cluster up to.+-- | A valid cache node type that you want to scale this cluster up to. mccCacheNodeType :: Lens' ModifyCacheCluster (Maybe Text) mccCacheNodeType = lens _mccCacheNodeType (\ s a -> s{_mccCacheNodeType = a}); --- | Specifies the VPC Security Groups associated with the cache cluster. This parameter can be used only with clusters that are created in an Amazon Virtual Private Cloud (Amazon VPC).+-- | Specifies the VPC Security Groups associated with the cluster. This parameter can be used only with clusters that are created in an Amazon Virtual Private Cloud (Amazon VPC). mccSecurityGroupIds :: Lens' ModifyCacheCluster [Text] mccSecurityGroupIds = lens _mccSecurityGroupIds (\ s a -> s{_mccSecurityGroupIds = a}) . _Default . _Coerce; @@ -162,11 +164,11 @@ mccAutoMinorVersionUpgrade :: Lens' ModifyCacheCluster (Maybe Bool) mccAutoMinorVersionUpgrade = lens _mccAutoMinorVersionUpgrade (\ s a -> s{_mccAutoMinorVersionUpgrade = a}); --- | The name of the cache parameter group to apply to this cache cluster. This change is asynchronously applied as soon as possible for parameters when the @ApplyImmediately@ parameter is specified as @true@ for this request.+-- | The name of the cache parameter group to apply to this cluster. This change is asynchronously applied as soon as possible for parameters when the @ApplyImmediately@ parameter is specified as @true@ for this request. mccCacheParameterGroupName :: Lens' ModifyCacheCluster (Maybe Text) mccCacheParameterGroupName = lens _mccCacheParameterGroupName (\ s a -> s{_mccCacheParameterGroupName = a}); --- | The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your cache cluster.+-- | The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your cluster. mccSnapshotWindow :: Lens' ModifyCacheCluster (Maybe Text) mccSnapshotWindow = lens _mccSnapshotWindow (\ s a -> s{_mccSnapshotWindow = a}); @@ -178,11 +180,11 @@ mccPreferredMaintenanceWindow :: Lens' ModifyCacheCluster (Maybe Text) mccPreferredMaintenanceWindow = lens _mccPreferredMaintenanceWindow (\ s a -> s{_mccPreferredMaintenanceWindow = a}); --- | A list of cache node IDs to be removed. A node ID is a numeric identifier (0001, 0002, etc.). This parameter is only valid when @NumCacheNodes@ is less than the existing number of cache nodes. The number of cache node IDs supplied in this parameter must match the difference between the existing number of cache nodes in the cluster or pending cache nodes, whichever is greater, and the value of @NumCacheNodes@ in the request. For example: If you have 3 active cache nodes, 7 pending cache nodes, and the number of cache nodes in this @ModifyCacheCluser@ call is 5, you must list 2 (7 - 5) cache node IDs to remove.+-- | A list of cache node IDs to be removed. A node ID is a numeric identifier (0001, 0002, etc.). This parameter is only valid when @NumCacheNodes@ is less than the existing number of cache nodes. The number of cache node IDs supplied in this parameter must match the difference between the existing number of cache nodes in the cluster or pending cache nodes, whichever is greater, and the value of @NumCacheNodes@ in the request. For example: If you have 3 active cache nodes, 7 pending cache nodes, and the number of cache nodes in this @ModifyCacheCluster@ call is 5, you must list 2 (7 - 5) cache node IDs to remove. mccCacheNodeIdsToRemove :: Lens' ModifyCacheCluster [Text] mccCacheNodeIdsToRemove = lens _mccCacheNodeIdsToRemove (\ s a -> s{_mccCacheNodeIdsToRemove = a}) . _Default . _Coerce; --- | The number of days for which ElastiCache retains automatic cache cluster snapshots before deleting them. For example, if you set @SnapshotRetentionLimit@ to 5, a snapshot that was taken today is retained for 5 days before being deleted.+-- | The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set @SnapshotRetentionLimit@ to 5, a snapshot that was taken today is retained for 5 days before being deleted. mccSnapshotRetentionLimit :: Lens' ModifyCacheCluster (Maybe Int) mccSnapshotRetentionLimit = lens _mccSnapshotRetentionLimit (\ s a -> s{_mccSnapshotRetentionLimit = a}); @@ -190,11 +192,11 @@ mccNotificationTopicStatus :: Lens' ModifyCacheCluster (Maybe Text) mccNotificationTopicStatus = lens _mccNotificationTopicStatus (\ s a -> s{_mccNotificationTopicStatus = a}); --- | Specifies whether the new nodes in this Memcached cache cluster are all created in a single Availability Zone or created across multiple Availability Zones. Valid values: @single-az@ | @cross-az@ . This option is only supported for Memcached cache clusters.+-- | Specifies whether the new nodes in this Memcached cluster are all created in a single Availability Zone or created across multiple Availability Zones. Valid values: @single-az@ | @cross-az@ . This option is only supported for Memcached clusters. mccAZMode :: Lens' ModifyCacheCluster (Maybe AZMode) mccAZMode = lens _mccAZMode (\ s a -> s{_mccAZMode = a}); --- | If @true@ , this parameter causes the modifications in this request and any pending modifications to be applied, asynchronously and as soon as possible, regardless of the @PreferredMaintenanceWindow@ setting for the cache cluster. If @false@ , changes to the cache cluster are applied on the next maintenance reboot, or the next failure reboot, whichever occurs first. /Important:/ If you perform a @ModifyCacheCluster@ before a pending modification is applied, the pending modification is replaced by the newer modification. Valid values: @true@ | @false@  Default: @false@+-- | If @true@ , this parameter causes the modifications in this request and any pending modifications to be applied, asynchronously and as soon as possible, regardless of the @PreferredMaintenanceWindow@ setting for the cluster. If @false@ , changes to the cluster are applied on the next maintenance reboot, or the next failure reboot, whichever occurs first. /Important:/ If you perform a @ModifyCacheCluster@ before a pending modification is applied, the pending modification is replaced by the newer modification. Valid values: @true@ | @false@  Default: @false@ mccApplyImmediately :: Lens' ModifyCacheCluster (Maybe Bool) mccApplyImmediately = lens _mccApplyImmediately (\ s a -> s{_mccApplyImmediately = a}); @@ -202,15 +204,15 @@ mccNotificationTopicARN :: Lens' ModifyCacheCluster (Maybe Text) mccNotificationTopicARN = lens _mccNotificationTopicARN (\ s a -> s{_mccNotificationTopicARN = a}); --- | The number of cache nodes that the cache cluster should have. If the value for @NumCacheNodes@ is greater than the sum of the number of current cache nodes and the number of cache nodes pending creation (which may be zero), more nodes are added. If the value is less than the number of existing cache nodes, nodes are removed. If the value is equal to the number of current cache nodes, any pending add or remove requests are canceled. If you are removing cache nodes, you must use the @CacheNodeIdsToRemove@ parameter to provide the IDs of the specific cache nodes to remove. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.+-- | The number of cache nodes that the cluster should have. If the value for @NumCacheNodes@ is greater than the sum of the number of current cache nodes and the number of cache nodes pending creation (which may be zero), more nodes are added. If the value is less than the number of existing cache nodes, nodes are removed. If the value is equal to the number of current cache nodes, any pending add or remove requests are canceled. If you are removing cache nodes, you must use the @CacheNodeIdsToRemove@ parameter to provide the IDs of the specific cache nodes to remove. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20. mccNumCacheNodes :: Lens' ModifyCacheCluster (Maybe Int) mccNumCacheNodes = lens _mccNumCacheNodes (\ s a -> s{_mccNumCacheNodes = a}); --- | A list of cache security group names to authorize on this cache cluster. This change is asynchronously applied as soon as possible. You can use this parameter only with clusters that are created outside of an Amazon Virtual Private Cloud (Amazon VPC). Constraints: Must contain no more than 255 alphanumeric characters. Must not be "Default".+-- | A list of cache security group names to authorize on this cluster. This change is asynchronously applied as soon as possible. You can use this parameter only with clusters that are created outside of an Amazon Virtual Private Cloud (Amazon VPC). Constraints: Must contain no more than 255 alphanumeric characters. Must not be "Default". mccCacheSecurityGroupNames :: Lens' ModifyCacheCluster [Text] mccCacheSecurityGroupNames = lens _mccCacheSecurityGroupNames (\ s a -> s{_mccCacheSecurityGroupNames = a}) . _Default . _Coerce; --- | The cache cluster identifier. This value is stored as a lowercase string.+-- | The cluster identifier. This value is stored as a lowercase string. mccCacheClusterId :: Lens' ModifyCacheCluster Text mccCacheClusterId = lens _mccCacheClusterId (\ s a -> s{_mccCacheClusterId = a}); @@ -224,9 +226,9 @@                  ModifyCacheClusterResponse' <$>                    (x .@? "CacheCluster") <*> (pure (fromEnum s))) -instance Hashable ModifyCacheCluster+instance Hashable ModifyCacheCluster where -instance NFData ModifyCacheCluster+instance NFData ModifyCacheCluster where  instance ToHeaders ModifyCacheCluster where         toHeaders = const mempty@@ -276,10 +278,11 @@  -- | /See:/ 'modifyCacheClusterResponse' smart constructor. data ModifyCacheClusterResponse = ModifyCacheClusterResponse'-    { _mccrsCacheCluster   :: !(Maybe CacheCluster)-    , _mccrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mccrsCacheCluster   :: !(Maybe CacheCluster)+  , _mccrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyCacheClusterResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -291,11 +294,10 @@     :: Int -- ^ 'mccrsResponseStatus'     -> ModifyCacheClusterResponse modifyCacheClusterResponse pResponseStatus_ =-    ModifyCacheClusterResponse'-    { _mccrsCacheCluster = Nothing-    , _mccrsResponseStatus = pResponseStatus_-    }+  ModifyCacheClusterResponse'+  {_mccrsCacheCluster = Nothing, _mccrsResponseStatus = pResponseStatus_} + -- | Undocumented member. mccrsCacheCluster :: Lens' ModifyCacheClusterResponse (Maybe CacheCluster) mccrsCacheCluster = lens _mccrsCacheCluster (\ s a -> s{_mccrsCacheCluster = a});@@ -304,4 +306,4 @@ mccrsResponseStatus :: Lens' ModifyCacheClusterResponse Int mccrsResponseStatus = lens _mccrsResponseStatus (\ s a -> s{_mccrsResponseStatus = a}); -instance NFData ModifyCacheClusterResponse+instance NFData ModifyCacheClusterResponse where
gen/Network/AWS/ElastiCache/ModifyCacheParameterGroup.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.ModifyCacheParameterGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,12 +37,12 @@     , cpgnmCacheParameterGroupName     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @ModifyCacheParameterGroup@ operation. --@@ -50,10 +50,11 @@ -- -- /See:/ 'modifyCacheParameterGroup' smart constructor. data ModifyCacheParameterGroup = ModifyCacheParameterGroup'-    { _mcpgCacheParameterGroupName :: !Text-    , _mcpgParameterNameValues     :: ![ParameterNameValue]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mcpgCacheParameterGroupName :: !Text+  , _mcpgParameterNameValues     :: ![ParameterNameValue]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyCacheParameterGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -65,11 +66,12 @@     :: Text -- ^ 'mcpgCacheParameterGroupName'     -> ModifyCacheParameterGroup modifyCacheParameterGroup pCacheParameterGroupName_ =-    ModifyCacheParameterGroup'-    { _mcpgCacheParameterGroupName = pCacheParameterGroupName_-    , _mcpgParameterNameValues = mempty-    }+  ModifyCacheParameterGroup'+  { _mcpgCacheParameterGroupName = pCacheParameterGroupName_+  , _mcpgParameterNameValues = mempty+  } + -- | The name of the cache parameter group to modify. mcpgCacheParameterGroupName :: Lens' ModifyCacheParameterGroup Text mcpgCacheParameterGroupName = lens _mcpgCacheParameterGroupName (\ s a -> s{_mcpgCacheParameterGroupName = a});@@ -86,9 +88,9 @@           = receiveXMLWrapper "ModifyCacheParameterGroupResult"               (\ s h x -> parseXML x) -instance Hashable ModifyCacheParameterGroup+instance Hashable ModifyCacheParameterGroup where -instance NFData ModifyCacheParameterGroup+instance NFData ModifyCacheParameterGroup where  instance ToHeaders ModifyCacheParameterGroup where         toHeaders = const mempty
gen/Network/AWS/ElastiCache/ModifyCacheSubnetGroup.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.ModifyCacheSubnetGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , mcsgrsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @ModifyCacheSubnetGroup@ operation. --@@ -52,11 +52,12 @@ -- -- /See:/ 'modifyCacheSubnetGroup' smart constructor. data ModifyCacheSubnetGroup = ModifyCacheSubnetGroup'-    { _mcsgSubnetIds                   :: !(Maybe [Text])-    , _mcsgCacheSubnetGroupDescription :: !(Maybe Text)-    , _mcsgCacheSubnetGroupName        :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mcsgSubnetIds                   :: !(Maybe [Text])+  , _mcsgCacheSubnetGroupDescription :: !(Maybe Text)+  , _mcsgCacheSubnetGroupName        :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyCacheSubnetGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -70,12 +71,13 @@     :: Text -- ^ 'mcsgCacheSubnetGroupName'     -> ModifyCacheSubnetGroup modifyCacheSubnetGroup pCacheSubnetGroupName_ =-    ModifyCacheSubnetGroup'-    { _mcsgSubnetIds = Nothing-    , _mcsgCacheSubnetGroupDescription = Nothing-    , _mcsgCacheSubnetGroupName = pCacheSubnetGroupName_-    }+  ModifyCacheSubnetGroup'+  { _mcsgSubnetIds = Nothing+  , _mcsgCacheSubnetGroupDescription = Nothing+  , _mcsgCacheSubnetGroupName = pCacheSubnetGroupName_+  } + -- | The EC2 subnet IDs for the cache subnet group. mcsgSubnetIds :: Lens' ModifyCacheSubnetGroup [Text] mcsgSubnetIds = lens _mcsgSubnetIds (\ s a -> s{_mcsgSubnetIds = a}) . _Default . _Coerce;@@ -98,9 +100,9 @@                  ModifyCacheSubnetGroupResponse' <$>                    (x .@? "CacheSubnetGroup") <*> (pure (fromEnum s))) -instance Hashable ModifyCacheSubnetGroup+instance Hashable ModifyCacheSubnetGroup where -instance NFData ModifyCacheSubnetGroup+instance NFData ModifyCacheSubnetGroup where  instance ToHeaders ModifyCacheSubnetGroup where         toHeaders = const mempty@@ -123,10 +125,11 @@  -- | /See:/ 'modifyCacheSubnetGroupResponse' smart constructor. data ModifyCacheSubnetGroupResponse = ModifyCacheSubnetGroupResponse'-    { _mcsgrsCacheSubnetGroup :: !(Maybe CacheSubnetGroup)-    , _mcsgrsResponseStatus   :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mcsgrsCacheSubnetGroup :: !(Maybe CacheSubnetGroup)+  , _mcsgrsResponseStatus   :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyCacheSubnetGroupResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -138,11 +141,10 @@     :: Int -- ^ 'mcsgrsResponseStatus'     -> ModifyCacheSubnetGroupResponse modifyCacheSubnetGroupResponse pResponseStatus_ =-    ModifyCacheSubnetGroupResponse'-    { _mcsgrsCacheSubnetGroup = Nothing-    , _mcsgrsResponseStatus = pResponseStatus_-    }+  ModifyCacheSubnetGroupResponse'+  {_mcsgrsCacheSubnetGroup = Nothing, _mcsgrsResponseStatus = pResponseStatus_} + -- | Undocumented member. mcsgrsCacheSubnetGroup :: Lens' ModifyCacheSubnetGroupResponse (Maybe CacheSubnetGroup) mcsgrsCacheSubnetGroup = lens _mcsgrsCacheSubnetGroup (\ s a -> s{_mcsgrsCacheSubnetGroup = a});@@ -151,4 +153,4 @@ mcsgrsResponseStatus :: Lens' ModifyCacheSubnetGroupResponse Int mcsgrsResponseStatus = lens _mcsgrsResponseStatus (\ s a -> s{_mcsgrsResponseStatus = a}); -instance NFData ModifyCacheSubnetGroupResponse+instance NFData ModifyCacheSubnetGroupResponse where
gen/Network/AWS/ElastiCache/ModifyReplicationGroup.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.ModifyReplicationGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -40,6 +40,7 @@     , mrgSnapshotWindow     , mrgPrimaryClusterId     , mrgPreferredMaintenanceWindow+    , mrgNodeGroupId     , mrgSnapshotRetentionLimit     , mrgNotificationTopicStatus     , mrgApplyImmediately@@ -55,12 +56,12 @@     , mrgrsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @ModifyReplicationGroups@ operation. --@@ -68,38 +69,40 @@ -- -- /See:/ 'modifyReplicationGroup' smart constructor. data ModifyReplicationGroup = ModifyReplicationGroup'-    { _mrgAutomaticFailoverEnabled    :: !(Maybe Bool)-    , _mrgEngineVersion               :: !(Maybe Text)-    , _mrgCacheNodeType               :: !(Maybe Text)-    , _mrgSnapshottingClusterId       :: !(Maybe Text)-    , _mrgSecurityGroupIds            :: !(Maybe [Text])-    , _mrgAutoMinorVersionUpgrade     :: !(Maybe Bool)-    , _mrgCacheParameterGroupName     :: !(Maybe Text)-    , _mrgReplicationGroupDescription :: !(Maybe Text)-    , _mrgSnapshotWindow              :: !(Maybe Text)-    , _mrgPrimaryClusterId            :: !(Maybe Text)-    , _mrgPreferredMaintenanceWindow  :: !(Maybe Text)-    , _mrgSnapshotRetentionLimit      :: !(Maybe Int)-    , _mrgNotificationTopicStatus     :: !(Maybe Text)-    , _mrgApplyImmediately            :: !(Maybe Bool)-    , _mrgNotificationTopicARN        :: !(Maybe Text)-    , _mrgCacheSecurityGroupNames     :: !(Maybe [Text])-    , _mrgReplicationGroupId          :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mrgAutomaticFailoverEnabled    :: !(Maybe Bool)+  , _mrgEngineVersion               :: !(Maybe Text)+  , _mrgCacheNodeType               :: !(Maybe Text)+  , _mrgSnapshottingClusterId       :: !(Maybe Text)+  , _mrgSecurityGroupIds            :: !(Maybe [Text])+  , _mrgAutoMinorVersionUpgrade     :: !(Maybe Bool)+  , _mrgCacheParameterGroupName     :: !(Maybe Text)+  , _mrgReplicationGroupDescription :: !(Maybe Text)+  , _mrgSnapshotWindow              :: !(Maybe Text)+  , _mrgPrimaryClusterId            :: !(Maybe Text)+  , _mrgPreferredMaintenanceWindow  :: !(Maybe Text)+  , _mrgNodeGroupId                 :: !(Maybe Text)+  , _mrgSnapshotRetentionLimit      :: !(Maybe Int)+  , _mrgNotificationTopicStatus     :: !(Maybe Text)+  , _mrgApplyImmediately            :: !(Maybe Bool)+  , _mrgNotificationTopicARN        :: !(Maybe Text)+  , _mrgCacheSecurityGroupNames     :: !(Maybe [Text])+  , _mrgReplicationGroupId          :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyReplicationGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'mrgAutomaticFailoverEnabled' - Determines whether a read replica is automatically promoted to read/write primary if the existing primary encounters a failure. Valid values: @true@ | @false@+-- * 'mrgAutomaticFailoverEnabled' - Determines whether a read replica is automatically promoted to read/write primary if the existing primary encounters a failure. Valid values: @true@ | @false@  Amazon ElastiCache for Redis does not support Multi-AZ with automatic failover on:     * Redis versions earlier than 2.8.6.     * Redis (cluster mode disabled): T1 and T2 cache node types.     * Redis (cluster mode enabled): T1 node types. ----- * 'mrgEngineVersion' - The upgraded version of the cache engine to be run on the cache clusters in the replication group. __Important:__ You can upgrade to a newer engine version (see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SelectEngine.html#VersionManagement Selecting a Cache Engine and Version> ), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing replication group and create it anew with the earlier engine version.+-- * 'mrgEngineVersion' - The upgraded version of the cache engine to be run on the clusters in the replication group. __Important:__ You can upgrade to a newer engine version (see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SelectEngine.html#VersionManagement Selecting a Cache Engine and Version> ), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing replication group and create it anew with the earlier engine version. -- -- * 'mrgCacheNodeType' - A valid cache node type that you want to scale this replication group to. ----- * 'mrgSnapshottingClusterId' - The cache cluster ID that is used as the daily snapshot source for the replication group. This parameter cannot be set for Redis (cluster mode enabled) replication groups.+-- * 'mrgSnapshottingClusterId' - The cluster ID that is used as the daily snapshot source for the replication group. This parameter cannot be set for Redis (cluster mode enabled) replication groups. ----- * 'mrgSecurityGroupIds' - Specifies the VPC Security Groups associated with the cache clusters in the replication group. This parameter can be used only with replication group containing cache clusters running in an Amazon Virtual Private Cloud (Amazon VPC).+-- * 'mrgSecurityGroupIds' - Specifies the VPC Security Groups associated with the clusters in the replication group. This parameter can be used only with replication group containing clusters running in an Amazon Virtual Private Cloud (Amazon VPC). -- -- * 'mrgAutoMinorVersionUpgrade' - This parameter is currently disabled. --@@ -113,6 +116,8 @@ -- -- * 'mrgPreferredMaintenanceWindow' - Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are:     * @sun@      * @mon@      * @tue@      * @wed@      * @thu@      * @fri@      * @sat@  Example: @sun:23:00-mon:01:30@ --+-- * 'mrgNodeGroupId' - The name of the Node Group (called shard in the console).+-- -- * 'mrgSnapshotRetentionLimit' - The number of days for which ElastiCache retains automatic node group (shard) snapshots before deleting them. For example, if you set @SnapshotRetentionLimit@ to 5, a snapshot that was taken today is retained for 5 days before being deleted. __Important__ If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. -- -- * 'mrgNotificationTopicStatus' - The status of the Amazon SNS notification topic for the replication group. Notifications are sent only if the status is @active@ . Valid values: @active@ | @inactive@@@ -121,38 +126,40 @@ -- -- * 'mrgNotificationTopicARN' - The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications are sent. ----- * 'mrgCacheSecurityGroupNames' - A list of cache security group names to authorize for the clusters in this replication group. This change is asynchronously applied as soon as possible. This parameter can be used only with replication group containing cache clusters running outside of an Amazon Virtual Private Cloud (Amazon VPC). Constraints: Must contain no more than 255 alphanumeric characters. Must not be @Default@ .+-- * 'mrgCacheSecurityGroupNames' - A list of cache security group names to authorize for the clusters in this replication group. This change is asynchronously applied as soon as possible. This parameter can be used only with replication group containing clusters running outside of an Amazon Virtual Private Cloud (Amazon VPC). Constraints: Must contain no more than 255 alphanumeric characters. Must not be @Default@ . -- -- * 'mrgReplicationGroupId' - The identifier of the replication group to modify. modifyReplicationGroup     :: Text -- ^ 'mrgReplicationGroupId'     -> ModifyReplicationGroup modifyReplicationGroup pReplicationGroupId_ =-    ModifyReplicationGroup'-    { _mrgAutomaticFailoverEnabled = Nothing-    , _mrgEngineVersion = Nothing-    , _mrgCacheNodeType = Nothing-    , _mrgSnapshottingClusterId = Nothing-    , _mrgSecurityGroupIds = Nothing-    , _mrgAutoMinorVersionUpgrade = Nothing-    , _mrgCacheParameterGroupName = Nothing-    , _mrgReplicationGroupDescription = Nothing-    , _mrgSnapshotWindow = Nothing-    , _mrgPrimaryClusterId = Nothing-    , _mrgPreferredMaintenanceWindow = Nothing-    , _mrgSnapshotRetentionLimit = Nothing-    , _mrgNotificationTopicStatus = Nothing-    , _mrgApplyImmediately = Nothing-    , _mrgNotificationTopicARN = Nothing-    , _mrgCacheSecurityGroupNames = Nothing-    , _mrgReplicationGroupId = pReplicationGroupId_-    }+  ModifyReplicationGroup'+  { _mrgAutomaticFailoverEnabled = Nothing+  , _mrgEngineVersion = Nothing+  , _mrgCacheNodeType = Nothing+  , _mrgSnapshottingClusterId = Nothing+  , _mrgSecurityGroupIds = Nothing+  , _mrgAutoMinorVersionUpgrade = Nothing+  , _mrgCacheParameterGroupName = Nothing+  , _mrgReplicationGroupDescription = Nothing+  , _mrgSnapshotWindow = Nothing+  , _mrgPrimaryClusterId = Nothing+  , _mrgPreferredMaintenanceWindow = Nothing+  , _mrgNodeGroupId = Nothing+  , _mrgSnapshotRetentionLimit = Nothing+  , _mrgNotificationTopicStatus = Nothing+  , _mrgApplyImmediately = Nothing+  , _mrgNotificationTopicARN = Nothing+  , _mrgCacheSecurityGroupNames = Nothing+  , _mrgReplicationGroupId = pReplicationGroupId_+  } --- | Determines whether a read replica is automatically promoted to read/write primary if the existing primary encounters a failure. Valid values: @true@ | @false@++-- | Determines whether a read replica is automatically promoted to read/write primary if the existing primary encounters a failure. Valid values: @true@ | @false@  Amazon ElastiCache for Redis does not support Multi-AZ with automatic failover on:     * Redis versions earlier than 2.8.6.     * Redis (cluster mode disabled): T1 and T2 cache node types.     * Redis (cluster mode enabled): T1 node types. mrgAutomaticFailoverEnabled :: Lens' ModifyReplicationGroup (Maybe Bool) mrgAutomaticFailoverEnabled = lens _mrgAutomaticFailoverEnabled (\ s a -> s{_mrgAutomaticFailoverEnabled = a}); --- | The upgraded version of the cache engine to be run on the cache clusters in the replication group. __Important:__ You can upgrade to a newer engine version (see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SelectEngine.html#VersionManagement Selecting a Cache Engine and Version> ), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing replication group and create it anew with the earlier engine version.+-- | The upgraded version of the cache engine to be run on the clusters in the replication group. __Important:__ You can upgrade to a newer engine version (see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/SelectEngine.html#VersionManagement Selecting a Cache Engine and Version> ), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing replication group and create it anew with the earlier engine version. mrgEngineVersion :: Lens' ModifyReplicationGroup (Maybe Text) mrgEngineVersion = lens _mrgEngineVersion (\ s a -> s{_mrgEngineVersion = a}); @@ -160,11 +167,11 @@ mrgCacheNodeType :: Lens' ModifyReplicationGroup (Maybe Text) mrgCacheNodeType = lens _mrgCacheNodeType (\ s a -> s{_mrgCacheNodeType = a}); --- | The cache cluster ID that is used as the daily snapshot source for the replication group. This parameter cannot be set for Redis (cluster mode enabled) replication groups.+-- | The cluster ID that is used as the daily snapshot source for the replication group. This parameter cannot be set for Redis (cluster mode enabled) replication groups. mrgSnapshottingClusterId :: Lens' ModifyReplicationGroup (Maybe Text) mrgSnapshottingClusterId = lens _mrgSnapshottingClusterId (\ s a -> s{_mrgSnapshottingClusterId = a}); --- | Specifies the VPC Security Groups associated with the cache clusters in the replication group. This parameter can be used only with replication group containing cache clusters running in an Amazon Virtual Private Cloud (Amazon VPC).+-- | Specifies the VPC Security Groups associated with the clusters in the replication group. This parameter can be used only with replication group containing clusters running in an Amazon Virtual Private Cloud (Amazon VPC). mrgSecurityGroupIds :: Lens' ModifyReplicationGroup [Text] mrgSecurityGroupIds = lens _mrgSecurityGroupIds (\ s a -> s{_mrgSecurityGroupIds = a}) . _Default . _Coerce; @@ -192,6 +199,10 @@ mrgPreferredMaintenanceWindow :: Lens' ModifyReplicationGroup (Maybe Text) mrgPreferredMaintenanceWindow = lens _mrgPreferredMaintenanceWindow (\ s a -> s{_mrgPreferredMaintenanceWindow = a}); +-- | The name of the Node Group (called shard in the console).+mrgNodeGroupId :: Lens' ModifyReplicationGroup (Maybe Text)+mrgNodeGroupId = lens _mrgNodeGroupId (\ s a -> s{_mrgNodeGroupId = a});+ -- | The number of days for which ElastiCache retains automatic node group (shard) snapshots before deleting them. For example, if you set @SnapshotRetentionLimit@ to 5, a snapshot that was taken today is retained for 5 days before being deleted. __Important__ If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. mrgSnapshotRetentionLimit :: Lens' ModifyReplicationGroup (Maybe Int) mrgSnapshotRetentionLimit = lens _mrgSnapshotRetentionLimit (\ s a -> s{_mrgSnapshotRetentionLimit = a});@@ -208,7 +219,7 @@ mrgNotificationTopicARN :: Lens' ModifyReplicationGroup (Maybe Text) mrgNotificationTopicARN = lens _mrgNotificationTopicARN (\ s a -> s{_mrgNotificationTopicARN = a}); --- | A list of cache security group names to authorize for the clusters in this replication group. This change is asynchronously applied as soon as possible. This parameter can be used only with replication group containing cache clusters running outside of an Amazon Virtual Private Cloud (Amazon VPC). Constraints: Must contain no more than 255 alphanumeric characters. Must not be @Default@ .+-- | A list of cache security group names to authorize for the clusters in this replication group. This change is asynchronously applied as soon as possible. This parameter can be used only with replication group containing clusters running outside of an Amazon Virtual Private Cloud (Amazon VPC). Constraints: Must contain no more than 255 alphanumeric characters. Must not be @Default@ . mrgCacheSecurityGroupNames :: Lens' ModifyReplicationGroup [Text] mrgCacheSecurityGroupNames = lens _mrgCacheSecurityGroupNames (\ s a -> s{_mrgCacheSecurityGroupNames = a}) . _Default . _Coerce; @@ -226,9 +237,9 @@                  ModifyReplicationGroupResponse' <$>                    (x .@? "ReplicationGroup") <*> (pure (fromEnum s))) -instance Hashable ModifyReplicationGroup+instance Hashable ModifyReplicationGroup where -instance NFData ModifyReplicationGroup+instance NFData ModifyReplicationGroup where  instance ToHeaders ModifyReplicationGroup where         toHeaders = const mempty@@ -261,6 +272,7 @@                "PrimaryClusterId" =: _mrgPrimaryClusterId,                "PreferredMaintenanceWindow" =:                  _mrgPreferredMaintenanceWindow,+               "NodeGroupId" =: _mrgNodeGroupId,                "SnapshotRetentionLimit" =:                  _mrgSnapshotRetentionLimit,                "NotificationTopicStatus" =:@@ -275,10 +287,11 @@  -- | /See:/ 'modifyReplicationGroupResponse' smart constructor. data ModifyReplicationGroupResponse = ModifyReplicationGroupResponse'-    { _mrgrsReplicationGroup :: !(Maybe ReplicationGroup)-    , _mrgrsResponseStatus   :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mrgrsReplicationGroup :: !(Maybe ReplicationGroup)+  , _mrgrsResponseStatus   :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyReplicationGroupResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -290,11 +303,10 @@     :: Int -- ^ 'mrgrsResponseStatus'     -> ModifyReplicationGroupResponse modifyReplicationGroupResponse pResponseStatus_ =-    ModifyReplicationGroupResponse'-    { _mrgrsReplicationGroup = Nothing-    , _mrgrsResponseStatus = pResponseStatus_-    }+  ModifyReplicationGroupResponse'+  {_mrgrsReplicationGroup = Nothing, _mrgrsResponseStatus = pResponseStatus_} + -- | Undocumented member. mrgrsReplicationGroup :: Lens' ModifyReplicationGroupResponse (Maybe ReplicationGroup) mrgrsReplicationGroup = lens _mrgrsReplicationGroup (\ s a -> s{_mrgrsReplicationGroup = a});@@ -303,4 +315,4 @@ mrgrsResponseStatus :: Lens' ModifyReplicationGroupResponse Int mrgrsResponseStatus = lens _mrgrsResponseStatus (\ s a -> s{_mrgrsResponseStatus = a}); -instance NFData ModifyReplicationGroupResponse+instance NFData ModifyReplicationGroupResponse where
+ gen/Network/AWS/ElastiCache/ModifyReplicationGroupShardConfiguration.hs view
@@ -0,0 +1,201 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Performs horizontal scaling on a Redis (cluster mode enabled) cluster with no downtime. Requires Redis engine version 3.2.10 or newer. For information on upgrading your engine to a newer version, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/VersionManagement.html Upgrading Engine Versions> in the Amazon ElastiCache User Guide.+--+--+-- For more information on ElastiCache for Redis online horizontal scaling, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/redis-cluster-resharding-online.html ElastiCache for Redis Horizontal Scaling>+--+module Network.AWS.ElastiCache.ModifyReplicationGroupShardConfiguration+    (+    -- * Creating a Request+      modifyReplicationGroupShardConfiguration+    , ModifyReplicationGroupShardConfiguration+    -- * Request Lenses+    , mrgscReshardingConfiguration+    , mrgscNodeGroupsToRemove+    , mrgscReplicationGroupId+    , mrgscNodeGroupCount+    , mrgscApplyImmediately++    -- * Destructuring the Response+    , modifyReplicationGroupShardConfigurationResponse+    , ModifyReplicationGroupShardConfigurationResponse+    -- * Response Lenses+    , mrgscrsReplicationGroup+    , mrgscrsResponseStatus+    ) where++import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | Represents the input for a @ModifyReplicationGroupShardConfiguration@ operation.+--+--+--+-- /See:/ 'modifyReplicationGroupShardConfiguration' smart constructor.+data ModifyReplicationGroupShardConfiguration = ModifyReplicationGroupShardConfiguration'+  { _mrgscReshardingConfiguration :: !(Maybe [ReshardingConfiguration])+  , _mrgscNodeGroupsToRemove      :: !(Maybe [Text])+  , _mrgscReplicationGroupId      :: !Text+  , _mrgscNodeGroupCount          :: !Int+  , _mrgscApplyImmediately        :: !Bool+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ModifyReplicationGroupShardConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mrgscReshardingConfiguration' - Specifies the preferred availability zones for each node group in the cluster. If the value of @NodeGroupCount@ is greater than the current number of node groups (shards), you can use this parameter to specify the preferred availability zones of the cluster's shards. If you omit this parameter ElastiCache selects availability zones for you. You can specify this parameter only if the value of @NodeGroupCount@ is greater than the current number of node groups (shards).+--+-- * 'mrgscNodeGroupsToRemove' - If the value of @NodeGroupCount@ is less than the current number of node groups (shards), @NodeGroupsToRemove@ is a required list of node group ids to remove from the cluster.+--+-- * 'mrgscReplicationGroupId' - The name of the Redis (cluster mode enabled) cluster (replication group) on which the shards are to be configured.+--+-- * 'mrgscNodeGroupCount' - The number of node groups (shards) that results from the modification of the shard configuration.+--+-- * 'mrgscApplyImmediately' - Indicates that the shard reconfiguration process begins immediately. At present, the only permitted value for this parameter is @true@ . Value: true+modifyReplicationGroupShardConfiguration+    :: Text -- ^ 'mrgscReplicationGroupId'+    -> Int -- ^ 'mrgscNodeGroupCount'+    -> Bool -- ^ 'mrgscApplyImmediately'+    -> ModifyReplicationGroupShardConfiguration+modifyReplicationGroupShardConfiguration pReplicationGroupId_ pNodeGroupCount_ pApplyImmediately_ =+  ModifyReplicationGroupShardConfiguration'+  { _mrgscReshardingConfiguration = Nothing+  , _mrgscNodeGroupsToRemove = Nothing+  , _mrgscReplicationGroupId = pReplicationGroupId_+  , _mrgscNodeGroupCount = pNodeGroupCount_+  , _mrgscApplyImmediately = pApplyImmediately_+  }+++-- | Specifies the preferred availability zones for each node group in the cluster. If the value of @NodeGroupCount@ is greater than the current number of node groups (shards), you can use this parameter to specify the preferred availability zones of the cluster's shards. If you omit this parameter ElastiCache selects availability zones for you. You can specify this parameter only if the value of @NodeGroupCount@ is greater than the current number of node groups (shards).+mrgscReshardingConfiguration :: Lens' ModifyReplicationGroupShardConfiguration [ReshardingConfiguration]+mrgscReshardingConfiguration = lens _mrgscReshardingConfiguration (\ s a -> s{_mrgscReshardingConfiguration = a}) . _Default . _Coerce;++-- | If the value of @NodeGroupCount@ is less than the current number of node groups (shards), @NodeGroupsToRemove@ is a required list of node group ids to remove from the cluster.+mrgscNodeGroupsToRemove :: Lens' ModifyReplicationGroupShardConfiguration [Text]+mrgscNodeGroupsToRemove = lens _mrgscNodeGroupsToRemove (\ s a -> s{_mrgscNodeGroupsToRemove = a}) . _Default . _Coerce;++-- | The name of the Redis (cluster mode enabled) cluster (replication group) on which the shards are to be configured.+mrgscReplicationGroupId :: Lens' ModifyReplicationGroupShardConfiguration Text+mrgscReplicationGroupId = lens _mrgscReplicationGroupId (\ s a -> s{_mrgscReplicationGroupId = a});++-- | The number of node groups (shards) that results from the modification of the shard configuration.+mrgscNodeGroupCount :: Lens' ModifyReplicationGroupShardConfiguration Int+mrgscNodeGroupCount = lens _mrgscNodeGroupCount (\ s a -> s{_mrgscNodeGroupCount = a});++-- | Indicates that the shard reconfiguration process begins immediately. At present, the only permitted value for this parameter is @true@ . Value: true+mrgscApplyImmediately :: Lens' ModifyReplicationGroupShardConfiguration Bool+mrgscApplyImmediately = lens _mrgscApplyImmediately (\ s a -> s{_mrgscApplyImmediately = a});++instance AWSRequest+           ModifyReplicationGroupShardConfiguration+         where+        type Rs ModifyReplicationGroupShardConfiguration =+             ModifyReplicationGroupShardConfigurationResponse+        request = postQuery elastiCache+        response+          = receiveXMLWrapper+              "ModifyReplicationGroupShardConfigurationResult"+              (\ s h x ->+                 ModifyReplicationGroupShardConfigurationResponse' <$>+                   (x .@? "ReplicationGroup") <*> (pure (fromEnum s)))++instance Hashable+           ModifyReplicationGroupShardConfiguration+         where++instance NFData+           ModifyReplicationGroupShardConfiguration+         where++instance ToHeaders+           ModifyReplicationGroupShardConfiguration+         where+        toHeaders = const mempty++instance ToPath+           ModifyReplicationGroupShardConfiguration+         where+        toPath = const "/"++instance ToQuery+           ModifyReplicationGroupShardConfiguration+         where+        toQuery ModifyReplicationGroupShardConfiguration'{..}+          = mconcat+              ["Action" =:+                 ("ModifyReplicationGroupShardConfiguration" ::+                    ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "ReshardingConfiguration" =:+                 toQuery+                   (toQueryList "ReshardingConfiguration" <$>+                      _mrgscReshardingConfiguration),+               "NodeGroupsToRemove" =:+                 toQuery+                   (toQueryList "NodeGroupToRemove" <$>+                      _mrgscNodeGroupsToRemove),+               "ReplicationGroupId" =: _mrgscReplicationGroupId,+               "NodeGroupCount" =: _mrgscNodeGroupCount,+               "ApplyImmediately" =: _mrgscApplyImmediately]++-- | /See:/ 'modifyReplicationGroupShardConfigurationResponse' smart constructor.+data ModifyReplicationGroupShardConfigurationResponse = ModifyReplicationGroupShardConfigurationResponse'+  { _mrgscrsReplicationGroup :: !(Maybe ReplicationGroup)+  , _mrgscrsResponseStatus   :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ModifyReplicationGroupShardConfigurationResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mrgscrsReplicationGroup' - Undocumented member.+--+-- * 'mrgscrsResponseStatus' - -- | The response status code.+modifyReplicationGroupShardConfigurationResponse+    :: Int -- ^ 'mrgscrsResponseStatus'+    -> ModifyReplicationGroupShardConfigurationResponse+modifyReplicationGroupShardConfigurationResponse pResponseStatus_ =+  ModifyReplicationGroupShardConfigurationResponse'+  { _mrgscrsReplicationGroup = Nothing+  , _mrgscrsResponseStatus = pResponseStatus_+  }+++-- | Undocumented member.+mrgscrsReplicationGroup :: Lens' ModifyReplicationGroupShardConfigurationResponse (Maybe ReplicationGroup)+mrgscrsReplicationGroup = lens _mrgscrsReplicationGroup (\ s a -> s{_mrgscrsReplicationGroup = a});++-- | -- | The response status code.+mrgscrsResponseStatus :: Lens' ModifyReplicationGroupShardConfigurationResponse Int+mrgscrsResponseStatus = lens _mrgscrsResponseStatus (\ s a -> s{_mrgscrsResponseStatus = a});++instance NFData+           ModifyReplicationGroupShardConfigurationResponse+         where
gen/Network/AWS/ElastiCache/PurchaseReservedCacheNodesOffering.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , prcnorsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @PurchaseReservedCacheNodesOffering@ operation. --@@ -52,11 +52,12 @@ -- -- /See:/ 'purchaseReservedCacheNodesOffering' smart constructor. data PurchaseReservedCacheNodesOffering = PurchaseReservedCacheNodesOffering'-    { _prcnoCacheNodeCount               :: !(Maybe Int)-    , _prcnoReservedCacheNodeId          :: !(Maybe Text)-    , _prcnoReservedCacheNodesOfferingId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _prcnoCacheNodeCount               :: !(Maybe Int)+  , _prcnoReservedCacheNodeId          :: !(Maybe Text)+  , _prcnoReservedCacheNodesOfferingId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'PurchaseReservedCacheNodesOffering' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -70,12 +71,13 @@     :: Text -- ^ 'prcnoReservedCacheNodesOfferingId'     -> PurchaseReservedCacheNodesOffering purchaseReservedCacheNodesOffering pReservedCacheNodesOfferingId_ =-    PurchaseReservedCacheNodesOffering'-    { _prcnoCacheNodeCount = Nothing-    , _prcnoReservedCacheNodeId = Nothing-    , _prcnoReservedCacheNodesOfferingId = pReservedCacheNodesOfferingId_-    }+  PurchaseReservedCacheNodesOffering'+  { _prcnoCacheNodeCount = Nothing+  , _prcnoReservedCacheNodeId = Nothing+  , _prcnoReservedCacheNodesOfferingId = pReservedCacheNodesOfferingId_+  } + -- | The number of cache node instances to reserve. Default: @1@ prcnoCacheNodeCount :: Lens' PurchaseReservedCacheNodesOffering (Maybe Int) prcnoCacheNodeCount = lens _prcnoCacheNodeCount (\ s a -> s{_prcnoCacheNodeCount = a});@@ -89,7 +91,8 @@ prcnoReservedCacheNodesOfferingId = lens _prcnoReservedCacheNodesOfferingId (\ s a -> s{_prcnoReservedCacheNodesOfferingId = a});  instance AWSRequest-         PurchaseReservedCacheNodesOffering where+           PurchaseReservedCacheNodesOffering+         where         type Rs PurchaseReservedCacheNodesOffering =              PurchaseReservedCacheNodesOfferingResponse         request = postQuery elastiCache@@ -101,8 +104,10 @@                    (x .@? "ReservedCacheNode") <*> (pure (fromEnum s)))  instance Hashable PurchaseReservedCacheNodesOffering+         where  instance NFData PurchaseReservedCacheNodesOffering+         where  instance ToHeaders PurchaseReservedCacheNodesOffering          where@@ -126,10 +131,11 @@  -- | /See:/ 'purchaseReservedCacheNodesOfferingResponse' smart constructor. data PurchaseReservedCacheNodesOfferingResponse = PurchaseReservedCacheNodesOfferingResponse'-    { _prcnorsReservedCacheNode :: !(Maybe ReservedCacheNode)-    , _prcnorsResponseStatus    :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _prcnorsReservedCacheNode :: !(Maybe ReservedCacheNode)+  , _prcnorsResponseStatus    :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'PurchaseReservedCacheNodesOfferingResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -141,11 +147,12 @@     :: Int -- ^ 'prcnorsResponseStatus'     -> PurchaseReservedCacheNodesOfferingResponse purchaseReservedCacheNodesOfferingResponse pResponseStatus_ =-    PurchaseReservedCacheNodesOfferingResponse'-    { _prcnorsReservedCacheNode = Nothing-    , _prcnorsResponseStatus = pResponseStatus_-    }+  PurchaseReservedCacheNodesOfferingResponse'+  { _prcnorsReservedCacheNode = Nothing+  , _prcnorsResponseStatus = pResponseStatus_+  } + -- | Undocumented member. prcnorsReservedCacheNode :: Lens' PurchaseReservedCacheNodesOfferingResponse (Maybe ReservedCacheNode) prcnorsReservedCacheNode = lens _prcnorsReservedCacheNode (\ s a -> s{_prcnorsReservedCacheNode = a});@@ -155,4 +162,5 @@ prcnorsResponseStatus = lens _prcnorsResponseStatus (\ s a -> s{_prcnorsResponseStatus = a});  instance NFData-         PurchaseReservedCacheNodesOfferingResponse+           PurchaseReservedCacheNodesOfferingResponse+         where
gen/Network/AWS/ElastiCache/RebootCacheCluster.hs view
@@ -12,19 +12,23 @@  -- | -- Module      : Network.AWS.ElastiCache.RebootCacheCluster--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Reboots some, or all, of the cache nodes within a provisioned cache cluster. This operation applies any modified cache parameter groups to the cache cluster. The reboot operation takes place as soon as possible, and results in a momentary outage to the cache cluster. During the reboot, the cache cluster status is set to REBOOTING.+-- Reboots some, or all, of the cache nodes within a provisioned cluster. This operation applies any modified cache parameter groups to the cluster. The reboot operation takes place as soon as possible, and results in a momentary outage to the cluster. During the reboot, the cluster status is set to REBOOTING. -- -- -- The reboot causes the contents of the cache (for each cache node being rebooted) to be lost. ----- When the reboot is complete, a cache cluster event is created.+-- When the reboot is complete, a cluster event is created. --+-- Rebooting a cluster is currently supported on Memcached and Redis (cluster mode disabled) clusters. Rebooting is not supported on Redis (cluster mode enabled) clusters.+--+-- If you make changes to parameters that require a Redis (cluster mode enabled) cluster reboot for the changes to be applied, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Clusters.Rebooting.htm Rebooting a Cluster> for an alternate process.+-- module Network.AWS.ElastiCache.RebootCacheCluster     (     -- * Creating a Request@@ -42,12 +46,12 @@     , rccrsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @RebootCacheCluster@ operation. --@@ -55,31 +59,31 @@ -- -- /See:/ 'rebootCacheCluster' smart constructor. data RebootCacheCluster = RebootCacheCluster'-    { _rccCacheClusterId       :: !Text-    , _rccCacheNodeIdsToReboot :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rccCacheClusterId       :: !Text+  , _rccCacheNodeIdsToReboot :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RebootCacheCluster' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'rccCacheClusterId' - The cache cluster identifier. This parameter is stored as a lowercase string.+-- * 'rccCacheClusterId' - The cluster identifier. This parameter is stored as a lowercase string. ----- * 'rccCacheNodeIdsToReboot' - A list of cache node IDs to reboot. A node ID is a numeric identifier (0001, 0002, etc.). To reboot an entire cache cluster, specify all of the cache node IDs.+-- * 'rccCacheNodeIdsToReboot' - A list of cache node IDs to reboot. A node ID is a numeric identifier (0001, 0002, etc.). To reboot an entire cluster, specify all of the cache node IDs. rebootCacheCluster     :: Text -- ^ 'rccCacheClusterId'     -> RebootCacheCluster rebootCacheCluster pCacheClusterId_ =-    RebootCacheCluster'-    { _rccCacheClusterId = pCacheClusterId_-    , _rccCacheNodeIdsToReboot = mempty-    }+  RebootCacheCluster'+  {_rccCacheClusterId = pCacheClusterId_, _rccCacheNodeIdsToReboot = mempty} --- | The cache cluster identifier. This parameter is stored as a lowercase string.++-- | The cluster identifier. This parameter is stored as a lowercase string. rccCacheClusterId :: Lens' RebootCacheCluster Text rccCacheClusterId = lens _rccCacheClusterId (\ s a -> s{_rccCacheClusterId = a}); --- | A list of cache node IDs to reboot. A node ID is a numeric identifier (0001, 0002, etc.). To reboot an entire cache cluster, specify all of the cache node IDs.+-- | A list of cache node IDs to reboot. A node ID is a numeric identifier (0001, 0002, etc.). To reboot an entire cluster, specify all of the cache node IDs. rccCacheNodeIdsToReboot :: Lens' RebootCacheCluster [Text] rccCacheNodeIdsToReboot = lens _rccCacheNodeIdsToReboot (\ s a -> s{_rccCacheNodeIdsToReboot = a}) . _Coerce; @@ -93,9 +97,9 @@                  RebootCacheClusterResponse' <$>                    (x .@? "CacheCluster") <*> (pure (fromEnum s))) -instance Hashable RebootCacheCluster+instance Hashable RebootCacheCluster where -instance NFData RebootCacheCluster+instance NFData RebootCacheCluster where  instance ToHeaders RebootCacheCluster where         toHeaders = const mempty@@ -114,10 +118,11 @@  -- | /See:/ 'rebootCacheClusterResponse' smart constructor. data RebootCacheClusterResponse = RebootCacheClusterResponse'-    { _rccrsCacheCluster   :: !(Maybe CacheCluster)-    , _rccrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rccrsCacheCluster   :: !(Maybe CacheCluster)+  , _rccrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RebootCacheClusterResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -129,11 +134,10 @@     :: Int -- ^ 'rccrsResponseStatus'     -> RebootCacheClusterResponse rebootCacheClusterResponse pResponseStatus_ =-    RebootCacheClusterResponse'-    { _rccrsCacheCluster = Nothing-    , _rccrsResponseStatus = pResponseStatus_-    }+  RebootCacheClusterResponse'+  {_rccrsCacheCluster = Nothing, _rccrsResponseStatus = pResponseStatus_} + -- | Undocumented member. rccrsCacheCluster :: Lens' RebootCacheClusterResponse (Maybe CacheCluster) rccrsCacheCluster = lens _rccrsCacheCluster (\ s a -> s{_rccrsCacheCluster = a});@@ -142,4 +146,4 @@ rccrsResponseStatus :: Lens' RebootCacheClusterResponse Int rccrsResponseStatus = lens _rccrsResponseStatus (\ s a -> s{_rccrsResponseStatus = a}); -instance NFData RebootCacheClusterResponse+instance NFData RebootCacheClusterResponse where
gen/Network/AWS/ElastiCache/RemoveTagsFromResource.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.RemoveTagsFromResource--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,12 +37,12 @@     , tlmTagList     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @RemoveTagsFromResource@ operation. --@@ -50,10 +50,11 @@ -- -- /See:/ 'removeTagsFromResource' smart constructor. data RemoveTagsFromResource = RemoveTagsFromResource'-    { _rtfrResourceName :: !Text-    , _rtfrTagKeys      :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rtfrResourceName :: !Text+  , _rtfrTagKeys      :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RemoveTagsFromResource' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -65,11 +66,10 @@     :: Text -- ^ 'rtfrResourceName'     -> RemoveTagsFromResource removeTagsFromResource pResourceName_ =-    RemoveTagsFromResource'-    { _rtfrResourceName = pResourceName_-    , _rtfrTagKeys = mempty-    }+  RemoveTagsFromResource'+  {_rtfrResourceName = pResourceName_, _rtfrTagKeys = mempty} + -- | The Amazon Resource Name (ARN) of the resource from which you want the tags removed, for example @arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster@ or @arn:aws:elasticache:us-west-2:0123456789:snapshot:mySnapshot@ . For more information about ARNs, see <http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs) and AWS Service Namespaces> . rtfrResourceName :: Lens' RemoveTagsFromResource Text rtfrResourceName = lens _rtfrResourceName (\ s a -> s{_rtfrResourceName = a});@@ -85,9 +85,9 @@           = receiveXMLWrapper "RemoveTagsFromResourceResult"               (\ s h x -> parseXML x) -instance Hashable RemoveTagsFromResource+instance Hashable RemoveTagsFromResource where -instance NFData RemoveTagsFromResource+instance NFData RemoveTagsFromResource where  instance ToHeaders RemoveTagsFromResource where         toHeaders = const mempty
gen/Network/AWS/ElastiCache/ResetCacheParameterGroup.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.ResetCacheParameterGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -38,12 +38,12 @@     , cpgnmCacheParameterGroupName     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @ResetCacheParameterGroup@ operation. --@@ -51,11 +51,12 @@ -- -- /See:/ 'resetCacheParameterGroup' smart constructor. data ResetCacheParameterGroup = ResetCacheParameterGroup'-    { _rcpgResetAllParameters      :: !(Maybe Bool)-    , _rcpgParameterNameValues     :: !(Maybe [ParameterNameValue])-    , _rcpgCacheParameterGroupName :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rcpgResetAllParameters      :: !(Maybe Bool)+  , _rcpgParameterNameValues     :: !(Maybe [ParameterNameValue])+  , _rcpgCacheParameterGroupName :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResetCacheParameterGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -69,12 +70,13 @@     :: Text -- ^ 'rcpgCacheParameterGroupName'     -> ResetCacheParameterGroup resetCacheParameterGroup pCacheParameterGroupName_ =-    ResetCacheParameterGroup'-    { _rcpgResetAllParameters = Nothing-    , _rcpgParameterNameValues = Nothing-    , _rcpgCacheParameterGroupName = pCacheParameterGroupName_-    }+  ResetCacheParameterGroup'+  { _rcpgResetAllParameters = Nothing+  , _rcpgParameterNameValues = Nothing+  , _rcpgCacheParameterGroupName = pCacheParameterGroupName_+  } + -- | If @true@ , all parameters in the cache parameter group are reset to their default values. If @false@ , only the parameters listed by @ParameterNameValues@ are reset to their default values. Valid values: @true@ | @false@ rcpgResetAllParameters :: Lens' ResetCacheParameterGroup (Maybe Bool) rcpgResetAllParameters = lens _rcpgResetAllParameters (\ s a -> s{_rcpgResetAllParameters = a});@@ -95,9 +97,9 @@           = receiveXMLWrapper "ResetCacheParameterGroupResult"               (\ s h x -> parseXML x) -instance Hashable ResetCacheParameterGroup+instance Hashable ResetCacheParameterGroup where -instance NFData ResetCacheParameterGroup+instance NFData ResetCacheParameterGroup where  instance ToHeaders ResetCacheParameterGroup where         toHeaders = const mempty
gen/Network/AWS/ElastiCache/RevokeCacheSecurityGroupIngress.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , rcsgirsResponseStatus     ) where -import           Network.AWS.ElastiCache.Types-import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Represents the input of a @RevokeCacheSecurityGroupIngress@ operation. --@@ -52,11 +52,12 @@ -- -- /See:/ 'revokeCacheSecurityGroupIngress' smart constructor. data RevokeCacheSecurityGroupIngress = RevokeCacheSecurityGroupIngress'-    { _rcsgiCacheSecurityGroupName  :: !Text-    , _rcsgiEC2SecurityGroupName    :: !Text-    , _rcsgiEC2SecurityGroupOwnerId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rcsgiCacheSecurityGroupName  :: !Text+  , _rcsgiEC2SecurityGroupName    :: !Text+  , _rcsgiEC2SecurityGroupOwnerId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RevokeCacheSecurityGroupIngress' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,12 +73,13 @@     -> Text -- ^ 'rcsgiEC2SecurityGroupOwnerId'     -> RevokeCacheSecurityGroupIngress revokeCacheSecurityGroupIngress pCacheSecurityGroupName_ pEC2SecurityGroupName_ pEC2SecurityGroupOwnerId_ =-    RevokeCacheSecurityGroupIngress'-    { _rcsgiCacheSecurityGroupName = pCacheSecurityGroupName_-    , _rcsgiEC2SecurityGroupName = pEC2SecurityGroupName_-    , _rcsgiEC2SecurityGroupOwnerId = pEC2SecurityGroupOwnerId_-    }+  RevokeCacheSecurityGroupIngress'+  { _rcsgiCacheSecurityGroupName = pCacheSecurityGroupName_+  , _rcsgiEC2SecurityGroupName = pEC2SecurityGroupName_+  , _rcsgiEC2SecurityGroupOwnerId = pEC2SecurityGroupOwnerId_+  } + -- | The name of the cache security group to revoke ingress from. rcsgiCacheSecurityGroupName :: Lens' RevokeCacheSecurityGroupIngress Text rcsgiCacheSecurityGroupName = lens _rcsgiCacheSecurityGroupName (\ s a -> s{_rcsgiCacheSecurityGroupName = a});@@ -103,8 +105,9 @@                    (x .@? "CacheSecurityGroup") <*> (pure (fromEnum s)))  instance Hashable RevokeCacheSecurityGroupIngress+         where -instance NFData RevokeCacheSecurityGroupIngress+instance NFData RevokeCacheSecurityGroupIngress where  instance ToHeaders RevokeCacheSecurityGroupIngress          where@@ -128,10 +131,11 @@  -- | /See:/ 'revokeCacheSecurityGroupIngressResponse' smart constructor. data RevokeCacheSecurityGroupIngressResponse = RevokeCacheSecurityGroupIngressResponse'-    { _rcsgirsCacheSecurityGroup :: !(Maybe CacheSecurityGroup)-    , _rcsgirsResponseStatus     :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rcsgirsCacheSecurityGroup :: !(Maybe CacheSecurityGroup)+  , _rcsgirsResponseStatus     :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RevokeCacheSecurityGroupIngressResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -143,11 +147,12 @@     :: Int -- ^ 'rcsgirsResponseStatus'     -> RevokeCacheSecurityGroupIngressResponse revokeCacheSecurityGroupIngressResponse pResponseStatus_ =-    RevokeCacheSecurityGroupIngressResponse'-    { _rcsgirsCacheSecurityGroup = Nothing-    , _rcsgirsResponseStatus = pResponseStatus_-    }+  RevokeCacheSecurityGroupIngressResponse'+  { _rcsgirsCacheSecurityGroup = Nothing+  , _rcsgirsResponseStatus = pResponseStatus_+  } + -- | Undocumented member. rcsgirsCacheSecurityGroup :: Lens' RevokeCacheSecurityGroupIngressResponse (Maybe CacheSecurityGroup) rcsgirsCacheSecurityGroup = lens _rcsgirsCacheSecurityGroup (\ s a -> s{_rcsgirsCacheSecurityGroup = a});@@ -157,4 +162,5 @@ rcsgirsResponseStatus = lens _rcsgirsResponseStatus (\ s a -> s{_rcsgirsResponseStatus = a});  instance NFData-         RevokeCacheSecurityGroupIngressResponse+           RevokeCacheSecurityGroupIngressResponse+         where
+ gen/Network/AWS/ElastiCache/TestFailover.hs view
@@ -0,0 +1,172 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ElastiCache.TestFailover+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Represents the input of a @TestFailover@ operation which test automatic failover on a specified node group (called shard in the console) in a replication group (called cluster in the console).+--+--+-- __Note the following__+--+--     * A customer can use this operation to test automatic failover on up to 5 shards (called node groups in the ElastiCache API and AWS CLI) in any rolling 24-hour period.+--+--     * If calling this operation on shards in different clusters (called replication groups in the API and CLI), the calls can be made concurrently.+--+--+--+--     * If calling this operation multiple times on different shards in the same Redis (cluster mode enabled) replication group, the first node replacement must complete before a subsequent call can be made.+--+--     * To determine whether the node replacement is complete you can check Events using the Amazon ElastiCache console, the AWS CLI, or the ElastiCache API. Look for the following automatic failover related events, listed here in order of occurrance:+--+--     * Replication group message: @Test Failover API called for node group <node-group-id>@+--+--     * Cache cluster message: @Failover from master node <primary-node-id> to replica node <node-id> completed@+--+--     * Replication group message: @Failover from master node <primary-node-id> to replica node <node-id> completed@+--+--     * Cache cluster message: @Recovering cache nodes <node-id>@+--+--     * Cache cluster message: @Finished recovery for cache nodes <node-id>@+--+--+--+-- For more information see:+--+--     * <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/ECEvents.Viewing.html Viewing ElastiCache Events> in the /ElastiCache User Guide/+--+--     * <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeEvents.html DescribeEvents> in the ElastiCache API Reference+--+--+--+--+--+-- Also see, <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/AutoFailover.html#auto-failover-test Testing Multi-AZ with Automatic Failover> in the /ElastiCache User Guide/ .+--+module Network.AWS.ElastiCache.TestFailover+    (+    -- * Creating a Request+      testFailover+    , TestFailover+    -- * Request Lenses+    , tfReplicationGroupId+    , tfNodeGroupId++    -- * Destructuring the Response+    , testFailoverResponse+    , TestFailoverResponse+    -- * Response Lenses+    , tfrsReplicationGroup+    , tfrsResponseStatus+    ) where++import Network.AWS.ElastiCache.Types+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'testFailover' smart constructor.+data TestFailover = TestFailover'+  { _tfReplicationGroupId :: !Text+  , _tfNodeGroupId        :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TestFailover' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tfReplicationGroupId' - The name of the replication group (console: cluster) whose automatic failover is being tested by this operation.+--+-- * 'tfNodeGroupId' - The name of the node group (called shard in the console) in this replication group on which automatic failover is to be tested. You may test automatic failover on up to 5 node groups in any rolling 24-hour period.+testFailover+    :: Text -- ^ 'tfReplicationGroupId'+    -> Text -- ^ 'tfNodeGroupId'+    -> TestFailover+testFailover pReplicationGroupId_ pNodeGroupId_ =+  TestFailover'+  {_tfReplicationGroupId = pReplicationGroupId_, _tfNodeGroupId = pNodeGroupId_}+++-- | The name of the replication group (console: cluster) whose automatic failover is being tested by this operation.+tfReplicationGroupId :: Lens' TestFailover Text+tfReplicationGroupId = lens _tfReplicationGroupId (\ s a -> s{_tfReplicationGroupId = a});++-- | The name of the node group (called shard in the console) in this replication group on which automatic failover is to be tested. You may test automatic failover on up to 5 node groups in any rolling 24-hour period.+tfNodeGroupId :: Lens' TestFailover Text+tfNodeGroupId = lens _tfNodeGroupId (\ s a -> s{_tfNodeGroupId = a});++instance AWSRequest TestFailover where+        type Rs TestFailover = TestFailoverResponse+        request = postQuery elastiCache+        response+          = receiveXMLWrapper "TestFailoverResult"+              (\ s h x ->+                 TestFailoverResponse' <$>+                   (x .@? "ReplicationGroup") <*> (pure (fromEnum s)))++instance Hashable TestFailover where++instance NFData TestFailover where++instance ToHeaders TestFailover where+        toHeaders = const mempty++instance ToPath TestFailover where+        toPath = const "/"++instance ToQuery TestFailover where+        toQuery TestFailover'{..}+          = mconcat+              ["Action" =: ("TestFailover" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "ReplicationGroupId" =: _tfReplicationGroupId,+               "NodeGroupId" =: _tfNodeGroupId]++-- | /See:/ 'testFailoverResponse' smart constructor.+data TestFailoverResponse = TestFailoverResponse'+  { _tfrsReplicationGroup :: !(Maybe ReplicationGroup)+  , _tfrsResponseStatus   :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TestFailoverResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tfrsReplicationGroup' - Undocumented member.+--+-- * 'tfrsResponseStatus' - -- | The response status code.+testFailoverResponse+    :: Int -- ^ 'tfrsResponseStatus'+    -> TestFailoverResponse+testFailoverResponse pResponseStatus_ =+  TestFailoverResponse'+  {_tfrsReplicationGroup = Nothing, _tfrsResponseStatus = pResponseStatus_}+++-- | Undocumented member.+tfrsReplicationGroup :: Lens' TestFailoverResponse (Maybe ReplicationGroup)+tfrsReplicationGroup = lens _tfrsReplicationGroup (\ s a -> s{_tfrsReplicationGroup = a});++-- | -- | The response status code.+tfrsResponseStatus :: Lens' TestFailoverResponse Int+tfrsResponseStatus = lens _tfrsResponseStatus (\ s a -> s{_tfrsResponseStatus = a});++instance NFData TestFailoverResponse where
gen/Network/AWS/ElastiCache/Types.hs view
@@ -4,9 +4,9 @@  -- | -- Module      : Network.AWS.ElastiCache.Types--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -35,11 +35,14 @@     , _TagNotFoundFault     , _SnapshotQuotaExceededFault     , _NodeQuotaForClusterExceededFault+    , _APICallRateForCustomerExceededFault+    , _NodeGroupNotFoundFault     , _CacheParameterGroupAlreadyExistsFault     , _ReservedCacheNodeNotFoundFault     , _CacheSubnetGroupNotFoundFault     , _SnapshotFeatureNotSupportedFault     , _InvalidParameterValueException+    , _TestFailoverNotAvailableFault     , _InvalidReplicationGroupStateFault     , _ReplicationGroupAlreadyExistsFault     , _InvalidVPCNetworkStateFault@@ -87,14 +90,17 @@     , ccCacheNodeType     , ccCacheNodes     , ccCacheClusterCreateTime+    , ccAtRestEncryptionEnabled     , ccAutoMinorVersionUpgrade     , ccSecurityGroups     , ccNotificationConfiguration+    , ccTransitEncryptionEnabled     , ccSnapshotWindow     , ccCacheClusterId     , ccConfigurationEndpoint     , ccEngine     , ccCacheSecurityGroups+    , ccAuthTokenEnabled     , ccClientDownloadLandingPage     , ccPreferredMaintenanceWindow     , ccCacheSubnetGroupName@@ -295,10 +301,15 @@     , ReplicationGroup     , replicationGroup     , rgStatus+    , rgCacheNodeType     , rgNodeGroups     , rgSnapshottingClusterId+    , rgClusterEnabled+    , rgAtRestEncryptionEnabled+    , rgTransitEncryptionEnabled     , rgSnapshotWindow     , rgConfigurationEndpoint+    , rgAuthTokenEnabled     , rgMemberClusters     , rgSnapshotRetentionLimit     , rgDescription@@ -309,6 +320,7 @@     -- * ReplicationGroupPendingModifiedValues     , ReplicationGroupPendingModifiedValues     , replicationGroupPendingModifiedValues+    , rgpmvResharding     , rgpmvPrimaryClusterId     , rgpmvAutomaticFailoverStatus @@ -340,12 +352,27 @@     , rcnoDuration     , rcnoReservedCacheNodesOfferingId +    -- * ReshardingConfiguration+    , ReshardingConfiguration+    , reshardingConfiguration+    , rcPreferredAvailabilityZones++    -- * ReshardingStatus+    , ReshardingStatus+    , reshardingStatus+    , rsSlotMigration+     -- * SecurityGroupMembership     , SecurityGroupMembership     , securityGroupMembership     , sgmStatus     , sgmSecurityGroupId +    -- * SlotMigration+    , SlotMigration+    , slotMigration+    , smProgressPercentage+     -- * Snapshot     , Snapshot     , snapshot@@ -392,38 +419,40 @@     , tlmTagList     ) where -import           Network.AWS.ElastiCache.Types.Product-import           Network.AWS.ElastiCache.Types.Sum-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Sign.V4+import Network.AWS.ElastiCache.Types.Product+import Network.AWS.ElastiCache.Types.Sum+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Sign.V4  -- | API version @2015-02-02@ of the Amazon ElastiCache SDK configuration. elastiCache :: Service elastiCache =-    Service-    { _svcAbbrev = "ElastiCache"-    , _svcSigner = v4-    , _svcPrefix = "elasticache"-    , _svcVersion = "2015-02-02"-    , _svcEndpoint = defaultEndpoint elastiCache-    , _svcTimeout = Just 70-    , _svcCheck = statusSuccess-    , _svcError = parseXMLError "ElastiCache"-    , _svcRetry = retry-    }+  Service+  { _svcAbbrev = "ElastiCache"+  , _svcSigner = v4+  , _svcPrefix = "elasticache"+  , _svcVersion = "2015-02-02"+  , _svcEndpoint = defaultEndpoint elastiCache+  , _svcTimeout = Just 70+  , _svcCheck = statusSuccess+  , _svcError = parseXMLError "ElastiCache"+  , _svcRetry = retry+  }   where     retry =-        Exponential-        { _retryBase = 5.0e-2-        , _retryGrowth = 2-        , _retryAttempts = 5-        , _retryCheck = check-        }+      Exponential+      { _retryBase = 5.0e-2+      , _retryGrowth = 2+      , _retryAttempts = 5+      , _retryCheck = check+      }     check e+      | has (hasCode "ThrottledException" . hasStatus 400) e =+        Just "throttled_exception"       | has (hasStatus 429) e = Just "too_many_requests"       | has (hasCode "ThrottlingException" . hasStatus 400) e =-          Just "throttling_exception"+        Just "throttling_exception"       | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"       | has (hasStatus 504) e = Just "gateway_timeout"       | has (hasStatus 502) e = Just "bad_gateway"@@ -432,166 +461,210 @@       | has (hasStatus 509) e = Just "limit_exceeded"       | otherwise = Nothing + -- | The requested cache subnet group is currently in use. -- -- _CacheSubnetGroupInUse :: AsError a => Getting (First ServiceError) a ServiceError _CacheSubnetGroupInUse =-    _ServiceError . hasStatus 400 . hasCode "CacheSubnetGroupInUse"+  _MatchServiceError elastiCache "CacheSubnetGroupInUse" . hasStatus 400 + -- | You already have a reservation with the given identifier. -- -- _ReservedCacheNodeAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError _ReservedCacheNodeAlreadyExistsFault =-    _ServiceError . hasStatus 404 . hasCode "ReservedCacheNodeAlreadyExists"+  _MatchServiceError elastiCache "ReservedCacheNodeAlreadyExists" .+  hasStatus 404 + -- | The requested cache security group name does not refer to an existing cache security group. -- -- _CacheSecurityGroupNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _CacheSecurityGroupNotFoundFault =-    _ServiceError . hasStatus 404 . hasCode "CacheSecurityGroupNotFound"+  _MatchServiceError elastiCache "CacheSecurityGroupNotFound" . hasStatus 404 + -- | The requested cache subnet group name is already in use by an existing cache subnet group. -- -- _CacheSubnetGroupAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError _CacheSubnetGroupAlreadyExistsFault =-    _ServiceError . hasStatus 400 . hasCode "CacheSubnetGroupAlreadyExists"+  _MatchServiceError elastiCache "CacheSubnetGroupAlreadyExists" . hasStatus 400 --- | The request cannot be processed because it would exceed the maximum of 15 node groups (shards) in a single replication group.++-- | The request cannot be processed because it would exceed the maximum allowed number of node groups (shards) in a single replication group. The default maximum is 15 -- -- _NodeGroupsPerReplicationGroupQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _NodeGroupsPerReplicationGroupQuotaExceededFault =-    _ServiceError .-    hasStatus 400 . hasCode "NodeGroupsPerReplicationGroupQuotaExceeded"+  _MatchServiceError elastiCache "NodeGroupsPerReplicationGroupQuotaExceeded" .+  hasStatus 400 + -- | The request cannot be processed because it would exceed the allowed number of cache subnet groups. -- -- _CacheSubnetGroupQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _CacheSubnetGroupQuotaExceededFault =-    _ServiceError . hasStatus 400 . hasCode "CacheSubnetGroupQuotaExceeded"+  _MatchServiceError elastiCache "CacheSubnetGroupQuotaExceeded" . hasStatus 400 + -- | The specified Amazon EC2 security group is already authorized for the specified cache security group. -- -- _AuthorizationAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError _AuthorizationAlreadyExistsFault =-    _ServiceError . hasStatus 400 . hasCode "AuthorizationAlreadyExists"+  _MatchServiceError elastiCache "AuthorizationAlreadyExists" . hasStatus 400 + -- | The request cannot be processed because it would exceed the user's cache node quota. -- -- _ReservedCacheNodeQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _ReservedCacheNodeQuotaExceededFault =-    _ServiceError . hasStatus 400 . hasCode "ReservedCacheNodeQuotaExceeded"+  _MatchServiceError elastiCache "ReservedCacheNodeQuotaExceeded" .+  hasStatus 400 + -- | The requested cache node offering does not exist. -- -- _ReservedCacheNodesOfferingNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _ReservedCacheNodesOfferingNotFoundFault =-    _ServiceError .-    hasStatus 404 . hasCode "ReservedCacheNodesOfferingNotFound"+  _MatchServiceError elastiCache "ReservedCacheNodesOfferingNotFound" .+  hasStatus 404 + -- | The specified replication group does not exist. -- -- _ReplicationGroupNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _ReplicationGroupNotFoundFault =-    _ServiceError . hasStatus 404 . hasCode "ReplicationGroupNotFoundFault"+  _MatchServiceError elastiCache "ReplicationGroupNotFoundFault" . hasStatus 404 + -- | An invalid subnet identifier was specified. -- -- _InvalidSubnet :: AsError a => Getting (First ServiceError) a ServiceError-_InvalidSubnet = _ServiceError . hasStatus 400 . hasCode "InvalidSubnet"+_InvalidSubnet = _MatchServiceError elastiCache "InvalidSubnet" . hasStatus 400 --- | The request cannot be processed because it would cause the resource to have more than the allowed number of tags. The maximum number of tags permitted on a resource is 10.++-- | The request cannot be processed because it would cause the resource to have more than the allowed number of tags. The maximum number of tags permitted on a resource is 50. -- -- _TagQuotaPerResourceExceeded :: AsError a => Getting (First ServiceError) a ServiceError _TagQuotaPerResourceExceeded =-    _ServiceError . hasStatus 400 . hasCode "TagQuotaPerResourceExceeded"+  _MatchServiceError elastiCache "TagQuotaPerResourceExceeded" . hasStatus 400 + -- | The requested snapshot name does not refer to an existing snapshot. -- -- _SnapshotNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _SnapshotNotFoundFault =-    _ServiceError . hasStatus 404 . hasCode "SnapshotNotFoundFault"+  _MatchServiceError elastiCache "SnapshotNotFoundFault" . hasStatus 404 + -- | The requested cache node type is not available in the specified Availability Zone. -- -- _InsufficientCacheClusterCapacityFault :: AsError a => Getting (First ServiceError) a ServiceError _InsufficientCacheClusterCapacityFault =-    _ServiceError . hasStatus 400 . hasCode "InsufficientCacheClusterCapacity"+  _MatchServiceError elastiCache "InsufficientCacheClusterCapacity" .+  hasStatus 400 + -- | The current state of the snapshot does not allow the requested operation to occur. -- -- _InvalidSnapshotStateFault :: AsError a => Getting (First ServiceError) a ServiceError _InvalidSnapshotStateFault =-    _ServiceError . hasStatus 400 . hasCode "InvalidSnapshotState"+  _MatchServiceError elastiCache "InvalidSnapshotState" . hasStatus 400 + -- | You already have a snapshot with the given name. -- -- _SnapshotAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError _SnapshotAlreadyExistsFault =-    _ServiceError . hasStatus 400 . hasCode "SnapshotAlreadyExistsFault"+  _MatchServiceError elastiCache "SnapshotAlreadyExistsFault" . hasStatus 400 + -- | The requested tag was not found on this resource. -- -- _TagNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError-_TagNotFoundFault = _ServiceError . hasStatus 404 . hasCode "TagNotFound"+_TagNotFoundFault = _MatchServiceError elastiCache "TagNotFound" . hasStatus 404 + -- | The request cannot be processed because it would exceed the maximum number of snapshots. -- -- _SnapshotQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _SnapshotQuotaExceededFault =-    _ServiceError . hasStatus 400 . hasCode "SnapshotQuotaExceededFault"+  _MatchServiceError elastiCache "SnapshotQuotaExceededFault" . hasStatus 400 --- | The request cannot be processed because it would exceed the allowed number of cache nodes in a single cache cluster.++-- | The request cannot be processed because it would exceed the allowed number of cache nodes in a single cluster. -- -- _NodeQuotaForClusterExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _NodeQuotaForClusterExceededFault =-    _ServiceError . hasStatus 400 . hasCode "NodeQuotaForClusterExceeded"+  _MatchServiceError elastiCache "NodeQuotaForClusterExceeded" . hasStatus 400 ++-- | The customer has exceeded the allowed rate of API calls.+--+--+_APICallRateForCustomerExceededFault :: AsError a => Getting (First ServiceError) a ServiceError+_APICallRateForCustomerExceededFault =+  _MatchServiceError elastiCache "APICallRateForCustomerExceeded" .+  hasStatus 400+++-- | The node group specified by the @NodeGroupId@ parameter could not be found. Please verify that the node group exists and that you spelled the @NodeGroupId@ value correctly.+--+--+_NodeGroupNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError+_NodeGroupNotFoundFault =+  _MatchServiceError elastiCache "NodeGroupNotFoundFault" . hasStatus 404++ -- | A cache parameter group with the requested name already exists. -- -- _CacheParameterGroupAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError _CacheParameterGroupAlreadyExistsFault =-    _ServiceError . hasStatus 400 . hasCode "CacheParameterGroupAlreadyExists"+  _MatchServiceError elastiCache "CacheParameterGroupAlreadyExists" .+  hasStatus 400 + -- | The requested reserved cache node was not found. -- -- _ReservedCacheNodeNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _ReservedCacheNodeNotFoundFault =-    _ServiceError . hasStatus 404 . hasCode "ReservedCacheNodeNotFound"+  _MatchServiceError elastiCache "ReservedCacheNodeNotFound" . hasStatus 404 + -- | The requested cache subnet group name does not refer to an existing cache subnet group. -- -- _CacheSubnetGroupNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _CacheSubnetGroupNotFoundFault =-    _ServiceError . hasStatus 400 . hasCode "CacheSubnetGroupNotFoundFault"+  _MatchServiceError elastiCache "CacheSubnetGroupNotFoundFault" . hasStatus 400 + -- | You attempted one of the following operations: -- -----     * Creating a snapshot of a Redis cache cluster running on a @cache.t1.micro@ cache node.+--     * Creating a snapshot of a Redis cluster running on a @cache.t1.micro@ cache node. -----     * Creating a snapshot of a cache cluster that is running Memcached rather than Redis.+--     * Creating a snapshot of a cluster that is running Memcached rather than Redis. -- -- --@@ -599,142 +672,176 @@ -- _SnapshotFeatureNotSupportedFault :: AsError a => Getting (First ServiceError) a ServiceError _SnapshotFeatureNotSupportedFault =-    _ServiceError . hasStatus 400 . hasCode "SnapshotFeatureNotSupportedFault"+  _MatchServiceError elastiCache "SnapshotFeatureNotSupportedFault" .+  hasStatus 400 + -- | The value for a parameter is invalid. -- -- _InvalidParameterValueException :: AsError a => Getting (First ServiceError) a ServiceError _InvalidParameterValueException =-    _ServiceError . hasStatus 400 . hasCode "InvalidParameterValue"+  _MatchServiceError elastiCache "InvalidParameterValue" . hasStatus 400 ++-- | Prism for TestFailoverNotAvailableFault' errors.+_TestFailoverNotAvailableFault :: AsError a => Getting (First ServiceError) a ServiceError+_TestFailoverNotAvailableFault =+  _MatchServiceError elastiCache "TestFailoverNotAvailableFault" . hasStatus 400++ -- | The requested replication group is not in the @available@ state. -- -- _InvalidReplicationGroupStateFault :: AsError a => Getting (First ServiceError) a ServiceError _InvalidReplicationGroupStateFault =-    _ServiceError . hasStatus 400 . hasCode "InvalidReplicationGroupState"+  _MatchServiceError elastiCache "InvalidReplicationGroupState" . hasStatus 400 + -- | The specified replication group already exists. -- -- _ReplicationGroupAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError _ReplicationGroupAlreadyExistsFault =-    _ServiceError . hasStatus 400 . hasCode "ReplicationGroupAlreadyExists"+  _MatchServiceError elastiCache "ReplicationGroupAlreadyExists" . hasStatus 400 + -- | The VPC network is in an invalid state. -- -- _InvalidVPCNetworkStateFault :: AsError a => Getting (First ServiceError) a ServiceError _InvalidVPCNetworkStateFault =-    _ServiceError . hasStatus 400 . hasCode "InvalidVPCNetworkStateFault"+  _MatchServiceError elastiCache "InvalidVPCNetworkStateFault" . hasStatus 400 + -- | The requested subnet is being used by another cache subnet group. -- -- _SubnetInUse :: AsError a => Getting (First ServiceError) a ServiceError-_SubnetInUse = _ServiceError . hasStatus 400 . hasCode "SubnetInUse"+_SubnetInUse = _MatchServiceError elastiCache "SubnetInUse" . hasStatus 400 --- | The requested cache cluster ID does not refer to an existing cache cluster.++-- | The requested cluster ID does not refer to an existing cluster. -- -- _CacheClusterNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _CacheClusterNotFoundFault =-    _ServiceError . hasStatus 404 . hasCode "CacheClusterNotFound"+  _MatchServiceError elastiCache "CacheClusterNotFound" . hasStatus 404 --- | The request cannot be processed because it would exceed the allowed number of cache clusters per customer.++-- | The request cannot be processed because it would exceed the allowed number of clusters per customer. -- -- _ClusterQuotaForCustomerExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _ClusterQuotaForCustomerExceededFault =-    _ServiceError . hasStatus 400 . hasCode "ClusterQuotaForCustomerExceeded"+  _MatchServiceError elastiCache "ClusterQuotaForCustomerExceeded" .+  hasStatus 400 + -- | The specified Amazon EC2 security group is not authorized for the specified cache security group. -- -- _AuthorizationNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _AuthorizationNotFoundFault =-    _ServiceError . hasStatus 404 . hasCode "AuthorizationNotFound"+  _MatchServiceError elastiCache "AuthorizationNotFound" . hasStatus 404 --- | The requested cache cluster is not in the @available@ state.++-- | The requested cluster is not in the @available@ state. -- -- _InvalidCacheClusterStateFault :: AsError a => Getting (First ServiceError) a ServiceError _InvalidCacheClusterStateFault =-    _ServiceError . hasStatus 400 . hasCode "InvalidCacheClusterState"+  _MatchServiceError elastiCache "InvalidCacheClusterState" . hasStatus 400 + -- | The request cannot be processed because it would exceed the allowed number of cache security groups. -- -- _CacheSecurityGroupQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _CacheSecurityGroupQuotaExceededFault =-    _ServiceError . hasStatus 400 . hasCode "QuotaExceeded.CacheSecurityGroup"+  _MatchServiceError elastiCache "QuotaExceeded.CacheSecurityGroup" .+  hasStatus 400 --- | You already have a cache cluster with the given identifier.++-- | You already have a cluster with the given identifier. -- -- _CacheClusterAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError _CacheClusterAlreadyExistsFault =-    _ServiceError . hasStatus 400 . hasCode "CacheClusterAlreadyExists"+  _MatchServiceError elastiCache "CacheClusterAlreadyExists" . hasStatus 400 + -- | The request cannot be processed because it would exceed the maximum number of cache security groups. -- -- _CacheParameterGroupQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _CacheParameterGroupQuotaExceededFault =-    _ServiceError . hasStatus 400 . hasCode "CacheParameterGroupQuotaExceeded"+  _MatchServiceError elastiCache "CacheParameterGroupQuotaExceeded" .+  hasStatus 400 + -- | The request cannot be processed because it would exceed the allowed number of cache nodes per customer. -- -- _NodeQuotaForCustomerExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _NodeQuotaForCustomerExceededFault =-    _ServiceError . hasStatus 400 . hasCode "NodeQuotaForCustomerExceeded"+  _MatchServiceError elastiCache "NodeQuotaForCustomerExceeded" . hasStatus 400 + -- | The request cannot be processed because it would exceed the allowed number of subnets in a cache subnet group. -- -- _CacheSubnetQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _CacheSubnetQuotaExceededFault =-    _ServiceError . hasStatus 400 . hasCode "CacheSubnetQuotaExceededFault"+  _MatchServiceError elastiCache "CacheSubnetQuotaExceededFault" . hasStatus 400 + -- | The requested cache parameter group name does not refer to an existing cache parameter group. -- -- _CacheParameterGroupNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _CacheParameterGroupNotFoundFault =-    _ServiceError . hasStatus 404 . hasCode "CacheParameterGroupNotFound"+  _MatchServiceError elastiCache "CacheParameterGroupNotFound" . hasStatus 404 + -- | The requested Amazon Resource Name (ARN) does not refer to an existing resource. -- -- _InvalidARNFault :: AsError a => Getting (First ServiceError) a ServiceError-_InvalidARNFault = _ServiceError . hasStatus 400 . hasCode "InvalidARN"+_InvalidARNFault = _MatchServiceError elastiCache "InvalidARN" . hasStatus 400 + -- | The current state of the cache parameter group does not allow the requested operation to occur. -- -- _InvalidCacheParameterGroupStateFault :: AsError a => Getting (First ServiceError) a ServiceError _InvalidCacheParameterGroupStateFault =-    _ServiceError . hasStatus 400 . hasCode "InvalidCacheParameterGroupState"+  _MatchServiceError elastiCache "InvalidCacheParameterGroupState" .+  hasStatus 400 + -- | Two or more incompatible parameters were specified. -- -- _InvalidParameterCombinationException :: AsError a => Getting (First ServiceError) a ServiceError _InvalidParameterCombinationException =-    _ServiceError . hasStatus 400 . hasCode "InvalidParameterCombination"+  _MatchServiceError elastiCache "InvalidParameterCombination" . hasStatus 400 + -- | The current state of the cache security group does not allow deletion. -- -- _InvalidCacheSecurityGroupStateFault :: AsError a => Getting (First ServiceError) a ServiceError _InvalidCacheSecurityGroupStateFault =-    _ServiceError . hasStatus 400 . hasCode "InvalidCacheSecurityGroupState"+  _MatchServiceError elastiCache "InvalidCacheSecurityGroupState" .+  hasStatus 400 + -- | A cache security group with the specified name already exists. -- -- _CacheSecurityGroupAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError _CacheSecurityGroupAlreadyExistsFault =-    _ServiceError . hasStatus 400 . hasCode "CacheSecurityGroupAlreadyExists"+  _MatchServiceError elastiCache "CacheSecurityGroupAlreadyExists" .+  hasStatus 400+
gen/Network/AWS/ElastiCache/Types/Product.hs view
@@ -9,2569 +9,2811 @@  -- | -- Module      : Network.AWS.ElastiCache.Types.Product--- Copyright   : (c) 2013-2016 Brendan Hay--- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : auto-generated--- Portability : non-portable (GHC extensions)----module Network.AWS.ElastiCache.Types.Product where--import           Network.AWS.ElastiCache.Types.Sum-import           Network.AWS.Lens-import           Network.AWS.Prelude---- | Describes an Availability Zone in which the cache cluster is launched.------------ /See:/ 'availabilityZone' smart constructor.-newtype AvailabilityZone = AvailabilityZone'-    { _azName :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'AvailabilityZone' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'azName' - The name of the Availability Zone.-availabilityZone-    :: AvailabilityZone-availabilityZone =-    AvailabilityZone'-    { _azName = Nothing-    }---- | The name of the Availability Zone.-azName :: Lens' AvailabilityZone (Maybe Text)-azName = lens _azName (\ s a -> s{_azName = a});--instance FromXML AvailabilityZone where-        parseXML x = AvailabilityZone' <$> (x .@? "Name")--instance Hashable AvailabilityZone--instance NFData AvailabilityZone---- | Contains all of the attributes of a specific cache cluster.------------ /See:/ 'cacheCluster' smart constructor.-data CacheCluster = CacheCluster'-    { _ccEngineVersion              :: !(Maybe Text)-    , _ccCacheNodeType              :: !(Maybe Text)-    , _ccCacheNodes                 :: !(Maybe [CacheNode])-    , _ccCacheClusterCreateTime     :: !(Maybe ISO8601)-    , _ccAutoMinorVersionUpgrade    :: !(Maybe Bool)-    , _ccSecurityGroups             :: !(Maybe [SecurityGroupMembership])-    , _ccNotificationConfiguration  :: !(Maybe NotificationConfiguration)-    , _ccSnapshotWindow             :: !(Maybe Text)-    , _ccCacheClusterId             :: !(Maybe Text)-    , _ccConfigurationEndpoint      :: !(Maybe Endpoint)-    , _ccEngine                     :: !(Maybe Text)-    , _ccCacheSecurityGroups        :: !(Maybe [CacheSecurityGroupMembership])-    , _ccClientDownloadLandingPage  :: !(Maybe Text)-    , _ccPreferredMaintenanceWindow :: !(Maybe Text)-    , _ccCacheSubnetGroupName       :: !(Maybe Text)-    , _ccPreferredAvailabilityZone  :: !(Maybe Text)-    , _ccCacheParameterGroup        :: !(Maybe CacheParameterGroupStatus)-    , _ccCacheClusterStatus         :: !(Maybe Text)-    , _ccSnapshotRetentionLimit     :: !(Maybe Int)-    , _ccReplicationGroupId         :: !(Maybe Text)-    , _ccPendingModifiedValues      :: !(Maybe PendingModifiedValues)-    , _ccNumCacheNodes              :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CacheCluster' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ccEngineVersion' - The version of the cache engine that is used in this cache cluster.------ * 'ccCacheNodeType' - The name of the compute and memory capacity node type for the cache cluster. Valid node types are as follows:     * General purpose:     * Current generation: @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@ , @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@ , @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: @cache.t1.micro@ , @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized: @cache.c1.xlarge@      * Memory optimized:     * Current generation: @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .------ * 'ccCacheNodes' - A list of cache nodes that are members of the cache cluster.------ * 'ccCacheClusterCreateTime' - The date and time when the cache cluster was created.------ * 'ccAutoMinorVersionUpgrade' - This parameter is currently disabled.------ * 'ccSecurityGroups' - A list of VPC Security Groups associated with the cache cluster.------ * 'ccNotificationConfiguration' - Undocumented member.------ * 'ccSnapshotWindow' - The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your cache cluster. Example: @05:00-09:00@------ * 'ccCacheClusterId' - The user-supplied identifier of the cache cluster. This identifier is a unique key that identifies a cache cluster.------ * 'ccConfigurationEndpoint' - Undocumented member.------ * 'ccEngine' - The name of the cache engine (@memcached@ or @redis@ ) to be used for this cache cluster.------ * 'ccCacheSecurityGroups' - A list of cache security group elements, composed of name and status sub-elements.------ * 'ccClientDownloadLandingPage' - The URL of the web page where you can download the latest ElastiCache client library.------ * 'ccPreferredMaintenanceWindow' - Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are:     * @sun@      * @mon@      * @tue@      * @wed@      * @thu@      * @fri@      * @sat@  Example: @sun:23:00-mon:01:30@------ * 'ccCacheSubnetGroupName' - The name of the cache subnet group associated with the cache cluster.------ * 'ccPreferredAvailabilityZone' - The name of the Availability Zone in which the cache cluster is located or "Multiple" if the cache nodes are located in different Availability Zones.------ * 'ccCacheParameterGroup' - Undocumented member.------ * 'ccCacheClusterStatus' - The current state of this cache cluster, one of the following values: @available@ , @creating@ , @deleted@ , @deleting@ , @incompatible-network@ , @modifying@ , @rebooting cache cluster nodes@ , @restore-failed@ , or @snapshotting@ .------ * 'ccSnapshotRetentionLimit' - The number of days for which ElastiCache retains automatic cache cluster snapshots before deleting them. For example, if you set @SnapshotRetentionLimit@ to 5, a snapshot that was taken today is retained for 5 days before being deleted. /Important:/ If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.------ * 'ccReplicationGroupId' - The replication group to which this cache cluster belongs. If this field is empty, the cache cluster is not associated with any replication group.------ * 'ccPendingModifiedValues' - Undocumented member.------ * 'ccNumCacheNodes' - The number of cache nodes in the cache cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.-cacheCluster-    :: CacheCluster-cacheCluster =-    CacheCluster'-    { _ccEngineVersion = Nothing-    , _ccCacheNodeType = Nothing-    , _ccCacheNodes = Nothing-    , _ccCacheClusterCreateTime = Nothing-    , _ccAutoMinorVersionUpgrade = Nothing-    , _ccSecurityGroups = Nothing-    , _ccNotificationConfiguration = Nothing-    , _ccSnapshotWindow = Nothing-    , _ccCacheClusterId = Nothing-    , _ccConfigurationEndpoint = Nothing-    , _ccEngine = Nothing-    , _ccCacheSecurityGroups = Nothing-    , _ccClientDownloadLandingPage = Nothing-    , _ccPreferredMaintenanceWindow = Nothing-    , _ccCacheSubnetGroupName = Nothing-    , _ccPreferredAvailabilityZone = Nothing-    , _ccCacheParameterGroup = Nothing-    , _ccCacheClusterStatus = Nothing-    , _ccSnapshotRetentionLimit = Nothing-    , _ccReplicationGroupId = Nothing-    , _ccPendingModifiedValues = Nothing-    , _ccNumCacheNodes = Nothing-    }---- | The version of the cache engine that is used in this cache cluster.-ccEngineVersion :: Lens' CacheCluster (Maybe Text)-ccEngineVersion = lens _ccEngineVersion (\ s a -> s{_ccEngineVersion = a});---- | The name of the compute and memory capacity node type for the cache cluster. Valid node types are as follows:     * General purpose:     * Current generation: @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@ , @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@ , @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: @cache.t1.micro@ , @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized: @cache.c1.xlarge@      * Memory optimized:     * Current generation: @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .-ccCacheNodeType :: Lens' CacheCluster (Maybe Text)-ccCacheNodeType = lens _ccCacheNodeType (\ s a -> s{_ccCacheNodeType = a});---- | A list of cache nodes that are members of the cache cluster.-ccCacheNodes :: Lens' CacheCluster [CacheNode]-ccCacheNodes = lens _ccCacheNodes (\ s a -> s{_ccCacheNodes = a}) . _Default . _Coerce;---- | The date and time when the cache cluster was created.-ccCacheClusterCreateTime :: Lens' CacheCluster (Maybe UTCTime)-ccCacheClusterCreateTime = lens _ccCacheClusterCreateTime (\ s a -> s{_ccCacheClusterCreateTime = a}) . mapping _Time;---- | This parameter is currently disabled.-ccAutoMinorVersionUpgrade :: Lens' CacheCluster (Maybe Bool)-ccAutoMinorVersionUpgrade = lens _ccAutoMinorVersionUpgrade (\ s a -> s{_ccAutoMinorVersionUpgrade = a});---- | A list of VPC Security Groups associated with the cache cluster.-ccSecurityGroups :: Lens' CacheCluster [SecurityGroupMembership]-ccSecurityGroups = lens _ccSecurityGroups (\ s a -> s{_ccSecurityGroups = a}) . _Default . _Coerce;---- | Undocumented member.-ccNotificationConfiguration :: Lens' CacheCluster (Maybe NotificationConfiguration)-ccNotificationConfiguration = lens _ccNotificationConfiguration (\ s a -> s{_ccNotificationConfiguration = a});---- | The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your cache cluster. Example: @05:00-09:00@-ccSnapshotWindow :: Lens' CacheCluster (Maybe Text)-ccSnapshotWindow = lens _ccSnapshotWindow (\ s a -> s{_ccSnapshotWindow = a});---- | The user-supplied identifier of the cache cluster. This identifier is a unique key that identifies a cache cluster.-ccCacheClusterId :: Lens' CacheCluster (Maybe Text)-ccCacheClusterId = lens _ccCacheClusterId (\ s a -> s{_ccCacheClusterId = a});---- | Undocumented member.-ccConfigurationEndpoint :: Lens' CacheCluster (Maybe Endpoint)-ccConfigurationEndpoint = lens _ccConfigurationEndpoint (\ s a -> s{_ccConfigurationEndpoint = a});---- | The name of the cache engine (@memcached@ or @redis@ ) to be used for this cache cluster.-ccEngine :: Lens' CacheCluster (Maybe Text)-ccEngine = lens _ccEngine (\ s a -> s{_ccEngine = a});---- | A list of cache security group elements, composed of name and status sub-elements.-ccCacheSecurityGroups :: Lens' CacheCluster [CacheSecurityGroupMembership]-ccCacheSecurityGroups = lens _ccCacheSecurityGroups (\ s a -> s{_ccCacheSecurityGroups = a}) . _Default . _Coerce;---- | The URL of the web page where you can download the latest ElastiCache client library.-ccClientDownloadLandingPage :: Lens' CacheCluster (Maybe Text)-ccClientDownloadLandingPage = lens _ccClientDownloadLandingPage (\ s a -> s{_ccClientDownloadLandingPage = a});---- | Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are:     * @sun@      * @mon@      * @tue@      * @wed@      * @thu@      * @fri@      * @sat@  Example: @sun:23:00-mon:01:30@-ccPreferredMaintenanceWindow :: Lens' CacheCluster (Maybe Text)-ccPreferredMaintenanceWindow = lens _ccPreferredMaintenanceWindow (\ s a -> s{_ccPreferredMaintenanceWindow = a});---- | The name of the cache subnet group associated with the cache cluster.-ccCacheSubnetGroupName :: Lens' CacheCluster (Maybe Text)-ccCacheSubnetGroupName = lens _ccCacheSubnetGroupName (\ s a -> s{_ccCacheSubnetGroupName = a});---- | The name of the Availability Zone in which the cache cluster is located or "Multiple" if the cache nodes are located in different Availability Zones.-ccPreferredAvailabilityZone :: Lens' CacheCluster (Maybe Text)-ccPreferredAvailabilityZone = lens _ccPreferredAvailabilityZone (\ s a -> s{_ccPreferredAvailabilityZone = a});---- | Undocumented member.-ccCacheParameterGroup :: Lens' CacheCluster (Maybe CacheParameterGroupStatus)-ccCacheParameterGroup = lens _ccCacheParameterGroup (\ s a -> s{_ccCacheParameterGroup = a});---- | The current state of this cache cluster, one of the following values: @available@ , @creating@ , @deleted@ , @deleting@ , @incompatible-network@ , @modifying@ , @rebooting cache cluster nodes@ , @restore-failed@ , or @snapshotting@ .-ccCacheClusterStatus :: Lens' CacheCluster (Maybe Text)-ccCacheClusterStatus = lens _ccCacheClusterStatus (\ s a -> s{_ccCacheClusterStatus = a});---- | The number of days for which ElastiCache retains automatic cache cluster snapshots before deleting them. For example, if you set @SnapshotRetentionLimit@ to 5, a snapshot that was taken today is retained for 5 days before being deleted. /Important:/ If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.-ccSnapshotRetentionLimit :: Lens' CacheCluster (Maybe Int)-ccSnapshotRetentionLimit = lens _ccSnapshotRetentionLimit (\ s a -> s{_ccSnapshotRetentionLimit = a});---- | The replication group to which this cache cluster belongs. If this field is empty, the cache cluster is not associated with any replication group.-ccReplicationGroupId :: Lens' CacheCluster (Maybe Text)-ccReplicationGroupId = lens _ccReplicationGroupId (\ s a -> s{_ccReplicationGroupId = a});---- | Undocumented member.-ccPendingModifiedValues :: Lens' CacheCluster (Maybe PendingModifiedValues)-ccPendingModifiedValues = lens _ccPendingModifiedValues (\ s a -> s{_ccPendingModifiedValues = a});---- | The number of cache nodes in the cache cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.-ccNumCacheNodes :: Lens' CacheCluster (Maybe Int)-ccNumCacheNodes = lens _ccNumCacheNodes (\ s a -> s{_ccNumCacheNodes = a});--instance FromXML CacheCluster where-        parseXML x-          = CacheCluster' <$>-              (x .@? "EngineVersion") <*> (x .@? "CacheNodeType")-                <*>-                (x .@? "CacheNodes" .!@ mempty >>=-                   may (parseXMLList "CacheNode"))-                <*> (x .@? "CacheClusterCreateTime")-                <*> (x .@? "AutoMinorVersionUpgrade")-                <*>-                (x .@? "SecurityGroups" .!@ mempty >>=-                   may (parseXMLList "member"))-                <*> (x .@? "NotificationConfiguration")-                <*> (x .@? "SnapshotWindow")-                <*> (x .@? "CacheClusterId")-                <*> (x .@? "ConfigurationEndpoint")-                <*> (x .@? "Engine")-                <*>-                (x .@? "CacheSecurityGroups" .!@ mempty >>=-                   may (parseXMLList "CacheSecurityGroup"))-                <*> (x .@? "ClientDownloadLandingPage")-                <*> (x .@? "PreferredMaintenanceWindow")-                <*> (x .@? "CacheSubnetGroupName")-                <*> (x .@? "PreferredAvailabilityZone")-                <*> (x .@? "CacheParameterGroup")-                <*> (x .@? "CacheClusterStatus")-                <*> (x .@? "SnapshotRetentionLimit")-                <*> (x .@? "ReplicationGroupId")-                <*> (x .@? "PendingModifiedValues")-                <*> (x .@? "NumCacheNodes")--instance Hashable CacheCluster--instance NFData CacheCluster---- | Provides all of the details about a particular cache engine version.------------ /See:/ 'cacheEngineVersion' smart constructor.-data CacheEngineVersion = CacheEngineVersion'-    { _cevEngineVersion                 :: !(Maybe Text)-    , _cevCacheParameterGroupFamily     :: !(Maybe Text)-    , _cevCacheEngineDescription        :: !(Maybe Text)-    , _cevEngine                        :: !(Maybe Text)-    , _cevCacheEngineVersionDescription :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CacheEngineVersion' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cevEngineVersion' - The version number of the cache engine.------ * 'cevCacheParameterGroupFamily' - The name of the cache parameter group family associated with this cache engine. Valid values are: @memcached1.4@ | @redis2.6@ | @redis2.8@ | @redis3.2@------ * 'cevCacheEngineDescription' - The description of the cache engine.------ * 'cevEngine' - The name of the cache engine.------ * 'cevCacheEngineVersionDescription' - The description of the cache engine version.-cacheEngineVersion-    :: CacheEngineVersion-cacheEngineVersion =-    CacheEngineVersion'-    { _cevEngineVersion = Nothing-    , _cevCacheParameterGroupFamily = Nothing-    , _cevCacheEngineDescription = Nothing-    , _cevEngine = Nothing-    , _cevCacheEngineVersionDescription = Nothing-    }---- | The version number of the cache engine.-cevEngineVersion :: Lens' CacheEngineVersion (Maybe Text)-cevEngineVersion = lens _cevEngineVersion (\ s a -> s{_cevEngineVersion = a});---- | The name of the cache parameter group family associated with this cache engine. Valid values are: @memcached1.4@ | @redis2.6@ | @redis2.8@ | @redis3.2@-cevCacheParameterGroupFamily :: Lens' CacheEngineVersion (Maybe Text)-cevCacheParameterGroupFamily = lens _cevCacheParameterGroupFamily (\ s a -> s{_cevCacheParameterGroupFamily = a});---- | The description of the cache engine.-cevCacheEngineDescription :: Lens' CacheEngineVersion (Maybe Text)-cevCacheEngineDescription = lens _cevCacheEngineDescription (\ s a -> s{_cevCacheEngineDescription = a});---- | The name of the cache engine.-cevEngine :: Lens' CacheEngineVersion (Maybe Text)-cevEngine = lens _cevEngine (\ s a -> s{_cevEngine = a});---- | The description of the cache engine version.-cevCacheEngineVersionDescription :: Lens' CacheEngineVersion (Maybe Text)-cevCacheEngineVersionDescription = lens _cevCacheEngineVersionDescription (\ s a -> s{_cevCacheEngineVersionDescription = a});--instance FromXML CacheEngineVersion where-        parseXML x-          = CacheEngineVersion' <$>-              (x .@? "EngineVersion") <*>-                (x .@? "CacheParameterGroupFamily")-                <*> (x .@? "CacheEngineDescription")-                <*> (x .@? "Engine")-                <*> (x .@? "CacheEngineVersionDescription")--instance Hashable CacheEngineVersion--instance NFData CacheEngineVersion---- | Represents an individual cache node within a cache cluster. Each cache node runs its own instance of the cluster's protocol-compliant caching software - either Memcached or Redis.--------- Valid node types are as follows:------     * General purpose:------     * Current generation: @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@ , @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@ , @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@------     * Previous generation: @cache.t1.micro@ , @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@------------     * Compute optimized: @cache.c1.xlarge@------     * Memory optimized:------     * Current generation: @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@------     * Previous generation: @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@------------------ __Notes:__------     * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).------     * Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances.------     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances.------------ For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .--------- /See:/ 'cacheNode' smart constructor.-data CacheNode = CacheNode'-    { _cnSourceCacheNodeId        :: !(Maybe Text)-    , _cnParameterGroupStatus     :: !(Maybe Text)-    , _cnCacheNodeCreateTime      :: !(Maybe ISO8601)-    , _cnCustomerAvailabilityZone :: !(Maybe Text)-    , _cnCacheNodeId              :: !(Maybe Text)-    , _cnCacheNodeStatus          :: !(Maybe Text)-    , _cnEndpoint                 :: !(Maybe Endpoint)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CacheNode' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cnSourceCacheNodeId' - The ID of the primary node to which this read replica node is synchronized. If this field is empty, this node is not associated with a primary cache cluster.------ * 'cnParameterGroupStatus' - The status of the parameter group applied to this cache node.------ * 'cnCacheNodeCreateTime' - The date and time when the cache node was created.------ * 'cnCustomerAvailabilityZone' - The Availability Zone where this node was created and now resides.------ * 'cnCacheNodeId' - The cache node identifier. A node ID is a numeric identifier (0001, 0002, etc.). The combination of cluster ID and node ID uniquely identifies every cache node used in a customer's AWS account.------ * 'cnCacheNodeStatus' - The current state of this cache node.------ * 'cnEndpoint' - The hostname for connecting to this cache node.-cacheNode-    :: CacheNode-cacheNode =-    CacheNode'-    { _cnSourceCacheNodeId = Nothing-    , _cnParameterGroupStatus = Nothing-    , _cnCacheNodeCreateTime = Nothing-    , _cnCustomerAvailabilityZone = Nothing-    , _cnCacheNodeId = Nothing-    , _cnCacheNodeStatus = Nothing-    , _cnEndpoint = Nothing-    }---- | The ID of the primary node to which this read replica node is synchronized. If this field is empty, this node is not associated with a primary cache cluster.-cnSourceCacheNodeId :: Lens' CacheNode (Maybe Text)-cnSourceCacheNodeId = lens _cnSourceCacheNodeId (\ s a -> s{_cnSourceCacheNodeId = a});---- | The status of the parameter group applied to this cache node.-cnParameterGroupStatus :: Lens' CacheNode (Maybe Text)-cnParameterGroupStatus = lens _cnParameterGroupStatus (\ s a -> s{_cnParameterGroupStatus = a});---- | The date and time when the cache node was created.-cnCacheNodeCreateTime :: Lens' CacheNode (Maybe UTCTime)-cnCacheNodeCreateTime = lens _cnCacheNodeCreateTime (\ s a -> s{_cnCacheNodeCreateTime = a}) . mapping _Time;---- | The Availability Zone where this node was created and now resides.-cnCustomerAvailabilityZone :: Lens' CacheNode (Maybe Text)-cnCustomerAvailabilityZone = lens _cnCustomerAvailabilityZone (\ s a -> s{_cnCustomerAvailabilityZone = a});---- | The cache node identifier. A node ID is a numeric identifier (0001, 0002, etc.). The combination of cluster ID and node ID uniquely identifies every cache node used in a customer's AWS account.-cnCacheNodeId :: Lens' CacheNode (Maybe Text)-cnCacheNodeId = lens _cnCacheNodeId (\ s a -> s{_cnCacheNodeId = a});---- | The current state of this cache node.-cnCacheNodeStatus :: Lens' CacheNode (Maybe Text)-cnCacheNodeStatus = lens _cnCacheNodeStatus (\ s a -> s{_cnCacheNodeStatus = a});---- | The hostname for connecting to this cache node.-cnEndpoint :: Lens' CacheNode (Maybe Endpoint)-cnEndpoint = lens _cnEndpoint (\ s a -> s{_cnEndpoint = a});--instance FromXML CacheNode where-        parseXML x-          = CacheNode' <$>-              (x .@? "SourceCacheNodeId") <*>-                (x .@? "ParameterGroupStatus")-                <*> (x .@? "CacheNodeCreateTime")-                <*> (x .@? "CustomerAvailabilityZone")-                <*> (x .@? "CacheNodeId")-                <*> (x .@? "CacheNodeStatus")-                <*> (x .@? "Endpoint")--instance Hashable CacheNode--instance NFData CacheNode---- | A parameter that has a different value for each cache node type it is applied to. For example, in a Redis cache cluster, a @cache.m1.large@ cache node type would have a larger @maxmemory@ value than a @cache.m1.small@ type.------------ /See:/ 'cacheNodeTypeSpecificParameter' smart constructor.-data CacheNodeTypeSpecificParameter = CacheNodeTypeSpecificParameter'-    { _cntspCacheNodeTypeSpecificValues :: !(Maybe [CacheNodeTypeSpecificValue])-    , _cntspMinimumEngineVersion        :: !(Maybe Text)-    , _cntspSource                      :: !(Maybe Text)-    , _cntspIsModifiable                :: !(Maybe Bool)-    , _cntspDataType                    :: !(Maybe Text)-    , _cntspAllowedValues               :: !(Maybe Text)-    , _cntspParameterName               :: !(Maybe Text)-    , _cntspDescription                 :: !(Maybe Text)-    , _cntspChangeType                  :: !(Maybe ChangeType)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CacheNodeTypeSpecificParameter' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cntspCacheNodeTypeSpecificValues' - A list of cache node types and their corresponding values for this parameter.------ * 'cntspMinimumEngineVersion' - The earliest cache engine version to which the parameter can apply.------ * 'cntspSource' - The source of the parameter value.------ * 'cntspIsModifiable' - Indicates whether (@true@ ) or not (@false@ ) the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed.------ * 'cntspDataType' - The valid data type for the parameter.------ * 'cntspAllowedValues' - The valid range of values for the parameter.------ * 'cntspParameterName' - The name of the parameter.------ * 'cntspDescription' - A description of the parameter.------ * 'cntspChangeType' - Indicates whether a change to the parameter is applied immediately or requires a reboot for the change to be applied. You can force a reboot or wait until the next maintenance window's reboot. For more information, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Clusters.Rebooting.html Rebooting a Cluster> .-cacheNodeTypeSpecificParameter-    :: CacheNodeTypeSpecificParameter-cacheNodeTypeSpecificParameter =-    CacheNodeTypeSpecificParameter'-    { _cntspCacheNodeTypeSpecificValues = Nothing-    , _cntspMinimumEngineVersion = Nothing-    , _cntspSource = Nothing-    , _cntspIsModifiable = Nothing-    , _cntspDataType = Nothing-    , _cntspAllowedValues = Nothing-    , _cntspParameterName = Nothing-    , _cntspDescription = Nothing-    , _cntspChangeType = Nothing-    }---- | A list of cache node types and their corresponding values for this parameter.-cntspCacheNodeTypeSpecificValues :: Lens' CacheNodeTypeSpecificParameter [CacheNodeTypeSpecificValue]-cntspCacheNodeTypeSpecificValues = lens _cntspCacheNodeTypeSpecificValues (\ s a -> s{_cntspCacheNodeTypeSpecificValues = a}) . _Default . _Coerce;---- | The earliest cache engine version to which the parameter can apply.-cntspMinimumEngineVersion :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)-cntspMinimumEngineVersion = lens _cntspMinimumEngineVersion (\ s a -> s{_cntspMinimumEngineVersion = a});---- | The source of the parameter value.-cntspSource :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)-cntspSource = lens _cntspSource (\ s a -> s{_cntspSource = a});---- | Indicates whether (@true@ ) or not (@false@ ) the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed.-cntspIsModifiable :: Lens' CacheNodeTypeSpecificParameter (Maybe Bool)-cntspIsModifiable = lens _cntspIsModifiable (\ s a -> s{_cntspIsModifiable = a});---- | The valid data type for the parameter.-cntspDataType :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)-cntspDataType = lens _cntspDataType (\ s a -> s{_cntspDataType = a});---- | The valid range of values for the parameter.-cntspAllowedValues :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)-cntspAllowedValues = lens _cntspAllowedValues (\ s a -> s{_cntspAllowedValues = a});---- | The name of the parameter.-cntspParameterName :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)-cntspParameterName = lens _cntspParameterName (\ s a -> s{_cntspParameterName = a});---- | A description of the parameter.-cntspDescription :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)-cntspDescription = lens _cntspDescription (\ s a -> s{_cntspDescription = a});---- | Indicates whether a change to the parameter is applied immediately or requires a reboot for the change to be applied. You can force a reboot or wait until the next maintenance window's reboot. For more information, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Clusters.Rebooting.html Rebooting a Cluster> .-cntspChangeType :: Lens' CacheNodeTypeSpecificParameter (Maybe ChangeType)-cntspChangeType = lens _cntspChangeType (\ s a -> s{_cntspChangeType = a});--instance FromXML CacheNodeTypeSpecificParameter where-        parseXML x-          = CacheNodeTypeSpecificParameter' <$>-              (x .@? "CacheNodeTypeSpecificValues" .!@ mempty >>=-                 may (parseXMLList "CacheNodeTypeSpecificValue"))-                <*> (x .@? "MinimumEngineVersion")-                <*> (x .@? "Source")-                <*> (x .@? "IsModifiable")-                <*> (x .@? "DataType")-                <*> (x .@? "AllowedValues")-                <*> (x .@? "ParameterName")-                <*> (x .@? "Description")-                <*> (x .@? "ChangeType")--instance Hashable CacheNodeTypeSpecificParameter--instance NFData CacheNodeTypeSpecificParameter---- | A value that applies only to a certain cache node type.------------ /See:/ 'cacheNodeTypeSpecificValue' smart constructor.-data CacheNodeTypeSpecificValue = CacheNodeTypeSpecificValue'-    { _cntsvCacheNodeType :: !(Maybe Text)-    , _cntsvValue         :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CacheNodeTypeSpecificValue' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cntsvCacheNodeType' - The cache node type for which this value applies.------ * 'cntsvValue' - The value for the cache node type.-cacheNodeTypeSpecificValue-    :: CacheNodeTypeSpecificValue-cacheNodeTypeSpecificValue =-    CacheNodeTypeSpecificValue'-    { _cntsvCacheNodeType = Nothing-    , _cntsvValue = Nothing-    }---- | The cache node type for which this value applies.-cntsvCacheNodeType :: Lens' CacheNodeTypeSpecificValue (Maybe Text)-cntsvCacheNodeType = lens _cntsvCacheNodeType (\ s a -> s{_cntsvCacheNodeType = a});---- | The value for the cache node type.-cntsvValue :: Lens' CacheNodeTypeSpecificValue (Maybe Text)-cntsvValue = lens _cntsvValue (\ s a -> s{_cntsvValue = a});--instance FromXML CacheNodeTypeSpecificValue where-        parseXML x-          = CacheNodeTypeSpecificValue' <$>-              (x .@? "CacheNodeType") <*> (x .@? "Value")--instance Hashable CacheNodeTypeSpecificValue--instance NFData CacheNodeTypeSpecificValue---- | Represents the output of a @CreateCacheParameterGroup@ operation.------------ /See:/ 'cacheParameterGroup' smart constructor.-data CacheParameterGroup = CacheParameterGroup'-    { _cpgCacheParameterGroupFamily :: !(Maybe Text)-    , _cpgCacheParameterGroupName   :: !(Maybe Text)-    , _cpgDescription               :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CacheParameterGroup' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cpgCacheParameterGroupFamily' - The name of the cache parameter group family that this cache parameter group is compatible with. Valid values are: @memcached1.4@ | @redis2.6@ | @redis2.8@ | @redis3.2@------ * 'cpgCacheParameterGroupName' - The name of the cache parameter group.------ * 'cpgDescription' - The description for this cache parameter group.-cacheParameterGroup-    :: CacheParameterGroup-cacheParameterGroup =-    CacheParameterGroup'-    { _cpgCacheParameterGroupFamily = Nothing-    , _cpgCacheParameterGroupName = Nothing-    , _cpgDescription = Nothing-    }---- | The name of the cache parameter group family that this cache parameter group is compatible with. Valid values are: @memcached1.4@ | @redis2.6@ | @redis2.8@ | @redis3.2@-cpgCacheParameterGroupFamily :: Lens' CacheParameterGroup (Maybe Text)-cpgCacheParameterGroupFamily = lens _cpgCacheParameterGroupFamily (\ s a -> s{_cpgCacheParameterGroupFamily = a});---- | The name of the cache parameter group.-cpgCacheParameterGroupName :: Lens' CacheParameterGroup (Maybe Text)-cpgCacheParameterGroupName = lens _cpgCacheParameterGroupName (\ s a -> s{_cpgCacheParameterGroupName = a});---- | The description for this cache parameter group.-cpgDescription :: Lens' CacheParameterGroup (Maybe Text)-cpgDescription = lens _cpgDescription (\ s a -> s{_cpgDescription = a});--instance FromXML CacheParameterGroup where-        parseXML x-          = CacheParameterGroup' <$>-              (x .@? "CacheParameterGroupFamily") <*>-                (x .@? "CacheParameterGroupName")-                <*> (x .@? "Description")--instance Hashable CacheParameterGroup--instance NFData CacheParameterGroup---- | Represents the output of one of the following operations:---------     * @ModifyCacheParameterGroup@------     * @ResetCacheParameterGroup@--------------- /See:/ 'cacheParameterGroupNameMessage' smart constructor.-newtype CacheParameterGroupNameMessage = CacheParameterGroupNameMessage'-    { _cpgnmCacheParameterGroupName :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CacheParameterGroupNameMessage' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cpgnmCacheParameterGroupName' - The name of the cache parameter group.-cacheParameterGroupNameMessage-    :: CacheParameterGroupNameMessage-cacheParameterGroupNameMessage =-    CacheParameterGroupNameMessage'-    { _cpgnmCacheParameterGroupName = Nothing-    }---- | The name of the cache parameter group.-cpgnmCacheParameterGroupName :: Lens' CacheParameterGroupNameMessage (Maybe Text)-cpgnmCacheParameterGroupName = lens _cpgnmCacheParameterGroupName (\ s a -> s{_cpgnmCacheParameterGroupName = a});--instance FromXML CacheParameterGroupNameMessage where-        parseXML x-          = CacheParameterGroupNameMessage' <$>-              (x .@? "CacheParameterGroupName")--instance Hashable CacheParameterGroupNameMessage--instance NFData CacheParameterGroupNameMessage---- | Status of the cache parameter group.------------ /See:/ 'cacheParameterGroupStatus' smart constructor.-data CacheParameterGroupStatus = CacheParameterGroupStatus'-    { _cpgsCacheParameterGroupName :: !(Maybe Text)-    , _cpgsCacheNodeIdsToReboot    :: !(Maybe [Text])-    , _cpgsParameterApplyStatus    :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CacheParameterGroupStatus' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cpgsCacheParameterGroupName' - The name of the cache parameter group.------ * 'cpgsCacheNodeIdsToReboot' - A list of the cache node IDs which need to be rebooted for parameter changes to be applied. A node ID is a numeric identifier (0001, 0002, etc.).------ * 'cpgsParameterApplyStatus' - The status of parameter updates.-cacheParameterGroupStatus-    :: CacheParameterGroupStatus-cacheParameterGroupStatus =-    CacheParameterGroupStatus'-    { _cpgsCacheParameterGroupName = Nothing-    , _cpgsCacheNodeIdsToReboot = Nothing-    , _cpgsParameterApplyStatus = Nothing-    }---- | The name of the cache parameter group.-cpgsCacheParameterGroupName :: Lens' CacheParameterGroupStatus (Maybe Text)-cpgsCacheParameterGroupName = lens _cpgsCacheParameterGroupName (\ s a -> s{_cpgsCacheParameterGroupName = a});---- | A list of the cache node IDs which need to be rebooted for parameter changes to be applied. A node ID is a numeric identifier (0001, 0002, etc.).-cpgsCacheNodeIdsToReboot :: Lens' CacheParameterGroupStatus [Text]-cpgsCacheNodeIdsToReboot = lens _cpgsCacheNodeIdsToReboot (\ s a -> s{_cpgsCacheNodeIdsToReboot = a}) . _Default . _Coerce;---- | The status of parameter updates.-cpgsParameterApplyStatus :: Lens' CacheParameterGroupStatus (Maybe Text)-cpgsParameterApplyStatus = lens _cpgsParameterApplyStatus (\ s a -> s{_cpgsParameterApplyStatus = a});--instance FromXML CacheParameterGroupStatus where-        parseXML x-          = CacheParameterGroupStatus' <$>-              (x .@? "CacheParameterGroupName") <*>-                (x .@? "CacheNodeIdsToReboot" .!@ mempty >>=-                   may (parseXMLList "CacheNodeId"))-                <*> (x .@? "ParameterApplyStatus")--instance Hashable CacheParameterGroupStatus--instance NFData CacheParameterGroupStatus---- | Represents the output of one of the following operations:---------     * @AuthorizeCacheSecurityGroupIngress@------     * @CreateCacheSecurityGroup@------     * @RevokeCacheSecurityGroupIngress@--------------- /See:/ 'cacheSecurityGroup' smart constructor.-data CacheSecurityGroup = CacheSecurityGroup'-    { _csgCacheSecurityGroupName :: !(Maybe Text)-    , _csgOwnerId                :: !(Maybe Text)-    , _csgEC2SecurityGroups      :: !(Maybe [EC2SecurityGroup])-    , _csgDescription            :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CacheSecurityGroup' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'csgCacheSecurityGroupName' - The name of the cache security group.------ * 'csgOwnerId' - The AWS account ID of the cache security group owner.------ * 'csgEC2SecurityGroups' - A list of Amazon EC2 security groups that are associated with this cache security group.------ * 'csgDescription' - The description of the cache security group.-cacheSecurityGroup-    :: CacheSecurityGroup-cacheSecurityGroup =-    CacheSecurityGroup'-    { _csgCacheSecurityGroupName = Nothing-    , _csgOwnerId = Nothing-    , _csgEC2SecurityGroups = Nothing-    , _csgDescription = Nothing-    }---- | The name of the cache security group.-csgCacheSecurityGroupName :: Lens' CacheSecurityGroup (Maybe Text)-csgCacheSecurityGroupName = lens _csgCacheSecurityGroupName (\ s a -> s{_csgCacheSecurityGroupName = a});---- | The AWS account ID of the cache security group owner.-csgOwnerId :: Lens' CacheSecurityGroup (Maybe Text)-csgOwnerId = lens _csgOwnerId (\ s a -> s{_csgOwnerId = a});---- | A list of Amazon EC2 security groups that are associated with this cache security group.-csgEC2SecurityGroups :: Lens' CacheSecurityGroup [EC2SecurityGroup]-csgEC2SecurityGroups = lens _csgEC2SecurityGroups (\ s a -> s{_csgEC2SecurityGroups = a}) . _Default . _Coerce;---- | The description of the cache security group.-csgDescription :: Lens' CacheSecurityGroup (Maybe Text)-csgDescription = lens _csgDescription (\ s a -> s{_csgDescription = a});--instance FromXML CacheSecurityGroup where-        parseXML x-          = CacheSecurityGroup' <$>-              (x .@? "CacheSecurityGroupName") <*>-                (x .@? "OwnerId")-                <*>-                (x .@? "EC2SecurityGroups" .!@ mempty >>=-                   may (parseXMLList "EC2SecurityGroup"))-                <*> (x .@? "Description")--instance Hashable CacheSecurityGroup--instance NFData CacheSecurityGroup---- | Represents a cache cluster's status within a particular cache security group.------------ /See:/ 'cacheSecurityGroupMembership' smart constructor.-data CacheSecurityGroupMembership = CacheSecurityGroupMembership'-    { _csgmStatus                 :: !(Maybe Text)-    , _csgmCacheSecurityGroupName :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CacheSecurityGroupMembership' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'csgmStatus' - The membership status in the cache security group. The status changes when a cache security group is modified, or when the cache security groups assigned to a cache cluster are modified.------ * 'csgmCacheSecurityGroupName' - The name of the cache security group.-cacheSecurityGroupMembership-    :: CacheSecurityGroupMembership-cacheSecurityGroupMembership =-    CacheSecurityGroupMembership'-    { _csgmStatus = Nothing-    , _csgmCacheSecurityGroupName = Nothing-    }---- | The membership status in the cache security group. The status changes when a cache security group is modified, or when the cache security groups assigned to a cache cluster are modified.-csgmStatus :: Lens' CacheSecurityGroupMembership (Maybe Text)-csgmStatus = lens _csgmStatus (\ s a -> s{_csgmStatus = a});---- | The name of the cache security group.-csgmCacheSecurityGroupName :: Lens' CacheSecurityGroupMembership (Maybe Text)-csgmCacheSecurityGroupName = lens _csgmCacheSecurityGroupName (\ s a -> s{_csgmCacheSecurityGroupName = a});--instance FromXML CacheSecurityGroupMembership where-        parseXML x-          = CacheSecurityGroupMembership' <$>-              (x .@? "Status") <*> (x .@? "CacheSecurityGroupName")--instance Hashable CacheSecurityGroupMembership--instance NFData CacheSecurityGroupMembership---- | Represents the output of one of the following operations:---------     * @CreateCacheSubnetGroup@------     * @ModifyCacheSubnetGroup@--------------- /See:/ 'cacheSubnetGroup' smart constructor.-data CacheSubnetGroup = CacheSubnetGroup'-    { _csgVPCId                       :: !(Maybe Text)-    , _csgSubnets                     :: !(Maybe [Subnet])-    , _csgCacheSubnetGroupName        :: !(Maybe Text)-    , _csgCacheSubnetGroupDescription :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CacheSubnetGroup' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'csgVPCId' - The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet group.------ * 'csgSubnets' - A list of subnets associated with the cache subnet group.------ * 'csgCacheSubnetGroupName' - The name of the cache subnet group.------ * 'csgCacheSubnetGroupDescription' - The description of the cache subnet group.-cacheSubnetGroup-    :: CacheSubnetGroup-cacheSubnetGroup =-    CacheSubnetGroup'-    { _csgVPCId = Nothing-    , _csgSubnets = Nothing-    , _csgCacheSubnetGroupName = Nothing-    , _csgCacheSubnetGroupDescription = Nothing-    }---- | The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet group.-csgVPCId :: Lens' CacheSubnetGroup (Maybe Text)-csgVPCId = lens _csgVPCId (\ s a -> s{_csgVPCId = a});---- | A list of subnets associated with the cache subnet group.-csgSubnets :: Lens' CacheSubnetGroup [Subnet]-csgSubnets = lens _csgSubnets (\ s a -> s{_csgSubnets = a}) . _Default . _Coerce;---- | The name of the cache subnet group.-csgCacheSubnetGroupName :: Lens' CacheSubnetGroup (Maybe Text)-csgCacheSubnetGroupName = lens _csgCacheSubnetGroupName (\ s a -> s{_csgCacheSubnetGroupName = a});---- | The description of the cache subnet group.-csgCacheSubnetGroupDescription :: Lens' CacheSubnetGroup (Maybe Text)-csgCacheSubnetGroupDescription = lens _csgCacheSubnetGroupDescription (\ s a -> s{_csgCacheSubnetGroupDescription = a});--instance FromXML CacheSubnetGroup where-        parseXML x-          = CacheSubnetGroup' <$>-              (x .@? "VpcId") <*>-                (x .@? "Subnets" .!@ mempty >>=-                   may (parseXMLList "Subnet"))-                <*> (x .@? "CacheSubnetGroupName")-                <*> (x .@? "CacheSubnetGroupDescription")--instance Hashable CacheSubnetGroup--instance NFData CacheSubnetGroup---- | Provides ownership and status information for an Amazon EC2 security group.------------ /See:/ 'ec2SecurityGroup' smart constructor.-data EC2SecurityGroup = EC2SecurityGroup'-    { _esgStatus                  :: !(Maybe Text)-    , _esgEC2SecurityGroupOwnerId :: !(Maybe Text)-    , _esgEC2SecurityGroupName    :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'EC2SecurityGroup' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'esgStatus' - The status of the Amazon EC2 security group.------ * 'esgEC2SecurityGroupOwnerId' - The AWS account ID of the Amazon EC2 security group owner.------ * 'esgEC2SecurityGroupName' - The name of the Amazon EC2 security group.-ec2SecurityGroup-    :: EC2SecurityGroup-ec2SecurityGroup =-    EC2SecurityGroup'-    { _esgStatus = Nothing-    , _esgEC2SecurityGroupOwnerId = Nothing-    , _esgEC2SecurityGroupName = Nothing-    }---- | The status of the Amazon EC2 security group.-esgStatus :: Lens' EC2SecurityGroup (Maybe Text)-esgStatus = lens _esgStatus (\ s a -> s{_esgStatus = a});---- | The AWS account ID of the Amazon EC2 security group owner.-esgEC2SecurityGroupOwnerId :: Lens' EC2SecurityGroup (Maybe Text)-esgEC2SecurityGroupOwnerId = lens _esgEC2SecurityGroupOwnerId (\ s a -> s{_esgEC2SecurityGroupOwnerId = a});---- | The name of the Amazon EC2 security group.-esgEC2SecurityGroupName :: Lens' EC2SecurityGroup (Maybe Text)-esgEC2SecurityGroupName = lens _esgEC2SecurityGroupName (\ s a -> s{_esgEC2SecurityGroupName = a});--instance FromXML EC2SecurityGroup where-        parseXML x-          = EC2SecurityGroup' <$>-              (x .@? "Status") <*>-                (x .@? "EC2SecurityGroupOwnerId")-                <*> (x .@? "EC2SecurityGroupName")--instance Hashable EC2SecurityGroup--instance NFData EC2SecurityGroup---- | Represents the information required for client programs to connect to a cache node.------------ /See:/ 'endpoint' smart constructor.-data Endpoint = Endpoint'-    { _eAddress :: !(Maybe Text)-    , _ePort    :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Endpoint' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eAddress' - The DNS hostname of the cache node.------ * 'ePort' - The port number that the cache engine is listening on.-endpoint-    :: Endpoint-endpoint =-    Endpoint'-    { _eAddress = Nothing-    , _ePort = Nothing-    }---- | The DNS hostname of the cache node.-eAddress :: Lens' Endpoint (Maybe Text)-eAddress = lens _eAddress (\ s a -> s{_eAddress = a});---- | The port number that the cache engine is listening on.-ePort :: Lens' Endpoint (Maybe Int)-ePort = lens _ePort (\ s a -> s{_ePort = a});--instance FromXML Endpoint where-        parseXML x-          = Endpoint' <$> (x .@? "Address") <*> (x .@? "Port")--instance Hashable Endpoint--instance NFData Endpoint---- | Represents the output of a @DescribeEngineDefaultParameters@ operation.------------ /See:/ 'engineDefaults' smart constructor.-data EngineDefaults = EngineDefaults'-    { _edCacheParameterGroupFamily       :: !(Maybe Text)-    , _edCacheNodeTypeSpecificParameters :: !(Maybe [CacheNodeTypeSpecificParameter])-    , _edMarker                          :: !(Maybe Text)-    , _edParameters                      :: !(Maybe [Parameter])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'EngineDefaults' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'edCacheParameterGroupFamily' - Specifies the name of the cache parameter group family to which the engine default parameters apply. Valid values are: @memcached1.4@ | @redis2.6@ | @redis2.8@ | @redis3.2@------ * 'edCacheNodeTypeSpecificParameters' - A list of parameters specific to a particular cache node type. Each element in the list contains detailed information about one parameter.------ * 'edMarker' - Provides an identifier to allow retrieval of paginated results.------ * 'edParameters' - Contains a list of engine default parameters.-engineDefaults-    :: EngineDefaults-engineDefaults =-    EngineDefaults'-    { _edCacheParameterGroupFamily = Nothing-    , _edCacheNodeTypeSpecificParameters = Nothing-    , _edMarker = Nothing-    , _edParameters = Nothing-    }---- | Specifies the name of the cache parameter group family to which the engine default parameters apply. Valid values are: @memcached1.4@ | @redis2.6@ | @redis2.8@ | @redis3.2@-edCacheParameterGroupFamily :: Lens' EngineDefaults (Maybe Text)-edCacheParameterGroupFamily = lens _edCacheParameterGroupFamily (\ s a -> s{_edCacheParameterGroupFamily = a});---- | A list of parameters specific to a particular cache node type. Each element in the list contains detailed information about one parameter.-edCacheNodeTypeSpecificParameters :: Lens' EngineDefaults [CacheNodeTypeSpecificParameter]-edCacheNodeTypeSpecificParameters = lens _edCacheNodeTypeSpecificParameters (\ s a -> s{_edCacheNodeTypeSpecificParameters = a}) . _Default . _Coerce;---- | Provides an identifier to allow retrieval of paginated results.-edMarker :: Lens' EngineDefaults (Maybe Text)-edMarker = lens _edMarker (\ s a -> s{_edMarker = a});---- | Contains a list of engine default parameters.-edParameters :: Lens' EngineDefaults [Parameter]-edParameters = lens _edParameters (\ s a -> s{_edParameters = a}) . _Default . _Coerce;--instance FromXML EngineDefaults where-        parseXML x-          = EngineDefaults' <$>-              (x .@? "CacheParameterGroupFamily") <*>-                (x .@? "CacheNodeTypeSpecificParameters" .!@ mempty-                   >>=-                   may (parseXMLList "CacheNodeTypeSpecificParameter"))-                <*> (x .@? "Marker")-                <*>-                (x .@? "Parameters" .!@ mempty >>=-                   may (parseXMLList "Parameter"))--instance Hashable EngineDefaults--instance NFData EngineDefaults---- | Represents a single occurrence of something interesting within the system. Some examples of events are creating a cache cluster, adding or removing a cache node, or rebooting a node.------------ /See:/ 'event' smart constructor.-data Event = Event'-    { _eSourceType       :: !(Maybe SourceType)-    , _eSourceIdentifier :: !(Maybe Text)-    , _eDate             :: !(Maybe ISO8601)-    , _eMessage          :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Event' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eSourceType' - Specifies the origin of this event - a cache cluster, a parameter group, a security group, etc.------ * 'eSourceIdentifier' - The identifier for the source of the event. For example, if the event occurred at the cache cluster level, the identifier would be the name of the cache cluster.------ * 'eDate' - The date and time when the event occurred.------ * 'eMessage' - The text of the event.-event-    :: Event-event =-    Event'-    { _eSourceType = Nothing-    , _eSourceIdentifier = Nothing-    , _eDate = Nothing-    , _eMessage = Nothing-    }---- | Specifies the origin of this event - a cache cluster, a parameter group, a security group, etc.-eSourceType :: Lens' Event (Maybe SourceType)-eSourceType = lens _eSourceType (\ s a -> s{_eSourceType = a});---- | The identifier for the source of the event. For example, if the event occurred at the cache cluster level, the identifier would be the name of the cache cluster.-eSourceIdentifier :: Lens' Event (Maybe Text)-eSourceIdentifier = lens _eSourceIdentifier (\ s a -> s{_eSourceIdentifier = a});---- | The date and time when the event occurred.-eDate :: Lens' Event (Maybe UTCTime)-eDate = lens _eDate (\ s a -> s{_eDate = a}) . mapping _Time;---- | The text of the event.-eMessage :: Lens' Event (Maybe Text)-eMessage = lens _eMessage (\ s a -> s{_eMessage = a});--instance FromXML Event where-        parseXML x-          = Event' <$>-              (x .@? "SourceType") <*> (x .@? "SourceIdentifier")-                <*> (x .@? "Date")-                <*> (x .@? "Message")--instance Hashable Event--instance NFData Event---- | Represents a collection of cache nodes in a replication group. One node in the node group is the read/write primary node. All the other nodes are read-only Replica nodes.------------ /See:/ 'nodeGroup' smart constructor.-data NodeGroup = NodeGroup'-    { _ngStatus           :: !(Maybe Text)-    , _ngPrimaryEndpoint  :: !(Maybe Endpoint)-    , _ngSlots            :: !(Maybe Text)-    , _ngNodeGroupMembers :: !(Maybe [NodeGroupMember])-    , _ngNodeGroupId      :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NodeGroup' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ngStatus' - The current state of this replication group - @creating@ , @available@ , etc.------ * 'ngPrimaryEndpoint' - The endpoint of the primary node in this node group (shard).------ * 'ngSlots' - The keyspace for this node group (shard).------ * 'ngNodeGroupMembers' - A list containing information about individual nodes within the node group (shard).------ * 'ngNodeGroupId' - The identifier for the node group (shard). A Redis (cluster mode disabled) replication group contains only 1 node group; therefore, the node group ID is 0001. A Redis (cluster mode enabled) replication group contains 1 to 15 node groups numbered 0001 to 0015.-nodeGroup-    :: NodeGroup-nodeGroup =-    NodeGroup'-    { _ngStatus = Nothing-    , _ngPrimaryEndpoint = Nothing-    , _ngSlots = Nothing-    , _ngNodeGroupMembers = Nothing-    , _ngNodeGroupId = Nothing-    }---- | The current state of this replication group - @creating@ , @available@ , etc.-ngStatus :: Lens' NodeGroup (Maybe Text)-ngStatus = lens _ngStatus (\ s a -> s{_ngStatus = a});---- | The endpoint of the primary node in this node group (shard).-ngPrimaryEndpoint :: Lens' NodeGroup (Maybe Endpoint)-ngPrimaryEndpoint = lens _ngPrimaryEndpoint (\ s a -> s{_ngPrimaryEndpoint = a});---- | The keyspace for this node group (shard).-ngSlots :: Lens' NodeGroup (Maybe Text)-ngSlots = lens _ngSlots (\ s a -> s{_ngSlots = a});---- | A list containing information about individual nodes within the node group (shard).-ngNodeGroupMembers :: Lens' NodeGroup [NodeGroupMember]-ngNodeGroupMembers = lens _ngNodeGroupMembers (\ s a -> s{_ngNodeGroupMembers = a}) . _Default . _Coerce;---- | The identifier for the node group (shard). A Redis (cluster mode disabled) replication group contains only 1 node group; therefore, the node group ID is 0001. A Redis (cluster mode enabled) replication group contains 1 to 15 node groups numbered 0001 to 0015.-ngNodeGroupId :: Lens' NodeGroup (Maybe Text)-ngNodeGroupId = lens _ngNodeGroupId (\ s a -> s{_ngNodeGroupId = a});--instance FromXML NodeGroup where-        parseXML x-          = NodeGroup' <$>-              (x .@? "Status") <*> (x .@? "PrimaryEndpoint") <*>-                (x .@? "Slots")-                <*>-                (x .@? "NodeGroupMembers" .!@ mempty >>=-                   may (parseXMLList "NodeGroupMember"))-                <*> (x .@? "NodeGroupId")--instance Hashable NodeGroup--instance NFData NodeGroup---- | node group (shard) configuration options. Each node group (shard) configuration has the following: @Slots@ , @PrimaryAvailabilityZone@ , @ReplicaAvailabilityZones@ , @ReplicaCount@ .------------ /See:/ 'nodeGroupConfiguration' smart constructor.-data NodeGroupConfiguration = NodeGroupConfiguration'-    { _ngcSlots                    :: !(Maybe Text)-    , _ngcReplicaCount             :: !(Maybe Int)-    , _ngcPrimaryAvailabilityZone  :: !(Maybe Text)-    , _ngcReplicaAvailabilityZones :: !(Maybe [Text])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NodeGroupConfiguration' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ngcSlots' - A string that specifies the keyspaces as a series of comma separated values. Keyspaces are 0 to 16,383. The string is in the format @startkey-endkey@ . Example: @"0-3999"@------ * 'ngcReplicaCount' - The number of read replica nodes in this node group (shard).------ * 'ngcPrimaryAvailabilityZone' - The Availability Zone where the primary node of this node group (shard) is launched.------ * 'ngcReplicaAvailabilityZones' - A list of Availability Zones to be used for the read replicas. The number of Availability Zones in this list must match the value of @ReplicaCount@ or @ReplicasPerNodeGroup@ if not specified.-nodeGroupConfiguration-    :: NodeGroupConfiguration-nodeGroupConfiguration =-    NodeGroupConfiguration'-    { _ngcSlots = Nothing-    , _ngcReplicaCount = Nothing-    , _ngcPrimaryAvailabilityZone = Nothing-    , _ngcReplicaAvailabilityZones = Nothing-    }---- | A string that specifies the keyspaces as a series of comma separated values. Keyspaces are 0 to 16,383. The string is in the format @startkey-endkey@ . Example: @"0-3999"@-ngcSlots :: Lens' NodeGroupConfiguration (Maybe Text)-ngcSlots = lens _ngcSlots (\ s a -> s{_ngcSlots = a});---- | The number of read replica nodes in this node group (shard).-ngcReplicaCount :: Lens' NodeGroupConfiguration (Maybe Int)-ngcReplicaCount = lens _ngcReplicaCount (\ s a -> s{_ngcReplicaCount = a});---- | The Availability Zone where the primary node of this node group (shard) is launched.-ngcPrimaryAvailabilityZone :: Lens' NodeGroupConfiguration (Maybe Text)-ngcPrimaryAvailabilityZone = lens _ngcPrimaryAvailabilityZone (\ s a -> s{_ngcPrimaryAvailabilityZone = a});---- | A list of Availability Zones to be used for the read replicas. The number of Availability Zones in this list must match the value of @ReplicaCount@ or @ReplicasPerNodeGroup@ if not specified.-ngcReplicaAvailabilityZones :: Lens' NodeGroupConfiguration [Text]-ngcReplicaAvailabilityZones = lens _ngcReplicaAvailabilityZones (\ s a -> s{_ngcReplicaAvailabilityZones = a}) . _Default . _Coerce;--instance FromXML NodeGroupConfiguration where-        parseXML x-          = NodeGroupConfiguration' <$>-              (x .@? "Slots") <*> (x .@? "ReplicaCount") <*>-                (x .@? "PrimaryAvailabilityZone")-                <*>-                (x .@? "ReplicaAvailabilityZones" .!@ mempty >>=-                   may (parseXMLList "AvailabilityZone"))--instance Hashable NodeGroupConfiguration--instance NFData NodeGroupConfiguration--instance ToQuery NodeGroupConfiguration where-        toQuery NodeGroupConfiguration'{..}-          = mconcat-              ["Slots" =: _ngcSlots,-               "ReplicaCount" =: _ngcReplicaCount,-               "PrimaryAvailabilityZone" =:-                 _ngcPrimaryAvailabilityZone,-               "ReplicaAvailabilityZones" =:-                 toQuery-                   (toQueryList "AvailabilityZone" <$>-                      _ngcReplicaAvailabilityZones)]---- | Represents a single node within a node group (shard).------------ /See:/ 'nodeGroupMember' smart constructor.-data NodeGroupMember = NodeGroupMember'-    { _ngmCacheClusterId            :: !(Maybe Text)-    , _ngmCacheNodeId               :: !(Maybe Text)-    , _ngmPreferredAvailabilityZone :: !(Maybe Text)-    , _ngmCurrentRole               :: !(Maybe Text)-    , _ngmReadEndpoint              :: !(Maybe Endpoint)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NodeGroupMember' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ngmCacheClusterId' - The ID of the cache cluster to which the node belongs.------ * 'ngmCacheNodeId' - The ID of the node within its cache cluster. A node ID is a numeric identifier (0001, 0002, etc.).------ * 'ngmPreferredAvailabilityZone' - The name of the Availability Zone in which the node is located.------ * 'ngmCurrentRole' - The role that is currently assigned to the node - @primary@ or @replica@ .------ * 'ngmReadEndpoint' - Undocumented member.-nodeGroupMember-    :: NodeGroupMember-nodeGroupMember =-    NodeGroupMember'-    { _ngmCacheClusterId = Nothing-    , _ngmCacheNodeId = Nothing-    , _ngmPreferredAvailabilityZone = Nothing-    , _ngmCurrentRole = Nothing-    , _ngmReadEndpoint = Nothing-    }---- | The ID of the cache cluster to which the node belongs.-ngmCacheClusterId :: Lens' NodeGroupMember (Maybe Text)-ngmCacheClusterId = lens _ngmCacheClusterId (\ s a -> s{_ngmCacheClusterId = a});---- | The ID of the node within its cache cluster. A node ID is a numeric identifier (0001, 0002, etc.).-ngmCacheNodeId :: Lens' NodeGroupMember (Maybe Text)-ngmCacheNodeId = lens _ngmCacheNodeId (\ s a -> s{_ngmCacheNodeId = a});---- | The name of the Availability Zone in which the node is located.-ngmPreferredAvailabilityZone :: Lens' NodeGroupMember (Maybe Text)-ngmPreferredAvailabilityZone = lens _ngmPreferredAvailabilityZone (\ s a -> s{_ngmPreferredAvailabilityZone = a});---- | The role that is currently assigned to the node - @primary@ or @replica@ .-ngmCurrentRole :: Lens' NodeGroupMember (Maybe Text)-ngmCurrentRole = lens _ngmCurrentRole (\ s a -> s{_ngmCurrentRole = a});---- | Undocumented member.-ngmReadEndpoint :: Lens' NodeGroupMember (Maybe Endpoint)-ngmReadEndpoint = lens _ngmReadEndpoint (\ s a -> s{_ngmReadEndpoint = a});--instance FromXML NodeGroupMember where-        parseXML x-          = NodeGroupMember' <$>-              (x .@? "CacheClusterId") <*> (x .@? "CacheNodeId")-                <*> (x .@? "PreferredAvailabilityZone")-                <*> (x .@? "CurrentRole")-                <*> (x .@? "ReadEndpoint")--instance Hashable NodeGroupMember--instance NFData NodeGroupMember---- | Represents an individual cache node in a snapshot of a cache cluster.------------ /See:/ 'nodeSnapshot' smart constructor.-data NodeSnapshot = NodeSnapshot'-    { _nsNodeGroupConfiguration :: !(Maybe NodeGroupConfiguration)-    , _nsCacheNodeCreateTime    :: !(Maybe ISO8601)-    , _nsCacheClusterId         :: !(Maybe Text)-    , _nsCacheNodeId            :: !(Maybe Text)-    , _nsNodeGroupId            :: !(Maybe Text)-    , _nsSnapshotCreateTime     :: !(Maybe ISO8601)-    , _nsCacheSize              :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NodeSnapshot' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'nsNodeGroupConfiguration' - The configuration for the source node group (shard).------ * 'nsCacheNodeCreateTime' - The date and time when the cache node was created in the source cache cluster.------ * 'nsCacheClusterId' - A unique identifier for the source cache cluster.------ * 'nsCacheNodeId' - The cache node identifier for the node in the source cache cluster.------ * 'nsNodeGroupId' - A unique identifier for the source node group (shard).------ * 'nsSnapshotCreateTime' - The date and time when the source node's metadata and cache data set was obtained for the snapshot.------ * 'nsCacheSize' - The size of the cache on the source cache node.-nodeSnapshot-    :: NodeSnapshot-nodeSnapshot =-    NodeSnapshot'-    { _nsNodeGroupConfiguration = Nothing-    , _nsCacheNodeCreateTime = Nothing-    , _nsCacheClusterId = Nothing-    , _nsCacheNodeId = Nothing-    , _nsNodeGroupId = Nothing-    , _nsSnapshotCreateTime = Nothing-    , _nsCacheSize = Nothing-    }---- | The configuration for the source node group (shard).-nsNodeGroupConfiguration :: Lens' NodeSnapshot (Maybe NodeGroupConfiguration)-nsNodeGroupConfiguration = lens _nsNodeGroupConfiguration (\ s a -> s{_nsNodeGroupConfiguration = a});---- | The date and time when the cache node was created in the source cache cluster.-nsCacheNodeCreateTime :: Lens' NodeSnapshot (Maybe UTCTime)-nsCacheNodeCreateTime = lens _nsCacheNodeCreateTime (\ s a -> s{_nsCacheNodeCreateTime = a}) . mapping _Time;---- | A unique identifier for the source cache cluster.-nsCacheClusterId :: Lens' NodeSnapshot (Maybe Text)-nsCacheClusterId = lens _nsCacheClusterId (\ s a -> s{_nsCacheClusterId = a});---- | The cache node identifier for the node in the source cache cluster.-nsCacheNodeId :: Lens' NodeSnapshot (Maybe Text)-nsCacheNodeId = lens _nsCacheNodeId (\ s a -> s{_nsCacheNodeId = a});---- | A unique identifier for the source node group (shard).-nsNodeGroupId :: Lens' NodeSnapshot (Maybe Text)-nsNodeGroupId = lens _nsNodeGroupId (\ s a -> s{_nsNodeGroupId = a});---- | The date and time when the source node's metadata and cache data set was obtained for the snapshot.-nsSnapshotCreateTime :: Lens' NodeSnapshot (Maybe UTCTime)-nsSnapshotCreateTime = lens _nsSnapshotCreateTime (\ s a -> s{_nsSnapshotCreateTime = a}) . mapping _Time;---- | The size of the cache on the source cache node.-nsCacheSize :: Lens' NodeSnapshot (Maybe Text)-nsCacheSize = lens _nsCacheSize (\ s a -> s{_nsCacheSize = a});--instance FromXML NodeSnapshot where-        parseXML x-          = NodeSnapshot' <$>-              (x .@? "NodeGroupConfiguration") <*>-                (x .@? "CacheNodeCreateTime")-                <*> (x .@? "CacheClusterId")-                <*> (x .@? "CacheNodeId")-                <*> (x .@? "NodeGroupId")-                <*> (x .@? "SnapshotCreateTime")-                <*> (x .@? "CacheSize")--instance Hashable NodeSnapshot--instance NFData NodeSnapshot---- | Describes a notification topic and its status. Notification topics are used for publishing ElastiCache events to subscribers using Amazon Simple Notification Service (SNS).------------ /See:/ 'notificationConfiguration' smart constructor.-data NotificationConfiguration = NotificationConfiguration'-    { _ncTopicStatus :: !(Maybe Text)-    , _ncTopicARN    :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NotificationConfiguration' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ncTopicStatus' - The current state of the topic.------ * 'ncTopicARN' - The Amazon Resource Name (ARN) that identifies the topic.-notificationConfiguration-    :: NotificationConfiguration-notificationConfiguration =-    NotificationConfiguration'-    { _ncTopicStatus = Nothing-    , _ncTopicARN = Nothing-    }---- | The current state of the topic.-ncTopicStatus :: Lens' NotificationConfiguration (Maybe Text)-ncTopicStatus = lens _ncTopicStatus (\ s a -> s{_ncTopicStatus = a});---- | The Amazon Resource Name (ARN) that identifies the topic.-ncTopicARN :: Lens' NotificationConfiguration (Maybe Text)-ncTopicARN = lens _ncTopicARN (\ s a -> s{_ncTopicARN = a});--instance FromXML NotificationConfiguration where-        parseXML x-          = NotificationConfiguration' <$>-              (x .@? "TopicStatus") <*> (x .@? "TopicArn")--instance Hashable NotificationConfiguration--instance NFData NotificationConfiguration---- | Describes an individual setting that controls some aspect of ElastiCache behavior.------------ /See:/ 'parameter' smart constructor.-data Parameter = Parameter'-    { _pParameterValue       :: !(Maybe Text)-    , _pMinimumEngineVersion :: !(Maybe Text)-    , _pSource               :: !(Maybe Text)-    , _pIsModifiable         :: !(Maybe Bool)-    , _pDataType             :: !(Maybe Text)-    , _pAllowedValues        :: !(Maybe Text)-    , _pParameterName        :: !(Maybe Text)-    , _pDescription          :: !(Maybe Text)-    , _pChangeType           :: !(Maybe ChangeType)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Parameter' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pParameterValue' - The value of the parameter.------ * 'pMinimumEngineVersion' - The earliest cache engine version to which the parameter can apply.------ * 'pSource' - The source of the parameter.------ * 'pIsModifiable' - Indicates whether (@true@ ) or not (@false@ ) the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed.------ * 'pDataType' - The valid data type for the parameter.------ * 'pAllowedValues' - The valid range of values for the parameter.------ * 'pParameterName' - The name of the parameter.------ * 'pDescription' - A description of the parameter.------ * 'pChangeType' - Indicates whether a change to the parameter is applied immediately or requires a reboot for the change to be applied. You can force a reboot or wait until the next maintenance window's reboot. For more information, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Clusters.Rebooting.html Rebooting a Cluster> .-parameter-    :: Parameter-parameter =-    Parameter'-    { _pParameterValue = Nothing-    , _pMinimumEngineVersion = Nothing-    , _pSource = Nothing-    , _pIsModifiable = Nothing-    , _pDataType = Nothing-    , _pAllowedValues = Nothing-    , _pParameterName = Nothing-    , _pDescription = Nothing-    , _pChangeType = Nothing-    }---- | The value of the parameter.-pParameterValue :: Lens' Parameter (Maybe Text)-pParameterValue = lens _pParameterValue (\ s a -> s{_pParameterValue = a});---- | The earliest cache engine version to which the parameter can apply.-pMinimumEngineVersion :: Lens' Parameter (Maybe Text)-pMinimumEngineVersion = lens _pMinimumEngineVersion (\ s a -> s{_pMinimumEngineVersion = a});---- | The source of the parameter.-pSource :: Lens' Parameter (Maybe Text)-pSource = lens _pSource (\ s a -> s{_pSource = a});---- | Indicates whether (@true@ ) or not (@false@ ) the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed.-pIsModifiable :: Lens' Parameter (Maybe Bool)-pIsModifiable = lens _pIsModifiable (\ s a -> s{_pIsModifiable = a});---- | The valid data type for the parameter.-pDataType :: Lens' Parameter (Maybe Text)-pDataType = lens _pDataType (\ s a -> s{_pDataType = a});---- | The valid range of values for the parameter.-pAllowedValues :: Lens' Parameter (Maybe Text)-pAllowedValues = lens _pAllowedValues (\ s a -> s{_pAllowedValues = a});---- | The name of the parameter.-pParameterName :: Lens' Parameter (Maybe Text)-pParameterName = lens _pParameterName (\ s a -> s{_pParameterName = a});---- | A description of the parameter.-pDescription :: Lens' Parameter (Maybe Text)-pDescription = lens _pDescription (\ s a -> s{_pDescription = a});---- | Indicates whether a change to the parameter is applied immediately or requires a reboot for the change to be applied. You can force a reboot or wait until the next maintenance window's reboot. For more information, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Clusters.Rebooting.html Rebooting a Cluster> .-pChangeType :: Lens' Parameter (Maybe ChangeType)-pChangeType = lens _pChangeType (\ s a -> s{_pChangeType = a});--instance FromXML Parameter where-        parseXML x-          = Parameter' <$>-              (x .@? "ParameterValue") <*>-                (x .@? "MinimumEngineVersion")-                <*> (x .@? "Source")-                <*> (x .@? "IsModifiable")-                <*> (x .@? "DataType")-                <*> (x .@? "AllowedValues")-                <*> (x .@? "ParameterName")-                <*> (x .@? "Description")-                <*> (x .@? "ChangeType")--instance Hashable Parameter--instance NFData Parameter---- | Describes a name-value pair that is used to update the value of a parameter.------------ /See:/ 'parameterNameValue' smart constructor.-data ParameterNameValue = ParameterNameValue'-    { _pnvParameterValue :: !(Maybe Text)-    , _pnvParameterName  :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ParameterNameValue' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pnvParameterValue' - The value of the parameter.------ * 'pnvParameterName' - The name of the parameter.-parameterNameValue-    :: ParameterNameValue-parameterNameValue =-    ParameterNameValue'-    { _pnvParameterValue = Nothing-    , _pnvParameterName = Nothing-    }---- | The value of the parameter.-pnvParameterValue :: Lens' ParameterNameValue (Maybe Text)-pnvParameterValue = lens _pnvParameterValue (\ s a -> s{_pnvParameterValue = a});---- | The name of the parameter.-pnvParameterName :: Lens' ParameterNameValue (Maybe Text)-pnvParameterName = lens _pnvParameterName (\ s a -> s{_pnvParameterName = a});--instance Hashable ParameterNameValue--instance NFData ParameterNameValue--instance ToQuery ParameterNameValue where-        toQuery ParameterNameValue'{..}-          = mconcat-              ["ParameterValue" =: _pnvParameterValue,-               "ParameterName" =: _pnvParameterName]---- | A group of settings that are applied to the cache cluster in the future, or that are currently being applied.------------ /See:/ 'pendingModifiedValues' smart constructor.-data PendingModifiedValues = PendingModifiedValues'-    { _pmvEngineVersion        :: !(Maybe Text)-    , _pmvCacheNodeType        :: !(Maybe Text)-    , _pmvCacheNodeIdsToRemove :: !(Maybe [Text])-    , _pmvNumCacheNodes        :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PendingModifiedValues' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pmvEngineVersion' - The new cache engine version that the cache cluster runs.------ * 'pmvCacheNodeType' - The cache node type that this cache cluster or replication group is scaled to.------ * 'pmvCacheNodeIdsToRemove' - A list of cache node IDs that are being removed (or will be removed) from the cache cluster. A node ID is a numeric identifier (0001, 0002, etc.).------ * 'pmvNumCacheNodes' - The new number of cache nodes for the cache cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.-pendingModifiedValues-    :: PendingModifiedValues-pendingModifiedValues =-    PendingModifiedValues'-    { _pmvEngineVersion = Nothing-    , _pmvCacheNodeType = Nothing-    , _pmvCacheNodeIdsToRemove = Nothing-    , _pmvNumCacheNodes = Nothing-    }---- | The new cache engine version that the cache cluster runs.-pmvEngineVersion :: Lens' PendingModifiedValues (Maybe Text)-pmvEngineVersion = lens _pmvEngineVersion (\ s a -> s{_pmvEngineVersion = a});---- | The cache node type that this cache cluster or replication group is scaled to.-pmvCacheNodeType :: Lens' PendingModifiedValues (Maybe Text)-pmvCacheNodeType = lens _pmvCacheNodeType (\ s a -> s{_pmvCacheNodeType = a});---- | A list of cache node IDs that are being removed (or will be removed) from the cache cluster. A node ID is a numeric identifier (0001, 0002, etc.).-pmvCacheNodeIdsToRemove :: Lens' PendingModifiedValues [Text]-pmvCacheNodeIdsToRemove = lens _pmvCacheNodeIdsToRemove (\ s a -> s{_pmvCacheNodeIdsToRemove = a}) . _Default . _Coerce;---- | The new number of cache nodes for the cache cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.-pmvNumCacheNodes :: Lens' PendingModifiedValues (Maybe Int)-pmvNumCacheNodes = lens _pmvNumCacheNodes (\ s a -> s{_pmvNumCacheNodes = a});--instance FromXML PendingModifiedValues where-        parseXML x-          = PendingModifiedValues' <$>-              (x .@? "EngineVersion") <*> (x .@? "CacheNodeType")-                <*>-                (x .@? "CacheNodeIdsToRemove" .!@ mempty >>=-                   may (parseXMLList "CacheNodeId"))-                <*> (x .@? "NumCacheNodes")--instance Hashable PendingModifiedValues--instance NFData PendingModifiedValues---- | Contains the specific price and frequency of a recurring charges for a reserved cache node, or for a reserved cache node offering.------------ /See:/ 'recurringCharge' smart constructor.-data RecurringCharge = RecurringCharge'-    { _rcRecurringChargeFrequency :: !(Maybe Text)-    , _rcRecurringChargeAmount    :: !(Maybe Double)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'RecurringCharge' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rcRecurringChargeFrequency' - The frequency of the recurring charge.------ * 'rcRecurringChargeAmount' - The monetary amount of the recurring charge.-recurringCharge-    :: RecurringCharge-recurringCharge =-    RecurringCharge'-    { _rcRecurringChargeFrequency = Nothing-    , _rcRecurringChargeAmount = Nothing-    }---- | The frequency of the recurring charge.-rcRecurringChargeFrequency :: Lens' RecurringCharge (Maybe Text)-rcRecurringChargeFrequency = lens _rcRecurringChargeFrequency (\ s a -> s{_rcRecurringChargeFrequency = a});---- | The monetary amount of the recurring charge.-rcRecurringChargeAmount :: Lens' RecurringCharge (Maybe Double)-rcRecurringChargeAmount = lens _rcRecurringChargeAmount (\ s a -> s{_rcRecurringChargeAmount = a});--instance FromXML RecurringCharge where-        parseXML x-          = RecurringCharge' <$>-              (x .@? "RecurringChargeFrequency") <*>-                (x .@? "RecurringChargeAmount")--instance Hashable RecurringCharge--instance NFData RecurringCharge---- | Contains all of the attributes of a specific Redis replication group.------------ /See:/ 'replicationGroup' smart constructor.-data ReplicationGroup = ReplicationGroup'-    { _rgStatus                 :: !(Maybe Text)-    , _rgNodeGroups             :: !(Maybe [NodeGroup])-    , _rgSnapshottingClusterId  :: !(Maybe Text)-    , _rgSnapshotWindow         :: !(Maybe Text)-    , _rgConfigurationEndpoint  :: !(Maybe Endpoint)-    , _rgMemberClusters         :: !(Maybe [Text])-    , _rgSnapshotRetentionLimit :: !(Maybe Int)-    , _rgDescription            :: !(Maybe Text)-    , _rgReplicationGroupId     :: !(Maybe Text)-    , _rgPendingModifiedValues  :: !(Maybe ReplicationGroupPendingModifiedValues)-    , _rgAutomaticFailover      :: !(Maybe AutomaticFailoverStatus)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReplicationGroup' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rgStatus' - The current state of this replication group - @creating@ , @available@ , @modifying@ , @deleting@ , @create-failed@ , @snapshotting@ .------ * 'rgNodeGroups' - A single element list with information about the nodes in the replication group.------ * 'rgSnapshottingClusterId' - The cache cluster ID that is used as the daily snapshot source for the replication group.------ * 'rgSnapshotWindow' - The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: @05:00-09:00@  If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. __Note:__ This parameter is only valid if the @Engine@ parameter is @redis@ .------ * 'rgConfigurationEndpoint' - The configuration endpoint for this replicaiton group. Use the configuration endpoint to connect to this replication group.------ * 'rgMemberClusters' - The names of all the cache clusters that are part of this replication group.------ * 'rgSnapshotRetentionLimit' - The number of days for which ElastiCache retains automatic cache cluster snapshots before deleting them. For example, if you set @SnapshotRetentionLimit@ to 5, a snapshot that was taken today is retained for 5 days before being deleted. /Important:/ If the value of @SnapshotRetentionLimit@ is set to zero (0), backups are turned off.------ * 'rgDescription' - The description of the replication group.------ * 'rgReplicationGroupId' - The identifier for the replication group.------ * 'rgPendingModifiedValues' - A group of settings to be applied to the replication group, either immediately or during the next maintenance window.------ * 'rgAutomaticFailover' - Indicates the status of Multi-AZ for this replication group.-replicationGroup-    :: ReplicationGroup-replicationGroup =-    ReplicationGroup'-    { _rgStatus = Nothing-    , _rgNodeGroups = Nothing-    , _rgSnapshottingClusterId = Nothing-    , _rgSnapshotWindow = Nothing-    , _rgConfigurationEndpoint = Nothing-    , _rgMemberClusters = Nothing-    , _rgSnapshotRetentionLimit = Nothing-    , _rgDescription = Nothing-    , _rgReplicationGroupId = Nothing-    , _rgPendingModifiedValues = Nothing-    , _rgAutomaticFailover = Nothing-    }---- | The current state of this replication group - @creating@ , @available@ , @modifying@ , @deleting@ , @create-failed@ , @snapshotting@ .-rgStatus :: Lens' ReplicationGroup (Maybe Text)-rgStatus = lens _rgStatus (\ s a -> s{_rgStatus = a});---- | A single element list with information about the nodes in the replication group.-rgNodeGroups :: Lens' ReplicationGroup [NodeGroup]-rgNodeGroups = lens _rgNodeGroups (\ s a -> s{_rgNodeGroups = a}) . _Default . _Coerce;---- | The cache cluster ID that is used as the daily snapshot source for the replication group.-rgSnapshottingClusterId :: Lens' ReplicationGroup (Maybe Text)-rgSnapshottingClusterId = lens _rgSnapshottingClusterId (\ s a -> s{_rgSnapshottingClusterId = a});---- | The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: @05:00-09:00@  If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. __Note:__ This parameter is only valid if the @Engine@ parameter is @redis@ .-rgSnapshotWindow :: Lens' ReplicationGroup (Maybe Text)-rgSnapshotWindow = lens _rgSnapshotWindow (\ s a -> s{_rgSnapshotWindow = a});---- | The configuration endpoint for this replicaiton group. Use the configuration endpoint to connect to this replication group.-rgConfigurationEndpoint :: Lens' ReplicationGroup (Maybe Endpoint)-rgConfigurationEndpoint = lens _rgConfigurationEndpoint (\ s a -> s{_rgConfigurationEndpoint = a});---- | The names of all the cache clusters that are part of this replication group.-rgMemberClusters :: Lens' ReplicationGroup [Text]-rgMemberClusters = lens _rgMemberClusters (\ s a -> s{_rgMemberClusters = a}) . _Default . _Coerce;---- | The number of days for which ElastiCache retains automatic cache cluster snapshots before deleting them. For example, if you set @SnapshotRetentionLimit@ to 5, a snapshot that was taken today is retained for 5 days before being deleted. /Important:/ If the value of @SnapshotRetentionLimit@ is set to zero (0), backups are turned off.-rgSnapshotRetentionLimit :: Lens' ReplicationGroup (Maybe Int)-rgSnapshotRetentionLimit = lens _rgSnapshotRetentionLimit (\ s a -> s{_rgSnapshotRetentionLimit = a});---- | The description of the replication group.-rgDescription :: Lens' ReplicationGroup (Maybe Text)-rgDescription = lens _rgDescription (\ s a -> s{_rgDescription = a});---- | The identifier for the replication group.-rgReplicationGroupId :: Lens' ReplicationGroup (Maybe Text)-rgReplicationGroupId = lens _rgReplicationGroupId (\ s a -> s{_rgReplicationGroupId = a});---- | A group of settings to be applied to the replication group, either immediately or during the next maintenance window.-rgPendingModifiedValues :: Lens' ReplicationGroup (Maybe ReplicationGroupPendingModifiedValues)-rgPendingModifiedValues = lens _rgPendingModifiedValues (\ s a -> s{_rgPendingModifiedValues = a});---- | Indicates the status of Multi-AZ for this replication group.-rgAutomaticFailover :: Lens' ReplicationGroup (Maybe AutomaticFailoverStatus)-rgAutomaticFailover = lens _rgAutomaticFailover (\ s a -> s{_rgAutomaticFailover = a});--instance FromXML ReplicationGroup where-        parseXML x-          = ReplicationGroup' <$>-              (x .@? "Status") <*>-                (x .@? "NodeGroups" .!@ mempty >>=-                   may (parseXMLList "NodeGroup"))-                <*> (x .@? "SnapshottingClusterId")-                <*> (x .@? "SnapshotWindow")-                <*> (x .@? "ConfigurationEndpoint")-                <*>-                (x .@? "MemberClusters" .!@ mempty >>=-                   may (parseXMLList "ClusterId"))-                <*> (x .@? "SnapshotRetentionLimit")-                <*> (x .@? "Description")-                <*> (x .@? "ReplicationGroupId")-                <*> (x .@? "PendingModifiedValues")-                <*> (x .@? "AutomaticFailover")--instance Hashable ReplicationGroup--instance NFData ReplicationGroup---- | The settings to be applied to the Redis replication group, either immediately or during the next maintenance window.------------ /See:/ 'replicationGroupPendingModifiedValues' smart constructor.-data ReplicationGroupPendingModifiedValues = ReplicationGroupPendingModifiedValues'-    { _rgpmvPrimaryClusterId        :: !(Maybe Text)-    , _rgpmvAutomaticFailoverStatus :: !(Maybe PendingAutomaticFailoverStatus)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReplicationGroupPendingModifiedValues' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rgpmvPrimaryClusterId' - The primary cluster ID that is applied immediately (if @--apply-immediately@ was specified), or during the next maintenance window.------ * 'rgpmvAutomaticFailoverStatus' - Indicates the status of Multi-AZ for this Redis replication group.-replicationGroupPendingModifiedValues-    :: ReplicationGroupPendingModifiedValues-replicationGroupPendingModifiedValues =-    ReplicationGroupPendingModifiedValues'-    { _rgpmvPrimaryClusterId = Nothing-    , _rgpmvAutomaticFailoverStatus = Nothing-    }---- | The primary cluster ID that is applied immediately (if @--apply-immediately@ was specified), or during the next maintenance window.-rgpmvPrimaryClusterId :: Lens' ReplicationGroupPendingModifiedValues (Maybe Text)-rgpmvPrimaryClusterId = lens _rgpmvPrimaryClusterId (\ s a -> s{_rgpmvPrimaryClusterId = a});---- | Indicates the status of Multi-AZ for this Redis replication group.-rgpmvAutomaticFailoverStatus :: Lens' ReplicationGroupPendingModifiedValues (Maybe PendingAutomaticFailoverStatus)-rgpmvAutomaticFailoverStatus = lens _rgpmvAutomaticFailoverStatus (\ s a -> s{_rgpmvAutomaticFailoverStatus = a});--instance FromXML-         ReplicationGroupPendingModifiedValues where-        parseXML x-          = ReplicationGroupPendingModifiedValues' <$>-              (x .@? "PrimaryClusterId") <*>-                (x .@? "AutomaticFailoverStatus")--instance Hashable-         ReplicationGroupPendingModifiedValues--instance NFData ReplicationGroupPendingModifiedValues---- | Represents the output of a @PurchaseReservedCacheNodesOffering@ operation.------------ /See:/ 'reservedCacheNode' smart constructor.-data ReservedCacheNode = ReservedCacheNode'-    { _rcnCacheNodeType                :: !(Maybe Text)-    , _rcnState                        :: !(Maybe Text)-    , _rcnStartTime                    :: !(Maybe ISO8601)-    , _rcnProductDescription           :: !(Maybe Text)-    , _rcnCacheNodeCount               :: !(Maybe Int)-    , _rcnReservedCacheNodeId          :: !(Maybe Text)-    , _rcnRecurringCharges             :: !(Maybe [RecurringCharge])-    , _rcnOfferingType                 :: !(Maybe Text)-    , _rcnUsagePrice                   :: !(Maybe Double)-    , _rcnFixedPrice                   :: !(Maybe Double)-    , _rcnDuration                     :: !(Maybe Int)-    , _rcnReservedCacheNodesOfferingId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReservedCacheNode' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rcnCacheNodeType' - The cache node type for the reserved cache nodes. Valid node types are as follows:     * General purpose:     * Current generation: @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@ , @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@ , @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: @cache.t1.micro@ , @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized: @cache.c1.xlarge@      * Memory optimized:     * Current generation: @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .------ * 'rcnState' - The state of the reserved cache node.------ * 'rcnStartTime' - The time the reservation started.------ * 'rcnProductDescription' - The description of the reserved cache node.------ * 'rcnCacheNodeCount' - The number of cache nodes that have been reserved.------ * 'rcnReservedCacheNodeId' - The unique identifier for the reservation.------ * 'rcnRecurringCharges' - The recurring price charged to run this reserved cache node.------ * 'rcnOfferingType' - The offering type of this reserved cache node.------ * 'rcnUsagePrice' - The hourly price charged for this reserved cache node.------ * 'rcnFixedPrice' - The fixed price charged for this reserved cache node.------ * 'rcnDuration' - The duration of the reservation in seconds.------ * 'rcnReservedCacheNodesOfferingId' - The offering identifier.-reservedCacheNode-    :: ReservedCacheNode-reservedCacheNode =-    ReservedCacheNode'-    { _rcnCacheNodeType = Nothing-    , _rcnState = Nothing-    , _rcnStartTime = Nothing-    , _rcnProductDescription = Nothing-    , _rcnCacheNodeCount = Nothing-    , _rcnReservedCacheNodeId = Nothing-    , _rcnRecurringCharges = Nothing-    , _rcnOfferingType = Nothing-    , _rcnUsagePrice = Nothing-    , _rcnFixedPrice = Nothing-    , _rcnDuration = Nothing-    , _rcnReservedCacheNodesOfferingId = Nothing-    }---- | The cache node type for the reserved cache nodes. Valid node types are as follows:     * General purpose:     * Current generation: @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@ , @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@ , @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: @cache.t1.micro@ , @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized: @cache.c1.xlarge@      * Memory optimized:     * Current generation: @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .-rcnCacheNodeType :: Lens' ReservedCacheNode (Maybe Text)-rcnCacheNodeType = lens _rcnCacheNodeType (\ s a -> s{_rcnCacheNodeType = a});---- | The state of the reserved cache node.-rcnState :: Lens' ReservedCacheNode (Maybe Text)-rcnState = lens _rcnState (\ s a -> s{_rcnState = a});---- | The time the reservation started.-rcnStartTime :: Lens' ReservedCacheNode (Maybe UTCTime)-rcnStartTime = lens _rcnStartTime (\ s a -> s{_rcnStartTime = a}) . mapping _Time;---- | The description of the reserved cache node.-rcnProductDescription :: Lens' ReservedCacheNode (Maybe Text)-rcnProductDescription = lens _rcnProductDescription (\ s a -> s{_rcnProductDescription = a});---- | The number of cache nodes that have been reserved.-rcnCacheNodeCount :: Lens' ReservedCacheNode (Maybe Int)-rcnCacheNodeCount = lens _rcnCacheNodeCount (\ s a -> s{_rcnCacheNodeCount = a});---- | The unique identifier for the reservation.-rcnReservedCacheNodeId :: Lens' ReservedCacheNode (Maybe Text)-rcnReservedCacheNodeId = lens _rcnReservedCacheNodeId (\ s a -> s{_rcnReservedCacheNodeId = a});---- | The recurring price charged to run this reserved cache node.-rcnRecurringCharges :: Lens' ReservedCacheNode [RecurringCharge]-rcnRecurringCharges = lens _rcnRecurringCharges (\ s a -> s{_rcnRecurringCharges = a}) . _Default . _Coerce;---- | The offering type of this reserved cache node.-rcnOfferingType :: Lens' ReservedCacheNode (Maybe Text)-rcnOfferingType = lens _rcnOfferingType (\ s a -> s{_rcnOfferingType = a});---- | The hourly price charged for this reserved cache node.-rcnUsagePrice :: Lens' ReservedCacheNode (Maybe Double)-rcnUsagePrice = lens _rcnUsagePrice (\ s a -> s{_rcnUsagePrice = a});---- | The fixed price charged for this reserved cache node.-rcnFixedPrice :: Lens' ReservedCacheNode (Maybe Double)-rcnFixedPrice = lens _rcnFixedPrice (\ s a -> s{_rcnFixedPrice = a});---- | The duration of the reservation in seconds.-rcnDuration :: Lens' ReservedCacheNode (Maybe Int)-rcnDuration = lens _rcnDuration (\ s a -> s{_rcnDuration = a});---- | The offering identifier.-rcnReservedCacheNodesOfferingId :: Lens' ReservedCacheNode (Maybe Text)-rcnReservedCacheNodesOfferingId = lens _rcnReservedCacheNodesOfferingId (\ s a -> s{_rcnReservedCacheNodesOfferingId = a});--instance FromXML ReservedCacheNode where-        parseXML x-          = ReservedCacheNode' <$>-              (x .@? "CacheNodeType") <*> (x .@? "State") <*>-                (x .@? "StartTime")-                <*> (x .@? "ProductDescription")-                <*> (x .@? "CacheNodeCount")-                <*> (x .@? "ReservedCacheNodeId")-                <*>-                (x .@? "RecurringCharges" .!@ mempty >>=-                   may (parseXMLList "RecurringCharge"))-                <*> (x .@? "OfferingType")-                <*> (x .@? "UsagePrice")-                <*> (x .@? "FixedPrice")-                <*> (x .@? "Duration")-                <*> (x .@? "ReservedCacheNodesOfferingId")--instance Hashable ReservedCacheNode--instance NFData ReservedCacheNode---- | Describes all of the attributes of a reserved cache node offering.------------ /See:/ 'reservedCacheNodesOffering' smart constructor.-data ReservedCacheNodesOffering = ReservedCacheNodesOffering'-    { _rcnoCacheNodeType                :: !(Maybe Text)-    , _rcnoProductDescription           :: !(Maybe Text)-    , _rcnoRecurringCharges             :: !(Maybe [RecurringCharge])-    , _rcnoOfferingType                 :: !(Maybe Text)-    , _rcnoUsagePrice                   :: !(Maybe Double)-    , _rcnoFixedPrice                   :: !(Maybe Double)-    , _rcnoDuration                     :: !(Maybe Int)-    , _rcnoReservedCacheNodesOfferingId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReservedCacheNodesOffering' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rcnoCacheNodeType' - The cache node type for the reserved cache node. Valid node types are as follows:     * General purpose:     * Current generation: @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@ , @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@ , @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: @cache.t1.micro@ , @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized: @cache.c1.xlarge@      * Memory optimized:     * Current generation: @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .------ * 'rcnoProductDescription' - The cache engine used by the offering.------ * 'rcnoRecurringCharges' - The recurring price charged to run this reserved cache node.------ * 'rcnoOfferingType' - The offering type.------ * 'rcnoUsagePrice' - The hourly price charged for this offering.------ * 'rcnoFixedPrice' - The fixed price charged for this offering.------ * 'rcnoDuration' - The duration of the offering. in seconds.------ * 'rcnoReservedCacheNodesOfferingId' - A unique identifier for the reserved cache node offering.-reservedCacheNodesOffering-    :: ReservedCacheNodesOffering-reservedCacheNodesOffering =-    ReservedCacheNodesOffering'-    { _rcnoCacheNodeType = Nothing-    , _rcnoProductDescription = Nothing-    , _rcnoRecurringCharges = Nothing-    , _rcnoOfferingType = Nothing-    , _rcnoUsagePrice = Nothing-    , _rcnoFixedPrice = Nothing-    , _rcnoDuration = Nothing-    , _rcnoReservedCacheNodesOfferingId = Nothing-    }---- | The cache node type for the reserved cache node. Valid node types are as follows:     * General purpose:     * Current generation: @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@ , @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@ , @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: @cache.t1.micro@ , @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized: @cache.c1.xlarge@      * Memory optimized:     * Current generation: @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .-rcnoCacheNodeType :: Lens' ReservedCacheNodesOffering (Maybe Text)-rcnoCacheNodeType = lens _rcnoCacheNodeType (\ s a -> s{_rcnoCacheNodeType = a});---- | The cache engine used by the offering.-rcnoProductDescription :: Lens' ReservedCacheNodesOffering (Maybe Text)-rcnoProductDescription = lens _rcnoProductDescription (\ s a -> s{_rcnoProductDescription = a});---- | The recurring price charged to run this reserved cache node.-rcnoRecurringCharges :: Lens' ReservedCacheNodesOffering [RecurringCharge]-rcnoRecurringCharges = lens _rcnoRecurringCharges (\ s a -> s{_rcnoRecurringCharges = a}) . _Default . _Coerce;---- | The offering type.-rcnoOfferingType :: Lens' ReservedCacheNodesOffering (Maybe Text)-rcnoOfferingType = lens _rcnoOfferingType (\ s a -> s{_rcnoOfferingType = a});---- | The hourly price charged for this offering.-rcnoUsagePrice :: Lens' ReservedCacheNodesOffering (Maybe Double)-rcnoUsagePrice = lens _rcnoUsagePrice (\ s a -> s{_rcnoUsagePrice = a});---- | The fixed price charged for this offering.-rcnoFixedPrice :: Lens' ReservedCacheNodesOffering (Maybe Double)-rcnoFixedPrice = lens _rcnoFixedPrice (\ s a -> s{_rcnoFixedPrice = a});---- | The duration of the offering. in seconds.-rcnoDuration :: Lens' ReservedCacheNodesOffering (Maybe Int)-rcnoDuration = lens _rcnoDuration (\ s a -> s{_rcnoDuration = a});---- | A unique identifier for the reserved cache node offering.-rcnoReservedCacheNodesOfferingId :: Lens' ReservedCacheNodesOffering (Maybe Text)-rcnoReservedCacheNodesOfferingId = lens _rcnoReservedCacheNodesOfferingId (\ s a -> s{_rcnoReservedCacheNodesOfferingId = a});--instance FromXML ReservedCacheNodesOffering where-        parseXML x-          = ReservedCacheNodesOffering' <$>-              (x .@? "CacheNodeType") <*>-                (x .@? "ProductDescription")-                <*>-                (x .@? "RecurringCharges" .!@ mempty >>=-                   may (parseXMLList "RecurringCharge"))-                <*> (x .@? "OfferingType")-                <*> (x .@? "UsagePrice")-                <*> (x .@? "FixedPrice")-                <*> (x .@? "Duration")-                <*> (x .@? "ReservedCacheNodesOfferingId")--instance Hashable ReservedCacheNodesOffering--instance NFData ReservedCacheNodesOffering---- | Represents a single cache security group and its status.------------ /See:/ 'securityGroupMembership' smart constructor.-data SecurityGroupMembership = SecurityGroupMembership'-    { _sgmStatus          :: !(Maybe Text)-    , _sgmSecurityGroupId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SecurityGroupMembership' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sgmStatus' - The status of the cache security group membership. The status changes whenever a cache security group is modified, or when the cache security groups assigned to a cache cluster are modified.------ * 'sgmSecurityGroupId' - The identifier of the cache security group.-securityGroupMembership-    :: SecurityGroupMembership-securityGroupMembership =-    SecurityGroupMembership'-    { _sgmStatus = Nothing-    , _sgmSecurityGroupId = Nothing-    }---- | The status of the cache security group membership. The status changes whenever a cache security group is modified, or when the cache security groups assigned to a cache cluster are modified.-sgmStatus :: Lens' SecurityGroupMembership (Maybe Text)-sgmStatus = lens _sgmStatus (\ s a -> s{_sgmStatus = a});---- | The identifier of the cache security group.-sgmSecurityGroupId :: Lens' SecurityGroupMembership (Maybe Text)-sgmSecurityGroupId = lens _sgmSecurityGroupId (\ s a -> s{_sgmSecurityGroupId = a});--instance FromXML SecurityGroupMembership where-        parseXML x-          = SecurityGroupMembership' <$>-              (x .@? "Status") <*> (x .@? "SecurityGroupId")--instance Hashable SecurityGroupMembership--instance NFData SecurityGroupMembership---- | Represents a copy of an entire Redis cache cluster as of the time when the snapshot was taken.------------ /See:/ 'snapshot' smart constructor.-data Snapshot = Snapshot'-    { _sEngineVersion               :: !(Maybe Text)-    , _sCacheNodeType               :: !(Maybe Text)-    , _sCacheClusterCreateTime      :: !(Maybe ISO8601)-    , _sAutoMinorVersionUpgrade     :: !(Maybe Bool)-    , _sCacheParameterGroupName     :: !(Maybe Text)-    , _sReplicationGroupDescription :: !(Maybe Text)-    , _sVPCId                       :: !(Maybe Text)-    , _sSnapshotStatus              :: !(Maybe Text)-    , _sSnapshotWindow              :: !(Maybe Text)-    , _sCacheClusterId              :: !(Maybe Text)-    , _sEngine                      :: !(Maybe Text)-    , _sPreferredMaintenanceWindow  :: !(Maybe Text)-    , _sTopicARN                    :: !(Maybe Text)-    , _sNodeSnapshots               :: !(Maybe [NodeSnapshot])-    , _sCacheSubnetGroupName        :: !(Maybe Text)-    , _sPreferredAvailabilityZone   :: !(Maybe Text)-    , _sNumNodeGroups               :: !(Maybe Int)-    , _sSnapshotRetentionLimit      :: !(Maybe Int)-    , _sSnapshotName                :: !(Maybe Text)-    , _sReplicationGroupId          :: !(Maybe Text)-    , _sNumCacheNodes               :: !(Maybe Int)-    , _sPort                        :: !(Maybe Int)-    , _sAutomaticFailover           :: !(Maybe AutomaticFailoverStatus)-    , _sSnapshotSource              :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Snapshot' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sEngineVersion' - The version of the cache engine version that is used by the source cache cluster.------ * 'sCacheNodeType' - The name of the compute and memory capacity node type for the source cache cluster. Valid node types are as follows:     * General purpose:     * Current generation: @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@ , @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@ , @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: @cache.t1.micro@ , @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized: @cache.c1.xlarge@      * Memory optimized:     * Current generation: @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .------ * 'sCacheClusterCreateTime' - The date and time when the source cache cluster was created.------ * 'sAutoMinorVersionUpgrade' - This parameter is currently disabled.------ * 'sCacheParameterGroupName' - The cache parameter group that is associated with the source cache cluster.------ * 'sReplicationGroupDescription' - A description of the source replication group.------ * 'sVPCId' - The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet group for the source cache cluster.------ * 'sSnapshotStatus' - The status of the snapshot. Valid values: @creating@ | @available@ | @restoring@ | @copying@ | @deleting@ .------ * 'sSnapshotWindow' - The daily time range during which ElastiCache takes daily snapshots of the source cache cluster.------ * 'sCacheClusterId' - The user-supplied identifier of the source cache cluster.------ * 'sEngine' - The name of the cache engine (@memcached@ or @redis@ ) used by the source cache cluster.------ * 'sPreferredMaintenanceWindow' - Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are:     * @sun@      * @mon@      * @tue@      * @wed@      * @thu@      * @fri@      * @sat@  Example: @sun:23:00-mon:01:30@------ * 'sTopicARN' - The Amazon Resource Name (ARN) for the topic used by the source cache cluster for publishing notifications.------ * 'sNodeSnapshots' - A list of the cache nodes in the source cache cluster.------ * 'sCacheSubnetGroupName' - The name of the cache subnet group associated with the source cache cluster.------ * 'sPreferredAvailabilityZone' - The name of the Availability Zone in which the source cache cluster is located.------ * 'sNumNodeGroups' - The number of node groups (shards) in this snapshot. When restoring from a snapshot, the number of node groups (shards) in the snapshot and in the restored replication group must be the same.------ * 'sSnapshotRetentionLimit' - For an automatic snapshot, the number of days for which ElastiCache retains the snapshot before deleting it. For manual snapshots, this field reflects the @SnapshotRetentionLimit@ for the source cache cluster when the snapshot was created. This field is otherwise ignored: Manual snapshots do not expire, and can only be deleted using the @DeleteSnapshot@ operation.  __Important__ If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.------ * 'sSnapshotName' - The name of a snapshot. For an automatic snapshot, the name is system-generated. For a manual snapshot, this is the user-provided name.------ * 'sReplicationGroupId' - The unique identifier of the source replication group.------ * 'sNumCacheNodes' - The number of cache nodes in the source cache cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.------ * 'sPort' - The port number used by each cache nodes in the source cache cluster.------ * 'sAutomaticFailover' - Indicates the status of Multi-AZ for the source replication group.------ * 'sSnapshotSource' - Indicates whether the snapshot is from an automatic backup (@automated@ ) or was created manually (@manual@ ).-snapshot-    :: Snapshot-snapshot =-    Snapshot'-    { _sEngineVersion = Nothing-    , _sCacheNodeType = Nothing-    , _sCacheClusterCreateTime = Nothing-    , _sAutoMinorVersionUpgrade = Nothing-    , _sCacheParameterGroupName = Nothing-    , _sReplicationGroupDescription = Nothing-    , _sVPCId = Nothing-    , _sSnapshotStatus = Nothing-    , _sSnapshotWindow = Nothing-    , _sCacheClusterId = Nothing-    , _sEngine = Nothing-    , _sPreferredMaintenanceWindow = Nothing-    , _sTopicARN = Nothing-    , _sNodeSnapshots = Nothing-    , _sCacheSubnetGroupName = Nothing-    , _sPreferredAvailabilityZone = Nothing-    , _sNumNodeGroups = Nothing-    , _sSnapshotRetentionLimit = Nothing-    , _sSnapshotName = Nothing-    , _sReplicationGroupId = Nothing-    , _sNumCacheNodes = Nothing-    , _sPort = Nothing-    , _sAutomaticFailover = Nothing-    , _sSnapshotSource = Nothing-    }---- | The version of the cache engine version that is used by the source cache cluster.-sEngineVersion :: Lens' Snapshot (Maybe Text)-sEngineVersion = lens _sEngineVersion (\ s a -> s{_sEngineVersion = a});---- | The name of the compute and memory capacity node type for the source cache cluster. Valid node types are as follows:     * General purpose:     * Current generation: @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@ , @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@ , @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: @cache.t1.micro@ , @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized: @cache.c1.xlarge@      * Memory optimized:     * Current generation: @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .-sCacheNodeType :: Lens' Snapshot (Maybe Text)-sCacheNodeType = lens _sCacheNodeType (\ s a -> s{_sCacheNodeType = a});---- | The date and time when the source cache cluster was created.-sCacheClusterCreateTime :: Lens' Snapshot (Maybe UTCTime)-sCacheClusterCreateTime = lens _sCacheClusterCreateTime (\ s a -> s{_sCacheClusterCreateTime = a}) . mapping _Time;---- | This parameter is currently disabled.-sAutoMinorVersionUpgrade :: Lens' Snapshot (Maybe Bool)-sAutoMinorVersionUpgrade = lens _sAutoMinorVersionUpgrade (\ s a -> s{_sAutoMinorVersionUpgrade = a});---- | The cache parameter group that is associated with the source cache cluster.-sCacheParameterGroupName :: Lens' Snapshot (Maybe Text)-sCacheParameterGroupName = lens _sCacheParameterGroupName (\ s a -> s{_sCacheParameterGroupName = a});---- | A description of the source replication group.-sReplicationGroupDescription :: Lens' Snapshot (Maybe Text)-sReplicationGroupDescription = lens _sReplicationGroupDescription (\ s a -> s{_sReplicationGroupDescription = a});---- | The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet group for the source cache cluster.-sVPCId :: Lens' Snapshot (Maybe Text)-sVPCId = lens _sVPCId (\ s a -> s{_sVPCId = a});---- | The status of the snapshot. Valid values: @creating@ | @available@ | @restoring@ | @copying@ | @deleting@ .-sSnapshotStatus :: Lens' Snapshot (Maybe Text)-sSnapshotStatus = lens _sSnapshotStatus (\ s a -> s{_sSnapshotStatus = a});---- | The daily time range during which ElastiCache takes daily snapshots of the source cache cluster.-sSnapshotWindow :: Lens' Snapshot (Maybe Text)-sSnapshotWindow = lens _sSnapshotWindow (\ s a -> s{_sSnapshotWindow = a});---- | The user-supplied identifier of the source cache cluster.-sCacheClusterId :: Lens' Snapshot (Maybe Text)-sCacheClusterId = lens _sCacheClusterId (\ s a -> s{_sCacheClusterId = a});---- | The name of the cache engine (@memcached@ or @redis@ ) used by the source cache cluster.-sEngine :: Lens' Snapshot (Maybe Text)-sEngine = lens _sEngine (\ s a -> s{_sEngine = a});---- | Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are:     * @sun@      * @mon@      * @tue@      * @wed@      * @thu@      * @fri@      * @sat@  Example: @sun:23:00-mon:01:30@-sPreferredMaintenanceWindow :: Lens' Snapshot (Maybe Text)-sPreferredMaintenanceWindow = lens _sPreferredMaintenanceWindow (\ s a -> s{_sPreferredMaintenanceWindow = a});---- | The Amazon Resource Name (ARN) for the topic used by the source cache cluster for publishing notifications.-sTopicARN :: Lens' Snapshot (Maybe Text)-sTopicARN = lens _sTopicARN (\ s a -> s{_sTopicARN = a});---- | A list of the cache nodes in the source cache cluster.-sNodeSnapshots :: Lens' Snapshot [NodeSnapshot]-sNodeSnapshots = lens _sNodeSnapshots (\ s a -> s{_sNodeSnapshots = a}) . _Default . _Coerce;---- | The name of the cache subnet group associated with the source cache cluster.-sCacheSubnetGroupName :: Lens' Snapshot (Maybe Text)-sCacheSubnetGroupName = lens _sCacheSubnetGroupName (\ s a -> s{_sCacheSubnetGroupName = a});---- | The name of the Availability Zone in which the source cache cluster is located.-sPreferredAvailabilityZone :: Lens' Snapshot (Maybe Text)-sPreferredAvailabilityZone = lens _sPreferredAvailabilityZone (\ s a -> s{_sPreferredAvailabilityZone = a});---- | The number of node groups (shards) in this snapshot. When restoring from a snapshot, the number of node groups (shards) in the snapshot and in the restored replication group must be the same.-sNumNodeGroups :: Lens' Snapshot (Maybe Int)-sNumNodeGroups = lens _sNumNodeGroups (\ s a -> s{_sNumNodeGroups = a});---- | For an automatic snapshot, the number of days for which ElastiCache retains the snapshot before deleting it. For manual snapshots, this field reflects the @SnapshotRetentionLimit@ for the source cache cluster when the snapshot was created. This field is otherwise ignored: Manual snapshots do not expire, and can only be deleted using the @DeleteSnapshot@ operation.  __Important__ If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.-sSnapshotRetentionLimit :: Lens' Snapshot (Maybe Int)-sSnapshotRetentionLimit = lens _sSnapshotRetentionLimit (\ s a -> s{_sSnapshotRetentionLimit = a});---- | The name of a snapshot. For an automatic snapshot, the name is system-generated. For a manual snapshot, this is the user-provided name.-sSnapshotName :: Lens' Snapshot (Maybe Text)-sSnapshotName = lens _sSnapshotName (\ s a -> s{_sSnapshotName = a});---- | The unique identifier of the source replication group.-sReplicationGroupId :: Lens' Snapshot (Maybe Text)-sReplicationGroupId = lens _sReplicationGroupId (\ s a -> s{_sReplicationGroupId = a});---- | The number of cache nodes in the source cache cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.-sNumCacheNodes :: Lens' Snapshot (Maybe Int)-sNumCacheNodes = lens _sNumCacheNodes (\ s a -> s{_sNumCacheNodes = a});---- | The port number used by each cache nodes in the source cache cluster.-sPort :: Lens' Snapshot (Maybe Int)-sPort = lens _sPort (\ s a -> s{_sPort = a});---- | Indicates the status of Multi-AZ for the source replication group.-sAutomaticFailover :: Lens' Snapshot (Maybe AutomaticFailoverStatus)-sAutomaticFailover = lens _sAutomaticFailover (\ s a -> s{_sAutomaticFailover = a});---- | Indicates whether the snapshot is from an automatic backup (@automated@ ) or was created manually (@manual@ ).-sSnapshotSource :: Lens' Snapshot (Maybe Text)-sSnapshotSource = lens _sSnapshotSource (\ s a -> s{_sSnapshotSource = a});--instance FromXML Snapshot where-        parseXML x-          = Snapshot' <$>-              (x .@? "EngineVersion") <*> (x .@? "CacheNodeType")-                <*> (x .@? "CacheClusterCreateTime")-                <*> (x .@? "AutoMinorVersionUpgrade")-                <*> (x .@? "CacheParameterGroupName")-                <*> (x .@? "ReplicationGroupDescription")-                <*> (x .@? "VpcId")-                <*> (x .@? "SnapshotStatus")-                <*> (x .@? "SnapshotWindow")-                <*> (x .@? "CacheClusterId")-                <*> (x .@? "Engine")-                <*> (x .@? "PreferredMaintenanceWindow")-                <*> (x .@? "TopicArn")-                <*>-                (x .@? "NodeSnapshots" .!@ mempty >>=-                   may (parseXMLList "NodeSnapshot"))-                <*> (x .@? "CacheSubnetGroupName")-                <*> (x .@? "PreferredAvailabilityZone")-                <*> (x .@? "NumNodeGroups")-                <*> (x .@? "SnapshotRetentionLimit")-                <*> (x .@? "SnapshotName")-                <*> (x .@? "ReplicationGroupId")-                <*> (x .@? "NumCacheNodes")-                <*> (x .@? "Port")-                <*> (x .@? "AutomaticFailover")-                <*> (x .@? "SnapshotSource")--instance Hashable Snapshot--instance NFData Snapshot---- | Represents the subnet associated with a cache cluster. This parameter refers to subnets defined in Amazon Virtual Private Cloud (Amazon VPC) and used with ElastiCache.------------ /See:/ 'subnet' smart constructor.-data Subnet = Subnet'-    { _sSubnetIdentifier       :: !(Maybe Text)-    , _sSubnetAvailabilityZone :: !(Maybe AvailabilityZone)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Subnet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sSubnetIdentifier' - The unique identifier for the subnet.------ * 'sSubnetAvailabilityZone' - The Availability Zone associated with the subnet.-subnet-    :: Subnet-subnet =-    Subnet'-    { _sSubnetIdentifier = Nothing-    , _sSubnetAvailabilityZone = Nothing-    }---- | The unique identifier for the subnet.-sSubnetIdentifier :: Lens' Subnet (Maybe Text)-sSubnetIdentifier = lens _sSubnetIdentifier (\ s a -> s{_sSubnetIdentifier = a});---- | The Availability Zone associated with the subnet.-sSubnetAvailabilityZone :: Lens' Subnet (Maybe AvailabilityZone)-sSubnetAvailabilityZone = lens _sSubnetAvailabilityZone (\ s a -> s{_sSubnetAvailabilityZone = a});--instance FromXML Subnet where-        parseXML x-          = Subnet' <$>-              (x .@? "SubnetIdentifier") <*>-                (x .@? "SubnetAvailabilityZone")--instance Hashable Subnet--instance NFData Subnet---- | A cost allocation Tag that can be added to an ElastiCache cluster or replication group. Tags are composed of a Key/Value pair. A tag with a null Value is permitted.------------ /See:/ 'tag' smart constructor.-data Tag = Tag'-    { _tagValue :: !(Maybe Text)-    , _tagKey   :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Tag' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tagValue' - The tag's value. May not be null.------ * 'tagKey' - The key for the tag.-tag-    :: Tag-tag =-    Tag'-    { _tagValue = Nothing-    , _tagKey = Nothing-    }---- | The tag's value. May not be null.-tagValue :: Lens' Tag (Maybe Text)-tagValue = lens _tagValue (\ s a -> s{_tagValue = a});---- | The key for the tag.-tagKey :: Lens' Tag (Maybe Text)-tagKey = lens _tagKey (\ s a -> s{_tagKey = a});--instance FromXML Tag where-        parseXML x-          = Tag' <$> (x .@? "Value") <*> (x .@? "Key")--instance Hashable Tag--instance NFData Tag--instance ToQuery Tag where-        toQuery Tag'{..}-          = mconcat ["Value" =: _tagValue, "Key" =: _tagKey]---- | Represents the output from the @AddTagsToResource@ , @ListTagsOnResource@ , and @RemoveTagsFromResource@ operations.------------ /See:/ 'tagListMessage' smart constructor.-newtype TagListMessage = TagListMessage'-    { _tlmTagList :: Maybe [Tag]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'TagListMessage' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tlmTagList' - A list of cost allocation tags as key-value pairs.-tagListMessage-    :: TagListMessage-tagListMessage =-    TagListMessage'-    { _tlmTagList = Nothing-    }---- | A list of cost allocation tags as key-value pairs.-tlmTagList :: Lens' TagListMessage [Tag]-tlmTagList = lens _tlmTagList (\ s a -> s{_tlmTagList = a}) . _Default . _Coerce;--instance FromXML TagListMessage where-        parseXML x-          = TagListMessage' <$>-              (x .@? "TagList" .!@ mempty >>=-                 may (parseXMLList "Tag"))--instance Hashable TagListMessage--instance NFData TagListMessage+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.ElastiCache.Types.Product where++import Network.AWS.ElastiCache.Types.Sum+import Network.AWS.Lens+import Network.AWS.Prelude++-- | Describes an Availability Zone in which the cluster is launched.+--+--+--+-- /See:/ 'availabilityZone' smart constructor.+newtype AvailabilityZone = AvailabilityZone'+  { _azName :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AvailabilityZone' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'azName' - The name of the Availability Zone.+availabilityZone+    :: AvailabilityZone+availabilityZone = AvailabilityZone' {_azName = Nothing}+++-- | The name of the Availability Zone.+azName :: Lens' AvailabilityZone (Maybe Text)+azName = lens _azName (\ s a -> s{_azName = a});++instance FromXML AvailabilityZone where+        parseXML x = AvailabilityZone' <$> (x .@? "Name")++instance Hashable AvailabilityZone where++instance NFData AvailabilityZone where++-- | Contains all of the attributes of a specific cluster.+--+--+--+-- /See:/ 'cacheCluster' smart constructor.+data CacheCluster = CacheCluster'+  { _ccEngineVersion              :: !(Maybe Text)+  , _ccCacheNodeType              :: !(Maybe Text)+  , _ccCacheNodes                 :: !(Maybe [CacheNode])+  , _ccCacheClusterCreateTime     :: !(Maybe ISO8601)+  , _ccAtRestEncryptionEnabled    :: !(Maybe Bool)+  , _ccAutoMinorVersionUpgrade    :: !(Maybe Bool)+  , _ccSecurityGroups             :: !(Maybe [SecurityGroupMembership])+  , _ccNotificationConfiguration  :: !(Maybe NotificationConfiguration)+  , _ccTransitEncryptionEnabled   :: !(Maybe Bool)+  , _ccSnapshotWindow             :: !(Maybe Text)+  , _ccCacheClusterId             :: !(Maybe Text)+  , _ccConfigurationEndpoint      :: !(Maybe Endpoint)+  , _ccEngine                     :: !(Maybe Text)+  , _ccCacheSecurityGroups        :: !(Maybe [CacheSecurityGroupMembership])+  , _ccAuthTokenEnabled           :: !(Maybe Bool)+  , _ccClientDownloadLandingPage  :: !(Maybe Text)+  , _ccPreferredMaintenanceWindow :: !(Maybe Text)+  , _ccCacheSubnetGroupName       :: !(Maybe Text)+  , _ccPreferredAvailabilityZone  :: !(Maybe Text)+  , _ccCacheParameterGroup        :: !(Maybe CacheParameterGroupStatus)+  , _ccCacheClusterStatus         :: !(Maybe Text)+  , _ccSnapshotRetentionLimit     :: !(Maybe Int)+  , _ccReplicationGroupId         :: !(Maybe Text)+  , _ccPendingModifiedValues      :: !(Maybe PendingModifiedValues)+  , _ccNumCacheNodes              :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CacheCluster' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ccEngineVersion' - The version of the cache engine that is used in this cluster.+--+-- * 'ccCacheNodeType' - The name of the compute and memory capacity node type for the cluster. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.     * General purpose:     * Current generation:  __T2 node types:__ @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@  __M3 node types:__ @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@  __M4 node types:__ @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: (not recommended) __T1 node types:__ @cache.t1.micro@  __M1 node types:__ @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized:     * Previous generation: (not recommended) __C1 node types:__ @cache.c1.xlarge@      * Memory optimized:     * Current generation:  __R3 node types:__ @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: (not recommended) __M2 node types:__ @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances.      * Redis (cluster mode enabled): Backup/restore is not supported on T1 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .+--+-- * 'ccCacheNodes' - A list of cache nodes that are members of the cluster.+--+-- * 'ccCacheClusterCreateTime' - The date and time when the cluster was created.+--+-- * 'ccAtRestEncryptionEnabled' - A flag that enables encryption at-rest when set to @true@ . You cannot modify the value of @AtRestEncryptionEnabled@ after the cluster is created. To enable at-rest encryption on a cluster you must set @AtRestEncryptionEnabled@ to @true@ when you create a cluster. Default: @false@+--+-- * 'ccAutoMinorVersionUpgrade' - This parameter is currently disabled.+--+-- * 'ccSecurityGroups' - A list of VPC Security Groups associated with the cluster.+--+-- * 'ccNotificationConfiguration' - Describes a notification topic and its status. Notification topics are used for publishing ElastiCache events to subscribers using Amazon Simple Notification Service (SNS).+--+-- * 'ccTransitEncryptionEnabled' - A flag that enables in-transit encryption when set to @true@ . You cannot modify the value of @TransitEncryptionEnabled@ after the cluster is created. To enable in-transit encryption on a cluster you must set @TransitEncryptionEnabled@ to @true@ when you create a cluster. Default: @false@+--+-- * 'ccSnapshotWindow' - The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your cluster. Example: @05:00-09:00@+--+-- * 'ccCacheClusterId' - The user-supplied identifier of the cluster. This identifier is a unique key that identifies a cluster.+--+-- * 'ccConfigurationEndpoint' - Represents a Memcached cluster endpoint which, if Automatic Discovery is enabled on the cluster, can be used by an application to connect to any node in the cluster. The configuration endpoint will always have @.cfg@ in it. Example: @mem-3.9dvc4r/.cfg/ .usw2.cache.amazonaws.com:11211@+--+-- * 'ccEngine' - The name of the cache engine (@memcached@ or @redis@ ) to be used for this cluster.+--+-- * 'ccCacheSecurityGroups' - A list of cache security group elements, composed of name and status sub-elements.+--+-- * 'ccAuthTokenEnabled' - A flag that enables using an @AuthToken@ (password) when issuing Redis commands. Default: @false@+--+-- * 'ccClientDownloadLandingPage' - The URL of the web page where you can download the latest ElastiCache client library.+--+-- * 'ccPreferredMaintenanceWindow' - Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are:     * @sun@      * @mon@      * @tue@      * @wed@      * @thu@      * @fri@      * @sat@  Example: @sun:23:00-mon:01:30@+--+-- * 'ccCacheSubnetGroupName' - The name of the cache subnet group associated with the cluster.+--+-- * 'ccPreferredAvailabilityZone' - The name of the Availability Zone in which the cluster is located or "Multiple" if the cache nodes are located in different Availability Zones.+--+-- * 'ccCacheParameterGroup' - Status of the cache parameter group.+--+-- * 'ccCacheClusterStatus' - The current state of this cluster, one of the following values: @available@ , @creating@ , @deleted@ , @deleting@ , @incompatible-network@ , @modifying@ , @rebooting cluster nodes@ , @restore-failed@ , or @snapshotting@ .+--+-- * 'ccSnapshotRetentionLimit' - The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set @SnapshotRetentionLimit@ to 5, a snapshot that was taken today is retained for 5 days before being deleted. /Important:/ If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.+--+-- * 'ccReplicationGroupId' - The replication group to which this cluster belongs. If this field is empty, the cluster is not associated with any replication group.+--+-- * 'ccPendingModifiedValues' - Undocumented member.+--+-- * 'ccNumCacheNodes' - The number of cache nodes in the cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.+cacheCluster+    :: CacheCluster+cacheCluster =+  CacheCluster'+  { _ccEngineVersion = Nothing+  , _ccCacheNodeType = Nothing+  , _ccCacheNodes = Nothing+  , _ccCacheClusterCreateTime = Nothing+  , _ccAtRestEncryptionEnabled = Nothing+  , _ccAutoMinorVersionUpgrade = Nothing+  , _ccSecurityGroups = Nothing+  , _ccNotificationConfiguration = Nothing+  , _ccTransitEncryptionEnabled = Nothing+  , _ccSnapshotWindow = Nothing+  , _ccCacheClusterId = Nothing+  , _ccConfigurationEndpoint = Nothing+  , _ccEngine = Nothing+  , _ccCacheSecurityGroups = Nothing+  , _ccAuthTokenEnabled = Nothing+  , _ccClientDownloadLandingPage = Nothing+  , _ccPreferredMaintenanceWindow = Nothing+  , _ccCacheSubnetGroupName = Nothing+  , _ccPreferredAvailabilityZone = Nothing+  , _ccCacheParameterGroup = Nothing+  , _ccCacheClusterStatus = Nothing+  , _ccSnapshotRetentionLimit = Nothing+  , _ccReplicationGroupId = Nothing+  , _ccPendingModifiedValues = Nothing+  , _ccNumCacheNodes = Nothing+  }+++-- | The version of the cache engine that is used in this cluster.+ccEngineVersion :: Lens' CacheCluster (Maybe Text)+ccEngineVersion = lens _ccEngineVersion (\ s a -> s{_ccEngineVersion = a});++-- | The name of the compute and memory capacity node type for the cluster. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.     * General purpose:     * Current generation:  __T2 node types:__ @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@  __M3 node types:__ @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@  __M4 node types:__ @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: (not recommended) __T1 node types:__ @cache.t1.micro@  __M1 node types:__ @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized:     * Previous generation: (not recommended) __C1 node types:__ @cache.c1.xlarge@      * Memory optimized:     * Current generation:  __R3 node types:__ @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: (not recommended) __M2 node types:__ @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances.      * Redis (cluster mode enabled): Backup/restore is not supported on T1 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .+ccCacheNodeType :: Lens' CacheCluster (Maybe Text)+ccCacheNodeType = lens _ccCacheNodeType (\ s a -> s{_ccCacheNodeType = a});++-- | A list of cache nodes that are members of the cluster.+ccCacheNodes :: Lens' CacheCluster [CacheNode]+ccCacheNodes = lens _ccCacheNodes (\ s a -> s{_ccCacheNodes = a}) . _Default . _Coerce;++-- | The date and time when the cluster was created.+ccCacheClusterCreateTime :: Lens' CacheCluster (Maybe UTCTime)+ccCacheClusterCreateTime = lens _ccCacheClusterCreateTime (\ s a -> s{_ccCacheClusterCreateTime = a}) . mapping _Time;++-- | A flag that enables encryption at-rest when set to @true@ . You cannot modify the value of @AtRestEncryptionEnabled@ after the cluster is created. To enable at-rest encryption on a cluster you must set @AtRestEncryptionEnabled@ to @true@ when you create a cluster. Default: @false@+ccAtRestEncryptionEnabled :: Lens' CacheCluster (Maybe Bool)+ccAtRestEncryptionEnabled = lens _ccAtRestEncryptionEnabled (\ s a -> s{_ccAtRestEncryptionEnabled = a});++-- | This parameter is currently disabled.+ccAutoMinorVersionUpgrade :: Lens' CacheCluster (Maybe Bool)+ccAutoMinorVersionUpgrade = lens _ccAutoMinorVersionUpgrade (\ s a -> s{_ccAutoMinorVersionUpgrade = a});++-- | A list of VPC Security Groups associated with the cluster.+ccSecurityGroups :: Lens' CacheCluster [SecurityGroupMembership]+ccSecurityGroups = lens _ccSecurityGroups (\ s a -> s{_ccSecurityGroups = a}) . _Default . _Coerce;++-- | Describes a notification topic and its status. Notification topics are used for publishing ElastiCache events to subscribers using Amazon Simple Notification Service (SNS).+ccNotificationConfiguration :: Lens' CacheCluster (Maybe NotificationConfiguration)+ccNotificationConfiguration = lens _ccNotificationConfiguration (\ s a -> s{_ccNotificationConfiguration = a});++-- | A flag that enables in-transit encryption when set to @true@ . You cannot modify the value of @TransitEncryptionEnabled@ after the cluster is created. To enable in-transit encryption on a cluster you must set @TransitEncryptionEnabled@ to @true@ when you create a cluster. Default: @false@+ccTransitEncryptionEnabled :: Lens' CacheCluster (Maybe Bool)+ccTransitEncryptionEnabled = lens _ccTransitEncryptionEnabled (\ s a -> s{_ccTransitEncryptionEnabled = a});++-- | The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your cluster. Example: @05:00-09:00@+ccSnapshotWindow :: Lens' CacheCluster (Maybe Text)+ccSnapshotWindow = lens _ccSnapshotWindow (\ s a -> s{_ccSnapshotWindow = a});++-- | The user-supplied identifier of the cluster. This identifier is a unique key that identifies a cluster.+ccCacheClusterId :: Lens' CacheCluster (Maybe Text)+ccCacheClusterId = lens _ccCacheClusterId (\ s a -> s{_ccCacheClusterId = a});++-- | Represents a Memcached cluster endpoint which, if Automatic Discovery is enabled on the cluster, can be used by an application to connect to any node in the cluster. The configuration endpoint will always have @.cfg@ in it. Example: @mem-3.9dvc4r/.cfg/ .usw2.cache.amazonaws.com:11211@+ccConfigurationEndpoint :: Lens' CacheCluster (Maybe Endpoint)+ccConfigurationEndpoint = lens _ccConfigurationEndpoint (\ s a -> s{_ccConfigurationEndpoint = a});++-- | The name of the cache engine (@memcached@ or @redis@ ) to be used for this cluster.+ccEngine :: Lens' CacheCluster (Maybe Text)+ccEngine = lens _ccEngine (\ s a -> s{_ccEngine = a});++-- | A list of cache security group elements, composed of name and status sub-elements.+ccCacheSecurityGroups :: Lens' CacheCluster [CacheSecurityGroupMembership]+ccCacheSecurityGroups = lens _ccCacheSecurityGroups (\ s a -> s{_ccCacheSecurityGroups = a}) . _Default . _Coerce;++-- | A flag that enables using an @AuthToken@ (password) when issuing Redis commands. Default: @false@+ccAuthTokenEnabled :: Lens' CacheCluster (Maybe Bool)+ccAuthTokenEnabled = lens _ccAuthTokenEnabled (\ s a -> s{_ccAuthTokenEnabled = a});++-- | The URL of the web page where you can download the latest ElastiCache client library.+ccClientDownloadLandingPage :: Lens' CacheCluster (Maybe Text)+ccClientDownloadLandingPage = lens _ccClientDownloadLandingPage (\ s a -> s{_ccClientDownloadLandingPage = a});++-- | Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are:     * @sun@      * @mon@      * @tue@      * @wed@      * @thu@      * @fri@      * @sat@  Example: @sun:23:00-mon:01:30@+ccPreferredMaintenanceWindow :: Lens' CacheCluster (Maybe Text)+ccPreferredMaintenanceWindow = lens _ccPreferredMaintenanceWindow (\ s a -> s{_ccPreferredMaintenanceWindow = a});++-- | The name of the cache subnet group associated with the cluster.+ccCacheSubnetGroupName :: Lens' CacheCluster (Maybe Text)+ccCacheSubnetGroupName = lens _ccCacheSubnetGroupName (\ s a -> s{_ccCacheSubnetGroupName = a});++-- | The name of the Availability Zone in which the cluster is located or "Multiple" if the cache nodes are located in different Availability Zones.+ccPreferredAvailabilityZone :: Lens' CacheCluster (Maybe Text)+ccPreferredAvailabilityZone = lens _ccPreferredAvailabilityZone (\ s a -> s{_ccPreferredAvailabilityZone = a});++-- | Status of the cache parameter group.+ccCacheParameterGroup :: Lens' CacheCluster (Maybe CacheParameterGroupStatus)+ccCacheParameterGroup = lens _ccCacheParameterGroup (\ s a -> s{_ccCacheParameterGroup = a});++-- | The current state of this cluster, one of the following values: @available@ , @creating@ , @deleted@ , @deleting@ , @incompatible-network@ , @modifying@ , @rebooting cluster nodes@ , @restore-failed@ , or @snapshotting@ .+ccCacheClusterStatus :: Lens' CacheCluster (Maybe Text)+ccCacheClusterStatus = lens _ccCacheClusterStatus (\ s a -> s{_ccCacheClusterStatus = a});++-- | The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set @SnapshotRetentionLimit@ to 5, a snapshot that was taken today is retained for 5 days before being deleted. /Important:/ If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.+ccSnapshotRetentionLimit :: Lens' CacheCluster (Maybe Int)+ccSnapshotRetentionLimit = lens _ccSnapshotRetentionLimit (\ s a -> s{_ccSnapshotRetentionLimit = a});++-- | The replication group to which this cluster belongs. If this field is empty, the cluster is not associated with any replication group.+ccReplicationGroupId :: Lens' CacheCluster (Maybe Text)+ccReplicationGroupId = lens _ccReplicationGroupId (\ s a -> s{_ccReplicationGroupId = a});++-- | Undocumented member.+ccPendingModifiedValues :: Lens' CacheCluster (Maybe PendingModifiedValues)+ccPendingModifiedValues = lens _ccPendingModifiedValues (\ s a -> s{_ccPendingModifiedValues = a});++-- | The number of cache nodes in the cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.+ccNumCacheNodes :: Lens' CacheCluster (Maybe Int)+ccNumCacheNodes = lens _ccNumCacheNodes (\ s a -> s{_ccNumCacheNodes = a});++instance FromXML CacheCluster where+        parseXML x+          = CacheCluster' <$>+              (x .@? "EngineVersion") <*> (x .@? "CacheNodeType")+                <*>+                (x .@? "CacheNodes" .!@ mempty >>=+                   may (parseXMLList "CacheNode"))+                <*> (x .@? "CacheClusterCreateTime")+                <*> (x .@? "AtRestEncryptionEnabled")+                <*> (x .@? "AutoMinorVersionUpgrade")+                <*>+                (x .@? "SecurityGroups" .!@ mempty >>=+                   may (parseXMLList "member"))+                <*> (x .@? "NotificationConfiguration")+                <*> (x .@? "TransitEncryptionEnabled")+                <*> (x .@? "SnapshotWindow")+                <*> (x .@? "CacheClusterId")+                <*> (x .@? "ConfigurationEndpoint")+                <*> (x .@? "Engine")+                <*>+                (x .@? "CacheSecurityGroups" .!@ mempty >>=+                   may (parseXMLList "CacheSecurityGroup"))+                <*> (x .@? "AuthTokenEnabled")+                <*> (x .@? "ClientDownloadLandingPage")+                <*> (x .@? "PreferredMaintenanceWindow")+                <*> (x .@? "CacheSubnetGroupName")+                <*> (x .@? "PreferredAvailabilityZone")+                <*> (x .@? "CacheParameterGroup")+                <*> (x .@? "CacheClusterStatus")+                <*> (x .@? "SnapshotRetentionLimit")+                <*> (x .@? "ReplicationGroupId")+                <*> (x .@? "PendingModifiedValues")+                <*> (x .@? "NumCacheNodes")++instance Hashable CacheCluster where++instance NFData CacheCluster where++-- | Provides all of the details about a particular cache engine version.+--+--+--+-- /See:/ 'cacheEngineVersion' smart constructor.+data CacheEngineVersion = CacheEngineVersion'+  { _cevEngineVersion                 :: !(Maybe Text)+  , _cevCacheParameterGroupFamily     :: !(Maybe Text)+  , _cevCacheEngineDescription        :: !(Maybe Text)+  , _cevEngine                        :: !(Maybe Text)+  , _cevCacheEngineVersionDescription :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CacheEngineVersion' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cevEngineVersion' - The version number of the cache engine.+--+-- * 'cevCacheParameterGroupFamily' - The name of the cache parameter group family associated with this cache engine. Valid values are: @memcached1.4@ | @redis2.6@ | @redis2.8@ | @redis3.2@+--+-- * 'cevCacheEngineDescription' - The description of the cache engine.+--+-- * 'cevEngine' - The name of the cache engine.+--+-- * 'cevCacheEngineVersionDescription' - The description of the cache engine version.+cacheEngineVersion+    :: CacheEngineVersion+cacheEngineVersion =+  CacheEngineVersion'+  { _cevEngineVersion = Nothing+  , _cevCacheParameterGroupFamily = Nothing+  , _cevCacheEngineDescription = Nothing+  , _cevEngine = Nothing+  , _cevCacheEngineVersionDescription = Nothing+  }+++-- | The version number of the cache engine.+cevEngineVersion :: Lens' CacheEngineVersion (Maybe Text)+cevEngineVersion = lens _cevEngineVersion (\ s a -> s{_cevEngineVersion = a});++-- | The name of the cache parameter group family associated with this cache engine. Valid values are: @memcached1.4@ | @redis2.6@ | @redis2.8@ | @redis3.2@+cevCacheParameterGroupFamily :: Lens' CacheEngineVersion (Maybe Text)+cevCacheParameterGroupFamily = lens _cevCacheParameterGroupFamily (\ s a -> s{_cevCacheParameterGroupFamily = a});++-- | The description of the cache engine.+cevCacheEngineDescription :: Lens' CacheEngineVersion (Maybe Text)+cevCacheEngineDescription = lens _cevCacheEngineDescription (\ s a -> s{_cevCacheEngineDescription = a});++-- | The name of the cache engine.+cevEngine :: Lens' CacheEngineVersion (Maybe Text)+cevEngine = lens _cevEngine (\ s a -> s{_cevEngine = a});++-- | The description of the cache engine version.+cevCacheEngineVersionDescription :: Lens' CacheEngineVersion (Maybe Text)+cevCacheEngineVersionDescription = lens _cevCacheEngineVersionDescription (\ s a -> s{_cevCacheEngineVersionDescription = a});++instance FromXML CacheEngineVersion where+        parseXML x+          = CacheEngineVersion' <$>+              (x .@? "EngineVersion") <*>+                (x .@? "CacheParameterGroupFamily")+                <*> (x .@? "CacheEngineDescription")+                <*> (x .@? "Engine")+                <*> (x .@? "CacheEngineVersionDescription")++instance Hashable CacheEngineVersion where++instance NFData CacheEngineVersion where++-- | Represents an individual cache node within a cluster. Each cache node runs its own instance of the cluster's protocol-compliant caching software - either Memcached or Redis.+--+--+-- The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.+--+--     * General purpose:+--+--     * Current generation:+--+-- __T2 node types:__ @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@+--+-- __M3 node types:__ @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@+--+-- __M4 node types:__ @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@+--+--     * Previous generation: (not recommended)+--+-- __T1 node types:__ @cache.t1.micro@+--+-- __M1 node types:__ @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@+--+--+--+--     * Compute optimized:+--+--     * Previous generation: (not recommended)+--+-- __C1 node types:__ @cache.c1.xlarge@+--+--+--+--     * Memory optimized:+--+--     * Current generation:+--+-- __R3 node types:__ @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@+--+--     * Previous generation: (not recommended)+--+-- __M2 node types:__ @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@+--+--+--+--+--+-- __Notes:__+--+--     * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).+--+--     * Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances.+--+--     * Redis (cluster mode enabled): Backup/restore is not supported on T1 instances.+--+--     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances.+--+--+--+-- For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .+--+--+-- /See:/ 'cacheNode' smart constructor.+data CacheNode = CacheNode'+  { _cnSourceCacheNodeId        :: !(Maybe Text)+  , _cnParameterGroupStatus     :: !(Maybe Text)+  , _cnCacheNodeCreateTime      :: !(Maybe ISO8601)+  , _cnCustomerAvailabilityZone :: !(Maybe Text)+  , _cnCacheNodeId              :: !(Maybe Text)+  , _cnCacheNodeStatus          :: !(Maybe Text)+  , _cnEndpoint                 :: !(Maybe Endpoint)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CacheNode' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cnSourceCacheNodeId' - The ID of the primary node to which this read replica node is synchronized. If this field is empty, this node is not associated with a primary cluster.+--+-- * 'cnParameterGroupStatus' - The status of the parameter group applied to this cache node.+--+-- * 'cnCacheNodeCreateTime' - The date and time when the cache node was created.+--+-- * 'cnCustomerAvailabilityZone' - The Availability Zone where this node was created and now resides.+--+-- * 'cnCacheNodeId' - The cache node identifier. A node ID is a numeric identifier (0001, 0002, etc.). The combination of cluster ID and node ID uniquely identifies every cache node used in a customer's AWS account.+--+-- * 'cnCacheNodeStatus' - The current state of this cache node.+--+-- * 'cnEndpoint' - The hostname for connecting to this cache node.+cacheNode+    :: CacheNode+cacheNode =+  CacheNode'+  { _cnSourceCacheNodeId = Nothing+  , _cnParameterGroupStatus = Nothing+  , _cnCacheNodeCreateTime = Nothing+  , _cnCustomerAvailabilityZone = Nothing+  , _cnCacheNodeId = Nothing+  , _cnCacheNodeStatus = Nothing+  , _cnEndpoint = Nothing+  }+++-- | The ID of the primary node to which this read replica node is synchronized. If this field is empty, this node is not associated with a primary cluster.+cnSourceCacheNodeId :: Lens' CacheNode (Maybe Text)+cnSourceCacheNodeId = lens _cnSourceCacheNodeId (\ s a -> s{_cnSourceCacheNodeId = a});++-- | The status of the parameter group applied to this cache node.+cnParameterGroupStatus :: Lens' CacheNode (Maybe Text)+cnParameterGroupStatus = lens _cnParameterGroupStatus (\ s a -> s{_cnParameterGroupStatus = a});++-- | The date and time when the cache node was created.+cnCacheNodeCreateTime :: Lens' CacheNode (Maybe UTCTime)+cnCacheNodeCreateTime = lens _cnCacheNodeCreateTime (\ s a -> s{_cnCacheNodeCreateTime = a}) . mapping _Time;++-- | The Availability Zone where this node was created and now resides.+cnCustomerAvailabilityZone :: Lens' CacheNode (Maybe Text)+cnCustomerAvailabilityZone = lens _cnCustomerAvailabilityZone (\ s a -> s{_cnCustomerAvailabilityZone = a});++-- | The cache node identifier. A node ID is a numeric identifier (0001, 0002, etc.). The combination of cluster ID and node ID uniquely identifies every cache node used in a customer's AWS account.+cnCacheNodeId :: Lens' CacheNode (Maybe Text)+cnCacheNodeId = lens _cnCacheNodeId (\ s a -> s{_cnCacheNodeId = a});++-- | The current state of this cache node.+cnCacheNodeStatus :: Lens' CacheNode (Maybe Text)+cnCacheNodeStatus = lens _cnCacheNodeStatus (\ s a -> s{_cnCacheNodeStatus = a});++-- | The hostname for connecting to this cache node.+cnEndpoint :: Lens' CacheNode (Maybe Endpoint)+cnEndpoint = lens _cnEndpoint (\ s a -> s{_cnEndpoint = a});++instance FromXML CacheNode where+        parseXML x+          = CacheNode' <$>+              (x .@? "SourceCacheNodeId") <*>+                (x .@? "ParameterGroupStatus")+                <*> (x .@? "CacheNodeCreateTime")+                <*> (x .@? "CustomerAvailabilityZone")+                <*> (x .@? "CacheNodeId")+                <*> (x .@? "CacheNodeStatus")+                <*> (x .@? "Endpoint")++instance Hashable CacheNode where++instance NFData CacheNode where++-- | A parameter that has a different value for each cache node type it is applied to. For example, in a Redis cluster, a @cache.m1.large@ cache node type would have a larger @maxmemory@ value than a @cache.m1.small@ type.+--+--+--+-- /See:/ 'cacheNodeTypeSpecificParameter' smart constructor.+data CacheNodeTypeSpecificParameter = CacheNodeTypeSpecificParameter'+  { _cntspCacheNodeTypeSpecificValues :: !(Maybe [CacheNodeTypeSpecificValue])+  , _cntspMinimumEngineVersion        :: !(Maybe Text)+  , _cntspSource                      :: !(Maybe Text)+  , _cntspIsModifiable                :: !(Maybe Bool)+  , _cntspDataType                    :: !(Maybe Text)+  , _cntspAllowedValues               :: !(Maybe Text)+  , _cntspParameterName               :: !(Maybe Text)+  , _cntspDescription                 :: !(Maybe Text)+  , _cntspChangeType                  :: !(Maybe ChangeType)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CacheNodeTypeSpecificParameter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cntspCacheNodeTypeSpecificValues' - A list of cache node types and their corresponding values for this parameter.+--+-- * 'cntspMinimumEngineVersion' - The earliest cache engine version to which the parameter can apply.+--+-- * 'cntspSource' - The source of the parameter value.+--+-- * 'cntspIsModifiable' - Indicates whether (@true@ ) or not (@false@ ) the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed.+--+-- * 'cntspDataType' - The valid data type for the parameter.+--+-- * 'cntspAllowedValues' - The valid range of values for the parameter.+--+-- * 'cntspParameterName' - The name of the parameter.+--+-- * 'cntspDescription' - A description of the parameter.+--+-- * 'cntspChangeType' - Indicates whether a change to the parameter is applied immediately or requires a reboot for the change to be applied. You can force a reboot or wait until the next maintenance window's reboot. For more information, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Clusters.Rebooting.html Rebooting a Cluster> .+cacheNodeTypeSpecificParameter+    :: CacheNodeTypeSpecificParameter+cacheNodeTypeSpecificParameter =+  CacheNodeTypeSpecificParameter'+  { _cntspCacheNodeTypeSpecificValues = Nothing+  , _cntspMinimumEngineVersion = Nothing+  , _cntspSource = Nothing+  , _cntspIsModifiable = Nothing+  , _cntspDataType = Nothing+  , _cntspAllowedValues = Nothing+  , _cntspParameterName = Nothing+  , _cntspDescription = Nothing+  , _cntspChangeType = Nothing+  }+++-- | A list of cache node types and their corresponding values for this parameter.+cntspCacheNodeTypeSpecificValues :: Lens' CacheNodeTypeSpecificParameter [CacheNodeTypeSpecificValue]+cntspCacheNodeTypeSpecificValues = lens _cntspCacheNodeTypeSpecificValues (\ s a -> s{_cntspCacheNodeTypeSpecificValues = a}) . _Default . _Coerce;++-- | The earliest cache engine version to which the parameter can apply.+cntspMinimumEngineVersion :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)+cntspMinimumEngineVersion = lens _cntspMinimumEngineVersion (\ s a -> s{_cntspMinimumEngineVersion = a});++-- | The source of the parameter value.+cntspSource :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)+cntspSource = lens _cntspSource (\ s a -> s{_cntspSource = a});++-- | Indicates whether (@true@ ) or not (@false@ ) the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed.+cntspIsModifiable :: Lens' CacheNodeTypeSpecificParameter (Maybe Bool)+cntspIsModifiable = lens _cntspIsModifiable (\ s a -> s{_cntspIsModifiable = a});++-- | The valid data type for the parameter.+cntspDataType :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)+cntspDataType = lens _cntspDataType (\ s a -> s{_cntspDataType = a});++-- | The valid range of values for the parameter.+cntspAllowedValues :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)+cntspAllowedValues = lens _cntspAllowedValues (\ s a -> s{_cntspAllowedValues = a});++-- | The name of the parameter.+cntspParameterName :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)+cntspParameterName = lens _cntspParameterName (\ s a -> s{_cntspParameterName = a});++-- | A description of the parameter.+cntspDescription :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)+cntspDescription = lens _cntspDescription (\ s a -> s{_cntspDescription = a});++-- | Indicates whether a change to the parameter is applied immediately or requires a reboot for the change to be applied. You can force a reboot or wait until the next maintenance window's reboot. For more information, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Clusters.Rebooting.html Rebooting a Cluster> .+cntspChangeType :: Lens' CacheNodeTypeSpecificParameter (Maybe ChangeType)+cntspChangeType = lens _cntspChangeType (\ s a -> s{_cntspChangeType = a});++instance FromXML CacheNodeTypeSpecificParameter where+        parseXML x+          = CacheNodeTypeSpecificParameter' <$>+              (x .@? "CacheNodeTypeSpecificValues" .!@ mempty >>=+                 may (parseXMLList "CacheNodeTypeSpecificValue"))+                <*> (x .@? "MinimumEngineVersion")+                <*> (x .@? "Source")+                <*> (x .@? "IsModifiable")+                <*> (x .@? "DataType")+                <*> (x .@? "AllowedValues")+                <*> (x .@? "ParameterName")+                <*> (x .@? "Description")+                <*> (x .@? "ChangeType")++instance Hashable CacheNodeTypeSpecificParameter+         where++instance NFData CacheNodeTypeSpecificParameter where++-- | A value that applies only to a certain cache node type.+--+--+--+-- /See:/ 'cacheNodeTypeSpecificValue' smart constructor.+data CacheNodeTypeSpecificValue = CacheNodeTypeSpecificValue'+  { _cntsvCacheNodeType :: !(Maybe Text)+  , _cntsvValue         :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CacheNodeTypeSpecificValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cntsvCacheNodeType' - The cache node type for which this value applies.+--+-- * 'cntsvValue' - The value for the cache node type.+cacheNodeTypeSpecificValue+    :: CacheNodeTypeSpecificValue+cacheNodeTypeSpecificValue =+  CacheNodeTypeSpecificValue'+  {_cntsvCacheNodeType = Nothing, _cntsvValue = Nothing}+++-- | The cache node type for which this value applies.+cntsvCacheNodeType :: Lens' CacheNodeTypeSpecificValue (Maybe Text)+cntsvCacheNodeType = lens _cntsvCacheNodeType (\ s a -> s{_cntsvCacheNodeType = a});++-- | The value for the cache node type.+cntsvValue :: Lens' CacheNodeTypeSpecificValue (Maybe Text)+cntsvValue = lens _cntsvValue (\ s a -> s{_cntsvValue = a});++instance FromXML CacheNodeTypeSpecificValue where+        parseXML x+          = CacheNodeTypeSpecificValue' <$>+              (x .@? "CacheNodeType") <*> (x .@? "Value")++instance Hashable CacheNodeTypeSpecificValue where++instance NFData CacheNodeTypeSpecificValue where++-- | Represents the output of a @CreateCacheParameterGroup@ operation.+--+--+--+-- /See:/ 'cacheParameterGroup' smart constructor.+data CacheParameterGroup = CacheParameterGroup'+  { _cpgCacheParameterGroupFamily :: !(Maybe Text)+  , _cpgCacheParameterGroupName   :: !(Maybe Text)+  , _cpgDescription               :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CacheParameterGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpgCacheParameterGroupFamily' - The name of the cache parameter group family that this cache parameter group is compatible with. Valid values are: @memcached1.4@ | @redis2.6@ | @redis2.8@ | @redis3.2@+--+-- * 'cpgCacheParameterGroupName' - The name of the cache parameter group.+--+-- * 'cpgDescription' - The description for this cache parameter group.+cacheParameterGroup+    :: CacheParameterGroup+cacheParameterGroup =+  CacheParameterGroup'+  { _cpgCacheParameterGroupFamily = Nothing+  , _cpgCacheParameterGroupName = Nothing+  , _cpgDescription = Nothing+  }+++-- | The name of the cache parameter group family that this cache parameter group is compatible with. Valid values are: @memcached1.4@ | @redis2.6@ | @redis2.8@ | @redis3.2@+cpgCacheParameterGroupFamily :: Lens' CacheParameterGroup (Maybe Text)+cpgCacheParameterGroupFamily = lens _cpgCacheParameterGroupFamily (\ s a -> s{_cpgCacheParameterGroupFamily = a});++-- | The name of the cache parameter group.+cpgCacheParameterGroupName :: Lens' CacheParameterGroup (Maybe Text)+cpgCacheParameterGroupName = lens _cpgCacheParameterGroupName (\ s a -> s{_cpgCacheParameterGroupName = a});++-- | The description for this cache parameter group.+cpgDescription :: Lens' CacheParameterGroup (Maybe Text)+cpgDescription = lens _cpgDescription (\ s a -> s{_cpgDescription = a});++instance FromXML CacheParameterGroup where+        parseXML x+          = CacheParameterGroup' <$>+              (x .@? "CacheParameterGroupFamily") <*>+                (x .@? "CacheParameterGroupName")+                <*> (x .@? "Description")++instance Hashable CacheParameterGroup where++instance NFData CacheParameterGroup where++-- | Represents the output of one of the following operations:+--+--+--     * @ModifyCacheParameterGroup@+--+--     * @ResetCacheParameterGroup@+--+--+--+--+-- /See:/ 'cacheParameterGroupNameMessage' smart constructor.+newtype CacheParameterGroupNameMessage = CacheParameterGroupNameMessage'+  { _cpgnmCacheParameterGroupName :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CacheParameterGroupNameMessage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpgnmCacheParameterGroupName' - The name of the cache parameter group.+cacheParameterGroupNameMessage+    :: CacheParameterGroupNameMessage+cacheParameterGroupNameMessage =+  CacheParameterGroupNameMessage' {_cpgnmCacheParameterGroupName = Nothing}+++-- | The name of the cache parameter group.+cpgnmCacheParameterGroupName :: Lens' CacheParameterGroupNameMessage (Maybe Text)+cpgnmCacheParameterGroupName = lens _cpgnmCacheParameterGroupName (\ s a -> s{_cpgnmCacheParameterGroupName = a});++instance FromXML CacheParameterGroupNameMessage where+        parseXML x+          = CacheParameterGroupNameMessage' <$>+              (x .@? "CacheParameterGroupName")++instance Hashable CacheParameterGroupNameMessage+         where++instance NFData CacheParameterGroupNameMessage where++-- | Status of the cache parameter group.+--+--+--+-- /See:/ 'cacheParameterGroupStatus' smart constructor.+data CacheParameterGroupStatus = CacheParameterGroupStatus'+  { _cpgsCacheParameterGroupName :: !(Maybe Text)+  , _cpgsCacheNodeIdsToReboot    :: !(Maybe [Text])+  , _cpgsParameterApplyStatus    :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CacheParameterGroupStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpgsCacheParameterGroupName' - The name of the cache parameter group.+--+-- * 'cpgsCacheNodeIdsToReboot' - A list of the cache node IDs which need to be rebooted for parameter changes to be applied. A node ID is a numeric identifier (0001, 0002, etc.).+--+-- * 'cpgsParameterApplyStatus' - The status of parameter updates.+cacheParameterGroupStatus+    :: CacheParameterGroupStatus+cacheParameterGroupStatus =+  CacheParameterGroupStatus'+  { _cpgsCacheParameterGroupName = Nothing+  , _cpgsCacheNodeIdsToReboot = Nothing+  , _cpgsParameterApplyStatus = Nothing+  }+++-- | The name of the cache parameter group.+cpgsCacheParameterGroupName :: Lens' CacheParameterGroupStatus (Maybe Text)+cpgsCacheParameterGroupName = lens _cpgsCacheParameterGroupName (\ s a -> s{_cpgsCacheParameterGroupName = a});++-- | A list of the cache node IDs which need to be rebooted for parameter changes to be applied. A node ID is a numeric identifier (0001, 0002, etc.).+cpgsCacheNodeIdsToReboot :: Lens' CacheParameterGroupStatus [Text]+cpgsCacheNodeIdsToReboot = lens _cpgsCacheNodeIdsToReboot (\ s a -> s{_cpgsCacheNodeIdsToReboot = a}) . _Default . _Coerce;++-- | The status of parameter updates.+cpgsParameterApplyStatus :: Lens' CacheParameterGroupStatus (Maybe Text)+cpgsParameterApplyStatus = lens _cpgsParameterApplyStatus (\ s a -> s{_cpgsParameterApplyStatus = a});++instance FromXML CacheParameterGroupStatus where+        parseXML x+          = CacheParameterGroupStatus' <$>+              (x .@? "CacheParameterGroupName") <*>+                (x .@? "CacheNodeIdsToReboot" .!@ mempty >>=+                   may (parseXMLList "CacheNodeId"))+                <*> (x .@? "ParameterApplyStatus")++instance Hashable CacheParameterGroupStatus where++instance NFData CacheParameterGroupStatus where++-- | Represents the output of one of the following operations:+--+--+--     * @AuthorizeCacheSecurityGroupIngress@+--+--     * @CreateCacheSecurityGroup@+--+--     * @RevokeCacheSecurityGroupIngress@+--+--+--+--+-- /See:/ 'cacheSecurityGroup' smart constructor.+data CacheSecurityGroup = CacheSecurityGroup'+  { _csgCacheSecurityGroupName :: !(Maybe Text)+  , _csgOwnerId                :: !(Maybe Text)+  , _csgEC2SecurityGroups      :: !(Maybe [EC2SecurityGroup])+  , _csgDescription            :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CacheSecurityGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csgCacheSecurityGroupName' - The name of the cache security group.+--+-- * 'csgOwnerId' - The AWS account ID of the cache security group owner.+--+-- * 'csgEC2SecurityGroups' - A list of Amazon EC2 security groups that are associated with this cache security group.+--+-- * 'csgDescription' - The description of the cache security group.+cacheSecurityGroup+    :: CacheSecurityGroup+cacheSecurityGroup =+  CacheSecurityGroup'+  { _csgCacheSecurityGroupName = Nothing+  , _csgOwnerId = Nothing+  , _csgEC2SecurityGroups = Nothing+  , _csgDescription = Nothing+  }+++-- | The name of the cache security group.+csgCacheSecurityGroupName :: Lens' CacheSecurityGroup (Maybe Text)+csgCacheSecurityGroupName = lens _csgCacheSecurityGroupName (\ s a -> s{_csgCacheSecurityGroupName = a});++-- | The AWS account ID of the cache security group owner.+csgOwnerId :: Lens' CacheSecurityGroup (Maybe Text)+csgOwnerId = lens _csgOwnerId (\ s a -> s{_csgOwnerId = a});++-- | A list of Amazon EC2 security groups that are associated with this cache security group.+csgEC2SecurityGroups :: Lens' CacheSecurityGroup [EC2SecurityGroup]+csgEC2SecurityGroups = lens _csgEC2SecurityGroups (\ s a -> s{_csgEC2SecurityGroups = a}) . _Default . _Coerce;++-- | The description of the cache security group.+csgDescription :: Lens' CacheSecurityGroup (Maybe Text)+csgDescription = lens _csgDescription (\ s a -> s{_csgDescription = a});++instance FromXML CacheSecurityGroup where+        parseXML x+          = CacheSecurityGroup' <$>+              (x .@? "CacheSecurityGroupName") <*>+                (x .@? "OwnerId")+                <*>+                (x .@? "EC2SecurityGroups" .!@ mempty >>=+                   may (parseXMLList "EC2SecurityGroup"))+                <*> (x .@? "Description")++instance Hashable CacheSecurityGroup where++instance NFData CacheSecurityGroup where++-- | Represents a cluster's status within a particular cache security group.+--+--+--+-- /See:/ 'cacheSecurityGroupMembership' smart constructor.+data CacheSecurityGroupMembership = CacheSecurityGroupMembership'+  { _csgmStatus                 :: !(Maybe Text)+  , _csgmCacheSecurityGroupName :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CacheSecurityGroupMembership' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csgmStatus' - The membership status in the cache security group. The status changes when a cache security group is modified, or when the cache security groups assigned to a cluster are modified.+--+-- * 'csgmCacheSecurityGroupName' - The name of the cache security group.+cacheSecurityGroupMembership+    :: CacheSecurityGroupMembership+cacheSecurityGroupMembership =+  CacheSecurityGroupMembership'+  {_csgmStatus = Nothing, _csgmCacheSecurityGroupName = Nothing}+++-- | The membership status in the cache security group. The status changes when a cache security group is modified, or when the cache security groups assigned to a cluster are modified.+csgmStatus :: Lens' CacheSecurityGroupMembership (Maybe Text)+csgmStatus = lens _csgmStatus (\ s a -> s{_csgmStatus = a});++-- | The name of the cache security group.+csgmCacheSecurityGroupName :: Lens' CacheSecurityGroupMembership (Maybe Text)+csgmCacheSecurityGroupName = lens _csgmCacheSecurityGroupName (\ s a -> s{_csgmCacheSecurityGroupName = a});++instance FromXML CacheSecurityGroupMembership where+        parseXML x+          = CacheSecurityGroupMembership' <$>+              (x .@? "Status") <*> (x .@? "CacheSecurityGroupName")++instance Hashable CacheSecurityGroupMembership where++instance NFData CacheSecurityGroupMembership where++-- | Represents the output of one of the following operations:+--+--+--     * @CreateCacheSubnetGroup@+--+--     * @ModifyCacheSubnetGroup@+--+--+--+--+-- /See:/ 'cacheSubnetGroup' smart constructor.+data CacheSubnetGroup = CacheSubnetGroup'+  { _csgVPCId                       :: !(Maybe Text)+  , _csgSubnets                     :: !(Maybe [Subnet])+  , _csgCacheSubnetGroupName        :: !(Maybe Text)+  , _csgCacheSubnetGroupDescription :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CacheSubnetGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csgVPCId' - The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet group.+--+-- * 'csgSubnets' - A list of subnets associated with the cache subnet group.+--+-- * 'csgCacheSubnetGroupName' - The name of the cache subnet group.+--+-- * 'csgCacheSubnetGroupDescription' - The description of the cache subnet group.+cacheSubnetGroup+    :: CacheSubnetGroup+cacheSubnetGroup =+  CacheSubnetGroup'+  { _csgVPCId = Nothing+  , _csgSubnets = Nothing+  , _csgCacheSubnetGroupName = Nothing+  , _csgCacheSubnetGroupDescription = Nothing+  }+++-- | The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet group.+csgVPCId :: Lens' CacheSubnetGroup (Maybe Text)+csgVPCId = lens _csgVPCId (\ s a -> s{_csgVPCId = a});++-- | A list of subnets associated with the cache subnet group.+csgSubnets :: Lens' CacheSubnetGroup [Subnet]+csgSubnets = lens _csgSubnets (\ s a -> s{_csgSubnets = a}) . _Default . _Coerce;++-- | The name of the cache subnet group.+csgCacheSubnetGroupName :: Lens' CacheSubnetGroup (Maybe Text)+csgCacheSubnetGroupName = lens _csgCacheSubnetGroupName (\ s a -> s{_csgCacheSubnetGroupName = a});++-- | The description of the cache subnet group.+csgCacheSubnetGroupDescription :: Lens' CacheSubnetGroup (Maybe Text)+csgCacheSubnetGroupDescription = lens _csgCacheSubnetGroupDescription (\ s a -> s{_csgCacheSubnetGroupDescription = a});++instance FromXML CacheSubnetGroup where+        parseXML x+          = CacheSubnetGroup' <$>+              (x .@? "VpcId") <*>+                (x .@? "Subnets" .!@ mempty >>=+                   may (parseXMLList "Subnet"))+                <*> (x .@? "CacheSubnetGroupName")+                <*> (x .@? "CacheSubnetGroupDescription")++instance Hashable CacheSubnetGroup where++instance NFData CacheSubnetGroup where++-- | Provides ownership and status information for an Amazon EC2 security group.+--+--+--+-- /See:/ 'ec2SecurityGroup' smart constructor.+data EC2SecurityGroup = EC2SecurityGroup'+  { _esgStatus                  :: !(Maybe Text)+  , _esgEC2SecurityGroupOwnerId :: !(Maybe Text)+  , _esgEC2SecurityGroupName    :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EC2SecurityGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'esgStatus' - The status of the Amazon EC2 security group.+--+-- * 'esgEC2SecurityGroupOwnerId' - The AWS account ID of the Amazon EC2 security group owner.+--+-- * 'esgEC2SecurityGroupName' - The name of the Amazon EC2 security group.+ec2SecurityGroup+    :: EC2SecurityGroup+ec2SecurityGroup =+  EC2SecurityGroup'+  { _esgStatus = Nothing+  , _esgEC2SecurityGroupOwnerId = Nothing+  , _esgEC2SecurityGroupName = Nothing+  }+++-- | The status of the Amazon EC2 security group.+esgStatus :: Lens' EC2SecurityGroup (Maybe Text)+esgStatus = lens _esgStatus (\ s a -> s{_esgStatus = a});++-- | The AWS account ID of the Amazon EC2 security group owner.+esgEC2SecurityGroupOwnerId :: Lens' EC2SecurityGroup (Maybe Text)+esgEC2SecurityGroupOwnerId = lens _esgEC2SecurityGroupOwnerId (\ s a -> s{_esgEC2SecurityGroupOwnerId = a});++-- | The name of the Amazon EC2 security group.+esgEC2SecurityGroupName :: Lens' EC2SecurityGroup (Maybe Text)+esgEC2SecurityGroupName = lens _esgEC2SecurityGroupName (\ s a -> s{_esgEC2SecurityGroupName = a});++instance FromXML EC2SecurityGroup where+        parseXML x+          = EC2SecurityGroup' <$>+              (x .@? "Status") <*>+                (x .@? "EC2SecurityGroupOwnerId")+                <*> (x .@? "EC2SecurityGroupName")++instance Hashable EC2SecurityGroup where++instance NFData EC2SecurityGroup where++-- | Represents the information required for client programs to connect to a cache node.+--+--+--+-- /See:/ 'endpoint' smart constructor.+data Endpoint = Endpoint'+  { _eAddress :: !(Maybe Text)+  , _ePort    :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Endpoint' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eAddress' - The DNS hostname of the cache node.+--+-- * 'ePort' - The port number that the cache engine is listening on.+endpoint+    :: Endpoint+endpoint = Endpoint' {_eAddress = Nothing, _ePort = Nothing}+++-- | The DNS hostname of the cache node.+eAddress :: Lens' Endpoint (Maybe Text)+eAddress = lens _eAddress (\ s a -> s{_eAddress = a});++-- | The port number that the cache engine is listening on.+ePort :: Lens' Endpoint (Maybe Int)+ePort = lens _ePort (\ s a -> s{_ePort = a});++instance FromXML Endpoint where+        parseXML x+          = Endpoint' <$> (x .@? "Address") <*> (x .@? "Port")++instance Hashable Endpoint where++instance NFData Endpoint where++-- | Represents the output of a @DescribeEngineDefaultParameters@ operation.+--+--+--+-- /See:/ 'engineDefaults' smart constructor.+data EngineDefaults = EngineDefaults'+  { _edCacheParameterGroupFamily :: !(Maybe Text)+  , _edCacheNodeTypeSpecificParameters :: !(Maybe [CacheNodeTypeSpecificParameter])+  , _edMarker :: !(Maybe Text)+  , _edParameters :: !(Maybe [Parameter])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EngineDefaults' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'edCacheParameterGroupFamily' - Specifies the name of the cache parameter group family to which the engine default parameters apply. Valid values are: @memcached1.4@ | @redis2.6@ | @redis2.8@ | @redis3.2@+--+-- * 'edCacheNodeTypeSpecificParameters' - A list of parameters specific to a particular cache node type. Each element in the list contains detailed information about one parameter.+--+-- * 'edMarker' - Provides an identifier to allow retrieval of paginated results.+--+-- * 'edParameters' - Contains a list of engine default parameters.+engineDefaults+    :: EngineDefaults+engineDefaults =+  EngineDefaults'+  { _edCacheParameterGroupFamily = Nothing+  , _edCacheNodeTypeSpecificParameters = Nothing+  , _edMarker = Nothing+  , _edParameters = Nothing+  }+++-- | Specifies the name of the cache parameter group family to which the engine default parameters apply. Valid values are: @memcached1.4@ | @redis2.6@ | @redis2.8@ | @redis3.2@+edCacheParameterGroupFamily :: Lens' EngineDefaults (Maybe Text)+edCacheParameterGroupFamily = lens _edCacheParameterGroupFamily (\ s a -> s{_edCacheParameterGroupFamily = a});++-- | A list of parameters specific to a particular cache node type. Each element in the list contains detailed information about one parameter.+edCacheNodeTypeSpecificParameters :: Lens' EngineDefaults [CacheNodeTypeSpecificParameter]+edCacheNodeTypeSpecificParameters = lens _edCacheNodeTypeSpecificParameters (\ s a -> s{_edCacheNodeTypeSpecificParameters = a}) . _Default . _Coerce;++-- | Provides an identifier to allow retrieval of paginated results.+edMarker :: Lens' EngineDefaults (Maybe Text)+edMarker = lens _edMarker (\ s a -> s{_edMarker = a});++-- | Contains a list of engine default parameters.+edParameters :: Lens' EngineDefaults [Parameter]+edParameters = lens _edParameters (\ s a -> s{_edParameters = a}) . _Default . _Coerce;++instance FromXML EngineDefaults where+        parseXML x+          = EngineDefaults' <$>+              (x .@? "CacheParameterGroupFamily") <*>+                (x .@? "CacheNodeTypeSpecificParameters" .!@ mempty+                   >>=+                   may (parseXMLList "CacheNodeTypeSpecificParameter"))+                <*> (x .@? "Marker")+                <*>+                (x .@? "Parameters" .!@ mempty >>=+                   may (parseXMLList "Parameter"))++instance Hashable EngineDefaults where++instance NFData EngineDefaults where++-- | Represents a single occurrence of something interesting within the system. Some examples of events are creating a cluster, adding or removing a cache node, or rebooting a node.+--+--+--+-- /See:/ 'event' smart constructor.+data Event = Event'+  { _eSourceType       :: !(Maybe SourceType)+  , _eSourceIdentifier :: !(Maybe Text)+  , _eDate             :: !(Maybe ISO8601)+  , _eMessage          :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Event' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eSourceType' - Specifies the origin of this event - a cluster, a parameter group, a security group, etc.+--+-- * 'eSourceIdentifier' - The identifier for the source of the event. For example, if the event occurred at the cluster level, the identifier would be the name of the cluster.+--+-- * 'eDate' - The date and time when the event occurred.+--+-- * 'eMessage' - The text of the event.+event+    :: Event+event =+  Event'+  { _eSourceType = Nothing+  , _eSourceIdentifier = Nothing+  , _eDate = Nothing+  , _eMessage = Nothing+  }+++-- | Specifies the origin of this event - a cluster, a parameter group, a security group, etc.+eSourceType :: Lens' Event (Maybe SourceType)+eSourceType = lens _eSourceType (\ s a -> s{_eSourceType = a});++-- | The identifier for the source of the event. For example, if the event occurred at the cluster level, the identifier would be the name of the cluster.+eSourceIdentifier :: Lens' Event (Maybe Text)+eSourceIdentifier = lens _eSourceIdentifier (\ s a -> s{_eSourceIdentifier = a});++-- | The date and time when the event occurred.+eDate :: Lens' Event (Maybe UTCTime)+eDate = lens _eDate (\ s a -> s{_eDate = a}) . mapping _Time;++-- | The text of the event.+eMessage :: Lens' Event (Maybe Text)+eMessage = lens _eMessage (\ s a -> s{_eMessage = a});++instance FromXML Event where+        parseXML x+          = Event' <$>+              (x .@? "SourceType") <*> (x .@? "SourceIdentifier")+                <*> (x .@? "Date")+                <*> (x .@? "Message")++instance Hashable Event where++instance NFData Event where++-- | Represents a collection of cache nodes in a replication group. One node in the node group is the read/write primary node. All the other nodes are read-only Replica nodes.+--+--+--+-- /See:/ 'nodeGroup' smart constructor.+data NodeGroup = NodeGroup'+  { _ngStatus           :: !(Maybe Text)+  , _ngPrimaryEndpoint  :: !(Maybe Endpoint)+  , _ngSlots            :: !(Maybe Text)+  , _ngNodeGroupMembers :: !(Maybe [NodeGroupMember])+  , _ngNodeGroupId      :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NodeGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ngStatus' - The current state of this replication group - @creating@ , @available@ , etc.+--+-- * 'ngPrimaryEndpoint' - The endpoint of the primary node in this node group (shard).+--+-- * 'ngSlots' - The keyspace for this node group (shard).+--+-- * 'ngNodeGroupMembers' - A list containing information about individual nodes within the node group (shard).+--+-- * 'ngNodeGroupId' - The identifier for the node group (shard). A Redis (cluster mode disabled) replication group contains only 1 node group; therefore, the node group ID is 0001. A Redis (cluster mode enabled) replication group contains 1 to 15 node groups numbered 0001 to 0015.+nodeGroup+    :: NodeGroup+nodeGroup =+  NodeGroup'+  { _ngStatus = Nothing+  , _ngPrimaryEndpoint = Nothing+  , _ngSlots = Nothing+  , _ngNodeGroupMembers = Nothing+  , _ngNodeGroupId = Nothing+  }+++-- | The current state of this replication group - @creating@ , @available@ , etc.+ngStatus :: Lens' NodeGroup (Maybe Text)+ngStatus = lens _ngStatus (\ s a -> s{_ngStatus = a});++-- | The endpoint of the primary node in this node group (shard).+ngPrimaryEndpoint :: Lens' NodeGroup (Maybe Endpoint)+ngPrimaryEndpoint = lens _ngPrimaryEndpoint (\ s a -> s{_ngPrimaryEndpoint = a});++-- | The keyspace for this node group (shard).+ngSlots :: Lens' NodeGroup (Maybe Text)+ngSlots = lens _ngSlots (\ s a -> s{_ngSlots = a});++-- | A list containing information about individual nodes within the node group (shard).+ngNodeGroupMembers :: Lens' NodeGroup [NodeGroupMember]+ngNodeGroupMembers = lens _ngNodeGroupMembers (\ s a -> s{_ngNodeGroupMembers = a}) . _Default . _Coerce;++-- | The identifier for the node group (shard). A Redis (cluster mode disabled) replication group contains only 1 node group; therefore, the node group ID is 0001. A Redis (cluster mode enabled) replication group contains 1 to 15 node groups numbered 0001 to 0015.+ngNodeGroupId :: Lens' NodeGroup (Maybe Text)+ngNodeGroupId = lens _ngNodeGroupId (\ s a -> s{_ngNodeGroupId = a});++instance FromXML NodeGroup where+        parseXML x+          = NodeGroup' <$>+              (x .@? "Status") <*> (x .@? "PrimaryEndpoint") <*>+                (x .@? "Slots")+                <*>+                (x .@? "NodeGroupMembers" .!@ mempty >>=+                   may (parseXMLList "NodeGroupMember"))+                <*> (x .@? "NodeGroupId")++instance Hashable NodeGroup where++instance NFData NodeGroup where++-- | Node group (shard) configuration options. Each node group (shard) configuration has the following: @Slots@ , @PrimaryAvailabilityZone@ , @ReplicaAvailabilityZones@ , @ReplicaCount@ .+--+--+--+-- /See:/ 'nodeGroupConfiguration' smart constructor.+data NodeGroupConfiguration = NodeGroupConfiguration'+  { _ngcSlots                    :: !(Maybe Text)+  , _ngcReplicaCount             :: !(Maybe Int)+  , _ngcPrimaryAvailabilityZone  :: !(Maybe Text)+  , _ngcReplicaAvailabilityZones :: !(Maybe [Text])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NodeGroupConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ngcSlots' - A string that specifies the keyspace for a particular node group. Keyspaces range from 0 to 16,383. The string is in the format @startkey-endkey@ . Example: @"0-3999"@+--+-- * 'ngcReplicaCount' - The number of read replica nodes in this node group (shard).+--+-- * 'ngcPrimaryAvailabilityZone' - The Availability Zone where the primary node of this node group (shard) is launched.+--+-- * 'ngcReplicaAvailabilityZones' - A list of Availability Zones to be used for the read replicas. The number of Availability Zones in this list must match the value of @ReplicaCount@ or @ReplicasPerNodeGroup@ if not specified.+nodeGroupConfiguration+    :: NodeGroupConfiguration+nodeGroupConfiguration =+  NodeGroupConfiguration'+  { _ngcSlots = Nothing+  , _ngcReplicaCount = Nothing+  , _ngcPrimaryAvailabilityZone = Nothing+  , _ngcReplicaAvailabilityZones = Nothing+  }+++-- | A string that specifies the keyspace for a particular node group. Keyspaces range from 0 to 16,383. The string is in the format @startkey-endkey@ . Example: @"0-3999"@+ngcSlots :: Lens' NodeGroupConfiguration (Maybe Text)+ngcSlots = lens _ngcSlots (\ s a -> s{_ngcSlots = a});++-- | The number of read replica nodes in this node group (shard).+ngcReplicaCount :: Lens' NodeGroupConfiguration (Maybe Int)+ngcReplicaCount = lens _ngcReplicaCount (\ s a -> s{_ngcReplicaCount = a});++-- | The Availability Zone where the primary node of this node group (shard) is launched.+ngcPrimaryAvailabilityZone :: Lens' NodeGroupConfiguration (Maybe Text)+ngcPrimaryAvailabilityZone = lens _ngcPrimaryAvailabilityZone (\ s a -> s{_ngcPrimaryAvailabilityZone = a});++-- | A list of Availability Zones to be used for the read replicas. The number of Availability Zones in this list must match the value of @ReplicaCount@ or @ReplicasPerNodeGroup@ if not specified.+ngcReplicaAvailabilityZones :: Lens' NodeGroupConfiguration [Text]+ngcReplicaAvailabilityZones = lens _ngcReplicaAvailabilityZones (\ s a -> s{_ngcReplicaAvailabilityZones = a}) . _Default . _Coerce;++instance FromXML NodeGroupConfiguration where+        parseXML x+          = NodeGroupConfiguration' <$>+              (x .@? "Slots") <*> (x .@? "ReplicaCount") <*>+                (x .@? "PrimaryAvailabilityZone")+                <*>+                (x .@? "ReplicaAvailabilityZones" .!@ mempty >>=+                   may (parseXMLList "AvailabilityZone"))++instance Hashable NodeGroupConfiguration where++instance NFData NodeGroupConfiguration where++instance ToQuery NodeGroupConfiguration where+        toQuery NodeGroupConfiguration'{..}+          = mconcat+              ["Slots" =: _ngcSlots,+               "ReplicaCount" =: _ngcReplicaCount,+               "PrimaryAvailabilityZone" =:+                 _ngcPrimaryAvailabilityZone,+               "ReplicaAvailabilityZones" =:+                 toQuery+                   (toQueryList "AvailabilityZone" <$>+                      _ngcReplicaAvailabilityZones)]++-- | Represents a single node within a node group (shard).+--+--+--+-- /See:/ 'nodeGroupMember' smart constructor.+data NodeGroupMember = NodeGroupMember'+  { _ngmCacheClusterId            :: !(Maybe Text)+  , _ngmCacheNodeId               :: !(Maybe Text)+  , _ngmPreferredAvailabilityZone :: !(Maybe Text)+  , _ngmCurrentRole               :: !(Maybe Text)+  , _ngmReadEndpoint              :: !(Maybe Endpoint)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NodeGroupMember' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ngmCacheClusterId' - The ID of the cluster to which the node belongs.+--+-- * 'ngmCacheNodeId' - The ID of the node within its cluster. A node ID is a numeric identifier (0001, 0002, etc.).+--+-- * 'ngmPreferredAvailabilityZone' - The name of the Availability Zone in which the node is located.+--+-- * 'ngmCurrentRole' - The role that is currently assigned to the node - @primary@ or @replica@ .+--+-- * 'ngmReadEndpoint' - Undocumented member.+nodeGroupMember+    :: NodeGroupMember+nodeGroupMember =+  NodeGroupMember'+  { _ngmCacheClusterId = Nothing+  , _ngmCacheNodeId = Nothing+  , _ngmPreferredAvailabilityZone = Nothing+  , _ngmCurrentRole = Nothing+  , _ngmReadEndpoint = Nothing+  }+++-- | The ID of the cluster to which the node belongs.+ngmCacheClusterId :: Lens' NodeGroupMember (Maybe Text)+ngmCacheClusterId = lens _ngmCacheClusterId (\ s a -> s{_ngmCacheClusterId = a});++-- | The ID of the node within its cluster. A node ID is a numeric identifier (0001, 0002, etc.).+ngmCacheNodeId :: Lens' NodeGroupMember (Maybe Text)+ngmCacheNodeId = lens _ngmCacheNodeId (\ s a -> s{_ngmCacheNodeId = a});++-- | The name of the Availability Zone in which the node is located.+ngmPreferredAvailabilityZone :: Lens' NodeGroupMember (Maybe Text)+ngmPreferredAvailabilityZone = lens _ngmPreferredAvailabilityZone (\ s a -> s{_ngmPreferredAvailabilityZone = a});++-- | The role that is currently assigned to the node - @primary@ or @replica@ .+ngmCurrentRole :: Lens' NodeGroupMember (Maybe Text)+ngmCurrentRole = lens _ngmCurrentRole (\ s a -> s{_ngmCurrentRole = a});++-- | Undocumented member.+ngmReadEndpoint :: Lens' NodeGroupMember (Maybe Endpoint)+ngmReadEndpoint = lens _ngmReadEndpoint (\ s a -> s{_ngmReadEndpoint = a});++instance FromXML NodeGroupMember where+        parseXML x+          = NodeGroupMember' <$>+              (x .@? "CacheClusterId") <*> (x .@? "CacheNodeId")+                <*> (x .@? "PreferredAvailabilityZone")+                <*> (x .@? "CurrentRole")+                <*> (x .@? "ReadEndpoint")++instance Hashable NodeGroupMember where++instance NFData NodeGroupMember where++-- | Represents an individual cache node in a snapshot of a cluster.+--+--+--+-- /See:/ 'nodeSnapshot' smart constructor.+data NodeSnapshot = NodeSnapshot'+  { _nsNodeGroupConfiguration :: !(Maybe NodeGroupConfiguration)+  , _nsCacheNodeCreateTime    :: !(Maybe ISO8601)+  , _nsCacheClusterId         :: !(Maybe Text)+  , _nsCacheNodeId            :: !(Maybe Text)+  , _nsNodeGroupId            :: !(Maybe Text)+  , _nsSnapshotCreateTime     :: !(Maybe ISO8601)+  , _nsCacheSize              :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NodeSnapshot' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nsNodeGroupConfiguration' - The configuration for the source node group (shard).+--+-- * 'nsCacheNodeCreateTime' - The date and time when the cache node was created in the source cluster.+--+-- * 'nsCacheClusterId' - A unique identifier for the source cluster.+--+-- * 'nsCacheNodeId' - The cache node identifier for the node in the source cluster.+--+-- * 'nsNodeGroupId' - A unique identifier for the source node group (shard).+--+-- * 'nsSnapshotCreateTime' - The date and time when the source node's metadata and cache data set was obtained for the snapshot.+--+-- * 'nsCacheSize' - The size of the cache on the source cache node.+nodeSnapshot+    :: NodeSnapshot+nodeSnapshot =+  NodeSnapshot'+  { _nsNodeGroupConfiguration = Nothing+  , _nsCacheNodeCreateTime = Nothing+  , _nsCacheClusterId = Nothing+  , _nsCacheNodeId = Nothing+  , _nsNodeGroupId = Nothing+  , _nsSnapshotCreateTime = Nothing+  , _nsCacheSize = Nothing+  }+++-- | The configuration for the source node group (shard).+nsNodeGroupConfiguration :: Lens' NodeSnapshot (Maybe NodeGroupConfiguration)+nsNodeGroupConfiguration = lens _nsNodeGroupConfiguration (\ s a -> s{_nsNodeGroupConfiguration = a});++-- | The date and time when the cache node was created in the source cluster.+nsCacheNodeCreateTime :: Lens' NodeSnapshot (Maybe UTCTime)+nsCacheNodeCreateTime = lens _nsCacheNodeCreateTime (\ s a -> s{_nsCacheNodeCreateTime = a}) . mapping _Time;++-- | A unique identifier for the source cluster.+nsCacheClusterId :: Lens' NodeSnapshot (Maybe Text)+nsCacheClusterId = lens _nsCacheClusterId (\ s a -> s{_nsCacheClusterId = a});++-- | The cache node identifier for the node in the source cluster.+nsCacheNodeId :: Lens' NodeSnapshot (Maybe Text)+nsCacheNodeId = lens _nsCacheNodeId (\ s a -> s{_nsCacheNodeId = a});++-- | A unique identifier for the source node group (shard).+nsNodeGroupId :: Lens' NodeSnapshot (Maybe Text)+nsNodeGroupId = lens _nsNodeGroupId (\ s a -> s{_nsNodeGroupId = a});++-- | The date and time when the source node's metadata and cache data set was obtained for the snapshot.+nsSnapshotCreateTime :: Lens' NodeSnapshot (Maybe UTCTime)+nsSnapshotCreateTime = lens _nsSnapshotCreateTime (\ s a -> s{_nsSnapshotCreateTime = a}) . mapping _Time;++-- | The size of the cache on the source cache node.+nsCacheSize :: Lens' NodeSnapshot (Maybe Text)+nsCacheSize = lens _nsCacheSize (\ s a -> s{_nsCacheSize = a});++instance FromXML NodeSnapshot where+        parseXML x+          = NodeSnapshot' <$>+              (x .@? "NodeGroupConfiguration") <*>+                (x .@? "CacheNodeCreateTime")+                <*> (x .@? "CacheClusterId")+                <*> (x .@? "CacheNodeId")+                <*> (x .@? "NodeGroupId")+                <*> (x .@? "SnapshotCreateTime")+                <*> (x .@? "CacheSize")++instance Hashable NodeSnapshot where++instance NFData NodeSnapshot where++-- | Describes a notification topic and its status. Notification topics are used for publishing ElastiCache events to subscribers using Amazon Simple Notification Service (SNS).+--+--+--+-- /See:/ 'notificationConfiguration' smart constructor.+data NotificationConfiguration = NotificationConfiguration'+  { _ncTopicStatus :: !(Maybe Text)+  , _ncTopicARN    :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NotificationConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ncTopicStatus' - The current state of the topic.+--+-- * 'ncTopicARN' - The Amazon Resource Name (ARN) that identifies the topic.+notificationConfiguration+    :: NotificationConfiguration+notificationConfiguration =+  NotificationConfiguration' {_ncTopicStatus = Nothing, _ncTopicARN = Nothing}+++-- | The current state of the topic.+ncTopicStatus :: Lens' NotificationConfiguration (Maybe Text)+ncTopicStatus = lens _ncTopicStatus (\ s a -> s{_ncTopicStatus = a});++-- | The Amazon Resource Name (ARN) that identifies the topic.+ncTopicARN :: Lens' NotificationConfiguration (Maybe Text)+ncTopicARN = lens _ncTopicARN (\ s a -> s{_ncTopicARN = a});++instance FromXML NotificationConfiguration where+        parseXML x+          = NotificationConfiguration' <$>+              (x .@? "TopicStatus") <*> (x .@? "TopicArn")++instance Hashable NotificationConfiguration where++instance NFData NotificationConfiguration where++-- | Describes an individual setting that controls some aspect of ElastiCache behavior.+--+--+--+-- /See:/ 'parameter' smart constructor.+data Parameter = Parameter'+  { _pParameterValue       :: !(Maybe Text)+  , _pMinimumEngineVersion :: !(Maybe Text)+  , _pSource               :: !(Maybe Text)+  , _pIsModifiable         :: !(Maybe Bool)+  , _pDataType             :: !(Maybe Text)+  , _pAllowedValues        :: !(Maybe Text)+  , _pParameterName        :: !(Maybe Text)+  , _pDescription          :: !(Maybe Text)+  , _pChangeType           :: !(Maybe ChangeType)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Parameter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pParameterValue' - The value of the parameter.+--+-- * 'pMinimumEngineVersion' - The earliest cache engine version to which the parameter can apply.+--+-- * 'pSource' - The source of the parameter.+--+-- * 'pIsModifiable' - Indicates whether (@true@ ) or not (@false@ ) the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed.+--+-- * 'pDataType' - The valid data type for the parameter.+--+-- * 'pAllowedValues' - The valid range of values for the parameter.+--+-- * 'pParameterName' - The name of the parameter.+--+-- * 'pDescription' - A description of the parameter.+--+-- * 'pChangeType' - Indicates whether a change to the parameter is applied immediately or requires a reboot for the change to be applied. You can force a reboot or wait until the next maintenance window's reboot. For more information, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Clusters.Rebooting.html Rebooting a Cluster> .+parameter+    :: Parameter+parameter =+  Parameter'+  { _pParameterValue = Nothing+  , _pMinimumEngineVersion = Nothing+  , _pSource = Nothing+  , _pIsModifiable = Nothing+  , _pDataType = Nothing+  , _pAllowedValues = Nothing+  , _pParameterName = Nothing+  , _pDescription = Nothing+  , _pChangeType = Nothing+  }+++-- | The value of the parameter.+pParameterValue :: Lens' Parameter (Maybe Text)+pParameterValue = lens _pParameterValue (\ s a -> s{_pParameterValue = a});++-- | The earliest cache engine version to which the parameter can apply.+pMinimumEngineVersion :: Lens' Parameter (Maybe Text)+pMinimumEngineVersion = lens _pMinimumEngineVersion (\ s a -> s{_pMinimumEngineVersion = a});++-- | The source of the parameter.+pSource :: Lens' Parameter (Maybe Text)+pSource = lens _pSource (\ s a -> s{_pSource = a});++-- | Indicates whether (@true@ ) or not (@false@ ) the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed.+pIsModifiable :: Lens' Parameter (Maybe Bool)+pIsModifiable = lens _pIsModifiable (\ s a -> s{_pIsModifiable = a});++-- | The valid data type for the parameter.+pDataType :: Lens' Parameter (Maybe Text)+pDataType = lens _pDataType (\ s a -> s{_pDataType = a});++-- | The valid range of values for the parameter.+pAllowedValues :: Lens' Parameter (Maybe Text)+pAllowedValues = lens _pAllowedValues (\ s a -> s{_pAllowedValues = a});++-- | The name of the parameter.+pParameterName :: Lens' Parameter (Maybe Text)+pParameterName = lens _pParameterName (\ s a -> s{_pParameterName = a});++-- | A description of the parameter.+pDescription :: Lens' Parameter (Maybe Text)+pDescription = lens _pDescription (\ s a -> s{_pDescription = a});++-- | Indicates whether a change to the parameter is applied immediately or requires a reboot for the change to be applied. You can force a reboot or wait until the next maintenance window's reboot. For more information, see <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Clusters.Rebooting.html Rebooting a Cluster> .+pChangeType :: Lens' Parameter (Maybe ChangeType)+pChangeType = lens _pChangeType (\ s a -> s{_pChangeType = a});++instance FromXML Parameter where+        parseXML x+          = Parameter' <$>+              (x .@? "ParameterValue") <*>+                (x .@? "MinimumEngineVersion")+                <*> (x .@? "Source")+                <*> (x .@? "IsModifiable")+                <*> (x .@? "DataType")+                <*> (x .@? "AllowedValues")+                <*> (x .@? "ParameterName")+                <*> (x .@? "Description")+                <*> (x .@? "ChangeType")++instance Hashable Parameter where++instance NFData Parameter where++-- | Describes a name-value pair that is used to update the value of a parameter.+--+--+--+-- /See:/ 'parameterNameValue' smart constructor.+data ParameterNameValue = ParameterNameValue'+  { _pnvParameterValue :: !(Maybe Text)+  , _pnvParameterName  :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ParameterNameValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pnvParameterValue' - The value of the parameter.+--+-- * 'pnvParameterName' - The name of the parameter.+parameterNameValue+    :: ParameterNameValue+parameterNameValue =+  ParameterNameValue'+  {_pnvParameterValue = Nothing, _pnvParameterName = Nothing}+++-- | The value of the parameter.+pnvParameterValue :: Lens' ParameterNameValue (Maybe Text)+pnvParameterValue = lens _pnvParameterValue (\ s a -> s{_pnvParameterValue = a});++-- | The name of the parameter.+pnvParameterName :: Lens' ParameterNameValue (Maybe Text)+pnvParameterName = lens _pnvParameterName (\ s a -> s{_pnvParameterName = a});++instance Hashable ParameterNameValue where++instance NFData ParameterNameValue where++instance ToQuery ParameterNameValue where+        toQuery ParameterNameValue'{..}+          = mconcat+              ["ParameterValue" =: _pnvParameterValue,+               "ParameterName" =: _pnvParameterName]++-- | A group of settings that are applied to the cluster in the future, or that are currently being applied.+--+--+--+-- /See:/ 'pendingModifiedValues' smart constructor.+data PendingModifiedValues = PendingModifiedValues'+  { _pmvEngineVersion        :: !(Maybe Text)+  , _pmvCacheNodeType        :: !(Maybe Text)+  , _pmvCacheNodeIdsToRemove :: !(Maybe [Text])+  , _pmvNumCacheNodes        :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PendingModifiedValues' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pmvEngineVersion' - The new cache engine version that the cluster runs.+--+-- * 'pmvCacheNodeType' - The cache node type that this cluster or replication group is scaled to.+--+-- * 'pmvCacheNodeIdsToRemove' - A list of cache node IDs that are being removed (or will be removed) from the cluster. A node ID is a numeric identifier (0001, 0002, etc.).+--+-- * 'pmvNumCacheNodes' - The new number of cache nodes for the cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.+pendingModifiedValues+    :: PendingModifiedValues+pendingModifiedValues =+  PendingModifiedValues'+  { _pmvEngineVersion = Nothing+  , _pmvCacheNodeType = Nothing+  , _pmvCacheNodeIdsToRemove = Nothing+  , _pmvNumCacheNodes = Nothing+  }+++-- | The new cache engine version that the cluster runs.+pmvEngineVersion :: Lens' PendingModifiedValues (Maybe Text)+pmvEngineVersion = lens _pmvEngineVersion (\ s a -> s{_pmvEngineVersion = a});++-- | The cache node type that this cluster or replication group is scaled to.+pmvCacheNodeType :: Lens' PendingModifiedValues (Maybe Text)+pmvCacheNodeType = lens _pmvCacheNodeType (\ s a -> s{_pmvCacheNodeType = a});++-- | A list of cache node IDs that are being removed (or will be removed) from the cluster. A node ID is a numeric identifier (0001, 0002, etc.).+pmvCacheNodeIdsToRemove :: Lens' PendingModifiedValues [Text]+pmvCacheNodeIdsToRemove = lens _pmvCacheNodeIdsToRemove (\ s a -> s{_pmvCacheNodeIdsToRemove = a}) . _Default . _Coerce;++-- | The new number of cache nodes for the cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.+pmvNumCacheNodes :: Lens' PendingModifiedValues (Maybe Int)+pmvNumCacheNodes = lens _pmvNumCacheNodes (\ s a -> s{_pmvNumCacheNodes = a});++instance FromXML PendingModifiedValues where+        parseXML x+          = PendingModifiedValues' <$>+              (x .@? "EngineVersion") <*> (x .@? "CacheNodeType")+                <*>+                (x .@? "CacheNodeIdsToRemove" .!@ mempty >>=+                   may (parseXMLList "CacheNodeId"))+                <*> (x .@? "NumCacheNodes")++instance Hashable PendingModifiedValues where++instance NFData PendingModifiedValues where++-- | Contains the specific price and frequency of a recurring charges for a reserved cache node, or for a reserved cache node offering.+--+--+--+-- /See:/ 'recurringCharge' smart constructor.+data RecurringCharge = RecurringCharge'+  { _rcRecurringChargeFrequency :: !(Maybe Text)+  , _rcRecurringChargeAmount    :: !(Maybe Double)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RecurringCharge' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rcRecurringChargeFrequency' - The frequency of the recurring charge.+--+-- * 'rcRecurringChargeAmount' - The monetary amount of the recurring charge.+recurringCharge+    :: RecurringCharge+recurringCharge =+  RecurringCharge'+  {_rcRecurringChargeFrequency = Nothing, _rcRecurringChargeAmount = Nothing}+++-- | The frequency of the recurring charge.+rcRecurringChargeFrequency :: Lens' RecurringCharge (Maybe Text)+rcRecurringChargeFrequency = lens _rcRecurringChargeFrequency (\ s a -> s{_rcRecurringChargeFrequency = a});++-- | The monetary amount of the recurring charge.+rcRecurringChargeAmount :: Lens' RecurringCharge (Maybe Double)+rcRecurringChargeAmount = lens _rcRecurringChargeAmount (\ s a -> s{_rcRecurringChargeAmount = a});++instance FromXML RecurringCharge where+        parseXML x+          = RecurringCharge' <$>+              (x .@? "RecurringChargeFrequency") <*>+                (x .@? "RecurringChargeAmount")++instance Hashable RecurringCharge where++instance NFData RecurringCharge where++-- | Contains all of the attributes of a specific Redis replication group.+--+--+--+-- /See:/ 'replicationGroup' smart constructor.+data ReplicationGroup = ReplicationGroup'+  { _rgStatus :: !(Maybe Text)+  , _rgCacheNodeType :: !(Maybe Text)+  , _rgNodeGroups :: !(Maybe [NodeGroup])+  , _rgSnapshottingClusterId :: !(Maybe Text)+  , _rgClusterEnabled :: !(Maybe Bool)+  , _rgAtRestEncryptionEnabled :: !(Maybe Bool)+  , _rgTransitEncryptionEnabled :: !(Maybe Bool)+  , _rgSnapshotWindow :: !(Maybe Text)+  , _rgConfigurationEndpoint :: !(Maybe Endpoint)+  , _rgAuthTokenEnabled :: !(Maybe Bool)+  , _rgMemberClusters :: !(Maybe [Text])+  , _rgSnapshotRetentionLimit :: !(Maybe Int)+  , _rgDescription :: !(Maybe Text)+  , _rgReplicationGroupId :: !(Maybe Text)+  , _rgPendingModifiedValues :: !(Maybe ReplicationGroupPendingModifiedValues)+  , _rgAutomaticFailover :: !(Maybe AutomaticFailoverStatus)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ReplicationGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rgStatus' - The current state of this replication group - @creating@ , @available@ , @modifying@ , @deleting@ , @create-failed@ , @snapshotting@ .+--+-- * 'rgCacheNodeType' - The name of the compute and memory capacity node type for each node in the replication group.+--+-- * 'rgNodeGroups' - A list of node groups in this replication group. For Redis (cluster mode disabled) replication groups, this is a single-element list. For Redis (cluster mode enabled) replication groups, the list contains an entry for each node group (shard).+--+-- * 'rgSnapshottingClusterId' - The cluster ID that is used as the daily snapshot source for the replication group.+--+-- * 'rgClusterEnabled' - A flag indicating whether or not this replication group is cluster enabled; i.e., whether its data can be partitioned across multiple shards (API/CLI: node groups). Valid values: @true@ | @false@+--+-- * 'rgAtRestEncryptionEnabled' - A flag that enables encryption at-rest when set to @true@ . You cannot modify the value of @AtRestEncryptionEnabled@ after the cluster is created. To enable encryption at-rest on a cluster you must set @AtRestEncryptionEnabled@ to @true@ when you create a cluster. Default: @false@+--+-- * 'rgTransitEncryptionEnabled' - A flag that enables in-transit encryption when set to @true@ . You cannot modify the value of @TransitEncryptionEnabled@ after the cluster is created. To enable in-transit encryption on a cluster you must set @TransitEncryptionEnabled@ to @true@ when you create a cluster. Default: @false@+--+-- * 'rgSnapshotWindow' - The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: @05:00-09:00@  If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range.+--+-- * 'rgConfigurationEndpoint' - The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group.+--+-- * 'rgAuthTokenEnabled' - A flag that enables using an @AuthToken@ (password) when issuing Redis commands. Default: @false@+--+-- * 'rgMemberClusters' - The identifiers of all the nodes that are part of this replication group.+--+-- * 'rgSnapshotRetentionLimit' - The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set @SnapshotRetentionLimit@ to 5, a snapshot that was taken today is retained for 5 days before being deleted. /Important:/ If the value of @SnapshotRetentionLimit@ is set to zero (0), backups are turned off.+--+-- * 'rgDescription' - The user supplied description of the replication group.+--+-- * 'rgReplicationGroupId' - The identifier for the replication group.+--+-- * 'rgPendingModifiedValues' - A group of settings to be applied to the replication group, either immediately or during the next maintenance window.+--+-- * 'rgAutomaticFailover' - Indicates the status of Multi-AZ with automatic failover for this Redis replication group. Amazon ElastiCache for Redis does not support Multi-AZ with automatic failover on:     * Redis versions earlier than 2.8.6.     * Redis (cluster mode disabled): T1 and T2 cache node types.     * Redis (cluster mode enabled): T1 node types.+replicationGroup+    :: ReplicationGroup+replicationGroup =+  ReplicationGroup'+  { _rgStatus = Nothing+  , _rgCacheNodeType = Nothing+  , _rgNodeGroups = Nothing+  , _rgSnapshottingClusterId = Nothing+  , _rgClusterEnabled = Nothing+  , _rgAtRestEncryptionEnabled = Nothing+  , _rgTransitEncryptionEnabled = Nothing+  , _rgSnapshotWindow = Nothing+  , _rgConfigurationEndpoint = Nothing+  , _rgAuthTokenEnabled = Nothing+  , _rgMemberClusters = Nothing+  , _rgSnapshotRetentionLimit = Nothing+  , _rgDescription = Nothing+  , _rgReplicationGroupId = Nothing+  , _rgPendingModifiedValues = Nothing+  , _rgAutomaticFailover = Nothing+  }+++-- | The current state of this replication group - @creating@ , @available@ , @modifying@ , @deleting@ , @create-failed@ , @snapshotting@ .+rgStatus :: Lens' ReplicationGroup (Maybe Text)+rgStatus = lens _rgStatus (\ s a -> s{_rgStatus = a});++-- | The name of the compute and memory capacity node type for each node in the replication group.+rgCacheNodeType :: Lens' ReplicationGroup (Maybe Text)+rgCacheNodeType = lens _rgCacheNodeType (\ s a -> s{_rgCacheNodeType = a});++-- | A list of node groups in this replication group. For Redis (cluster mode disabled) replication groups, this is a single-element list. For Redis (cluster mode enabled) replication groups, the list contains an entry for each node group (shard).+rgNodeGroups :: Lens' ReplicationGroup [NodeGroup]+rgNodeGroups = lens _rgNodeGroups (\ s a -> s{_rgNodeGroups = a}) . _Default . _Coerce;++-- | The cluster ID that is used as the daily snapshot source for the replication group.+rgSnapshottingClusterId :: Lens' ReplicationGroup (Maybe Text)+rgSnapshottingClusterId = lens _rgSnapshottingClusterId (\ s a -> s{_rgSnapshottingClusterId = a});++-- | A flag indicating whether or not this replication group is cluster enabled; i.e., whether its data can be partitioned across multiple shards (API/CLI: node groups). Valid values: @true@ | @false@+rgClusterEnabled :: Lens' ReplicationGroup (Maybe Bool)+rgClusterEnabled = lens _rgClusterEnabled (\ s a -> s{_rgClusterEnabled = a});++-- | A flag that enables encryption at-rest when set to @true@ . You cannot modify the value of @AtRestEncryptionEnabled@ after the cluster is created. To enable encryption at-rest on a cluster you must set @AtRestEncryptionEnabled@ to @true@ when you create a cluster. Default: @false@+rgAtRestEncryptionEnabled :: Lens' ReplicationGroup (Maybe Bool)+rgAtRestEncryptionEnabled = lens _rgAtRestEncryptionEnabled (\ s a -> s{_rgAtRestEncryptionEnabled = a});++-- | A flag that enables in-transit encryption when set to @true@ . You cannot modify the value of @TransitEncryptionEnabled@ after the cluster is created. To enable in-transit encryption on a cluster you must set @TransitEncryptionEnabled@ to @true@ when you create a cluster. Default: @false@+rgTransitEncryptionEnabled :: Lens' ReplicationGroup (Maybe Bool)+rgTransitEncryptionEnabled = lens _rgTransitEncryptionEnabled (\ s a -> s{_rgTransitEncryptionEnabled = a});++-- | The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: @05:00-09:00@  If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range.+rgSnapshotWindow :: Lens' ReplicationGroup (Maybe Text)+rgSnapshotWindow = lens _rgSnapshotWindow (\ s a -> s{_rgSnapshotWindow = a});++-- | The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group.+rgConfigurationEndpoint :: Lens' ReplicationGroup (Maybe Endpoint)+rgConfigurationEndpoint = lens _rgConfigurationEndpoint (\ s a -> s{_rgConfigurationEndpoint = a});++-- | A flag that enables using an @AuthToken@ (password) when issuing Redis commands. Default: @false@+rgAuthTokenEnabled :: Lens' ReplicationGroup (Maybe Bool)+rgAuthTokenEnabled = lens _rgAuthTokenEnabled (\ s a -> s{_rgAuthTokenEnabled = a});++-- | The identifiers of all the nodes that are part of this replication group.+rgMemberClusters :: Lens' ReplicationGroup [Text]+rgMemberClusters = lens _rgMemberClusters (\ s a -> s{_rgMemberClusters = a}) . _Default . _Coerce;++-- | The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set @SnapshotRetentionLimit@ to 5, a snapshot that was taken today is retained for 5 days before being deleted. /Important:/ If the value of @SnapshotRetentionLimit@ is set to zero (0), backups are turned off.+rgSnapshotRetentionLimit :: Lens' ReplicationGroup (Maybe Int)+rgSnapshotRetentionLimit = lens _rgSnapshotRetentionLimit (\ s a -> s{_rgSnapshotRetentionLimit = a});++-- | The user supplied description of the replication group.+rgDescription :: Lens' ReplicationGroup (Maybe Text)+rgDescription = lens _rgDescription (\ s a -> s{_rgDescription = a});++-- | The identifier for the replication group.+rgReplicationGroupId :: Lens' ReplicationGroup (Maybe Text)+rgReplicationGroupId = lens _rgReplicationGroupId (\ s a -> s{_rgReplicationGroupId = a});++-- | A group of settings to be applied to the replication group, either immediately or during the next maintenance window.+rgPendingModifiedValues :: Lens' ReplicationGroup (Maybe ReplicationGroupPendingModifiedValues)+rgPendingModifiedValues = lens _rgPendingModifiedValues (\ s a -> s{_rgPendingModifiedValues = a});++-- | Indicates the status of Multi-AZ with automatic failover for this Redis replication group. Amazon ElastiCache for Redis does not support Multi-AZ with automatic failover on:     * Redis versions earlier than 2.8.6.     * Redis (cluster mode disabled): T1 and T2 cache node types.     * Redis (cluster mode enabled): T1 node types.+rgAutomaticFailover :: Lens' ReplicationGroup (Maybe AutomaticFailoverStatus)+rgAutomaticFailover = lens _rgAutomaticFailover (\ s a -> s{_rgAutomaticFailover = a});++instance FromXML ReplicationGroup where+        parseXML x+          = ReplicationGroup' <$>+              (x .@? "Status") <*> (x .@? "CacheNodeType") <*>+                (x .@? "NodeGroups" .!@ mempty >>=+                   may (parseXMLList "NodeGroup"))+                <*> (x .@? "SnapshottingClusterId")+                <*> (x .@? "ClusterEnabled")+                <*> (x .@? "AtRestEncryptionEnabled")+                <*> (x .@? "TransitEncryptionEnabled")+                <*> (x .@? "SnapshotWindow")+                <*> (x .@? "ConfigurationEndpoint")+                <*> (x .@? "AuthTokenEnabled")+                <*>+                (x .@? "MemberClusters" .!@ mempty >>=+                   may (parseXMLList "ClusterId"))+                <*> (x .@? "SnapshotRetentionLimit")+                <*> (x .@? "Description")+                <*> (x .@? "ReplicationGroupId")+                <*> (x .@? "PendingModifiedValues")+                <*> (x .@? "AutomaticFailover")++instance Hashable ReplicationGroup where++instance NFData ReplicationGroup where++-- | The settings to be applied to the Redis replication group, either immediately or during the next maintenance window.+--+--+--+-- /See:/ 'replicationGroupPendingModifiedValues' smart constructor.+data ReplicationGroupPendingModifiedValues = ReplicationGroupPendingModifiedValues'+  { _rgpmvResharding              :: !(Maybe ReshardingStatus)+  , _rgpmvPrimaryClusterId        :: !(Maybe Text)+  , _rgpmvAutomaticFailoverStatus :: !(Maybe PendingAutomaticFailoverStatus)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ReplicationGroupPendingModifiedValues' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rgpmvResharding' - The status of an online resharding operation.+--+-- * 'rgpmvPrimaryClusterId' - The primary cluster ID that is applied immediately (if @--apply-immediately@ was specified), or during the next maintenance window.+--+-- * 'rgpmvAutomaticFailoverStatus' - Indicates the status of Multi-AZ with automatic failover for this Redis replication group. Amazon ElastiCache for Redis does not support Multi-AZ with automatic failover on:     * Redis versions earlier than 2.8.6.     * Redis (cluster mode disabled): T1 and T2 cache node types.     * Redis (cluster mode enabled): T1 node types.+replicationGroupPendingModifiedValues+    :: ReplicationGroupPendingModifiedValues+replicationGroupPendingModifiedValues =+  ReplicationGroupPendingModifiedValues'+  { _rgpmvResharding = Nothing+  , _rgpmvPrimaryClusterId = Nothing+  , _rgpmvAutomaticFailoverStatus = Nothing+  }+++-- | The status of an online resharding operation.+rgpmvResharding :: Lens' ReplicationGroupPendingModifiedValues (Maybe ReshardingStatus)+rgpmvResharding = lens _rgpmvResharding (\ s a -> s{_rgpmvResharding = a});++-- | The primary cluster ID that is applied immediately (if @--apply-immediately@ was specified), or during the next maintenance window.+rgpmvPrimaryClusterId :: Lens' ReplicationGroupPendingModifiedValues (Maybe Text)+rgpmvPrimaryClusterId = lens _rgpmvPrimaryClusterId (\ s a -> s{_rgpmvPrimaryClusterId = a});++-- | Indicates the status of Multi-AZ with automatic failover for this Redis replication group. Amazon ElastiCache for Redis does not support Multi-AZ with automatic failover on:     * Redis versions earlier than 2.8.6.     * Redis (cluster mode disabled): T1 and T2 cache node types.     * Redis (cluster mode enabled): T1 node types.+rgpmvAutomaticFailoverStatus :: Lens' ReplicationGroupPendingModifiedValues (Maybe PendingAutomaticFailoverStatus)+rgpmvAutomaticFailoverStatus = lens _rgpmvAutomaticFailoverStatus (\ s a -> s{_rgpmvAutomaticFailoverStatus = a});++instance FromXML+           ReplicationGroupPendingModifiedValues+         where+        parseXML x+          = ReplicationGroupPendingModifiedValues' <$>+              (x .@? "Resharding") <*> (x .@? "PrimaryClusterId")+                <*> (x .@? "AutomaticFailoverStatus")++instance Hashable+           ReplicationGroupPendingModifiedValues+         where++instance NFData ReplicationGroupPendingModifiedValues+         where++-- | Represents the output of a @PurchaseReservedCacheNodesOffering@ operation.+--+--+--+-- /See:/ 'reservedCacheNode' smart constructor.+data ReservedCacheNode = ReservedCacheNode'+  { _rcnCacheNodeType                :: !(Maybe Text)+  , _rcnState                        :: !(Maybe Text)+  , _rcnStartTime                    :: !(Maybe ISO8601)+  , _rcnProductDescription           :: !(Maybe Text)+  , _rcnCacheNodeCount               :: !(Maybe Int)+  , _rcnReservedCacheNodeId          :: !(Maybe Text)+  , _rcnRecurringCharges             :: !(Maybe [RecurringCharge])+  , _rcnOfferingType                 :: !(Maybe Text)+  , _rcnUsagePrice                   :: !(Maybe Double)+  , _rcnFixedPrice                   :: !(Maybe Double)+  , _rcnDuration                     :: !(Maybe Int)+  , _rcnReservedCacheNodesOfferingId :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ReservedCacheNode' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rcnCacheNodeType' - The cache node type for the reserved cache nodes. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.     * General purpose:     * Current generation:  __T2 node types:__ @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@  __M3 node types:__ @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@  __M4 node types:__ @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: (not recommended) __T1 node types:__ @cache.t1.micro@  __M1 node types:__ @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized:     * Previous generation: (not recommended) __C1 node types:__ @cache.c1.xlarge@      * Memory optimized:     * Current generation:  __R3 node types:__ @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: (not recommended) __M2 node types:__ @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances.      * Redis (cluster mode enabled): Backup/restore is not supported on T1 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .+--+-- * 'rcnState' - The state of the reserved cache node.+--+-- * 'rcnStartTime' - The time the reservation started.+--+-- * 'rcnProductDescription' - The description of the reserved cache node.+--+-- * 'rcnCacheNodeCount' - The number of cache nodes that have been reserved.+--+-- * 'rcnReservedCacheNodeId' - The unique identifier for the reservation.+--+-- * 'rcnRecurringCharges' - The recurring price charged to run this reserved cache node.+--+-- * 'rcnOfferingType' - The offering type of this reserved cache node.+--+-- * 'rcnUsagePrice' - The hourly price charged for this reserved cache node.+--+-- * 'rcnFixedPrice' - The fixed price charged for this reserved cache node.+--+-- * 'rcnDuration' - The duration of the reservation in seconds.+--+-- * 'rcnReservedCacheNodesOfferingId' - The offering identifier.+reservedCacheNode+    :: ReservedCacheNode+reservedCacheNode =+  ReservedCacheNode'+  { _rcnCacheNodeType = Nothing+  , _rcnState = Nothing+  , _rcnStartTime = Nothing+  , _rcnProductDescription = Nothing+  , _rcnCacheNodeCount = Nothing+  , _rcnReservedCacheNodeId = Nothing+  , _rcnRecurringCharges = Nothing+  , _rcnOfferingType = Nothing+  , _rcnUsagePrice = Nothing+  , _rcnFixedPrice = Nothing+  , _rcnDuration = Nothing+  , _rcnReservedCacheNodesOfferingId = Nothing+  }+++-- | The cache node type for the reserved cache nodes. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.     * General purpose:     * Current generation:  __T2 node types:__ @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@  __M3 node types:__ @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@  __M4 node types:__ @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: (not recommended) __T1 node types:__ @cache.t1.micro@  __M1 node types:__ @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized:     * Previous generation: (not recommended) __C1 node types:__ @cache.c1.xlarge@      * Memory optimized:     * Current generation:  __R3 node types:__ @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: (not recommended) __M2 node types:__ @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances.      * Redis (cluster mode enabled): Backup/restore is not supported on T1 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .+rcnCacheNodeType :: Lens' ReservedCacheNode (Maybe Text)+rcnCacheNodeType = lens _rcnCacheNodeType (\ s a -> s{_rcnCacheNodeType = a});++-- | The state of the reserved cache node.+rcnState :: Lens' ReservedCacheNode (Maybe Text)+rcnState = lens _rcnState (\ s a -> s{_rcnState = a});++-- | The time the reservation started.+rcnStartTime :: Lens' ReservedCacheNode (Maybe UTCTime)+rcnStartTime = lens _rcnStartTime (\ s a -> s{_rcnStartTime = a}) . mapping _Time;++-- | The description of the reserved cache node.+rcnProductDescription :: Lens' ReservedCacheNode (Maybe Text)+rcnProductDescription = lens _rcnProductDescription (\ s a -> s{_rcnProductDescription = a});++-- | The number of cache nodes that have been reserved.+rcnCacheNodeCount :: Lens' ReservedCacheNode (Maybe Int)+rcnCacheNodeCount = lens _rcnCacheNodeCount (\ s a -> s{_rcnCacheNodeCount = a});++-- | The unique identifier for the reservation.+rcnReservedCacheNodeId :: Lens' ReservedCacheNode (Maybe Text)+rcnReservedCacheNodeId = lens _rcnReservedCacheNodeId (\ s a -> s{_rcnReservedCacheNodeId = a});++-- | The recurring price charged to run this reserved cache node.+rcnRecurringCharges :: Lens' ReservedCacheNode [RecurringCharge]+rcnRecurringCharges = lens _rcnRecurringCharges (\ s a -> s{_rcnRecurringCharges = a}) . _Default . _Coerce;++-- | The offering type of this reserved cache node.+rcnOfferingType :: Lens' ReservedCacheNode (Maybe Text)+rcnOfferingType = lens _rcnOfferingType (\ s a -> s{_rcnOfferingType = a});++-- | The hourly price charged for this reserved cache node.+rcnUsagePrice :: Lens' ReservedCacheNode (Maybe Double)+rcnUsagePrice = lens _rcnUsagePrice (\ s a -> s{_rcnUsagePrice = a});++-- | The fixed price charged for this reserved cache node.+rcnFixedPrice :: Lens' ReservedCacheNode (Maybe Double)+rcnFixedPrice = lens _rcnFixedPrice (\ s a -> s{_rcnFixedPrice = a});++-- | The duration of the reservation in seconds.+rcnDuration :: Lens' ReservedCacheNode (Maybe Int)+rcnDuration = lens _rcnDuration (\ s a -> s{_rcnDuration = a});++-- | The offering identifier.+rcnReservedCacheNodesOfferingId :: Lens' ReservedCacheNode (Maybe Text)+rcnReservedCacheNodesOfferingId = lens _rcnReservedCacheNodesOfferingId (\ s a -> s{_rcnReservedCacheNodesOfferingId = a});++instance FromXML ReservedCacheNode where+        parseXML x+          = ReservedCacheNode' <$>+              (x .@? "CacheNodeType") <*> (x .@? "State") <*>+                (x .@? "StartTime")+                <*> (x .@? "ProductDescription")+                <*> (x .@? "CacheNodeCount")+                <*> (x .@? "ReservedCacheNodeId")+                <*>+                (x .@? "RecurringCharges" .!@ mempty >>=+                   may (parseXMLList "RecurringCharge"))+                <*> (x .@? "OfferingType")+                <*> (x .@? "UsagePrice")+                <*> (x .@? "FixedPrice")+                <*> (x .@? "Duration")+                <*> (x .@? "ReservedCacheNodesOfferingId")++instance Hashable ReservedCacheNode where++instance NFData ReservedCacheNode where++-- | Describes all of the attributes of a reserved cache node offering.+--+--+--+-- /See:/ 'reservedCacheNodesOffering' smart constructor.+data ReservedCacheNodesOffering = ReservedCacheNodesOffering'+  { _rcnoCacheNodeType                :: !(Maybe Text)+  , _rcnoProductDescription           :: !(Maybe Text)+  , _rcnoRecurringCharges             :: !(Maybe [RecurringCharge])+  , _rcnoOfferingType                 :: !(Maybe Text)+  , _rcnoUsagePrice                   :: !(Maybe Double)+  , _rcnoFixedPrice                   :: !(Maybe Double)+  , _rcnoDuration                     :: !(Maybe Int)+  , _rcnoReservedCacheNodesOfferingId :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ReservedCacheNodesOffering' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rcnoCacheNodeType' - The cache node type for the reserved cache node. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.     * General purpose:     * Current generation:  __T2 node types:__ @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@  __M3 node types:__ @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@  __M4 node types:__ @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: (not recommended) __T1 node types:__ @cache.t1.micro@  __M1 node types:__ @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized:     * Previous generation: (not recommended) __C1 node types:__ @cache.c1.xlarge@      * Memory optimized:     * Current generation:  __R3 node types:__ @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: (not recommended) __M2 node types:__ @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances.      * Redis (cluster mode enabled): Backup/restore is not supported on T1 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .+--+-- * 'rcnoProductDescription' - The cache engine used by the offering.+--+-- * 'rcnoRecurringCharges' - The recurring price charged to run this reserved cache node.+--+-- * 'rcnoOfferingType' - The offering type.+--+-- * 'rcnoUsagePrice' - The hourly price charged for this offering.+--+-- * 'rcnoFixedPrice' - The fixed price charged for this offering.+--+-- * 'rcnoDuration' - The duration of the offering. in seconds.+--+-- * 'rcnoReservedCacheNodesOfferingId' - A unique identifier for the reserved cache node offering.+reservedCacheNodesOffering+    :: ReservedCacheNodesOffering+reservedCacheNodesOffering =+  ReservedCacheNodesOffering'+  { _rcnoCacheNodeType = Nothing+  , _rcnoProductDescription = Nothing+  , _rcnoRecurringCharges = Nothing+  , _rcnoOfferingType = Nothing+  , _rcnoUsagePrice = Nothing+  , _rcnoFixedPrice = Nothing+  , _rcnoDuration = Nothing+  , _rcnoReservedCacheNodesOfferingId = Nothing+  }+++-- | The cache node type for the reserved cache node. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.     * General purpose:     * Current generation:  __T2 node types:__ @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@  __M3 node types:__ @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@  __M4 node types:__ @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: (not recommended) __T1 node types:__ @cache.t1.micro@  __M1 node types:__ @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized:     * Previous generation: (not recommended) __C1 node types:__ @cache.c1.xlarge@      * Memory optimized:     * Current generation:  __R3 node types:__ @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: (not recommended) __M2 node types:__ @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances.      * Redis (cluster mode enabled): Backup/restore is not supported on T1 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .+rcnoCacheNodeType :: Lens' ReservedCacheNodesOffering (Maybe Text)+rcnoCacheNodeType = lens _rcnoCacheNodeType (\ s a -> s{_rcnoCacheNodeType = a});++-- | The cache engine used by the offering.+rcnoProductDescription :: Lens' ReservedCacheNodesOffering (Maybe Text)+rcnoProductDescription = lens _rcnoProductDescription (\ s a -> s{_rcnoProductDescription = a});++-- | The recurring price charged to run this reserved cache node.+rcnoRecurringCharges :: Lens' ReservedCacheNodesOffering [RecurringCharge]+rcnoRecurringCharges = lens _rcnoRecurringCharges (\ s a -> s{_rcnoRecurringCharges = a}) . _Default . _Coerce;++-- | The offering type.+rcnoOfferingType :: Lens' ReservedCacheNodesOffering (Maybe Text)+rcnoOfferingType = lens _rcnoOfferingType (\ s a -> s{_rcnoOfferingType = a});++-- | The hourly price charged for this offering.+rcnoUsagePrice :: Lens' ReservedCacheNodesOffering (Maybe Double)+rcnoUsagePrice = lens _rcnoUsagePrice (\ s a -> s{_rcnoUsagePrice = a});++-- | The fixed price charged for this offering.+rcnoFixedPrice :: Lens' ReservedCacheNodesOffering (Maybe Double)+rcnoFixedPrice = lens _rcnoFixedPrice (\ s a -> s{_rcnoFixedPrice = a});++-- | The duration of the offering. in seconds.+rcnoDuration :: Lens' ReservedCacheNodesOffering (Maybe Int)+rcnoDuration = lens _rcnoDuration (\ s a -> s{_rcnoDuration = a});++-- | A unique identifier for the reserved cache node offering.+rcnoReservedCacheNodesOfferingId :: Lens' ReservedCacheNodesOffering (Maybe Text)+rcnoReservedCacheNodesOfferingId = lens _rcnoReservedCacheNodesOfferingId (\ s a -> s{_rcnoReservedCacheNodesOfferingId = a});++instance FromXML ReservedCacheNodesOffering where+        parseXML x+          = ReservedCacheNodesOffering' <$>+              (x .@? "CacheNodeType") <*>+                (x .@? "ProductDescription")+                <*>+                (x .@? "RecurringCharges" .!@ mempty >>=+                   may (parseXMLList "RecurringCharge"))+                <*> (x .@? "OfferingType")+                <*> (x .@? "UsagePrice")+                <*> (x .@? "FixedPrice")+                <*> (x .@? "Duration")+                <*> (x .@? "ReservedCacheNodesOfferingId")++instance Hashable ReservedCacheNodesOffering where++instance NFData ReservedCacheNodesOffering where++-- | A list of @PreferredAvailabilityZones@ objects that specifies the configuration of a node group in the resharded cluster.+--+--+--+-- /See:/ 'reshardingConfiguration' smart constructor.+newtype ReshardingConfiguration = ReshardingConfiguration'+  { _rcPreferredAvailabilityZones :: Maybe [Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ReshardingConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rcPreferredAvailabilityZones' - A list of preferred availability zones for the nodes in this cluster.+reshardingConfiguration+    :: ReshardingConfiguration+reshardingConfiguration =+  ReshardingConfiguration' {_rcPreferredAvailabilityZones = Nothing}+++-- | A list of preferred availability zones for the nodes in this cluster.+rcPreferredAvailabilityZones :: Lens' ReshardingConfiguration [Text]+rcPreferredAvailabilityZones = lens _rcPreferredAvailabilityZones (\ s a -> s{_rcPreferredAvailabilityZones = a}) . _Default . _Coerce;++instance Hashable ReshardingConfiguration where++instance NFData ReshardingConfiguration where++instance ToQuery ReshardingConfiguration where+        toQuery ReshardingConfiguration'{..}+          = mconcat+              ["PreferredAvailabilityZones" =:+                 toQuery+                   (toQueryList "AvailabilityZone" <$>+                      _rcPreferredAvailabilityZones)]++-- | The status of an online resharding operation.+--+--+--+-- /See:/ 'reshardingStatus' smart constructor.+newtype ReshardingStatus = ReshardingStatus'+  { _rsSlotMigration :: Maybe SlotMigration+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ReshardingStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rsSlotMigration' - Represents the progress of an online resharding operation.+reshardingStatus+    :: ReshardingStatus+reshardingStatus = ReshardingStatus' {_rsSlotMigration = Nothing}+++-- | Represents the progress of an online resharding operation.+rsSlotMigration :: Lens' ReshardingStatus (Maybe SlotMigration)+rsSlotMigration = lens _rsSlotMigration (\ s a -> s{_rsSlotMigration = a});++instance FromXML ReshardingStatus where+        parseXML x+          = ReshardingStatus' <$> (x .@? "SlotMigration")++instance Hashable ReshardingStatus where++instance NFData ReshardingStatus where++-- | Represents a single cache security group and its status.+--+--+--+-- /See:/ 'securityGroupMembership' smart constructor.+data SecurityGroupMembership = SecurityGroupMembership'+  { _sgmStatus          :: !(Maybe Text)+  , _sgmSecurityGroupId :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SecurityGroupMembership' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sgmStatus' - The status of the cache security group membership. The status changes whenever a cache security group is modified, or when the cache security groups assigned to a cluster are modified.+--+-- * 'sgmSecurityGroupId' - The identifier of the cache security group.+securityGroupMembership+    :: SecurityGroupMembership+securityGroupMembership =+  SecurityGroupMembership' {_sgmStatus = Nothing, _sgmSecurityGroupId = Nothing}+++-- | The status of the cache security group membership. The status changes whenever a cache security group is modified, or when the cache security groups assigned to a cluster are modified.+sgmStatus :: Lens' SecurityGroupMembership (Maybe Text)+sgmStatus = lens _sgmStatus (\ s a -> s{_sgmStatus = a});++-- | The identifier of the cache security group.+sgmSecurityGroupId :: Lens' SecurityGroupMembership (Maybe Text)+sgmSecurityGroupId = lens _sgmSecurityGroupId (\ s a -> s{_sgmSecurityGroupId = a});++instance FromXML SecurityGroupMembership where+        parseXML x+          = SecurityGroupMembership' <$>+              (x .@? "Status") <*> (x .@? "SecurityGroupId")++instance Hashable SecurityGroupMembership where++instance NFData SecurityGroupMembership where++-- | Represents the progress of an online resharding operation.+--+--+--+-- /See:/ 'slotMigration' smart constructor.+newtype SlotMigration = SlotMigration'+  { _smProgressPercentage :: Maybe Double+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SlotMigration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'smProgressPercentage' - The percentage of the slot migration that is complete.+slotMigration+    :: SlotMigration+slotMigration = SlotMigration' {_smProgressPercentage = Nothing}+++-- | The percentage of the slot migration that is complete.+smProgressPercentage :: Lens' SlotMigration (Maybe Double)+smProgressPercentage = lens _smProgressPercentage (\ s a -> s{_smProgressPercentage = a});++instance FromXML SlotMigration where+        parseXML x+          = SlotMigration' <$> (x .@? "ProgressPercentage")++instance Hashable SlotMigration where++instance NFData SlotMigration where++-- | Represents a copy of an entire Redis cluster as of the time when the snapshot was taken.+--+--+--+-- /See:/ 'snapshot' smart constructor.+data Snapshot = Snapshot'+  { _sEngineVersion               :: !(Maybe Text)+  , _sCacheNodeType               :: !(Maybe Text)+  , _sCacheClusterCreateTime      :: !(Maybe ISO8601)+  , _sAutoMinorVersionUpgrade     :: !(Maybe Bool)+  , _sCacheParameterGroupName     :: !(Maybe Text)+  , _sReplicationGroupDescription :: !(Maybe Text)+  , _sVPCId                       :: !(Maybe Text)+  , _sSnapshotStatus              :: !(Maybe Text)+  , _sSnapshotWindow              :: !(Maybe Text)+  , _sCacheClusterId              :: !(Maybe Text)+  , _sEngine                      :: !(Maybe Text)+  , _sPreferredMaintenanceWindow  :: !(Maybe Text)+  , _sTopicARN                    :: !(Maybe Text)+  , _sNodeSnapshots               :: !(Maybe [NodeSnapshot])+  , _sCacheSubnetGroupName        :: !(Maybe Text)+  , _sPreferredAvailabilityZone   :: !(Maybe Text)+  , _sNumNodeGroups               :: !(Maybe Int)+  , _sSnapshotRetentionLimit      :: !(Maybe Int)+  , _sSnapshotName                :: !(Maybe Text)+  , _sReplicationGroupId          :: !(Maybe Text)+  , _sNumCacheNodes               :: !(Maybe Int)+  , _sPort                        :: !(Maybe Int)+  , _sAutomaticFailover           :: !(Maybe AutomaticFailoverStatus)+  , _sSnapshotSource              :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Snapshot' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sEngineVersion' - The version of the cache engine version that is used by the source cluster.+--+-- * 'sCacheNodeType' - The name of the compute and memory capacity node type for the source cluster. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.     * General purpose:     * Current generation:  __T2 node types:__ @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@  __M3 node types:__ @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@  __M4 node types:__ @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: (not recommended) __T1 node types:__ @cache.t1.micro@  __M1 node types:__ @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized:     * Previous generation: (not recommended) __C1 node types:__ @cache.c1.xlarge@      * Memory optimized:     * Current generation:  __R3 node types:__ @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: (not recommended) __M2 node types:__ @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances.      * Redis (cluster mode enabled): Backup/restore is not supported on T1 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .+--+-- * 'sCacheClusterCreateTime' - The date and time when the source cluster was created.+--+-- * 'sAutoMinorVersionUpgrade' - This parameter is currently disabled.+--+-- * 'sCacheParameterGroupName' - The cache parameter group that is associated with the source cluster.+--+-- * 'sReplicationGroupDescription' - A description of the source replication group.+--+-- * 'sVPCId' - The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet group for the source cluster.+--+-- * 'sSnapshotStatus' - The status of the snapshot. Valid values: @creating@ | @available@ | @restoring@ | @copying@ | @deleting@ .+--+-- * 'sSnapshotWindow' - The daily time range during which ElastiCache takes daily snapshots of the source cluster.+--+-- * 'sCacheClusterId' - The user-supplied identifier of the source cluster.+--+-- * 'sEngine' - The name of the cache engine (@memcached@ or @redis@ ) used by the source cluster.+--+-- * 'sPreferredMaintenanceWindow' - Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are:     * @sun@      * @mon@      * @tue@      * @wed@      * @thu@      * @fri@      * @sat@  Example: @sun:23:00-mon:01:30@+--+-- * 'sTopicARN' - The Amazon Resource Name (ARN) for the topic used by the source cluster for publishing notifications.+--+-- * 'sNodeSnapshots' - A list of the cache nodes in the source cluster.+--+-- * 'sCacheSubnetGroupName' - The name of the cache subnet group associated with the source cluster.+--+-- * 'sPreferredAvailabilityZone' - The name of the Availability Zone in which the source cluster is located.+--+-- * 'sNumNodeGroups' - The number of node groups (shards) in this snapshot. When restoring from a snapshot, the number of node groups (shards) in the snapshot and in the restored replication group must be the same.+--+-- * 'sSnapshotRetentionLimit' - For an automatic snapshot, the number of days for which ElastiCache retains the snapshot before deleting it. For manual snapshots, this field reflects the @SnapshotRetentionLimit@ for the source cluster when the snapshot was created. This field is otherwise ignored: Manual snapshots do not expire, and can only be deleted using the @DeleteSnapshot@ operation.  __Important__ If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.+--+-- * 'sSnapshotName' - The name of a snapshot. For an automatic snapshot, the name is system-generated. For a manual snapshot, this is the user-provided name.+--+-- * 'sReplicationGroupId' - The unique identifier of the source replication group.+--+-- * 'sNumCacheNodes' - The number of cache nodes in the source cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.+--+-- * 'sPort' - The port number used by each cache nodes in the source cluster.+--+-- * 'sAutomaticFailover' - Indicates the status of Multi-AZ with automatic failover for the source Redis replication group. Amazon ElastiCache for Redis does not support Multi-AZ with automatic failover on:     * Redis versions earlier than 2.8.6.     * Redis (cluster mode disabled): T1 and T2 cache node types.     * Redis (cluster mode enabled): T1 node types.+--+-- * 'sSnapshotSource' - Indicates whether the snapshot is from an automatic backup (@automated@ ) or was created manually (@manual@ ).+snapshot+    :: Snapshot+snapshot =+  Snapshot'+  { _sEngineVersion = Nothing+  , _sCacheNodeType = Nothing+  , _sCacheClusterCreateTime = Nothing+  , _sAutoMinorVersionUpgrade = Nothing+  , _sCacheParameterGroupName = Nothing+  , _sReplicationGroupDescription = Nothing+  , _sVPCId = Nothing+  , _sSnapshotStatus = Nothing+  , _sSnapshotWindow = Nothing+  , _sCacheClusterId = Nothing+  , _sEngine = Nothing+  , _sPreferredMaintenanceWindow = Nothing+  , _sTopicARN = Nothing+  , _sNodeSnapshots = Nothing+  , _sCacheSubnetGroupName = Nothing+  , _sPreferredAvailabilityZone = Nothing+  , _sNumNodeGroups = Nothing+  , _sSnapshotRetentionLimit = Nothing+  , _sSnapshotName = Nothing+  , _sReplicationGroupId = Nothing+  , _sNumCacheNodes = Nothing+  , _sPort = Nothing+  , _sAutomaticFailover = Nothing+  , _sSnapshotSource = Nothing+  }+++-- | The version of the cache engine version that is used by the source cluster.+sEngineVersion :: Lens' Snapshot (Maybe Text)+sEngineVersion = lens _sEngineVersion (\ s a -> s{_sEngineVersion = a});++-- | The name of the compute and memory capacity node type for the source cluster. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.     * General purpose:     * Current generation:  __T2 node types:__ @cache.t2.micro@ , @cache.t2.small@ , @cache.t2.medium@  __M3 node types:__ @cache.m3.medium@ , @cache.m3.large@ , @cache.m3.xlarge@ , @cache.m3.2xlarge@  __M4 node types:__ @cache.m4.large@ , @cache.m4.xlarge@ , @cache.m4.2xlarge@ , @cache.m4.4xlarge@ , @cache.m4.10xlarge@      * Previous generation: (not recommended) __T1 node types:__ @cache.t1.micro@  __M1 node types:__ @cache.m1.small@ , @cache.m1.medium@ , @cache.m1.large@ , @cache.m1.xlarge@      * Compute optimized:     * Previous generation: (not recommended) __C1 node types:__ @cache.c1.xlarge@      * Memory optimized:     * Current generation:  __R3 node types:__ @cache.r3.large@ , @cache.r3.xlarge@ , @cache.r3.2xlarge@ , @cache.r3.4xlarge@ , @cache.r3.8xlarge@      * Previous generation: (not recommended) __M2 node types:__ @cache.m2.xlarge@ , @cache.m2.2xlarge@ , @cache.m2.4xlarge@  __Notes:__      * All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).     * Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances.      * Redis (cluster mode enabled): Backup/restore is not supported on T1 instances.     * Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and either <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis> .+sCacheNodeType :: Lens' Snapshot (Maybe Text)+sCacheNodeType = lens _sCacheNodeType (\ s a -> s{_sCacheNodeType = a});++-- | The date and time when the source cluster was created.+sCacheClusterCreateTime :: Lens' Snapshot (Maybe UTCTime)+sCacheClusterCreateTime = lens _sCacheClusterCreateTime (\ s a -> s{_sCacheClusterCreateTime = a}) . mapping _Time;++-- | This parameter is currently disabled.+sAutoMinorVersionUpgrade :: Lens' Snapshot (Maybe Bool)+sAutoMinorVersionUpgrade = lens _sAutoMinorVersionUpgrade (\ s a -> s{_sAutoMinorVersionUpgrade = a});++-- | The cache parameter group that is associated with the source cluster.+sCacheParameterGroupName :: Lens' Snapshot (Maybe Text)+sCacheParameterGroupName = lens _sCacheParameterGroupName (\ s a -> s{_sCacheParameterGroupName = a});++-- | A description of the source replication group.+sReplicationGroupDescription :: Lens' Snapshot (Maybe Text)+sReplicationGroupDescription = lens _sReplicationGroupDescription (\ s a -> s{_sReplicationGroupDescription = a});++-- | The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet group for the source cluster.+sVPCId :: Lens' Snapshot (Maybe Text)+sVPCId = lens _sVPCId (\ s a -> s{_sVPCId = a});++-- | The status of the snapshot. Valid values: @creating@ | @available@ | @restoring@ | @copying@ | @deleting@ .+sSnapshotStatus :: Lens' Snapshot (Maybe Text)+sSnapshotStatus = lens _sSnapshotStatus (\ s a -> s{_sSnapshotStatus = a});++-- | The daily time range during which ElastiCache takes daily snapshots of the source cluster.+sSnapshotWindow :: Lens' Snapshot (Maybe Text)+sSnapshotWindow = lens _sSnapshotWindow (\ s a -> s{_sSnapshotWindow = a});++-- | The user-supplied identifier of the source cluster.+sCacheClusterId :: Lens' Snapshot (Maybe Text)+sCacheClusterId = lens _sCacheClusterId (\ s a -> s{_sCacheClusterId = a});++-- | The name of the cache engine (@memcached@ or @redis@ ) used by the source cluster.+sEngine :: Lens' Snapshot (Maybe Text)+sEngine = lens _sEngine (\ s a -> s{_sEngine = a});++-- | Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are:     * @sun@      * @mon@      * @tue@      * @wed@      * @thu@      * @fri@      * @sat@  Example: @sun:23:00-mon:01:30@+sPreferredMaintenanceWindow :: Lens' Snapshot (Maybe Text)+sPreferredMaintenanceWindow = lens _sPreferredMaintenanceWindow (\ s a -> s{_sPreferredMaintenanceWindow = a});++-- | The Amazon Resource Name (ARN) for the topic used by the source cluster for publishing notifications.+sTopicARN :: Lens' Snapshot (Maybe Text)+sTopicARN = lens _sTopicARN (\ s a -> s{_sTopicARN = a});++-- | A list of the cache nodes in the source cluster.+sNodeSnapshots :: Lens' Snapshot [NodeSnapshot]+sNodeSnapshots = lens _sNodeSnapshots (\ s a -> s{_sNodeSnapshots = a}) . _Default . _Coerce;++-- | The name of the cache subnet group associated with the source cluster.+sCacheSubnetGroupName :: Lens' Snapshot (Maybe Text)+sCacheSubnetGroupName = lens _sCacheSubnetGroupName (\ s a -> s{_sCacheSubnetGroupName = a});++-- | The name of the Availability Zone in which the source cluster is located.+sPreferredAvailabilityZone :: Lens' Snapshot (Maybe Text)+sPreferredAvailabilityZone = lens _sPreferredAvailabilityZone (\ s a -> s{_sPreferredAvailabilityZone = a});++-- | The number of node groups (shards) in this snapshot. When restoring from a snapshot, the number of node groups (shards) in the snapshot and in the restored replication group must be the same.+sNumNodeGroups :: Lens' Snapshot (Maybe Int)+sNumNodeGroups = lens _sNumNodeGroups (\ s a -> s{_sNumNodeGroups = a});++-- | For an automatic snapshot, the number of days for which ElastiCache retains the snapshot before deleting it. For manual snapshots, this field reflects the @SnapshotRetentionLimit@ for the source cluster when the snapshot was created. This field is otherwise ignored: Manual snapshots do not expire, and can only be deleted using the @DeleteSnapshot@ operation.  __Important__ If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.+sSnapshotRetentionLimit :: Lens' Snapshot (Maybe Int)+sSnapshotRetentionLimit = lens _sSnapshotRetentionLimit (\ s a -> s{_sSnapshotRetentionLimit = a});++-- | The name of a snapshot. For an automatic snapshot, the name is system-generated. For a manual snapshot, this is the user-provided name.+sSnapshotName :: Lens' Snapshot (Maybe Text)+sSnapshotName = lens _sSnapshotName (\ s a -> s{_sSnapshotName = a});++-- | The unique identifier of the source replication group.+sReplicationGroupId :: Lens' Snapshot (Maybe Text)+sReplicationGroupId = lens _sReplicationGroupId (\ s a -> s{_sReplicationGroupId = a});++-- | The number of cache nodes in the source cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.+sNumCacheNodes :: Lens' Snapshot (Maybe Int)+sNumCacheNodes = lens _sNumCacheNodes (\ s a -> s{_sNumCacheNodes = a});++-- | The port number used by each cache nodes in the source cluster.+sPort :: Lens' Snapshot (Maybe Int)+sPort = lens _sPort (\ s a -> s{_sPort = a});++-- | Indicates the status of Multi-AZ with automatic failover for the source Redis replication group. Amazon ElastiCache for Redis does not support Multi-AZ with automatic failover on:     * Redis versions earlier than 2.8.6.     * Redis (cluster mode disabled): T1 and T2 cache node types.     * Redis (cluster mode enabled): T1 node types.+sAutomaticFailover :: Lens' Snapshot (Maybe AutomaticFailoverStatus)+sAutomaticFailover = lens _sAutomaticFailover (\ s a -> s{_sAutomaticFailover = a});++-- | Indicates whether the snapshot is from an automatic backup (@automated@ ) or was created manually (@manual@ ).+sSnapshotSource :: Lens' Snapshot (Maybe Text)+sSnapshotSource = lens _sSnapshotSource (\ s a -> s{_sSnapshotSource = a});++instance FromXML Snapshot where+        parseXML x+          = Snapshot' <$>+              (x .@? "EngineVersion") <*> (x .@? "CacheNodeType")+                <*> (x .@? "CacheClusterCreateTime")+                <*> (x .@? "AutoMinorVersionUpgrade")+                <*> (x .@? "CacheParameterGroupName")+                <*> (x .@? "ReplicationGroupDescription")+                <*> (x .@? "VpcId")+                <*> (x .@? "SnapshotStatus")+                <*> (x .@? "SnapshotWindow")+                <*> (x .@? "CacheClusterId")+                <*> (x .@? "Engine")+                <*> (x .@? "PreferredMaintenanceWindow")+                <*> (x .@? "TopicArn")+                <*>+                (x .@? "NodeSnapshots" .!@ mempty >>=+                   may (parseXMLList "NodeSnapshot"))+                <*> (x .@? "CacheSubnetGroupName")+                <*> (x .@? "PreferredAvailabilityZone")+                <*> (x .@? "NumNodeGroups")+                <*> (x .@? "SnapshotRetentionLimit")+                <*> (x .@? "SnapshotName")+                <*> (x .@? "ReplicationGroupId")+                <*> (x .@? "NumCacheNodes")+                <*> (x .@? "Port")+                <*> (x .@? "AutomaticFailover")+                <*> (x .@? "SnapshotSource")++instance Hashable Snapshot where++instance NFData Snapshot where++-- | Represents the subnet associated with a cluster. This parameter refers to subnets defined in Amazon Virtual Private Cloud (Amazon VPC) and used with ElastiCache.+--+--+--+-- /See:/ 'subnet' smart constructor.+data Subnet = Subnet'+  { _sSubnetIdentifier       :: !(Maybe Text)+  , _sSubnetAvailabilityZone :: !(Maybe AvailabilityZone)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Subnet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sSubnetIdentifier' - The unique identifier for the subnet.+--+-- * 'sSubnetAvailabilityZone' - The Availability Zone associated with the subnet.+subnet+    :: Subnet+subnet =+  Subnet' {_sSubnetIdentifier = Nothing, _sSubnetAvailabilityZone = Nothing}+++-- | The unique identifier for the subnet.+sSubnetIdentifier :: Lens' Subnet (Maybe Text)+sSubnetIdentifier = lens _sSubnetIdentifier (\ s a -> s{_sSubnetIdentifier = a});++-- | The Availability Zone associated with the subnet.+sSubnetAvailabilityZone :: Lens' Subnet (Maybe AvailabilityZone)+sSubnetAvailabilityZone = lens _sSubnetAvailabilityZone (\ s a -> s{_sSubnetAvailabilityZone = a});++instance FromXML Subnet where+        parseXML x+          = Subnet' <$>+              (x .@? "SubnetIdentifier") <*>+                (x .@? "SubnetAvailabilityZone")++instance Hashable Subnet where++instance NFData Subnet where++-- | A cost allocation Tag that can be added to an ElastiCache cluster or replication group. Tags are composed of a Key/Value pair. A tag with a null Value is permitted.+--+--+--+-- /See:/ 'tag' smart constructor.+data Tag = Tag'+  { _tagValue :: !(Maybe Text)+  , _tagKey   :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Tag' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tagValue' - The tag's value. May be null.+--+-- * 'tagKey' - The key for the tag. May not be null.+tag+    :: Tag+tag = Tag' {_tagValue = Nothing, _tagKey = Nothing}+++-- | The tag's value. May be null.+tagValue :: Lens' Tag (Maybe Text)+tagValue = lens _tagValue (\ s a -> s{_tagValue = a});++-- | The key for the tag. May not be null.+tagKey :: Lens' Tag (Maybe Text)+tagKey = lens _tagKey (\ s a -> s{_tagKey = a});++instance FromXML Tag where+        parseXML x+          = Tag' <$> (x .@? "Value") <*> (x .@? "Key")++instance Hashable Tag where++instance NFData Tag where++instance ToQuery Tag where+        toQuery Tag'{..}+          = mconcat ["Value" =: _tagValue, "Key" =: _tagKey]++-- | Represents the output from the @AddTagsToResource@ , @ListTagsForResource@ , and @RemoveTagsFromResource@ operations.+--+--+--+-- /See:/ 'tagListMessage' smart constructor.+newtype TagListMessage = TagListMessage'+  { _tlmTagList :: Maybe [Tag]+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TagListMessage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tlmTagList' - A list of cost allocation tags as key-value pairs.+tagListMessage+    :: TagListMessage+tagListMessage = TagListMessage' {_tlmTagList = Nothing}+++-- | A list of cost allocation tags as key-value pairs.+tlmTagList :: Lens' TagListMessage [Tag]+tlmTagList = lens _tlmTagList (\ s a -> s{_tlmTagList = a}) . _Default . _Coerce;++instance FromXML TagListMessage where+        parseXML x+          = TagListMessage' <$>+              (x .@? "TagList" .!@ mempty >>=+                 may (parseXMLList "Tag"))++instance Hashable TagListMessage where++instance NFData TagListMessage where
gen/Network/AWS/ElastiCache/Types/Sum.hs view
@@ -9,21 +9,22 @@  -- | -- Module      : Network.AWS.ElastiCache.Types.Sum--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- module Network.AWS.ElastiCache.Types.Sum where -import           Network.AWS.Prelude+import Network.AWS.Prelude  data AZMode-    = CrossAz-    | SingleAz-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+  = CrossAz+  | SingleAz+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText AZMode where     parser = takeLowerText >>= \case         "cross-az" -> pure CrossAz@@ -43,12 +44,13 @@ instance ToHeader     AZMode  data AutomaticFailoverStatus-    = AFSDisabled-    | AFSDisabling-    | AFSEnabled-    | AFSEnabling-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+  = AFSDisabled+  | AFSDisabling+  | AFSEnabled+  | AFSEnabling+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText AutomaticFailoverStatus where     parser = takeLowerText >>= \case         "disabled" -> pure AFSDisabled@@ -75,10 +77,11 @@     parseXML = parseXMLText "AutomaticFailoverStatus"  data ChangeType-    = Immediate-    | RequiresReboot-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+  = Immediate+  | RequiresReboot+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText ChangeType where     parser = takeLowerText >>= \case         "immediate" -> pure Immediate@@ -101,10 +104,11 @@     parseXML = parseXMLText "ChangeType"  data PendingAutomaticFailoverStatus-    = Disabled-    | Enabled-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+  = Disabled+  | Enabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText PendingAutomaticFailoverStatus where     parser = takeLowerText >>= \case         "disabled" -> pure Disabled@@ -127,12 +131,13 @@     parseXML = parseXMLText "PendingAutomaticFailoverStatus"  data SourceType-    = CacheCluster-    | CacheParameterGroup-    | CacheSecurityGroup-    | CacheSubnetGroup-    | ReplicationGroup-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+  = CacheCluster+  | CacheParameterGroup+  | CacheSecurityGroup+  | CacheSubnetGroup+  | ReplicationGroup+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+  instance FromText SourceType where     parser = takeLowerText >>= \case
gen/Network/AWS/ElastiCache/Waiters.hs view
@@ -7,139 +7,149 @@  -- | -- Module      : Network.AWS.ElastiCache.Waiters--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- module Network.AWS.ElastiCache.Waiters where -import           Network.AWS.ElastiCache.DescribeCacheClusters-import           Network.AWS.ElastiCache.DescribeCacheClusters-import           Network.AWS.ElastiCache.DescribeReplicationGroups-import           Network.AWS.ElastiCache.DescribeReplicationGroups-import           Network.AWS.ElastiCache.Types-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Waiter+import Network.AWS.ElastiCache.DescribeCacheClusters+import Network.AWS.ElastiCache.DescribeCacheClusters+import Network.AWS.ElastiCache.DescribeReplicationGroups+import Network.AWS.ElastiCache.DescribeReplicationGroups+import Network.AWS.ElastiCache.Types+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Waiter  -- | Polls 'Network.AWS.ElastiCache.DescribeCacheClusters' every 30 seconds until a successful state is reached. An error is returned after 60 failed checks. cacheClusterAvailable :: Wait DescribeCacheClusters cacheClusterAvailable =-    Wait-    { _waitName = "CacheClusterAvailable"-    , _waitAttempts = 60-    , _waitDelay = 30-    , _waitAcceptors = [ matchAll-                             "available"-                             AcceptSuccess-                             (folding (concatOf drsCacheClusters) .-                              ccCacheClusterStatus . _Just . to toTextCI)-                       , matchAny-                             "deleted"-                             AcceptFailure-                             (folding (concatOf drsCacheClusters) .-                              ccCacheClusterStatus . _Just . to toTextCI)-                       , matchAny-                             "deleting"-                             AcceptFailure-                             (folding (concatOf drsCacheClusters) .-                              ccCacheClusterStatus . _Just . to toTextCI)-                       , matchAny-                             "incompatible-network"-                             AcceptFailure-                             (folding (concatOf drsCacheClusters) .-                              ccCacheClusterStatus . _Just . to toTextCI)-                       , matchAny-                             "restore-failed"-                             AcceptFailure-                             (folding (concatOf drsCacheClusters) .-                              ccCacheClusterStatus . _Just . to toTextCI)]-    }+  Wait+  { _waitName = "CacheClusterAvailable"+  , _waitAttempts = 60+  , _waitDelay = 30+  , _waitAcceptors =+      [ matchAll+          "available"+          AcceptSuccess+          (folding (concatOf drsCacheClusters) .+           ccCacheClusterStatus . _Just . to toTextCI)+      , matchAny+          "deleted"+          AcceptFailure+          (folding (concatOf drsCacheClusters) .+           ccCacheClusterStatus . _Just . to toTextCI)+      , matchAny+          "deleting"+          AcceptFailure+          (folding (concatOf drsCacheClusters) .+           ccCacheClusterStatus . _Just . to toTextCI)+      , matchAny+          "incompatible-network"+          AcceptFailure+          (folding (concatOf drsCacheClusters) .+           ccCacheClusterStatus . _Just . to toTextCI)+      , matchAny+          "restore-failed"+          AcceptFailure+          (folding (concatOf drsCacheClusters) .+           ccCacheClusterStatus . _Just . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.ElastiCache.DescribeCacheClusters' every 30 seconds until a successful state is reached. An error is returned after 60 failed checks. cacheClusterDeleted :: Wait DescribeCacheClusters cacheClusterDeleted =-    Wait-    { _waitName = "CacheClusterDeleted"-    , _waitAttempts = 60-    , _waitDelay = 30-    , _waitAcceptors = [ matchError "CacheClusterNotFound" AcceptSuccess-                       , matchAny-                             "creating"-                             AcceptFailure-                             (folding (concatOf drsCacheClusters) .-                              ccCacheClusterStatus . _Just . to toTextCI)-                       , matchAny-                             "modifying"-                             AcceptFailure-                             (folding (concatOf drsCacheClusters) .-                              ccCacheClusterStatus . _Just . to toTextCI)-                       , matchAny-                             "rebooting"-                             AcceptFailure-                             (folding (concatOf drsCacheClusters) .-                              ccCacheClusterStatus . _Just . to toTextCI)]-    }+  Wait+  { _waitName = "CacheClusterDeleted"+  , _waitAttempts = 60+  , _waitDelay = 30+  , _waitAcceptors =+      [ matchError "CacheClusterNotFound" AcceptSuccess+      , matchAny+          "creating"+          AcceptFailure+          (folding (concatOf drsCacheClusters) .+           ccCacheClusterStatus . _Just . to toTextCI)+      , matchAny+          "modifying"+          AcceptFailure+          (folding (concatOf drsCacheClusters) .+           ccCacheClusterStatus . _Just . to toTextCI)+      , matchAny+          "rebooting"+          AcceptFailure+          (folding (concatOf drsCacheClusters) .+           ccCacheClusterStatus . _Just . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.ElastiCache.DescribeReplicationGroups' every 30 seconds until a successful state is reached. An error is returned after 60 failed checks. replicationGroupDeleted :: Wait DescribeReplicationGroups replicationGroupDeleted =-    Wait-    { _waitName = "ReplicationGroupDeleted"-    , _waitAttempts = 60-    , _waitDelay = 30-    , _waitAcceptors = [ matchError-                             "ReplicationGroupNotFoundFault"-                             AcceptSuccess-                       , matchAny-                             "creating"-                             AcceptFailure-                             (folding (concatOf drgrsReplicationGroups) .-                              rgStatus . _Just . to toTextCI)-                       , matchAny-                             "modifying"-                             AcceptFailure-                             (folding (concatOf drgrsReplicationGroups) .-                              rgStatus . _Just . to toTextCI)-                       , matchAny-                             "rebooting"-                             AcceptFailure-                             (folding (concatOf drgrsReplicationGroups) .-                              rgStatus . _Just . to toTextCI)]-    }+  Wait+  { _waitName = "ReplicationGroupDeleted"+  , _waitAttempts = 60+  , _waitDelay = 30+  , _waitAcceptors =+      [ matchError "ReplicationGroupNotFoundFault" AcceptSuccess+      , matchAny+          "creating"+          AcceptFailure+          (folding (concatOf drgrsReplicationGroups) .+           rgStatus . _Just . to toTextCI)+      , matchAny+          "modifying"+          AcceptFailure+          (folding (concatOf drgrsReplicationGroups) .+           rgStatus . _Just . to toTextCI)+      , matchAny+          "rebooting"+          AcceptFailure+          (folding (concatOf drgrsReplicationGroups) .+           rgStatus . _Just . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.ElastiCache.DescribeReplicationGroups' every 30 seconds until a successful state is reached. An error is returned after 60 failed checks. replicationGroupAvailable :: Wait DescribeReplicationGroups replicationGroupAvailable =-    Wait-    { _waitName = "ReplicationGroupAvailable"-    , _waitAttempts = 60-    , _waitDelay = 30-    , _waitAcceptors = [ matchAll-                             "available"-                             AcceptSuccess-                             (folding (concatOf drgrsReplicationGroups) .-                              rgStatus . _Just . to toTextCI)-                       , matchAny-                             "deleted"-                             AcceptFailure-                             (folding (concatOf drgrsReplicationGroups) .-                              rgStatus . _Just . to toTextCI)-                       , matchAny-                             "deleting"-                             AcceptFailure-                             (folding (concatOf drgrsReplicationGroups) .-                              rgStatus . _Just . to toTextCI)-                       , matchAny-                             "incompatible-network"-                             AcceptFailure-                             (folding (concatOf drgrsReplicationGroups) .-                              rgStatus . _Just . to toTextCI)-                       , matchAny-                             "restore-failed"-                             AcceptFailure-                             (folding (concatOf drgrsReplicationGroups) .-                              rgStatus . _Just . to toTextCI)]-    }+  Wait+  { _waitName = "ReplicationGroupAvailable"+  , _waitAttempts = 60+  , _waitDelay = 30+  , _waitAcceptors =+      [ matchAll+          "available"+          AcceptSuccess+          (folding (concatOf drgrsReplicationGroups) .+           rgStatus . _Just . to toTextCI)+      , matchAny+          "deleted"+          AcceptFailure+          (folding (concatOf drgrsReplicationGroups) .+           rgStatus . _Just . to toTextCI)+      , matchAny+          "deleting"+          AcceptFailure+          (folding (concatOf drgrsReplicationGroups) .+           rgStatus . _Just . to toTextCI)+      , matchAny+          "incompatible-network"+          AcceptFailure+          (folding (concatOf drgrsReplicationGroups) .+           rgStatus . _Just . to toTextCI)+      , matchAny+          "restore-failed"+          AcceptFailure+          (folding (concatOf drgrsReplicationGroups) .+           rgStatus . _Just . to toTextCI)+      ]+  }+
test/Main.hs view
@@ -2,9 +2,9 @@  -- | -- Module      : Main--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --
test/Test/AWS/Gen/ElastiCache.hs view
@@ -5,20 +5,20 @@  -- | -- Module      : Test.AWS.Gen.ElastiCache--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- module Test.AWS.Gen.ElastiCache where  import Data.Proxy+import Network.AWS.ElastiCache+import Test.AWS.ElastiCache.Internal import Test.AWS.Fixture import Test.AWS.Prelude import Test.Tasty-import Network.AWS.ElastiCache-import Test.AWS.ElastiCache.Internal  -- Auto-generated: the actual test selection needs to be manually placed into -- the top-level so that real test data can be incrementally added.@@ -55,6 +55,9 @@ --         , requestModifyCacheParameterGroup $ --             modifyCacheParameterGroup --+--         , requestTestFailover $+--             testFailover+-- --         , requestDeleteReplicationGroup $ --             deleteReplicationGroup --@@ -103,6 +106,9 @@ --         , requestListAllowedNodeTypeModifications $ --             listAllowedNodeTypeModifications --+--         , requestModifyReplicationGroupShardConfiguration $+--             modifyReplicationGroupShardConfiguration+-- --         , requestDescribeSnapshots $ --             describeSnapshots --@@ -172,6 +178,9 @@ --         , responseModifyCacheParameterGroup $ --             cacheParameterGroupNameMessage --+--         , responseTestFailover $+--             testFailoverResponse+-- --         , responseDeleteReplicationGroup $ --             deleteReplicationGroupResponse --@@ -220,6 +229,9 @@ --         , responseListAllowedNodeTypeModifications $ --             listAllowedNodeTypeModificationsResponse --+--         , responseModifyReplicationGroupShardConfiguration $+--             modifyReplicationGroupShardConfigurationResponse+-- --         , responseDescribeSnapshots $ --             describeSnapshotsResponse --@@ -309,6 +321,11 @@     "ModifyCacheParameterGroup"     "fixture/ModifyCacheParameterGroup.yaml" +requestTestFailover :: TestFailover -> TestTree+requestTestFailover = req+    "TestFailover"+    "fixture/TestFailover.yaml"+ requestDeleteReplicationGroup :: DeleteReplicationGroup -> TestTree requestDeleteReplicationGroup = req     "DeleteReplicationGroup"@@ -389,6 +406,11 @@     "ListAllowedNodeTypeModifications"     "fixture/ListAllowedNodeTypeModifications.yaml" +requestModifyReplicationGroupShardConfiguration :: ModifyReplicationGroupShardConfiguration -> TestTree+requestModifyReplicationGroupShardConfiguration = req+    "ModifyReplicationGroupShardConfiguration"+    "fixture/ModifyReplicationGroupShardConfiguration.yaml"+ requestDescribeSnapshots :: DescribeSnapshots -> TestTree requestDescribeSnapshots = req     "DescribeSnapshots"@@ -519,6 +541,13 @@     elastiCache     (Proxy :: Proxy ModifyCacheParameterGroup) +responseTestFailover :: TestFailoverResponse -> TestTree+responseTestFailover = res+    "TestFailoverResponse"+    "fixture/TestFailoverResponse.proto"+    elastiCache+    (Proxy :: Proxy TestFailover)+ responseDeleteReplicationGroup :: DeleteReplicationGroupResponse -> TestTree responseDeleteReplicationGroup = res     "DeleteReplicationGroupResponse"@@ -630,6 +659,13 @@     "fixture/ListAllowedNodeTypeModificationsResponse.proto"     elastiCache     (Proxy :: Proxy ListAllowedNodeTypeModifications)++responseModifyReplicationGroupShardConfiguration :: ModifyReplicationGroupShardConfigurationResponse -> TestTree+responseModifyReplicationGroupShardConfiguration = res+    "ModifyReplicationGroupShardConfigurationResponse"+    "fixture/ModifyReplicationGroupShardConfigurationResponse.proto"+    elastiCache+    (Proxy :: Proxy ModifyReplicationGroupShardConfiguration)  responseDescribeSnapshots :: DescribeSnapshotsResponse -> TestTree responseDescribeSnapshots = res