packages feed

amazonka-elasticache 0.3.6 → 1.0.0

raw patch · 48 files changed

+10093/−7915 lines, 48 filesdep +amazonka-elasticachedep +amazonka-testdep +bytestringdep ~amazonka-coredep ~basePVP ok

version bump matches the API change (PVP)

Dependencies added: amazonka-elasticache, amazonka-test, bytestring, lens, tasty, tasty-hunit, text, time, unordered-containers

Dependency ranges changed: amazonka-core, base

API changes (from Hackage documentation)

- Network.AWS.ElastiCache.AddTagsToResource: addTagsToResourceResponse :: AddTagsToResourceResponse
- Network.AWS.ElastiCache.AddTagsToResource: attrrTagList :: Lens' AddTagsToResourceResponse [Tag]
- Network.AWS.ElastiCache.AddTagsToResource: data AddTagsToResourceResponse
- Network.AWS.ElastiCache.AddTagsToResource: instance Eq AddTagsToResourceResponse
- Network.AWS.ElastiCache.AddTagsToResource: instance FromXML AddTagsToResourceResponse
- Network.AWS.ElastiCache.AddTagsToResource: instance IsList AddTagsToResourceResponse
- Network.AWS.ElastiCache.AddTagsToResource: instance Monoid AddTagsToResourceResponse
- Network.AWS.ElastiCache.AddTagsToResource: instance Read AddTagsToResourceResponse
- Network.AWS.ElastiCache.AddTagsToResource: instance Semigroup AddTagsToResourceResponse
- Network.AWS.ElastiCache.AddTagsToResource: instance Show AddTagsToResourceResponse
- Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress: acsgirCacheSecurityGroup :: Lens' AuthorizeCacheSecurityGroupIngressResponse (Maybe CacheSecurityGroup)
- Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress: instance FromXML AuthorizeCacheSecurityGroupIngressResponse
- Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress: instance Ord AuthorizeCacheSecurityGroupIngress
- Network.AWS.ElastiCache.CopySnapshot: csrSnapshot :: Lens' CopySnapshotResponse (Maybe Snapshot)
- Network.AWS.ElastiCache.CopySnapshot: instance FromXML CopySnapshotResponse
- Network.AWS.ElastiCache.CopySnapshot: instance Ord CopySnapshot
- Network.AWS.ElastiCache.CreateCacheCluster: cccNotificationTopicArn :: Lens' CreateCacheCluster (Maybe Text)
- Network.AWS.ElastiCache.CreateCacheCluster: cccSnapshotArns :: Lens' CreateCacheCluster [Text]
- Network.AWS.ElastiCache.CreateCacheCluster: cccrCacheCluster :: Lens' CreateCacheClusterResponse (Maybe CacheCluster)
- Network.AWS.ElastiCache.CreateCacheCluster: instance FromXML CreateCacheClusterResponse
- Network.AWS.ElastiCache.CreateCacheParameterGroup: ccpgrCacheParameterGroup :: Lens' CreateCacheParameterGroupResponse (Maybe CacheParameterGroup)
- Network.AWS.ElastiCache.CreateCacheParameterGroup: instance FromXML CreateCacheParameterGroupResponse
- Network.AWS.ElastiCache.CreateCacheParameterGroup: instance Ord CreateCacheParameterGroup
- Network.AWS.ElastiCache.CreateCacheSecurityGroup: ccsgrCacheSecurityGroup :: Lens' CreateCacheSecurityGroupResponse (Maybe CacheSecurityGroup)
- Network.AWS.ElastiCache.CreateCacheSecurityGroup: instance FromXML CreateCacheSecurityGroupResponse
- Network.AWS.ElastiCache.CreateCacheSecurityGroup: instance Ord CreateCacheSecurityGroup
- Network.AWS.ElastiCache.CreateCacheSubnetGroup: ccsgrCacheSubnetGroup :: Lens' CreateCacheSubnetGroupResponse (Maybe CacheSubnetGroup)
- Network.AWS.ElastiCache.CreateCacheSubnetGroup: instance FromXML CreateCacheSubnetGroupResponse
- Network.AWS.ElastiCache.CreateCacheSubnetGroup: instance Ord CreateCacheSubnetGroup
- Network.AWS.ElastiCache.CreateReplicationGroup: crgNotificationTopicArn :: Lens' CreateReplicationGroup (Maybe Text)
- Network.AWS.ElastiCache.CreateReplicationGroup: crgSnapshotArns :: Lens' CreateReplicationGroup [Text]
- Network.AWS.ElastiCache.CreateReplicationGroup: crgrReplicationGroup :: Lens' CreateReplicationGroupResponse (Maybe ReplicationGroup)
- Network.AWS.ElastiCache.CreateReplicationGroup: instance FromXML CreateReplicationGroupResponse
- Network.AWS.ElastiCache.CreateSnapshot: csr1Snapshot :: Lens' CreateSnapshotResponse (Maybe Snapshot)
- Network.AWS.ElastiCache.CreateSnapshot: instance FromXML CreateSnapshotResponse
- Network.AWS.ElastiCache.CreateSnapshot: instance Ord CreateSnapshot
- Network.AWS.ElastiCache.DeleteCacheCluster: dccrCacheCluster :: Lens' DeleteCacheClusterResponse (Maybe CacheCluster)
- Network.AWS.ElastiCache.DeleteCacheCluster: instance FromXML DeleteCacheClusterResponse
- Network.AWS.ElastiCache.DeleteCacheCluster: instance Ord DeleteCacheCluster
- Network.AWS.ElastiCache.DeleteCacheParameterGroup: dcpg1CacheParameterGroupName :: Lens' DeleteCacheParameterGroup Text
- Network.AWS.ElastiCache.DeleteCacheParameterGroup: instance IsString DeleteCacheParameterGroup
- Network.AWS.ElastiCache.DeleteCacheParameterGroup: instance Monoid DeleteCacheParameterGroup
- Network.AWS.ElastiCache.DeleteCacheParameterGroup: instance Ord DeleteCacheParameterGroup
- Network.AWS.ElastiCache.DeleteCacheParameterGroup: instance Ord DeleteCacheParameterGroupResponse
- Network.AWS.ElastiCache.DeleteCacheSecurityGroup: instance IsString DeleteCacheSecurityGroup
- Network.AWS.ElastiCache.DeleteCacheSecurityGroup: instance Monoid DeleteCacheSecurityGroup
- Network.AWS.ElastiCache.DeleteCacheSecurityGroup: instance Ord DeleteCacheSecurityGroup
- Network.AWS.ElastiCache.DeleteCacheSecurityGroup: instance Ord DeleteCacheSecurityGroupResponse
- Network.AWS.ElastiCache.DeleteCacheSubnetGroup: dcsg1CacheSubnetGroupName :: Lens' DeleteCacheSubnetGroup Text
- Network.AWS.ElastiCache.DeleteCacheSubnetGroup: instance IsString DeleteCacheSubnetGroup
- Network.AWS.ElastiCache.DeleteCacheSubnetGroup: instance Monoid DeleteCacheSubnetGroup
- Network.AWS.ElastiCache.DeleteCacheSubnetGroup: instance Ord DeleteCacheSubnetGroup
- Network.AWS.ElastiCache.DeleteCacheSubnetGroup: instance Ord DeleteCacheSubnetGroupResponse
- Network.AWS.ElastiCache.DeleteReplicationGroup: drgrReplicationGroup :: Lens' DeleteReplicationGroupResponse (Maybe ReplicationGroup)
- Network.AWS.ElastiCache.DeleteReplicationGroup: instance FromXML DeleteReplicationGroupResponse
- Network.AWS.ElastiCache.DeleteReplicationGroup: instance Ord DeleteReplicationGroup
- Network.AWS.ElastiCache.DeleteSnapshot: ds1SnapshotName :: Lens' DeleteSnapshot Text
- Network.AWS.ElastiCache.DeleteSnapshot: dsrSnapshot :: Lens' DeleteSnapshotResponse (Maybe Snapshot)
- Network.AWS.ElastiCache.DeleteSnapshot: instance FromXML DeleteSnapshotResponse
- Network.AWS.ElastiCache.DeleteSnapshot: instance IsString DeleteSnapshot
- Network.AWS.ElastiCache.DeleteSnapshot: instance Monoid DeleteSnapshot
- Network.AWS.ElastiCache.DeleteSnapshot: instance Ord DeleteSnapshot
- Network.AWS.ElastiCache.DescribeCacheClusters: dcc1CacheClusterId :: Lens' DescribeCacheClusters (Maybe Text)
- Network.AWS.ElastiCache.DescribeCacheClusters: dcc1Marker :: Lens' DescribeCacheClusters (Maybe Text)
- Network.AWS.ElastiCache.DescribeCacheClusters: dcc1MaxRecords :: Lens' DescribeCacheClusters (Maybe Int)
- Network.AWS.ElastiCache.DescribeCacheClusters: dcc1ShowCacheNodeInfo :: Lens' DescribeCacheClusters (Maybe Bool)
- Network.AWS.ElastiCache.DescribeCacheClusters: dccrCacheClusters :: Lens' DescribeCacheClustersResponse [CacheCluster]
- Network.AWS.ElastiCache.DescribeCacheClusters: dccrMarker :: Lens' DescribeCacheClustersResponse (Maybe Text)
- Network.AWS.ElastiCache.DescribeCacheClusters: instance FromXML DescribeCacheClustersResponse
- Network.AWS.ElastiCache.DescribeCacheClusters: instance Ord DescribeCacheClusters
- Network.AWS.ElastiCache.DescribeCacheEngineVersions: dcevrCacheEngineVersions :: Lens' DescribeCacheEngineVersionsResponse [CacheEngineVersion]
- Network.AWS.ElastiCache.DescribeCacheEngineVersions: dcevrMarker :: Lens' DescribeCacheEngineVersionsResponse (Maybe Text)
- Network.AWS.ElastiCache.DescribeCacheEngineVersions: instance FromXML DescribeCacheEngineVersionsResponse
- Network.AWS.ElastiCache.DescribeCacheEngineVersions: instance Ord DescribeCacheEngineVersions
- Network.AWS.ElastiCache.DescribeCacheParameterGroups: dcpgrCacheParameterGroups :: Lens' DescribeCacheParameterGroupsResponse [CacheParameterGroup]
- Network.AWS.ElastiCache.DescribeCacheParameterGroups: dcpgrMarker :: Lens' DescribeCacheParameterGroupsResponse (Maybe Text)
- Network.AWS.ElastiCache.DescribeCacheParameterGroups: instance FromXML DescribeCacheParameterGroupsResponse
- Network.AWS.ElastiCache.DescribeCacheParameterGroups: instance Ord DescribeCacheParameterGroups
- Network.AWS.ElastiCache.DescribeCacheParameters: dcprCacheNodeTypeSpecificParameters :: Lens' DescribeCacheParametersResponse [CacheNodeTypeSpecificParameter]
- Network.AWS.ElastiCache.DescribeCacheParameters: dcprMarker :: Lens' DescribeCacheParametersResponse (Maybe Text)
- Network.AWS.ElastiCache.DescribeCacheParameters: dcprParameters :: Lens' DescribeCacheParametersResponse [Parameter]
- Network.AWS.ElastiCache.DescribeCacheParameters: instance FromXML DescribeCacheParametersResponse
- Network.AWS.ElastiCache.DescribeCacheParameters: instance Ord DescribeCacheParameters
- Network.AWS.ElastiCache.DescribeCacheSecurityGroups: dcsg1CacheSecurityGroupName :: Lens' DescribeCacheSecurityGroups (Maybe Text)
- Network.AWS.ElastiCache.DescribeCacheSecurityGroups: dcsg1Marker :: Lens' DescribeCacheSecurityGroups (Maybe Text)
- Network.AWS.ElastiCache.DescribeCacheSecurityGroups: dcsg1MaxRecords :: Lens' DescribeCacheSecurityGroups (Maybe Int)
- Network.AWS.ElastiCache.DescribeCacheSecurityGroups: dcsgr1CacheSecurityGroups :: Lens' DescribeCacheSecurityGroupsResponse [CacheSecurityGroup]
- Network.AWS.ElastiCache.DescribeCacheSecurityGroups: dcsgr1Marker :: Lens' DescribeCacheSecurityGroupsResponse (Maybe Text)
- Network.AWS.ElastiCache.DescribeCacheSecurityGroups: instance FromXML DescribeCacheSecurityGroupsResponse
- Network.AWS.ElastiCache.DescribeCacheSecurityGroups: instance Ord DescribeCacheSecurityGroups
- Network.AWS.ElastiCache.DescribeCacheSubnetGroups: dcsgrCacheSubnetGroups :: Lens' DescribeCacheSubnetGroupsResponse [CacheSubnetGroup]
- Network.AWS.ElastiCache.DescribeCacheSubnetGroups: dcsgrMarker :: Lens' DescribeCacheSubnetGroupsResponse (Maybe Text)
- Network.AWS.ElastiCache.DescribeCacheSubnetGroups: instance FromXML DescribeCacheSubnetGroupsResponse
- Network.AWS.ElastiCache.DescribeCacheSubnetGroups: instance Ord DescribeCacheSubnetGroups
- Network.AWS.ElastiCache.DescribeEngineDefaultParameters: dedprEngineDefaults :: Lens' DescribeEngineDefaultParametersResponse EngineDefaults
- Network.AWS.ElastiCache.DescribeEngineDefaultParameters: instance FromXML DescribeEngineDefaultParametersResponse
- Network.AWS.ElastiCache.DescribeEngineDefaultParameters: instance Ord DescribeEngineDefaultParameters
- Network.AWS.ElastiCache.DescribeEvents: derEvents :: Lens' DescribeEventsResponse [Event]
- Network.AWS.ElastiCache.DescribeEvents: derMarker :: Lens' DescribeEventsResponse (Maybe Text)
- Network.AWS.ElastiCache.DescribeEvents: instance FromXML DescribeEventsResponse
- Network.AWS.ElastiCache.DescribeReplicationGroups: drg1Marker :: Lens' DescribeReplicationGroups (Maybe Text)
- Network.AWS.ElastiCache.DescribeReplicationGroups: drg1MaxRecords :: Lens' DescribeReplicationGroups (Maybe Int)
- Network.AWS.ElastiCache.DescribeReplicationGroups: drg1ReplicationGroupId :: Lens' DescribeReplicationGroups (Maybe Text)
- Network.AWS.ElastiCache.DescribeReplicationGroups: drgrMarker :: Lens' DescribeReplicationGroupsResponse (Maybe Text)
- Network.AWS.ElastiCache.DescribeReplicationGroups: drgrReplicationGroups :: Lens' DescribeReplicationGroupsResponse [ReplicationGroup]
- Network.AWS.ElastiCache.DescribeReplicationGroups: instance FromXML DescribeReplicationGroupsResponse
- Network.AWS.ElastiCache.DescribeReplicationGroups: instance Ord DescribeReplicationGroups
- Network.AWS.ElastiCache.DescribeReservedCacheNodes: drcnrMarker :: Lens' DescribeReservedCacheNodesResponse (Maybe Text)
- Network.AWS.ElastiCache.DescribeReservedCacheNodes: drcnrReservedCacheNodes :: Lens' DescribeReservedCacheNodesResponse [ReservedCacheNode]
- Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance FromXML DescribeReservedCacheNodesResponse
- Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance Ord DescribeReservedCacheNodes
- Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: drcnorMarker :: Lens' DescribeReservedCacheNodesOfferingsResponse (Maybe Text)
- Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: drcnorReservedCacheNodesOfferings :: Lens' DescribeReservedCacheNodesOfferingsResponse [ReservedCacheNodesOffering]
- Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: instance FromXML DescribeReservedCacheNodesOfferingsResponse
- Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: instance Ord DescribeReservedCacheNodesOfferings
- Network.AWS.ElastiCache.DescribeSnapshots: dsrMarker :: Lens' DescribeSnapshotsResponse (Maybe Text)
- Network.AWS.ElastiCache.DescribeSnapshots: dsrSnapshots :: Lens' DescribeSnapshotsResponse [Snapshot]
- Network.AWS.ElastiCache.DescribeSnapshots: instance FromXML DescribeSnapshotsResponse
- Network.AWS.ElastiCache.DescribeSnapshots: instance Ord DescribeSnapshots
- Network.AWS.ElastiCache.ListTagsForResource: data ListTagsForResourceResponse
- Network.AWS.ElastiCache.ListTagsForResource: instance Eq ListTagsForResourceResponse
- Network.AWS.ElastiCache.ListTagsForResource: instance FromXML ListTagsForResourceResponse
- Network.AWS.ElastiCache.ListTagsForResource: instance IsList ListTagsForResourceResponse
- Network.AWS.ElastiCache.ListTagsForResource: instance IsString ListTagsForResource
- Network.AWS.ElastiCache.ListTagsForResource: instance Monoid ListTagsForResource
- Network.AWS.ElastiCache.ListTagsForResource: instance Monoid ListTagsForResourceResponse
- Network.AWS.ElastiCache.ListTagsForResource: instance Ord ListTagsForResource
- Network.AWS.ElastiCache.ListTagsForResource: instance Read ListTagsForResourceResponse
- Network.AWS.ElastiCache.ListTagsForResource: instance Semigroup ListTagsForResourceResponse
- Network.AWS.ElastiCache.ListTagsForResource: instance Show ListTagsForResourceResponse
- Network.AWS.ElastiCache.ListTagsForResource: listTagsForResourceResponse :: ListTagsForResourceResponse
- Network.AWS.ElastiCache.ListTagsForResource: ltfrrTagList :: Lens' ListTagsForResourceResponse [Tag]
- Network.AWS.ElastiCache.ModifyCacheCluster: instance FromXML ModifyCacheClusterResponse
- Network.AWS.ElastiCache.ModifyCacheCluster: mccNotificationTopicArn :: Lens' ModifyCacheCluster (Maybe Text)
- Network.AWS.ElastiCache.ModifyCacheCluster: mccrCacheCluster :: Lens' ModifyCacheClusterResponse (Maybe CacheCluster)
- Network.AWS.ElastiCache.ModifyCacheParameterGroup: data ModifyCacheParameterGroupResponse
- Network.AWS.ElastiCache.ModifyCacheParameterGroup: instance Eq ModifyCacheParameterGroupResponse
- Network.AWS.ElastiCache.ModifyCacheParameterGroup: instance FromXML ModifyCacheParameterGroupResponse
- Network.AWS.ElastiCache.ModifyCacheParameterGroup: instance Monoid ModifyCacheParameterGroupResponse
- Network.AWS.ElastiCache.ModifyCacheParameterGroup: instance Ord ModifyCacheParameterGroupResponse
- Network.AWS.ElastiCache.ModifyCacheParameterGroup: instance Read ModifyCacheParameterGroupResponse
- Network.AWS.ElastiCache.ModifyCacheParameterGroup: instance Show ModifyCacheParameterGroupResponse
- Network.AWS.ElastiCache.ModifyCacheParameterGroup: mcpgrCacheParameterGroupName :: Lens' ModifyCacheParameterGroupResponse (Maybe Text)
- Network.AWS.ElastiCache.ModifyCacheParameterGroup: modifyCacheParameterGroupResponse :: ModifyCacheParameterGroupResponse
- Network.AWS.ElastiCache.ModifyCacheSubnetGroup: instance FromXML ModifyCacheSubnetGroupResponse
- Network.AWS.ElastiCache.ModifyCacheSubnetGroup: instance Ord ModifyCacheSubnetGroup
- Network.AWS.ElastiCache.ModifyCacheSubnetGroup: mcsgrCacheSubnetGroup :: Lens' ModifyCacheSubnetGroupResponse (Maybe CacheSubnetGroup)
- Network.AWS.ElastiCache.ModifyReplicationGroup: instance FromXML ModifyReplicationGroupResponse
- Network.AWS.ElastiCache.ModifyReplicationGroup: instance Ord ModifyReplicationGroup
- Network.AWS.ElastiCache.ModifyReplicationGroup: mrgNotificationTopicArn :: Lens' ModifyReplicationGroup (Maybe Text)
- Network.AWS.ElastiCache.ModifyReplicationGroup: mrgrReplicationGroup :: Lens' ModifyReplicationGroupResponse (Maybe ReplicationGroup)
- Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering: instance FromXML PurchaseReservedCacheNodesOfferingResponse
- Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering: instance Ord PurchaseReservedCacheNodesOffering
- Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering: prcnorReservedCacheNode :: Lens' PurchaseReservedCacheNodesOfferingResponse (Maybe ReservedCacheNode)
- Network.AWS.ElastiCache.RebootCacheCluster: instance FromXML RebootCacheClusterResponse
- Network.AWS.ElastiCache.RebootCacheCluster: instance Ord RebootCacheCluster
- Network.AWS.ElastiCache.RebootCacheCluster: rccrCacheCluster :: Lens' RebootCacheClusterResponse (Maybe CacheCluster)
- Network.AWS.ElastiCache.RemoveTagsFromResource: data RemoveTagsFromResourceResponse
- Network.AWS.ElastiCache.RemoveTagsFromResource: instance Eq RemoveTagsFromResourceResponse
- Network.AWS.ElastiCache.RemoveTagsFromResource: instance FromXML RemoveTagsFromResourceResponse
- Network.AWS.ElastiCache.RemoveTagsFromResource: instance IsList RemoveTagsFromResourceResponse
- Network.AWS.ElastiCache.RemoveTagsFromResource: instance Monoid RemoveTagsFromResourceResponse
- Network.AWS.ElastiCache.RemoveTagsFromResource: instance Ord RemoveTagsFromResource
- Network.AWS.ElastiCache.RemoveTagsFromResource: instance Read RemoveTagsFromResourceResponse
- Network.AWS.ElastiCache.RemoveTagsFromResource: instance Semigroup RemoveTagsFromResourceResponse
- Network.AWS.ElastiCache.RemoveTagsFromResource: instance Show RemoveTagsFromResourceResponse
- Network.AWS.ElastiCache.RemoveTagsFromResource: removeTagsFromResourceResponse :: RemoveTagsFromResourceResponse
- Network.AWS.ElastiCache.RemoveTagsFromResource: rtfrrTagList :: Lens' RemoveTagsFromResourceResponse [Tag]
- Network.AWS.ElastiCache.ResetCacheParameterGroup: data ResetCacheParameterGroupResponse
- Network.AWS.ElastiCache.ResetCacheParameterGroup: instance Eq ResetCacheParameterGroupResponse
- Network.AWS.ElastiCache.ResetCacheParameterGroup: instance FromXML ResetCacheParameterGroupResponse
- Network.AWS.ElastiCache.ResetCacheParameterGroup: instance Monoid ResetCacheParameterGroupResponse
- Network.AWS.ElastiCache.ResetCacheParameterGroup: instance Ord ResetCacheParameterGroupResponse
- Network.AWS.ElastiCache.ResetCacheParameterGroup: instance Read ResetCacheParameterGroupResponse
- Network.AWS.ElastiCache.ResetCacheParameterGroup: instance Show ResetCacheParameterGroupResponse
- Network.AWS.ElastiCache.ResetCacheParameterGroup: rcpgrCacheParameterGroupName :: Lens' ResetCacheParameterGroupResponse (Maybe Text)
- Network.AWS.ElastiCache.ResetCacheParameterGroup: resetCacheParameterGroupResponse :: ResetCacheParameterGroupResponse
- Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress: instance FromXML RevokeCacheSecurityGroupIngressResponse
- Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress: instance Ord RevokeCacheSecurityGroupIngress
- Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress: rcsgirCacheSecurityGroup :: Lens' RevokeCacheSecurityGroupIngressResponse (Maybe CacheSecurityGroup)
- Network.AWS.ElastiCache.Types: STCacheCluster :: SourceType
- Network.AWS.ElastiCache.Types: STCacheParameterGroup :: SourceType
- Network.AWS.ElastiCache.Types: STCacheSecurityGroup :: SourceType
- Network.AWS.ElastiCache.Types: STCacheSubnetGroup :: SourceType
- Network.AWS.ElastiCache.Types: csgVpcId :: Lens' CacheSubnetGroup (Maybe Text)
- Network.AWS.ElastiCache.Types: data RESTError :: *
- Network.AWS.ElastiCache.Types: ecsgEC2SecurityGroupName :: Lens' EC2SecurityGroup (Maybe Text)
- Network.AWS.ElastiCache.Types: ecsgEC2SecurityGroupOwnerId :: Lens' EC2SecurityGroup (Maybe Text)
- Network.AWS.ElastiCache.Types: ecsgStatus :: Lens' EC2SecurityGroup (Maybe Text)
- Network.AWS.ElastiCache.Types: instance Constructor C1_0AZMode
- Network.AWS.ElastiCache.Types: instance Constructor C1_0AutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance Constructor C1_0PendingAutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance Constructor C1_0SourceType
- Network.AWS.ElastiCache.Types: instance Constructor C1_1AZMode
- Network.AWS.ElastiCache.Types: instance Constructor C1_1AutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance Constructor C1_1PendingAutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance Constructor C1_1SourceType
- Network.AWS.ElastiCache.Types: instance Constructor C1_2AutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance Constructor C1_2SourceType
- Network.AWS.ElastiCache.Types: instance Constructor C1_3AutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance Constructor C1_3SourceType
- Network.AWS.ElastiCache.Types: instance Datatype D1AZMode
- Network.AWS.ElastiCache.Types: instance Datatype D1AutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance Datatype D1PendingAutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance Datatype D1SourceType
- Network.AWS.ElastiCache.Types: instance Enum AZMode
- Network.AWS.ElastiCache.Types: instance Enum AutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance Enum PendingAutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance Enum SourceType
- Network.AWS.ElastiCache.Types: instance Eq AZMode
- Network.AWS.ElastiCache.Types: instance Eq AutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance Eq AvailabilityZone
- Network.AWS.ElastiCache.Types: instance Eq CacheCluster
- Network.AWS.ElastiCache.Types: instance Eq CacheEngineVersion
- Network.AWS.ElastiCache.Types: instance Eq CacheNode
- Network.AWS.ElastiCache.Types: instance Eq CacheNodeTypeSpecificParameter
- Network.AWS.ElastiCache.Types: instance Eq CacheNodeTypeSpecificValue
- Network.AWS.ElastiCache.Types: instance Eq CacheParameterGroup
- Network.AWS.ElastiCache.Types: instance Eq CacheParameterGroupNameMessage
- Network.AWS.ElastiCache.Types: instance Eq CacheParameterGroupStatus
- Network.AWS.ElastiCache.Types: instance Eq CacheSecurityGroup
- Network.AWS.ElastiCache.Types: instance Eq CacheSecurityGroupMembership
- Network.AWS.ElastiCache.Types: instance Eq CacheSubnetGroup
- Network.AWS.ElastiCache.Types: instance Eq EC2SecurityGroup
- Network.AWS.ElastiCache.Types: instance Eq Endpoint
- Network.AWS.ElastiCache.Types: instance Eq EngineDefaults
- Network.AWS.ElastiCache.Types: instance Eq Event
- Network.AWS.ElastiCache.Types: instance Eq NodeGroup
- Network.AWS.ElastiCache.Types: instance Eq NodeGroupMember
- Network.AWS.ElastiCache.Types: instance Eq NodeSnapshot
- Network.AWS.ElastiCache.Types: instance Eq NotificationConfiguration
- Network.AWS.ElastiCache.Types: instance Eq Parameter
- Network.AWS.ElastiCache.Types: instance Eq ParameterNameValue
- Network.AWS.ElastiCache.Types: instance Eq PendingAutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance Eq PendingModifiedValues
- Network.AWS.ElastiCache.Types: instance Eq RecurringCharge
- Network.AWS.ElastiCache.Types: instance Eq ReplicationGroup
- Network.AWS.ElastiCache.Types: instance Eq ReplicationGroupPendingModifiedValues
- Network.AWS.ElastiCache.Types: instance Eq ReservedCacheNode
- Network.AWS.ElastiCache.Types: instance Eq ReservedCacheNodesOffering
- Network.AWS.ElastiCache.Types: instance Eq SecurityGroupMembership
- Network.AWS.ElastiCache.Types: instance Eq Snapshot
- Network.AWS.ElastiCache.Types: instance Eq SourceType
- Network.AWS.ElastiCache.Types: instance Eq Subnet
- Network.AWS.ElastiCache.Types: instance Eq Tag
- Network.AWS.ElastiCache.Types: instance Eq TagListMessage
- Network.AWS.ElastiCache.Types: instance FromText AZMode
- Network.AWS.ElastiCache.Types: instance FromText AutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance FromText PendingAutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance FromText SourceType
- Network.AWS.ElastiCache.Types: instance FromXML AZMode
- Network.AWS.ElastiCache.Types: instance FromXML AutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance FromXML AvailabilityZone
- Network.AWS.ElastiCache.Types: instance FromXML CacheCluster
- Network.AWS.ElastiCache.Types: instance FromXML CacheEngineVersion
- Network.AWS.ElastiCache.Types: instance FromXML CacheNode
- Network.AWS.ElastiCache.Types: instance FromXML CacheNodeTypeSpecificParameter
- Network.AWS.ElastiCache.Types: instance FromXML CacheNodeTypeSpecificValue
- Network.AWS.ElastiCache.Types: instance FromXML CacheParameterGroup
- Network.AWS.ElastiCache.Types: instance FromXML CacheParameterGroupNameMessage
- Network.AWS.ElastiCache.Types: instance FromXML CacheParameterGroupStatus
- Network.AWS.ElastiCache.Types: instance FromXML CacheSecurityGroup
- Network.AWS.ElastiCache.Types: instance FromXML CacheSecurityGroupMembership
- Network.AWS.ElastiCache.Types: instance FromXML CacheSubnetGroup
- Network.AWS.ElastiCache.Types: instance FromXML EC2SecurityGroup
- Network.AWS.ElastiCache.Types: instance FromXML Endpoint
- Network.AWS.ElastiCache.Types: instance FromXML EngineDefaults
- Network.AWS.ElastiCache.Types: instance FromXML Event
- Network.AWS.ElastiCache.Types: instance FromXML NodeGroup
- Network.AWS.ElastiCache.Types: instance FromXML NodeGroupMember
- Network.AWS.ElastiCache.Types: instance FromXML NodeSnapshot
- Network.AWS.ElastiCache.Types: instance FromXML NotificationConfiguration
- Network.AWS.ElastiCache.Types: instance FromXML Parameter
- Network.AWS.ElastiCache.Types: instance FromXML ParameterNameValue
- Network.AWS.ElastiCache.Types: instance FromXML PendingAutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance FromXML PendingModifiedValues
- Network.AWS.ElastiCache.Types: instance FromXML RecurringCharge
- Network.AWS.ElastiCache.Types: instance FromXML ReplicationGroup
- Network.AWS.ElastiCache.Types: instance FromXML ReplicationGroupPendingModifiedValues
- Network.AWS.ElastiCache.Types: instance FromXML ReservedCacheNode
- Network.AWS.ElastiCache.Types: instance FromXML ReservedCacheNodesOffering
- Network.AWS.ElastiCache.Types: instance FromXML SecurityGroupMembership
- Network.AWS.ElastiCache.Types: instance FromXML Snapshot
- Network.AWS.ElastiCache.Types: instance FromXML SourceType
- Network.AWS.ElastiCache.Types: instance FromXML Subnet
- Network.AWS.ElastiCache.Types: instance FromXML Tag
- Network.AWS.ElastiCache.Types: instance FromXML TagListMessage
- Network.AWS.ElastiCache.Types: instance Generic AZMode
- Network.AWS.ElastiCache.Types: instance Generic AutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance Generic PendingAutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance Generic SourceType
- Network.AWS.ElastiCache.Types: instance Hashable AZMode
- Network.AWS.ElastiCache.Types: instance Hashable AutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance Hashable PendingAutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance Hashable SourceType
- Network.AWS.ElastiCache.Types: instance IsList TagListMessage
- Network.AWS.ElastiCache.Types: instance Monoid AvailabilityZone
- Network.AWS.ElastiCache.Types: instance Monoid CacheParameterGroupNameMessage
- Network.AWS.ElastiCache.Types: instance Monoid TagListMessage
- Network.AWS.ElastiCache.Types: instance Ord AZMode
- Network.AWS.ElastiCache.Types: instance Ord AutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance Ord AvailabilityZone
- Network.AWS.ElastiCache.Types: instance Ord CacheEngineVersion
- Network.AWS.ElastiCache.Types: instance Ord CacheNodeTypeSpecificValue
- Network.AWS.ElastiCache.Types: instance Ord CacheParameterGroup
- Network.AWS.ElastiCache.Types: instance Ord CacheParameterGroupNameMessage
- Network.AWS.ElastiCache.Types: instance Ord CacheParameterGroupStatus
- Network.AWS.ElastiCache.Types: instance Ord CacheSecurityGroupMembership
- Network.AWS.ElastiCache.Types: instance Ord EC2SecurityGroup
- Network.AWS.ElastiCache.Types: instance Ord Endpoint
- Network.AWS.ElastiCache.Types: instance Ord NodeSnapshot
- Network.AWS.ElastiCache.Types: instance Ord NotificationConfiguration
- Network.AWS.ElastiCache.Types: instance Ord Parameter
- Network.AWS.ElastiCache.Types: instance Ord ParameterNameValue
- Network.AWS.ElastiCache.Types: instance Ord PendingAutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance Ord PendingModifiedValues
- Network.AWS.ElastiCache.Types: instance Ord RecurringCharge
- Network.AWS.ElastiCache.Types: instance Ord SecurityGroupMembership
- Network.AWS.ElastiCache.Types: instance Ord SourceType
- Network.AWS.ElastiCache.Types: instance Ord Tag
- Network.AWS.ElastiCache.Types: instance Read AZMode
- Network.AWS.ElastiCache.Types: instance Read AutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance Read AvailabilityZone
- Network.AWS.ElastiCache.Types: instance Read CacheCluster
- Network.AWS.ElastiCache.Types: instance Read CacheEngineVersion
- Network.AWS.ElastiCache.Types: instance Read CacheNode
- Network.AWS.ElastiCache.Types: instance Read CacheNodeTypeSpecificParameter
- Network.AWS.ElastiCache.Types: instance Read CacheNodeTypeSpecificValue
- Network.AWS.ElastiCache.Types: instance Read CacheParameterGroup
- Network.AWS.ElastiCache.Types: instance Read CacheParameterGroupNameMessage
- Network.AWS.ElastiCache.Types: instance Read CacheParameterGroupStatus
- Network.AWS.ElastiCache.Types: instance Read CacheSecurityGroup
- Network.AWS.ElastiCache.Types: instance Read CacheSecurityGroupMembership
- Network.AWS.ElastiCache.Types: instance Read CacheSubnetGroup
- Network.AWS.ElastiCache.Types: instance Read EC2SecurityGroup
- Network.AWS.ElastiCache.Types: instance Read Endpoint
- Network.AWS.ElastiCache.Types: instance Read EngineDefaults
- Network.AWS.ElastiCache.Types: instance Read Event
- Network.AWS.ElastiCache.Types: instance Read NodeGroup
- Network.AWS.ElastiCache.Types: instance Read NodeGroupMember
- Network.AWS.ElastiCache.Types: instance Read NodeSnapshot
- Network.AWS.ElastiCache.Types: instance Read NotificationConfiguration
- Network.AWS.ElastiCache.Types: instance Read Parameter
- Network.AWS.ElastiCache.Types: instance Read ParameterNameValue
- Network.AWS.ElastiCache.Types: instance Read PendingAutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance Read PendingModifiedValues
- Network.AWS.ElastiCache.Types: instance Read RecurringCharge
- Network.AWS.ElastiCache.Types: instance Read ReplicationGroup
- Network.AWS.ElastiCache.Types: instance Read ReplicationGroupPendingModifiedValues
- Network.AWS.ElastiCache.Types: instance Read ReservedCacheNode
- Network.AWS.ElastiCache.Types: instance Read ReservedCacheNodesOffering
- Network.AWS.ElastiCache.Types: instance Read SecurityGroupMembership
- Network.AWS.ElastiCache.Types: instance Read Snapshot
- Network.AWS.ElastiCache.Types: instance Read SourceType
- Network.AWS.ElastiCache.Types: instance Read Subnet
- Network.AWS.ElastiCache.Types: instance Read Tag
- Network.AWS.ElastiCache.Types: instance Read TagListMessage
- Network.AWS.ElastiCache.Types: instance Semigroup TagListMessage
- Network.AWS.ElastiCache.Types: instance Show AZMode
- Network.AWS.ElastiCache.Types: instance Show AutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance Show AvailabilityZone
- Network.AWS.ElastiCache.Types: instance Show CacheCluster
- Network.AWS.ElastiCache.Types: instance Show CacheEngineVersion
- Network.AWS.ElastiCache.Types: instance Show CacheNode
- Network.AWS.ElastiCache.Types: instance Show CacheNodeTypeSpecificParameter
- Network.AWS.ElastiCache.Types: instance Show CacheNodeTypeSpecificValue
- Network.AWS.ElastiCache.Types: instance Show CacheParameterGroup
- Network.AWS.ElastiCache.Types: instance Show CacheParameterGroupNameMessage
- Network.AWS.ElastiCache.Types: instance Show CacheParameterGroupStatus
- Network.AWS.ElastiCache.Types: instance Show CacheSecurityGroup
- Network.AWS.ElastiCache.Types: instance Show CacheSecurityGroupMembership
- Network.AWS.ElastiCache.Types: instance Show CacheSubnetGroup
- Network.AWS.ElastiCache.Types: instance Show EC2SecurityGroup
- Network.AWS.ElastiCache.Types: instance Show Endpoint
- Network.AWS.ElastiCache.Types: instance Show EngineDefaults
- Network.AWS.ElastiCache.Types: instance Show Event
- Network.AWS.ElastiCache.Types: instance Show NodeGroup
- Network.AWS.ElastiCache.Types: instance Show NodeGroupMember
- Network.AWS.ElastiCache.Types: instance Show NodeSnapshot
- Network.AWS.ElastiCache.Types: instance Show NotificationConfiguration
- Network.AWS.ElastiCache.Types: instance Show Parameter
- Network.AWS.ElastiCache.Types: instance Show ParameterNameValue
- Network.AWS.ElastiCache.Types: instance Show PendingAutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance Show PendingModifiedValues
- Network.AWS.ElastiCache.Types: instance Show RecurringCharge
- Network.AWS.ElastiCache.Types: instance Show ReplicationGroup
- Network.AWS.ElastiCache.Types: instance Show ReplicationGroupPendingModifiedValues
- Network.AWS.ElastiCache.Types: instance Show ReservedCacheNode
- Network.AWS.ElastiCache.Types: instance Show ReservedCacheNodesOffering
- Network.AWS.ElastiCache.Types: instance Show SecurityGroupMembership
- Network.AWS.ElastiCache.Types: instance Show Snapshot
- Network.AWS.ElastiCache.Types: instance Show SourceType
- Network.AWS.ElastiCache.Types: instance Show Subnet
- Network.AWS.ElastiCache.Types: instance Show Tag
- Network.AWS.ElastiCache.Types: instance Show TagListMessage
- Network.AWS.ElastiCache.Types: instance ToByteString AZMode
- Network.AWS.ElastiCache.Types: instance ToByteString AutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance ToByteString PendingAutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance ToByteString SourceType
- Network.AWS.ElastiCache.Types: instance ToHeader AZMode
- Network.AWS.ElastiCache.Types: instance ToHeader AutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance ToHeader PendingAutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance ToHeader SourceType
- Network.AWS.ElastiCache.Types: instance ToQuery AZMode
- Network.AWS.ElastiCache.Types: instance ToQuery AutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance ToQuery AvailabilityZone
- Network.AWS.ElastiCache.Types: instance ToQuery CacheCluster
- Network.AWS.ElastiCache.Types: instance ToQuery CacheEngineVersion
- Network.AWS.ElastiCache.Types: instance ToQuery CacheNode
- Network.AWS.ElastiCache.Types: instance ToQuery CacheNodeTypeSpecificParameter
- Network.AWS.ElastiCache.Types: instance ToQuery CacheNodeTypeSpecificValue
- Network.AWS.ElastiCache.Types: instance ToQuery CacheParameterGroup
- Network.AWS.ElastiCache.Types: instance ToQuery CacheParameterGroupNameMessage
- Network.AWS.ElastiCache.Types: instance ToQuery CacheParameterGroupStatus
- Network.AWS.ElastiCache.Types: instance ToQuery CacheSecurityGroup
- Network.AWS.ElastiCache.Types: instance ToQuery CacheSecurityGroupMembership
- Network.AWS.ElastiCache.Types: instance ToQuery CacheSubnetGroup
- Network.AWS.ElastiCache.Types: instance ToQuery EC2SecurityGroup
- Network.AWS.ElastiCache.Types: instance ToQuery Endpoint
- Network.AWS.ElastiCache.Types: instance ToQuery EngineDefaults
- Network.AWS.ElastiCache.Types: instance ToQuery Event
- Network.AWS.ElastiCache.Types: instance ToQuery NodeGroup
- Network.AWS.ElastiCache.Types: instance ToQuery NodeGroupMember
- Network.AWS.ElastiCache.Types: instance ToQuery NodeSnapshot
- Network.AWS.ElastiCache.Types: instance ToQuery NotificationConfiguration
- Network.AWS.ElastiCache.Types: instance ToQuery Parameter
- Network.AWS.ElastiCache.Types: instance ToQuery ParameterNameValue
- Network.AWS.ElastiCache.Types: instance ToQuery PendingAutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance ToQuery PendingModifiedValues
- Network.AWS.ElastiCache.Types: instance ToQuery RecurringCharge
- Network.AWS.ElastiCache.Types: instance ToQuery ReplicationGroup
- Network.AWS.ElastiCache.Types: instance ToQuery ReplicationGroupPendingModifiedValues
- Network.AWS.ElastiCache.Types: instance ToQuery ReservedCacheNode
- Network.AWS.ElastiCache.Types: instance ToQuery ReservedCacheNodesOffering
- Network.AWS.ElastiCache.Types: instance ToQuery SecurityGroupMembership
- Network.AWS.ElastiCache.Types: instance ToQuery Snapshot
- Network.AWS.ElastiCache.Types: instance ToQuery SourceType
- Network.AWS.ElastiCache.Types: instance ToQuery Subnet
- Network.AWS.ElastiCache.Types: instance ToQuery Tag
- Network.AWS.ElastiCache.Types: instance ToQuery TagListMessage
- Network.AWS.ElastiCache.Types: instance ToText AZMode
- Network.AWS.ElastiCache.Types: instance ToText AutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance ToText PendingAutomaticFailoverStatus
- Network.AWS.ElastiCache.Types: instance ToText SourceType
- Network.AWS.ElastiCache.Types: ncTopicArn :: Lens' NotificationConfiguration (Maybe Text)
- Network.AWS.ElastiCache.Types: ns :: Text
- Network.AWS.ElastiCache.Types: sTopicArn :: Lens' Snapshot (Maybe Text)
- Network.AWS.ElastiCache.Types: sVpcId :: Lens' Snapshot (Maybe Text)
+ Network.AWS.ElastiCache: AFSDisabled :: AutomaticFailoverStatus
+ Network.AWS.ElastiCache: AFSDisabling :: AutomaticFailoverStatus
+ Network.AWS.ElastiCache: AFSEnabled :: AutomaticFailoverStatus
+ Network.AWS.ElastiCache: AFSEnabling :: AutomaticFailoverStatus
+ Network.AWS.ElastiCache: CacheCluster :: SourceType
+ Network.AWS.ElastiCache: CacheParameterGroup :: SourceType
+ Network.AWS.ElastiCache: CacheSecurityGroup :: SourceType
+ Network.AWS.ElastiCache: CacheSubnetGroup :: SourceType
+ Network.AWS.ElastiCache: CrossAz :: AZMode
+ Network.AWS.ElastiCache: Disabled :: PendingAutomaticFailoverStatus
+ Network.AWS.ElastiCache: Enabled :: PendingAutomaticFailoverStatus
+ Network.AWS.ElastiCache: SingleAz :: AZMode
+ Network.AWS.ElastiCache: _AuthorizationAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _AuthorizationNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _CacheClusterAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _CacheClusterNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _CacheParameterGroupAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _CacheParameterGroupNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _CacheParameterGroupQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _CacheSecurityGroupAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _CacheSecurityGroupNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _CacheSecurityGroupQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _CacheSubnetGroupAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _CacheSubnetGroupInUse :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _CacheSubnetGroupNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _CacheSubnetGroupQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _CacheSubnetQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _ClusterQuotaForCustomerExceededFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _InsufficientCacheClusterCapacityFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _InvalidARNFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _InvalidCacheClusterStateFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _InvalidCacheParameterGroupStateFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _InvalidCacheSecurityGroupStateFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _InvalidParameterCombinationException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _InvalidParameterValueException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _InvalidReplicationGroupStateFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _InvalidSnapshotStateFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _InvalidSubnet :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _InvalidVPCNetworkStateFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _NodeQuotaForClusterExceededFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _NodeQuotaForCustomerExceededFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _ReplicationGroupAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _ReplicationGroupNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _ReservedCacheNodeAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _ReservedCacheNodeNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _ReservedCacheNodeQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _ReservedCacheNodesOfferingNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _SnapshotAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _SnapshotFeatureNotSupportedFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _SnapshotNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _SnapshotQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _SubnetInUse :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _TagNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: _TagQuotaPerResourceExceeded :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache: availabilityZone :: AvailabilityZone
+ Network.AWS.ElastiCache: azName :: Lens' AvailabilityZone (Maybe Text)
+ Network.AWS.ElastiCache: cacheCluster :: CacheCluster
+ Network.AWS.ElastiCache: cacheClusterAvailable :: Wait DescribeCacheClusters
+ Network.AWS.ElastiCache: cacheClusterDeleted :: Wait DescribeCacheClusters
+ Network.AWS.ElastiCache: cacheEngineVersion :: CacheEngineVersion
+ Network.AWS.ElastiCache: cacheNode :: CacheNode
+ Network.AWS.ElastiCache: cacheNodeTypeSpecificParameter :: CacheNodeTypeSpecificParameter
+ Network.AWS.ElastiCache: cacheNodeTypeSpecificValue :: CacheNodeTypeSpecificValue
+ Network.AWS.ElastiCache: cacheParameterGroup :: CacheParameterGroup
+ Network.AWS.ElastiCache: cacheParameterGroupNameMessage :: CacheParameterGroupNameMessage
+ Network.AWS.ElastiCache: cacheParameterGroupStatus :: CacheParameterGroupStatus
+ Network.AWS.ElastiCache: cacheSecurityGroup :: CacheSecurityGroup
+ Network.AWS.ElastiCache: cacheSecurityGroupMembership :: CacheSecurityGroupMembership
+ Network.AWS.ElastiCache: cacheSubnetGroup :: CacheSubnetGroup
+ Network.AWS.ElastiCache: ccAutoMinorVersionUpgrade :: Lens' CacheCluster (Maybe Bool)
+ Network.AWS.ElastiCache: ccCacheClusterCreateTime :: Lens' CacheCluster (Maybe UTCTime)
+ Network.AWS.ElastiCache: ccCacheClusterId :: Lens' CacheCluster (Maybe Text)
+ Network.AWS.ElastiCache: ccCacheClusterStatus :: Lens' CacheCluster (Maybe Text)
+ Network.AWS.ElastiCache: ccCacheNodeType :: Lens' CacheCluster (Maybe Text)
+ Network.AWS.ElastiCache: ccCacheNodes :: Lens' CacheCluster [CacheNode]
+ Network.AWS.ElastiCache: ccCacheParameterGroup :: Lens' CacheCluster (Maybe CacheParameterGroupStatus)
+ Network.AWS.ElastiCache: ccCacheSecurityGroups :: Lens' CacheCluster [CacheSecurityGroupMembership]
+ Network.AWS.ElastiCache: ccCacheSubnetGroupName :: Lens' CacheCluster (Maybe Text)
+ Network.AWS.ElastiCache: ccClientDownloadLandingPage :: Lens' CacheCluster (Maybe Text)
+ Network.AWS.ElastiCache: ccConfigurationEndpoint :: Lens' CacheCluster (Maybe Endpoint)
+ Network.AWS.ElastiCache: ccEngine :: Lens' CacheCluster (Maybe Text)
+ Network.AWS.ElastiCache: ccEngineVersion :: Lens' CacheCluster (Maybe Text)
+ Network.AWS.ElastiCache: ccNotificationConfiguration :: Lens' CacheCluster (Maybe NotificationConfiguration)
+ Network.AWS.ElastiCache: ccNumCacheNodes :: Lens' CacheCluster (Maybe Int)
+ Network.AWS.ElastiCache: ccPendingModifiedValues :: Lens' CacheCluster (Maybe PendingModifiedValues)
+ Network.AWS.ElastiCache: ccPreferredAvailabilityZone :: Lens' CacheCluster (Maybe Text)
+ Network.AWS.ElastiCache: ccPreferredMaintenanceWindow :: Lens' CacheCluster (Maybe Text)
+ Network.AWS.ElastiCache: ccReplicationGroupId :: Lens' CacheCluster (Maybe Text)
+ Network.AWS.ElastiCache: ccSecurityGroups :: Lens' CacheCluster [SecurityGroupMembership]
+ Network.AWS.ElastiCache: ccSnapshotRetentionLimit :: Lens' CacheCluster (Maybe Int)
+ Network.AWS.ElastiCache: ccSnapshotWindow :: Lens' CacheCluster (Maybe Text)
+ Network.AWS.ElastiCache: cevCacheEngineDescription :: Lens' CacheEngineVersion (Maybe Text)
+ Network.AWS.ElastiCache: cevCacheEngineVersionDescription :: Lens' CacheEngineVersion (Maybe Text)
+ Network.AWS.ElastiCache: cevCacheParameterGroupFamily :: Lens' CacheEngineVersion (Maybe Text)
+ Network.AWS.ElastiCache: cevEngine :: Lens' CacheEngineVersion (Maybe Text)
+ Network.AWS.ElastiCache: cevEngineVersion :: Lens' CacheEngineVersion (Maybe Text)
+ Network.AWS.ElastiCache: cnCacheNodeCreateTime :: Lens' CacheNode (Maybe UTCTime)
+ Network.AWS.ElastiCache: cnCacheNodeId :: Lens' CacheNode (Maybe Text)
+ Network.AWS.ElastiCache: cnCacheNodeStatus :: Lens' CacheNode (Maybe Text)
+ Network.AWS.ElastiCache: cnCustomerAvailabilityZone :: Lens' CacheNode (Maybe Text)
+ Network.AWS.ElastiCache: cnEndpoint :: Lens' CacheNode (Maybe Endpoint)
+ Network.AWS.ElastiCache: cnParameterGroupStatus :: Lens' CacheNode (Maybe Text)
+ Network.AWS.ElastiCache: cnSourceCacheNodeId :: Lens' CacheNode (Maybe Text)
+ Network.AWS.ElastiCache: cntspAllowedValues :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)
+ Network.AWS.ElastiCache: cntspCacheNodeTypeSpecificValues :: Lens' CacheNodeTypeSpecificParameter [CacheNodeTypeSpecificValue]
+ Network.AWS.ElastiCache: cntspDataType :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)
+ Network.AWS.ElastiCache: cntspDescription :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)
+ Network.AWS.ElastiCache: cntspIsModifiable :: Lens' CacheNodeTypeSpecificParameter (Maybe Bool)
+ Network.AWS.ElastiCache: cntspMinimumEngineVersion :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)
+ Network.AWS.ElastiCache: cntspParameterName :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)
+ Network.AWS.ElastiCache: cntspSource :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)
+ Network.AWS.ElastiCache: cntsvCacheNodeType :: Lens' CacheNodeTypeSpecificValue (Maybe Text)
+ Network.AWS.ElastiCache: cntsvValue :: Lens' CacheNodeTypeSpecificValue (Maybe Text)
+ Network.AWS.ElastiCache: cpgCacheParameterGroupFamily :: Lens' CacheParameterGroup (Maybe Text)
+ Network.AWS.ElastiCache: cpgCacheParameterGroupName :: Lens' CacheParameterGroup (Maybe Text)
+ Network.AWS.ElastiCache: cpgDescription :: Lens' CacheParameterGroup (Maybe Text)
+ Network.AWS.ElastiCache: cpgnmCacheParameterGroupName :: Lens' CacheParameterGroupNameMessage (Maybe Text)
+ Network.AWS.ElastiCache: cpgsCacheNodeIdsToReboot :: Lens' CacheParameterGroupStatus [Text]
+ Network.AWS.ElastiCache: cpgsCacheParameterGroupName :: Lens' CacheParameterGroupStatus (Maybe Text)
+ Network.AWS.ElastiCache: cpgsParameterApplyStatus :: Lens' CacheParameterGroupStatus (Maybe Text)
+ Network.AWS.ElastiCache: csgCacheSecurityGroupName :: Lens' CacheSecurityGroup (Maybe Text)
+ Network.AWS.ElastiCache: csgCacheSubnetGroupDescription :: Lens' CacheSubnetGroup (Maybe Text)
+ Network.AWS.ElastiCache: csgCacheSubnetGroupName :: Lens' CacheSubnetGroup (Maybe Text)
+ Network.AWS.ElastiCache: csgDescription :: Lens' CacheSecurityGroup (Maybe Text)
+ Network.AWS.ElastiCache: csgEC2SecurityGroups :: Lens' CacheSecurityGroup [EC2SecurityGroup]
+ Network.AWS.ElastiCache: csgOwnerId :: Lens' CacheSecurityGroup (Maybe Text)
+ Network.AWS.ElastiCache: csgSubnets :: Lens' CacheSubnetGroup [Subnet]
+ Network.AWS.ElastiCache: csgVPCId :: Lens' CacheSubnetGroup (Maybe Text)
+ Network.AWS.ElastiCache: csgmCacheSecurityGroupName :: Lens' CacheSecurityGroupMembership (Maybe Text)
+ Network.AWS.ElastiCache: csgmStatus :: Lens' CacheSecurityGroupMembership (Maybe Text)
+ Network.AWS.ElastiCache: data AZMode
+ Network.AWS.ElastiCache: data AutomaticFailoverStatus
+ Network.AWS.ElastiCache: data AvailabilityZone
+ Network.AWS.ElastiCache: data CacheCluster
+ Network.AWS.ElastiCache: data CacheEngineVersion
+ Network.AWS.ElastiCache: data CacheNode
+ Network.AWS.ElastiCache: data CacheNodeTypeSpecificParameter
+ Network.AWS.ElastiCache: data CacheNodeTypeSpecificValue
+ Network.AWS.ElastiCache: data CacheParameterGroup
+ Network.AWS.ElastiCache: data CacheParameterGroupNameMessage
+ Network.AWS.ElastiCache: data CacheParameterGroupStatus
+ Network.AWS.ElastiCache: data CacheSecurityGroup
+ Network.AWS.ElastiCache: data CacheSecurityGroupMembership
+ Network.AWS.ElastiCache: data CacheSubnetGroup
+ Network.AWS.ElastiCache: data EC2SecurityGroup
+ Network.AWS.ElastiCache: data ElastiCache
+ Network.AWS.ElastiCache: data Endpoint
+ Network.AWS.ElastiCache: data EngineDefaults
+ Network.AWS.ElastiCache: data Event
+ Network.AWS.ElastiCache: data NodeGroup
+ Network.AWS.ElastiCache: data NodeGroupMember
+ Network.AWS.ElastiCache: data NodeSnapshot
+ Network.AWS.ElastiCache: data NotificationConfiguration
+ Network.AWS.ElastiCache: data Parameter
+ Network.AWS.ElastiCache: data ParameterNameValue
+ Network.AWS.ElastiCache: data PendingAutomaticFailoverStatus
+ Network.AWS.ElastiCache: data PendingModifiedValues
+ Network.AWS.ElastiCache: data RecurringCharge
+ Network.AWS.ElastiCache: data ReplicationGroup
+ Network.AWS.ElastiCache: data ReplicationGroupPendingModifiedValues
+ Network.AWS.ElastiCache: data ReservedCacheNode
+ Network.AWS.ElastiCache: data ReservedCacheNodesOffering
+ Network.AWS.ElastiCache: data SecurityGroupMembership
+ Network.AWS.ElastiCache: data Snapshot
+ Network.AWS.ElastiCache: data SourceType
+ Network.AWS.ElastiCache: data Subnet
+ Network.AWS.ElastiCache: data Tag
+ Network.AWS.ElastiCache: data TagListMessage
+ Network.AWS.ElastiCache: eAddress :: Lens' Endpoint (Maybe Text)
+ Network.AWS.ElastiCache: eDate :: Lens' Event (Maybe UTCTime)
+ Network.AWS.ElastiCache: eMessage :: Lens' Event (Maybe Text)
+ Network.AWS.ElastiCache: ePort :: Lens' Endpoint (Maybe Int)
+ Network.AWS.ElastiCache: eSourceIdentifier :: Lens' Event (Maybe Text)
+ Network.AWS.ElastiCache: eSourceType :: Lens' Event (Maybe SourceType)
+ Network.AWS.ElastiCache: ec2SecurityGroup :: EC2SecurityGroup
+ Network.AWS.ElastiCache: edCacheNodeTypeSpecificParameters :: Lens' EngineDefaults [CacheNodeTypeSpecificParameter]
+ Network.AWS.ElastiCache: edCacheParameterGroupFamily :: Lens' EngineDefaults (Maybe Text)
+ Network.AWS.ElastiCache: edMarker :: Lens' EngineDefaults (Maybe Text)
+ Network.AWS.ElastiCache: edParameters :: Lens' EngineDefaults [Parameter]
+ Network.AWS.ElastiCache: endpoint :: Endpoint
+ Network.AWS.ElastiCache: engineDefaults :: EngineDefaults
+ Network.AWS.ElastiCache: esgEC2SecurityGroupName :: Lens' EC2SecurityGroup (Maybe Text)
+ Network.AWS.ElastiCache: esgEC2SecurityGroupOwnerId :: Lens' EC2SecurityGroup (Maybe Text)
+ Network.AWS.ElastiCache: esgStatus :: Lens' EC2SecurityGroup (Maybe Text)
+ Network.AWS.ElastiCache: event :: Event
+ Network.AWS.ElastiCache: ncTopicARN :: Lens' NotificationConfiguration (Maybe Text)
+ Network.AWS.ElastiCache: ncTopicStatus :: Lens' NotificationConfiguration (Maybe Text)
+ Network.AWS.ElastiCache: ngNodeGroupId :: Lens' NodeGroup (Maybe Text)
+ Network.AWS.ElastiCache: ngNodeGroupMembers :: Lens' NodeGroup [NodeGroupMember]
+ Network.AWS.ElastiCache: ngPrimaryEndpoint :: Lens' NodeGroup (Maybe Endpoint)
+ Network.AWS.ElastiCache: ngStatus :: Lens' NodeGroup (Maybe Text)
+ Network.AWS.ElastiCache: ngmCacheClusterId :: Lens' NodeGroupMember (Maybe Text)
+ Network.AWS.ElastiCache: ngmCacheNodeId :: Lens' NodeGroupMember (Maybe Text)
+ Network.AWS.ElastiCache: ngmCurrentRole :: Lens' NodeGroupMember (Maybe Text)
+ Network.AWS.ElastiCache: ngmPreferredAvailabilityZone :: Lens' NodeGroupMember (Maybe Text)
+ Network.AWS.ElastiCache: ngmReadEndpoint :: Lens' NodeGroupMember (Maybe Endpoint)
+ Network.AWS.ElastiCache: nodeGroup :: NodeGroup
+ Network.AWS.ElastiCache: nodeGroupMember :: NodeGroupMember
+ Network.AWS.ElastiCache: nodeSnapshot :: NodeSnapshot
+ Network.AWS.ElastiCache: notificationConfiguration :: NotificationConfiguration
+ Network.AWS.ElastiCache: nsCacheNodeCreateTime :: Lens' NodeSnapshot (Maybe UTCTime)
+ Network.AWS.ElastiCache: nsCacheNodeId :: Lens' NodeSnapshot (Maybe Text)
+ Network.AWS.ElastiCache: nsCacheSize :: Lens' NodeSnapshot (Maybe Text)
+ Network.AWS.ElastiCache: nsSnapshotCreateTime :: Lens' NodeSnapshot (Maybe UTCTime)
+ Network.AWS.ElastiCache: pAllowedValues :: Lens' Parameter (Maybe Text)
+ Network.AWS.ElastiCache: pDataType :: Lens' Parameter (Maybe Text)
+ Network.AWS.ElastiCache: pDescription :: Lens' Parameter (Maybe Text)
+ Network.AWS.ElastiCache: pIsModifiable :: Lens' Parameter (Maybe Bool)
+ Network.AWS.ElastiCache: pMinimumEngineVersion :: Lens' Parameter (Maybe Text)
+ Network.AWS.ElastiCache: pParameterName :: Lens' Parameter (Maybe Text)
+ Network.AWS.ElastiCache: pParameterValue :: Lens' Parameter (Maybe Text)
+ Network.AWS.ElastiCache: pSource :: Lens' Parameter (Maybe Text)
+ Network.AWS.ElastiCache: parameter :: Parameter
+ Network.AWS.ElastiCache: parameterNameValue :: ParameterNameValue
+ Network.AWS.ElastiCache: pendingModifiedValues :: PendingModifiedValues
+ Network.AWS.ElastiCache: pmvCacheNodeIdsToRemove :: Lens' PendingModifiedValues [Text]
+ Network.AWS.ElastiCache: pmvEngineVersion :: Lens' PendingModifiedValues (Maybe Text)
+ Network.AWS.ElastiCache: pmvNumCacheNodes :: Lens' PendingModifiedValues (Maybe Int)
+ Network.AWS.ElastiCache: pnvParameterName :: Lens' ParameterNameValue (Maybe Text)
+ Network.AWS.ElastiCache: pnvParameterValue :: Lens' ParameterNameValue (Maybe Text)
+ Network.AWS.ElastiCache: rcRecurringChargeAmount :: Lens' RecurringCharge (Maybe Double)
+ Network.AWS.ElastiCache: rcRecurringChargeFrequency :: Lens' RecurringCharge (Maybe Text)
+ Network.AWS.ElastiCache: rcnCacheNodeCount :: Lens' ReservedCacheNode (Maybe Int)
+ Network.AWS.ElastiCache: rcnCacheNodeType :: Lens' ReservedCacheNode (Maybe Text)
+ Network.AWS.ElastiCache: rcnDuration :: Lens' ReservedCacheNode (Maybe Int)
+ Network.AWS.ElastiCache: rcnFixedPrice :: Lens' ReservedCacheNode (Maybe Double)
+ Network.AWS.ElastiCache: rcnOfferingType :: Lens' ReservedCacheNode (Maybe Text)
+ Network.AWS.ElastiCache: rcnProductDescription :: Lens' ReservedCacheNode (Maybe Text)
+ Network.AWS.ElastiCache: rcnRecurringCharges :: Lens' ReservedCacheNode [RecurringCharge]
+ Network.AWS.ElastiCache: rcnReservedCacheNodeId :: Lens' ReservedCacheNode (Maybe Text)
+ Network.AWS.ElastiCache: rcnReservedCacheNodesOfferingId :: Lens' ReservedCacheNode (Maybe Text)
+ Network.AWS.ElastiCache: rcnStartTime :: Lens' ReservedCacheNode (Maybe UTCTime)
+ Network.AWS.ElastiCache: rcnState :: Lens' ReservedCacheNode (Maybe Text)
+ Network.AWS.ElastiCache: rcnUsagePrice :: Lens' ReservedCacheNode (Maybe Double)
+ Network.AWS.ElastiCache: rcnoCacheNodeType :: Lens' ReservedCacheNodesOffering (Maybe Text)
+ Network.AWS.ElastiCache: rcnoDuration :: Lens' ReservedCacheNodesOffering (Maybe Int)
+ Network.AWS.ElastiCache: rcnoFixedPrice :: Lens' ReservedCacheNodesOffering (Maybe Double)
+ Network.AWS.ElastiCache: rcnoOfferingType :: Lens' ReservedCacheNodesOffering (Maybe Text)
+ Network.AWS.ElastiCache: rcnoProductDescription :: Lens' ReservedCacheNodesOffering (Maybe Text)
+ Network.AWS.ElastiCache: rcnoRecurringCharges :: Lens' ReservedCacheNodesOffering [RecurringCharge]
+ Network.AWS.ElastiCache: rcnoReservedCacheNodesOfferingId :: Lens' ReservedCacheNodesOffering (Maybe Text)
+ Network.AWS.ElastiCache: rcnoUsagePrice :: Lens' ReservedCacheNodesOffering (Maybe Double)
+ Network.AWS.ElastiCache: recurringCharge :: RecurringCharge
+ Network.AWS.ElastiCache: replicationGroup :: ReplicationGroup
+ Network.AWS.ElastiCache: replicationGroupAvailable :: Wait DescribeReplicationGroups
+ Network.AWS.ElastiCache: replicationGroupDeleted :: Wait DescribeReplicationGroups
+ Network.AWS.ElastiCache: replicationGroupPendingModifiedValues :: ReplicationGroupPendingModifiedValues
+ Network.AWS.ElastiCache: reservedCacheNode :: ReservedCacheNode
+ Network.AWS.ElastiCache: reservedCacheNodesOffering :: ReservedCacheNodesOffering
+ Network.AWS.ElastiCache: rgAutomaticFailover :: Lens' ReplicationGroup (Maybe AutomaticFailoverStatus)
+ Network.AWS.ElastiCache: rgDescription :: Lens' ReplicationGroup (Maybe Text)
+ Network.AWS.ElastiCache: rgMemberClusters :: Lens' ReplicationGroup [Text]
+ Network.AWS.ElastiCache: rgNodeGroups :: Lens' ReplicationGroup [NodeGroup]
+ Network.AWS.ElastiCache: rgPendingModifiedValues :: Lens' ReplicationGroup (Maybe ReplicationGroupPendingModifiedValues)
+ Network.AWS.ElastiCache: rgReplicationGroupId :: Lens' ReplicationGroup (Maybe Text)
+ Network.AWS.ElastiCache: rgSnapshottingClusterId :: Lens' ReplicationGroup (Maybe Text)
+ Network.AWS.ElastiCache: rgStatus :: Lens' ReplicationGroup (Maybe Text)
+ Network.AWS.ElastiCache: rgpmvAutomaticFailoverStatus :: Lens' ReplicationGroupPendingModifiedValues (Maybe PendingAutomaticFailoverStatus)
+ Network.AWS.ElastiCache: rgpmvPrimaryClusterId :: Lens' ReplicationGroupPendingModifiedValues (Maybe Text)
+ Network.AWS.ElastiCache: sAutoMinorVersionUpgrade :: Lens' Snapshot (Maybe Bool)
+ Network.AWS.ElastiCache: sCacheClusterCreateTime :: Lens' Snapshot (Maybe UTCTime)
+ Network.AWS.ElastiCache: sCacheClusterId :: Lens' Snapshot (Maybe Text)
+ Network.AWS.ElastiCache: sCacheNodeType :: Lens' Snapshot (Maybe Text)
+ Network.AWS.ElastiCache: sCacheParameterGroupName :: Lens' Snapshot (Maybe Text)
+ Network.AWS.ElastiCache: sCacheSubnetGroupName :: Lens' Snapshot (Maybe Text)
+ Network.AWS.ElastiCache: sEngine :: Lens' Snapshot (Maybe Text)
+ Network.AWS.ElastiCache: sEngineVersion :: Lens' Snapshot (Maybe Text)
+ Network.AWS.ElastiCache: sNodeSnapshots :: Lens' Snapshot [NodeSnapshot]
+ Network.AWS.ElastiCache: sNumCacheNodes :: Lens' Snapshot (Maybe Int)
+ Network.AWS.ElastiCache: sPort :: Lens' Snapshot (Maybe Int)
+ Network.AWS.ElastiCache: sPreferredAvailabilityZone :: Lens' Snapshot (Maybe Text)
+ Network.AWS.ElastiCache: sPreferredMaintenanceWindow :: Lens' Snapshot (Maybe Text)
+ Network.AWS.ElastiCache: sSnapshotName :: Lens' Snapshot (Maybe Text)
+ Network.AWS.ElastiCache: sSnapshotRetentionLimit :: Lens' Snapshot (Maybe Int)
+ Network.AWS.ElastiCache: sSnapshotSource :: Lens' Snapshot (Maybe Text)
+ Network.AWS.ElastiCache: sSnapshotStatus :: Lens' Snapshot (Maybe Text)
+ Network.AWS.ElastiCache: sSnapshotWindow :: Lens' Snapshot (Maybe Text)
+ Network.AWS.ElastiCache: sSubnetAvailabilityZone :: Lens' Subnet (Maybe AvailabilityZone)
+ Network.AWS.ElastiCache: sSubnetIdentifier :: Lens' Subnet (Maybe Text)
+ Network.AWS.ElastiCache: sTopicARN :: Lens' Snapshot (Maybe Text)
+ Network.AWS.ElastiCache: sVPCId :: Lens' Snapshot (Maybe Text)
+ Network.AWS.ElastiCache: securityGroupMembership :: SecurityGroupMembership
+ Network.AWS.ElastiCache: sgmSecurityGroupId :: Lens' SecurityGroupMembership (Maybe Text)
+ Network.AWS.ElastiCache: sgmStatus :: Lens' SecurityGroupMembership (Maybe Text)
+ Network.AWS.ElastiCache: snapshot :: Snapshot
+ Network.AWS.ElastiCache: subnet :: Subnet
+ Network.AWS.ElastiCache: tag :: Tag
+ Network.AWS.ElastiCache: tagKey :: Lens' Tag (Maybe Text)
+ Network.AWS.ElastiCache: tagListMessage :: TagListMessage
+ Network.AWS.ElastiCache: tagValue :: Lens' Tag (Maybe Text)
+ Network.AWS.ElastiCache: tlmTagList :: Lens' TagListMessage [Tag]
+ Network.AWS.ElastiCache.AddTagsToResource: data TagListMessage
+ Network.AWS.ElastiCache.AddTagsToResource: instance Constructor C1_0AddTagsToResource
+ Network.AWS.ElastiCache.AddTagsToResource: instance Data AddTagsToResource
+ Network.AWS.ElastiCache.AddTagsToResource: instance Datatype D1AddTagsToResource
+ Network.AWS.ElastiCache.AddTagsToResource: instance Generic AddTagsToResource
+ Network.AWS.ElastiCache.AddTagsToResource: instance Selector S1_0_0AddTagsToResource
+ Network.AWS.ElastiCache.AddTagsToResource: instance Selector S1_0_1AddTagsToResource
+ Network.AWS.ElastiCache.AddTagsToResource: instance Typeable AddTagsToResource
+ Network.AWS.ElastiCache.AddTagsToResource: tagListMessage :: TagListMessage
+ Network.AWS.ElastiCache.AddTagsToResource: tlmTagList :: Lens' TagListMessage [Tag]
+ Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress: acsgirsCacheSecurityGroup :: Lens' AuthorizeCacheSecurityGroupIngressResponse (Maybe CacheSecurityGroup)
+ Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress: acsgirsStatus :: Lens' AuthorizeCacheSecurityGroupIngressResponse Int
+ Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress: instance Constructor C1_0AuthorizeCacheSecurityGroupIngress
+ Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress: instance Constructor C1_0AuthorizeCacheSecurityGroupIngressResponse
+ Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress: instance Data AuthorizeCacheSecurityGroupIngress
+ Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress: instance Data AuthorizeCacheSecurityGroupIngressResponse
+ Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress: instance Datatype D1AuthorizeCacheSecurityGroupIngress
+ Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress: instance Datatype D1AuthorizeCacheSecurityGroupIngressResponse
+ Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress: instance Generic AuthorizeCacheSecurityGroupIngress
+ Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress: instance Generic AuthorizeCacheSecurityGroupIngressResponse
+ Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress: instance Selector S1_0_0AuthorizeCacheSecurityGroupIngress
+ Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress: instance Selector S1_0_0AuthorizeCacheSecurityGroupIngressResponse
+ Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress: instance Selector S1_0_1AuthorizeCacheSecurityGroupIngress
+ Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress: instance Selector S1_0_1AuthorizeCacheSecurityGroupIngressResponse
+ Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress: instance Selector S1_0_2AuthorizeCacheSecurityGroupIngress
+ Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress: instance Typeable AuthorizeCacheSecurityGroupIngress
+ Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress: instance Typeable AuthorizeCacheSecurityGroupIngressResponse
+ Network.AWS.ElastiCache.CopySnapshot: csrsSnapshot :: Lens' CopySnapshotResponse (Maybe Snapshot)
+ Network.AWS.ElastiCache.CopySnapshot: csrsStatus :: Lens' CopySnapshotResponse Int
+ Network.AWS.ElastiCache.CopySnapshot: instance Constructor C1_0CopySnapshot
+ Network.AWS.ElastiCache.CopySnapshot: instance Constructor C1_0CopySnapshotResponse
+ Network.AWS.ElastiCache.CopySnapshot: instance Data CopySnapshot
+ Network.AWS.ElastiCache.CopySnapshot: instance Data CopySnapshotResponse
+ Network.AWS.ElastiCache.CopySnapshot: instance Datatype D1CopySnapshot
+ Network.AWS.ElastiCache.CopySnapshot: instance Datatype D1CopySnapshotResponse
+ Network.AWS.ElastiCache.CopySnapshot: instance Generic CopySnapshot
+ Network.AWS.ElastiCache.CopySnapshot: instance Generic CopySnapshotResponse
+ Network.AWS.ElastiCache.CopySnapshot: instance Selector S1_0_0CopySnapshot
+ Network.AWS.ElastiCache.CopySnapshot: instance Selector S1_0_0CopySnapshotResponse
+ Network.AWS.ElastiCache.CopySnapshot: instance Selector S1_0_1CopySnapshot
+ Network.AWS.ElastiCache.CopySnapshot: instance Selector S1_0_1CopySnapshotResponse
+ Network.AWS.ElastiCache.CopySnapshot: instance Typeable CopySnapshot
+ Network.AWS.ElastiCache.CopySnapshot: instance Typeable CopySnapshotResponse
+ Network.AWS.ElastiCache.CreateCacheCluster: cccNotificationTopicARN :: Lens' CreateCacheCluster (Maybe Text)
+ Network.AWS.ElastiCache.CreateCacheCluster: cccSnapshotARNs :: Lens' CreateCacheCluster [Text]
+ Network.AWS.ElastiCache.CreateCacheCluster: cccrsCacheCluster :: Lens' CreateCacheClusterResponse (Maybe CacheCluster)
+ Network.AWS.ElastiCache.CreateCacheCluster: cccrsStatus :: Lens' CreateCacheClusterResponse Int
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Constructor C1_0CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Constructor C1_0CreateCacheClusterResponse
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Data CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Data CreateCacheClusterResponse
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Datatype D1CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Datatype D1CreateCacheClusterResponse
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Generic CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Generic CreateCacheClusterResponse
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_0CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_0CreateCacheClusterResponse
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_10CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_11CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_12CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_13CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_14CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_15CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_16CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_17CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_18CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_19CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_1CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_1CreateCacheClusterResponse
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_20CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_21CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_2CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_3CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_4CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_5CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_6CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_7CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_8CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Selector S1_0_9CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Typeable CreateCacheCluster
+ Network.AWS.ElastiCache.CreateCacheCluster: instance Typeable CreateCacheClusterResponse
+ Network.AWS.ElastiCache.CreateCacheParameterGroup: ccpgrsCacheParameterGroup :: Lens' CreateCacheParameterGroupResponse (Maybe CacheParameterGroup)
+ Network.AWS.ElastiCache.CreateCacheParameterGroup: ccpgrsStatus :: Lens' CreateCacheParameterGroupResponse Int
+ Network.AWS.ElastiCache.CreateCacheParameterGroup: instance Constructor C1_0CreateCacheParameterGroup
+ Network.AWS.ElastiCache.CreateCacheParameterGroup: instance Constructor C1_0CreateCacheParameterGroupResponse
+ Network.AWS.ElastiCache.CreateCacheParameterGroup: instance Data CreateCacheParameterGroup
+ Network.AWS.ElastiCache.CreateCacheParameterGroup: instance Data CreateCacheParameterGroupResponse
+ Network.AWS.ElastiCache.CreateCacheParameterGroup: instance Datatype D1CreateCacheParameterGroup
+ Network.AWS.ElastiCache.CreateCacheParameterGroup: instance Datatype D1CreateCacheParameterGroupResponse
+ Network.AWS.ElastiCache.CreateCacheParameterGroup: instance Generic CreateCacheParameterGroup
+ Network.AWS.ElastiCache.CreateCacheParameterGroup: instance Generic CreateCacheParameterGroupResponse
+ Network.AWS.ElastiCache.CreateCacheParameterGroup: instance Selector S1_0_0CreateCacheParameterGroup
+ Network.AWS.ElastiCache.CreateCacheParameterGroup: instance Selector S1_0_0CreateCacheParameterGroupResponse
+ Network.AWS.ElastiCache.CreateCacheParameterGroup: instance Selector S1_0_1CreateCacheParameterGroup
+ Network.AWS.ElastiCache.CreateCacheParameterGroup: instance Selector S1_0_1CreateCacheParameterGroupResponse
+ Network.AWS.ElastiCache.CreateCacheParameterGroup: instance Selector S1_0_2CreateCacheParameterGroup
+ Network.AWS.ElastiCache.CreateCacheParameterGroup: instance Typeable CreateCacheParameterGroup
+ Network.AWS.ElastiCache.CreateCacheParameterGroup: instance Typeable CreateCacheParameterGroupResponse
+ Network.AWS.ElastiCache.CreateCacheSecurityGroup: ccsgrsCacheSecurityGroup :: Lens' CreateCacheSecurityGroupResponse (Maybe CacheSecurityGroup)
+ Network.AWS.ElastiCache.CreateCacheSecurityGroup: ccsgrsStatus :: Lens' CreateCacheSecurityGroupResponse Int
+ Network.AWS.ElastiCache.CreateCacheSecurityGroup: instance Constructor C1_0CreateCacheSecurityGroup
+ Network.AWS.ElastiCache.CreateCacheSecurityGroup: instance Constructor C1_0CreateCacheSecurityGroupResponse
+ Network.AWS.ElastiCache.CreateCacheSecurityGroup: instance Data CreateCacheSecurityGroup
+ Network.AWS.ElastiCache.CreateCacheSecurityGroup: instance Data CreateCacheSecurityGroupResponse
+ Network.AWS.ElastiCache.CreateCacheSecurityGroup: instance Datatype D1CreateCacheSecurityGroup
+ Network.AWS.ElastiCache.CreateCacheSecurityGroup: instance Datatype D1CreateCacheSecurityGroupResponse
+ Network.AWS.ElastiCache.CreateCacheSecurityGroup: instance Generic CreateCacheSecurityGroup
+ Network.AWS.ElastiCache.CreateCacheSecurityGroup: instance Generic CreateCacheSecurityGroupResponse
+ Network.AWS.ElastiCache.CreateCacheSecurityGroup: instance Selector S1_0_0CreateCacheSecurityGroup
+ Network.AWS.ElastiCache.CreateCacheSecurityGroup: instance Selector S1_0_0CreateCacheSecurityGroupResponse
+ Network.AWS.ElastiCache.CreateCacheSecurityGroup: instance Selector S1_0_1CreateCacheSecurityGroup
+ Network.AWS.ElastiCache.CreateCacheSecurityGroup: instance Selector S1_0_1CreateCacheSecurityGroupResponse
+ Network.AWS.ElastiCache.CreateCacheSecurityGroup: instance Typeable CreateCacheSecurityGroup
+ Network.AWS.ElastiCache.CreateCacheSecurityGroup: instance Typeable CreateCacheSecurityGroupResponse
+ Network.AWS.ElastiCache.CreateCacheSubnetGroup: crsCacheSubnetGroup :: Lens' CreateCacheSubnetGroupResponse (Maybe CacheSubnetGroup)
+ Network.AWS.ElastiCache.CreateCacheSubnetGroup: crsStatus :: Lens' CreateCacheSubnetGroupResponse Int
+ Network.AWS.ElastiCache.CreateCacheSubnetGroup: instance Constructor C1_0CreateCacheSubnetGroup
+ Network.AWS.ElastiCache.CreateCacheSubnetGroup: instance Constructor C1_0CreateCacheSubnetGroupResponse
+ Network.AWS.ElastiCache.CreateCacheSubnetGroup: instance Data CreateCacheSubnetGroup
+ Network.AWS.ElastiCache.CreateCacheSubnetGroup: instance Data CreateCacheSubnetGroupResponse
+ Network.AWS.ElastiCache.CreateCacheSubnetGroup: instance Datatype D1CreateCacheSubnetGroup
+ Network.AWS.ElastiCache.CreateCacheSubnetGroup: instance Datatype D1CreateCacheSubnetGroupResponse
+ Network.AWS.ElastiCache.CreateCacheSubnetGroup: instance Generic CreateCacheSubnetGroup
+ Network.AWS.ElastiCache.CreateCacheSubnetGroup: instance Generic CreateCacheSubnetGroupResponse
+ Network.AWS.ElastiCache.CreateCacheSubnetGroup: instance Selector S1_0_0CreateCacheSubnetGroup
+ Network.AWS.ElastiCache.CreateCacheSubnetGroup: instance Selector S1_0_0CreateCacheSubnetGroupResponse
+ Network.AWS.ElastiCache.CreateCacheSubnetGroup: instance Selector S1_0_1CreateCacheSubnetGroup
+ Network.AWS.ElastiCache.CreateCacheSubnetGroup: instance Selector S1_0_1CreateCacheSubnetGroupResponse
+ Network.AWS.ElastiCache.CreateCacheSubnetGroup: instance Selector S1_0_2CreateCacheSubnetGroup
+ Network.AWS.ElastiCache.CreateCacheSubnetGroup: instance Typeable CreateCacheSubnetGroup
+ Network.AWS.ElastiCache.CreateCacheSubnetGroup: instance Typeable CreateCacheSubnetGroupResponse
+ Network.AWS.ElastiCache.CreateReplicationGroup: crgNotificationTopicARN :: Lens' CreateReplicationGroup (Maybe Text)
+ Network.AWS.ElastiCache.CreateReplicationGroup: crgSnapshotARNs :: Lens' CreateReplicationGroup [Text]
+ Network.AWS.ElastiCache.CreateReplicationGroup: crgrsReplicationGroup :: Lens' CreateReplicationGroupResponse (Maybe ReplicationGroup)
+ Network.AWS.ElastiCache.CreateReplicationGroup: crgrsStatus :: Lens' CreateReplicationGroupResponse Int
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Constructor C1_0CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Constructor C1_0CreateReplicationGroupResponse
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Data CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Data CreateReplicationGroupResponse
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Datatype D1CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Datatype D1CreateReplicationGroupResponse
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Generic CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Generic CreateReplicationGroupResponse
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_0CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_0CreateReplicationGroupResponse
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_10CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_11CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_12CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_13CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_14CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_15CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_16CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_17CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_18CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_19CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_1CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_1CreateReplicationGroupResponse
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_20CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_21CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_2CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_3CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_4CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_5CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_6CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_7CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_8CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Selector S1_0_9CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Typeable CreateReplicationGroup
+ Network.AWS.ElastiCache.CreateReplicationGroup: instance Typeable CreateReplicationGroupResponse
+ Network.AWS.ElastiCache.CreateSnapshot: crersSnapshot :: Lens' CreateSnapshotResponse (Maybe Snapshot)
+ Network.AWS.ElastiCache.CreateSnapshot: crersStatus :: Lens' CreateSnapshotResponse Int
+ Network.AWS.ElastiCache.CreateSnapshot: instance Constructor C1_0CreateSnapshot
+ Network.AWS.ElastiCache.CreateSnapshot: instance Constructor C1_0CreateSnapshotResponse
+ Network.AWS.ElastiCache.CreateSnapshot: instance Data CreateSnapshot
+ Network.AWS.ElastiCache.CreateSnapshot: instance Data CreateSnapshotResponse
+ Network.AWS.ElastiCache.CreateSnapshot: instance Datatype D1CreateSnapshot
+ Network.AWS.ElastiCache.CreateSnapshot: instance Datatype D1CreateSnapshotResponse
+ Network.AWS.ElastiCache.CreateSnapshot: instance Generic CreateSnapshot
+ Network.AWS.ElastiCache.CreateSnapshot: instance Generic CreateSnapshotResponse
+ Network.AWS.ElastiCache.CreateSnapshot: instance Selector S1_0_0CreateSnapshot
+ Network.AWS.ElastiCache.CreateSnapshot: instance Selector S1_0_0CreateSnapshotResponse
+ Network.AWS.ElastiCache.CreateSnapshot: instance Selector S1_0_1CreateSnapshot
+ Network.AWS.ElastiCache.CreateSnapshot: instance Selector S1_0_1CreateSnapshotResponse
+ Network.AWS.ElastiCache.CreateSnapshot: instance Typeable CreateSnapshot
+ Network.AWS.ElastiCache.CreateSnapshot: instance Typeable CreateSnapshotResponse
+ Network.AWS.ElastiCache.DeleteCacheCluster: dccrsCacheCluster :: Lens' DeleteCacheClusterResponse (Maybe CacheCluster)
+ Network.AWS.ElastiCache.DeleteCacheCluster: dccrsStatus :: Lens' DeleteCacheClusterResponse Int
+ Network.AWS.ElastiCache.DeleteCacheCluster: instance Constructor C1_0DeleteCacheCluster
+ Network.AWS.ElastiCache.DeleteCacheCluster: instance Constructor C1_0DeleteCacheClusterResponse
+ Network.AWS.ElastiCache.DeleteCacheCluster: instance Data DeleteCacheCluster
+ Network.AWS.ElastiCache.DeleteCacheCluster: instance Data DeleteCacheClusterResponse
+ Network.AWS.ElastiCache.DeleteCacheCluster: instance Datatype D1DeleteCacheCluster
+ Network.AWS.ElastiCache.DeleteCacheCluster: instance Datatype D1DeleteCacheClusterResponse
+ Network.AWS.ElastiCache.DeleteCacheCluster: instance Generic DeleteCacheCluster
+ Network.AWS.ElastiCache.DeleteCacheCluster: instance Generic DeleteCacheClusterResponse
+ Network.AWS.ElastiCache.DeleteCacheCluster: instance Selector S1_0_0DeleteCacheCluster
+ Network.AWS.ElastiCache.DeleteCacheCluster: instance Selector S1_0_0DeleteCacheClusterResponse
+ Network.AWS.ElastiCache.DeleteCacheCluster: instance Selector S1_0_1DeleteCacheCluster
+ Network.AWS.ElastiCache.DeleteCacheCluster: instance Selector S1_0_1DeleteCacheClusterResponse
+ Network.AWS.ElastiCache.DeleteCacheCluster: instance Typeable DeleteCacheCluster
+ Network.AWS.ElastiCache.DeleteCacheCluster: instance Typeable DeleteCacheClusterResponse
+ Network.AWS.ElastiCache.DeleteCacheParameterGroup: dCacheParameterGroupName :: Lens' DeleteCacheParameterGroup Text
+ Network.AWS.ElastiCache.DeleteCacheParameterGroup: instance Constructor C1_0DeleteCacheParameterGroup
+ Network.AWS.ElastiCache.DeleteCacheParameterGroup: instance Data DeleteCacheParameterGroup
+ Network.AWS.ElastiCache.DeleteCacheParameterGroup: instance Data DeleteCacheParameterGroupResponse
+ Network.AWS.ElastiCache.DeleteCacheParameterGroup: instance Datatype D1DeleteCacheParameterGroup
+ Network.AWS.ElastiCache.DeleteCacheParameterGroup: instance Generic DeleteCacheParameterGroup
+ Network.AWS.ElastiCache.DeleteCacheParameterGroup: instance Selector S1_0_0DeleteCacheParameterGroup
+ Network.AWS.ElastiCache.DeleteCacheParameterGroup: instance Typeable DeleteCacheParameterGroup
+ Network.AWS.ElastiCache.DeleteCacheParameterGroup: instance Typeable DeleteCacheParameterGroupResponse
+ Network.AWS.ElastiCache.DeleteCacheSecurityGroup: instance Constructor C1_0DeleteCacheSecurityGroup
+ Network.AWS.ElastiCache.DeleteCacheSecurityGroup: instance Data DeleteCacheSecurityGroup
+ Network.AWS.ElastiCache.DeleteCacheSecurityGroup: instance Data DeleteCacheSecurityGroupResponse
+ Network.AWS.ElastiCache.DeleteCacheSecurityGroup: instance Datatype D1DeleteCacheSecurityGroup
+ Network.AWS.ElastiCache.DeleteCacheSecurityGroup: instance Generic DeleteCacheSecurityGroup
+ Network.AWS.ElastiCache.DeleteCacheSecurityGroup: instance Selector S1_0_0DeleteCacheSecurityGroup
+ Network.AWS.ElastiCache.DeleteCacheSecurityGroup: instance Typeable DeleteCacheSecurityGroup
+ Network.AWS.ElastiCache.DeleteCacheSecurityGroup: instance Typeable DeleteCacheSecurityGroupResponse
+ Network.AWS.ElastiCache.DeleteCacheSubnetGroup: dCacheSubnetGroupName :: Lens' DeleteCacheSubnetGroup Text
+ Network.AWS.ElastiCache.DeleteCacheSubnetGroup: instance Constructor C1_0DeleteCacheSubnetGroup
+ Network.AWS.ElastiCache.DeleteCacheSubnetGroup: instance Data DeleteCacheSubnetGroup
+ Network.AWS.ElastiCache.DeleteCacheSubnetGroup: instance Data DeleteCacheSubnetGroupResponse
+ Network.AWS.ElastiCache.DeleteCacheSubnetGroup: instance Datatype D1DeleteCacheSubnetGroup
+ Network.AWS.ElastiCache.DeleteCacheSubnetGroup: instance Generic DeleteCacheSubnetGroup
+ Network.AWS.ElastiCache.DeleteCacheSubnetGroup: instance Selector S1_0_0DeleteCacheSubnetGroup
+ Network.AWS.ElastiCache.DeleteCacheSubnetGroup: instance Typeable DeleteCacheSubnetGroup
+ Network.AWS.ElastiCache.DeleteCacheSubnetGroup: instance Typeable DeleteCacheSubnetGroupResponse
+ Network.AWS.ElastiCache.DeleteReplicationGroup: delrsReplicationGroup :: Lens' DeleteReplicationGroupResponse (Maybe ReplicationGroup)
+ Network.AWS.ElastiCache.DeleteReplicationGroup: delrsStatus :: Lens' DeleteReplicationGroupResponse Int
+ Network.AWS.ElastiCache.DeleteReplicationGroup: instance Constructor C1_0DeleteReplicationGroup
+ Network.AWS.ElastiCache.DeleteReplicationGroup: instance Constructor C1_0DeleteReplicationGroupResponse
+ Network.AWS.ElastiCache.DeleteReplicationGroup: instance Data DeleteReplicationGroup
+ Network.AWS.ElastiCache.DeleteReplicationGroup: instance Data DeleteReplicationGroupResponse
+ Network.AWS.ElastiCache.DeleteReplicationGroup: instance Datatype D1DeleteReplicationGroup
+ Network.AWS.ElastiCache.DeleteReplicationGroup: instance Datatype D1DeleteReplicationGroupResponse
+ Network.AWS.ElastiCache.DeleteReplicationGroup: instance Generic DeleteReplicationGroup
+ Network.AWS.ElastiCache.DeleteReplicationGroup: instance Generic DeleteReplicationGroupResponse
+ Network.AWS.ElastiCache.DeleteReplicationGroup: instance Selector S1_0_0DeleteReplicationGroup
+ Network.AWS.ElastiCache.DeleteReplicationGroup: instance Selector S1_0_0DeleteReplicationGroupResponse
+ Network.AWS.ElastiCache.DeleteReplicationGroup: instance Selector S1_0_1DeleteReplicationGroup
+ Network.AWS.ElastiCache.DeleteReplicationGroup: instance Selector S1_0_1DeleteReplicationGroupResponse
+ Network.AWS.ElastiCache.DeleteReplicationGroup: instance Selector S1_0_2DeleteReplicationGroup
+ Network.AWS.ElastiCache.DeleteReplicationGroup: instance Typeable DeleteReplicationGroup
+ Network.AWS.ElastiCache.DeleteReplicationGroup: instance Typeable DeleteReplicationGroupResponse
+ Network.AWS.ElastiCache.DeleteSnapshot: dSnapshotName :: Lens' DeleteSnapshot Text
+ Network.AWS.ElastiCache.DeleteSnapshot: dsrsSnapshot :: Lens' DeleteSnapshotResponse (Maybe Snapshot)
+ Network.AWS.ElastiCache.DeleteSnapshot: dsrsStatus :: Lens' DeleteSnapshotResponse Int
+ Network.AWS.ElastiCache.DeleteSnapshot: instance Constructor C1_0DeleteSnapshot
+ Network.AWS.ElastiCache.DeleteSnapshot: instance Constructor C1_0DeleteSnapshotResponse
+ Network.AWS.ElastiCache.DeleteSnapshot: instance Data DeleteSnapshot
+ Network.AWS.ElastiCache.DeleteSnapshot: instance Data DeleteSnapshotResponse
+ Network.AWS.ElastiCache.DeleteSnapshot: instance Datatype D1DeleteSnapshot
+ Network.AWS.ElastiCache.DeleteSnapshot: instance Datatype D1DeleteSnapshotResponse
+ Network.AWS.ElastiCache.DeleteSnapshot: instance Generic DeleteSnapshot
+ Network.AWS.ElastiCache.DeleteSnapshot: instance Generic DeleteSnapshotResponse
+ Network.AWS.ElastiCache.DeleteSnapshot: instance Selector S1_0_0DeleteSnapshot
+ Network.AWS.ElastiCache.DeleteSnapshot: instance Selector S1_0_0DeleteSnapshotResponse
+ Network.AWS.ElastiCache.DeleteSnapshot: instance Selector S1_0_1DeleteSnapshotResponse
+ Network.AWS.ElastiCache.DeleteSnapshot: instance Typeable DeleteSnapshot
+ Network.AWS.ElastiCache.DeleteSnapshot: instance Typeable DeleteSnapshotResponse
+ Network.AWS.ElastiCache.DescribeCacheClusters: dCacheClusterId :: Lens' DescribeCacheClusters (Maybe Text)
+ Network.AWS.ElastiCache.DescribeCacheClusters: dMarker :: Lens' DescribeCacheClusters (Maybe Text)
+ Network.AWS.ElastiCache.DescribeCacheClusters: dMaxRecords :: Lens' DescribeCacheClusters (Maybe Int)
+ Network.AWS.ElastiCache.DescribeCacheClusters: dShowCacheNodeInfo :: Lens' DescribeCacheClusters (Maybe Bool)
+ Network.AWS.ElastiCache.DescribeCacheClusters: drsCacheClusters :: Lens' DescribeCacheClustersResponse [CacheCluster]
+ Network.AWS.ElastiCache.DescribeCacheClusters: drsMarker :: Lens' DescribeCacheClustersResponse (Maybe Text)
+ Network.AWS.ElastiCache.DescribeCacheClusters: drsStatus :: Lens' DescribeCacheClustersResponse Int
+ Network.AWS.ElastiCache.DescribeCacheClusters: instance Constructor C1_0DescribeCacheClusters
+ Network.AWS.ElastiCache.DescribeCacheClusters: instance Constructor C1_0DescribeCacheClustersResponse
+ Network.AWS.ElastiCache.DescribeCacheClusters: instance Data DescribeCacheClusters
+ Network.AWS.ElastiCache.DescribeCacheClusters: instance Data DescribeCacheClustersResponse
+ Network.AWS.ElastiCache.DescribeCacheClusters: instance Datatype D1DescribeCacheClusters
+ Network.AWS.ElastiCache.DescribeCacheClusters: instance Datatype D1DescribeCacheClustersResponse
+ Network.AWS.ElastiCache.DescribeCacheClusters: instance Generic DescribeCacheClusters
+ Network.AWS.ElastiCache.DescribeCacheClusters: instance Generic DescribeCacheClustersResponse
+ Network.AWS.ElastiCache.DescribeCacheClusters: instance Selector S1_0_0DescribeCacheClusters
+ Network.AWS.ElastiCache.DescribeCacheClusters: instance Selector S1_0_0DescribeCacheClustersResponse
+ Network.AWS.ElastiCache.DescribeCacheClusters: instance Selector S1_0_1DescribeCacheClusters
+ Network.AWS.ElastiCache.DescribeCacheClusters: instance Selector S1_0_1DescribeCacheClustersResponse
+ Network.AWS.ElastiCache.DescribeCacheClusters: instance Selector S1_0_2DescribeCacheClusters
+ Network.AWS.ElastiCache.DescribeCacheClusters: instance Selector S1_0_2DescribeCacheClustersResponse
+ Network.AWS.ElastiCache.DescribeCacheClusters: instance Selector S1_0_3DescribeCacheClusters
+ Network.AWS.ElastiCache.DescribeCacheClusters: instance Typeable DescribeCacheClusters
+ Network.AWS.ElastiCache.DescribeCacheClusters: instance Typeable DescribeCacheClustersResponse
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: dcevrsCacheEngineVersions :: Lens' DescribeCacheEngineVersionsResponse [CacheEngineVersion]
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: dcevrsMarker :: Lens' DescribeCacheEngineVersionsResponse (Maybe Text)
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: dcevrsStatus :: Lens' DescribeCacheEngineVersionsResponse Int
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: instance Constructor C1_0DescribeCacheEngineVersions
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: instance Constructor C1_0DescribeCacheEngineVersionsResponse
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: instance Data DescribeCacheEngineVersions
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: instance Data DescribeCacheEngineVersionsResponse
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: instance Datatype D1DescribeCacheEngineVersions
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: instance Datatype D1DescribeCacheEngineVersionsResponse
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: instance Generic DescribeCacheEngineVersions
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: instance Generic DescribeCacheEngineVersionsResponse
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: instance Selector S1_0_0DescribeCacheEngineVersions
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: instance Selector S1_0_0DescribeCacheEngineVersionsResponse
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: instance Selector S1_0_1DescribeCacheEngineVersions
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: instance Selector S1_0_1DescribeCacheEngineVersionsResponse
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: instance Selector S1_0_2DescribeCacheEngineVersions
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: instance Selector S1_0_2DescribeCacheEngineVersionsResponse
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: instance Selector S1_0_3DescribeCacheEngineVersions
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: instance Selector S1_0_4DescribeCacheEngineVersions
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: instance Selector S1_0_5DescribeCacheEngineVersions
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: instance Typeable DescribeCacheEngineVersions
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: instance Typeable DescribeCacheEngineVersionsResponse
+ Network.AWS.ElastiCache.DescribeCacheParameterGroups: dcpgrsCacheParameterGroups :: Lens' DescribeCacheParameterGroupsResponse [CacheParameterGroup]
+ Network.AWS.ElastiCache.DescribeCacheParameterGroups: dcpgrsMarker :: Lens' DescribeCacheParameterGroupsResponse (Maybe Text)
+ Network.AWS.ElastiCache.DescribeCacheParameterGroups: dcpgrsStatus :: Lens' DescribeCacheParameterGroupsResponse Int
+ Network.AWS.ElastiCache.DescribeCacheParameterGroups: instance Constructor C1_0DescribeCacheParameterGroups
+ Network.AWS.ElastiCache.DescribeCacheParameterGroups: instance Constructor C1_0DescribeCacheParameterGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheParameterGroups: instance Data DescribeCacheParameterGroups
+ Network.AWS.ElastiCache.DescribeCacheParameterGroups: instance Data DescribeCacheParameterGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheParameterGroups: instance Datatype D1DescribeCacheParameterGroups
+ Network.AWS.ElastiCache.DescribeCacheParameterGroups: instance Datatype D1DescribeCacheParameterGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheParameterGroups: instance Generic DescribeCacheParameterGroups
+ Network.AWS.ElastiCache.DescribeCacheParameterGroups: instance Generic DescribeCacheParameterGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheParameterGroups: instance Selector S1_0_0DescribeCacheParameterGroups
+ Network.AWS.ElastiCache.DescribeCacheParameterGroups: instance Selector S1_0_0DescribeCacheParameterGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheParameterGroups: instance Selector S1_0_1DescribeCacheParameterGroups
+ Network.AWS.ElastiCache.DescribeCacheParameterGroups: instance Selector S1_0_1DescribeCacheParameterGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheParameterGroups: instance Selector S1_0_2DescribeCacheParameterGroups
+ Network.AWS.ElastiCache.DescribeCacheParameterGroups: instance Selector S1_0_2DescribeCacheParameterGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheParameterGroups: instance Typeable DescribeCacheParameterGroups
+ Network.AWS.ElastiCache.DescribeCacheParameterGroups: instance Typeable DescribeCacheParameterGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheParameters: dcprsCacheNodeTypeSpecificParameters :: Lens' DescribeCacheParametersResponse [CacheNodeTypeSpecificParameter]
+ Network.AWS.ElastiCache.DescribeCacheParameters: dcprsMarker :: Lens' DescribeCacheParametersResponse (Maybe Text)
+ Network.AWS.ElastiCache.DescribeCacheParameters: dcprsParameters :: Lens' DescribeCacheParametersResponse [Parameter]
+ Network.AWS.ElastiCache.DescribeCacheParameters: dcprsStatus :: Lens' DescribeCacheParametersResponse Int
+ Network.AWS.ElastiCache.DescribeCacheParameters: instance Constructor C1_0DescribeCacheParameters
+ Network.AWS.ElastiCache.DescribeCacheParameters: instance Constructor C1_0DescribeCacheParametersResponse
+ Network.AWS.ElastiCache.DescribeCacheParameters: instance Data DescribeCacheParameters
+ Network.AWS.ElastiCache.DescribeCacheParameters: instance Data DescribeCacheParametersResponse
+ Network.AWS.ElastiCache.DescribeCacheParameters: instance Datatype D1DescribeCacheParameters
+ Network.AWS.ElastiCache.DescribeCacheParameters: instance Datatype D1DescribeCacheParametersResponse
+ Network.AWS.ElastiCache.DescribeCacheParameters: instance Generic DescribeCacheParameters
+ Network.AWS.ElastiCache.DescribeCacheParameters: instance Generic DescribeCacheParametersResponse
+ Network.AWS.ElastiCache.DescribeCacheParameters: instance Selector S1_0_0DescribeCacheParameters
+ Network.AWS.ElastiCache.DescribeCacheParameters: instance Selector S1_0_0DescribeCacheParametersResponse
+ Network.AWS.ElastiCache.DescribeCacheParameters: instance Selector S1_0_1DescribeCacheParameters
+ Network.AWS.ElastiCache.DescribeCacheParameters: instance Selector S1_0_1DescribeCacheParametersResponse
+ Network.AWS.ElastiCache.DescribeCacheParameters: instance Selector S1_0_2DescribeCacheParameters
+ Network.AWS.ElastiCache.DescribeCacheParameters: instance Selector S1_0_2DescribeCacheParametersResponse
+ Network.AWS.ElastiCache.DescribeCacheParameters: instance Selector S1_0_3DescribeCacheParameters
+ Network.AWS.ElastiCache.DescribeCacheParameters: instance Selector S1_0_3DescribeCacheParametersResponse
+ Network.AWS.ElastiCache.DescribeCacheParameters: instance Typeable DescribeCacheParameters
+ Network.AWS.ElastiCache.DescribeCacheParameters: instance Typeable DescribeCacheParametersResponse
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: dcsgsCacheSecurityGroupName :: Lens' DescribeCacheSecurityGroups (Maybe Text)
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: dcsgsMarker :: Lens' DescribeCacheSecurityGroups (Maybe Text)
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: dcsgsMaxRecords :: Lens' DescribeCacheSecurityGroups (Maybe Int)
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: dcsgsrsCacheSecurityGroups :: Lens' DescribeCacheSecurityGroupsResponse [CacheSecurityGroup]
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: dcsgsrsMarker :: Lens' DescribeCacheSecurityGroupsResponse (Maybe Text)
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: dcsgsrsStatus :: Lens' DescribeCacheSecurityGroupsResponse Int
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: instance Constructor C1_0DescribeCacheSecurityGroups
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: instance Constructor C1_0DescribeCacheSecurityGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: instance Data DescribeCacheSecurityGroups
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: instance Data DescribeCacheSecurityGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: instance Datatype D1DescribeCacheSecurityGroups
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: instance Datatype D1DescribeCacheSecurityGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: instance Generic DescribeCacheSecurityGroups
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: instance Generic DescribeCacheSecurityGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: instance Selector S1_0_0DescribeCacheSecurityGroups
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: instance Selector S1_0_0DescribeCacheSecurityGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: instance Selector S1_0_1DescribeCacheSecurityGroups
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: instance Selector S1_0_1DescribeCacheSecurityGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: instance Selector S1_0_2DescribeCacheSecurityGroups
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: instance Selector S1_0_2DescribeCacheSecurityGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: instance Typeable DescribeCacheSecurityGroups
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: instance Typeable DescribeCacheSecurityGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheSubnetGroups: dcsgrsCacheSubnetGroups :: Lens' DescribeCacheSubnetGroupsResponse [CacheSubnetGroup]
+ Network.AWS.ElastiCache.DescribeCacheSubnetGroups: dcsgrsMarker :: Lens' DescribeCacheSubnetGroupsResponse (Maybe Text)
+ Network.AWS.ElastiCache.DescribeCacheSubnetGroups: dcsgrsStatus :: Lens' DescribeCacheSubnetGroupsResponse Int
+ Network.AWS.ElastiCache.DescribeCacheSubnetGroups: instance Constructor C1_0DescribeCacheSubnetGroups
+ Network.AWS.ElastiCache.DescribeCacheSubnetGroups: instance Constructor C1_0DescribeCacheSubnetGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheSubnetGroups: instance Data DescribeCacheSubnetGroups
+ Network.AWS.ElastiCache.DescribeCacheSubnetGroups: instance Data DescribeCacheSubnetGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheSubnetGroups: instance Datatype D1DescribeCacheSubnetGroups
+ Network.AWS.ElastiCache.DescribeCacheSubnetGroups: instance Datatype D1DescribeCacheSubnetGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheSubnetGroups: instance Generic DescribeCacheSubnetGroups
+ Network.AWS.ElastiCache.DescribeCacheSubnetGroups: instance Generic DescribeCacheSubnetGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheSubnetGroups: instance Selector S1_0_0DescribeCacheSubnetGroups
+ Network.AWS.ElastiCache.DescribeCacheSubnetGroups: instance Selector S1_0_0DescribeCacheSubnetGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheSubnetGroups: instance Selector S1_0_1DescribeCacheSubnetGroups
+ Network.AWS.ElastiCache.DescribeCacheSubnetGroups: instance Selector S1_0_1DescribeCacheSubnetGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheSubnetGroups: instance Selector S1_0_2DescribeCacheSubnetGroups
+ Network.AWS.ElastiCache.DescribeCacheSubnetGroups: instance Selector S1_0_2DescribeCacheSubnetGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheSubnetGroups: instance Typeable DescribeCacheSubnetGroups
+ Network.AWS.ElastiCache.DescribeCacheSubnetGroups: instance Typeable DescribeCacheSubnetGroupsResponse
+ Network.AWS.ElastiCache.DescribeEngineDefaultParameters: dedprsEngineDefaults :: Lens' DescribeEngineDefaultParametersResponse EngineDefaults
+ Network.AWS.ElastiCache.DescribeEngineDefaultParameters: dedprsStatus :: Lens' DescribeEngineDefaultParametersResponse Int
+ Network.AWS.ElastiCache.DescribeEngineDefaultParameters: instance Constructor C1_0DescribeEngineDefaultParameters
+ Network.AWS.ElastiCache.DescribeEngineDefaultParameters: instance Constructor C1_0DescribeEngineDefaultParametersResponse
+ Network.AWS.ElastiCache.DescribeEngineDefaultParameters: instance Data DescribeEngineDefaultParameters
+ Network.AWS.ElastiCache.DescribeEngineDefaultParameters: instance Data DescribeEngineDefaultParametersResponse
+ Network.AWS.ElastiCache.DescribeEngineDefaultParameters: instance Datatype D1DescribeEngineDefaultParameters
+ Network.AWS.ElastiCache.DescribeEngineDefaultParameters: instance Datatype D1DescribeEngineDefaultParametersResponse
+ Network.AWS.ElastiCache.DescribeEngineDefaultParameters: instance Generic DescribeEngineDefaultParameters
+ Network.AWS.ElastiCache.DescribeEngineDefaultParameters: instance Generic DescribeEngineDefaultParametersResponse
+ Network.AWS.ElastiCache.DescribeEngineDefaultParameters: instance Selector S1_0_0DescribeEngineDefaultParameters
+ Network.AWS.ElastiCache.DescribeEngineDefaultParameters: instance Selector S1_0_0DescribeEngineDefaultParametersResponse
+ Network.AWS.ElastiCache.DescribeEngineDefaultParameters: instance Selector S1_0_1DescribeEngineDefaultParameters
+ Network.AWS.ElastiCache.DescribeEngineDefaultParameters: instance Selector S1_0_1DescribeEngineDefaultParametersResponse
+ Network.AWS.ElastiCache.DescribeEngineDefaultParameters: instance Selector S1_0_2DescribeEngineDefaultParameters
+ Network.AWS.ElastiCache.DescribeEngineDefaultParameters: instance Typeable DescribeEngineDefaultParameters
+ Network.AWS.ElastiCache.DescribeEngineDefaultParameters: instance Typeable DescribeEngineDefaultParametersResponse
+ Network.AWS.ElastiCache.DescribeEvents: dersEvents :: Lens' DescribeEventsResponse [Event]
+ Network.AWS.ElastiCache.DescribeEvents: dersMarker :: Lens' DescribeEventsResponse (Maybe Text)
+ Network.AWS.ElastiCache.DescribeEvents: dersStatus :: Lens' DescribeEventsResponse Int
+ Network.AWS.ElastiCache.DescribeEvents: instance Constructor C1_0DescribeEvents
+ Network.AWS.ElastiCache.DescribeEvents: instance Constructor C1_0DescribeEventsResponse
+ Network.AWS.ElastiCache.DescribeEvents: instance Data DescribeEvents
+ Network.AWS.ElastiCache.DescribeEvents: instance Data DescribeEventsResponse
+ Network.AWS.ElastiCache.DescribeEvents: instance Datatype D1DescribeEvents
+ Network.AWS.ElastiCache.DescribeEvents: instance Datatype D1DescribeEventsResponse
+ Network.AWS.ElastiCache.DescribeEvents: instance Generic DescribeEvents
+ Network.AWS.ElastiCache.DescribeEvents: instance Generic DescribeEventsResponse
+ Network.AWS.ElastiCache.DescribeEvents: instance Selector S1_0_0DescribeEvents
+ Network.AWS.ElastiCache.DescribeEvents: instance Selector S1_0_0DescribeEventsResponse
+ Network.AWS.ElastiCache.DescribeEvents: instance Selector S1_0_1DescribeEvents
+ Network.AWS.ElastiCache.DescribeEvents: instance Selector S1_0_1DescribeEventsResponse
+ Network.AWS.ElastiCache.DescribeEvents: instance Selector S1_0_2DescribeEvents
+ Network.AWS.ElastiCache.DescribeEvents: instance Selector S1_0_2DescribeEventsResponse
+ Network.AWS.ElastiCache.DescribeEvents: instance Selector S1_0_3DescribeEvents
+ Network.AWS.ElastiCache.DescribeEvents: instance Selector S1_0_4DescribeEvents
+ Network.AWS.ElastiCache.DescribeEvents: instance Selector S1_0_5DescribeEvents
+ Network.AWS.ElastiCache.DescribeEvents: instance Selector S1_0_6DescribeEvents
+ Network.AWS.ElastiCache.DescribeEvents: instance Typeable DescribeEvents
+ Network.AWS.ElastiCache.DescribeEvents: instance Typeable DescribeEventsResponse
+ Network.AWS.ElastiCache.DescribeReplicationGroups: drgrsMarker :: Lens' DescribeReplicationGroupsResponse (Maybe Text)
+ Network.AWS.ElastiCache.DescribeReplicationGroups: drgrsReplicationGroups :: Lens' DescribeReplicationGroupsResponse [ReplicationGroup]
+ Network.AWS.ElastiCache.DescribeReplicationGroups: drgrsStatus :: Lens' DescribeReplicationGroupsResponse Int
+ Network.AWS.ElastiCache.DescribeReplicationGroups: drgsMarker :: Lens' DescribeReplicationGroups (Maybe Text)
+ Network.AWS.ElastiCache.DescribeReplicationGroups: drgsMaxRecords :: Lens' DescribeReplicationGroups (Maybe Int)
+ Network.AWS.ElastiCache.DescribeReplicationGroups: drgsReplicationGroupId :: Lens' DescribeReplicationGroups (Maybe Text)
+ Network.AWS.ElastiCache.DescribeReplicationGroups: instance Constructor C1_0DescribeReplicationGroups
+ Network.AWS.ElastiCache.DescribeReplicationGroups: instance Constructor C1_0DescribeReplicationGroupsResponse
+ Network.AWS.ElastiCache.DescribeReplicationGroups: instance Data DescribeReplicationGroups
+ Network.AWS.ElastiCache.DescribeReplicationGroups: instance Data DescribeReplicationGroupsResponse
+ Network.AWS.ElastiCache.DescribeReplicationGroups: instance Datatype D1DescribeReplicationGroups
+ Network.AWS.ElastiCache.DescribeReplicationGroups: instance Datatype D1DescribeReplicationGroupsResponse
+ Network.AWS.ElastiCache.DescribeReplicationGroups: instance Generic DescribeReplicationGroups
+ Network.AWS.ElastiCache.DescribeReplicationGroups: instance Generic DescribeReplicationGroupsResponse
+ Network.AWS.ElastiCache.DescribeReplicationGroups: instance Selector S1_0_0DescribeReplicationGroups
+ Network.AWS.ElastiCache.DescribeReplicationGroups: instance Selector S1_0_0DescribeReplicationGroupsResponse
+ Network.AWS.ElastiCache.DescribeReplicationGroups: instance Selector S1_0_1DescribeReplicationGroups
+ Network.AWS.ElastiCache.DescribeReplicationGroups: instance Selector S1_0_1DescribeReplicationGroupsResponse
+ Network.AWS.ElastiCache.DescribeReplicationGroups: instance Selector S1_0_2DescribeReplicationGroups
+ Network.AWS.ElastiCache.DescribeReplicationGroups: instance Selector S1_0_2DescribeReplicationGroupsResponse
+ Network.AWS.ElastiCache.DescribeReplicationGroups: instance Typeable DescribeReplicationGroups
+ Network.AWS.ElastiCache.DescribeReplicationGroups: instance Typeable DescribeReplicationGroupsResponse
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: drcnrsMarker :: Lens' DescribeReservedCacheNodesResponse (Maybe Text)
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: drcnrsReservedCacheNodes :: Lens' DescribeReservedCacheNodesResponse [ReservedCacheNode]
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: drcnrsStatus :: Lens' DescribeReservedCacheNodesResponse Int
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance Constructor C1_0DescribeReservedCacheNodes
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance Constructor C1_0DescribeReservedCacheNodesResponse
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance Data DescribeReservedCacheNodes
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance Data DescribeReservedCacheNodesResponse
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance Datatype D1DescribeReservedCacheNodes
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance Datatype D1DescribeReservedCacheNodesResponse
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance Generic DescribeReservedCacheNodes
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance Generic DescribeReservedCacheNodesResponse
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance Selector S1_0_0DescribeReservedCacheNodes
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance Selector S1_0_0DescribeReservedCacheNodesResponse
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance Selector S1_0_1DescribeReservedCacheNodes
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance Selector S1_0_1DescribeReservedCacheNodesResponse
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance Selector S1_0_2DescribeReservedCacheNodes
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance Selector S1_0_2DescribeReservedCacheNodesResponse
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance Selector S1_0_3DescribeReservedCacheNodes
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance Selector S1_0_4DescribeReservedCacheNodes
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance Selector S1_0_5DescribeReservedCacheNodes
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance Selector S1_0_6DescribeReservedCacheNodes
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance Selector S1_0_7DescribeReservedCacheNodes
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance Typeable DescribeReservedCacheNodes
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: instance Typeable DescribeReservedCacheNodesResponse
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: drcnorsMarker :: Lens' DescribeReservedCacheNodesOfferingsResponse (Maybe Text)
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: drcnorsReservedCacheNodesOfferings :: Lens' DescribeReservedCacheNodesOfferingsResponse [ReservedCacheNodesOffering]
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: drcnorsStatus :: Lens' DescribeReservedCacheNodesOfferingsResponse Int
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: instance Constructor C1_0DescribeReservedCacheNodesOfferings
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: instance Constructor C1_0DescribeReservedCacheNodesOfferingsResponse
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: instance Data DescribeReservedCacheNodesOfferings
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: instance Data DescribeReservedCacheNodesOfferingsResponse
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: instance Datatype D1DescribeReservedCacheNodesOfferings
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: instance Datatype D1DescribeReservedCacheNodesOfferingsResponse
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: instance Generic DescribeReservedCacheNodesOfferings
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: instance Generic DescribeReservedCacheNodesOfferingsResponse
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: instance Selector S1_0_0DescribeReservedCacheNodesOfferings
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: instance Selector S1_0_0DescribeReservedCacheNodesOfferingsResponse
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: instance Selector S1_0_1DescribeReservedCacheNodesOfferings
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: instance Selector S1_0_1DescribeReservedCacheNodesOfferingsResponse
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: instance Selector S1_0_2DescribeReservedCacheNodesOfferings
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: instance Selector S1_0_2DescribeReservedCacheNodesOfferingsResponse
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: instance Selector S1_0_3DescribeReservedCacheNodesOfferings
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: instance Selector S1_0_4DescribeReservedCacheNodesOfferings
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: instance Selector S1_0_5DescribeReservedCacheNodesOfferings
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: instance Selector S1_0_6DescribeReservedCacheNodesOfferings
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: instance Typeable DescribeReservedCacheNodesOfferings
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: instance Typeable DescribeReservedCacheNodesOfferingsResponse
+ Network.AWS.ElastiCache.DescribeSnapshots: dssrsMarker :: Lens' DescribeSnapshotsResponse (Maybe Text)
+ Network.AWS.ElastiCache.DescribeSnapshots: dssrsSnapshots :: Lens' DescribeSnapshotsResponse [Snapshot]
+ Network.AWS.ElastiCache.DescribeSnapshots: dssrsStatus :: Lens' DescribeSnapshotsResponse Int
+ Network.AWS.ElastiCache.DescribeSnapshots: instance Constructor C1_0DescribeSnapshots
+ Network.AWS.ElastiCache.DescribeSnapshots: instance Constructor C1_0DescribeSnapshotsResponse
+ Network.AWS.ElastiCache.DescribeSnapshots: instance Data DescribeSnapshots
+ Network.AWS.ElastiCache.DescribeSnapshots: instance Data DescribeSnapshotsResponse
+ Network.AWS.ElastiCache.DescribeSnapshots: instance Datatype D1DescribeSnapshots
+ Network.AWS.ElastiCache.DescribeSnapshots: instance Datatype D1DescribeSnapshotsResponse
+ Network.AWS.ElastiCache.DescribeSnapshots: instance Generic DescribeSnapshots
+ Network.AWS.ElastiCache.DescribeSnapshots: instance Generic DescribeSnapshotsResponse
+ Network.AWS.ElastiCache.DescribeSnapshots: instance Selector S1_0_0DescribeSnapshots
+ Network.AWS.ElastiCache.DescribeSnapshots: instance Selector S1_0_0DescribeSnapshotsResponse
+ Network.AWS.ElastiCache.DescribeSnapshots: instance Selector S1_0_1DescribeSnapshots
+ Network.AWS.ElastiCache.DescribeSnapshots: instance Selector S1_0_1DescribeSnapshotsResponse
+ Network.AWS.ElastiCache.DescribeSnapshots: instance Selector S1_0_2DescribeSnapshots
+ Network.AWS.ElastiCache.DescribeSnapshots: instance Selector S1_0_2DescribeSnapshotsResponse
+ Network.AWS.ElastiCache.DescribeSnapshots: instance Selector S1_0_3DescribeSnapshots
+ Network.AWS.ElastiCache.DescribeSnapshots: instance Selector S1_0_4DescribeSnapshots
+ Network.AWS.ElastiCache.DescribeSnapshots: instance Typeable DescribeSnapshots
+ Network.AWS.ElastiCache.DescribeSnapshots: instance Typeable DescribeSnapshotsResponse
+ Network.AWS.ElastiCache.ListTagsForResource: data TagListMessage
+ Network.AWS.ElastiCache.ListTagsForResource: instance Constructor C1_0ListTagsForResource
+ Network.AWS.ElastiCache.ListTagsForResource: instance Data ListTagsForResource
+ Network.AWS.ElastiCache.ListTagsForResource: instance Datatype D1ListTagsForResource
+ Network.AWS.ElastiCache.ListTagsForResource: instance Generic ListTagsForResource
+ Network.AWS.ElastiCache.ListTagsForResource: instance Selector S1_0_0ListTagsForResource
+ Network.AWS.ElastiCache.ListTagsForResource: instance Typeable ListTagsForResource
+ Network.AWS.ElastiCache.ListTagsForResource: tagListMessage :: TagListMessage
+ Network.AWS.ElastiCache.ListTagsForResource: tlmTagList :: Lens' TagListMessage [Tag]
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Constructor C1_0ModifyCacheCluster
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Constructor C1_0ModifyCacheClusterResponse
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Data ModifyCacheCluster
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Data ModifyCacheClusterResponse
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Datatype D1ModifyCacheCluster
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Datatype D1ModifyCacheClusterResponse
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Generic ModifyCacheCluster
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Generic ModifyCacheClusterResponse
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Selector S1_0_0ModifyCacheCluster
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Selector S1_0_0ModifyCacheClusterResponse
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Selector S1_0_10ModifyCacheCluster
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Selector S1_0_11ModifyCacheCluster
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Selector S1_0_12ModifyCacheCluster
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Selector S1_0_13ModifyCacheCluster
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Selector S1_0_14ModifyCacheCluster
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Selector S1_0_15ModifyCacheCluster
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Selector S1_0_1ModifyCacheCluster
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Selector S1_0_1ModifyCacheClusterResponse
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Selector S1_0_2ModifyCacheCluster
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Selector S1_0_3ModifyCacheCluster
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Selector S1_0_4ModifyCacheCluster
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Selector S1_0_5ModifyCacheCluster
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Selector S1_0_6ModifyCacheCluster
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Selector S1_0_7ModifyCacheCluster
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Selector S1_0_8ModifyCacheCluster
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Selector S1_0_9ModifyCacheCluster
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Typeable ModifyCacheCluster
+ Network.AWS.ElastiCache.ModifyCacheCluster: instance Typeable ModifyCacheClusterResponse
+ Network.AWS.ElastiCache.ModifyCacheCluster: mccNotificationTopicARN :: Lens' ModifyCacheCluster (Maybe Text)
+ Network.AWS.ElastiCache.ModifyCacheCluster: mccrsCacheCluster :: Lens' ModifyCacheClusterResponse (Maybe CacheCluster)
+ Network.AWS.ElastiCache.ModifyCacheCluster: mccrsStatus :: Lens' ModifyCacheClusterResponse Int
+ Network.AWS.ElastiCache.ModifyCacheParameterGroup: cacheParameterGroupNameMessage :: CacheParameterGroupNameMessage
+ Network.AWS.ElastiCache.ModifyCacheParameterGroup: cpgnmCacheParameterGroupName :: Lens' CacheParameterGroupNameMessage (Maybe Text)
+ Network.AWS.ElastiCache.ModifyCacheParameterGroup: data CacheParameterGroupNameMessage
+ Network.AWS.ElastiCache.ModifyCacheParameterGroup: instance Constructor C1_0ModifyCacheParameterGroup
+ Network.AWS.ElastiCache.ModifyCacheParameterGroup: instance Data ModifyCacheParameterGroup
+ Network.AWS.ElastiCache.ModifyCacheParameterGroup: instance Datatype D1ModifyCacheParameterGroup
+ Network.AWS.ElastiCache.ModifyCacheParameterGroup: instance Generic ModifyCacheParameterGroup
+ Network.AWS.ElastiCache.ModifyCacheParameterGroup: instance Selector S1_0_0ModifyCacheParameterGroup
+ Network.AWS.ElastiCache.ModifyCacheParameterGroup: instance Selector S1_0_1ModifyCacheParameterGroup
+ Network.AWS.ElastiCache.ModifyCacheParameterGroup: instance Typeable ModifyCacheParameterGroup
+ Network.AWS.ElastiCache.ModifyCacheSubnetGroup: instance Constructor C1_0ModifyCacheSubnetGroup
+ Network.AWS.ElastiCache.ModifyCacheSubnetGroup: instance Constructor C1_0ModifyCacheSubnetGroupResponse
+ Network.AWS.ElastiCache.ModifyCacheSubnetGroup: instance Data ModifyCacheSubnetGroup
+ Network.AWS.ElastiCache.ModifyCacheSubnetGroup: instance Data ModifyCacheSubnetGroupResponse
+ Network.AWS.ElastiCache.ModifyCacheSubnetGroup: instance Datatype D1ModifyCacheSubnetGroup
+ Network.AWS.ElastiCache.ModifyCacheSubnetGroup: instance Datatype D1ModifyCacheSubnetGroupResponse
+ Network.AWS.ElastiCache.ModifyCacheSubnetGroup: instance Generic ModifyCacheSubnetGroup
+ Network.AWS.ElastiCache.ModifyCacheSubnetGroup: instance Generic ModifyCacheSubnetGroupResponse
+ Network.AWS.ElastiCache.ModifyCacheSubnetGroup: instance Selector S1_0_0ModifyCacheSubnetGroup
+ Network.AWS.ElastiCache.ModifyCacheSubnetGroup: instance Selector S1_0_0ModifyCacheSubnetGroupResponse
+ Network.AWS.ElastiCache.ModifyCacheSubnetGroup: instance Selector S1_0_1ModifyCacheSubnetGroup
+ Network.AWS.ElastiCache.ModifyCacheSubnetGroup: instance Selector S1_0_1ModifyCacheSubnetGroupResponse
+ Network.AWS.ElastiCache.ModifyCacheSubnetGroup: instance Selector S1_0_2ModifyCacheSubnetGroup
+ Network.AWS.ElastiCache.ModifyCacheSubnetGroup: instance Typeable ModifyCacheSubnetGroup
+ Network.AWS.ElastiCache.ModifyCacheSubnetGroup: instance Typeable ModifyCacheSubnetGroupResponse
+ Network.AWS.ElastiCache.ModifyCacheSubnetGroup: mcsgrsCacheSubnetGroup :: Lens' ModifyCacheSubnetGroupResponse (Maybe CacheSubnetGroup)
+ Network.AWS.ElastiCache.ModifyCacheSubnetGroup: mcsgrsStatus :: Lens' ModifyCacheSubnetGroupResponse Int
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Constructor C1_0ModifyReplicationGroup
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Constructor C1_0ModifyReplicationGroupResponse
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Data ModifyReplicationGroup
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Data ModifyReplicationGroupResponse
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Datatype D1ModifyReplicationGroup
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Datatype D1ModifyReplicationGroupResponse
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Generic ModifyReplicationGroup
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Generic ModifyReplicationGroupResponse
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Selector S1_0_0ModifyReplicationGroup
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Selector S1_0_0ModifyReplicationGroupResponse
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Selector S1_0_10ModifyReplicationGroup
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Selector S1_0_11ModifyReplicationGroup
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Selector S1_0_12ModifyReplicationGroup
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Selector S1_0_13ModifyReplicationGroup
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Selector S1_0_14ModifyReplicationGroup
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Selector S1_0_15ModifyReplicationGroup
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Selector S1_0_1ModifyReplicationGroup
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Selector S1_0_1ModifyReplicationGroupResponse
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Selector S1_0_2ModifyReplicationGroup
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Selector S1_0_3ModifyReplicationGroup
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Selector S1_0_4ModifyReplicationGroup
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Selector S1_0_5ModifyReplicationGroup
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Selector S1_0_6ModifyReplicationGroup
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Selector S1_0_7ModifyReplicationGroup
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Selector S1_0_8ModifyReplicationGroup
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Selector S1_0_9ModifyReplicationGroup
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Typeable ModifyReplicationGroup
+ Network.AWS.ElastiCache.ModifyReplicationGroup: instance Typeable ModifyReplicationGroupResponse
+ Network.AWS.ElastiCache.ModifyReplicationGroup: mrgNotificationTopicARN :: Lens' ModifyReplicationGroup (Maybe Text)
+ Network.AWS.ElastiCache.ModifyReplicationGroup: mrgrsReplicationGroup :: Lens' ModifyReplicationGroupResponse (Maybe ReplicationGroup)
+ Network.AWS.ElastiCache.ModifyReplicationGroup: mrgrsStatus :: Lens' ModifyReplicationGroupResponse Int
+ Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering: instance Constructor C1_0PurchaseReservedCacheNodesOffering
+ Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering: instance Constructor C1_0PurchaseReservedCacheNodesOfferingResponse
+ Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering: instance Data PurchaseReservedCacheNodesOffering
+ Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering: instance Data PurchaseReservedCacheNodesOfferingResponse
+ Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering: instance Datatype D1PurchaseReservedCacheNodesOffering
+ Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering: instance Datatype D1PurchaseReservedCacheNodesOfferingResponse
+ Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering: instance Generic PurchaseReservedCacheNodesOffering
+ Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering: instance Generic PurchaseReservedCacheNodesOfferingResponse
+ Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering: instance Selector S1_0_0PurchaseReservedCacheNodesOffering
+ Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering: instance Selector S1_0_0PurchaseReservedCacheNodesOfferingResponse
+ Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering: instance Selector S1_0_1PurchaseReservedCacheNodesOffering
+ Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering: instance Selector S1_0_1PurchaseReservedCacheNodesOfferingResponse
+ Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering: instance Selector S1_0_2PurchaseReservedCacheNodesOffering
+ Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering: instance Typeable PurchaseReservedCacheNodesOffering
+ Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering: instance Typeable PurchaseReservedCacheNodesOfferingResponse
+ Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering: prcnorsReservedCacheNode :: Lens' PurchaseReservedCacheNodesOfferingResponse (Maybe ReservedCacheNode)
+ Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering: prcnorsStatus :: Lens' PurchaseReservedCacheNodesOfferingResponse Int
+ Network.AWS.ElastiCache.RebootCacheCluster: instance Constructor C1_0RebootCacheCluster
+ Network.AWS.ElastiCache.RebootCacheCluster: instance Constructor C1_0RebootCacheClusterResponse
+ Network.AWS.ElastiCache.RebootCacheCluster: instance Data RebootCacheCluster
+ Network.AWS.ElastiCache.RebootCacheCluster: instance Data RebootCacheClusterResponse
+ Network.AWS.ElastiCache.RebootCacheCluster: instance Datatype D1RebootCacheCluster
+ Network.AWS.ElastiCache.RebootCacheCluster: instance Datatype D1RebootCacheClusterResponse
+ Network.AWS.ElastiCache.RebootCacheCluster: instance Generic RebootCacheCluster
+ Network.AWS.ElastiCache.RebootCacheCluster: instance Generic RebootCacheClusterResponse
+ Network.AWS.ElastiCache.RebootCacheCluster: instance Selector S1_0_0RebootCacheCluster
+ Network.AWS.ElastiCache.RebootCacheCluster: instance Selector S1_0_0RebootCacheClusterResponse
+ Network.AWS.ElastiCache.RebootCacheCluster: instance Selector S1_0_1RebootCacheCluster
+ Network.AWS.ElastiCache.RebootCacheCluster: instance Selector S1_0_1RebootCacheClusterResponse
+ Network.AWS.ElastiCache.RebootCacheCluster: instance Typeable RebootCacheCluster
+ Network.AWS.ElastiCache.RebootCacheCluster: instance Typeable RebootCacheClusterResponse
+ Network.AWS.ElastiCache.RebootCacheCluster: rccrsCacheCluster :: Lens' RebootCacheClusterResponse (Maybe CacheCluster)
+ Network.AWS.ElastiCache.RebootCacheCluster: rccrsStatus :: Lens' RebootCacheClusterResponse Int
+ Network.AWS.ElastiCache.RemoveTagsFromResource: data TagListMessage
+ Network.AWS.ElastiCache.RemoveTagsFromResource: instance Constructor C1_0RemoveTagsFromResource
+ Network.AWS.ElastiCache.RemoveTagsFromResource: instance Data RemoveTagsFromResource
+ Network.AWS.ElastiCache.RemoveTagsFromResource: instance Datatype D1RemoveTagsFromResource
+ Network.AWS.ElastiCache.RemoveTagsFromResource: instance Generic RemoveTagsFromResource
+ Network.AWS.ElastiCache.RemoveTagsFromResource: instance Selector S1_0_0RemoveTagsFromResource
+ Network.AWS.ElastiCache.RemoveTagsFromResource: instance Selector S1_0_1RemoveTagsFromResource
+ Network.AWS.ElastiCache.RemoveTagsFromResource: instance Typeable RemoveTagsFromResource
+ Network.AWS.ElastiCache.RemoveTagsFromResource: tagListMessage :: TagListMessage
+ Network.AWS.ElastiCache.RemoveTagsFromResource: tlmTagList :: Lens' TagListMessage [Tag]
+ Network.AWS.ElastiCache.ResetCacheParameterGroup: cacheParameterGroupNameMessage :: CacheParameterGroupNameMessage
+ Network.AWS.ElastiCache.ResetCacheParameterGroup: cpgnmCacheParameterGroupName :: Lens' CacheParameterGroupNameMessage (Maybe Text)
+ Network.AWS.ElastiCache.ResetCacheParameterGroup: data CacheParameterGroupNameMessage
+ Network.AWS.ElastiCache.ResetCacheParameterGroup: instance Constructor C1_0ResetCacheParameterGroup
+ Network.AWS.ElastiCache.ResetCacheParameterGroup: instance Data ResetCacheParameterGroup
+ Network.AWS.ElastiCache.ResetCacheParameterGroup: instance Datatype D1ResetCacheParameterGroup
+ Network.AWS.ElastiCache.ResetCacheParameterGroup: instance Generic ResetCacheParameterGroup
+ Network.AWS.ElastiCache.ResetCacheParameterGroup: instance Selector S1_0_0ResetCacheParameterGroup
+ Network.AWS.ElastiCache.ResetCacheParameterGroup: instance Selector S1_0_1ResetCacheParameterGroup
+ Network.AWS.ElastiCache.ResetCacheParameterGroup: instance Selector S1_0_2ResetCacheParameterGroup
+ Network.AWS.ElastiCache.ResetCacheParameterGroup: instance Typeable ResetCacheParameterGroup
+ Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress: instance Constructor C1_0RevokeCacheSecurityGroupIngress
+ Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress: instance Constructor C1_0RevokeCacheSecurityGroupIngressResponse
+ Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress: instance Data RevokeCacheSecurityGroupIngress
+ Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress: instance Data RevokeCacheSecurityGroupIngressResponse
+ Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress: instance Datatype D1RevokeCacheSecurityGroupIngress
+ Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress: instance Datatype D1RevokeCacheSecurityGroupIngressResponse
+ Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress: instance Generic RevokeCacheSecurityGroupIngress
+ Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress: instance Generic RevokeCacheSecurityGroupIngressResponse
+ Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress: instance Selector S1_0_0RevokeCacheSecurityGroupIngress
+ Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress: instance Selector S1_0_0RevokeCacheSecurityGroupIngressResponse
+ Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress: instance Selector S1_0_1RevokeCacheSecurityGroupIngress
+ Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress: instance Selector S1_0_1RevokeCacheSecurityGroupIngressResponse
+ Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress: instance Selector S1_0_2RevokeCacheSecurityGroupIngress
+ Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress: instance Typeable RevokeCacheSecurityGroupIngress
+ Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress: instance Typeable RevokeCacheSecurityGroupIngressResponse
+ Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress: rcsgirsCacheSecurityGroup :: Lens' RevokeCacheSecurityGroupIngressResponse (Maybe CacheSecurityGroup)
+ Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress: rcsgirsStatus :: Lens' RevokeCacheSecurityGroupIngressResponse Int
+ Network.AWS.ElastiCache.Types: CacheCluster :: SourceType
+ Network.AWS.ElastiCache.Types: CacheParameterGroup :: SourceType
+ Network.AWS.ElastiCache.Types: CacheSecurityGroup :: SourceType
+ Network.AWS.ElastiCache.Types: CacheSubnetGroup :: SourceType
+ Network.AWS.ElastiCache.Types: _AuthorizationAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _AuthorizationNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _CacheClusterAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _CacheClusterNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _CacheParameterGroupAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _CacheParameterGroupNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _CacheParameterGroupQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _CacheSecurityGroupAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _CacheSecurityGroupNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _CacheSecurityGroupQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _CacheSubnetGroupAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _CacheSubnetGroupInUse :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _CacheSubnetGroupNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _CacheSubnetGroupQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _CacheSubnetQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _ClusterQuotaForCustomerExceededFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _InsufficientCacheClusterCapacityFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _InvalidARNFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _InvalidCacheClusterStateFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _InvalidCacheParameterGroupStateFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _InvalidCacheSecurityGroupStateFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _InvalidParameterCombinationException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _InvalidParameterValueException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _InvalidReplicationGroupStateFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _InvalidSnapshotStateFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _InvalidSubnet :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _InvalidVPCNetworkStateFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _NodeQuotaForClusterExceededFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _NodeQuotaForCustomerExceededFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _ReplicationGroupAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _ReplicationGroupNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _ReservedCacheNodeAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _ReservedCacheNodeNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _ReservedCacheNodeQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _ReservedCacheNodesOfferingNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _SnapshotAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _SnapshotFeatureNotSupportedFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _SnapshotNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _SnapshotQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _SubnetInUse :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _TagNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: _TagQuotaPerResourceExceeded :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ElastiCache.Types: csgVPCId :: Lens' CacheSubnetGroup (Maybe Text)
+ Network.AWS.ElastiCache.Types: esgEC2SecurityGroupName :: Lens' EC2SecurityGroup (Maybe Text)
+ Network.AWS.ElastiCache.Types: esgEC2SecurityGroupOwnerId :: Lens' EC2SecurityGroup (Maybe Text)
+ Network.AWS.ElastiCache.Types: esgStatus :: Lens' EC2SecurityGroup (Maybe Text)
+ Network.AWS.ElastiCache.Types: ncTopicARN :: Lens' NotificationConfiguration (Maybe Text)
+ Network.AWS.ElastiCache.Types: sTopicARN :: Lens' Snapshot (Maybe Text)
+ Network.AWS.ElastiCache.Types: sVPCId :: Lens' Snapshot (Maybe Text)
- Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress: authorizeCacheSecurityGroupIngressResponse :: AuthorizeCacheSecurityGroupIngressResponse
+ Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress: authorizeCacheSecurityGroupIngressResponse :: Int -> AuthorizeCacheSecurityGroupIngressResponse
- Network.AWS.ElastiCache.CopySnapshot: copySnapshotResponse :: CopySnapshotResponse
+ Network.AWS.ElastiCache.CopySnapshot: copySnapshotResponse :: Int -> CopySnapshotResponse
- Network.AWS.ElastiCache.CreateCacheCluster: createCacheClusterResponse :: CreateCacheClusterResponse
+ Network.AWS.ElastiCache.CreateCacheCluster: createCacheClusterResponse :: Int -> CreateCacheClusterResponse
- Network.AWS.ElastiCache.CreateCacheParameterGroup: createCacheParameterGroupResponse :: CreateCacheParameterGroupResponse
+ Network.AWS.ElastiCache.CreateCacheParameterGroup: createCacheParameterGroupResponse :: Int -> CreateCacheParameterGroupResponse
- Network.AWS.ElastiCache.CreateCacheSecurityGroup: createCacheSecurityGroupResponse :: CreateCacheSecurityGroupResponse
+ Network.AWS.ElastiCache.CreateCacheSecurityGroup: createCacheSecurityGroupResponse :: Int -> CreateCacheSecurityGroupResponse
- Network.AWS.ElastiCache.CreateCacheSubnetGroup: createCacheSubnetGroupResponse :: CreateCacheSubnetGroupResponse
+ Network.AWS.ElastiCache.CreateCacheSubnetGroup: createCacheSubnetGroupResponse :: Int -> CreateCacheSubnetGroupResponse
- Network.AWS.ElastiCache.CreateReplicationGroup: createReplicationGroupResponse :: CreateReplicationGroupResponse
+ Network.AWS.ElastiCache.CreateReplicationGroup: createReplicationGroupResponse :: Int -> CreateReplicationGroupResponse
- Network.AWS.ElastiCache.CreateSnapshot: createSnapshotResponse :: CreateSnapshotResponse
+ Network.AWS.ElastiCache.CreateSnapshot: createSnapshotResponse :: Int -> CreateSnapshotResponse
- Network.AWS.ElastiCache.DeleteCacheCluster: deleteCacheClusterResponse :: DeleteCacheClusterResponse
+ Network.AWS.ElastiCache.DeleteCacheCluster: deleteCacheClusterResponse :: Int -> DeleteCacheClusterResponse
- Network.AWS.ElastiCache.DeleteReplicationGroup: deleteReplicationGroupResponse :: DeleteReplicationGroupResponse
+ Network.AWS.ElastiCache.DeleteReplicationGroup: deleteReplicationGroupResponse :: Int -> DeleteReplicationGroupResponse
- Network.AWS.ElastiCache.DeleteSnapshot: deleteSnapshotResponse :: DeleteSnapshotResponse
+ Network.AWS.ElastiCache.DeleteSnapshot: deleteSnapshotResponse :: Int -> DeleteSnapshotResponse
- Network.AWS.ElastiCache.DescribeCacheClusters: describeCacheClustersResponse :: DescribeCacheClustersResponse
+ Network.AWS.ElastiCache.DescribeCacheClusters: describeCacheClustersResponse :: Int -> DescribeCacheClustersResponse
- Network.AWS.ElastiCache.DescribeCacheEngineVersions: describeCacheEngineVersionsResponse :: DescribeCacheEngineVersionsResponse
+ Network.AWS.ElastiCache.DescribeCacheEngineVersions: describeCacheEngineVersionsResponse :: Int -> DescribeCacheEngineVersionsResponse
- Network.AWS.ElastiCache.DescribeCacheParameterGroups: describeCacheParameterGroupsResponse :: DescribeCacheParameterGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheParameterGroups: describeCacheParameterGroupsResponse :: Int -> DescribeCacheParameterGroupsResponse
- Network.AWS.ElastiCache.DescribeCacheParameters: describeCacheParametersResponse :: DescribeCacheParametersResponse
+ Network.AWS.ElastiCache.DescribeCacheParameters: describeCacheParametersResponse :: Int -> DescribeCacheParametersResponse
- Network.AWS.ElastiCache.DescribeCacheSecurityGroups: describeCacheSecurityGroupsResponse :: DescribeCacheSecurityGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheSecurityGroups: describeCacheSecurityGroupsResponse :: Int -> DescribeCacheSecurityGroupsResponse
- Network.AWS.ElastiCache.DescribeCacheSubnetGroups: describeCacheSubnetGroupsResponse :: DescribeCacheSubnetGroupsResponse
+ Network.AWS.ElastiCache.DescribeCacheSubnetGroups: describeCacheSubnetGroupsResponse :: Int -> DescribeCacheSubnetGroupsResponse
- Network.AWS.ElastiCache.DescribeEngineDefaultParameters: describeEngineDefaultParametersResponse :: EngineDefaults -> DescribeEngineDefaultParametersResponse
+ Network.AWS.ElastiCache.DescribeEngineDefaultParameters: describeEngineDefaultParametersResponse :: Int -> EngineDefaults -> DescribeEngineDefaultParametersResponse
- Network.AWS.ElastiCache.DescribeEvents: describeEventsResponse :: DescribeEventsResponse
+ Network.AWS.ElastiCache.DescribeEvents: describeEventsResponse :: Int -> DescribeEventsResponse
- Network.AWS.ElastiCache.DescribeReplicationGroups: describeReplicationGroupsResponse :: DescribeReplicationGroupsResponse
+ Network.AWS.ElastiCache.DescribeReplicationGroups: describeReplicationGroupsResponse :: Int -> DescribeReplicationGroupsResponse
- Network.AWS.ElastiCache.DescribeReservedCacheNodes: describeReservedCacheNodesResponse :: DescribeReservedCacheNodesResponse
+ Network.AWS.ElastiCache.DescribeReservedCacheNodes: describeReservedCacheNodesResponse :: Int -> DescribeReservedCacheNodesResponse
- Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: describeReservedCacheNodesOfferingsResponse :: DescribeReservedCacheNodesOfferingsResponse
+ Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings: describeReservedCacheNodesOfferingsResponse :: Int -> DescribeReservedCacheNodesOfferingsResponse
- Network.AWS.ElastiCache.DescribeSnapshots: describeSnapshotsResponse :: DescribeSnapshotsResponse
+ Network.AWS.ElastiCache.DescribeSnapshots: describeSnapshotsResponse :: Int -> DescribeSnapshotsResponse
- Network.AWS.ElastiCache.ModifyCacheCluster: modifyCacheClusterResponse :: ModifyCacheClusterResponse
+ Network.AWS.ElastiCache.ModifyCacheCluster: modifyCacheClusterResponse :: Int -> ModifyCacheClusterResponse
- Network.AWS.ElastiCache.ModifyCacheSubnetGroup: modifyCacheSubnetGroupResponse :: ModifyCacheSubnetGroupResponse
+ Network.AWS.ElastiCache.ModifyCacheSubnetGroup: modifyCacheSubnetGroupResponse :: Int -> ModifyCacheSubnetGroupResponse
- Network.AWS.ElastiCache.ModifyReplicationGroup: modifyReplicationGroupResponse :: ModifyReplicationGroupResponse
+ Network.AWS.ElastiCache.ModifyReplicationGroup: modifyReplicationGroupResponse :: Int -> ModifyReplicationGroupResponse
- Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering: purchaseReservedCacheNodesOfferingResponse :: PurchaseReservedCacheNodesOfferingResponse
+ Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering: purchaseReservedCacheNodesOfferingResponse :: Int -> PurchaseReservedCacheNodesOfferingResponse
- Network.AWS.ElastiCache.RebootCacheCluster: rebootCacheClusterResponse :: RebootCacheClusterResponse
+ Network.AWS.ElastiCache.RebootCacheCluster: rebootCacheClusterResponse :: Int -> RebootCacheClusterResponse
- Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress: revokeCacheSecurityGroupIngressResponse :: RevokeCacheSecurityGroupIngressResponse
+ Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress: revokeCacheSecurityGroupIngressResponse :: Int -> RevokeCacheSecurityGroupIngressResponse

Files

README.md view
@@ -1,27 +1,44 @@ # Amazon ElastiCache SDK -> _Warning:_ This is an experimental preview release which is still under heavy development and not intended for public consumption, _caveat emptor_!-+* [Version](#version) * [Description](#description) * [Contribute](#contribute) * [Licence](#licence) ++## Version++`1.0.0`++ ## Description -ElastiCache is a web service that makes it easy to deploy, operate, and scale-an in-memory cache in the cloud. The service improves the performance of web-applications by allowing you to retrieve information from fast, managed,-in-memory caches, instead of relying entirely on slower disk-based databases.-Amazon ElastiCache automatically detects and replaces failed nodes, reducing-the overhead associated with self-managed infrastructures and provides a-resilient system that mitigates the risk of overloaded databases, which slow-website and application load times. Through integration with Amazon-CloudWatch, Amazon ElastiCache provides enhanced visibility into key-performance metrics associated with your Memcached or Redis nodes.+Amazon ElastiCache +Amazon ElastiCache is a web service that makes it easier to set up,+operate, and scale a distributed cache in the cloud.++With ElastiCache, customers gain all of the benefits of a+high-performance, in-memory cache with far less of the administrative+burden of launching and managing a distributed cache. The service makes+setup, scaling, and cluster failure handling much simpler than in a+self-managed cache deployment.++In addition, through integration with Amazon CloudWatch, customers get+enhanced visibility into the key performance statistics associated with+their cache and can receive alarms if a part of their cache runs hot.+ Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-elasticache) and the [AWS API Reference](http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/Welcome.html). +The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),+which provides mechanisms for specifying AuthN/AuthZ information and sending requests.++Use of lenses is required for constructing and manipulating types.+This is due to the amount of nesting of AWS types and transparency regarding+de/serialisation into more palatable Haskell values.+The provided lenses should be compatible with any of the major lens libraries+[lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core).  ## Contribute 
amazonka-elasticache.cabal view
@@ -1,34 +1,46 @@ name:                  amazonka-elasticache-version:               0.3.6+version:               1.0.0 synopsis:              Amazon ElastiCache SDK. homepage:              https://github.com/brendanhay/amazonka license:               OtherLicense license-file:          LICENSE author:                Brendan Hay maintainer:            Brendan Hay <brendan.g.hay@gmail.com>-copyright:             Copyright (c) 2013-2014 Brendan Hay+copyright:             Copyright (c) 2013-2015 Brendan Hay category:              Network, AWS, Cloud, Distributed Computing build-type:            Simple extra-source-files:    README.md cabal-version:         >= 1.10  description:-    ElastiCache is a web service that makes it easy to deploy, operate, and scale-    an in-memory cache in the cloud. The service improves the performance of web-    applications by allowing you to retrieve information from fast, managed,-    in-memory caches, instead of relying entirely on slower disk-based databases.-    Amazon ElastiCache automatically detects and replaces failed nodes, reducing-    the overhead associated with self-managed infrastructures and provides a-    resilient system that mitigates the risk of overloaded databases, which slow-    website and application load times. Through integration with Amazon-    CloudWatch, Amazon ElastiCache provides enhanced visibility into key-    performance metrics associated with your Memcached or Redis nodes.+    Amazon ElastiCache +    Amazon ElastiCache is a web service that makes it easier to set up,+    operate, and scale a distributed cache in the cloud.++    With ElastiCache, customers gain all of the benefits of a+    high-performance, in-memory cache with far less of the administrative+    burden of launching and managing a distributed cache. The service makes+    setup, scaling, and cluster failure handling much simpler than in a+    self-managed cache deployment.++    In addition, through integration with Amazon CloudWatch, customers get+    enhanced visibility into the key performance statistics associated with+    their cache and can receive alarms if a part of their cache runs hot.     .-    /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/Welcome.html AWS API Reference>+    The types from this library are intended to be used with+    <http://hackage.haskell.org/package/amazonka amazonka>, which provides+    mechanisms for specifying AuthN/AuthZ information and sending requests.     .-    /Warning:/ This is an experimental preview release which is still under-    heavy development and not intended for public consumption, caveat emptor!+    Use of lenses is required for constructing and manipulating types.+    This is due to the amount of nesting of AWS types and transparency regarding+    de/serialisation into more palatable Haskell values.+    The provided lenses should be compatible with any of the major lens libraries+    such as <http://hackage.haskell.org/package/lens lens> or+    <http://hackage.haskell.org/package/lens-family-core lens-family-core>.+    .+    See "Network.AWS.ElastiCache" and the <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/Welcome.html AWS API Reference>+    to get started.  source-repository head     type:     git@@ -83,7 +95,37 @@         , Network.AWS.ElastiCache.Waiters      other-modules:+          Network.AWS.ElastiCache.Types.Product+        , Network.AWS.ElastiCache.Types.Sum      build-depends:-          amazonka-core == 0.3.6.*+          amazonka-core == 1.0.0.*         , base          >= 4.7     && < 5++test-suite amazonka-elasticache-test+    type:              exitcode-stdio-1.0+    default-language:  Haskell2010+    hs-source-dirs:    test+    main-is:           Main.hs++    ghc-options:       -Wall -threaded++    -- This is not comprehensive if modules have manually been added.+    -- It exists to ensure cabal 'somewhat' detects test module changes.+    other-modules:+          Test.AWS.ElastiCache+        , Test.AWS.Gen.ElastiCache+        , Test.AWS.ElastiCache.Internal++    build-depends:+          amazonka-core == 1.0.0+        , amazonka-test == 1.0.0+        , amazonka-elasticache == 1.0.0+        , base+        , bytestring+        , lens+        , tasty+        , tasty-hunit+        , text+        , time+        , unordered-containers
gen/Network/AWS/ElastiCache.hs view
@@ -1,103 +1,670 @@+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.ElastiCache--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | ElastiCache is a web service that makes it easy to deploy, operate, and scale--- an in-memory cache in the cloud. The service improves the performance of web--- applications by allowing you to retrieve information from fast, managed,--- in-memory caches, instead of relying entirely on slower disk-based databases.--- Amazon ElastiCache automatically detects and replaces failed nodes, reducing--- the overhead associated with self-managed infrastructures and provides a--- resilient system that mitigates the risk of overloaded databases, which slow--- website and application load times. Through integration with Amazon--- CloudWatch, Amazon ElastiCache provides enhanced visibility into key--- performance metrics associated with your Memcached or Redis nodes.+-- Amazon ElastiCache+--+-- Amazon ElastiCache is a web service that makes it easier to set up,+-- operate, and scale a distributed cache in the cloud.+--+-- With ElastiCache, customers gain all of the benefits of a+-- high-performance, in-memory cache with far less of the administrative+-- burden of launching and managing a distributed cache. The service makes+-- setup, scaling, and cluster failure handling much simpler than in a+-- self-managed cache deployment.+--+-- In addition, through integration with Amazon CloudWatch, customers get+-- enhanced visibility into the key performance statistics associated with+-- their cache and can receive alarms if a part of their cache runs hot.+--+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/Welcome.html AWS API Reference> module Network.AWS.ElastiCache-    ( module Network.AWS.ElastiCache.AddTagsToResource-    , module Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress-    , module Network.AWS.ElastiCache.CopySnapshot-    , module Network.AWS.ElastiCache.CreateCacheCluster-    , module Network.AWS.ElastiCache.CreateCacheParameterGroup-    , module Network.AWS.ElastiCache.CreateCacheSecurityGroup-    , module Network.AWS.ElastiCache.CreateCacheSubnetGroup+    (+    -- * Service+      ElastiCache++    -- * Errors+    -- $errors++    -- ** CacheSubnetGroupAlreadyExistsFault+    , _CacheSubnetGroupAlreadyExistsFault++    -- ** CacheSubnetGroupInUse+    , _CacheSubnetGroupInUse++    -- ** CacheSecurityGroupNotFoundFault+    , _CacheSecurityGroupNotFoundFault++    -- ** ReservedCacheNodeAlreadyExistsFault+    , _ReservedCacheNodeAlreadyExistsFault++    -- ** AuthorizationAlreadyExistsFault+    , _AuthorizationAlreadyExistsFault++    -- ** ReservedCacheNodeQuotaExceededFault+    , _ReservedCacheNodeQuotaExceededFault++    -- ** CacheSubnetGroupQuotaExceededFault+    , _CacheSubnetGroupQuotaExceededFault++    -- ** ReplicationGroupNotFoundFault+    , _ReplicationGroupNotFoundFault++    -- ** ReservedCacheNodesOfferingNotFoundFault+    , _ReservedCacheNodesOfferingNotFoundFault++    -- ** TagQuotaPerResourceExceeded+    , _TagQuotaPerResourceExceeded++    -- ** InvalidSubnet+    , _InvalidSubnet++    -- ** SnapshotNotFoundFault+    , _SnapshotNotFoundFault++    -- ** InsufficientCacheClusterCapacityFault+    , _InsufficientCacheClusterCapacityFault++    -- ** InvalidSnapshotStateFault+    , _InvalidSnapshotStateFault++    -- ** SnapshotAlreadyExistsFault+    , _SnapshotAlreadyExistsFault++    -- ** TagNotFoundFault+    , _TagNotFoundFault++    -- ** SnapshotQuotaExceededFault+    , _SnapshotQuotaExceededFault++    -- ** CacheParameterGroupAlreadyExistsFault+    , _CacheParameterGroupAlreadyExistsFault++    -- ** NodeQuotaForClusterExceededFault+    , _NodeQuotaForClusterExceededFault++    -- ** SnapshotFeatureNotSupportedFault+    , _SnapshotFeatureNotSupportedFault++    -- ** CacheSubnetGroupNotFoundFault+    , _CacheSubnetGroupNotFoundFault++    -- ** ReservedCacheNodeNotFoundFault+    , _ReservedCacheNodeNotFoundFault++    -- ** InvalidParameterValueException+    , _InvalidParameterValueException++    -- ** InvalidVPCNetworkStateFault+    , _InvalidVPCNetworkStateFault++    -- ** CacheClusterNotFoundFault+    , _CacheClusterNotFoundFault++    -- ** InvalidReplicationGroupStateFault+    , _InvalidReplicationGroupStateFault++    -- ** ReplicationGroupAlreadyExistsFault+    , _ReplicationGroupAlreadyExistsFault++    -- ** SubnetInUse+    , _SubnetInUse++    -- ** CacheClusterAlreadyExistsFault+    , _CacheClusterAlreadyExistsFault++    -- ** ClusterQuotaForCustomerExceededFault+    , _ClusterQuotaForCustomerExceededFault++    -- ** AuthorizationNotFoundFault+    , _AuthorizationNotFoundFault++    -- ** CacheSecurityGroupQuotaExceededFault+    , _CacheSecurityGroupQuotaExceededFault++    -- ** InvalidCacheClusterStateFault+    , _InvalidCacheClusterStateFault++    -- ** CacheParameterGroupQuotaExceededFault+    , _CacheParameterGroupQuotaExceededFault++    -- ** NodeQuotaForCustomerExceededFault+    , _NodeQuotaForCustomerExceededFault++    -- ** CacheSubnetQuotaExceededFault+    , _CacheSubnetQuotaExceededFault++    -- ** CacheParameterGroupNotFoundFault+    , _CacheParameterGroupNotFoundFault++    -- ** InvalidParameterCombinationException+    , _InvalidParameterCombinationException++    -- ** InvalidARNFault+    , _InvalidARNFault++    -- ** InvalidCacheParameterGroupStateFault+    , _InvalidCacheParameterGroupStateFault++    -- ** CacheSecurityGroupAlreadyExistsFault+    , _CacheSecurityGroupAlreadyExistsFault++    -- ** InvalidCacheSecurityGroupStateFault+    , _InvalidCacheSecurityGroupStateFault++    -- * Waiters+    -- $waiters++    -- ** CacheClusterAvailable+    , cacheClusterAvailable++    -- ** CacheClusterDeleted+    , cacheClusterDeleted++    -- ** ReplicationGroupDeleted+    , replicationGroupDeleted++    -- ** ReplicationGroupAvailable+    , replicationGroupAvailable++    -- * Operations+    -- $operations++    -- ** DeleteCacheSecurityGroup+    , module Network.AWS.ElastiCache.DeleteCacheSecurityGroup++    -- ** CreateReplicationGroup     , module Network.AWS.ElastiCache.CreateReplicationGroup-    , module Network.AWS.ElastiCache.CreateSnapshot++    -- ** DeleteCacheCluster     , module Network.AWS.ElastiCache.DeleteCacheCluster-    , module Network.AWS.ElastiCache.DeleteCacheParameterGroup-    , module Network.AWS.ElastiCache.DeleteCacheSecurityGroup-    , module Network.AWS.ElastiCache.DeleteCacheSubnetGroup++    -- ** RebootCacheCluster+    , module Network.AWS.ElastiCache.RebootCacheCluster++    -- ** RevokeCacheSecurityGroupIngress+    , module Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress++    -- ** DescribeEvents (Paginated)+    , module Network.AWS.ElastiCache.DescribeEvents++    -- ** DescribeEngineDefaultParameters (Paginated)+    , module Network.AWS.ElastiCache.DescribeEngineDefaultParameters++    -- ** ModifyCacheParameterGroup+    , module Network.AWS.ElastiCache.ModifyCacheParameterGroup++    -- ** CreateCacheCluster+    , module Network.AWS.ElastiCache.CreateCacheCluster++    -- ** ListTagsForResource+    , module Network.AWS.ElastiCache.ListTagsForResource++    -- ** DeleteReplicationGroup     , module Network.AWS.ElastiCache.DeleteReplicationGroup-    , module Network.AWS.ElastiCache.DeleteSnapshot++    -- ** PurchaseReservedCacheNodesOffering+    , module Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering++    -- ** DescribeCacheClusters (Paginated)     , module Network.AWS.ElastiCache.DescribeCacheClusters-    , module Network.AWS.ElastiCache.DescribeCacheEngineVersions-    , module Network.AWS.ElastiCache.DescribeCacheParameterGroups++    -- ** ModifyReplicationGroup+    , module Network.AWS.ElastiCache.ModifyReplicationGroup++    -- ** RemoveTagsFromResource+    , module Network.AWS.ElastiCache.RemoveTagsFromResource++    -- ** DescribeCacheParameters (Paginated)     , module Network.AWS.ElastiCache.DescribeCacheParameters-    , module Network.AWS.ElastiCache.DescribeCacheSecurityGroups++    -- ** DescribeCacheSubnetGroups (Paginated)     , module Network.AWS.ElastiCache.DescribeCacheSubnetGroups-    , module Network.AWS.ElastiCache.DescribeEngineDefaultParameters-    , module Network.AWS.ElastiCache.DescribeEvents++    -- ** CreateCacheSecurityGroup+    , module Network.AWS.ElastiCache.CreateCacheSecurityGroup++    -- ** AddTagsToResource+    , module Network.AWS.ElastiCache.AddTagsToResource++    -- ** AuthorizeCacheSecurityGroupIngress+    , module Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress++    -- ** CopySnapshot+    , module Network.AWS.ElastiCache.CopySnapshot++    -- ** CreateCacheSubnetGroup+    , module Network.AWS.ElastiCache.CreateCacheSubnetGroup++    -- ** DescribeCacheParameterGroups (Paginated)+    , module Network.AWS.ElastiCache.DescribeCacheParameterGroups++    -- ** ResetCacheParameterGroup+    , module Network.AWS.ElastiCache.ResetCacheParameterGroup++    -- ** DescribeSnapshots (Paginated)+    , module Network.AWS.ElastiCache.DescribeSnapshots++    -- ** DescribeReservedCacheNodesOfferings (Paginated)+    , module Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings++    -- ** DeleteSnapshot+    , module Network.AWS.ElastiCache.DeleteSnapshot++    -- ** DescribeReplicationGroups (Paginated)     , module Network.AWS.ElastiCache.DescribeReplicationGroups++    -- ** ModifyCacheSubnetGroup+    , module Network.AWS.ElastiCache.ModifyCacheSubnetGroup++    -- ** CreateSnapshot+    , module Network.AWS.ElastiCache.CreateSnapshot++    -- ** DescribeCacheSecurityGroups (Paginated)+    , module Network.AWS.ElastiCache.DescribeCacheSecurityGroups++    -- ** DeleteCacheParameterGroup+    , module Network.AWS.ElastiCache.DeleteCacheParameterGroup++    -- ** DescribeReservedCacheNodes (Paginated)     , module Network.AWS.ElastiCache.DescribeReservedCacheNodes-    , module Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings-    , module Network.AWS.ElastiCache.DescribeSnapshots-    , module Network.AWS.ElastiCache.ListTagsForResource++    -- ** DescribeCacheEngineVersions (Paginated)+    , module Network.AWS.ElastiCache.DescribeCacheEngineVersions++    -- ** ModifyCacheCluster     , module Network.AWS.ElastiCache.ModifyCacheCluster-    , module Network.AWS.ElastiCache.ModifyCacheParameterGroup-    , module Network.AWS.ElastiCache.ModifyCacheSubnetGroup-    , module Network.AWS.ElastiCache.ModifyReplicationGroup-    , module Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering-    , module Network.AWS.ElastiCache.RebootCacheCluster-    , module Network.AWS.ElastiCache.RemoveTagsFromResource-    , module Network.AWS.ElastiCache.ResetCacheParameterGroup-    , module Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress-    , module Network.AWS.ElastiCache.Types-    , module Network.AWS.ElastiCache.Waiters++    -- ** CreateCacheParameterGroup+    , module Network.AWS.ElastiCache.CreateCacheParameterGroup++    -- ** DeleteCacheSubnetGroup+    , module Network.AWS.ElastiCache.DeleteCacheSubnetGroup++    -- * Types++    -- ** AZMode+    , AZMode (..)++    -- ** AutomaticFailoverStatus+    , AutomaticFailoverStatus (..)++    -- ** PendingAutomaticFailoverStatus+    , PendingAutomaticFailoverStatus (..)++    -- ** SourceType+    , SourceType (..)++    -- ** AvailabilityZone+    , AvailabilityZone+    , availabilityZone+    , azName++    -- ** CacheCluster+    , CacheCluster+    , cacheCluster+    , ccCacheNodeType+    , ccEngineVersion+    , ccCacheNodes+    , ccCacheClusterCreateTime+    , ccAutoMinorVersionUpgrade+    , ccSecurityGroups+    , ccNotificationConfiguration+    , ccSnapshotWindow+    , ccCacheClusterId+    , ccConfigurationEndpoint+    , ccEngine+    , ccCacheSecurityGroups+    , ccClientDownloadLandingPage+    , ccPreferredMaintenanceWindow+    , ccCacheSubnetGroupName+    , ccCacheClusterStatus+    , ccPreferredAvailabilityZone+    , ccCacheParameterGroup+    , ccSnapshotRetentionLimit+    , ccReplicationGroupId+    , ccPendingModifiedValues+    , ccNumCacheNodes++    -- ** CacheEngineVersion+    , CacheEngineVersion+    , cacheEngineVersion+    , cevCacheEngineDescription+    , cevCacheParameterGroupFamily+    , cevEngineVersion+    , cevCacheEngineVersionDescription+    , cevEngine++    -- ** CacheNode+    , CacheNode+    , cacheNode+    , cnSourceCacheNodeId+    , cnParameterGroupStatus+    , cnCacheNodeCreateTime+    , cnCustomerAvailabilityZone+    , cnCacheNodeId+    , cnCacheNodeStatus+    , cnEndpoint++    -- ** CacheNodeTypeSpecificParameter+    , CacheNodeTypeSpecificParameter+    , cacheNodeTypeSpecificParameter+    , cntspCacheNodeTypeSpecificValues+    , cntspMinimumEngineVersion+    , cntspSource+    , cntspIsModifiable+    , cntspAllowedValues+    , cntspDataType+    , cntspParameterName+    , cntspDescription++    -- ** CacheNodeTypeSpecificValue+    , CacheNodeTypeSpecificValue+    , cacheNodeTypeSpecificValue+    , cntsvCacheNodeType+    , cntsvValue++    -- ** CacheParameterGroup+    , CacheParameterGroup+    , cacheParameterGroup+    , cpgCacheParameterGroupFamily+    , cpgCacheParameterGroupName+    , cpgDescription++    -- ** CacheParameterGroupNameMessage+    , CacheParameterGroupNameMessage+    , cacheParameterGroupNameMessage+    , cpgnmCacheParameterGroupName++    -- ** CacheParameterGroupStatus+    , CacheParameterGroupStatus+    , cacheParameterGroupStatus+    , cpgsCacheParameterGroupName+    , cpgsCacheNodeIdsToReboot+    , cpgsParameterApplyStatus++    -- ** CacheSecurityGroup+    , CacheSecurityGroup+    , cacheSecurityGroup+    , csgCacheSecurityGroupName+    , csgOwnerId+    , csgEC2SecurityGroups+    , csgDescription++    -- ** CacheSecurityGroupMembership+    , CacheSecurityGroupMembership+    , cacheSecurityGroupMembership+    , csgmStatus+    , csgmCacheSecurityGroupName++    -- ** CacheSubnetGroup+    , CacheSubnetGroup+    , cacheSubnetGroup+    , csgVPCId+    , csgSubnets+    , csgCacheSubnetGroupName+    , csgCacheSubnetGroupDescription++    -- ** EC2SecurityGroup+    , EC2SecurityGroup+    , ec2SecurityGroup+    , esgStatus+    , esgEC2SecurityGroupOwnerId+    , esgEC2SecurityGroupName++    -- ** Endpoint+    , Endpoint+    , endpoint+    , eAddress+    , ePort++    -- ** EngineDefaults+    , EngineDefaults+    , engineDefaults+    , edCacheParameterGroupFamily+    , edCacheNodeTypeSpecificParameters+    , edParameters+    , edMarker++    -- ** Event+    , Event+    , event+    , eSourceType+    , eSourceIdentifier+    , eDate+    , eMessage++    -- ** NodeGroup+    , NodeGroup+    , nodeGroup+    , ngStatus+    , ngPrimaryEndpoint+    , ngNodeGroupMembers+    , ngNodeGroupId++    -- ** NodeGroupMember+    , NodeGroupMember+    , nodeGroupMember+    , ngmCacheClusterId+    , ngmCacheNodeId+    , ngmPreferredAvailabilityZone+    , ngmCurrentRole+    , ngmReadEndpoint++    -- ** NodeSnapshot+    , NodeSnapshot+    , nodeSnapshot+    , nsCacheNodeCreateTime+    , nsCacheNodeId+    , nsSnapshotCreateTime+    , nsCacheSize++    -- ** NotificationConfiguration+    , NotificationConfiguration+    , notificationConfiguration+    , ncTopicStatus+    , ncTopicARN++    -- ** Parameter+    , Parameter+    , parameter+    , pParameterValue+    , pMinimumEngineVersion+    , pSource+    , pIsModifiable+    , pAllowedValues+    , pDataType+    , pParameterName+    , pDescription++    -- ** ParameterNameValue+    , ParameterNameValue+    , parameterNameValue+    , pnvParameterValue+    , pnvParameterName++    -- ** PendingModifiedValues+    , PendingModifiedValues+    , pendingModifiedValues+    , pmvEngineVersion+    , pmvCacheNodeIdsToRemove+    , pmvNumCacheNodes++    -- ** RecurringCharge+    , RecurringCharge+    , recurringCharge+    , rcRecurringChargeFrequency+    , rcRecurringChargeAmount++    -- ** ReplicationGroup+    , ReplicationGroup+    , replicationGroup+    , rgNodeGroups+    , rgStatus+    , rgSnapshottingClusterId+    , rgMemberClusters+    , rgReplicationGroupId+    , rgPendingModifiedValues+    , rgDescription+    , rgAutomaticFailover++    -- ** ReplicationGroupPendingModifiedValues+    , ReplicationGroupPendingModifiedValues+    , replicationGroupPendingModifiedValues+    , rgpmvPrimaryClusterId+    , rgpmvAutomaticFailoverStatus++    -- ** ReservedCacheNode+    , ReservedCacheNode+    , reservedCacheNode+    , rcnCacheNodeType+    , rcnState+    , rcnProductDescription+    , rcnStartTime+    , rcnCacheNodeCount+    , rcnReservedCacheNodeId+    , rcnOfferingType+    , rcnUsagePrice+    , rcnRecurringCharges+    , rcnFixedPrice+    , rcnDuration+    , rcnReservedCacheNodesOfferingId++    -- ** ReservedCacheNodesOffering+    , ReservedCacheNodesOffering+    , reservedCacheNodesOffering+    , rcnoCacheNodeType+    , rcnoProductDescription+    , rcnoOfferingType+    , rcnoUsagePrice+    , rcnoRecurringCharges+    , rcnoFixedPrice+    , rcnoDuration+    , rcnoReservedCacheNodesOfferingId++    -- ** SecurityGroupMembership+    , SecurityGroupMembership+    , securityGroupMembership+    , sgmStatus+    , sgmSecurityGroupId++    -- ** Snapshot+    , Snapshot+    , snapshot+    , sCacheNodeType+    , sEngineVersion+    , sCacheClusterCreateTime+    , sAutoMinorVersionUpgrade+    , sCacheParameterGroupName+    , sSnapshotStatus+    , sSnapshotWindow+    , sVPCId+    , sCacheClusterId+    , sEngine+    , sPreferredMaintenanceWindow+    , sTopicARN+    , sCacheSubnetGroupName+    , sNodeSnapshots+    , sPreferredAvailabilityZone+    , sSnapshotRetentionLimit+    , sSnapshotName+    , sSnapshotSource+    , sNumCacheNodes+    , sPort++    -- ** Subnet+    , Subnet+    , subnet+    , sSubnetIdentifier+    , sSubnetAvailabilityZone++    -- ** Tag+    , Tag+    , tag+    , tagValue+    , tagKey++    -- ** TagListMessage+    , TagListMessage+    , tagListMessage+    , 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.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.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++{- $errors+Error matchers are designed for use with the functions provided by+<http://hackage.haskell.org/package/lens/docs/Control-Exception-Lens.html Control.Exception.Lens>.+This allows catching (and rethrowing) service specific errors returned+by 'ElastiCache'.+-}++{- $operations+Some AWS operations return results that are incomplete and require subsequent+requests in order to obtain the entire result set. The process of sending+subsequent requests to continue where a previous request left off is called+pagination. For example, the 'ListObjects' operation of Amazon S3 returns up to+1000 objects at a time, and you must send subsequent requests with the+appropriate Marker in order to retrieve the next page of results.++Operations that have an 'AWSPager' instance can transparently perform subsequent+requests, correctly setting Markers and other request facets to iterate through+the entire result set of a truncated API operation. Operations which support+this have an additional note in the documentation.++Many operations have the ability to filter results on the server side. See the+individual operation parameters for details.+-}++{- $waiters+Waiters poll by repeatedly sending a request until some remote success condition+configured by the 'Wait' specification is fulfilled. The 'Wait' specification+determines how many attempts should be made, in addition to delay and retry strategies.+-}
gen/Network/AWS/ElastiCache/AddTagsToResource.hs view
@@ -1,134 +1,111 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.AddTagsToResource--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /AddTagsToResource/ action 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. Cost allocation tags can be used to categorize and track--- your AWS costs.+-- The /AddTagsToResource/ action 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. Cost allocation tags can be used 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 CostAllocation Tags in Amazon ElastiCache>.+-- 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>. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_AddTagsToResource.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_AddTagsToResource.html AWS API Reference> for AddTagsToResource. module Network.AWS.ElastiCache.AddTagsToResource     (-    -- * Request-      AddTagsToResource-    -- ** Request constructor-    , addTagsToResource-    -- ** Request lenses+    -- * Creating a Request+      addTagsToResource+    , AddTagsToResource+    -- * Request Lenses     , attrResourceName     , attrTags -    -- * Response-    , AddTagsToResourceResponse-    -- ** Response constructor-    , addTagsToResourceResponse-    -- ** Response lenses-    , attrrTagList+    -- * Destructuring the Response+    , tagListMessage+    , TagListMessage+    -- * Response Lenses+    , tlmTagList     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data AddTagsToResource = AddTagsToResource-    { _attrResourceName :: Text-    , _attrTags         :: List "member" Tag-    } deriving (Eq, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'AddTagsToResource' constructor.+-- | Represents the input of an /AddTagsToResource/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'addTagsToResource' smart constructor.+data AddTagsToResource = AddTagsToResource'+    { _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. ----- * 'attrResourceName' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'attrTags' @::@ ['Tag']+-- * 'attrResourceName' ---addTagsToResource :: Text -- ^ 'attrResourceName'-                  -> AddTagsToResource-addTagsToResource p1 = AddTagsToResource-    { _attrResourceName = p1-    , _attrTags         = mempty+-- * 'attrTags'+addTagsToResource+    :: Text -- ^ 'attrResourceName'+    -> AddTagsToResource+addTagsToResource pResourceName_ =+    AddTagsToResource'+    { _attrResourceName = pResourceName_+    , _attrTags = mempty     } --- | The name of the resource to which the tags are to be added, for example 'arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster'.+-- | The name of the resource to which the tags are to be added, for example+-- 'arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster'. attrResourceName :: Lens' AddTagsToResource Text-attrResourceName = lens _attrResourceName (\s a -> s { _attrResourceName = a })+attrResourceName = lens _attrResourceName (\ s a -> s{_attrResourceName = 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. attrTags :: Lens' AddTagsToResource [Tag]-attrTags = lens _attrTags (\s a -> s { _attrTags = a }) . _List--newtype AddTagsToResourceResponse = AddTagsToResourceResponse-    { _attrrTagList :: List "member" Tag-    } deriving (Eq, Read, Show, Monoid, Semigroup)--instance GHC.Exts.IsList AddTagsToResourceResponse where-    type Item AddTagsToResourceResponse = Tag--    fromList = AddTagsToResourceResponse . GHC.Exts.fromList-    toList   = GHC.Exts.toList . _attrrTagList+attrTags = lens _attrTags (\ s a -> s{_attrTags = a}) . _Coerce; --- | 'AddTagsToResourceResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'attrrTagList' @::@ ['Tag']----addTagsToResourceResponse :: AddTagsToResourceResponse-addTagsToResourceResponse = AddTagsToResourceResponse-    { _attrrTagList = mempty-    }+instance AWSRequest AddTagsToResource where+        type Sv AddTagsToResource = ElastiCache+        type Rs AddTagsToResource = TagListMessage+        request = postQuery+        response+          = receiveXMLWrapper "AddTagsToResourceResult"+              (\ s h x -> parseXML x) --- | A list of cost allocation tags as key-value pairs.-attrrTagList :: Lens' AddTagsToResourceResponse [Tag]-attrrTagList = lens _attrrTagList (\s a -> s { _attrrTagList = a }) . _List+instance ToHeaders AddTagsToResource where+        toHeaders = const mempty  instance ToPath AddTagsToResource where-    toPath = const "/"+        toPath = const "/"  instance ToQuery AddTagsToResource where-    toQuery AddTagsToResource{..} = mconcat-        [ "ResourceName" =? _attrResourceName-        , "Tags"         =? _attrTags-        ]--instance ToHeaders AddTagsToResource--instance AWSRequest AddTagsToResource where-    type Sv AddTagsToResource = ElastiCache-    type Rs AddTagsToResource = AddTagsToResourceResponse--    request  = post "AddTagsToResource"-    response = xmlResponse--instance FromXML AddTagsToResourceResponse where-    parseXML = withElement "AddTagsToResourceResult" $ \x -> AddTagsToResourceResponse-        <$> x .@? "TagList" .!@ mempty+        toQuery AddTagsToResource'{..}+          = mconcat+              ["Action" =: ("AddTagsToResource" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "ResourceName" =: _attrResourceName,+               "Tags" =: toQueryList "Tag" _attrTags]
gen/Network/AWS/ElastiCache/AuthorizeCacheSecurityGroupIngress.hs view
@@ -1,146 +1,162 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.AuthorizeCacheSecurityGroupIngress--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /AuthorizeCacheSecurityGroupIngress/ action allows network ingress to a--- cache security group. Applications using ElastiCache must be running on--- Amazon EC2, and Amazon EC2 security groups are used as the authorization--- mechanism.+-- The /AuthorizeCacheSecurityGroupIngress/ action allows network ingress+-- to a cache security group. Applications using ElastiCache must be+-- running on Amazon EC2, and Amazon EC2 security groups are used as the+-- authorization mechanism. ----- You cannot authorize ingress from an Amazon EC2 security group in one region--- to an ElastiCache cluster in another region.+-- You cannot authorize ingress from an Amazon EC2 security group in one+-- region to an ElastiCache cluster in another region. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_AuthorizeCacheSecurityGroupIngress.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_AuthorizeCacheSecurityGroupIngress.html AWS API Reference> for AuthorizeCacheSecurityGroupIngress. module Network.AWS.ElastiCache.AuthorizeCacheSecurityGroupIngress     (-    -- * Request-      AuthorizeCacheSecurityGroupIngress-    -- ** Request constructor-    , authorizeCacheSecurityGroupIngress-    -- ** Request lenses+    -- * Creating a Request+      authorizeCacheSecurityGroupIngress+    , AuthorizeCacheSecurityGroupIngress+    -- * Request Lenses     , acsgiCacheSecurityGroupName     , acsgiEC2SecurityGroupName     , acsgiEC2SecurityGroupOwnerId -    -- * Response-    , AuthorizeCacheSecurityGroupIngressResponse-    -- ** Response constructor+    -- * Destructuring the Response     , authorizeCacheSecurityGroupIngressResponse-    -- ** Response lenses-    , acsgirCacheSecurityGroup+    , AuthorizeCacheSecurityGroupIngressResponse+    -- * Response Lenses+    , acsgirsCacheSecurityGroup+    , acsgirsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data AuthorizeCacheSecurityGroupIngress = AuthorizeCacheSecurityGroupIngress-    { _acsgiCacheSecurityGroupName  :: Text-    , _acsgiEC2SecurityGroupName    :: Text-    , _acsgiEC2SecurityGroupOwnerId :: Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'AuthorizeCacheSecurityGroupIngress' constructor.+-- | Represents the input of an /AuthorizeCacheSecurityGroupIngress/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'authorizeCacheSecurityGroupIngress' smart constructor.+data AuthorizeCacheSecurityGroupIngress = AuthorizeCacheSecurityGroupIngress'+    { _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. ----- * 'acsgiCacheSecurityGroupName' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'acsgiEC2SecurityGroupName' @::@ 'Text'+-- * 'acsgiCacheSecurityGroupName' ----- * 'acsgiEC2SecurityGroupOwnerId' @::@ 'Text'+-- * 'acsgiEC2SecurityGroupName' ---authorizeCacheSecurityGroupIngress :: Text -- ^ 'acsgiCacheSecurityGroupName'-                                   -> Text -- ^ 'acsgiEC2SecurityGroupName'-                                   -> Text -- ^ 'acsgiEC2SecurityGroupOwnerId'-                                   -> AuthorizeCacheSecurityGroupIngress-authorizeCacheSecurityGroupIngress p1 p2 p3 = AuthorizeCacheSecurityGroupIngress-    { _acsgiCacheSecurityGroupName  = p1-    , _acsgiEC2SecurityGroupName    = p2-    , _acsgiEC2SecurityGroupOwnerId = p3+-- * 'acsgiEC2SecurityGroupOwnerId'+authorizeCacheSecurityGroupIngress+    :: Text -- ^ 'acsgiCacheSecurityGroupName'+    -> Text -- ^ 'acsgiEC2SecurityGroupName'+    -> Text -- ^ 'acsgiEC2SecurityGroupOwnerId'+    -> AuthorizeCacheSecurityGroupIngress+authorizeCacheSecurityGroupIngress pCacheSecurityGroupName_ pEC2SecurityGroupName_ pEC2SecurityGroupOwnerId_ =+    AuthorizeCacheSecurityGroupIngress'+    { _acsgiCacheSecurityGroupName = pCacheSecurityGroupName_+    , _acsgiEC2SecurityGroupName = pEC2SecurityGroupName_+    , _acsgiEC2SecurityGroupOwnerId = pEC2SecurityGroupOwnerId_     }  -- | The cache security group which will allow network ingress. acsgiCacheSecurityGroupName :: Lens' AuthorizeCacheSecurityGroupIngress Text-acsgiCacheSecurityGroupName =-    lens _acsgiCacheSecurityGroupName-        (\s a -> s { _acsgiCacheSecurityGroupName = a })+acsgiCacheSecurityGroupName = lens _acsgiCacheSecurityGroupName (\ s a -> s{_acsgiCacheSecurityGroupName = a});  -- | The Amazon EC2 security group to be authorized for ingress to the cache -- security group. acsgiEC2SecurityGroupName :: Lens' AuthorizeCacheSecurityGroupIngress Text-acsgiEC2SecurityGroupName =-    lens _acsgiEC2SecurityGroupName-        (\s a -> s { _acsgiEC2SecurityGroupName = a })+acsgiEC2SecurityGroupName = lens _acsgiEC2SecurityGroupName (\ s a -> s{_acsgiEC2SecurityGroupName = a}); --- | The AWS account number of the Amazon EC2 security group owner. Note that this--- is not the same thing as an AWS access key ID - you must provide a valid AWS--- account number for this parameter.+-- | The AWS account number of the Amazon EC2 security group owner. Note that+-- this is not the same thing as an AWS access key ID - you must provide a+-- valid AWS account number for this parameter. acsgiEC2SecurityGroupOwnerId :: Lens' AuthorizeCacheSecurityGroupIngress Text-acsgiEC2SecurityGroupOwnerId =-    lens _acsgiEC2SecurityGroupOwnerId-        (\s a -> s { _acsgiEC2SecurityGroupOwnerId = a })--newtype AuthorizeCacheSecurityGroupIngressResponse = AuthorizeCacheSecurityGroupIngressResponse-    { _acsgirCacheSecurityGroup :: Maybe CacheSecurityGroup-    } deriving (Eq, Read, Show)+acsgiEC2SecurityGroupOwnerId = lens _acsgiEC2SecurityGroupOwnerId (\ s a -> s{_acsgiEC2SecurityGroupOwnerId = a}); --- | 'AuthorizeCacheSecurityGroupIngressResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'acsgirCacheSecurityGroup' @::@ 'Maybe' 'CacheSecurityGroup'----authorizeCacheSecurityGroupIngressResponse :: AuthorizeCacheSecurityGroupIngressResponse-authorizeCacheSecurityGroupIngressResponse = AuthorizeCacheSecurityGroupIngressResponse-    { _acsgirCacheSecurityGroup = Nothing-    }+instance AWSRequest+         AuthorizeCacheSecurityGroupIngress where+        type Sv AuthorizeCacheSecurityGroupIngress =+             ElastiCache+        type Rs AuthorizeCacheSecurityGroupIngress =+             AuthorizeCacheSecurityGroupIngressResponse+        request = postQuery+        response+          = receiveXMLWrapper+              "AuthorizeCacheSecurityGroupIngressResult"+              (\ s h x ->+                 AuthorizeCacheSecurityGroupIngressResponse' <$>+                   (x .@? "CacheSecurityGroup") <*> (pure (fromEnum s))) -acsgirCacheSecurityGroup :: Lens' AuthorizeCacheSecurityGroupIngressResponse (Maybe CacheSecurityGroup)-acsgirCacheSecurityGroup =-    lens _acsgirCacheSecurityGroup-        (\s a -> s { _acsgirCacheSecurityGroup = a })+instance ToHeaders AuthorizeCacheSecurityGroupIngress+         where+        toHeaders = const mempty -instance ToPath AuthorizeCacheSecurityGroupIngress where-    toPath = const "/"+instance ToPath AuthorizeCacheSecurityGroupIngress+         where+        toPath = const "/" -instance ToQuery AuthorizeCacheSecurityGroupIngress where-    toQuery AuthorizeCacheSecurityGroupIngress{..} = mconcat-        [ "CacheSecurityGroupName"  =? _acsgiCacheSecurityGroupName-        , "EC2SecurityGroupName"    =? _acsgiEC2SecurityGroupName-        , "EC2SecurityGroupOwnerId" =? _acsgiEC2SecurityGroupOwnerId-        ]+instance ToQuery AuthorizeCacheSecurityGroupIngress+         where+        toQuery AuthorizeCacheSecurityGroupIngress'{..}+          = mconcat+              ["Action" =:+                 ("AuthorizeCacheSecurityGroupIngress" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "CacheSecurityGroupName" =:+                 _acsgiCacheSecurityGroupName,+               "EC2SecurityGroupName" =: _acsgiEC2SecurityGroupName,+               "EC2SecurityGroupOwnerId" =:+                 _acsgiEC2SecurityGroupOwnerId] -instance ToHeaders AuthorizeCacheSecurityGroupIngress+-- | /See:/ 'authorizeCacheSecurityGroupIngressResponse' smart constructor.+data AuthorizeCacheSecurityGroupIngressResponse = AuthorizeCacheSecurityGroupIngressResponse'+    { _acsgirsCacheSecurityGroup :: !(Maybe CacheSecurityGroup)+    , _acsgirsStatus             :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest AuthorizeCacheSecurityGroupIngress where-    type Sv AuthorizeCacheSecurityGroupIngress = ElastiCache-    type Rs AuthorizeCacheSecurityGroupIngress = AuthorizeCacheSecurityGroupIngressResponse+-- | 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:+--+-- * 'acsgirsCacheSecurityGroup'+--+-- * 'acsgirsStatus'+authorizeCacheSecurityGroupIngressResponse+    :: Int -- ^ 'acsgirsStatus'+    -> AuthorizeCacheSecurityGroupIngressResponse+authorizeCacheSecurityGroupIngressResponse pStatus_ =+    AuthorizeCacheSecurityGroupIngressResponse'+    { _acsgirsCacheSecurityGroup = Nothing+    , _acsgirsStatus = pStatus_+    } -    request  = post "AuthorizeCacheSecurityGroupIngress"-    response = xmlResponse+-- | Undocumented member.+acsgirsCacheSecurityGroup :: Lens' AuthorizeCacheSecurityGroupIngressResponse (Maybe CacheSecurityGroup)+acsgirsCacheSecurityGroup = lens _acsgirsCacheSecurityGroup (\ s a -> s{_acsgirsCacheSecurityGroup = a}); -instance FromXML AuthorizeCacheSecurityGroupIngressResponse where-    parseXML = withElement "AuthorizeCacheSecurityGroupIngressResult" $ \x -> AuthorizeCacheSecurityGroupIngressResponse-        <$> x .@? "CacheSecurityGroup"+-- | The response status code.+acsgirsStatus :: Lens' AuthorizeCacheSecurityGroupIngressResponse Int+acsgirsStatus = lens _acsgirsStatus (\ s a -> s{_acsgirsStatus = a});
gen/Network/AWS/ElastiCache/CopySnapshot.hs view
@@ -1,120 +1,132 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.CopySnapshot--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /CopySnapshot/ action makes a copy of an existing snapshot.+-- The /CopySnapshot/ action makes a copy of an existing snapshot. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CopySnapshot.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CopySnapshot.html AWS API Reference> for CopySnapshot. module Network.AWS.ElastiCache.CopySnapshot     (-    -- * Request-      CopySnapshot-    -- ** Request constructor-    , copySnapshot-    -- ** Request lenses+    -- * Creating a Request+      copySnapshot+    , CopySnapshot+    -- * Request Lenses     , csSourceSnapshotName     , csTargetSnapshotName -    -- * Response-    , CopySnapshotResponse-    -- ** Response constructor+    -- * Destructuring the Response     , copySnapshotResponse-    -- ** Response lenses-    , csrSnapshot+    , CopySnapshotResponse+    -- * Response Lenses+    , csrsSnapshot+    , csrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data CopySnapshot = CopySnapshot-    { _csSourceSnapshotName :: Text-    , _csTargetSnapshotName :: Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'CopySnapshot' constructor.+-- | Represents the input of a /CopySnapshotMessage/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'copySnapshot' smart constructor.+data CopySnapshot = CopySnapshot'+    { _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. ----- * 'csSourceSnapshotName' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'csTargetSnapshotName' @::@ 'Text'+-- * 'csSourceSnapshotName' ---copySnapshot :: Text -- ^ 'csSourceSnapshotName'-             -> Text -- ^ 'csTargetSnapshotName'-             -> CopySnapshot-copySnapshot p1 p2 = CopySnapshot-    { _csSourceSnapshotName = p1-    , _csTargetSnapshotName = p2+-- * 'csTargetSnapshotName'+copySnapshot+    :: Text -- ^ 'csSourceSnapshotName'+    -> Text -- ^ 'csTargetSnapshotName'+    -> CopySnapshot+copySnapshot pSourceSnapshotName_ pTargetSnapshotName_ =+    CopySnapshot'+    { _csSourceSnapshotName = pSourceSnapshotName_+    , _csTargetSnapshotName = pTargetSnapshotName_     }  -- | The name of an existing snapshot from which to copy. csSourceSnapshotName :: Lens' CopySnapshot Text-csSourceSnapshotName =-    lens _csSourceSnapshotName (\s a -> s { _csSourceSnapshotName = a })+csSourceSnapshotName = lens _csSourceSnapshotName (\ s a -> s{_csSourceSnapshotName = a});  -- | A name for the copied snapshot. csTargetSnapshotName :: Lens' CopySnapshot Text-csTargetSnapshotName =-    lens _csTargetSnapshotName (\s a -> s { _csTargetSnapshotName = a })--newtype CopySnapshotResponse = CopySnapshotResponse-    { _csrSnapshot :: Maybe Snapshot-    } deriving (Eq, Read, Show)+csTargetSnapshotName = lens _csTargetSnapshotName (\ s a -> s{_csTargetSnapshotName = a}); --- | 'CopySnapshotResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'csrSnapshot' @::@ 'Maybe' 'Snapshot'----copySnapshotResponse :: CopySnapshotResponse-copySnapshotResponse = CopySnapshotResponse-    { _csrSnapshot = Nothing-    }+instance AWSRequest CopySnapshot where+        type Sv CopySnapshot = ElastiCache+        type Rs CopySnapshot = CopySnapshotResponse+        request = postQuery+        response+          = receiveXMLWrapper "CopySnapshotResult"+              (\ s h x ->+                 CopySnapshotResponse' <$>+                   (x .@? "Snapshot") <*> (pure (fromEnum s))) -csrSnapshot :: Lens' CopySnapshotResponse (Maybe Snapshot)-csrSnapshot = lens _csrSnapshot (\s a -> s { _csrSnapshot = a })+instance ToHeaders CopySnapshot where+        toHeaders = const mempty  instance ToPath CopySnapshot where-    toPath = const "/"+        toPath = const "/"  instance ToQuery CopySnapshot where-    toQuery CopySnapshot{..} = mconcat-        [ "SourceSnapshotName" =? _csSourceSnapshotName-        , "TargetSnapshotName" =? _csTargetSnapshotName-        ]+        toQuery CopySnapshot'{..}+          = mconcat+              ["Action" =: ("CopySnapshot" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "SourceSnapshotName" =: _csSourceSnapshotName,+               "TargetSnapshotName" =: _csTargetSnapshotName] -instance ToHeaders CopySnapshot+-- | /See:/ 'copySnapshotResponse' smart constructor.+data CopySnapshotResponse = CopySnapshotResponse'+    { _csrsSnapshot :: !(Maybe Snapshot)+    , _csrsStatus   :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest CopySnapshot where-    type Sv CopySnapshot = ElastiCache-    type Rs CopySnapshot = CopySnapshotResponse+-- | 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:+--+-- * 'csrsSnapshot'+--+-- * 'csrsStatus'+copySnapshotResponse+    :: Int -- ^ 'csrsStatus'+    -> CopySnapshotResponse+copySnapshotResponse pStatus_ =+    CopySnapshotResponse'+    { _csrsSnapshot = Nothing+    , _csrsStatus = pStatus_+    } -    request  = post "CopySnapshot"-    response = xmlResponse+-- | Undocumented member.+csrsSnapshot :: Lens' CopySnapshotResponse (Maybe Snapshot)+csrsSnapshot = lens _csrsSnapshot (\ s a -> s{_csrsSnapshot = a}); -instance FromXML CopySnapshotResponse where-    parseXML = withElement "CopySnapshotResult" $ \x -> CopySnapshotResponse-        <$> x .@? "Snapshot"+-- | The response status code.+csrsStatus :: Lens' CopySnapshotResponse Int+csrsStatus = lens _csrsStatus (\ s a -> s{_csrsStatus = a});
gen/Network/AWS/ElastiCache/CreateCacheCluster.hs view
@@ -1,457 +1,508 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.CreateCacheCluster--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /CreateCacheCluster/ action creates a cache cluster. All nodes in the cache--- cluster run the same protocol-compliant cache engine software, either--- Memcached or Redis.+-- The /CreateCacheCluster/ action creates a cache cluster. All nodes in+-- the cache cluster run the same protocol-compliant cache engine software,+-- either Memcached or Redis. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheCluster.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheCluster.html AWS API Reference> for CreateCacheCluster. module Network.AWS.ElastiCache.CreateCacheCluster     (-    -- * Request-      CreateCacheCluster-    -- ** Request constructor-    , createCacheCluster-    -- ** Request lenses-    , cccAZMode-    , cccAutoMinorVersionUpgrade-    , cccCacheClusterId+    -- * Creating a Request+      createCacheCluster+    , CreateCacheCluster+    -- * Request Lenses     , cccCacheNodeType+    , cccEngineVersion+    , cccSecurityGroupIds+    , cccAutoMinorVersionUpgrade+    , cccSnapshotARNs     , cccCacheParameterGroupName-    , cccCacheSecurityGroupNames-    , cccCacheSubnetGroupName+    , cccSnapshotWindow     , cccEngine-    , cccEngineVersion-    , cccNotificationTopicArn-    , cccNumCacheNodes-    , cccPort-    , cccPreferredAvailabilityZone     , cccPreferredAvailabilityZones     , cccPreferredMaintenanceWindow-    , cccReplicationGroupId-    , cccSecurityGroupIds-    , cccSnapshotArns-    , cccSnapshotName+    , cccCacheSubnetGroupName+    , cccPreferredAvailabilityZone     , cccSnapshotRetentionLimit-    , cccSnapshotWindow+    , cccAZMode+    , cccSnapshotName+    , cccReplicationGroupId+    , cccNotificationTopicARN     , cccTags+    , cccNumCacheNodes+    , cccCacheSecurityGroupNames+    , cccPort+    , cccCacheClusterId -    -- * Response-    , CreateCacheClusterResponse-    -- ** Response constructor+    -- * Destructuring the Response     , createCacheClusterResponse-    -- ** Response lenses-    , cccrCacheCluster+    , CreateCacheClusterResponse+    -- * Response Lenses+    , cccrsCacheCluster+    , cccrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data CreateCacheCluster = CreateCacheCluster-    { _cccAZMode                     :: Maybe AZMode-    , _cccAutoMinorVersionUpgrade    :: Maybe Bool-    , _cccCacheClusterId             :: Text-    , _cccCacheNodeType              :: Maybe Text-    , _cccCacheParameterGroupName    :: Maybe Text-    , _cccCacheSecurityGroupNames    :: List "member" Text-    , _cccCacheSubnetGroupName       :: Maybe Text-    , _cccEngine                     :: Maybe Text-    , _cccEngineVersion              :: Maybe Text-    , _cccNotificationTopicArn       :: Maybe Text-    , _cccNumCacheNodes              :: Maybe Int-    , _cccPort                       :: Maybe Int-    , _cccPreferredAvailabilityZone  :: Maybe Text-    , _cccPreferredAvailabilityZones :: List "member" Text-    , _cccPreferredMaintenanceWindow :: Maybe Text-    , _cccReplicationGroupId         :: Maybe Text-    , _cccSecurityGroupIds           :: List "member" Text-    , _cccSnapshotArns               :: List "member" Text-    , _cccSnapshotName               :: Maybe Text-    , _cccSnapshotRetentionLimit     :: Maybe Int-    , _cccSnapshotWindow             :: Maybe Text-    , _cccTags                       :: List "member" Tag-    } deriving (Eq, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'CreateCacheCluster' constructor.+-- | Represents the input of a /CreateCacheCluster/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'createCacheCluster' smart constructor.+data CreateCacheCluster = CreateCacheCluster'+    { _cccCacheNodeType              :: !(Maybe Text)+    , _cccEngineVersion              :: !(Maybe Text)+    , _cccSecurityGroupIds           :: !(Maybe [Text])+    , _cccAutoMinorVersionUpgrade    :: !(Maybe Bool)+    , _cccSnapshotARNs               :: !(Maybe [Text])+    , _cccCacheParameterGroupName    :: !(Maybe Text)+    , _cccSnapshotWindow             :: !(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)+    , _cccTags                       :: !(Maybe [Tag])+    , _cccNumCacheNodes              :: !(Maybe Int)+    , _cccCacheSecurityGroupNames    :: !(Maybe [Text])+    , _cccPort                       :: !(Maybe Int)+    , _cccCacheClusterId             :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateCacheCluster' with the minimum fields required to make a request. ----- * 'cccAZMode' @::@ 'Maybe' 'AZMode'+-- Use one of the following lenses to modify other fields as desired: ----- * 'cccAutoMinorVersionUpgrade' @::@ 'Maybe' 'Bool'+-- * 'cccCacheNodeType' ----- * 'cccCacheClusterId' @::@ 'Text'+-- * 'cccEngineVersion' ----- * 'cccCacheNodeType' @::@ 'Maybe' 'Text'+-- * 'cccSecurityGroupIds' ----- * 'cccCacheParameterGroupName' @::@ 'Maybe' 'Text'+-- * 'cccAutoMinorVersionUpgrade' ----- * 'cccCacheSecurityGroupNames' @::@ ['Text']+-- * 'cccSnapshotARNs' ----- * 'cccCacheSubnetGroupName' @::@ 'Maybe' 'Text'+-- * 'cccCacheParameterGroupName' ----- * 'cccEngine' @::@ 'Maybe' 'Text'+-- * 'cccSnapshotWindow' ----- * 'cccEngineVersion' @::@ 'Maybe' 'Text'+-- * 'cccEngine' ----- * 'cccNotificationTopicArn' @::@ 'Maybe' 'Text'+-- * 'cccPreferredAvailabilityZones' ----- * 'cccNumCacheNodes' @::@ 'Maybe' 'Int'+-- * 'cccPreferredMaintenanceWindow' ----- * 'cccPort' @::@ 'Maybe' 'Int'+-- * 'cccCacheSubnetGroupName' ----- * 'cccPreferredAvailabilityZone' @::@ 'Maybe' 'Text'+-- * 'cccPreferredAvailabilityZone' ----- * 'cccPreferredAvailabilityZones' @::@ ['Text']+-- * 'cccSnapshotRetentionLimit' ----- * 'cccPreferredMaintenanceWindow' @::@ 'Maybe' 'Text'+-- * 'cccAZMode' ----- * 'cccReplicationGroupId' @::@ 'Maybe' 'Text'+-- * 'cccSnapshotName' ----- * 'cccSecurityGroupIds' @::@ ['Text']+-- * 'cccReplicationGroupId' ----- * 'cccSnapshotArns' @::@ ['Text']+-- * 'cccNotificationTopicARN' ----- * 'cccSnapshotName' @::@ 'Maybe' 'Text'+-- * 'cccTags' ----- * 'cccSnapshotRetentionLimit' @::@ 'Maybe' 'Int'+-- * 'cccNumCacheNodes' ----- * 'cccSnapshotWindow' @::@ 'Maybe' 'Text'+-- * 'cccCacheSecurityGroupNames' ----- * 'cccTags' @::@ ['Tag']+-- * 'cccPort' ---createCacheCluster :: Text -- ^ 'cccCacheClusterId'-                   -> CreateCacheCluster-createCacheCluster p1 = CreateCacheCluster-    { _cccCacheClusterId             = p1-    , _cccReplicationGroupId         = Nothing-    , _cccAZMode                     = Nothing-    , _cccPreferredAvailabilityZone  = Nothing-    , _cccPreferredAvailabilityZones = mempty-    , _cccNumCacheNodes              = Nothing-    , _cccCacheNodeType              = Nothing-    , _cccEngine                     = Nothing-    , _cccEngineVersion              = Nothing-    , _cccCacheParameterGroupName    = Nothing-    , _cccCacheSubnetGroupName       = Nothing-    , _cccCacheSecurityGroupNames    = mempty-    , _cccSecurityGroupIds           = mempty-    , _cccTags                       = mempty-    , _cccSnapshotArns               = mempty-    , _cccSnapshotName               = Nothing+-- * 'cccCacheClusterId'+createCacheCluster+    :: Text -- ^ 'cccCacheClusterId'+    -> CreateCacheCluster+createCacheCluster pCacheClusterId_ =+    CreateCacheCluster'+    { _cccCacheNodeType = Nothing+    , _cccEngineVersion = Nothing+    , _cccSecurityGroupIds = Nothing+    , _cccAutoMinorVersionUpgrade = Nothing+    , _cccSnapshotARNs = Nothing+    , _cccCacheParameterGroupName = Nothing+    , _cccSnapshotWindow = Nothing+    , _cccEngine = Nothing+    , _cccPreferredAvailabilityZones = Nothing     , _cccPreferredMaintenanceWindow = Nothing-    , _cccPort                       = Nothing-    , _cccNotificationTopicArn       = Nothing-    , _cccAutoMinorVersionUpgrade    = Nothing-    , _cccSnapshotRetentionLimit     = Nothing-    , _cccSnapshotWindow             = Nothing+    , _cccCacheSubnetGroupName = Nothing+    , _cccPreferredAvailabilityZone = Nothing+    , _cccSnapshotRetentionLimit = Nothing+    , _cccAZMode = Nothing+    , _cccSnapshotName = Nothing+    , _cccReplicationGroupId = Nothing+    , _cccNotificationTopicARN = Nothing+    , _cccTags = Nothing+    , _cccNumCacheNodes = Nothing+    , _cccCacheSecurityGroupNames = Nothing+    , _cccPort = Nothing+    , _cccCacheClusterId = pCacheClusterId_     } --- | Specifies whether the nodes in this Memcached node group 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 :: Lens' CreateCacheCluster (Maybe AZMode)-cccAZMode = lens _cccAZMode (\s a -> s { _cccAZMode = a })---- | This parameter is currently disabled.-cccAutoMinorVersionUpgrade :: Lens' CreateCacheCluster (Maybe Bool)-cccAutoMinorVersionUpgrade =-    lens _cccAutoMinorVersionUpgrade-        (\s a -> s { _cccAutoMinorVersionUpgrade = a })---- | The node group 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.-cccCacheClusterId :: Lens' CreateCacheCluster Text-cccCacheClusterId =-    lens _cccCacheClusterId (\s a -> s { _cccCacheClusterId = a })- -- | The compute and memory capacity of the nodes in the node group. -- -- 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' 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:+-- -   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'+--     -   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' ----- All t2 instances are created in an Amazon Virtual Private Cloud (VPC). Redis backup/restore is not supported for t2 instances.--- Redis Append-only files (AOF) functionality is not supported for t1 or t2--- instances.  For a complete listing of cache node types and specifications,--- see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#CacheParameterGroups.Memcached.NodeSpecific Cache NodeType-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#CacheParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parametersfor Redis>.+-- __Notes:__+--+-- -   All t2 instances are created in an Amazon Virtual Private Cloud+--     (VPC).+-- -   Redis backup\/restore is not supported for t2 instances.+-- -   Redis Append-only files (AOF) functionality is not supported for t1+--     or t2 instances.+--+-- For a complete listing of cache node types and specifications, see+-- <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details>+-- and+-- <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#CacheParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached>+-- or+-- <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#CacheParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis>. cccCacheNodeType :: Lens' CreateCacheCluster (Maybe Text)-cccCacheNodeType = lens _cccCacheNodeType (\s a -> s { _cccCacheNodeType = a })+cccCacheNodeType = lens _cccCacheNodeType (\ s a -> s{_cccCacheNodeType = 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.-cccCacheParameterGroupName :: Lens' CreateCacheCluster (Maybe Text)-cccCacheParameterGroupName =-    lens _cccCacheParameterGroupName-        (\s a -> s { _cccCacheParameterGroupName = a })+-- | The version number of the cache engine to be used for this cache+-- cluster. To view the supported cache engine versions, use the+-- /DescribeCacheEngineVersions/ action.+cccEngineVersion :: Lens' CreateCacheCluster (Maybe Text)+cccEngineVersion = lens _cccEngineVersion (\ s a -> s{_cccEngineVersion = a}); --- | A list of security group names to associate with this cache cluster.+-- | One or more VPC security groups associated with the cache cluster. ----- Use this parameter only when you are creating a cache cluster outside of an+-- Use this parameter only when you are creating a cache cluster in an -- Amazon Virtual Private Cloud (VPC).-cccCacheSecurityGroupNames :: Lens' CreateCacheCluster [Text]-cccCacheSecurityGroupNames =-    lens _cccCacheSecurityGroupNames-        (\s a -> s { _cccCacheSecurityGroupNames = a })-            . _List+cccSecurityGroupIds :: Lens' CreateCacheCluster [Text]+cccSecurityGroupIds = lens _cccSecurityGroupIds (\ s a -> s{_cccSecurityGroupIds = a}) . _Default . _Coerce; --- | 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 (VPC).-cccCacheSubnetGroupName :: Lens' CreateCacheCluster (Maybe Text)-cccCacheSubnetGroupName =-    lens _cccCacheSubnetGroupName (\s a -> s { _cccCacheSubnetGroupName = a })+-- | This parameter is currently disabled.+cccAutoMinorVersionUpgrade :: Lens' CreateCacheCluster (Maybe Bool)+cccAutoMinorVersionUpgrade = lens _cccAutoMinorVersionUpgrade (\ s a -> s{_cccAutoMinorVersionUpgrade = a}); --- | The name of the cache engine to be used for this cache cluster.+-- | 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 will be used to populate the node group. The Amazon S3+-- object name in the ARN cannot contain any commas. ----- Valid values for this parameter are:+-- __Note:__ This parameter is only valid if the 'Engine' parameter is+-- 'redis'. ----- 'memcached' | 'redis'-cccEngine :: Lens' CreateCacheCluster (Maybe Text)-cccEngine = lens _cccEngine (\s a -> s { _cccEngine = a })+-- Example of an Amazon S3 ARN: 'arn:aws:s3:::my_bucket\/snapshot1.rdb'+cccSnapshotARNs :: Lens' CreateCacheCluster [Text]+cccSnapshotARNs = lens _cccSnapshotARNs (\ s a -> s{_cccSnapshotARNs = a}) . _Default . _Coerce; --- | The version number of the cache engine to be used for this cache cluster. To--- view the supported cache engine versions, use the /DescribeCacheEngineVersions/--- action.-cccEngineVersion :: Lens' CreateCacheCluster (Maybe Text)-cccEngineVersion = lens _cccEngineVersion (\s a -> s { _cccEngineVersion = 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.+cccCacheParameterGroupName :: Lens' CreateCacheCluster (Maybe Text)+cccCacheParameterGroupName = lens _cccCacheParameterGroupName (\ s a -> s{_cccCacheParameterGroupName = a}); --- | The Amazon Resource Name (ARN) of the Amazon Simple Notification Service--- (SNS) topic to which notifications will be sent.+-- | The daily time range (in UTC) during which ElastiCache will begin taking+-- a daily snapshot of your node group. ----- The Amazon SNS topic owner must be the same as the cache cluster owner.-cccNotificationTopicArn :: Lens' CreateCacheCluster (Maybe Text)-cccNotificationTopicArn =-    lens _cccNotificationTopicArn (\s a -> s { _cccNotificationTopicArn = a })---- | The initial number of cache nodes that the cache cluster will have.+-- Example: '05:00-09:00' ----- For clusters running Redis, this value must be 1. For clusters running--- Memcached, this value must be between 1 and 20.+-- If you do not specify this parameter, then ElastiCache will+-- automatically choose an appropriate time range. ----- 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 })---- | The port number on which each of the cache nodes will accept connections.-cccPort :: Lens' CreateCacheCluster (Maybe Int)-cccPort = lens _cccPort (\s a -> s { _cccPort = a })+-- __Note:__ This parameter is only valid if the 'Engine' parameter is+-- 'redis'.+cccSnapshotWindow :: Lens' CreateCacheCluster (Maybe Text)+cccSnapshotWindow = lens _cccSnapshotWindow (\ s a -> s{_cccSnapshotWindow = a}); --- | The EC2 Availability Zone in which the cache cluster will be created.+-- | The name of the cache engine to be used for this cache cluster. ----- 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'.+-- Valid values for this parameter are: ----- Default: System chosen Availability Zone.-cccPreferredAvailabilityZone :: Lens' CreateCacheCluster (Maybe Text)-cccPreferredAvailabilityZone =-    lens _cccPreferredAvailabilityZone-        (\s a -> s { _cccPreferredAvailabilityZone = a })+-- 'memcached' | 'redis'+cccEngine :: Lens' CreateCacheCluster (Maybe Text)+cccEngine = lens _cccEngine (\ s a -> s{_cccEngine = a}); --- | A list of the Availability Zones in which cache nodes will be created. The--- order of the zones in the list is not important.+-- | A list of the Availability Zones in which cache nodes will be created.+-- The order of the zones in the list is not important. -- -- This option is only supported on Memcached. ----- If you are creating your cache cluster in an Amazon VPC (recommended) you--- can only locate nodes in Availability Zones that are associated with the--- subnets in the selected subnet group.+-- If you are creating your cache cluster in an Amazon VPC (recommended)+-- you can only locate nodes in Availability Zones that are associated with+-- the subnets in the selected subnet group. ----- The number of Availability Zones listed must equal the value of 'NumCacheNodes'--- .+-- The number of Availability Zones listed must equal the value of+-- 'NumCacheNodes'. ----- If you want all the nodes in the same Availability Zone, use 'PreferredAvailabilityZone' instead, or repeat the Availability Zone multiple times in the list.+-- 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. ----- Example: One Memcached node in each of three different Availability Zones: 'PreferredAvailabilityZones.member.1=us-west-2a&PreferredAvailabilityZones.member.2=us-west-2b&PreferredAvailabilityZones.member.3=us-west-2c'+-- Example: One Memcached node in each of three different Availability+-- Zones:+-- 'PreferredAvailabilityZones.member.1=us-west-2a&PreferredAvailabilityZones.member.2=us-west-2b&PreferredAvailabilityZones.member.3=us-west-2c' ----- Example: All three Memcached nodes in one Availability Zone: 'PreferredAvailabilityZones.member.1=us-west-2a&PreferredAvailabilityZones.member.2=us-west-2a&PreferredAvailabilityZones.member.3=us-west-2a'+-- Example: All three Memcached nodes in one Availability Zone:+-- 'PreferredAvailabilityZones.member.1=us-west-2a&PreferredAvailabilityZones.member.2=us-west-2a&PreferredAvailabilityZones.member.3=us-west-2a' cccPreferredAvailabilityZones :: Lens' CreateCacheCluster [Text]-cccPreferredAvailabilityZones =-    lens _cccPreferredAvailabilityZones-        (\s a -> s { _cccPreferredAvailabilityZones = a })-            . _List+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 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: ----- 'sun' 'mon' 'tue' 'wed' 'thu' 'fri' 'sat'  Example: 'sun:05:00-sun:09:00'+-- -   'sun'+-- -   'mon'+-- -   'tue'+-- -   'wed'+-- -   'thu'+-- -   'fri'+-- -   'sat'+--+-- Example: 'sun:05:00-sun:09:00' cccPreferredMaintenanceWindow :: Lens' CreateCacheCluster (Maybe Text)-cccPreferredMaintenanceWindow =-    lens _cccPreferredMaintenanceWindow-        (\s a -> s { _cccPreferredMaintenanceWindow = a })+cccPreferredMaintenanceWindow = lens _cccPreferredMaintenanceWindow (\ s a -> s{_cccPreferredMaintenanceWindow = a}); --- | The ID of the replication group to which this cache cluster should belong. If--- this parameter is specified, the cache cluster will be added to the specified--- replication group as a read replica; otherwise, the cache cluster will be a--- standalone primary that is not part of any replication group.+-- | The name of the subnet group to be used for the cache cluster. ----- If the specified replication group is Multi-AZ enabled and the availability--- zone is not specified, the cache cluster will be created in availability--- zones that provide the best spread of read replicas across availability zones.+-- Use this parameter only when you are creating a cache cluster in an+-- Amazon Virtual Private Cloud (VPC).+cccCacheSubnetGroupName :: Lens' CreateCacheCluster (Maybe Text)+cccCacheSubnetGroupName = lens _cccCacheSubnetGroupName (\ s a -> s{_cccCacheSubnetGroupName = a});++-- | The EC2 Availability Zone in which the cache cluster will be created. ----- Note: This parameter is only valid if the 'Engine' parameter is 'redis'.-cccReplicationGroupId :: Lens' CreateCacheCluster (Maybe Text)-cccReplicationGroupId =-    lens _cccReplicationGroupId (\s a -> s { _cccReplicationGroupId = a })+-- 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 :: Lens' CreateCacheCluster (Maybe Text)+cccPreferredAvailabilityZone = lens _cccPreferredAvailabilityZone (\ s a -> s{_cccPreferredAvailabilityZone = a}); --- | One or more VPC security groups associated with the cache cluster.+-- | The number of days for which ElastiCache will retain automatic snapshots+-- before deleting them. For example, if you set 'SnapshotRetentionLimit'+-- to 5, then a snapshot that was taken today will be retained for 5 days+-- before being deleted. ----- Use this parameter only when you are creating a cache cluster in an Amazon--- Virtual Private Cloud (VPC).-cccSecurityGroupIds :: Lens' CreateCacheCluster [Text]-cccSecurityGroupIds =-    lens _cccSecurityGroupIds (\s a -> s { _cccSecurityGroupIds = a })-        . _List+-- __Note:__ This parameter is only valid if the 'Engine' parameter is+-- 'redis'.+--+-- Default: 0 (i.e., automatic backups are disabled for this cache+-- cluster).+cccSnapshotRetentionLimit :: Lens' CreateCacheCluster (Maybe Int)+cccSnapshotRetentionLimit = lens _cccSnapshotRetentionLimit (\ s a -> s{_cccSnapshotRetentionLimit = a}); --- | 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 will be used to populate the node group. The Amazon S3 object--- name in the ARN cannot contain any commas.+-- | Specifies whether the nodes in this Memcached node group are created in+-- a single Availability Zone or created across multiple Availability Zones+-- in the cluster\'s region. ----- Note: This parameter is only valid if the 'Engine' parameter is 'redis'.+-- This parameter is only supported for Memcached cache clusters. ----- Example of an Amazon S3 ARN: 'arn:aws:s3:::my_bucket/snapshot1.rdb'-cccSnapshotArns :: Lens' CreateCacheCluster [Text]-cccSnapshotArns = lens _cccSnapshotArns (\s a -> s { _cccSnapshotArns = a }) . _List+-- 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}); --- | The name of a snapshot from which to restore data into the new node group.--- The snapshot status changes to 'restoring' while the new node group is being--- created.+-- | The name of a snapshot from which to restore data into the new node+-- group. The snapshot status changes to 'restoring' while the new node+-- group is being created. ----- Note: This parameter is only valid if the 'Engine' parameter is 'redis'.+-- __Note:__ This parameter is only valid if the 'Engine' parameter is+-- 'redis'. cccSnapshotName :: Lens' CreateCacheCluster (Maybe Text)-cccSnapshotName = lens _cccSnapshotName (\s a -> s { _cccSnapshotName = a })+cccSnapshotName = lens _cccSnapshotName (\ s a -> s{_cccSnapshotName = a}); --- | The number of days for which ElastiCache will retain automatic snapshots--- before deleting them. For example, if you set 'SnapshotRetentionLimit' to 5,--- then a snapshot that was taken today will be retained for 5 days before being--- deleted.+-- | The ID of the replication group to which this cache cluster should+-- belong. If this parameter is specified, the cache cluster will be added+-- to the specified replication group as a read replica; otherwise, the+-- cache cluster will be a standalone primary that is not part of any+-- replication group. ----- Note: This parameter is only valid if the 'Engine' parameter is 'redis'.+-- If the specified replication group is Multi-AZ enabled and the+-- availability zone is not specified, the cache cluster will be created in+-- availability zones that provide the best spread of read replicas across+-- availability zones. ----- Default: 0 (i.e., automatic backups are disabled for this cache cluster).-cccSnapshotRetentionLimit :: Lens' CreateCacheCluster (Maybe Int)-cccSnapshotRetentionLimit =-    lens _cccSnapshotRetentionLimit-        (\s a -> s { _cccSnapshotRetentionLimit = a })+-- __Note:__ This parameter is only valid if the 'Engine' parameter is+-- 'redis'.+cccReplicationGroupId :: Lens' CreateCacheCluster (Maybe Text)+cccReplicationGroupId = lens _cccReplicationGroupId (\ s a -> s{_cccReplicationGroupId = a}); --- | The daily time range (in UTC) during which ElastiCache will begin taking a--- daily snapshot of your node group.------ Example: '05:00-09:00'------ If you do not specify this parameter, then ElastiCache will automatically--- choose an appropriate time range.+-- | The Amazon Resource Name (ARN) of the Amazon Simple Notification Service+-- (SNS) topic to which notifications will be sent. ----- Note: This parameter is only valid if the 'Engine' parameter is 'redis'.-cccSnapshotWindow :: Lens' CreateCacheCluster (Maybe Text)-cccSnapshotWindow =-    lens _cccSnapshotWindow (\s a -> s { _cccSnapshotWindow = a })+-- The Amazon SNS topic owner must be the same as the cache cluster owner.+cccNotificationTopicARN :: Lens' CreateCacheCluster (Maybe Text)+cccNotificationTopicARN = lens _cccNotificationTopicARN (\ s a -> s{_cccNotificationTopicARN = 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. cccTags :: Lens' CreateCacheCluster [Tag]-cccTags = lens _cccTags (\s a -> s { _cccTags = a }) . _List+cccTags = lens _cccTags (\ s a -> s{_cccTags = a}) . _Default . _Coerce; -newtype CreateCacheClusterResponse = CreateCacheClusterResponse-    { _cccrCacheCluster :: Maybe CacheCluster-    } deriving (Eq, Read, Show)+-- | The initial number of cache nodes that the cache cluster will have.+--+-- 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/>.+cccNumCacheNodes :: Lens' CreateCacheCluster (Maybe Int)+cccNumCacheNodes = lens _cccNumCacheNodes (\ s a -> s{_cccNumCacheNodes = a}); --- | 'CreateCacheClusterResponse' constructor.+-- | A list of security group names to associate with this cache cluster. ----- The fields accessible through corresponding lenses are:+-- Use this parameter only when you are creating a cache cluster outside of+-- an Amazon Virtual Private Cloud (VPC).+cccCacheSecurityGroupNames :: Lens' CreateCacheCluster [Text]+cccCacheSecurityGroupNames = lens _cccCacheSecurityGroupNames (\ s a -> s{_cccCacheSecurityGroupNames = a}) . _Default . _Coerce;++-- | The port number on which each of the cache nodes will accept+-- connections.+cccPort :: Lens' CreateCacheCluster (Maybe Int)+cccPort = lens _cccPort (\ s a -> s{_cccPort = a});++-- | The node group identifier. This parameter is stored as a lowercase+-- string. ----- * 'cccrCacheCluster' @::@ 'Maybe' 'CacheCluster'+-- Constraints: ---createCacheClusterResponse :: CreateCacheClusterResponse-createCacheClusterResponse = CreateCacheClusterResponse-    { _cccrCacheCluster = Nothing-    }+-- -   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.+cccCacheClusterId :: Lens' CreateCacheCluster Text+cccCacheClusterId = lens _cccCacheClusterId (\ s a -> s{_cccCacheClusterId = a}); -cccrCacheCluster :: Lens' CreateCacheClusterResponse (Maybe CacheCluster)-cccrCacheCluster = lens _cccrCacheCluster (\s a -> s { _cccrCacheCluster = a })+instance AWSRequest CreateCacheCluster where+        type Sv CreateCacheCluster = ElastiCache+        type Rs CreateCacheCluster =+             CreateCacheClusterResponse+        request = postQuery+        response+          = receiveXMLWrapper "CreateCacheClusterResult"+              (\ s h x ->+                 CreateCacheClusterResponse' <$>+                   (x .@? "CacheCluster") <*> (pure (fromEnum s))) +instance ToHeaders CreateCacheCluster where+        toHeaders = const mempty+ instance ToPath CreateCacheCluster where-    toPath = const "/"+        toPath = const "/"  instance ToQuery CreateCacheCluster where-    toQuery CreateCacheCluster{..} = mconcat-        [ "AZMode"                     =? _cccAZMode-        , "AutoMinorVersionUpgrade"    =? _cccAutoMinorVersionUpgrade-        , "CacheClusterId"             =? _cccCacheClusterId-        , "CacheNodeType"              =? _cccCacheNodeType-        , "CacheParameterGroupName"    =? _cccCacheParameterGroupName-        , "CacheSecurityGroupNames"    =? _cccCacheSecurityGroupNames-        , "CacheSubnetGroupName"       =? _cccCacheSubnetGroupName-        , "Engine"                     =? _cccEngine-        , "EngineVersion"              =? _cccEngineVersion-        , "NotificationTopicArn"       =? _cccNotificationTopicArn-        , "NumCacheNodes"              =? _cccNumCacheNodes-        , "Port"                       =? _cccPort-        , "PreferredAvailabilityZone"  =? _cccPreferredAvailabilityZone-        , "PreferredAvailabilityZones" =? _cccPreferredAvailabilityZones-        , "PreferredMaintenanceWindow" =? _cccPreferredMaintenanceWindow-        , "ReplicationGroupId"         =? _cccReplicationGroupId-        , "SecurityGroupIds"           =? _cccSecurityGroupIds-        , "SnapshotArns"               =? _cccSnapshotArns-        , "SnapshotName"               =? _cccSnapshotName-        , "SnapshotRetentionLimit"     =? _cccSnapshotRetentionLimit-        , "SnapshotWindow"             =? _cccSnapshotWindow-        , "Tags"                       =? _cccTags-        ]+        toQuery CreateCacheCluster'{..}+          = mconcat+              ["Action" =: ("CreateCacheCluster" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "CacheNodeType" =: _cccCacheNodeType,+               "EngineVersion" =: _cccEngineVersion,+               "SecurityGroupIds" =:+                 toQuery+                   (toQueryList "SecurityGroupId" <$>+                      _cccSecurityGroupIds),+               "AutoMinorVersionUpgrade" =:+                 _cccAutoMinorVersionUpgrade,+               "SnapshotArns" =:+                 toQuery+                   (toQueryList "SnapshotArn" <$> _cccSnapshotARNs),+               "CacheParameterGroupName" =:+                 _cccCacheParameterGroupName,+               "SnapshotWindow" =: _cccSnapshotWindow,+               "Engine" =: _cccEngine,+               "PreferredAvailabilityZones" =:+                 toQuery+                   (toQueryList "PreferredAvailabilityZone" <$>+                      _cccPreferredAvailabilityZones),+               "PreferredMaintenanceWindow" =:+                 _cccPreferredMaintenanceWindow,+               "CacheSubnetGroupName" =: _cccCacheSubnetGroupName,+               "PreferredAvailabilityZone" =:+                 _cccPreferredAvailabilityZone,+               "SnapshotRetentionLimit" =:+                 _cccSnapshotRetentionLimit,+               "AZMode" =: _cccAZMode,+               "SnapshotName" =: _cccSnapshotName,+               "ReplicationGroupId" =: _cccReplicationGroupId,+               "NotificationTopicArn" =: _cccNotificationTopicARN,+               "Tags" =: toQuery (toQueryList "Tag" <$> _cccTags),+               "NumCacheNodes" =: _cccNumCacheNodes,+               "CacheSecurityGroupNames" =:+                 toQuery+                   (toQueryList "CacheSecurityGroupName" <$>+                      _cccCacheSecurityGroupNames),+               "Port" =: _cccPort,+               "CacheClusterId" =: _cccCacheClusterId] -instance ToHeaders CreateCacheCluster+-- | /See:/ 'createCacheClusterResponse' smart constructor.+data CreateCacheClusterResponse = CreateCacheClusterResponse'+    { _cccrsCacheCluster :: !(Maybe CacheCluster)+    , _cccrsStatus       :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest CreateCacheCluster where-    type Sv CreateCacheCluster = ElastiCache-    type Rs CreateCacheCluster = CreateCacheClusterResponse+-- | 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:+--+-- * 'cccrsCacheCluster'+--+-- * 'cccrsStatus'+createCacheClusterResponse+    :: Int -- ^ 'cccrsStatus'+    -> CreateCacheClusterResponse+createCacheClusterResponse pStatus_ =+    CreateCacheClusterResponse'+    { _cccrsCacheCluster = Nothing+    , _cccrsStatus = pStatus_+    } -    request  = post "CreateCacheCluster"-    response = xmlResponse+-- | Undocumented member.+cccrsCacheCluster :: Lens' CreateCacheClusterResponse (Maybe CacheCluster)+cccrsCacheCluster = lens _cccrsCacheCluster (\ s a -> s{_cccrsCacheCluster = a}); -instance FromXML CreateCacheClusterResponse where-    parseXML = withElement "CreateCacheClusterResult" $ \x -> CreateCacheClusterResponse-        <$> x .@? "CacheCluster"+-- | The response status code.+cccrsStatus :: Lens' CreateCacheClusterResponse Int+cccrsStatus = lens _cccrsStatus (\ s a -> s{_cccrsStatus = a});
gen/Network/AWS/ElastiCache/CreateCacheParameterGroup.hs view
@@ -1,140 +1,153 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.CreateCacheParameterGroup--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /CreateCacheParameterGroup/ action 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.+-- The /CreateCacheParameterGroup/ action 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. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheParameterGroup.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheParameterGroup.html AWS API Reference> for CreateCacheParameterGroup. module Network.AWS.ElastiCache.CreateCacheParameterGroup     (-    -- * Request-      CreateCacheParameterGroup-    -- ** Request constructor-    , createCacheParameterGroup-    -- ** Request lenses-    , ccpgCacheParameterGroupFamily+    -- * Creating a Request+      createCacheParameterGroup+    , CreateCacheParameterGroup+    -- * Request Lenses     , ccpgCacheParameterGroupName+    , ccpgCacheParameterGroupFamily     , ccpgDescription -    -- * Response-    , CreateCacheParameterGroupResponse-    -- ** Response constructor+    -- * Destructuring the Response     , createCacheParameterGroupResponse-    -- ** Response lenses-    , ccpgrCacheParameterGroup+    , CreateCacheParameterGroupResponse+    -- * Response Lenses+    , ccpgrsCacheParameterGroup+    , ccpgrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data CreateCacheParameterGroup = CreateCacheParameterGroup-    { _ccpgCacheParameterGroupFamily :: Text-    , _ccpgCacheParameterGroupName   :: Text-    , _ccpgDescription               :: Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'CreateCacheParameterGroup' constructor.+-- | Represents the input of a /CreateCacheParameterGroup/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'createCacheParameterGroup' smart constructor.+data CreateCacheParameterGroup = CreateCacheParameterGroup'+    { _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. ----- * 'ccpgCacheParameterGroupFamily' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'ccpgCacheParameterGroupName' @::@ 'Text'+-- * 'ccpgCacheParameterGroupName' ----- * 'ccpgDescription' @::@ 'Text'+-- * 'ccpgCacheParameterGroupFamily' ---createCacheParameterGroup :: Text -- ^ 'ccpgCacheParameterGroupName'-                          -> Text -- ^ 'ccpgCacheParameterGroupFamily'-                          -> Text -- ^ 'ccpgDescription'-                          -> CreateCacheParameterGroup-createCacheParameterGroup p1 p2 p3 = CreateCacheParameterGroup-    { _ccpgCacheParameterGroupName   = p1-    , _ccpgCacheParameterGroupFamily = p2-    , _ccpgDescription               = p3+-- * 'ccpgDescription'+createCacheParameterGroup+    :: Text -- ^ 'ccpgCacheParameterGroupName'+    -> Text -- ^ 'ccpgCacheParameterGroupFamily'+    -> Text -- ^ 'ccpgDescription'+    -> CreateCacheParameterGroup+createCacheParameterGroup pCacheParameterGroupName_ pCacheParameterGroupFamily_ pDescription_ =+    CreateCacheParameterGroup'+    { _ccpgCacheParameterGroupName = pCacheParameterGroupName_+    , _ccpgCacheParameterGroupFamily = pCacheParameterGroupFamily_+    , _ccpgDescription = pDescription_     } --- | The name of the cache parameter group family the cache parameter group can be--- used with.+-- | A user-specified name for the cache parameter group.+ccpgCacheParameterGroupName :: Lens' CreateCacheParameterGroup Text+ccpgCacheParameterGroupName = lens _ccpgCacheParameterGroupName (\ s a -> s{_ccpgCacheParameterGroupName = a});++-- | The name of the cache parameter group family the cache parameter group+-- can be used with. -- -- Valid values are: 'memcached1.4' | 'redis2.6' | 'redis2.8' ccpgCacheParameterGroupFamily :: Lens' CreateCacheParameterGroup Text-ccpgCacheParameterGroupFamily =-    lens _ccpgCacheParameterGroupFamily-        (\s a -> s { _ccpgCacheParameterGroupFamily = a })---- | A user-specified name for the cache parameter group.-ccpgCacheParameterGroupName :: Lens' CreateCacheParameterGroup Text-ccpgCacheParameterGroupName =-    lens _ccpgCacheParameterGroupName-        (\s a -> s { _ccpgCacheParameterGroupName = a })+ccpgCacheParameterGroupFamily = lens _ccpgCacheParameterGroupFamily (\ s a -> s{_ccpgCacheParameterGroupFamily = a});  -- | A user-specified description for the cache parameter group. ccpgDescription :: Lens' CreateCacheParameterGroup Text-ccpgDescription = lens _ccpgDescription (\s a -> s { _ccpgDescription = a })--newtype CreateCacheParameterGroupResponse = CreateCacheParameterGroupResponse-    { _ccpgrCacheParameterGroup :: Maybe CacheParameterGroup-    } deriving (Eq, Read, Show)+ccpgDescription = lens _ccpgDescription (\ s a -> s{_ccpgDescription = a}); --- | 'CreateCacheParameterGroupResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'ccpgrCacheParameterGroup' @::@ 'Maybe' 'CacheParameterGroup'----createCacheParameterGroupResponse :: CreateCacheParameterGroupResponse-createCacheParameterGroupResponse = CreateCacheParameterGroupResponse-    { _ccpgrCacheParameterGroup = Nothing-    }+instance AWSRequest CreateCacheParameterGroup where+        type Sv CreateCacheParameterGroup = ElastiCache+        type Rs CreateCacheParameterGroup =+             CreateCacheParameterGroupResponse+        request = postQuery+        response+          = receiveXMLWrapper "CreateCacheParameterGroupResult"+              (\ s h x ->+                 CreateCacheParameterGroupResponse' <$>+                   (x .@? "CacheParameterGroup") <*>+                     (pure (fromEnum s))) -ccpgrCacheParameterGroup :: Lens' CreateCacheParameterGroupResponse (Maybe CacheParameterGroup)-ccpgrCacheParameterGroup =-    lens _ccpgrCacheParameterGroup-        (\s a -> s { _ccpgrCacheParameterGroup = a })+instance ToHeaders CreateCacheParameterGroup where+        toHeaders = const mempty  instance ToPath CreateCacheParameterGroup where-    toPath = const "/"+        toPath = const "/"  instance ToQuery CreateCacheParameterGroup where-    toQuery CreateCacheParameterGroup{..} = mconcat-        [ "CacheParameterGroupFamily" =? _ccpgCacheParameterGroupFamily-        , "CacheParameterGroupName"   =? _ccpgCacheParameterGroupName-        , "Description"               =? _ccpgDescription-        ]+        toQuery CreateCacheParameterGroup'{..}+          = mconcat+              ["Action" =:+                 ("CreateCacheParameterGroup" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "CacheParameterGroupName" =:+                 _ccpgCacheParameterGroupName,+               "CacheParameterGroupFamily" =:+                 _ccpgCacheParameterGroupFamily,+               "Description" =: _ccpgDescription] -instance ToHeaders CreateCacheParameterGroup+-- | /See:/ 'createCacheParameterGroupResponse' smart constructor.+data CreateCacheParameterGroupResponse = CreateCacheParameterGroupResponse'+    { _ccpgrsCacheParameterGroup :: !(Maybe CacheParameterGroup)+    , _ccpgrsStatus              :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest CreateCacheParameterGroup where-    type Sv CreateCacheParameterGroup = ElastiCache-    type Rs CreateCacheParameterGroup = CreateCacheParameterGroupResponse+-- | 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:+--+-- * 'ccpgrsCacheParameterGroup'+--+-- * 'ccpgrsStatus'+createCacheParameterGroupResponse+    :: Int -- ^ 'ccpgrsStatus'+    -> CreateCacheParameterGroupResponse+createCacheParameterGroupResponse pStatus_ =+    CreateCacheParameterGroupResponse'+    { _ccpgrsCacheParameterGroup = Nothing+    , _ccpgrsStatus = pStatus_+    } -    request  = post "CreateCacheParameterGroup"-    response = xmlResponse+-- | Undocumented member.+ccpgrsCacheParameterGroup :: Lens' CreateCacheParameterGroupResponse (Maybe CacheParameterGroup)+ccpgrsCacheParameterGroup = lens _ccpgrsCacheParameterGroup (\ s a -> s{_ccpgrsCacheParameterGroup = a}); -instance FromXML CreateCacheParameterGroupResponse where-    parseXML = withElement "CreateCacheParameterGroupResult" $ \x -> CreateCacheParameterGroupResponse-        <$> x .@? "CacheParameterGroup"+-- | The response status code.+ccpgrsStatus :: Lens' CreateCacheParameterGroupResponse Int+ccpgrsStatus = lens _ccpgrsStatus (\ s a -> s{_ccpgrsStatus = a});
gen/Network/AWS/ElastiCache/CreateCacheSecurityGroup.hs view
@@ -1,133 +1,149 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.CreateCacheSecurityGroup--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /CreateCacheSecurityGroup/ action creates a new cache security group. Use a--- cache security group to control access to one or more cache clusters.+-- The /CreateCacheSecurityGroup/ action creates a new cache security+-- group. Use a cache security group to control access to one or more cache+-- clusters. ----- Cache security groups are only used when you are creating a cache cluster--- outside of an Amazon Virtual Private Cloud (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 cache+-- cluster outside of an Amazon Virtual Private Cloud (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>. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheSecurityGroup.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheSecurityGroup.html AWS API Reference> for CreateCacheSecurityGroup. module Network.AWS.ElastiCache.CreateCacheSecurityGroup     (-    -- * Request-      CreateCacheSecurityGroup-    -- ** Request constructor-    , createCacheSecurityGroup-    -- ** Request lenses+    -- * Creating a Request+      createCacheSecurityGroup+    , CreateCacheSecurityGroup+    -- * Request Lenses     , ccsgCacheSecurityGroupName     , ccsgDescription -    -- * Response-    , CreateCacheSecurityGroupResponse-    -- ** Response constructor+    -- * Destructuring the Response     , createCacheSecurityGroupResponse-    -- ** Response lenses-    , ccsgrCacheSecurityGroup+    , CreateCacheSecurityGroupResponse+    -- * Response Lenses+    , ccsgrsCacheSecurityGroup+    , ccsgrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data CreateCacheSecurityGroup = CreateCacheSecurityGroup-    { _ccsgCacheSecurityGroupName :: Text-    , _ccsgDescription            :: Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'CreateCacheSecurityGroup' constructor.+-- | Represents the input of a /CreateCacheSecurityGroup/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'createCacheSecurityGroup' smart constructor.+data CreateCacheSecurityGroup = CreateCacheSecurityGroup'+    { _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. ----- * 'ccsgCacheSecurityGroupName' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'ccsgDescription' @::@ 'Text'+-- * 'ccsgCacheSecurityGroupName' ---createCacheSecurityGroup :: Text -- ^ 'ccsgCacheSecurityGroupName'-                         -> Text -- ^ 'ccsgDescription'-                         -> CreateCacheSecurityGroup-createCacheSecurityGroup p1 p2 = CreateCacheSecurityGroup-    { _ccsgCacheSecurityGroupName = p1-    , _ccsgDescription            = p2+-- * 'ccsgDescription'+createCacheSecurityGroup+    :: Text -- ^ 'ccsgCacheSecurityGroupName'+    -> Text -- ^ 'ccsgDescription'+    -> CreateCacheSecurityGroup+createCacheSecurityGroup pCacheSecurityGroupName_ 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".+-- 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 })+ccsgCacheSecurityGroupName = lens _ccsgCacheSecurityGroupName (\ s a -> s{_ccsgCacheSecurityGroupName = a});  -- | A description for the cache security group. ccsgDescription :: Lens' CreateCacheSecurityGroup Text-ccsgDescription = lens _ccsgDescription (\s a -> s { _ccsgDescription = a })--newtype CreateCacheSecurityGroupResponse = CreateCacheSecurityGroupResponse-    { _ccsgrCacheSecurityGroup :: Maybe CacheSecurityGroup-    } deriving (Eq, Read, Show)+ccsgDescription = lens _ccsgDescription (\ s a -> s{_ccsgDescription = a}); --- | 'CreateCacheSecurityGroupResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'ccsgrCacheSecurityGroup' @::@ 'Maybe' 'CacheSecurityGroup'----createCacheSecurityGroupResponse :: CreateCacheSecurityGroupResponse-createCacheSecurityGroupResponse = CreateCacheSecurityGroupResponse-    { _ccsgrCacheSecurityGroup = Nothing-    }+instance AWSRequest CreateCacheSecurityGroup where+        type Sv CreateCacheSecurityGroup = ElastiCache+        type Rs CreateCacheSecurityGroup =+             CreateCacheSecurityGroupResponse+        request = postQuery+        response+          = receiveXMLWrapper "CreateCacheSecurityGroupResult"+              (\ s h x ->+                 CreateCacheSecurityGroupResponse' <$>+                   (x .@? "CacheSecurityGroup") <*> (pure (fromEnum s))) -ccsgrCacheSecurityGroup :: Lens' CreateCacheSecurityGroupResponse (Maybe CacheSecurityGroup)-ccsgrCacheSecurityGroup =-    lens _ccsgrCacheSecurityGroup (\s a -> s { _ccsgrCacheSecurityGroup = a })+instance ToHeaders CreateCacheSecurityGroup where+        toHeaders = const mempty  instance ToPath CreateCacheSecurityGroup where-    toPath = const "/"+        toPath = const "/"  instance ToQuery CreateCacheSecurityGroup where-    toQuery CreateCacheSecurityGroup{..} = mconcat-        [ "CacheSecurityGroupName" =? _ccsgCacheSecurityGroupName-        , "Description"            =? _ccsgDescription-        ]+        toQuery CreateCacheSecurityGroup'{..}+          = mconcat+              ["Action" =:+                 ("CreateCacheSecurityGroup" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "CacheSecurityGroupName" =:+                 _ccsgCacheSecurityGroupName,+               "Description" =: _ccsgDescription] -instance ToHeaders CreateCacheSecurityGroup+-- | /See:/ 'createCacheSecurityGroupResponse' smart constructor.+data CreateCacheSecurityGroupResponse = CreateCacheSecurityGroupResponse'+    { _ccsgrsCacheSecurityGroup :: !(Maybe CacheSecurityGroup)+    , _ccsgrsStatus             :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest CreateCacheSecurityGroup where-    type Sv CreateCacheSecurityGroup = ElastiCache-    type Rs CreateCacheSecurityGroup = CreateCacheSecurityGroupResponse+-- | 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:+--+-- * 'ccsgrsCacheSecurityGroup'+--+-- * 'ccsgrsStatus'+createCacheSecurityGroupResponse+    :: Int -- ^ 'ccsgrsStatus'+    -> CreateCacheSecurityGroupResponse+createCacheSecurityGroupResponse pStatus_ =+    CreateCacheSecurityGroupResponse'+    { _ccsgrsCacheSecurityGroup = Nothing+    , _ccsgrsStatus = pStatus_+    } -    request  = post "CreateCacheSecurityGroup"-    response = xmlResponse+-- | Undocumented member.+ccsgrsCacheSecurityGroup :: Lens' CreateCacheSecurityGroupResponse (Maybe CacheSecurityGroup)+ccsgrsCacheSecurityGroup = lens _ccsgrsCacheSecurityGroup (\ s a -> s{_ccsgrsCacheSecurityGroup = a}); -instance FromXML CreateCacheSecurityGroupResponse where-    parseXML = withElement "CreateCacheSecurityGroupResult" $ \x -> CreateCacheSecurityGroupResponse-        <$> x .@? "CacheSecurityGroup"+-- | The response status code.+ccsgrsStatus :: Lens' CreateCacheSecurityGroupResponse Int+ccsgrsStatus = lens _ccsgrsStatus (\ s a -> s{_ccsgrsStatus = a});
gen/Network/AWS/ElastiCache/CreateCacheSubnetGroup.hs view
@@ -1,141 +1,155 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.CreateCacheSubnetGroup--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /CreateCacheSubnetGroup/ action creates a new cache subnet group.+-- The /CreateCacheSubnetGroup/ action creates a new cache subnet group. ----- Use this parameter only when you are creating a cluster in an Amazon Virtual--- Private Cloud (VPC).+-- Use this parameter only when you are creating a cluster in an Amazon+-- Virtual Private Cloud (VPC). ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheSubnetGroup.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheSubnetGroup.html AWS API Reference> for CreateCacheSubnetGroup. module Network.AWS.ElastiCache.CreateCacheSubnetGroup     (-    -- * Request-      CreateCacheSubnetGroup-    -- ** Request constructor-    , createCacheSubnetGroup-    -- ** Request lenses-    , ccsgCacheSubnetGroupDescription+    -- * Creating a Request+      createCacheSubnetGroup+    , CreateCacheSubnetGroup+    -- * Request Lenses     , ccsgCacheSubnetGroupName+    , ccsgCacheSubnetGroupDescription     , ccsgSubnetIds -    -- * Response-    , CreateCacheSubnetGroupResponse-    -- ** Response constructor+    -- * Destructuring the Response     , createCacheSubnetGroupResponse-    -- ** Response lenses-    , ccsgrCacheSubnetGroup+    , CreateCacheSubnetGroupResponse+    -- * Response Lenses+    , crsCacheSubnetGroup+    , crsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data CreateCacheSubnetGroup = CreateCacheSubnetGroup-    { _ccsgCacheSubnetGroupDescription :: Text-    , _ccsgCacheSubnetGroupName        :: Text-    , _ccsgSubnetIds                   :: List "member" Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'CreateCacheSubnetGroup' constructor.+-- | Represents the input of a /CreateCacheSubnetGroup/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'createCacheSubnetGroup' smart constructor.+data CreateCacheSubnetGroup = CreateCacheSubnetGroup'+    { _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. ----- * 'ccsgCacheSubnetGroupDescription' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'ccsgCacheSubnetGroupName' @::@ 'Text'+-- * 'ccsgCacheSubnetGroupName' ----- * 'ccsgSubnetIds' @::@ ['Text']+-- * 'ccsgCacheSubnetGroupDescription' ---createCacheSubnetGroup :: Text -- ^ 'ccsgCacheSubnetGroupName'-                       -> Text -- ^ 'ccsgCacheSubnetGroupDescription'-                       -> CreateCacheSubnetGroup-createCacheSubnetGroup p1 p2 = CreateCacheSubnetGroup-    { _ccsgCacheSubnetGroupName        = p1-    , _ccsgCacheSubnetGroupDescription = p2-    , _ccsgSubnetIds                   = mempty+-- * 'ccsgSubnetIds'+createCacheSubnetGroup+    :: Text -- ^ 'ccsgCacheSubnetGroupName'+    -> Text -- ^ 'ccsgCacheSubnetGroupDescription'+    -> CreateCacheSubnetGroup+createCacheSubnetGroup pCacheSubnetGroupName_ pCacheSubnetGroupDescription_ =+    CreateCacheSubnetGroup'+    { _ccsgCacheSubnetGroupName = pCacheSubnetGroupName_+    , _ccsgCacheSubnetGroupDescription = pCacheSubnetGroupDescription_+    , _ccsgSubnetIds = mempty     } --- | A description for the cache subnet group.-ccsgCacheSubnetGroupDescription :: Lens' CreateCacheSubnetGroup Text-ccsgCacheSubnetGroupDescription =-    lens _ccsgCacheSubnetGroupDescription-        (\s a -> s { _ccsgCacheSubnetGroupDescription = a })---- | A name for the cache subnet group. This value is stored as a lowercase string.+-- | 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 })+ccsgCacheSubnetGroupName = lens _ccsgCacheSubnetGroupName (\ s a -> s{_ccsgCacheSubnetGroupName = a}); +-- | A description for the cache subnet group.+ccsgCacheSubnetGroupDescription :: Lens' CreateCacheSubnetGroup Text+ccsgCacheSubnetGroupDescription = lens _ccsgCacheSubnetGroupDescription (\ s a -> s{_ccsgCacheSubnetGroupDescription = a});+ -- | A list of VPC subnet IDs for the cache subnet group. ccsgSubnetIds :: Lens' CreateCacheSubnetGroup [Text]-ccsgSubnetIds = lens _ccsgSubnetIds (\s a -> s { _ccsgSubnetIds = a }) . _List--newtype CreateCacheSubnetGroupResponse = CreateCacheSubnetGroupResponse-    { _ccsgrCacheSubnetGroup :: Maybe CacheSubnetGroup-    } deriving (Eq, Read, Show)+ccsgSubnetIds = lens _ccsgSubnetIds (\ s a -> s{_ccsgSubnetIds = a}) . _Coerce; --- | 'CreateCacheSubnetGroupResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'ccsgrCacheSubnetGroup' @::@ 'Maybe' 'CacheSubnetGroup'----createCacheSubnetGroupResponse :: CreateCacheSubnetGroupResponse-createCacheSubnetGroupResponse = CreateCacheSubnetGroupResponse-    { _ccsgrCacheSubnetGroup = Nothing-    }+instance AWSRequest CreateCacheSubnetGroup where+        type Sv CreateCacheSubnetGroup = ElastiCache+        type Rs CreateCacheSubnetGroup =+             CreateCacheSubnetGroupResponse+        request = postQuery+        response+          = receiveXMLWrapper "CreateCacheSubnetGroupResult"+              (\ s h x ->+                 CreateCacheSubnetGroupResponse' <$>+                   (x .@? "CacheSubnetGroup") <*> (pure (fromEnum s))) -ccsgrCacheSubnetGroup :: Lens' CreateCacheSubnetGroupResponse (Maybe CacheSubnetGroup)-ccsgrCacheSubnetGroup =-    lens _ccsgrCacheSubnetGroup (\s a -> s { _ccsgrCacheSubnetGroup = a })+instance ToHeaders CreateCacheSubnetGroup where+        toHeaders = const mempty  instance ToPath CreateCacheSubnetGroup where-    toPath = const "/"+        toPath = const "/"  instance ToQuery CreateCacheSubnetGroup where-    toQuery CreateCacheSubnetGroup{..} = mconcat-        [ "CacheSubnetGroupDescription" =? _ccsgCacheSubnetGroupDescription-        , "CacheSubnetGroupName"        =? _ccsgCacheSubnetGroupName-        , "SubnetIds"                   =? _ccsgSubnetIds-        ]+        toQuery CreateCacheSubnetGroup'{..}+          = mconcat+              ["Action" =:+                 ("CreateCacheSubnetGroup" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "CacheSubnetGroupName" =: _ccsgCacheSubnetGroupName,+               "CacheSubnetGroupDescription" =:+                 _ccsgCacheSubnetGroupDescription,+               "SubnetIds" =:+                 toQueryList "SubnetIdentifier" _ccsgSubnetIds] -instance ToHeaders CreateCacheSubnetGroup+-- | /See:/ 'createCacheSubnetGroupResponse' smart constructor.+data CreateCacheSubnetGroupResponse = CreateCacheSubnetGroupResponse'+    { _crsCacheSubnetGroup :: !(Maybe CacheSubnetGroup)+    , _crsStatus           :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest CreateCacheSubnetGroup where-    type Sv CreateCacheSubnetGroup = ElastiCache-    type Rs CreateCacheSubnetGroup = CreateCacheSubnetGroupResponse+-- | 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:+--+-- * 'crsCacheSubnetGroup'+--+-- * 'crsStatus'+createCacheSubnetGroupResponse+    :: Int -- ^ 'crsStatus'+    -> CreateCacheSubnetGroupResponse+createCacheSubnetGroupResponse pStatus_ =+    CreateCacheSubnetGroupResponse'+    { _crsCacheSubnetGroup = Nothing+    , _crsStatus = pStatus_+    } -    request  = post "CreateCacheSubnetGroup"-    response = xmlResponse+-- | Undocumented member.+crsCacheSubnetGroup :: Lens' CreateCacheSubnetGroupResponse (Maybe CacheSubnetGroup)+crsCacheSubnetGroup = lens _crsCacheSubnetGroup (\ s a -> s{_crsCacheSubnetGroup = a}); -instance FromXML CreateCacheSubnetGroupResponse where-    parseXML = withElement "CreateCacheSubnetGroupResult" $ \x -> CreateCacheSubnetGroupResponse-        <$> x .@? "CacheSubnetGroup"+-- | The response status code.+crsStatus :: Lens' CreateCacheSubnetGroupResponse Int+crsStatus = lens _crsStatus (\ s a -> s{_crsStatus = a});
gen/Network/AWS/ElastiCache/CreateReplicationGroup.hs view
@@ -1,451 +1,499 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.CreateReplicationGroup--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /CreateReplicationGroup/ action creates a replication group. A 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 automatically propagated to the replicas.+-- The /CreateReplicationGroup/ action creates a replication group. A+-- 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 automatically propagated to the+-- replicas. -- -- When you create a replication group, you must specify an existing cache -- cluster that is in the primary role. When the replication group has been--- successfully created, you can add one or more read replica replicas to it, up--- to a total of five read replicas.+-- successfully created, you can add one or more read replica replicas to+-- it, up to a total of five read replicas. ----- Note: This action is valid only for Redis.+-- __Note:__ This action is valid only for Redis. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html AWS API Reference> for CreateReplicationGroup. module Network.AWS.ElastiCache.CreateReplicationGroup     (-    -- * Request-      CreateReplicationGroup-    -- ** Request constructor-    , createReplicationGroup-    -- ** Request lenses-    , crgAutoMinorVersionUpgrade+    -- * Creating a Request+      createReplicationGroup+    , CreateReplicationGroup+    -- * Request Lenses     , crgAutomaticFailoverEnabled     , crgCacheNodeType+    , crgEngineVersion+    , crgSecurityGroupIds+    , crgAutoMinorVersionUpgrade+    , crgSnapshotARNs     , crgCacheParameterGroupName-    , crgCacheSecurityGroupNames-    , crgCacheSubnetGroupName+    , crgSnapshotWindow+    , crgPrimaryClusterId     , crgEngine-    , crgEngineVersion-    , crgNotificationTopicArn-    , crgNumCacheClusters-    , crgPort-    , crgPreferredCacheClusterAZs     , crgPreferredMaintenanceWindow-    , crgPrimaryClusterId-    , crgReplicationGroupDescription-    , crgReplicationGroupId-    , crgSecurityGroupIds-    , crgSnapshotArns-    , crgSnapshotName+    , crgCacheSubnetGroupName     , crgSnapshotRetentionLimit-    , crgSnapshotWindow+    , crgSnapshotName+    , crgPreferredCacheClusterAZs+    , crgNumCacheClusters+    , crgNotificationTopicARN     , crgTags+    , crgCacheSecurityGroupNames+    , crgPort+    , crgReplicationGroupId+    , crgReplicationGroupDescription -    -- * Response-    , CreateReplicationGroupResponse-    -- ** Response constructor+    -- * Destructuring the Response     , createReplicationGroupResponse-    -- ** Response lenses-    , crgrReplicationGroup+    , CreateReplicationGroupResponse+    -- * Response Lenses+    , crgrsReplicationGroup+    , crgrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data CreateReplicationGroup = CreateReplicationGroup-    { _crgAutoMinorVersionUpgrade     :: Maybe Bool-    , _crgAutomaticFailoverEnabled    :: Maybe Bool-    , _crgCacheNodeType               :: Maybe Text-    , _crgCacheParameterGroupName     :: Maybe Text-    , _crgCacheSecurityGroupNames     :: List "member" Text-    , _crgCacheSubnetGroupName        :: Maybe Text-    , _crgEngine                      :: Maybe Text-    , _crgEngineVersion               :: Maybe Text-    , _crgNotificationTopicArn        :: Maybe Text-    , _crgNumCacheClusters            :: Maybe Int-    , _crgPort                        :: Maybe Int-    , _crgPreferredCacheClusterAZs    :: List "member" Text-    , _crgPreferredMaintenanceWindow  :: Maybe Text-    , _crgPrimaryClusterId            :: Maybe Text-    , _crgReplicationGroupDescription :: Text-    , _crgReplicationGroupId          :: Text-    , _crgSecurityGroupIds            :: List "member" Text-    , _crgSnapshotArns                :: List "member" Text-    , _crgSnapshotName                :: Maybe Text-    , _crgSnapshotRetentionLimit      :: Maybe Int-    , _crgSnapshotWindow              :: Maybe Text-    , _crgTags                        :: List "member" Tag-    } deriving (Eq, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'CreateReplicationGroup' constructor.+-- | Represents the input of a /CreateReplicationGroup/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'createReplicationGroup' smart constructor.+data CreateReplicationGroup = CreateReplicationGroup'+    { _crgAutomaticFailoverEnabled    :: !(Maybe Bool)+    , _crgCacheNodeType               :: !(Maybe Text)+    , _crgEngineVersion               :: !(Maybe Text)+    , _crgSecurityGroupIds            :: !(Maybe [Text])+    , _crgAutoMinorVersionUpgrade     :: !(Maybe Bool)+    , _crgSnapshotARNs                :: !(Maybe [Text])+    , _crgCacheParameterGroupName     :: !(Maybe Text)+    , _crgSnapshotWindow              :: !(Maybe Text)+    , _crgPrimaryClusterId            :: !(Maybe Text)+    , _crgEngine                      :: !(Maybe Text)+    , _crgPreferredMaintenanceWindow  :: !(Maybe Text)+    , _crgCacheSubnetGroupName        :: !(Maybe Text)+    , _crgSnapshotRetentionLimit      :: !(Maybe Int)+    , _crgSnapshotName                :: !(Maybe Text)+    , _crgPreferredCacheClusterAZs    :: !(Maybe [Text])+    , _crgNumCacheClusters            :: !(Maybe Int)+    , _crgNotificationTopicARN        :: !(Maybe Text)+    , _crgTags                        :: !(Maybe [Tag])+    , _crgCacheSecurityGroupNames     :: !(Maybe [Text])+    , _crgPort                        :: !(Maybe Int)+    , _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. ----- * 'crgAutoMinorVersionUpgrade' @::@ 'Maybe' 'Bool'+-- Use one of the following lenses to modify other fields as desired: ----- * 'crgAutomaticFailoverEnabled' @::@ 'Maybe' 'Bool'+-- * 'crgAutomaticFailoverEnabled' ----- * 'crgCacheNodeType' @::@ 'Maybe' 'Text'+-- * 'crgCacheNodeType' ----- * 'crgCacheParameterGroupName' @::@ 'Maybe' 'Text'+-- * 'crgEngineVersion' ----- * 'crgCacheSecurityGroupNames' @::@ ['Text']+-- * 'crgSecurityGroupIds' ----- * 'crgCacheSubnetGroupName' @::@ 'Maybe' 'Text'+-- * 'crgAutoMinorVersionUpgrade' ----- * 'crgEngine' @::@ 'Maybe' 'Text'+-- * 'crgSnapshotARNs' ----- * 'crgEngineVersion' @::@ 'Maybe' 'Text'+-- * 'crgCacheParameterGroupName' ----- * 'crgNotificationTopicArn' @::@ 'Maybe' 'Text'+-- * 'crgSnapshotWindow' ----- * 'crgNumCacheClusters' @::@ 'Maybe' 'Int'+-- * 'crgPrimaryClusterId' ----- * 'crgPort' @::@ 'Maybe' 'Int'+-- * 'crgEngine' ----- * 'crgPreferredCacheClusterAZs' @::@ ['Text']+-- * 'crgPreferredMaintenanceWindow' ----- * 'crgPreferredMaintenanceWindow' @::@ 'Maybe' 'Text'+-- * 'crgCacheSubnetGroupName' ----- * 'crgPrimaryClusterId' @::@ 'Maybe' 'Text'+-- * 'crgSnapshotRetentionLimit' ----- * 'crgReplicationGroupDescription' @::@ 'Text'+-- * 'crgSnapshotName' ----- * 'crgReplicationGroupId' @::@ 'Text'+-- * 'crgPreferredCacheClusterAZs' ----- * 'crgSecurityGroupIds' @::@ ['Text']+-- * 'crgNumCacheClusters' ----- * 'crgSnapshotArns' @::@ ['Text']+-- * 'crgNotificationTopicARN' ----- * 'crgSnapshotName' @::@ 'Maybe' 'Text'+-- * 'crgTags' ----- * 'crgSnapshotRetentionLimit' @::@ 'Maybe' 'Int'+-- * 'crgCacheSecurityGroupNames' ----- * 'crgSnapshotWindow' @::@ 'Maybe' 'Text'+-- * 'crgPort' ----- * 'crgTags' @::@ ['Tag']+-- * 'crgReplicationGroupId' ---createReplicationGroup :: Text -- ^ 'crgReplicationGroupId'-                       -> Text -- ^ 'crgReplicationGroupDescription'-                       -> CreateReplicationGroup-createReplicationGroup p1 p2 = CreateReplicationGroup-    { _crgReplicationGroupId          = p1-    , _crgReplicationGroupDescription = p2-    , _crgPrimaryClusterId            = Nothing-    , _crgAutomaticFailoverEnabled    = Nothing-    , _crgNumCacheClusters            = Nothing-    , _crgPreferredCacheClusterAZs    = mempty-    , _crgCacheNodeType               = Nothing-    , _crgEngine                      = Nothing-    , _crgEngineVersion               = Nothing-    , _crgCacheParameterGroupName     = Nothing-    , _crgCacheSubnetGroupName        = Nothing-    , _crgCacheSecurityGroupNames     = mempty-    , _crgSecurityGroupIds            = mempty-    , _crgTags                        = mempty-    , _crgSnapshotArns                = mempty-    , _crgSnapshotName                = Nothing-    , _crgPreferredMaintenanceWindow  = Nothing-    , _crgPort                        = Nothing-    , _crgNotificationTopicArn        = Nothing-    , _crgAutoMinorVersionUpgrade     = Nothing-    , _crgSnapshotRetentionLimit      = Nothing-    , _crgSnapshotWindow              = Nothing+-- * 'crgReplicationGroupDescription'+createReplicationGroup+    :: Text -- ^ 'crgReplicationGroupId'+    -> Text -- ^ 'crgReplicationGroupDescription'+    -> CreateReplicationGroup+createReplicationGroup pReplicationGroupId_ pReplicationGroupDescription_ =+    CreateReplicationGroup'+    { _crgAutomaticFailoverEnabled = Nothing+    , _crgCacheNodeType = Nothing+    , _crgEngineVersion = Nothing+    , _crgSecurityGroupIds = Nothing+    , _crgAutoMinorVersionUpgrade = Nothing+    , _crgSnapshotARNs = Nothing+    , _crgCacheParameterGroupName = Nothing+    , _crgSnapshotWindow = Nothing+    , _crgPrimaryClusterId = Nothing+    , _crgEngine = Nothing+    , _crgPreferredMaintenanceWindow = Nothing+    , _crgCacheSubnetGroupName = Nothing+    , _crgSnapshotRetentionLimit = Nothing+    , _crgSnapshotName = Nothing+    , _crgPreferredCacheClusterAZs = Nothing+    , _crgNumCacheClusters = Nothing+    , _crgNotificationTopicARN = Nothing+    , _crgTags = Nothing+    , _crgCacheSecurityGroupNames = Nothing+    , _crgPort = Nothing+    , _crgReplicationGroupId = pReplicationGroupId_+    , _crgReplicationGroupDescription = pReplicationGroupDescription_     } --- | This parameter is currently disabled.-crgAutoMinorVersionUpgrade :: Lens' CreateReplicationGroup (Maybe Bool)-crgAutoMinorVersionUpgrade =-    lens _crgAutoMinorVersionUpgrade-        (\s a -> s { _crgAutoMinorVersionUpgrade = a })- -- | Specifies whether a read-only replica will be automatically promoted to--- read/write primary if the existing primary fails.+-- 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.+-- If 'true', Multi-AZ is enabled for this replication group. If 'false',+-- Multi-AZ is disabled for this replication group. -- -- Default: false -- -- ElastiCache Multi-AZ replication groups is not supported on: ----- Redis versions earlier than 2.8.6. T1 and T2 cache node types.+-- -   Redis versions earlier than 2.8.6.+-- -   T1 and T2 cache node types. crgAutomaticFailoverEnabled :: Lens' CreateReplicationGroup (Maybe Bool)-crgAutomaticFailoverEnabled =-    lens _crgAutomaticFailoverEnabled-        (\s a -> s { _crgAutomaticFailoverEnabled = a })+crgAutomaticFailoverEnabled = lens _crgAutomaticFailoverEnabled (\ s a -> s{_crgAutomaticFailoverEnabled = a});  -- | The compute and memory capacity of the nodes in the node group. -- -- 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' 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:+-- -   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'+--     -   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' ----- All t2 instances are created in an Amazon Virtual Private Cloud (VPC). Redis backup/restore is not supported for t2 instances.--- Redis Append-only files (AOF) functionality is not supported for t1 or t2--- instances.  For a complete listing of cache node types and specifications,--- see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#CacheParameterGroups.Memcached.NodeSpecific Cache NodeType-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#CacheParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parametersfor Redis>.-crgCacheNodeType :: Lens' CreateReplicationGroup (Maybe Text)-crgCacheNodeType = lens _crgCacheNodeType (\s a -> s { _crgCacheNodeType = a })---- | 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.-crgCacheParameterGroupName :: Lens' CreateReplicationGroup (Maybe Text)-crgCacheParameterGroupName =-    lens _crgCacheParameterGroupName-        (\s a -> s { _crgCacheParameterGroupName = a })---- | A list of cache security group names to associate with this replication group.-crgCacheSecurityGroupNames :: Lens' CreateReplicationGroup [Text]-crgCacheSecurityGroupNames =-    lens _crgCacheSecurityGroupNames-        (\s a -> s { _crgCacheSecurityGroupNames = a })-            . _List---- | The name of the cache subnet group to be used for the replication group.-crgCacheSubnetGroupName :: Lens' CreateReplicationGroup (Maybe Text)-crgCacheSubnetGroupName =-    lens _crgCacheSubnetGroupName (\s a -> s { _crgCacheSubnetGroupName = a })---- | The name of the cache engine to be used for the cache clusters in this--- replication group.+-- __Notes:__ ----- Default: redis-crgEngine :: Lens' CreateReplicationGroup (Maybe Text)-crgEngine = lens _crgEngine (\s a -> s { _crgEngine = a })+-- -   All t2 instances are created in an Amazon Virtual Private Cloud+--     (VPC).+-- -   Redis backup\/restore is not supported for t2 instances.+-- -   Redis Append-only files (AOF) functionality is not supported for t1+--     or t2 instances.+--+-- For a complete listing of cache node types and specifications, see+-- <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details>+-- and+-- <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#CacheParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached>+-- or+-- <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#CacheParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis>.+crgCacheNodeType :: Lens' CreateReplicationGroup (Maybe Text)+crgCacheNodeType = lens _crgCacheNodeType (\ s a -> s{_crgCacheNodeType = 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/ action.+-- | 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/ action. crgEngineVersion :: Lens' CreateReplicationGroup (Maybe Text)-crgEngineVersion = lens _crgEngineVersion (\s a -> s { _crgEngineVersion = a })+crgEngineVersion = lens _crgEngineVersion (\ s a -> s{_crgEngineVersion = a}); --- | The Amazon Resource Name (ARN) of the Amazon Simple Notification Service--- (SNS) topic to which notifications will be sent.+-- | One or more Amazon VPC security groups associated with this replication+-- group. ----- The Amazon SNS topic owner must be the same as the cache cluster owner.-crgNotificationTopicArn :: Lens' CreateReplicationGroup (Maybe Text)-crgNotificationTopicArn =-    lens _crgNotificationTopicArn (\s a -> s { _crgNotificationTopicArn = a })+-- Use this parameter only when you are creating a replication group in an+-- Amazon Virtual Private Cloud (VPC).+crgSecurityGroupIds :: Lens' CreateReplicationGroup [Text]+crgSecurityGroupIds = lens _crgSecurityGroupIds (\ s a -> s{_crgSecurityGroupIds = a}) . _Default . _Coerce; --- | The number of cache clusters this replication group will initially have.+-- | This parameter is currently disabled.+crgAutoMinorVersionUpgrade :: Lens' CreateReplicationGroup (Maybe Bool)+crgAutoMinorVersionUpgrade = lens _crgAutoMinorVersionUpgrade (\ s a -> s{_crgAutoMinorVersionUpgrade = a});++-- | 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 will be used to populate the node group. The Amazon S3+-- object name in the ARN cannot contain any commas. ----- If /Multi-AZ/ is 'enabled', the value of this parameter must be at least 2.+-- __Note:__ This parameter is only valid if the 'Engine' parameter is+-- 'redis'. ----- The maximum permitted value for /NumCacheClusters/ is 6 (primary plus 5--- replicas). If you need to exceed this limit, 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>.-crgNumCacheClusters :: Lens' CreateReplicationGroup (Maybe Int)-crgNumCacheClusters =-    lens _crgNumCacheClusters (\s a -> s { _crgNumCacheClusters = a })+-- 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; --- | The port number on which each member of the replication group will accept--- connections.-crgPort :: Lens' CreateReplicationGroup (Maybe Int)-crgPort = lens _crgPort (\s a -> s { _crgPort = a })+-- | 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.+crgCacheParameterGroupName :: Lens' CreateReplicationGroup (Maybe Text)+crgCacheParameterGroupName = lens _crgCacheParameterGroupName (\ s a -> s{_crgCacheParameterGroupName = a}); --- | A list of EC2 availability zones in which the replication group's cache--- clusters will be created. The order of the availability zones in the list is--- not important.------ If you are creating your replication group in an Amazon VPC (recommended),--- you can only locate cache clusters in availability zones associated with the--- subnets in the selected subnet group. The number of availability zones listed--- must equal the value of /NumCacheClusters/.+-- | The daily time range (in UTC) during which ElastiCache will begin taking+-- a daily snapshot of your node group. ----- Default: system chosen availability zones.+-- Example: '05:00-09:00' ----- Example: One Redis cache cluster in each of three availability zones.--- PreferredAvailabilityZones.member.1=us-west-2a--- PreferredAvailabilityZones.member.2=us-west-2c--- PreferredAvailabilityZones.member.3=us-west-2c-crgPreferredCacheClusterAZs :: Lens' CreateReplicationGroup [Text]-crgPreferredCacheClusterAZs =-    lens _crgPreferredCacheClusterAZs-        (\s a -> s { _crgPreferredCacheClusterAZs = a })-            . _List---- | 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:+-- If you do not specify this parameter, then ElastiCache will+-- automatically choose an appropriate time range. ----- 'sun' 'mon' 'tue' 'wed' 'thu' 'fri' 'sat'  Example: 'sun:05:00-sun:09:00'-crgPreferredMaintenanceWindow :: Lens' CreateReplicationGroup (Maybe Text)-crgPreferredMaintenanceWindow =-    lens _crgPreferredMaintenanceWindow-        (\s a -> s { _crgPreferredMaintenanceWindow = a })+-- __Note:__ This parameter is only valid if the 'Engine' parameter is+-- 'redis'.+crgSnapshotWindow :: Lens' CreateReplicationGroup (Maybe Text)+crgSnapshotWindow = lens _crgSnapshotWindow (\ s a -> s{_crgSnapshotWindow = a}); --- | The identifier of the cache cluster that will serve as the primary for this--- replication group. This cache cluster must already exist and have a status of /available/.+-- | The identifier of the cache cluster that will serve 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/ is specified. crgPrimaryClusterId :: Lens' CreateReplicationGroup (Maybe Text)-crgPrimaryClusterId =-    lens _crgPrimaryClusterId (\s a -> s { _crgPrimaryClusterId = a })+crgPrimaryClusterId = lens _crgPrimaryClusterId (\ s a -> s{_crgPrimaryClusterId = a}); --- | A user-created description for the replication group.-crgReplicationGroupDescription :: Lens' CreateReplicationGroup Text-crgReplicationGroupDescription =-    lens _crgReplicationGroupDescription-        (\s a -> s { _crgReplicationGroupDescription = a })+-- | The name of the cache engine to be used for the cache clusters in this+-- replication group.+--+-- Default: redis+crgEngine :: Lens' CreateReplicationGroup (Maybe Text)+crgEngine = lens _crgEngine (\ s a -> s{_crgEngine = a}); --- | The replication group identifier. This parameter is stored as a lowercase--- string.+-- | 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: ----- Constraints:+-- -   'sun'+-- -   'mon'+-- -   'tue'+-- -   'wed'+-- -   'thu'+-- -   'fri'+-- -   'sat' ----- 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.-crgReplicationGroupId :: Lens' CreateReplicationGroup Text-crgReplicationGroupId =-    lens _crgReplicationGroupId (\s a -> s { _crgReplicationGroupId = a })+-- Example: 'sun:05:00-sun:09:00'+crgPreferredMaintenanceWindow :: Lens' CreateReplicationGroup (Maybe Text)+crgPreferredMaintenanceWindow = lens _crgPreferredMaintenanceWindow (\ s a -> s{_crgPreferredMaintenanceWindow = 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 (VPC).-crgSecurityGroupIds :: Lens' CreateReplicationGroup [Text]-crgSecurityGroupIds =-    lens _crgSecurityGroupIds (\s a -> s { _crgSecurityGroupIds = a })-        . _List+-- | The name of the cache subnet group to be used for the replication group.+crgCacheSubnetGroupName :: Lens' CreateReplicationGroup (Maybe Text)+crgCacheSubnetGroupName = lens _crgCacheSubnetGroupName (\ s a -> s{_crgCacheSubnetGroupName = a}); --- | 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 will be used to populate the node group. The Amazon S3 object--- name in the ARN cannot contain any commas.+-- | The number of days for which ElastiCache will retain automatic snapshots+-- before deleting them. For example, if you set 'SnapshotRetentionLimit'+-- to 5, then a snapshot that was taken today will be retained for 5 days+-- before being deleted. ----- Note: This parameter is only valid if the 'Engine' parameter is 'redis'.+-- __Note:__ This parameter is only valid if the 'Engine' parameter is+-- 'redis'. ----- 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 }) . _List+-- Default: 0 (i.e., automatic backups are disabled for this cache+-- cluster).+crgSnapshotRetentionLimit :: Lens' CreateReplicationGroup (Maybe Int)+crgSnapshotRetentionLimit = lens _crgSnapshotRetentionLimit (\ s a -> s{_crgSnapshotRetentionLimit = a}); --- | The name of a snapshot from which to restore data into the new node group.--- The snapshot status changes to 'restoring' while the new node group is being--- created.+-- | The name of a snapshot from which to restore data into the new node+-- group. The snapshot status changes to 'restoring' while the new node+-- group is being created. ----- Note: This parameter is only valid if the 'Engine' parameter is 'redis'.+-- __Note:__ This parameter is only valid if the 'Engine' parameter is+-- 'redis'. crgSnapshotName :: Lens' CreateReplicationGroup (Maybe Text)-crgSnapshotName = lens _crgSnapshotName (\s a -> s { _crgSnapshotName = a })+crgSnapshotName = lens _crgSnapshotName (\ s a -> s{_crgSnapshotName = a}); --- | The number of days for which ElastiCache will retain automatic snapshots--- before deleting them. For example, if you set 'SnapshotRetentionLimit' to 5,--- then a snapshot that was taken today will be retained for 5 days before being--- deleted.+-- | A list of EC2 availability zones in which the replication group\'s cache+-- clusters will be created. The order of the availability zones in the+-- list is not important. ----- Note: This parameter is only valid if the 'Engine' parameter is 'redis'.+-- If you are creating your replication group in an Amazon VPC+-- (recommended), you can only locate cache clusters in availability zones+-- associated with the subnets in the selected subnet group. ----- Default: 0 (i.e., automatic backups are disabled for this cache cluster).-crgSnapshotRetentionLimit :: Lens' CreateReplicationGroup (Maybe Int)-crgSnapshotRetentionLimit =-    lens _crgSnapshotRetentionLimit-        (\s a -> s { _crgSnapshotRetentionLimit = a })+-- The number of availability zones listed must equal the value of+-- /NumCacheClusters/.+--+-- Default: system chosen availability zones.+--+-- Example: One Redis cache cluster in each of three availability zones.+-- PreferredAvailabilityZones.member.1=us-west-2a+-- PreferredAvailabilityZones.member.2=us-west-2c+-- PreferredAvailabilityZones.member.3=us-west-2c+crgPreferredCacheClusterAZs :: Lens' CreateReplicationGroup [Text]+crgPreferredCacheClusterAZs = lens _crgPreferredCacheClusterAZs (\ s a -> s{_crgPreferredCacheClusterAZs = a}) . _Default . _Coerce; --- | The daily time range (in UTC) during which ElastiCache will begin taking a--- daily snapshot of your node group.+-- | The number of cache clusters this replication group will initially have. ----- Example: '05:00-09:00'+-- If /Multi-AZ/ is 'enabled', the value of this parameter must be at least+-- 2. ----- If you do not specify this parameter, then ElastiCache will automatically--- choose an appropriate time range.+-- The maximum permitted value for /NumCacheClusters/ is 6 (primary plus 5+-- replicas). If you need to exceed this limit, please fill out the+-- ElastiCache Limit Increase Request form at+-- <http://aws.amazon.com/contact-us/elasticache-node-limit-request>.+crgNumCacheClusters :: Lens' CreateReplicationGroup (Maybe Int)+crgNumCacheClusters = lens _crgNumCacheClusters (\ s a -> s{_crgNumCacheClusters = a});++-- | The Amazon Resource Name (ARN) of the Amazon Simple Notification Service+-- (SNS) topic to which notifications will be sent. ----- Note: This parameter is only valid if the 'Engine' parameter is 'redis'.-crgSnapshotWindow :: Lens' CreateReplicationGroup (Maybe Text)-crgSnapshotWindow =-    lens _crgSnapshotWindow (\s a -> s { _crgSnapshotWindow = a })+-- The Amazon SNS topic owner must be the same as the cache cluster owner.+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. crgTags :: Lens' CreateReplicationGroup [Tag]-crgTags = lens _crgTags (\s a -> s { _crgTags = a }) . _List+crgTags = lens _crgTags (\ s a -> s{_crgTags = a}) . _Default . _Coerce; -newtype CreateReplicationGroupResponse = CreateReplicationGroupResponse-    { _crgrReplicationGroup :: Maybe ReplicationGroup-    } deriving (Eq, Read, Show)+-- | A list of cache security group names to associate with this replication+-- group.+crgCacheSecurityGroupNames :: Lens' CreateReplicationGroup [Text]+crgCacheSecurityGroupNames = lens _crgCacheSecurityGroupNames (\ s a -> s{_crgCacheSecurityGroupNames = a}) . _Default . _Coerce; --- | 'CreateReplicationGroupResponse' constructor.------ The fields accessible through corresponding lenses are:+-- | The port number on which each member of the replication group will+-- accept connections.+crgPort :: Lens' CreateReplicationGroup (Maybe Int)+crgPort = lens _crgPort (\ s a -> s{_crgPort = a});++-- | The replication group identifier. This parameter is stored as a+-- lowercase string. ----- * 'crgrReplicationGroup' @::@ 'Maybe' 'ReplicationGroup'+-- Constraints: ---createReplicationGroupResponse :: CreateReplicationGroupResponse-createReplicationGroupResponse = CreateReplicationGroupResponse-    { _crgrReplicationGroup = Nothing-    }+-- -   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.+crgReplicationGroupId :: Lens' CreateReplicationGroup Text+crgReplicationGroupId = lens _crgReplicationGroupId (\ s a -> s{_crgReplicationGroupId = a}); -crgrReplicationGroup :: Lens' CreateReplicationGroupResponse (Maybe ReplicationGroup)-crgrReplicationGroup =-    lens _crgrReplicationGroup (\s a -> s { _crgrReplicationGroup = a })+-- | A user-created description for the replication group.+crgReplicationGroupDescription :: Lens' CreateReplicationGroup Text+crgReplicationGroupDescription = lens _crgReplicationGroupDescription (\ s a -> s{_crgReplicationGroupDescription = a}); +instance AWSRequest CreateReplicationGroup where+        type Sv CreateReplicationGroup = ElastiCache+        type Rs CreateReplicationGroup =+             CreateReplicationGroupResponse+        request = postQuery+        response+          = receiveXMLWrapper "CreateReplicationGroupResult"+              (\ s h x ->+                 CreateReplicationGroupResponse' <$>+                   (x .@? "ReplicationGroup") <*> (pure (fromEnum s)))++instance ToHeaders CreateReplicationGroup where+        toHeaders = const mempty+ instance ToPath CreateReplicationGroup where-    toPath = const "/"+        toPath = const "/"  instance ToQuery CreateReplicationGroup where-    toQuery CreateReplicationGroup{..} = mconcat-        [ "AutoMinorVersionUpgrade"     =? _crgAutoMinorVersionUpgrade-        , "AutomaticFailoverEnabled"    =? _crgAutomaticFailoverEnabled-        , "CacheNodeType"               =? _crgCacheNodeType-        , "CacheParameterGroupName"     =? _crgCacheParameterGroupName-        , "CacheSecurityGroupNames"     =? _crgCacheSecurityGroupNames-        , "CacheSubnetGroupName"        =? _crgCacheSubnetGroupName-        , "Engine"                      =? _crgEngine-        , "EngineVersion"               =? _crgEngineVersion-        , "NotificationTopicArn"        =? _crgNotificationTopicArn-        , "NumCacheClusters"            =? _crgNumCacheClusters-        , "Port"                        =? _crgPort-        , "PreferredCacheClusterAZs"    =? _crgPreferredCacheClusterAZs-        , "PreferredMaintenanceWindow"  =? _crgPreferredMaintenanceWindow-        , "PrimaryClusterId"            =? _crgPrimaryClusterId-        , "ReplicationGroupDescription" =? _crgReplicationGroupDescription-        , "ReplicationGroupId"          =? _crgReplicationGroupId-        , "SecurityGroupIds"            =? _crgSecurityGroupIds-        , "SnapshotArns"                =? _crgSnapshotArns-        , "SnapshotName"                =? _crgSnapshotName-        , "SnapshotRetentionLimit"      =? _crgSnapshotRetentionLimit-        , "SnapshotWindow"              =? _crgSnapshotWindow-        , "Tags"                        =? _crgTags-        ]+        toQuery CreateReplicationGroup'{..}+          = mconcat+              ["Action" =:+                 ("CreateReplicationGroup" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "AutomaticFailoverEnabled" =:+                 _crgAutomaticFailoverEnabled,+               "CacheNodeType" =: _crgCacheNodeType,+               "EngineVersion" =: _crgEngineVersion,+               "SecurityGroupIds" =:+                 toQuery+                   (toQueryList "SecurityGroupId" <$>+                      _crgSecurityGroupIds),+               "AutoMinorVersionUpgrade" =:+                 _crgAutoMinorVersionUpgrade,+               "SnapshotArns" =:+                 toQuery+                   (toQueryList "SnapshotArn" <$> _crgSnapshotARNs),+               "CacheParameterGroupName" =:+                 _crgCacheParameterGroupName,+               "SnapshotWindow" =: _crgSnapshotWindow,+               "PrimaryClusterId" =: _crgPrimaryClusterId,+               "Engine" =: _crgEngine,+               "PreferredMaintenanceWindow" =:+                 _crgPreferredMaintenanceWindow,+               "CacheSubnetGroupName" =: _crgCacheSubnetGroupName,+               "SnapshotRetentionLimit" =:+                 _crgSnapshotRetentionLimit,+               "SnapshotName" =: _crgSnapshotName,+               "PreferredCacheClusterAZs" =:+                 toQuery+                   (toQueryList "AvailabilityZone" <$>+                      _crgPreferredCacheClusterAZs),+               "NumCacheClusters" =: _crgNumCacheClusters,+               "NotificationTopicArn" =: _crgNotificationTopicARN,+               "Tags" =: toQuery (toQueryList "Tag" <$> _crgTags),+               "CacheSecurityGroupNames" =:+                 toQuery+                   (toQueryList "CacheSecurityGroupName" <$>+                      _crgCacheSecurityGroupNames),+               "Port" =: _crgPort,+               "ReplicationGroupId" =: _crgReplicationGroupId,+               "ReplicationGroupDescription" =:+                 _crgReplicationGroupDescription] -instance ToHeaders CreateReplicationGroup+-- | /See:/ 'createReplicationGroupResponse' smart constructor.+data CreateReplicationGroupResponse = CreateReplicationGroupResponse'+    { _crgrsReplicationGroup :: !(Maybe ReplicationGroup)+    , _crgrsStatus           :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest CreateReplicationGroup where-    type Sv CreateReplicationGroup = ElastiCache-    type Rs CreateReplicationGroup = CreateReplicationGroupResponse+-- | 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:+--+-- * 'crgrsReplicationGroup'+--+-- * 'crgrsStatus'+createReplicationGroupResponse+    :: Int -- ^ 'crgrsStatus'+    -> CreateReplicationGroupResponse+createReplicationGroupResponse pStatus_ =+    CreateReplicationGroupResponse'+    { _crgrsReplicationGroup = Nothing+    , _crgrsStatus = pStatus_+    } -    request  = post "CreateReplicationGroup"-    response = xmlResponse+-- | Undocumented member.+crgrsReplicationGroup :: Lens' CreateReplicationGroupResponse (Maybe ReplicationGroup)+crgrsReplicationGroup = lens _crgrsReplicationGroup (\ s a -> s{_crgrsReplicationGroup = a}); -instance FromXML CreateReplicationGroupResponse where-    parseXML = withElement "CreateReplicationGroupResult" $ \x -> CreateReplicationGroupResponse-        <$> x .@? "ReplicationGroup"+-- | The response status code.+crgrsStatus :: Lens' CreateReplicationGroupResponse Int+crgrsStatus = lens _crgrsStatus (\ s a -> s{_crgrsStatus = a});
gen/Network/AWS/ElastiCache/CreateSnapshot.hs view
@@ -1,120 +1,134 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.CreateSnapshot--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /CreateSnapshot/ action creates a copy of an entire cache cluster at a--- specific moment in time.+-- The /CreateSnapshot/ action creates a copy of an entire cache cluster at+-- a specific moment in time. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateSnapshot.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateSnapshot.html AWS API Reference> for CreateSnapshot. module Network.AWS.ElastiCache.CreateSnapshot     (-    -- * Request-      CreateSnapshot-    -- ** Request constructor-    , createSnapshot-    -- ** Request lenses+    -- * Creating a Request+      createSnapshot+    , CreateSnapshot+    -- * Request Lenses     , csCacheClusterId     , csSnapshotName -    -- * Response-    , CreateSnapshotResponse-    -- ** Response constructor+    -- * Destructuring the Response     , createSnapshotResponse-    -- ** Response lenses-    , csr1Snapshot+    , CreateSnapshotResponse+    -- * Response Lenses+    , crersSnapshot+    , crersStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data CreateSnapshot = CreateSnapshot-    { _csCacheClusterId :: Text-    , _csSnapshotName   :: Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'CreateSnapshot' constructor.+-- | Represents the input of a /CreateSnapshot/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'createSnapshot' smart constructor.+data CreateSnapshot = CreateSnapshot'+    { _csCacheClusterId :: !Text+    , _csSnapshotName   :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateSnapshot' with the minimum fields required to make a request. ----- * 'csCacheClusterId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'csSnapshotName' @::@ 'Text'+-- * 'csCacheClusterId' ---createSnapshot :: Text -- ^ 'csCacheClusterId'-               -> Text -- ^ 'csSnapshotName'-               -> CreateSnapshot-createSnapshot p1 p2 = CreateSnapshot-    { _csCacheClusterId = p1-    , _csSnapshotName   = p2+-- * 'csSnapshotName'+createSnapshot+    :: Text -- ^ 'csCacheClusterId'+    -> Text -- ^ 'csSnapshotName'+    -> CreateSnapshot+createSnapshot pCacheClusterId_ pSnapshotName_ =+    CreateSnapshot'+    { _csCacheClusterId = pCacheClusterId_+    , _csSnapshotName = pSnapshotName_     } --- | The identifier of an existing cache cluster. The snapshot will be created--- from this cache cluster.+-- | The identifier of an existing cache cluster. The snapshot will be+-- created from this cache cluster. csCacheClusterId :: Lens' CreateSnapshot Text-csCacheClusterId = lens _csCacheClusterId (\s a -> s { _csCacheClusterId = a })+csCacheClusterId = lens _csCacheClusterId (\ s a -> s{_csCacheClusterId = a});  -- | A name for the snapshot being created. csSnapshotName :: Lens' CreateSnapshot Text-csSnapshotName = lens _csSnapshotName (\s a -> s { _csSnapshotName = a })--newtype CreateSnapshotResponse = CreateSnapshotResponse-    { _csr1Snapshot :: Maybe Snapshot-    } deriving (Eq, Read, Show)+csSnapshotName = lens _csSnapshotName (\ s a -> s{_csSnapshotName = a}); --- | 'CreateSnapshotResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'csr1Snapshot' @::@ 'Maybe' 'Snapshot'----createSnapshotResponse :: CreateSnapshotResponse-createSnapshotResponse = CreateSnapshotResponse-    { _csr1Snapshot = Nothing-    }+instance AWSRequest CreateSnapshot where+        type Sv CreateSnapshot = ElastiCache+        type Rs CreateSnapshot = CreateSnapshotResponse+        request = postQuery+        response+          = receiveXMLWrapper "CreateSnapshotResult"+              (\ s h x ->+                 CreateSnapshotResponse' <$>+                   (x .@? "Snapshot") <*> (pure (fromEnum s))) -csr1Snapshot :: Lens' CreateSnapshotResponse (Maybe Snapshot)-csr1Snapshot = lens _csr1Snapshot (\s a -> s { _csr1Snapshot = a })+instance ToHeaders CreateSnapshot where+        toHeaders = const mempty  instance ToPath CreateSnapshot where-    toPath = const "/"+        toPath = const "/"  instance ToQuery CreateSnapshot where-    toQuery CreateSnapshot{..} = mconcat-        [ "CacheClusterId" =? _csCacheClusterId-        , "SnapshotName"   =? _csSnapshotName-        ]+        toQuery CreateSnapshot'{..}+          = mconcat+              ["Action" =: ("CreateSnapshot" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "CacheClusterId" =: _csCacheClusterId,+               "SnapshotName" =: _csSnapshotName] -instance ToHeaders CreateSnapshot+-- | /See:/ 'createSnapshotResponse' smart constructor.+data CreateSnapshotResponse = CreateSnapshotResponse'+    { _crersSnapshot :: !(Maybe Snapshot)+    , _crersStatus   :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest CreateSnapshot where-    type Sv CreateSnapshot = ElastiCache-    type Rs CreateSnapshot = CreateSnapshotResponse+-- | 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:+--+-- * 'crersSnapshot'+--+-- * 'crersStatus'+createSnapshotResponse+    :: Int -- ^ 'crersStatus'+    -> CreateSnapshotResponse+createSnapshotResponse pStatus_ =+    CreateSnapshotResponse'+    { _crersSnapshot = Nothing+    , _crersStatus = pStatus_+    } -    request  = post "CreateSnapshot"-    response = xmlResponse+-- | Undocumented member.+crersSnapshot :: Lens' CreateSnapshotResponse (Maybe Snapshot)+crersSnapshot = lens _crersSnapshot (\ s a -> s{_crersSnapshot = a}); -instance FromXML CreateSnapshotResponse where-    parseXML = withElement "CreateSnapshotResult" $ \x -> CreateSnapshotResponse-        <$> x .@? "Snapshot"+-- | The response status code.+crersStatus :: Lens' CreateSnapshotResponse Int+crersStatus = lens _crersStatus (\ s a -> s{_crersStatus = a});
gen/Network/AWS/ElastiCache/DeleteCacheCluster.hs view
@@ -1,129 +1,143 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.DeleteCacheCluster--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /DeleteCacheCluster/ action 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--- action, Amazon ElastiCache immediately begins deleting the cache cluster; you--- cannot cancel or revert this action.+-- The /DeleteCacheCluster/ action 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 action, Amazon ElastiCache immediately begins+-- deleting the cache cluster; you cannot cancel or revert this action. -- -- This API cannot be used to delete a cache cluster that is the last read -- replica of a replication group that has Multi-AZ mode enabled. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteCacheCluster.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteCacheCluster.html AWS API Reference> for DeleteCacheCluster. module Network.AWS.ElastiCache.DeleteCacheCluster     (-    -- * Request-      DeleteCacheCluster-    -- ** Request constructor-    , deleteCacheCluster-    -- ** Request lenses-    , dccCacheClusterId+    -- * Creating a Request+      deleteCacheCluster+    , DeleteCacheCluster+    -- * Request Lenses     , dccFinalSnapshotIdentifier+    , dccCacheClusterId -    -- * Response-    , DeleteCacheClusterResponse-    -- ** Response constructor+    -- * Destructuring the Response     , deleteCacheClusterResponse-    -- ** Response lenses-    , dccrCacheCluster+    , DeleteCacheClusterResponse+    -- * Response Lenses+    , dccrsCacheCluster+    , dccrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data DeleteCacheCluster = DeleteCacheCluster-    { _dccCacheClusterId          :: Text-    , _dccFinalSnapshotIdentifier :: Maybe Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'DeleteCacheCluster' constructor.+-- | Represents the input of a /DeleteCacheCluster/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'deleteCacheCluster' smart constructor.+data DeleteCacheCluster = DeleteCacheCluster'+    { _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. ----- * 'dccCacheClusterId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'dccFinalSnapshotIdentifier' @::@ 'Maybe' 'Text'+-- * 'dccFinalSnapshotIdentifier' ---deleteCacheCluster :: Text -- ^ 'dccCacheClusterId'-                   -> DeleteCacheCluster-deleteCacheCluster p1 = DeleteCacheCluster-    { _dccCacheClusterId          = p1-    , _dccFinalSnapshotIdentifier = Nothing+-- * 'dccCacheClusterId'+deleteCacheCluster+    :: Text -- ^ 'dccCacheClusterId'+    -> DeleteCacheCluster+deleteCacheCluster pCacheClusterId_ =+    DeleteCacheCluster'+    { _dccFinalSnapshotIdentifier = Nothing+    , _dccCacheClusterId = pCacheClusterId_     } --- | The cache 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 })---- | 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 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 :: Lens' DeleteCacheCluster (Maybe Text)-dccFinalSnapshotIdentifier =-    lens _dccFinalSnapshotIdentifier-        (\s a -> s { _dccFinalSnapshotIdentifier = a })+dccFinalSnapshotIdentifier = lens _dccFinalSnapshotIdentifier (\ s a -> s{_dccFinalSnapshotIdentifier = a}); -newtype DeleteCacheClusterResponse = DeleteCacheClusterResponse-    { _dccrCacheCluster :: Maybe CacheCluster-    } deriving (Eq, Read, Show)+-- | The cache 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}); --- | 'DeleteCacheClusterResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'dccrCacheCluster' @::@ 'Maybe' 'CacheCluster'----deleteCacheClusterResponse :: DeleteCacheClusterResponse-deleteCacheClusterResponse = DeleteCacheClusterResponse-    { _dccrCacheCluster = Nothing-    }+instance AWSRequest DeleteCacheCluster where+        type Sv DeleteCacheCluster = ElastiCache+        type Rs DeleteCacheCluster =+             DeleteCacheClusterResponse+        request = postQuery+        response+          = receiveXMLWrapper "DeleteCacheClusterResult"+              (\ s h x ->+                 DeleteCacheClusterResponse' <$>+                   (x .@? "CacheCluster") <*> (pure (fromEnum s))) -dccrCacheCluster :: Lens' DeleteCacheClusterResponse (Maybe CacheCluster)-dccrCacheCluster = lens _dccrCacheCluster (\s a -> s { _dccrCacheCluster = a })+instance ToHeaders DeleteCacheCluster where+        toHeaders = const mempty  instance ToPath DeleteCacheCluster where-    toPath = const "/"+        toPath = const "/"  instance ToQuery DeleteCacheCluster where-    toQuery DeleteCacheCluster{..} = mconcat-        [ "CacheClusterId"          =? _dccCacheClusterId-        , "FinalSnapshotIdentifier" =? _dccFinalSnapshotIdentifier-        ]+        toQuery DeleteCacheCluster'{..}+          = mconcat+              ["Action" =: ("DeleteCacheCluster" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "FinalSnapshotIdentifier" =:+                 _dccFinalSnapshotIdentifier,+               "CacheClusterId" =: _dccCacheClusterId] -instance ToHeaders DeleteCacheCluster+-- | /See:/ 'deleteCacheClusterResponse' smart constructor.+data DeleteCacheClusterResponse = DeleteCacheClusterResponse'+    { _dccrsCacheCluster :: !(Maybe CacheCluster)+    , _dccrsStatus       :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest DeleteCacheCluster where-    type Sv DeleteCacheCluster = ElastiCache-    type Rs DeleteCacheCluster = DeleteCacheClusterResponse+-- | 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:+--+-- * 'dccrsCacheCluster'+--+-- * 'dccrsStatus'+deleteCacheClusterResponse+    :: Int -- ^ 'dccrsStatus'+    -> DeleteCacheClusterResponse+deleteCacheClusterResponse pStatus_ =+    DeleteCacheClusterResponse'+    { _dccrsCacheCluster = Nothing+    , _dccrsStatus = pStatus_+    } -    request  = post "DeleteCacheCluster"-    response = xmlResponse+-- | Undocumented member.+dccrsCacheCluster :: Lens' DeleteCacheClusterResponse (Maybe CacheCluster)+dccrsCacheCluster = lens _dccrsCacheCluster (\ s a -> s{_dccrsCacheCluster = a}); -instance FromXML DeleteCacheClusterResponse where-    parseXML = withElement "DeleteCacheClusterResult" $ \x -> DeleteCacheClusterResponse-        <$> x .@? "CacheCluster"+-- | The response status code.+dccrsStatus :: Lens' DeleteCacheClusterResponse Int+dccrsStatus = lens _dccrsStatus (\ s a -> s{_dccrsStatus = a});
gen/Network/AWS/ElastiCache/DeleteCacheParameterGroup.hs view
@@ -1,97 +1,104 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.DeleteCacheParameterGroup--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /DeleteCacheParameterGroup/ action deletes the specified cache parameter--- group. You cannot delete a cache parameter group if it is associated with any--- cache clusters.+-- The /DeleteCacheParameterGroup/ action deletes the specified cache+-- parameter group. You cannot delete a cache parameter group if it is+-- associated with any cache clusters. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteCacheParameterGroup.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteCacheParameterGroup.html AWS API Reference> for DeleteCacheParameterGroup. module Network.AWS.ElastiCache.DeleteCacheParameterGroup     (-    -- * Request-      DeleteCacheParameterGroup-    -- ** Request constructor-    , deleteCacheParameterGroup-    -- ** Request lenses-    , dcpg1CacheParameterGroupName+    -- * Creating a Request+      deleteCacheParameterGroup+    , DeleteCacheParameterGroup+    -- * Request Lenses+    , dCacheParameterGroupName -    -- * Response-    , DeleteCacheParameterGroupResponse-    -- ** Response constructor+    -- * Destructuring the Response     , deleteCacheParameterGroupResponse+    , DeleteCacheParameterGroupResponse     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--newtype DeleteCacheParameterGroup = DeleteCacheParameterGroup-    { _dcpg1CacheParameterGroupName :: Text-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'DeleteCacheParameterGroup' constructor.+-- | Represents the input of a /DeleteCacheParameterGroup/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'deleteCacheParameterGroup' smart constructor.+newtype DeleteCacheParameterGroup = DeleteCacheParameterGroup'+    { _dCacheParameterGroupName :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteCacheParameterGroup' with the minimum fields required to make a request. ----- * 'dcpg1CacheParameterGroupName' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ---deleteCacheParameterGroup :: Text -- ^ 'dcpg1CacheParameterGroupName'-                          -> DeleteCacheParameterGroup-deleteCacheParameterGroup p1 = DeleteCacheParameterGroup-    { _dcpg1CacheParameterGroupName = p1+-- * 'dCacheParameterGroupName'+deleteCacheParameterGroup+    :: Text -- ^ 'dCacheParameterGroupName'+    -> DeleteCacheParameterGroup+deleteCacheParameterGroup pCacheParameterGroupName_ =+    DeleteCacheParameterGroup'+    { _dCacheParameterGroupName = pCacheParameterGroupName_     }  -- | The name of the cache parameter group to delete. -- -- The specified cache security group must not be associated with any cache -- clusters.-dcpg1CacheParameterGroupName :: Lens' DeleteCacheParameterGroup Text-dcpg1CacheParameterGroupName =-    lens _dcpg1CacheParameterGroupName-        (\s a -> s { _dcpg1CacheParameterGroupName = a })+dCacheParameterGroupName :: Lens' DeleteCacheParameterGroup Text+dCacheParameterGroupName = lens _dCacheParameterGroupName (\ s a -> s{_dCacheParameterGroupName = a}); -data DeleteCacheParameterGroupResponse = DeleteCacheParameterGroupResponse-    deriving (Eq, Ord, Read, Show, Generic)+instance AWSRequest DeleteCacheParameterGroup where+        type Sv DeleteCacheParameterGroup = ElastiCache+        type Rs DeleteCacheParameterGroup =+             DeleteCacheParameterGroupResponse+        request = postQuery+        response+          = receiveNull DeleteCacheParameterGroupResponse' --- | 'DeleteCacheParameterGroupResponse' constructor.-deleteCacheParameterGroupResponse :: DeleteCacheParameterGroupResponse-deleteCacheParameterGroupResponse = DeleteCacheParameterGroupResponse+instance ToHeaders DeleteCacheParameterGroup where+        toHeaders = const mempty  instance ToPath DeleteCacheParameterGroup where-    toPath = const "/"+        toPath = const "/"  instance ToQuery DeleteCacheParameterGroup where-    toQuery DeleteCacheParameterGroup{..} = mconcat-        [ "CacheParameterGroupName" =? _dcpg1CacheParameterGroupName-        ]--instance ToHeaders DeleteCacheParameterGroup+        toQuery DeleteCacheParameterGroup'{..}+          = mconcat+              ["Action" =:+                 ("DeleteCacheParameterGroup" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "CacheParameterGroupName" =:+                 _dCacheParameterGroupName] -instance AWSRequest DeleteCacheParameterGroup where-    type Sv DeleteCacheParameterGroup = ElastiCache-    type Rs DeleteCacheParameterGroup = DeleteCacheParameterGroupResponse+-- | /See:/ 'deleteCacheParameterGroupResponse' smart constructor.+data DeleteCacheParameterGroupResponse =+    DeleteCacheParameterGroupResponse'+    deriving (Eq,Read,Show,Data,Typeable,Generic) -    request  = post "DeleteCacheParameterGroup"-    response = nullResponse DeleteCacheParameterGroupResponse+-- | Creates a value of 'DeleteCacheParameterGroupResponse' with the minimum fields required to make a request.+--+deleteCacheParameterGroupResponse+    :: DeleteCacheParameterGroupResponse+deleteCacheParameterGroupResponse = DeleteCacheParameterGroupResponse'
gen/Network/AWS/ElastiCache/DeleteCacheSecurityGroup.hs view
@@ -1,97 +1,104 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.DeleteCacheSecurityGroup--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /DeleteCacheSecurityGroup/ action deletes a cache security group.+-- The /DeleteCacheSecurityGroup/ action deletes a cache security group. ----- You cannot delete a cache security group if it is associated with any cache--- clusters.+-- You cannot delete a cache security group if it is associated with any+-- cache clusters. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteCacheSecurityGroup.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteCacheSecurityGroup.html AWS API Reference> for DeleteCacheSecurityGroup. module Network.AWS.ElastiCache.DeleteCacheSecurityGroup     (-    -- * Request-      DeleteCacheSecurityGroup-    -- ** Request constructor-    , deleteCacheSecurityGroup-    -- ** Request lenses+    -- * Creating a Request+      deleteCacheSecurityGroup+    , DeleteCacheSecurityGroup+    -- * Request Lenses     , dcsgCacheSecurityGroupName -    -- * Response-    , DeleteCacheSecurityGroupResponse-    -- ** Response constructor+    -- * Destructuring the Response     , deleteCacheSecurityGroupResponse+    , DeleteCacheSecurityGroupResponse     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response -newtype DeleteCacheSecurityGroup = DeleteCacheSecurityGroup+-- | Represents the input of a /DeleteCacheSecurityGroup/ action.+--+-- /See:/ 'deleteCacheSecurityGroup' smart constructor.+newtype DeleteCacheSecurityGroup = DeleteCacheSecurityGroup'     { _dcsgCacheSecurityGroupName :: Text-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)+    } deriving (Eq,Read,Show,Data,Typeable,Generic) --- | 'DeleteCacheSecurityGroup' constructor.------ The fields accessible through corresponding lenses are:+-- | Creates a value of 'DeleteCacheSecurityGroup' with the minimum fields required to make a request. ----- * 'dcsgCacheSecurityGroupName' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ---deleteCacheSecurityGroup :: Text -- ^ 'dcsgCacheSecurityGroupName'-                         -> DeleteCacheSecurityGroup-deleteCacheSecurityGroup p1 = DeleteCacheSecurityGroup-    { _dcsgCacheSecurityGroupName = p1+-- * 'dcsgCacheSecurityGroupName'+deleteCacheSecurityGroup+    :: Text -- ^ 'dcsgCacheSecurityGroupName'+    -> DeleteCacheSecurityGroup+deleteCacheSecurityGroup pCacheSecurityGroupName_ =+    DeleteCacheSecurityGroup'+    { _dcsgCacheSecurityGroupName = pCacheSecurityGroupName_     }  -- | The name of the cache security group to delete. -- -- You cannot delete the default security group. dcsgCacheSecurityGroupName :: Lens' DeleteCacheSecurityGroup Text-dcsgCacheSecurityGroupName =-    lens _dcsgCacheSecurityGroupName-        (\s a -> s { _dcsgCacheSecurityGroupName = a })+dcsgCacheSecurityGroupName = lens _dcsgCacheSecurityGroupName (\ s a -> s{_dcsgCacheSecurityGroupName = a}); -data DeleteCacheSecurityGroupResponse = DeleteCacheSecurityGroupResponse-    deriving (Eq, Ord, Read, Show, Generic)+instance AWSRequest DeleteCacheSecurityGroup where+        type Sv DeleteCacheSecurityGroup = ElastiCache+        type Rs DeleteCacheSecurityGroup =+             DeleteCacheSecurityGroupResponse+        request = postQuery+        response+          = receiveNull DeleteCacheSecurityGroupResponse' --- | 'DeleteCacheSecurityGroupResponse' constructor.-deleteCacheSecurityGroupResponse :: DeleteCacheSecurityGroupResponse-deleteCacheSecurityGroupResponse = DeleteCacheSecurityGroupResponse+instance ToHeaders DeleteCacheSecurityGroup where+        toHeaders = const mempty  instance ToPath DeleteCacheSecurityGroup where-    toPath = const "/"+        toPath = const "/"  instance ToQuery DeleteCacheSecurityGroup where-    toQuery DeleteCacheSecurityGroup{..} = mconcat-        [ "CacheSecurityGroupName" =? _dcsgCacheSecurityGroupName-        ]--instance ToHeaders DeleteCacheSecurityGroup+        toQuery DeleteCacheSecurityGroup'{..}+          = mconcat+              ["Action" =:+                 ("DeleteCacheSecurityGroup" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "CacheSecurityGroupName" =:+                 _dcsgCacheSecurityGroupName] -instance AWSRequest DeleteCacheSecurityGroup where-    type Sv DeleteCacheSecurityGroup = ElastiCache-    type Rs DeleteCacheSecurityGroup = DeleteCacheSecurityGroupResponse+-- | /See:/ 'deleteCacheSecurityGroupResponse' smart constructor.+data DeleteCacheSecurityGroupResponse =+    DeleteCacheSecurityGroupResponse'+    deriving (Eq,Read,Show,Data,Typeable,Generic) -    request  = post "DeleteCacheSecurityGroup"-    response = nullResponse DeleteCacheSecurityGroupResponse+-- | Creates a value of 'DeleteCacheSecurityGroupResponse' with the minimum fields required to make a request.+--+deleteCacheSecurityGroupResponse+    :: DeleteCacheSecurityGroupResponse+deleteCacheSecurityGroupResponse = DeleteCacheSecurityGroupResponse'
gen/Network/AWS/ElastiCache/DeleteCacheSubnetGroup.hs view
@@ -1,98 +1,104 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.DeleteCacheSubnetGroup--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /DeleteCacheSubnetGroup/ action deletes a cache subnet group.+-- The /DeleteCacheSubnetGroup/ action deletes a cache subnet group. ----- You cannot delete a cache subnet group if it is associated with any cache--- clusters.+-- You cannot delete a cache subnet group if it is associated with any+-- cache clusters. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteCacheSubnetGroup.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteCacheSubnetGroup.html AWS API Reference> for DeleteCacheSubnetGroup. module Network.AWS.ElastiCache.DeleteCacheSubnetGroup     (-    -- * Request-      DeleteCacheSubnetGroup-    -- ** Request constructor-    , deleteCacheSubnetGroup-    -- ** Request lenses-    , dcsg1CacheSubnetGroupName+    -- * Creating a Request+      deleteCacheSubnetGroup+    , DeleteCacheSubnetGroup+    -- * Request Lenses+    , dCacheSubnetGroupName -    -- * Response-    , DeleteCacheSubnetGroupResponse-    -- ** Response constructor+    -- * Destructuring the Response     , deleteCacheSubnetGroupResponse+    , DeleteCacheSubnetGroupResponse     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--newtype DeleteCacheSubnetGroup = DeleteCacheSubnetGroup-    { _dcsg1CacheSubnetGroupName :: Text-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'DeleteCacheSubnetGroup' constructor.+-- | Represents the input of a /DeleteCacheSubnetGroup/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'deleteCacheSubnetGroup' smart constructor.+newtype DeleteCacheSubnetGroup = DeleteCacheSubnetGroup'+    { _dCacheSubnetGroupName :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteCacheSubnetGroup' with the minimum fields required to make a request. ----- * 'dcsg1CacheSubnetGroupName' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ---deleteCacheSubnetGroup :: Text -- ^ 'dcsg1CacheSubnetGroupName'-                       -> DeleteCacheSubnetGroup-deleteCacheSubnetGroup p1 = DeleteCacheSubnetGroup-    { _dcsg1CacheSubnetGroupName = p1+-- * 'dCacheSubnetGroupName'+deleteCacheSubnetGroup+    :: Text -- ^ 'dCacheSubnetGroupName'+    -> DeleteCacheSubnetGroup+deleteCacheSubnetGroup pCacheSubnetGroupName_ =+    DeleteCacheSubnetGroup'+    { _dCacheSubnetGroupName = pCacheSubnetGroupName_     }  -- | The name of the cache subnet group to delete. -- -- Constraints: Must contain no more than 255 alphanumeric characters or -- hyphens.-dcsg1CacheSubnetGroupName :: Lens' DeleteCacheSubnetGroup Text-dcsg1CacheSubnetGroupName =-    lens _dcsg1CacheSubnetGroupName-        (\s a -> s { _dcsg1CacheSubnetGroupName = a })+dCacheSubnetGroupName :: Lens' DeleteCacheSubnetGroup Text+dCacheSubnetGroupName = lens _dCacheSubnetGroupName (\ s a -> s{_dCacheSubnetGroupName = a}); -data DeleteCacheSubnetGroupResponse = DeleteCacheSubnetGroupResponse-    deriving (Eq, Ord, Read, Show, Generic)+instance AWSRequest DeleteCacheSubnetGroup where+        type Sv DeleteCacheSubnetGroup = ElastiCache+        type Rs DeleteCacheSubnetGroup =+             DeleteCacheSubnetGroupResponse+        request = postQuery+        response+          = receiveNull DeleteCacheSubnetGroupResponse' --- | 'DeleteCacheSubnetGroupResponse' constructor.-deleteCacheSubnetGroupResponse :: DeleteCacheSubnetGroupResponse-deleteCacheSubnetGroupResponse = DeleteCacheSubnetGroupResponse+instance ToHeaders DeleteCacheSubnetGroup where+        toHeaders = const mempty  instance ToPath DeleteCacheSubnetGroup where-    toPath = const "/"+        toPath = const "/"  instance ToQuery DeleteCacheSubnetGroup where-    toQuery DeleteCacheSubnetGroup{..} = mconcat-        [ "CacheSubnetGroupName" =? _dcsg1CacheSubnetGroupName-        ]--instance ToHeaders DeleteCacheSubnetGroup+        toQuery DeleteCacheSubnetGroup'{..}+          = mconcat+              ["Action" =:+                 ("DeleteCacheSubnetGroup" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "CacheSubnetGroupName" =: _dCacheSubnetGroupName] -instance AWSRequest DeleteCacheSubnetGroup where-    type Sv DeleteCacheSubnetGroup = ElastiCache-    type Rs DeleteCacheSubnetGroup = DeleteCacheSubnetGroupResponse+-- | /See:/ 'deleteCacheSubnetGroupResponse' smart constructor.+data DeleteCacheSubnetGroupResponse =+    DeleteCacheSubnetGroupResponse'+    deriving (Eq,Read,Show,Data,Typeable,Generic) -    request  = post "DeleteCacheSubnetGroup"-    response = nullResponse DeleteCacheSubnetGroupResponse+-- | Creates a value of 'DeleteCacheSubnetGroupResponse' with the minimum fields required to make a request.+--+deleteCacheSubnetGroupResponse+    :: DeleteCacheSubnetGroupResponse+deleteCacheSubnetGroupResponse = DeleteCacheSubnetGroupResponse'
gen/Network/AWS/ElastiCache/DeleteReplicationGroup.hs view
@@ -1,144 +1,157 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.DeleteReplicationGroup--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /DeleteReplicationGroup/ action deletes an existing replication group. By--- default, this action deletes the entire replication group, including the--- primary cluster and all of the read replicas. You can optionally delete only--- the read replicas, while retaining the primary cluster.+-- The /DeleteReplicationGroup/ action deletes an existing replication+-- group. By default, this action deletes the entire replication group,+-- including the primary cluster and all of the read replicas. You can+-- optionally delete only the read replicas, while retaining the primary+-- cluster. ----- When you receive a successful response from this action, Amazon ElastiCache--- immediately begins deleting the selected resources; you cannot cancel or--- revert this action.+-- When you receive a successful response from this action, Amazon+-- ElastiCache immediately begins deleting the selected resources; you+-- cannot cancel or revert this action. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteReplicationGroup.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteReplicationGroup.html AWS API Reference> for DeleteReplicationGroup. module Network.AWS.ElastiCache.DeleteReplicationGroup     (-    -- * Request-      DeleteReplicationGroup-    -- ** Request constructor-    , deleteReplicationGroup-    -- ** Request lenses+    -- * Creating a Request+      deleteReplicationGroup+    , DeleteReplicationGroup+    -- * Request Lenses     , drgFinalSnapshotIdentifier-    , drgReplicationGroupId     , drgRetainPrimaryCluster+    , drgReplicationGroupId -    -- * Response-    , DeleteReplicationGroupResponse-    -- ** Response constructor+    -- * Destructuring the Response     , deleteReplicationGroupResponse-    -- ** Response lenses-    , drgrReplicationGroup+    , DeleteReplicationGroupResponse+    -- * Response Lenses+    , delrsReplicationGroup+    , delrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data DeleteReplicationGroup = DeleteReplicationGroup-    { _drgFinalSnapshotIdentifier :: Maybe Text-    , _drgReplicationGroupId      :: Text-    , _drgRetainPrimaryCluster    :: Maybe Bool-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'DeleteReplicationGroup' constructor.+-- | Represents the input of a /DeleteReplicationGroup/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'deleteReplicationGroup' smart constructor.+data DeleteReplicationGroup = DeleteReplicationGroup'+    { _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. ----- * 'drgFinalSnapshotIdentifier' @::@ 'Maybe' 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'drgReplicationGroupId' @::@ 'Text'+-- * 'drgFinalSnapshotIdentifier' ----- * 'drgRetainPrimaryCluster' @::@ 'Maybe' 'Bool'+-- * 'drgRetainPrimaryCluster' ---deleteReplicationGroup :: Text -- ^ 'drgReplicationGroupId'-                       -> DeleteReplicationGroup-deleteReplicationGroup p1 = DeleteReplicationGroup-    { _drgReplicationGroupId      = p1-    , _drgRetainPrimaryCluster    = Nothing-    , _drgFinalSnapshotIdentifier = Nothing+-- * 'drgReplicationGroupId'+deleteReplicationGroup+    :: Text -- ^ 'drgReplicationGroupId'+    -> DeleteReplicationGroup+deleteReplicationGroup pReplicationGroupId_ =+    DeleteReplicationGroup'+    { _drgFinalSnapshotIdentifier = Nothing+    , _drgRetainPrimaryCluster = Nothing+    , _drgReplicationGroupId = pReplicationGroupId_     } --- | The name of a final node group 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 cluster is immediately deleted.+-- | The name of a final node group 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 cluster is immediately deleted. drgFinalSnapshotIdentifier :: Lens' DeleteReplicationGroup (Maybe Text)-drgFinalSnapshotIdentifier =-    lens _drgFinalSnapshotIdentifier-        (\s a -> s { _drgFinalSnapshotIdentifier = a })+drgFinalSnapshotIdentifier = lens _drgFinalSnapshotIdentifier (\ s a -> s{_drgFinalSnapshotIdentifier = a}); +-- | If set to /true/, all of the read replicas will be deleted, but the+-- primary node will be retained.+drgRetainPrimaryCluster :: Lens' DeleteReplicationGroup (Maybe Bool)+drgRetainPrimaryCluster = lens _drgRetainPrimaryCluster (\ s a -> s{_drgRetainPrimaryCluster = a});+ -- | The identifier for the cluster to be deleted. This parameter is not case -- sensitive. drgReplicationGroupId :: Lens' DeleteReplicationGroup Text-drgReplicationGroupId =-    lens _drgReplicationGroupId (\s a -> s { _drgReplicationGroupId = a })---- | If set to /true/, all of the read replicas will be deleted, but the primary--- node will be retained.-drgRetainPrimaryCluster :: Lens' DeleteReplicationGroup (Maybe Bool)-drgRetainPrimaryCluster =-    lens _drgRetainPrimaryCluster (\s a -> s { _drgRetainPrimaryCluster = a })--newtype DeleteReplicationGroupResponse = DeleteReplicationGroupResponse-    { _drgrReplicationGroup :: Maybe ReplicationGroup-    } deriving (Eq, Read, Show)+drgReplicationGroupId = lens _drgReplicationGroupId (\ s a -> s{_drgReplicationGroupId = a}); --- | 'DeleteReplicationGroupResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'drgrReplicationGroup' @::@ 'Maybe' 'ReplicationGroup'----deleteReplicationGroupResponse :: DeleteReplicationGroupResponse-deleteReplicationGroupResponse = DeleteReplicationGroupResponse-    { _drgrReplicationGroup = Nothing-    }+instance AWSRequest DeleteReplicationGroup where+        type Sv DeleteReplicationGroup = ElastiCache+        type Rs DeleteReplicationGroup =+             DeleteReplicationGroupResponse+        request = postQuery+        response+          = receiveXMLWrapper "DeleteReplicationGroupResult"+              (\ s h x ->+                 DeleteReplicationGroupResponse' <$>+                   (x .@? "ReplicationGroup") <*> (pure (fromEnum s))) -drgrReplicationGroup :: Lens' DeleteReplicationGroupResponse (Maybe ReplicationGroup)-drgrReplicationGroup =-    lens _drgrReplicationGroup (\s a -> s { _drgrReplicationGroup = a })+instance ToHeaders DeleteReplicationGroup where+        toHeaders = const mempty  instance ToPath DeleteReplicationGroup where-    toPath = const "/"+        toPath = const "/"  instance ToQuery DeleteReplicationGroup where-    toQuery DeleteReplicationGroup{..} = mconcat-        [ "FinalSnapshotIdentifier" =? _drgFinalSnapshotIdentifier-        , "ReplicationGroupId"      =? _drgReplicationGroupId-        , "RetainPrimaryCluster"    =? _drgRetainPrimaryCluster-        ]+        toQuery DeleteReplicationGroup'{..}+          = mconcat+              ["Action" =:+                 ("DeleteReplicationGroup" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "FinalSnapshotIdentifier" =:+                 _drgFinalSnapshotIdentifier,+               "RetainPrimaryCluster" =: _drgRetainPrimaryCluster,+               "ReplicationGroupId" =: _drgReplicationGroupId] -instance ToHeaders DeleteReplicationGroup+-- | /See:/ 'deleteReplicationGroupResponse' smart constructor.+data DeleteReplicationGroupResponse = DeleteReplicationGroupResponse'+    { _delrsReplicationGroup :: !(Maybe ReplicationGroup)+    , _delrsStatus           :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest DeleteReplicationGroup where-    type Sv DeleteReplicationGroup = ElastiCache-    type Rs DeleteReplicationGroup = DeleteReplicationGroupResponse+-- | 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:+--+-- * 'delrsReplicationGroup'+--+-- * 'delrsStatus'+deleteReplicationGroupResponse+    :: Int -- ^ 'delrsStatus'+    -> DeleteReplicationGroupResponse+deleteReplicationGroupResponse pStatus_ =+    DeleteReplicationGroupResponse'+    { _delrsReplicationGroup = Nothing+    , _delrsStatus = pStatus_+    } -    request  = post "DeleteReplicationGroup"-    response = xmlResponse+-- | Undocumented member.+delrsReplicationGroup :: Lens' DeleteReplicationGroupResponse (Maybe ReplicationGroup)+delrsReplicationGroup = lens _delrsReplicationGroup (\ s a -> s{_delrsReplicationGroup = a}); -instance FromXML DeleteReplicationGroupResponse where-    parseXML = withElement "DeleteReplicationGroupResult" $ \x -> DeleteReplicationGroupResponse-        <$> x .@? "ReplicationGroup"+-- | The response status code.+delrsStatus :: Lens' DeleteReplicationGroupResponse Int+delrsStatus = lens _delrsStatus (\ s a -> s{_delrsStatus = a});
gen/Network/AWS/ElastiCache/DeleteSnapshot.hs view
@@ -1,109 +1,123 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.DeleteSnapshot--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /DeleteSnapshot/ action deletes an existing snapshot. When you receive a--- successful response from this action, ElastiCache immediately begins deleting--- the snapshot; you cannot cancel or revert this action.+-- The /DeleteSnapshot/ action deletes an existing snapshot. When you+-- receive a successful response from this action, ElastiCache immediately+-- begins deleting the snapshot; you cannot cancel or revert this action. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteSnapshot.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteSnapshot.html AWS API Reference> for DeleteSnapshot. module Network.AWS.ElastiCache.DeleteSnapshot     (-    -- * Request-      DeleteSnapshot-    -- ** Request constructor-    , deleteSnapshot-    -- ** Request lenses-    , ds1SnapshotName+    -- * Creating a Request+      deleteSnapshot+    , DeleteSnapshot+    -- * Request Lenses+    , dSnapshotName -    -- * Response-    , DeleteSnapshotResponse-    -- ** Response constructor+    -- * Destructuring the Response     , deleteSnapshotResponse-    -- ** Response lenses-    , dsrSnapshot+    , DeleteSnapshotResponse+    -- * Response Lenses+    , dsrsSnapshot+    , dsrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--newtype DeleteSnapshot = DeleteSnapshot-    { _ds1SnapshotName :: Text-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'DeleteSnapshot' constructor.+-- | Represents the input of a /DeleteSnapshot/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'deleteSnapshot' smart constructor.+newtype DeleteSnapshot = DeleteSnapshot'+    { _dSnapshotName :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteSnapshot' with the minimum fields required to make a request. ----- * 'ds1SnapshotName' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ---deleteSnapshot :: Text -- ^ 'ds1SnapshotName'-               -> DeleteSnapshot-deleteSnapshot p1 = DeleteSnapshot-    { _ds1SnapshotName = p1+-- * 'dSnapshotName'+deleteSnapshot+    :: Text -- ^ 'dSnapshotName'+    -> DeleteSnapshot+deleteSnapshot pSnapshotName_ =+    DeleteSnapshot'+    { _dSnapshotName = pSnapshotName_     }  -- | The name of the snapshot to be deleted.-ds1SnapshotName :: Lens' DeleteSnapshot Text-ds1SnapshotName = lens _ds1SnapshotName (\s a -> s { _ds1SnapshotName = a })--newtype DeleteSnapshotResponse = DeleteSnapshotResponse-    { _dsrSnapshot :: Maybe Snapshot-    } deriving (Eq, Read, Show)+dSnapshotName :: Lens' DeleteSnapshot Text+dSnapshotName = lens _dSnapshotName (\ s a -> s{_dSnapshotName = a}); --- | 'DeleteSnapshotResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'dsrSnapshot' @::@ 'Maybe' 'Snapshot'----deleteSnapshotResponse :: DeleteSnapshotResponse-deleteSnapshotResponse = DeleteSnapshotResponse-    { _dsrSnapshot = Nothing-    }+instance AWSRequest DeleteSnapshot where+        type Sv DeleteSnapshot = ElastiCache+        type Rs DeleteSnapshot = DeleteSnapshotResponse+        request = postQuery+        response+          = receiveXMLWrapper "DeleteSnapshotResult"+              (\ s h x ->+                 DeleteSnapshotResponse' <$>+                   (x .@? "Snapshot") <*> (pure (fromEnum s))) -dsrSnapshot :: Lens' DeleteSnapshotResponse (Maybe Snapshot)-dsrSnapshot = lens _dsrSnapshot (\s a -> s { _dsrSnapshot = a })+instance ToHeaders DeleteSnapshot where+        toHeaders = const mempty  instance ToPath DeleteSnapshot where-    toPath = const "/"+        toPath = const "/"  instance ToQuery DeleteSnapshot where-    toQuery DeleteSnapshot{..} = mconcat-        [ "SnapshotName" =? _ds1SnapshotName-        ]+        toQuery DeleteSnapshot'{..}+          = mconcat+              ["Action" =: ("DeleteSnapshot" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "SnapshotName" =: _dSnapshotName] -instance ToHeaders DeleteSnapshot+-- | /See:/ 'deleteSnapshotResponse' smart constructor.+data DeleteSnapshotResponse = DeleteSnapshotResponse'+    { _dsrsSnapshot :: !(Maybe Snapshot)+    , _dsrsStatus   :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest DeleteSnapshot where-    type Sv DeleteSnapshot = ElastiCache-    type Rs DeleteSnapshot = DeleteSnapshotResponse+-- | 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:+--+-- * 'dsrsSnapshot'+--+-- * 'dsrsStatus'+deleteSnapshotResponse+    :: Int -- ^ 'dsrsStatus'+    -> DeleteSnapshotResponse+deleteSnapshotResponse pStatus_ =+    DeleteSnapshotResponse'+    { _dsrsSnapshot = Nothing+    , _dsrsStatus = pStatus_+    } -    request  = post "DeleteSnapshot"-    response = xmlResponse+-- | Undocumented member.+dsrsSnapshot :: Lens' DeleteSnapshotResponse (Maybe Snapshot)+dsrsSnapshot = lens _dsrsSnapshot (\ s a -> s{_dsrsSnapshot = a}); -instance FromXML DeleteSnapshotResponse where-    parseXML = withElement "DeleteSnapshotResult" $ \x -> DeleteSnapshotResponse-        <$> x .@? "Snapshot"+-- | The response status code.+dsrsStatus :: Lens' DeleteSnapshotResponse Int+dsrsStatus = lens _dsrsStatus (\ s a -> s{_dsrsStatus = a});
gen/Network/AWS/ElastiCache/DescribeCacheClusters.hs view
@@ -1,190 +1,209 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.DescribeCacheClusters--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /DescribeCacheClusters/ action 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.+-- The /DescribeCacheClusters/ action 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. -- -- By default, abbreviated information about the cache clusters(s) will be--- 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.+-- 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. ----- If the cluster is in the CREATING state, only cluster level information will--- be displayed until all of the nodes are successfully provisioned.+-- If the cluster is in the CREATING state, only cluster level information+-- will be displayed until all of the nodes are successfully provisioned. ----- If the cluster is in the DELETING state, only cluster level information will--- be displayed.+-- If the cluster is in the DELETING state, only cluster level information+-- will be displayed. ----- If cache nodes are currently being added to the cache cluster, node endpoint--- information and creation time for the additional nodes will not be 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 cache cluster, node+-- endpoint information and creation time for the additional nodes will not+-- be 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 removed from the cache cluster, no -- endpoint information for the removed nodes is displayed. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheClusters.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheClusters.html AWS API Reference> for DescribeCacheClusters.+--+-- This operation returns paginated results. module Network.AWS.ElastiCache.DescribeCacheClusters     (-    -- * Request-      DescribeCacheClusters-    -- ** Request constructor-    , describeCacheClusters-    -- ** Request lenses-    , dcc1CacheClusterId-    , dcc1Marker-    , dcc1MaxRecords-    , dcc1ShowCacheNodeInfo+    -- * Creating a Request+      describeCacheClusters+    , DescribeCacheClusters+    -- * Request Lenses+    , dCacheClusterId+    , dMaxRecords+    , dMarker+    , dShowCacheNodeInfo -    -- * Response-    , DescribeCacheClustersResponse-    -- ** Response constructor+    -- * Destructuring the Response     , describeCacheClustersResponse-    -- ** Response lenses-    , dccrCacheClusters-    , dccrMarker+    , DescribeCacheClustersResponse+    -- * Response Lenses+    , drsCacheClusters+    , drsMarker+    , drsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data DescribeCacheClusters = DescribeCacheClusters-    { _dcc1CacheClusterId    :: Maybe Text-    , _dcc1Marker            :: Maybe Text-    , _dcc1MaxRecords        :: Maybe Int-    , _dcc1ShowCacheNodeInfo :: Maybe Bool-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Pager+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'DescribeCacheClusters' constructor.+-- | Represents the input of a /DescribeCacheClusters/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'describeCacheClusters' smart constructor.+data DescribeCacheClusters = DescribeCacheClusters'+    { _dCacheClusterId    :: !(Maybe Text)+    , _dMaxRecords        :: !(Maybe Int)+    , _dMarker            :: !(Maybe Text)+    , _dShowCacheNodeInfo :: !(Maybe Bool)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeCacheClusters' with the minimum fields required to make a request. ----- * 'dcc1CacheClusterId' @::@ 'Maybe' 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'dcc1Marker' @::@ 'Maybe' 'Text'+-- * 'dCacheClusterId' ----- * 'dcc1MaxRecords' @::@ 'Maybe' 'Int'+-- * 'dMaxRecords' ----- * 'dcc1ShowCacheNodeInfo' @::@ 'Maybe' 'Bool'+-- * 'dMarker' ---describeCacheClusters :: DescribeCacheClusters-describeCacheClusters = DescribeCacheClusters-    { _dcc1CacheClusterId    = Nothing-    , _dcc1MaxRecords        = Nothing-    , _dcc1Marker            = Nothing-    , _dcc1ShowCacheNodeInfo = Nothing+-- * 'dShowCacheNodeInfo'+describeCacheClusters+    :: DescribeCacheClusters+describeCacheClusters =+    DescribeCacheClusters'+    { _dCacheClusterId = Nothing+    , _dMaxRecords = Nothing+    , _dMarker = 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.-dcc1CacheClusterId :: Lens' DescribeCacheClusters (Maybe Text)-dcc1CacheClusterId =-    lens _dcc1CacheClusterId (\s a -> s { _dcc1CacheClusterId = a })---- | An optional marker returned from a prior request. Use this marker for--- pagination of results from this action. If this parameter is specified, the--- response includes only records beyond the marker, up to the value specified--- by /MaxRecords/.-dcc1Marker :: Lens' DescribeCacheClusters (Maybe Text)-dcc1Marker = lens _dcc1Marker (\s a -> s { _dcc1Marker = a })+-- | 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.+dCacheClusterId :: Lens' DescribeCacheClusters (Maybe Text)+dCacheClusterId = lens _dCacheClusterId (\ s a -> s{_dCacheClusterId = a}); --- | 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.+-- | 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.-dcc1MaxRecords :: Lens' DescribeCacheClusters (Maybe Int)-dcc1MaxRecords = lens _dcc1MaxRecords (\s a -> s { _dcc1MaxRecords = a })+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.-dcc1ShowCacheNodeInfo :: Lens' DescribeCacheClusters (Maybe Bool)-dcc1ShowCacheNodeInfo =-    lens _dcc1ShowCacheNodeInfo (\s a -> s { _dcc1ShowCacheNodeInfo = a })+-- | An optional marker returned from a prior request. Use this marker for+-- pagination of results from this action. If this parameter is specified,+-- the response includes only records beyond the marker, up to the value+-- specified by /MaxRecords/.+dMarker :: Lens' DescribeCacheClusters (Maybe Text)+dMarker = lens _dMarker (\ s a -> s{_dMarker = a}); -data DescribeCacheClustersResponse = DescribeCacheClustersResponse-    { _dccrCacheClusters :: List "member" CacheCluster-    , _dccrMarker        :: Maybe Text-    } deriving (Eq, Read, Show)+-- | 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}); --- | 'DescribeCacheClustersResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'dccrCacheClusters' @::@ ['CacheCluster']------ * 'dccrMarker' @::@ 'Maybe' 'Text'----describeCacheClustersResponse :: DescribeCacheClustersResponse-describeCacheClustersResponse = DescribeCacheClustersResponse-    { _dccrMarker        = Nothing-    , _dccrCacheClusters = mempty-    }+instance AWSPager DescribeCacheClusters where+        page rq rs+          | stop (rs ^. drsMarker) = Nothing+          | stop (rs ^. drsCacheClusters) = Nothing+          | otherwise = Just $ rq & dMarker .~ rs ^. drsMarker --- | A list of cache clusters. Each item in the list contains detailed information--- about one cache cluster.-dccrCacheClusters :: Lens' DescribeCacheClustersResponse [CacheCluster]-dccrCacheClusters =-    lens _dccrCacheClusters (\s a -> s { _dccrCacheClusters = a })-        . _List+instance AWSRequest DescribeCacheClusters where+        type Sv DescribeCacheClusters = ElastiCache+        type Rs DescribeCacheClusters =+             DescribeCacheClustersResponse+        request = postQuery+        response+          = receiveXMLWrapper "DescribeCacheClustersResult"+              (\ s h x ->+                 DescribeCacheClustersResponse' <$>+                   (x .@? "CacheClusters" .!@ mempty >>=+                      may (parseXMLList "CacheCluster"))+                     <*> (x .@? "Marker")+                     <*> (pure (fromEnum s))) --- | Provides an identifier to allow retrieval of paginated results.-dccrMarker :: Lens' DescribeCacheClustersResponse (Maybe Text)-dccrMarker = lens _dccrMarker (\s a -> s { _dccrMarker = a })+instance ToHeaders DescribeCacheClusters where+        toHeaders = const mempty  instance ToPath DescribeCacheClusters where-    toPath = const "/"+        toPath = const "/"  instance ToQuery DescribeCacheClusters where-    toQuery DescribeCacheClusters{..} = mconcat-        [ "CacheClusterId"    =? _dcc1CacheClusterId-        , "Marker"            =? _dcc1Marker-        , "MaxRecords"        =? _dcc1MaxRecords-        , "ShowCacheNodeInfo" =? _dcc1ShowCacheNodeInfo-        ]+        toQuery DescribeCacheClusters'{..}+          = mconcat+              ["Action" =: ("DescribeCacheClusters" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "CacheClusterId" =: _dCacheClusterId,+               "MaxRecords" =: _dMaxRecords, "Marker" =: _dMarker,+               "ShowCacheNodeInfo" =: _dShowCacheNodeInfo] -instance ToHeaders DescribeCacheClusters+-- | Represents the output of a /DescribeCacheClusters/ action.+--+-- /See:/ 'describeCacheClustersResponse' smart constructor.+data DescribeCacheClustersResponse = DescribeCacheClustersResponse'+    { _drsCacheClusters :: !(Maybe [CacheCluster])+    , _drsMarker        :: !(Maybe Text)+    , _drsStatus        :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest DescribeCacheClusters where-    type Sv DescribeCacheClusters = ElastiCache-    type Rs DescribeCacheClusters = DescribeCacheClustersResponse+-- | 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'+--+-- * 'drsMarker'+--+-- * 'drsStatus'+describeCacheClustersResponse+    :: Int -- ^ 'drsStatus'+    -> DescribeCacheClustersResponse+describeCacheClustersResponse pStatus_ =+    DescribeCacheClustersResponse'+    { _drsCacheClusters = Nothing+    , _drsMarker = Nothing+    , _drsStatus = pStatus_+    } -    request  = post "DescribeCacheClusters"-    response = xmlResponse+-- | A list of cache clusters. Each item in the list contains detailed+-- information about one cache cluster.+drsCacheClusters :: Lens' DescribeCacheClustersResponse [CacheCluster]+drsCacheClusters = lens _drsCacheClusters (\ s a -> s{_drsCacheClusters = a}) . _Default . _Coerce; -instance FromXML DescribeCacheClustersResponse where-    parseXML = withElement "DescribeCacheClustersResult" $ \x -> DescribeCacheClustersResponse-        <$> x .@? "CacheClusters" .!@ mempty-        <*> x .@? "Marker"+-- | Provides an identifier to allow retrieval of paginated results.+drsMarker :: Lens' DescribeCacheClustersResponse (Maybe Text)+drsMarker = lens _drsMarker (\ s a -> s{_drsMarker = a}); -instance AWSPager DescribeCacheClusters where-    page rq rs-        | stop (rs ^. dccrMarker) = Nothing-        | otherwise = (\x -> rq & dcc1Marker ?~ x)-            <$> (rs ^. dccrMarker)+-- | The response status code.+drsStatus :: Lens' DescribeCacheClustersResponse Int+drsStatus = lens _drsStatus (\ s a -> s{_drsStatus = a});
gen/Network/AWS/ElastiCache/DescribeCacheEngineVersions.hs view
@@ -1,198 +1,219 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.DescribeCacheEngineVersions--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /DescribeCacheEngineVersions/ action returns a list of the available cache--- engines and their versions.+-- The /DescribeCacheEngineVersions/ action returns a list of the available+-- cache engines and their versions. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheEngineVersions.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheEngineVersions.html AWS API Reference> for DescribeCacheEngineVersions.+--+-- This operation returns paginated results. module Network.AWS.ElastiCache.DescribeCacheEngineVersions     (-    -- * Request-      DescribeCacheEngineVersions-    -- ** Request constructor-    , describeCacheEngineVersions-    -- ** Request lenses+    -- * Creating a Request+      describeCacheEngineVersions+    , DescribeCacheEngineVersions+    -- * Request Lenses     , dcevCacheParameterGroupFamily+    , dcevEngineVersion     , dcevDefaultOnly     , dcevEngine-    , dcevEngineVersion-    , dcevMarker     , dcevMaxRecords+    , dcevMarker -    -- * Response-    , DescribeCacheEngineVersionsResponse-    -- ** Response constructor+    -- * Destructuring the Response     , describeCacheEngineVersionsResponse-    -- ** Response lenses-    , dcevrCacheEngineVersions-    , dcevrMarker+    , DescribeCacheEngineVersionsResponse+    -- * Response Lenses+    , dcevrsCacheEngineVersions+    , dcevrsMarker+    , dcevrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data DescribeCacheEngineVersions = DescribeCacheEngineVersions-    { _dcevCacheParameterGroupFamily :: Maybe Text-    , _dcevDefaultOnly               :: Maybe Bool-    , _dcevEngine                    :: Maybe Text-    , _dcevEngineVersion             :: Maybe Text-    , _dcevMarker                    :: Maybe Text-    , _dcevMaxRecords                :: Maybe Int-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Pager+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'DescribeCacheEngineVersions' constructor.+-- | Represents the input of a /DescribeCacheEngineVersions/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'describeCacheEngineVersions' smart constructor.+data DescribeCacheEngineVersions = DescribeCacheEngineVersions'+    { _dcevCacheParameterGroupFamily :: !(Maybe Text)+    , _dcevEngineVersion             :: !(Maybe Text)+    , _dcevDefaultOnly               :: !(Maybe Bool)+    , _dcevEngine                    :: !(Maybe Text)+    , _dcevMaxRecords                :: !(Maybe Int)+    , _dcevMarker                    :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeCacheEngineVersions' with the minimum fields required to make a request. ----- * 'dcevCacheParameterGroupFamily' @::@ 'Maybe' 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'dcevDefaultOnly' @::@ 'Maybe' 'Bool'+-- * 'dcevCacheParameterGroupFamily' ----- * 'dcevEngine' @::@ 'Maybe' 'Text'+-- * 'dcevEngineVersion' ----- * 'dcevEngineVersion' @::@ 'Maybe' 'Text'+-- * 'dcevDefaultOnly' ----- * 'dcevMarker' @::@ 'Maybe' 'Text'+-- * 'dcevEngine' ----- * 'dcevMaxRecords' @::@ 'Maybe' 'Int'+-- * 'dcevMaxRecords' ---describeCacheEngineVersions :: DescribeCacheEngineVersions-describeCacheEngineVersions = DescribeCacheEngineVersions-    { _dcevEngine                    = Nothing-    , _dcevEngineVersion             = Nothing-    , _dcevCacheParameterGroupFamily = Nothing-    , _dcevMaxRecords                = Nothing-    , _dcevMarker                    = Nothing-    , _dcevDefaultOnly               = Nothing+-- * 'dcevMarker'+describeCacheEngineVersions+    :: DescribeCacheEngineVersions+describeCacheEngineVersions =+    DescribeCacheEngineVersions'+    { _dcevCacheParameterGroupFamily = Nothing+    , _dcevEngineVersion = Nothing+    , _dcevDefaultOnly = Nothing+    , _dcevEngine = Nothing+    , _dcevMaxRecords = Nothing+    , _dcevMarker = Nothing     } --- | The name of a specific cache parameter group family to return details for.+-- | The name of a specific cache parameter group family to return details+-- for. -- -- Constraints: ----- Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens---+-- -   Must be 1 to 255 alphanumeric characters+-- -   First character must be a letter+-- -   Cannot end with a hyphen or contain two consecutive hyphens dcevCacheParameterGroupFamily :: Lens' DescribeCacheEngineVersions (Maybe Text)-dcevCacheParameterGroupFamily =-    lens _dcevCacheParameterGroupFamily-        (\s a -> s { _dcevCacheParameterGroupFamily = a })---- | If /true/, specifies that only the default version of the specified engine or--- engine and major version combination is to be returned.-dcevDefaultOnly :: Lens' DescribeCacheEngineVersions (Maybe Bool)-dcevDefaultOnly = lens _dcevDefaultOnly (\s a -> s { _dcevDefaultOnly = a })---- | The cache engine to return. Valid values: 'memcached' | 'redis'-dcevEngine :: Lens' DescribeCacheEngineVersions (Maybe Text)-dcevEngine = lens _dcevEngine (\s a -> s { _dcevEngine = a })+dcevCacheParameterGroupFamily = lens _dcevCacheParameterGroupFamily (\ s a -> s{_dcevCacheParameterGroupFamily = a});  -- | The cache engine version to return. -- -- Example: '1.4.14' dcevEngineVersion :: Lens' DescribeCacheEngineVersions (Maybe Text)-dcevEngineVersion =-    lens _dcevEngineVersion (\s a -> s { _dcevEngineVersion = a })+dcevEngineVersion = lens _dcevEngineVersion (\ s a -> s{_dcevEngineVersion = a}); --- | An optional marker returned from a prior request. Use this marker for--- pagination of results from this action. If this parameter is specified, the--- response includes only records beyond the marker, up to the value specified--- by /MaxRecords/.-dcevMarker :: Lens' DescribeCacheEngineVersions (Maybe Text)-dcevMarker = lens _dcevMarker (\s a -> s { _dcevMarker = a })+-- | If /true/, specifies that only the default version of the specified+-- engine or engine and major version combination is to be returned.+dcevDefaultOnly :: Lens' DescribeCacheEngineVersions (Maybe Bool)+dcevDefaultOnly = lens _dcevDefaultOnly (\ s a -> s{_dcevDefaultOnly = a}); --- | 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.+-- | The cache engine to return. Valid values: 'memcached' | 'redis'+dcevEngine :: Lens' DescribeCacheEngineVersions (Maybe Text)+dcevEngine = lens _dcevEngine (\ s a -> s{_dcevEngine = a});++-- | 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. dcevMaxRecords :: Lens' DescribeCacheEngineVersions (Maybe Int)-dcevMaxRecords = lens _dcevMaxRecords (\s a -> s { _dcevMaxRecords = a })+dcevMaxRecords = lens _dcevMaxRecords (\ s a -> s{_dcevMaxRecords = a}); -data DescribeCacheEngineVersionsResponse = DescribeCacheEngineVersionsResponse-    { _dcevrCacheEngineVersions :: List "member" CacheEngineVersion-    , _dcevrMarker              :: Maybe Text-    } deriving (Eq, Read, Show)+-- | An optional marker returned from a prior request. Use this marker for+-- pagination of results from this action. If this parameter is specified,+-- the response includes only records beyond the marker, up to the value+-- specified by /MaxRecords/.+dcevMarker :: Lens' DescribeCacheEngineVersions (Maybe Text)+dcevMarker = lens _dcevMarker (\ s a -> s{_dcevMarker = a}); --- | 'DescribeCacheEngineVersionsResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'dcevrCacheEngineVersions' @::@ ['CacheEngineVersion']------ * 'dcevrMarker' @::@ 'Maybe' 'Text'----describeCacheEngineVersionsResponse :: DescribeCacheEngineVersionsResponse-describeCacheEngineVersionsResponse = DescribeCacheEngineVersionsResponse-    { _dcevrMarker              = Nothing-    , _dcevrCacheEngineVersions = mempty-    }+instance AWSPager DescribeCacheEngineVersions where+        page rq rs+          | stop (rs ^. dcevrsMarker) = Nothing+          | stop (rs ^. dcevrsCacheEngineVersions) = Nothing+          | otherwise =+            Just $ rq & dcevMarker .~ rs ^. dcevrsMarker --- | A list of cache engine version details. Each element in the list contains--- detailed information about one cache engine version.-dcevrCacheEngineVersions :: Lens' DescribeCacheEngineVersionsResponse [CacheEngineVersion]-dcevrCacheEngineVersions =-    lens _dcevrCacheEngineVersions-        (\s a -> s { _dcevrCacheEngineVersions = a })-            . _List+instance AWSRequest DescribeCacheEngineVersions where+        type Sv DescribeCacheEngineVersions = ElastiCache+        type Rs DescribeCacheEngineVersions =+             DescribeCacheEngineVersionsResponse+        request = postQuery+        response+          = receiveXMLWrapper+              "DescribeCacheEngineVersionsResult"+              (\ s h x ->+                 DescribeCacheEngineVersionsResponse' <$>+                   (x .@? "CacheEngineVersions" .!@ mempty >>=+                      may (parseXMLList "CacheEngineVersion"))+                     <*> (x .@? "Marker")+                     <*> (pure (fromEnum s))) --- | Provides an identifier to allow retrieval of paginated results.-dcevrMarker :: Lens' DescribeCacheEngineVersionsResponse (Maybe Text)-dcevrMarker = lens _dcevrMarker (\s a -> s { _dcevrMarker = a })+instance ToHeaders DescribeCacheEngineVersions where+        toHeaders = const mempty  instance ToPath DescribeCacheEngineVersions where-    toPath = const "/"+        toPath = const "/"  instance ToQuery DescribeCacheEngineVersions where-    toQuery DescribeCacheEngineVersions{..} = mconcat-        [ "CacheParameterGroupFamily" =? _dcevCacheParameterGroupFamily-        , "DefaultOnly"               =? _dcevDefaultOnly-        , "Engine"                    =? _dcevEngine-        , "EngineVersion"             =? _dcevEngineVersion-        , "Marker"                    =? _dcevMarker-        , "MaxRecords"                =? _dcevMaxRecords-        ]+        toQuery DescribeCacheEngineVersions'{..}+          = mconcat+              ["Action" =:+                 ("DescribeCacheEngineVersions" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "CacheParameterGroupFamily" =:+                 _dcevCacheParameterGroupFamily,+               "EngineVersion" =: _dcevEngineVersion,+               "DefaultOnly" =: _dcevDefaultOnly,+               "Engine" =: _dcevEngine,+               "MaxRecords" =: _dcevMaxRecords,+               "Marker" =: _dcevMarker] -instance ToHeaders DescribeCacheEngineVersions+-- | Represents the output of a DescribeCacheEngineVersions action.+--+-- /See:/ 'describeCacheEngineVersionsResponse' smart constructor.+data DescribeCacheEngineVersionsResponse = DescribeCacheEngineVersionsResponse'+    { _dcevrsCacheEngineVersions :: !(Maybe [CacheEngineVersion])+    , _dcevrsMarker              :: !(Maybe Text)+    , _dcevrsStatus              :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest DescribeCacheEngineVersions where-    type Sv DescribeCacheEngineVersions = ElastiCache-    type Rs DescribeCacheEngineVersions = DescribeCacheEngineVersionsResponse+-- | 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:+--+-- * 'dcevrsCacheEngineVersions'+--+-- * 'dcevrsMarker'+--+-- * 'dcevrsStatus'+describeCacheEngineVersionsResponse+    :: Int -- ^ 'dcevrsStatus'+    -> DescribeCacheEngineVersionsResponse+describeCacheEngineVersionsResponse pStatus_ =+    DescribeCacheEngineVersionsResponse'+    { _dcevrsCacheEngineVersions = Nothing+    , _dcevrsMarker = Nothing+    , _dcevrsStatus = pStatus_+    } -    request  = post "DescribeCacheEngineVersions"-    response = xmlResponse+-- | 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; -instance FromXML DescribeCacheEngineVersionsResponse where-    parseXML = withElement "DescribeCacheEngineVersionsResult" $ \x -> DescribeCacheEngineVersionsResponse-        <$> x .@? "CacheEngineVersions" .!@ mempty-        <*> x .@? "Marker"+-- | Provides an identifier to allow retrieval of paginated results.+dcevrsMarker :: Lens' DescribeCacheEngineVersionsResponse (Maybe Text)+dcevrsMarker = lens _dcevrsMarker (\ s a -> s{_dcevrsMarker = a}); -instance AWSPager DescribeCacheEngineVersions where-    page rq rs-        | stop (rs ^. dcevrMarker) = Nothing-        | otherwise = (\x -> rq & dcevMarker ?~ x)-            <$> (rs ^. dcevrMarker)+-- | The response status code.+dcevrsStatus :: Lens' DescribeCacheEngineVersionsResponse Int+dcevrsStatus = lens _dcevrsStatus (\ s a -> s{_dcevrsStatus = a});
gen/Network/AWS/ElastiCache/DescribeCacheParameterGroups.hs view
@@ -1,160 +1,181 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.DescribeCacheParameterGroups--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /DescribeCacheParameterGroups/ action returns a list of cache parameter--- group descriptions. If a cache parameter group name is specified, the list--- will contain only the descriptions for that group.+-- The /DescribeCacheParameterGroups/ action returns a list of cache+-- parameter group descriptions. If a cache parameter group name is+-- specified, the list will contain only the descriptions for that group. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheParameterGroups.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheParameterGroups.html AWS API Reference> for DescribeCacheParameterGroups.+--+-- This operation returns paginated results. module Network.AWS.ElastiCache.DescribeCacheParameterGroups     (-    -- * Request-      DescribeCacheParameterGroups-    -- ** Request constructor-    , describeCacheParameterGroups-    -- ** Request lenses+    -- * Creating a Request+      describeCacheParameterGroups+    , DescribeCacheParameterGroups+    -- * Request Lenses     , dcpgCacheParameterGroupName-    , dcpgMarker     , dcpgMaxRecords+    , dcpgMarker -    -- * Response-    , DescribeCacheParameterGroupsResponse-    -- ** Response constructor+    -- * Destructuring the Response     , describeCacheParameterGroupsResponse-    -- ** Response lenses-    , dcpgrCacheParameterGroups-    , dcpgrMarker+    , DescribeCacheParameterGroupsResponse+    -- * Response Lenses+    , dcpgrsCacheParameterGroups+    , dcpgrsMarker+    , dcpgrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data DescribeCacheParameterGroups = DescribeCacheParameterGroups-    { _dcpgCacheParameterGroupName :: Maybe Text-    , _dcpgMarker                  :: Maybe Text-    , _dcpgMaxRecords              :: Maybe Int-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Pager+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'DescribeCacheParameterGroups' constructor.+-- | Represents the input of a /DescribeCacheParameterGroups/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'describeCacheParameterGroups' smart constructor.+data DescribeCacheParameterGroups = DescribeCacheParameterGroups'+    { _dcpgCacheParameterGroupName :: !(Maybe Text)+    , _dcpgMaxRecords              :: !(Maybe Int)+    , _dcpgMarker                  :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeCacheParameterGroups' with the minimum fields required to make a request. ----- * 'dcpgCacheParameterGroupName' @::@ 'Maybe' 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'dcpgMarker' @::@ 'Maybe' 'Text'+-- * 'dcpgCacheParameterGroupName' ----- * 'dcpgMaxRecords' @::@ 'Maybe' 'Int'+-- * 'dcpgMaxRecords' ---describeCacheParameterGroups :: DescribeCacheParameterGroups-describeCacheParameterGroups = DescribeCacheParameterGroups+-- * 'dcpgMarker'+describeCacheParameterGroups+    :: DescribeCacheParameterGroups+describeCacheParameterGroups =+    DescribeCacheParameterGroups'     { _dcpgCacheParameterGroupName = Nothing-    , _dcpgMaxRecords              = Nothing-    , _dcpgMarker                  = Nothing+    , _dcpgMaxRecords = Nothing+    , _dcpgMarker = 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 })---- | An optional marker returned from a prior request. Use this marker for--- pagination of results from this action. If this parameter is specified, the--- response includes only records beyond the marker, up to the value specified--- by /MaxRecords/.-dcpgMarker :: Lens' DescribeCacheParameterGroups (Maybe Text)-dcpgMarker = lens _dcpgMarker (\s a -> s { _dcpgMarker = a })+dcpgCacheParameterGroupName = lens _dcpgCacheParameterGroupName (\ s a -> s{_dcpgCacheParameterGroupName = a}); --- | 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.+-- | 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. dcpgMaxRecords :: Lens' DescribeCacheParameterGroups (Maybe Int)-dcpgMaxRecords = lens _dcpgMaxRecords (\s a -> s { _dcpgMaxRecords = a })+dcpgMaxRecords = lens _dcpgMaxRecords (\ s a -> s{_dcpgMaxRecords = a}); -data DescribeCacheParameterGroupsResponse = DescribeCacheParameterGroupsResponse-    { _dcpgrCacheParameterGroups :: List "member" CacheParameterGroup-    , _dcpgrMarker               :: Maybe Text-    } deriving (Eq, Read, Show)+-- | An optional marker returned from a prior request. Use this marker for+-- pagination of results from this action. If this parameter is specified,+-- the response includes only records beyond the marker, up to the value+-- specified by /MaxRecords/.+dcpgMarker :: Lens' DescribeCacheParameterGroups (Maybe Text)+dcpgMarker = lens _dcpgMarker (\ s a -> s{_dcpgMarker = a}); --- | 'DescribeCacheParameterGroupsResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'dcpgrCacheParameterGroups' @::@ ['CacheParameterGroup']------ * 'dcpgrMarker' @::@ 'Maybe' 'Text'----describeCacheParameterGroupsResponse :: DescribeCacheParameterGroupsResponse-describeCacheParameterGroupsResponse = DescribeCacheParameterGroupsResponse-    { _dcpgrMarker               = Nothing-    , _dcpgrCacheParameterGroups = mempty-    }+instance AWSPager DescribeCacheParameterGroups where+        page rq rs+          | stop (rs ^. dcpgrsMarker) = Nothing+          | stop (rs ^. dcpgrsCacheParameterGroups) = Nothing+          | otherwise =+            Just $ rq & dcpgMarker .~ rs ^. dcpgrsMarker --- | A list of cache parameter groups. Each element in the list contains detailed--- information about one cache parameter group.-dcpgrCacheParameterGroups :: Lens' DescribeCacheParameterGroupsResponse [CacheParameterGroup]-dcpgrCacheParameterGroups =-    lens _dcpgrCacheParameterGroups-        (\s a -> s { _dcpgrCacheParameterGroups = a })-            . _List+instance AWSRequest DescribeCacheParameterGroups+         where+        type Sv DescribeCacheParameterGroups = ElastiCache+        type Rs DescribeCacheParameterGroups =+             DescribeCacheParameterGroupsResponse+        request = postQuery+        response+          = receiveXMLWrapper+              "DescribeCacheParameterGroupsResult"+              (\ s h x ->+                 DescribeCacheParameterGroupsResponse' <$>+                   (x .@? "CacheParameterGroups" .!@ mempty >>=+                      may (parseXMLList "CacheParameterGroup"))+                     <*> (x .@? "Marker")+                     <*> (pure (fromEnum s))) --- | Provides an identifier to allow retrieval of paginated results.-dcpgrMarker :: Lens' DescribeCacheParameterGroupsResponse (Maybe Text)-dcpgrMarker = lens _dcpgrMarker (\s a -> s { _dcpgrMarker = a })+instance ToHeaders DescribeCacheParameterGroups where+        toHeaders = const mempty  instance ToPath DescribeCacheParameterGroups where-    toPath = const "/"+        toPath = const "/"  instance ToQuery DescribeCacheParameterGroups where-    toQuery DescribeCacheParameterGroups{..} = mconcat-        [ "CacheParameterGroupName" =? _dcpgCacheParameterGroupName-        , "Marker"                  =? _dcpgMarker-        , "MaxRecords"              =? _dcpgMaxRecords-        ]+        toQuery DescribeCacheParameterGroups'{..}+          = mconcat+              ["Action" =:+                 ("DescribeCacheParameterGroups" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "CacheParameterGroupName" =:+                 _dcpgCacheParameterGroupName,+               "MaxRecords" =: _dcpgMaxRecords,+               "Marker" =: _dcpgMarker] -instance ToHeaders DescribeCacheParameterGroups+-- | Represents the output of a /DescribeCacheParameterGroups/ action.+--+-- /See:/ 'describeCacheParameterGroupsResponse' smart constructor.+data DescribeCacheParameterGroupsResponse = DescribeCacheParameterGroupsResponse'+    { _dcpgrsCacheParameterGroups :: !(Maybe [CacheParameterGroup])+    , _dcpgrsMarker               :: !(Maybe Text)+    , _dcpgrsStatus               :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest DescribeCacheParameterGroups where-    type Sv DescribeCacheParameterGroups = ElastiCache-    type Rs DescribeCacheParameterGroups = DescribeCacheParameterGroupsResponse+-- | 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:+--+-- * 'dcpgrsCacheParameterGroups'+--+-- * 'dcpgrsMarker'+--+-- * 'dcpgrsStatus'+describeCacheParameterGroupsResponse+    :: Int -- ^ 'dcpgrsStatus'+    -> DescribeCacheParameterGroupsResponse+describeCacheParameterGroupsResponse pStatus_ =+    DescribeCacheParameterGroupsResponse'+    { _dcpgrsCacheParameterGroups = Nothing+    , _dcpgrsMarker = Nothing+    , _dcpgrsStatus = pStatus_+    } -    request  = post "DescribeCacheParameterGroups"-    response = xmlResponse+-- | 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; -instance FromXML DescribeCacheParameterGroupsResponse where-    parseXML = withElement "DescribeCacheParameterGroupsResult" $ \x -> DescribeCacheParameterGroupsResponse-        <$> x .@? "CacheParameterGroups" .!@ mempty-        <*> x .@? "Marker"+-- | Provides an identifier to allow retrieval of paginated results.+dcpgrsMarker :: Lens' DescribeCacheParameterGroupsResponse (Maybe Text)+dcpgrsMarker = lens _dcpgrsMarker (\ s a -> s{_dcpgrsMarker = a}); -instance AWSPager DescribeCacheParameterGroups where-    page rq rs-        | stop (rs ^. dcpgrMarker) = Nothing-        | otherwise = (\x -> rq & dcpgMarker ?~ x)-            <$> (rs ^. dcpgrMarker)+-- | The response status code.+dcpgrsStatus :: Lens' DescribeCacheParameterGroupsResponse Int+dcpgrsStatus = lens _dcpgrsStatus (\ s a -> s{_dcpgrsStatus = a});
gen/Network/AWS/ElastiCache/DescribeCacheParameters.hs view
@@ -1,182 +1,203 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.DescribeCacheParameters--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /DescribeCacheParameters/ action returns the detailed parameter list for a--- particular cache parameter group.+-- The /DescribeCacheParameters/ action returns the detailed parameter list+-- for a particular cache parameter group. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheParameters.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheParameters.html AWS API Reference> for DescribeCacheParameters.+--+-- This operation returns paginated results. module Network.AWS.ElastiCache.DescribeCacheParameters     (-    -- * Request-      DescribeCacheParameters-    -- ** Request constructor-    , describeCacheParameters-    -- ** Request lenses-    , dcpCacheParameterGroupName-    , dcpMarker+    -- * Creating a Request+      describeCacheParameters+    , DescribeCacheParameters+    -- * Request Lenses     , dcpMaxRecords+    , dcpMarker     , dcpSource+    , dcpCacheParameterGroupName -    -- * Response-    , DescribeCacheParametersResponse-    -- ** Response constructor+    -- * Destructuring the Response     , describeCacheParametersResponse-    -- ** Response lenses-    , dcprCacheNodeTypeSpecificParameters-    , dcprMarker-    , dcprParameters+    , DescribeCacheParametersResponse+    -- * Response Lenses+    , dcprsCacheNodeTypeSpecificParameters+    , dcprsParameters+    , dcprsMarker+    , dcprsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data DescribeCacheParameters = DescribeCacheParameters-    { _dcpCacheParameterGroupName :: Text-    , _dcpMarker                  :: Maybe Text-    , _dcpMaxRecords              :: Maybe Int-    , _dcpSource                  :: Maybe Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Pager+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'DescribeCacheParameters' constructor.+-- | Represents the input of a /DescribeCacheParameters/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'describeCacheParameters' smart constructor.+data DescribeCacheParameters = DescribeCacheParameters'+    { _dcpMaxRecords              :: !(Maybe Int)+    , _dcpMarker                  :: !(Maybe Text)+    , _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. ----- * 'dcpCacheParameterGroupName' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'dcpMarker' @::@ 'Maybe' 'Text'+-- * 'dcpMaxRecords' ----- * 'dcpMaxRecords' @::@ 'Maybe' 'Int'+-- * 'dcpMarker' ----- * 'dcpSource' @::@ 'Maybe' 'Text'+-- * 'dcpSource' ---describeCacheParameters :: Text -- ^ 'dcpCacheParameterGroupName'-                        -> DescribeCacheParameters-describeCacheParameters p1 = DescribeCacheParameters-    { _dcpCacheParameterGroupName = p1-    , _dcpSource                  = Nothing-    , _dcpMaxRecords              = Nothing-    , _dcpMarker                  = Nothing+-- * 'dcpCacheParameterGroupName'+describeCacheParameters+    :: Text -- ^ 'dcpCacheParameterGroupName'+    -> DescribeCacheParameters+describeCacheParameters pCacheParameterGroupName_ =+    DescribeCacheParameters'+    { _dcpMaxRecords = Nothing+    , _dcpMarker = Nothing+    , _dcpSource = Nothing+    , _dcpCacheParameterGroupName = pCacheParameterGroupName_     } --- | The name of a specific cache parameter group to return details for.-dcpCacheParameterGroupName :: Lens' DescribeCacheParameters Text-dcpCacheParameterGroupName =-    lens _dcpCacheParameterGroupName-        (\s a -> s { _dcpCacheParameterGroupName = a })---- | An optional marker returned from a prior request. Use this marker for--- pagination of results from this action. 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 })---- | 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.+-- | 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. dcpMaxRecords :: Lens' DescribeCacheParameters (Maybe Int)-dcpMaxRecords = lens _dcpMaxRecords (\s a -> s { _dcpMaxRecords = a })+dcpMaxRecords = lens _dcpMaxRecords (\ s a -> s{_dcpMaxRecords = a}); +-- | An optional marker returned from a prior request. Use this marker for+-- pagination of results from this action. 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});+ -- | The parameter types to return. -- -- Valid values: 'user' | 'system' | 'engine-default' dcpSource :: Lens' DescribeCacheParameters (Maybe Text)-dcpSource = lens _dcpSource (\s a -> s { _dcpSource = a })--data DescribeCacheParametersResponse = DescribeCacheParametersResponse-    { _dcprCacheNodeTypeSpecificParameters :: List "member" CacheNodeTypeSpecificParameter-    , _dcprMarker                          :: Maybe Text-    , _dcprParameters                      :: List "member" Parameter-    } deriving (Eq, Read, Show)+dcpSource = lens _dcpSource (\ s a -> s{_dcpSource = a}); --- | 'DescribeCacheParametersResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'dcprCacheNodeTypeSpecificParameters' @::@ ['CacheNodeTypeSpecificParameter']------ * 'dcprMarker' @::@ 'Maybe' 'Text'------ * 'dcprParameters' @::@ ['Parameter']----describeCacheParametersResponse :: DescribeCacheParametersResponse-describeCacheParametersResponse = DescribeCacheParametersResponse-    { _dcprMarker                          = Nothing-    , _dcprParameters                      = mempty-    , _dcprCacheNodeTypeSpecificParameters = mempty-    }+-- | The name of a specific cache parameter group to return details for.+dcpCacheParameterGroupName :: Lens' DescribeCacheParameters Text+dcpCacheParameterGroupName = lens _dcpCacheParameterGroupName (\ s a -> s{_dcpCacheParameterGroupName = a}); --- | A list of parameters specific to a particular cache node type. Each element--- in the list contains detailed information about one parameter.-dcprCacheNodeTypeSpecificParameters :: Lens' DescribeCacheParametersResponse [CacheNodeTypeSpecificParameter]-dcprCacheNodeTypeSpecificParameters =-    lens _dcprCacheNodeTypeSpecificParameters-        (\s a -> s { _dcprCacheNodeTypeSpecificParameters = a })-            . _List+instance AWSPager DescribeCacheParameters where+        page rq rs+          | stop (rs ^. dcprsMarker) = Nothing+          | stop (rs ^. dcprsParameters) = Nothing+          | otherwise =+            Just $ rq & dcpMarker .~ rs ^. dcprsMarker --- | Provides an identifier to allow retrieval of paginated results.-dcprMarker :: Lens' DescribeCacheParametersResponse (Maybe Text)-dcprMarker = lens _dcprMarker (\s a -> s { _dcprMarker = a })+instance AWSRequest DescribeCacheParameters where+        type Sv DescribeCacheParameters = ElastiCache+        type Rs DescribeCacheParameters =+             DescribeCacheParametersResponse+        request = postQuery+        response+          = receiveXMLWrapper "DescribeCacheParametersResult"+              (\ s h x ->+                 DescribeCacheParametersResponse' <$>+                   (x .@? "CacheNodeTypeSpecificParameters" .!@ mempty+                      >>=+                      may (parseXMLList "CacheNodeTypeSpecificParameter"))+                     <*>+                     (x .@? "Parameters" .!@ mempty >>=+                        may (parseXMLList "Parameter"))+                     <*> (x .@? "Marker")+                     <*> (pure (fromEnum s))) --- | A list of 'Parameter' instances.-dcprParameters :: Lens' DescribeCacheParametersResponse [Parameter]-dcprParameters = lens _dcprParameters (\s a -> s { _dcprParameters = a }) . _List+instance ToHeaders DescribeCacheParameters where+        toHeaders = const mempty  instance ToPath DescribeCacheParameters where-    toPath = const "/"+        toPath = const "/"  instance ToQuery DescribeCacheParameters where-    toQuery DescribeCacheParameters{..} = mconcat-        [ "CacheParameterGroupName" =? _dcpCacheParameterGroupName-        , "Marker"                  =? _dcpMarker-        , "MaxRecords"              =? _dcpMaxRecords-        , "Source"                  =? _dcpSource-        ]+        toQuery DescribeCacheParameters'{..}+          = mconcat+              ["Action" =:+                 ("DescribeCacheParameters" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "MaxRecords" =: _dcpMaxRecords,+               "Marker" =: _dcpMarker, "Source" =: _dcpSource,+               "CacheParameterGroupName" =:+                 _dcpCacheParameterGroupName] -instance ToHeaders DescribeCacheParameters+-- | Represents the output of a /DescribeCacheParameters/ action.+--+-- /See:/ 'describeCacheParametersResponse' smart constructor.+data DescribeCacheParametersResponse = DescribeCacheParametersResponse'+    { _dcprsCacheNodeTypeSpecificParameters :: !(Maybe [CacheNodeTypeSpecificParameter])+    , _dcprsParameters                      :: !(Maybe [Parameter])+    , _dcprsMarker                          :: !(Maybe Text)+    , _dcprsStatus                          :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest DescribeCacheParameters where-    type Sv DescribeCacheParameters = ElastiCache-    type Rs DescribeCacheParameters = DescribeCacheParametersResponse+-- | 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:+--+-- * 'dcprsCacheNodeTypeSpecificParameters'+--+-- * 'dcprsParameters'+--+-- * 'dcprsMarker'+--+-- * 'dcprsStatus'+describeCacheParametersResponse+    :: Int -- ^ 'dcprsStatus'+    -> DescribeCacheParametersResponse+describeCacheParametersResponse pStatus_ =+    DescribeCacheParametersResponse'+    { _dcprsCacheNodeTypeSpecificParameters = Nothing+    , _dcprsParameters = Nothing+    , _dcprsMarker = Nothing+    , _dcprsStatus = pStatus_+    } -    request  = post "DescribeCacheParameters"-    response = xmlResponse+-- | 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; -instance FromXML DescribeCacheParametersResponse where-    parseXML = withElement "DescribeCacheParametersResult" $ \x -> DescribeCacheParametersResponse-        <$> x .@? "CacheNodeTypeSpecificParameters" .!@ mempty-        <*> x .@? "Marker"-        <*> x .@? "Parameters" .!@ mempty+-- | A list of Parameter instances.+dcprsParameters :: Lens' DescribeCacheParametersResponse [Parameter]+dcprsParameters = lens _dcprsParameters (\ s a -> s{_dcprsParameters = a}) . _Default . _Coerce; -instance AWSPager DescribeCacheParameters where-    page rq rs-        | stop (rs ^. dcprMarker) = Nothing-        | otherwise = (\x -> rq & dcpMarker ?~ x)-            <$> (rs ^. dcprMarker)+-- | Provides an identifier to allow retrieval of paginated results.+dcprsMarker :: Lens' DescribeCacheParametersResponse (Maybe Text)+dcprsMarker = lens _dcprsMarker (\ s a -> s{_dcprsMarker = a});++-- | The response status code.+dcprsStatus :: Lens' DescribeCacheParametersResponse Int+dcprsStatus = lens _dcprsStatus (\ s a -> s{_dcprsStatus = a});
gen/Network/AWS/ElastiCache/DescribeCacheSecurityGroups.hs view
@@ -1,160 +1,180 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.DescribeCacheSecurityGroups--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /DescribeCacheSecurityGroups/ action returns a list of cache security group--- descriptions. If a cache security group name is specified, the list will--- contain only the description of that group.+-- The /DescribeCacheSecurityGroups/ action returns a list of cache+-- security group descriptions. If a cache security group name is+-- specified, the list will contain only the description of that group. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheSecurityGroups.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheSecurityGroups.html AWS API Reference> for DescribeCacheSecurityGroups.+--+-- This operation returns paginated results. module Network.AWS.ElastiCache.DescribeCacheSecurityGroups     (-    -- * Request-      DescribeCacheSecurityGroups-    -- ** Request constructor-    , describeCacheSecurityGroups-    -- ** Request lenses-    , dcsg1CacheSecurityGroupName-    , dcsg1Marker-    , dcsg1MaxRecords+    -- * Creating a Request+      describeCacheSecurityGroups+    , DescribeCacheSecurityGroups+    -- * Request Lenses+    , dcsgsCacheSecurityGroupName+    , dcsgsMaxRecords+    , dcsgsMarker -    -- * Response-    , DescribeCacheSecurityGroupsResponse-    -- ** Response constructor+    -- * Destructuring the Response     , describeCacheSecurityGroupsResponse-    -- ** Response lenses-    , dcsgr1CacheSecurityGroups-    , dcsgr1Marker+    , DescribeCacheSecurityGroupsResponse+    -- * Response Lenses+    , dcsgsrsCacheSecurityGroups+    , dcsgsrsMarker+    , dcsgsrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data DescribeCacheSecurityGroups = DescribeCacheSecurityGroups-    { _dcsg1CacheSecurityGroupName :: Maybe Text-    , _dcsg1Marker                 :: Maybe Text-    , _dcsg1MaxRecords             :: Maybe Int-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Pager+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'DescribeCacheSecurityGroups' constructor.+-- | Represents the input of a /DescribeCacheSecurityGroups/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'describeCacheSecurityGroups' smart constructor.+data DescribeCacheSecurityGroups = DescribeCacheSecurityGroups'+    { _dcsgsCacheSecurityGroupName :: !(Maybe Text)+    , _dcsgsMaxRecords             :: !(Maybe Int)+    , _dcsgsMarker                 :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeCacheSecurityGroups' with the minimum fields required to make a request. ----- * 'dcsg1CacheSecurityGroupName' @::@ 'Maybe' 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'dcsg1Marker' @::@ 'Maybe' 'Text'+-- * 'dcsgsCacheSecurityGroupName' ----- * 'dcsg1MaxRecords' @::@ 'Maybe' 'Int'+-- * 'dcsgsMaxRecords' ---describeCacheSecurityGroups :: DescribeCacheSecurityGroups-describeCacheSecurityGroups = DescribeCacheSecurityGroups-    { _dcsg1CacheSecurityGroupName = Nothing-    , _dcsg1MaxRecords             = Nothing-    , _dcsg1Marker                 = Nothing+-- * 'dcsgsMarker'+describeCacheSecurityGroups+    :: DescribeCacheSecurityGroups+describeCacheSecurityGroups =+    DescribeCacheSecurityGroups'+    { _dcsgsCacheSecurityGroupName = Nothing+    , _dcsgsMaxRecords = Nothing+    , _dcsgsMarker = Nothing     }  -- | The name of the cache security group to return details for.-dcsg1CacheSecurityGroupName :: Lens' DescribeCacheSecurityGroups (Maybe Text)-dcsg1CacheSecurityGroupName =-    lens _dcsg1CacheSecurityGroupName-        (\s a -> s { _dcsg1CacheSecurityGroupName = a })---- | An optional marker returned from a prior request. Use this marker for--- pagination of results from this action. If this parameter is specified, the--- response includes only records beyond the marker, up to the value specified--- by /MaxRecords/.-dcsg1Marker :: Lens' DescribeCacheSecurityGroups (Maybe Text)-dcsg1Marker = lens _dcsg1Marker (\s a -> s { _dcsg1Marker = a })+dcsgsCacheSecurityGroupName :: Lens' DescribeCacheSecurityGroups (Maybe Text)+dcsgsCacheSecurityGroupName = lens _dcsgsCacheSecurityGroupName (\ s a -> s{_dcsgsCacheSecurityGroupName = a}); --- | 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.+-- | 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.-dcsg1MaxRecords :: Lens' DescribeCacheSecurityGroups (Maybe Int)-dcsg1MaxRecords = lens _dcsg1MaxRecords (\s a -> s { _dcsg1MaxRecords = a })+dcsgsMaxRecords :: Lens' DescribeCacheSecurityGroups (Maybe Int)+dcsgsMaxRecords = lens _dcsgsMaxRecords (\ s a -> s{_dcsgsMaxRecords = a}); -data DescribeCacheSecurityGroupsResponse = DescribeCacheSecurityGroupsResponse-    { _dcsgr1CacheSecurityGroups :: List "member" CacheSecurityGroup-    , _dcsgr1Marker              :: Maybe Text-    } deriving (Eq, Read, Show)+-- | An optional marker returned from a prior request. Use this marker for+-- pagination of results from this action. If this parameter is specified,+-- the response includes only records beyond the marker, up to the value+-- specified by /MaxRecords/.+dcsgsMarker :: Lens' DescribeCacheSecurityGroups (Maybe Text)+dcsgsMarker = lens _dcsgsMarker (\ s a -> s{_dcsgsMarker = a}); --- | 'DescribeCacheSecurityGroupsResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'dcsgr1CacheSecurityGroups' @::@ ['CacheSecurityGroup']------ * 'dcsgr1Marker' @::@ 'Maybe' 'Text'----describeCacheSecurityGroupsResponse :: DescribeCacheSecurityGroupsResponse-describeCacheSecurityGroupsResponse = DescribeCacheSecurityGroupsResponse-    { _dcsgr1Marker              = Nothing-    , _dcsgr1CacheSecurityGroups = mempty-    }+instance AWSPager DescribeCacheSecurityGroups where+        page rq rs+          | stop (rs ^. dcsgsrsMarker) = Nothing+          | stop (rs ^. dcsgsrsCacheSecurityGroups) = Nothing+          | otherwise =+            Just $ rq & dcsgsMarker .~ rs ^. dcsgsrsMarker --- | A list of cache security groups. Each element in the list contains detailed--- information about one group.-dcsgr1CacheSecurityGroups :: Lens' DescribeCacheSecurityGroupsResponse [CacheSecurityGroup]-dcsgr1CacheSecurityGroups =-    lens _dcsgr1CacheSecurityGroups-        (\s a -> s { _dcsgr1CacheSecurityGroups = a })-            . _List+instance AWSRequest DescribeCacheSecurityGroups where+        type Sv DescribeCacheSecurityGroups = ElastiCache+        type Rs DescribeCacheSecurityGroups =+             DescribeCacheSecurityGroupsResponse+        request = postQuery+        response+          = receiveXMLWrapper+              "DescribeCacheSecurityGroupsResult"+              (\ s h x ->+                 DescribeCacheSecurityGroupsResponse' <$>+                   (x .@? "CacheSecurityGroups" .!@ mempty >>=+                      may (parseXMLList "CacheSecurityGroup"))+                     <*> (x .@? "Marker")+                     <*> (pure (fromEnum s))) --- | Provides an identifier to allow retrieval of paginated results.-dcsgr1Marker :: Lens' DescribeCacheSecurityGroupsResponse (Maybe Text)-dcsgr1Marker = lens _dcsgr1Marker (\s a -> s { _dcsgr1Marker = a })+instance ToHeaders DescribeCacheSecurityGroups where+        toHeaders = const mempty  instance ToPath DescribeCacheSecurityGroups where-    toPath = const "/"+        toPath = const "/"  instance ToQuery DescribeCacheSecurityGroups where-    toQuery DescribeCacheSecurityGroups{..} = mconcat-        [ "CacheSecurityGroupName" =? _dcsg1CacheSecurityGroupName-        , "Marker"                 =? _dcsg1Marker-        , "MaxRecords"             =? _dcsg1MaxRecords-        ]+        toQuery DescribeCacheSecurityGroups'{..}+          = mconcat+              ["Action" =:+                 ("DescribeCacheSecurityGroups" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "CacheSecurityGroupName" =:+                 _dcsgsCacheSecurityGroupName,+               "MaxRecords" =: _dcsgsMaxRecords,+               "Marker" =: _dcsgsMarker] -instance ToHeaders DescribeCacheSecurityGroups+-- | Represents the output of a /DescribeCacheSecurityGroups/ action.+--+-- /See:/ 'describeCacheSecurityGroupsResponse' smart constructor.+data DescribeCacheSecurityGroupsResponse = DescribeCacheSecurityGroupsResponse'+    { _dcsgsrsCacheSecurityGroups :: !(Maybe [CacheSecurityGroup])+    , _dcsgsrsMarker              :: !(Maybe Text)+    , _dcsgsrsStatus              :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest DescribeCacheSecurityGroups where-    type Sv DescribeCacheSecurityGroups = ElastiCache-    type Rs DescribeCacheSecurityGroups = DescribeCacheSecurityGroupsResponse+-- | 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:+--+-- * 'dcsgsrsCacheSecurityGroups'+--+-- * 'dcsgsrsMarker'+--+-- * 'dcsgsrsStatus'+describeCacheSecurityGroupsResponse+    :: Int -- ^ 'dcsgsrsStatus'+    -> DescribeCacheSecurityGroupsResponse+describeCacheSecurityGroupsResponse pStatus_ =+    DescribeCacheSecurityGroupsResponse'+    { _dcsgsrsCacheSecurityGroups = Nothing+    , _dcsgsrsMarker = Nothing+    , _dcsgsrsStatus = pStatus_+    } -    request  = post "DescribeCacheSecurityGroups"-    response = xmlResponse+-- | 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; -instance FromXML DescribeCacheSecurityGroupsResponse where-    parseXML = withElement "DescribeCacheSecurityGroupsResult" $ \x -> DescribeCacheSecurityGroupsResponse-        <$> x .@? "CacheSecurityGroups" .!@ mempty-        <*> x .@? "Marker"+-- | Provides an identifier to allow retrieval of paginated results.+dcsgsrsMarker :: Lens' DescribeCacheSecurityGroupsResponse (Maybe Text)+dcsgsrsMarker = lens _dcsgsrsMarker (\ s a -> s{_dcsgsrsMarker = a}); -instance AWSPager DescribeCacheSecurityGroups where-    page rq rs-        | stop (rs ^. dcsgr1Marker) = Nothing-        | otherwise = (\x -> rq & dcsg1Marker ?~ x)-            <$> (rs ^. dcsgr1Marker)+-- | The response status code.+dcsgsrsStatus :: Lens' DescribeCacheSecurityGroupsResponse Int+dcsgsrsStatus = lens _dcsgsrsStatus (\ s a -> s{_dcsgsrsStatus = a});
gen/Network/AWS/ElastiCache/DescribeCacheSubnetGroups.hs view
@@ -1,159 +1,178 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.DescribeCacheSubnetGroups--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /DescribeCacheSubnetGroups/ action returns a list of cache subnet group--- descriptions. If a subnet group name is specified, the list will contain only--- the description of that group.+-- The /DescribeCacheSubnetGroups/ action returns a list of cache subnet+-- group descriptions. If a subnet group name is specified, the list will+-- contain only the description of that group. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheSubnetGroups.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheSubnetGroups.html AWS API Reference> for DescribeCacheSubnetGroups.+--+-- This operation returns paginated results. module Network.AWS.ElastiCache.DescribeCacheSubnetGroups     (-    -- * Request-      DescribeCacheSubnetGroups-    -- ** Request constructor-    , describeCacheSubnetGroups-    -- ** Request lenses+    -- * Creating a Request+      describeCacheSubnetGroups+    , DescribeCacheSubnetGroups+    -- * Request Lenses     , dcsgCacheSubnetGroupName-    , dcsgMarker     , dcsgMaxRecords+    , dcsgMarker -    -- * Response-    , DescribeCacheSubnetGroupsResponse-    -- ** Response constructor+    -- * Destructuring the Response     , describeCacheSubnetGroupsResponse-    -- ** Response lenses-    , dcsgrCacheSubnetGroups-    , dcsgrMarker+    , DescribeCacheSubnetGroupsResponse+    -- * Response Lenses+    , dcsgrsMarker+    , dcsgrsCacheSubnetGroups+    , dcsgrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data DescribeCacheSubnetGroups = DescribeCacheSubnetGroups-    { _dcsgCacheSubnetGroupName :: Maybe Text-    , _dcsgMarker               :: Maybe Text-    , _dcsgMaxRecords           :: Maybe Int-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Pager+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'DescribeCacheSubnetGroups' constructor.+-- | Represents the input of a /DescribeCacheSubnetGroups/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'describeCacheSubnetGroups' smart constructor.+data DescribeCacheSubnetGroups = DescribeCacheSubnetGroups'+    { _dcsgCacheSubnetGroupName :: !(Maybe Text)+    , _dcsgMaxRecords           :: !(Maybe Int)+    , _dcsgMarker               :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeCacheSubnetGroups' with the minimum fields required to make a request. ----- * 'dcsgCacheSubnetGroupName' @::@ 'Maybe' 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'dcsgMarker' @::@ 'Maybe' 'Text'+-- * 'dcsgCacheSubnetGroupName' ----- * 'dcsgMaxRecords' @::@ 'Maybe' 'Int'+-- * 'dcsgMaxRecords' ---describeCacheSubnetGroups :: DescribeCacheSubnetGroups-describeCacheSubnetGroups = DescribeCacheSubnetGroups+-- * 'dcsgMarker'+describeCacheSubnetGroups+    :: DescribeCacheSubnetGroups+describeCacheSubnetGroups =+    DescribeCacheSubnetGroups'     { _dcsgCacheSubnetGroupName = Nothing-    , _dcsgMaxRecords           = Nothing-    , _dcsgMarker               = Nothing+    , _dcsgMaxRecords = Nothing+    , _dcsgMarker = 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 })---- | An optional marker returned from a prior request. Use this marker for--- pagination of results from this action. If this parameter is specified, the--- response includes only records beyond the marker, up to the value specified--- by /MaxRecords/.-dcsgMarker :: Lens' DescribeCacheSubnetGroups (Maybe Text)-dcsgMarker = lens _dcsgMarker (\s a -> s { _dcsgMarker = a })+dcsgCacheSubnetGroupName = lens _dcsgCacheSubnetGroupName (\ s a -> s{_dcsgCacheSubnetGroupName = a}); --- | 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.+-- | 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. dcsgMaxRecords :: Lens' DescribeCacheSubnetGroups (Maybe Int)-dcsgMaxRecords = lens _dcsgMaxRecords (\s a -> s { _dcsgMaxRecords = a })+dcsgMaxRecords = lens _dcsgMaxRecords (\ s a -> s{_dcsgMaxRecords = a}); -data DescribeCacheSubnetGroupsResponse = DescribeCacheSubnetGroupsResponse-    { _dcsgrCacheSubnetGroups :: List "member" CacheSubnetGroup-    , _dcsgrMarker            :: Maybe Text-    } deriving (Eq, Read, Show)+-- | An optional marker returned from a prior request. Use this marker for+-- pagination of results from this action. If this parameter is specified,+-- the response includes only records beyond the marker, up to the value+-- specified by /MaxRecords/.+dcsgMarker :: Lens' DescribeCacheSubnetGroups (Maybe Text)+dcsgMarker = lens _dcsgMarker (\ s a -> s{_dcsgMarker = a}); --- | 'DescribeCacheSubnetGroupsResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'dcsgrCacheSubnetGroups' @::@ ['CacheSubnetGroup']------ * 'dcsgrMarker' @::@ 'Maybe' 'Text'----describeCacheSubnetGroupsResponse :: DescribeCacheSubnetGroupsResponse-describeCacheSubnetGroupsResponse = DescribeCacheSubnetGroupsResponse-    { _dcsgrMarker            = Nothing-    , _dcsgrCacheSubnetGroups = mempty-    }+instance AWSPager DescribeCacheSubnetGroups where+        page rq rs+          | stop (rs ^. dcsgrsMarker) = Nothing+          | stop (rs ^. dcsgrsCacheSubnetGroups) = Nothing+          | otherwise =+            Just $ rq & dcsgMarker .~ rs ^. dcsgrsMarker --- | A list of cache subnet groups. Each element in the list contains detailed--- information about one group.-dcsgrCacheSubnetGroups :: Lens' DescribeCacheSubnetGroupsResponse [CacheSubnetGroup]-dcsgrCacheSubnetGroups =-    lens _dcsgrCacheSubnetGroups (\s a -> s { _dcsgrCacheSubnetGroups = a })-        . _List+instance AWSRequest DescribeCacheSubnetGroups where+        type Sv DescribeCacheSubnetGroups = ElastiCache+        type Rs DescribeCacheSubnetGroups =+             DescribeCacheSubnetGroupsResponse+        request = postQuery+        response+          = receiveXMLWrapper "DescribeCacheSubnetGroupsResult"+              (\ s h x ->+                 DescribeCacheSubnetGroupsResponse' <$>+                   (x .@? "Marker") <*>+                     (x .@? "CacheSubnetGroups" .!@ mempty >>=+                        may (parseXMLList "CacheSubnetGroup"))+                     <*> (pure (fromEnum s))) --- | Provides an identifier to allow retrieval of paginated results.-dcsgrMarker :: Lens' DescribeCacheSubnetGroupsResponse (Maybe Text)-dcsgrMarker = lens _dcsgrMarker (\s a -> s { _dcsgrMarker = a })+instance ToHeaders DescribeCacheSubnetGroups where+        toHeaders = const mempty  instance ToPath DescribeCacheSubnetGroups where-    toPath = const "/"+        toPath = const "/"  instance ToQuery DescribeCacheSubnetGroups where-    toQuery DescribeCacheSubnetGroups{..} = mconcat-        [ "CacheSubnetGroupName" =? _dcsgCacheSubnetGroupName-        , "Marker"               =? _dcsgMarker-        , "MaxRecords"           =? _dcsgMaxRecords-        ]+        toQuery DescribeCacheSubnetGroups'{..}+          = mconcat+              ["Action" =:+                 ("DescribeCacheSubnetGroups" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "CacheSubnetGroupName" =: _dcsgCacheSubnetGroupName,+               "MaxRecords" =: _dcsgMaxRecords,+               "Marker" =: _dcsgMarker] -instance ToHeaders DescribeCacheSubnetGroups+-- | Represents the output of a /DescribeCacheSubnetGroups/ action.+--+-- /See:/ 'describeCacheSubnetGroupsResponse' smart constructor.+data DescribeCacheSubnetGroupsResponse = DescribeCacheSubnetGroupsResponse'+    { _dcsgrsMarker            :: !(Maybe Text)+    , _dcsgrsCacheSubnetGroups :: !(Maybe [CacheSubnetGroup])+    , _dcsgrsStatus            :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest DescribeCacheSubnetGroups where-    type Sv DescribeCacheSubnetGroups = ElastiCache-    type Rs DescribeCacheSubnetGroups = DescribeCacheSubnetGroupsResponse+-- | 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:+--+-- * 'dcsgrsMarker'+--+-- * 'dcsgrsCacheSubnetGroups'+--+-- * 'dcsgrsStatus'+describeCacheSubnetGroupsResponse+    :: Int -- ^ 'dcsgrsStatus'+    -> DescribeCacheSubnetGroupsResponse+describeCacheSubnetGroupsResponse pStatus_ =+    DescribeCacheSubnetGroupsResponse'+    { _dcsgrsMarker = Nothing+    , _dcsgrsCacheSubnetGroups = Nothing+    , _dcsgrsStatus = pStatus_+    } -    request  = post "DescribeCacheSubnetGroups"-    response = xmlResponse+-- | Provides an identifier to allow retrieval of paginated results.+dcsgrsMarker :: Lens' DescribeCacheSubnetGroupsResponse (Maybe Text)+dcsgrsMarker = lens _dcsgrsMarker (\ s a -> s{_dcsgrsMarker = a}); -instance FromXML DescribeCacheSubnetGroupsResponse where-    parseXML = withElement "DescribeCacheSubnetGroupsResult" $ \x -> DescribeCacheSubnetGroupsResponse-        <$> x .@? "CacheSubnetGroups" .!@ mempty-        <*> x .@? "Marker"+-- | A list of cache subnet groups. Each element in the list contains+-- detailed information about one group.+dcsgrsCacheSubnetGroups :: Lens' DescribeCacheSubnetGroupsResponse [CacheSubnetGroup]+dcsgrsCacheSubnetGroups = lens _dcsgrsCacheSubnetGroups (\ s a -> s{_dcsgrsCacheSubnetGroups = a}) . _Default . _Coerce; -instance AWSPager DescribeCacheSubnetGroups where-    page rq rs-        | stop (rs ^. dcsgrMarker) = Nothing-        | otherwise = (\x -> rq & dcsgMarker ?~ x)-            <$> (rs ^. dcsgrMarker)+-- | The response status code.+dcsgrsStatus :: Lens' DescribeCacheSubnetGroupsResponse Int+dcsgrsStatus = lens _dcsgrsStatus (\ s a -> s{_dcsgrsStatus = a});
gen/Network/AWS/ElastiCache/DescribeEngineDefaultParameters.hs view
@@ -1,148 +1,176 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.DescribeEngineDefaultParameters--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /DescribeEngineDefaultParameters/ action returns the default engine and--- system parameter information for the specified cache engine.+-- The /DescribeEngineDefaultParameters/ action returns the default engine+-- and system parameter information for the specified cache engine. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeEngineDefaultParameters.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeEngineDefaultParameters.html AWS API Reference> for DescribeEngineDefaultParameters.+--+-- This operation returns paginated results. module Network.AWS.ElastiCache.DescribeEngineDefaultParameters     (-    -- * Request-      DescribeEngineDefaultParameters-    -- ** Request constructor-    , describeEngineDefaultParameters-    -- ** Request lenses-    , dedpCacheParameterGroupFamily-    , dedpMarker+    -- * Creating a Request+      describeEngineDefaultParameters+    , DescribeEngineDefaultParameters+    -- * Request Lenses     , dedpMaxRecords+    , dedpMarker+    , dedpCacheParameterGroupFamily -    -- * Response-    , DescribeEngineDefaultParametersResponse-    -- ** Response constructor+    -- * Destructuring the Response     , describeEngineDefaultParametersResponse-    -- ** Response lenses-    , dedprEngineDefaults+    , DescribeEngineDefaultParametersResponse+    -- * Response Lenses+    , dedprsStatus+    , dedprsEngineDefaults     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data DescribeEngineDefaultParameters = DescribeEngineDefaultParameters-    { _dedpCacheParameterGroupFamily :: Text-    , _dedpMarker                    :: Maybe Text-    , _dedpMaxRecords                :: Maybe Int-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Pager+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'DescribeEngineDefaultParameters' constructor.+-- | Represents the input of a /DescribeEngineDefaultParameters/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'describeEngineDefaultParameters' smart constructor.+data DescribeEngineDefaultParameters = DescribeEngineDefaultParameters'+    { _dedpMaxRecords                :: !(Maybe Int)+    , _dedpMarker                    :: !(Maybe Text)+    , _dedpCacheParameterGroupFamily :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeEngineDefaultParameters' with the minimum fields required to make a request. ----- * 'dedpCacheParameterGroupFamily' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'dedpMarker' @::@ 'Maybe' 'Text'+-- * 'dedpMaxRecords' ----- * 'dedpMaxRecords' @::@ 'Maybe' 'Int'+-- * 'dedpMarker' ---describeEngineDefaultParameters :: Text -- ^ 'dedpCacheParameterGroupFamily'-                                -> DescribeEngineDefaultParameters-describeEngineDefaultParameters p1 = DescribeEngineDefaultParameters-    { _dedpCacheParameterGroupFamily = p1-    , _dedpMaxRecords                = Nothing-    , _dedpMarker                    = Nothing+-- * 'dedpCacheParameterGroupFamily'+describeEngineDefaultParameters+    :: Text -- ^ 'dedpCacheParameterGroupFamily'+    -> DescribeEngineDefaultParameters+describeEngineDefaultParameters pCacheParameterGroupFamily_ =+    DescribeEngineDefaultParameters'+    { _dedpMaxRecords = Nothing+    , _dedpMarker = Nothing+    , _dedpCacheParameterGroupFamily = pCacheParameterGroupFamily_     } --- | The name of the cache parameter group family. Valid values are: 'memcached1.4'--- | 'redis2.6' | 'redis2.8'-dedpCacheParameterGroupFamily :: Lens' DescribeEngineDefaultParameters Text-dedpCacheParameterGroupFamily =-    lens _dedpCacheParameterGroupFamily-        (\s a -> s { _dedpCacheParameterGroupFamily = a })---- | An optional marker returned from a prior request. Use this marker for--- pagination of results from this action. 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 })---- | 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.+-- | 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. dedpMaxRecords :: Lens' DescribeEngineDefaultParameters (Maybe Int)-dedpMaxRecords = lens _dedpMaxRecords (\s a -> s { _dedpMaxRecords = a })--newtype DescribeEngineDefaultParametersResponse = DescribeEngineDefaultParametersResponse-    { _dedprEngineDefaults :: EngineDefaults-    } deriving (Eq, Read, Show)+dedpMaxRecords = lens _dedpMaxRecords (\ s a -> s{_dedpMaxRecords = a}); --- | 'DescribeEngineDefaultParametersResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'dedprEngineDefaults' @::@ 'EngineDefaults'----describeEngineDefaultParametersResponse :: EngineDefaults -- ^ 'dedprEngineDefaults'-                                        -> DescribeEngineDefaultParametersResponse-describeEngineDefaultParametersResponse p1 = DescribeEngineDefaultParametersResponse-    { _dedprEngineDefaults = p1-    }+-- | An optional marker returned from a prior request. Use this marker for+-- pagination of results from this action. 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}); -dedprEngineDefaults :: Lens' DescribeEngineDefaultParametersResponse EngineDefaults-dedprEngineDefaults =-    lens _dedprEngineDefaults (\s a -> s { _dedprEngineDefaults = a })+-- | The name of the cache parameter group family. Valid values are:+-- 'memcached1.4' | 'redis2.6' | 'redis2.8'+dedpCacheParameterGroupFamily :: Lens' DescribeEngineDefaultParameters Text+dedpCacheParameterGroupFamily = lens _dedpCacheParameterGroupFamily (\ s a -> s{_dedpCacheParameterGroupFamily = a}); -instance ToPath DescribeEngineDefaultParameters where-    toPath = const "/"+instance AWSPager DescribeEngineDefaultParameters+         where+        page rq rs+          | stop+              (rs ^? dedprsEngineDefaults . edMarker . _Just)+            = Nothing+          | stop (rs ^. dedprsEngineDefaults . edParameters) =+            Nothing+          | otherwise =+            Just $ rq &+              dedpMarker .~+                rs ^? dedprsEngineDefaults . edMarker . _Just -instance ToQuery DescribeEngineDefaultParameters where-    toQuery DescribeEngineDefaultParameters{..} = mconcat-        [ "CacheParameterGroupFamily" =? _dedpCacheParameterGroupFamily-        , "Marker"                    =? _dedpMarker-        , "MaxRecords"                =? _dedpMaxRecords-        ]+instance AWSRequest DescribeEngineDefaultParameters+         where+        type Sv DescribeEngineDefaultParameters = ElastiCache+        type Rs DescribeEngineDefaultParameters =+             DescribeEngineDefaultParametersResponse+        request = postQuery+        response+          = receiveXMLWrapper+              "DescribeEngineDefaultParametersResult"+              (\ s h x ->+                 DescribeEngineDefaultParametersResponse' <$>+                   (pure (fromEnum s)) <*> (x .@ "EngineDefaults"))  instance ToHeaders DescribeEngineDefaultParameters+         where+        toHeaders = const mempty -instance AWSRequest DescribeEngineDefaultParameters where-    type Sv DescribeEngineDefaultParameters = ElastiCache-    type Rs DescribeEngineDefaultParameters = DescribeEngineDefaultParametersResponse+instance ToPath DescribeEngineDefaultParameters where+        toPath = const "/" -    request  = post "DescribeEngineDefaultParameters"-    response = xmlResponse+instance ToQuery DescribeEngineDefaultParameters+         where+        toQuery DescribeEngineDefaultParameters'{..}+          = mconcat+              ["Action" =:+                 ("DescribeEngineDefaultParameters" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "MaxRecords" =: _dedpMaxRecords,+               "Marker" =: _dedpMarker,+               "CacheParameterGroupFamily" =:+                 _dedpCacheParameterGroupFamily] -instance FromXML DescribeEngineDefaultParametersResponse where-    parseXML = withElement "DescribeEngineDefaultParametersResult" $ \x -> DescribeEngineDefaultParametersResponse-        <$> x .@  "EngineDefaults"+-- | /See:/ 'describeEngineDefaultParametersResponse' smart constructor.+data DescribeEngineDefaultParametersResponse = DescribeEngineDefaultParametersResponse'+    { _dedprsStatus         :: !Int+    , _dedprsEngineDefaults :: !EngineDefaults+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSPager DescribeEngineDefaultParameters where-    page rq rs-        | stop (rs ^. dedprEngineDefaults . edMarker) = Nothing-        | otherwise = (\x -> rq & dedpMarker ?~ x)-            <$> (rs ^. dedprEngineDefaults . edMarker)+-- | 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:+--+-- * 'dedprsStatus'+--+-- * 'dedprsEngineDefaults'+describeEngineDefaultParametersResponse+    :: Int -- ^ 'dedprsStatus'+    -> EngineDefaults -- ^ 'dedprsEngineDefaults'+    -> DescribeEngineDefaultParametersResponse+describeEngineDefaultParametersResponse pStatus_ pEngineDefaults_ =+    DescribeEngineDefaultParametersResponse'+    { _dedprsStatus = pStatus_+    , _dedprsEngineDefaults = pEngineDefaults_+    }++-- | The response status code.+dedprsStatus :: Lens' DescribeEngineDefaultParametersResponse Int+dedprsStatus = lens _dedprsStatus (\ s a -> s{_dedprsStatus = a});++-- | Undocumented member.+dedprsEngineDefaults :: Lens' DescribeEngineDefaultParametersResponse EngineDefaults+dedprsEngineDefaults = lens _dedprsEngineDefaults (\ s a -> s{_dedprsEngineDefaults = a});
gen/Network/AWS/ElastiCache/DescribeEvents.hs view
@@ -1,206 +1,226 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.DescribeEvents--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /DescribeEvents/ action 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.+-- The /DescribeEvents/ action 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. -- -- 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.+-- however, you can retrieve up to 14 days\' worth of events if necessary. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeEvents.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeEvents.html AWS API Reference> for DescribeEvents.+--+-- This operation returns paginated results. module Network.AWS.ElastiCache.DescribeEvents     (-    -- * Request-      DescribeEvents-    -- ** Request constructor-    , describeEvents-    -- ** Request lenses-    , deDuration+    -- * Creating a Request+      describeEvents+    , DescribeEvents+    -- * Request Lenses+    , deStartTime+    , deSourceType+    , deSourceIdentifier+    , deMaxRecords     , deEndTime     , deMarker-    , deMaxRecords-    , deSourceIdentifier-    , deSourceType-    , deStartTime+    , deDuration -    -- * Response-    , DescribeEventsResponse-    -- ** Response constructor+    -- * Destructuring the Response     , describeEventsResponse-    -- ** Response lenses-    , derEvents-    , derMarker+    , DescribeEventsResponse+    -- * Response Lenses+    , dersEvents+    , dersMarker+    , dersStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data DescribeEvents = DescribeEvents-    { _deDuration         :: Maybe Int-    , _deEndTime          :: Maybe ISO8601-    , _deMarker           :: Maybe Text-    , _deMaxRecords       :: Maybe Int-    , _deSourceIdentifier :: Maybe Text-    , _deSourceType       :: Maybe SourceType-    , _deStartTime        :: Maybe ISO8601-    } deriving (Eq, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Pager+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'DescribeEvents' constructor.+-- | Represents the input of a /DescribeEvents/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'describeEvents' smart constructor.+data DescribeEvents = DescribeEvents'+    { _deStartTime        :: !(Maybe ISO8601)+    , _deSourceType       :: !(Maybe SourceType)+    , _deSourceIdentifier :: !(Maybe Text)+    , _deMaxRecords       :: !(Maybe Int)+    , _deEndTime          :: !(Maybe ISO8601)+    , _deMarker           :: !(Maybe Text)+    , _deDuration         :: !(Maybe Int)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeEvents' with the minimum fields required to make a request. ----- * 'deDuration' @::@ 'Maybe' 'Int'+-- Use one of the following lenses to modify other fields as desired: ----- * 'deEndTime' @::@ 'Maybe' 'UTCTime'+-- * 'deStartTime' ----- * 'deMarker' @::@ 'Maybe' 'Text'+-- * 'deSourceType' ----- * 'deMaxRecords' @::@ 'Maybe' 'Int'+-- * 'deSourceIdentifier' ----- * 'deSourceIdentifier' @::@ 'Maybe' 'Text'+-- * 'deMaxRecords' ----- * 'deSourceType' @::@ 'Maybe' 'SourceType'+-- * 'deEndTime' ----- * 'deStartTime' @::@ 'Maybe' 'UTCTime'+-- * 'deMarker' ---describeEvents :: DescribeEvents-describeEvents = DescribeEvents-    { _deSourceIdentifier = Nothing-    , _deSourceType       = Nothing-    , _deStartTime        = Nothing-    , _deEndTime          = Nothing-    , _deDuration         = Nothing-    , _deMaxRecords       = Nothing-    , _deMarker           = Nothing+-- * 'deDuration'+describeEvents+    :: DescribeEvents+describeEvents =+    DescribeEvents'+    { _deStartTime = Nothing+    , _deSourceType = Nothing+    , _deSourceIdentifier = Nothing+    , _deMaxRecords = Nothing+    , _deEndTime = Nothing+    , _deMarker = Nothing+    , _deDuration = Nothing     } --- | The number of minutes' worth of events to retrieve.-deDuration :: Lens' DescribeEvents (Maybe Int)-deDuration = lens _deDuration (\s a -> s { _deDuration = a })+-- | The beginning of the time interval to retrieve events for, specified in+-- ISO 8601 format.+deStartTime :: Lens' DescribeEvents (Maybe UTCTime)+deStartTime = lens _deStartTime (\ s a -> s{_deStartTime = a}) . mapping _Time; --- | The end of the time interval for which to retrieve events, specified in ISO--- 8601 format.-deEndTime :: Lens' DescribeEvents (Maybe UTCTime)-deEndTime = lens _deEndTime (\s a -> s { _deEndTime = a }) . mapping _Time+-- | The event source to retrieve events for. If no value is specified, all+-- events are returned.+--+-- Valid values are: 'cache-cluster' | 'cache-parameter-group' |+-- 'cache-security-group' | 'cache-subnet-group'+deSourceType :: Lens' DescribeEvents (Maybe SourceType)+deSourceType = lens _deSourceType (\ s a -> s{_deSourceType = a}); --- | An optional marker returned from a prior request. Use this marker for--- pagination of results from this action. If this parameter is specified, the--- response includes only records beyond the marker, up to the value specified--- by /MaxRecords/.-deMarker :: Lens' DescribeEvents (Maybe Text)-deMarker = lens _deMarker (\s a -> s { _deMarker = a })+-- | The identifier of the event source for which events will be returned. If+-- not specified, then all sources are included in the response.+deSourceIdentifier :: Lens' DescribeEvents (Maybe Text)+deSourceIdentifier = lens _deSourceIdentifier (\ s a -> s{_deSourceIdentifier = a}); --- | 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.+-- | 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. deMaxRecords :: Lens' DescribeEvents (Maybe Int)-deMaxRecords = lens _deMaxRecords (\s a -> s { _deMaxRecords = a })+deMaxRecords = lens _deMaxRecords (\ s a -> s{_deMaxRecords = a}); --- | The identifier of the event source for which events will be returned. If not--- specified, then all sources are included in the response.-deSourceIdentifier :: Lens' DescribeEvents (Maybe Text)-deSourceIdentifier =-    lens _deSourceIdentifier (\s a -> s { _deSourceIdentifier = a })+-- | The end of the time interval for which to retrieve events, specified in+-- ISO 8601 format.+deEndTime :: Lens' DescribeEvents (Maybe UTCTime)+deEndTime = lens _deEndTime (\ s a -> s{_deEndTime = a}) . mapping _Time; --- | The event source to retrieve events for. If no value is specified, all events--- are returned.------ Valid values are: 'cache-cluster' | 'cache-parameter-group' | 'cache-security-group' | 'cache-subnet-group'-deSourceType :: Lens' DescribeEvents (Maybe SourceType)-deSourceType = lens _deSourceType (\s a -> s { _deSourceType = a })+-- | An optional marker returned from a prior request. Use this marker for+-- pagination of results from this action. If this parameter is specified,+-- the response includes only records beyond the marker, up to the value+-- specified by /MaxRecords/.+deMarker :: Lens' DescribeEvents (Maybe Text)+deMarker = lens _deMarker (\ s a -> s{_deMarker = a}); --- | The beginning of the time interval to retrieve events for, specified in ISO--- 8601 format.-deStartTime :: Lens' DescribeEvents (Maybe UTCTime)-deStartTime = lens _deStartTime (\s a -> s { _deStartTime = a }) . mapping _Time+-- | The number of minutes\' worth of events to retrieve.+deDuration :: Lens' DescribeEvents (Maybe Int)+deDuration = lens _deDuration (\ s a -> s{_deDuration = a}); -data DescribeEventsResponse = DescribeEventsResponse-    { _derEvents :: List "member" Event-    , _derMarker :: Maybe Text-    } deriving (Eq, Read, Show)+instance AWSPager DescribeEvents where+        page rq rs+          | stop (rs ^. dersMarker) = Nothing+          | stop (rs ^. dersEvents) = Nothing+          | otherwise =+            Just $ rq & deMarker .~ rs ^. dersMarker --- | 'DescribeEventsResponse' constructor.+instance AWSRequest DescribeEvents where+        type Sv DescribeEvents = ElastiCache+        type Rs DescribeEvents = DescribeEventsResponse+        request = postQuery+        response+          = receiveXMLWrapper "DescribeEventsResult"+              (\ s h x ->+                 DescribeEventsResponse' <$>+                   (x .@? "Events" .!@ mempty >>=+                      may (parseXMLList "Event"))+                     <*> (x .@? "Marker")+                     <*> (pure (fromEnum s)))++instance ToHeaders DescribeEvents where+        toHeaders = const mempty++instance ToPath DescribeEvents where+        toPath = const "/"++instance ToQuery DescribeEvents where+        toQuery DescribeEvents'{..}+          = mconcat+              ["Action" =: ("DescribeEvents" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "StartTime" =: _deStartTime,+               "SourceType" =: _deSourceType,+               "SourceIdentifier" =: _deSourceIdentifier,+               "MaxRecords" =: _deMaxRecords,+               "EndTime" =: _deEndTime, "Marker" =: _deMarker,+               "Duration" =: _deDuration]++-- | Represents the output of a /DescribeEvents/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'describeEventsResponse' smart constructor.+data DescribeEventsResponse = DescribeEventsResponse'+    { _dersEvents :: !(Maybe [Event])+    , _dersMarker :: !(Maybe Text)+    , _dersStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeEventsResponse' with the minimum fields required to make a request. ----- * 'derEvents' @::@ ['Event']+-- Use one of the following lenses to modify other fields as desired: ----- * 'derMarker' @::@ 'Maybe' 'Text'+-- * 'dersEvents' ---describeEventsResponse :: DescribeEventsResponse-describeEventsResponse = DescribeEventsResponse-    { _derMarker = Nothing-    , _derEvents = mempty+-- * 'dersMarker'+--+-- * 'dersStatus'+describeEventsResponse+    :: Int -- ^ 'dersStatus'+    -> DescribeEventsResponse+describeEventsResponse pStatus_ =+    DescribeEventsResponse'+    { _dersEvents = Nothing+    , _dersMarker = Nothing+    , _dersStatus = pStatus_     }  -- | A list of events. Each element in the list contains detailed information -- about one event.-derEvents :: Lens' DescribeEventsResponse [Event]-derEvents = lens _derEvents (\s a -> s { _derEvents = a }) . _List+dersEvents :: Lens' DescribeEventsResponse [Event]+dersEvents = lens _dersEvents (\ s a -> s{_dersEvents = a}) . _Default . _Coerce;  -- | Provides an identifier to allow retrieval of paginated results.-derMarker :: Lens' DescribeEventsResponse (Maybe Text)-derMarker = lens _derMarker (\s a -> s { _derMarker = a })--instance ToPath DescribeEvents where-    toPath = const "/"--instance ToQuery DescribeEvents where-    toQuery DescribeEvents{..} = mconcat-        [ "Duration"         =? _deDuration-        , "EndTime"          =? _deEndTime-        , "Marker"           =? _deMarker-        , "MaxRecords"       =? _deMaxRecords-        , "SourceIdentifier" =? _deSourceIdentifier-        , "SourceType"       =? _deSourceType-        , "StartTime"        =? _deStartTime-        ]--instance ToHeaders DescribeEvents--instance AWSRequest DescribeEvents where-    type Sv DescribeEvents = ElastiCache-    type Rs DescribeEvents = DescribeEventsResponse--    request  = post "DescribeEvents"-    response = xmlResponse--instance FromXML DescribeEventsResponse where-    parseXML = withElement "DescribeEventsResult" $ \x -> DescribeEventsResponse-        <$> x .@? "Events" .!@ mempty-        <*> x .@? "Marker"+dersMarker :: Lens' DescribeEventsResponse (Maybe Text)+dersMarker = lens _dersMarker (\ s a -> s{_dersMarker = a}); -instance AWSPager DescribeEvents where-    page rq rs-        | stop (rs ^. derMarker) = Nothing-        | otherwise = (\x -> rq & deMarker ?~ x)-            <$> (rs ^. derMarker)+-- | The response status code.+dersStatus :: Lens' DescribeEventsResponse Int+dersStatus = lens _dersStatus (\ s a -> s{_dersStatus = a});
gen/Network/AWS/ElastiCache/DescribeReplicationGroups.hs view
@@ -1,162 +1,183 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.DescribeReplicationGroups--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /DescribeReplicationGroups/ action returns information about a particular--- replication group. If no identifier is specified, /DescribeReplicationGroups/--- returns information about all replication groups.+-- The /DescribeReplicationGroups/ action returns information about a+-- particular replication group. If no identifier is specified,+-- /DescribeReplicationGroups/ returns information about all replication+-- groups. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html AWS API Reference> for DescribeReplicationGroups.+--+-- This operation returns paginated results. module Network.AWS.ElastiCache.DescribeReplicationGroups     (-    -- * Request-      DescribeReplicationGroups-    -- ** Request constructor-    , describeReplicationGroups-    -- ** Request lenses-    , drg1Marker-    , drg1MaxRecords-    , drg1ReplicationGroupId+    -- * Creating a Request+      describeReplicationGroups+    , DescribeReplicationGroups+    -- * Request Lenses+    , drgsMaxRecords+    , drgsMarker+    , drgsReplicationGroupId -    -- * Response-    , DescribeReplicationGroupsResponse-    -- ** Response constructor+    -- * Destructuring the Response     , describeReplicationGroupsResponse-    -- ** Response lenses-    , drgrMarker-    , drgrReplicationGroups+    , DescribeReplicationGroupsResponse+    -- * Response Lenses+    , drgrsMarker+    , drgrsReplicationGroups+    , drgrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data DescribeReplicationGroups = DescribeReplicationGroups-    { _drg1Marker             :: Maybe Text-    , _drg1MaxRecords         :: Maybe Int-    , _drg1ReplicationGroupId :: Maybe Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Pager+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'DescribeReplicationGroups' constructor.+-- | Represents the input of a /DescribeReplicationGroups/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'describeReplicationGroups' smart constructor.+data DescribeReplicationGroups = DescribeReplicationGroups'+    { _drgsMaxRecords         :: !(Maybe Int)+    , _drgsMarker             :: !(Maybe Text)+    , _drgsReplicationGroupId :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeReplicationGroups' with the minimum fields required to make a request. ----- * 'drg1Marker' @::@ 'Maybe' 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'drg1MaxRecords' @::@ 'Maybe' 'Int'+-- * 'drgsMaxRecords' ----- * 'drg1ReplicationGroupId' @::@ 'Maybe' 'Text'+-- * 'drgsMarker' ---describeReplicationGroups :: DescribeReplicationGroups-describeReplicationGroups = DescribeReplicationGroups-    { _drg1ReplicationGroupId = Nothing-    , _drg1MaxRecords         = Nothing-    , _drg1Marker             = Nothing+-- * 'drgsReplicationGroupId'+describeReplicationGroups+    :: DescribeReplicationGroups+describeReplicationGroups =+    DescribeReplicationGroups'+    { _drgsMaxRecords = Nothing+    , _drgsMarker = Nothing+    , _drgsReplicationGroupId = Nothing     } --- | An optional marker returned from a prior request. Use this marker for--- pagination of results from this action. If this parameter is specified, the--- response includes only records beyond the marker, up to the value specified--- by /MaxRecords/.-drg1Marker :: Lens' DescribeReplicationGroups (Maybe Text)-drg1Marker = lens _drg1Marker (\s a -> s { _drg1Marker = a })---- | 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.+-- | 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.-drg1MaxRecords :: Lens' DescribeReplicationGroups (Maybe Int)-drg1MaxRecords = lens _drg1MaxRecords (\s a -> s { _drg1MaxRecords = a })+drgsMaxRecords :: Lens' DescribeReplicationGroups (Maybe Int)+drgsMaxRecords = lens _drgsMaxRecords (\ s a -> s{_drgsMaxRecords = a}); --- | The identifier for the replication group to be described. This parameter is--- not case sensitive.+-- | An optional marker returned from a prior request. Use this marker for+-- pagination of results from this action. 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});++-- | The identifier for the replication group to be described. This parameter+-- is not case sensitive. -- -- If you do not specify this parameter, information about all replication -- groups is returned.-drg1ReplicationGroupId :: Lens' DescribeReplicationGroups (Maybe Text)-drg1ReplicationGroupId =-    lens _drg1ReplicationGroupId (\s a -> s { _drg1ReplicationGroupId = a })+drgsReplicationGroupId :: Lens' DescribeReplicationGroups (Maybe Text)+drgsReplicationGroupId = lens _drgsReplicationGroupId (\ s a -> s{_drgsReplicationGroupId = a}); -data DescribeReplicationGroupsResponse = DescribeReplicationGroupsResponse-    { _drgrMarker            :: Maybe Text-    , _drgrReplicationGroups :: List "member" ReplicationGroup-    } deriving (Eq, Read, Show)+instance AWSPager DescribeReplicationGroups where+        page rq rs+          | stop (rs ^. drgrsMarker) = Nothing+          | stop (rs ^. drgrsReplicationGroups) = Nothing+          | otherwise =+            Just $ rq & drgsMarker .~ rs ^. drgrsMarker --- | 'DescribeReplicationGroupsResponse' constructor.+instance AWSRequest DescribeReplicationGroups where+        type Sv DescribeReplicationGroups = ElastiCache+        type Rs DescribeReplicationGroups =+             DescribeReplicationGroupsResponse+        request = postQuery+        response+          = receiveXMLWrapper "DescribeReplicationGroupsResult"+              (\ s h x ->+                 DescribeReplicationGroupsResponse' <$>+                   (x .@? "Marker") <*>+                     (x .@? "ReplicationGroups" .!@ mempty >>=+                        may (parseXMLList "ReplicationGroup"))+                     <*> (pure (fromEnum s)))++instance ToHeaders DescribeReplicationGroups where+        toHeaders = const mempty++instance ToPath DescribeReplicationGroups where+        toPath = const "/"++instance ToQuery DescribeReplicationGroups where+        toQuery DescribeReplicationGroups'{..}+          = mconcat+              ["Action" =:+                 ("DescribeReplicationGroups" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "MaxRecords" =: _drgsMaxRecords,+               "Marker" =: _drgsMarker,+               "ReplicationGroupId" =: _drgsReplicationGroupId]++-- | Represents the output of a /DescribeReplicationGroups/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'describeReplicationGroupsResponse' smart constructor.+data DescribeReplicationGroupsResponse = DescribeReplicationGroupsResponse'+    { _drgrsMarker            :: !(Maybe Text)+    , _drgrsReplicationGroups :: !(Maybe [ReplicationGroup])+    , _drgrsStatus            :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeReplicationGroupsResponse' with the minimum fields required to make a request. ----- * 'drgrMarker' @::@ 'Maybe' 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'drgrReplicationGroups' @::@ ['ReplicationGroup']+-- * 'drgrsMarker' ---describeReplicationGroupsResponse :: DescribeReplicationGroupsResponse-describeReplicationGroupsResponse = DescribeReplicationGroupsResponse-    { _drgrMarker            = Nothing-    , _drgrReplicationGroups = mempty+-- * 'drgrsReplicationGroups'+--+-- * 'drgrsStatus'+describeReplicationGroupsResponse+    :: Int -- ^ 'drgrsStatus'+    -> DescribeReplicationGroupsResponse+describeReplicationGroupsResponse pStatus_ =+    DescribeReplicationGroupsResponse'+    { _drgrsMarker = Nothing+    , _drgrsReplicationGroups = Nothing+    , _drgrsStatus = pStatus_     }  -- | Provides an identifier to allow retrieval of paginated results.-drgrMarker :: Lens' DescribeReplicationGroupsResponse (Maybe Text)-drgrMarker = lens _drgrMarker (\s a -> s { _drgrMarker = a })+drgrsMarker :: Lens' DescribeReplicationGroupsResponse (Maybe Text)+drgrsMarker = lens _drgrsMarker (\ s a -> s{_drgrsMarker = a});  -- | A list of replication groups. Each item in the list contains detailed -- information about one replication group.-drgrReplicationGroups :: Lens' DescribeReplicationGroupsResponse [ReplicationGroup]-drgrReplicationGroups =-    lens _drgrReplicationGroups (\s a -> s { _drgrReplicationGroups = a })-        . _List--instance ToPath DescribeReplicationGroups where-    toPath = const "/"--instance ToQuery DescribeReplicationGroups where-    toQuery DescribeReplicationGroups{..} = mconcat-        [ "Marker"             =? _drg1Marker-        , "MaxRecords"         =? _drg1MaxRecords-        , "ReplicationGroupId" =? _drg1ReplicationGroupId-        ]--instance ToHeaders DescribeReplicationGroups--instance AWSRequest DescribeReplicationGroups where-    type Sv DescribeReplicationGroups = ElastiCache-    type Rs DescribeReplicationGroups = DescribeReplicationGroupsResponse--    request  = post "DescribeReplicationGroups"-    response = xmlResponse--instance FromXML DescribeReplicationGroupsResponse where-    parseXML = withElement "DescribeReplicationGroupsResult" $ \x -> DescribeReplicationGroupsResponse-        <$> x .@? "Marker"-        <*> x .@? "ReplicationGroups" .!@ mempty+drgrsReplicationGroups :: Lens' DescribeReplicationGroupsResponse [ReplicationGroup]+drgrsReplicationGroups = lens _drgrsReplicationGroups (\ s a -> s{_drgrsReplicationGroups = a}) . _Default . _Coerce; -instance AWSPager DescribeReplicationGroups where-    page rq rs-        | stop (rs ^. drgrMarker) = Nothing-        | otherwise = (\x -> rq & drg1Marker ?~ x)-            <$> (rs ^. drgrMarker)+-- | The response status code.+drgrsStatus :: Lens' DescribeReplicationGroupsResponse Int+drgrsStatus = lens _drgrsStatus (\ s a -> s{_drgrsStatus = a});
gen/Network/AWS/ElastiCache/DescribeReservedCacheNodes.hs view
@@ -1,102 +1,106 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.DescribeReservedCacheNodes--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /DescribeReservedCacheNodes/ action returns information about reserved--- cache nodes for this account, or about a specified reserved cache node.+-- The /DescribeReservedCacheNodes/ action returns information about+-- reserved cache nodes for this account, or about a specified reserved+-- cache node. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReservedCacheNodes.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReservedCacheNodes.html AWS API Reference> for DescribeReservedCacheNodes.+--+-- This operation returns paginated results. module Network.AWS.ElastiCache.DescribeReservedCacheNodes     (-    -- * Request-      DescribeReservedCacheNodes-    -- ** Request constructor-    , describeReservedCacheNodes-    -- ** Request lenses+    -- * Creating a Request+      describeReservedCacheNodes+    , DescribeReservedCacheNodes+    -- * Request Lenses     , drcnCacheNodeType-    , drcnDuration-    , drcnMarker-    , drcnMaxRecords-    , drcnOfferingType     , drcnProductDescription+    , drcnMaxRecords+    , drcnMarker     , drcnReservedCacheNodeId+    , drcnOfferingType+    , drcnDuration     , drcnReservedCacheNodesOfferingId -    -- * Response-    , DescribeReservedCacheNodesResponse-    -- ** Response constructor+    -- * Destructuring the Response     , describeReservedCacheNodesResponse-    -- ** Response lenses-    , drcnrMarker-    , drcnrReservedCacheNodes+    , DescribeReservedCacheNodesResponse+    -- * Response Lenses+    , drcnrsMarker+    , drcnrsReservedCacheNodes+    , drcnrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data DescribeReservedCacheNodes = DescribeReservedCacheNodes-    { _drcnCacheNodeType                :: Maybe Text-    , _drcnDuration                     :: Maybe Text-    , _drcnMarker                       :: Maybe Text-    , _drcnMaxRecords                   :: Maybe Int-    , _drcnOfferingType                 :: Maybe Text-    , _drcnProductDescription           :: Maybe Text-    , _drcnReservedCacheNodeId          :: Maybe Text-    , _drcnReservedCacheNodesOfferingId :: Maybe Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Pager+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'DescribeReservedCacheNodes' constructor.+-- | Represents the input of a /DescribeReservedCacheNodes/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'describeReservedCacheNodes' smart constructor.+data DescribeReservedCacheNodes = DescribeReservedCacheNodes'+    { _drcnCacheNodeType                :: !(Maybe Text)+    , _drcnProductDescription           :: !(Maybe Text)+    , _drcnMaxRecords                   :: !(Maybe Int)+    , _drcnMarker                       :: !(Maybe Text)+    , _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. ----- * 'drcnCacheNodeType' @::@ 'Maybe' 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'drcnDuration' @::@ 'Maybe' 'Text'+-- * 'drcnCacheNodeType' ----- * 'drcnMarker' @::@ 'Maybe' 'Text'+-- * 'drcnProductDescription' ----- * 'drcnMaxRecords' @::@ 'Maybe' 'Int'+-- * 'drcnMaxRecords' ----- * 'drcnOfferingType' @::@ 'Maybe' 'Text'+-- * 'drcnMarker' ----- * 'drcnProductDescription' @::@ 'Maybe' 'Text'+-- * 'drcnReservedCacheNodeId' ----- * 'drcnReservedCacheNodeId' @::@ 'Maybe' 'Text'+-- * 'drcnOfferingType' ----- * 'drcnReservedCacheNodesOfferingId' @::@ 'Maybe' 'Text'+-- * 'drcnDuration' ---describeReservedCacheNodes :: DescribeReservedCacheNodes-describeReservedCacheNodes = DescribeReservedCacheNodes-    { _drcnReservedCacheNodeId          = Nothing+-- * 'drcnReservedCacheNodesOfferingId'+describeReservedCacheNodes+    :: DescribeReservedCacheNodes+describeReservedCacheNodes =+    DescribeReservedCacheNodes'+    { _drcnCacheNodeType = Nothing+    , _drcnProductDescription = Nothing+    , _drcnMaxRecords = Nothing+    , _drcnMarker = Nothing+    , _drcnReservedCacheNodeId = Nothing+    , _drcnOfferingType = Nothing+    , _drcnDuration = Nothing     , _drcnReservedCacheNodesOfferingId = Nothing-    , _drcnCacheNodeType                = Nothing-    , _drcnDuration                     = Nothing-    , _drcnProductDescription           = Nothing-    , _drcnOfferingType                 = Nothing-    , _drcnMaxRecords                   = Nothing-    , _drcnMarker                       = Nothing     }  -- | The cache node type filter value. Use this parameter to show only those@@ -104,129 +108,164 @@ -- -- 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' 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:+-- -   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'+--     -   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' ----- All t2 instances are created in an Amazon Virtual Private Cloud (VPC). Redis backup/restore is not supported for t2 instances.--- Redis Append-only files (AOF) functionality is not supported for t1 or t2--- instances.  For a complete listing of cache node types and specifications,--- see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#CacheParameterGroups.Memcached.NodeSpecific Cache NodeType-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#CacheParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parametersfor Redis>.-drcnCacheNodeType :: Lens' DescribeReservedCacheNodes (Maybe Text)-drcnCacheNodeType =-    lens _drcnCacheNodeType (\s a -> s { _drcnCacheNodeType = a })---- | The duration filter value, specified in years or seconds. Use this parameter--- to show only reservations for this duration.+-- __Notes:__ ----- Valid Values: '1 | 3 | 31536000 | 94608000'-drcnDuration :: Lens' DescribeReservedCacheNodes (Maybe Text)-drcnDuration = lens _drcnDuration (\s a -> s { _drcnDuration = a })+-- -   All t2 instances are created in an Amazon Virtual Private Cloud+--     (VPC).+-- -   Redis backup\/restore is not supported for t2 instances.+-- -   Redis Append-only files (AOF) functionality is not supported for t1+--     or t2 instances.+--+-- For a complete listing of cache node types and specifications, see+-- <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details>+-- and+-- <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#CacheParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached>+-- or+-- <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#CacheParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis>.+drcnCacheNodeType :: Lens' DescribeReservedCacheNodes (Maybe Text)+drcnCacheNodeType = lens _drcnCacheNodeType (\ s a -> s{_drcnCacheNodeType = a}); --- | An optional marker returned from a prior request. Use this marker for--- pagination of results from this action. If this parameter is specified, the--- response includes only records beyond the marker, up to the value specified--- by /MaxRecords/.-drcnMarker :: Lens' DescribeReservedCacheNodes (Maybe Text)-drcnMarker = lens _drcnMarker (\s a -> s { _drcnMarker = a })+-- | The product description filter value. Use this parameter to show only+-- those reservations matching the specified product description.+drcnProductDescription :: Lens' DescribeReservedCacheNodes (Maybe Text)+drcnProductDescription = lens _drcnProductDescription (\ s a -> s{_drcnProductDescription = a}); --- | 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.+-- | 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. drcnMaxRecords :: Lens' DescribeReservedCacheNodes (Maybe Int)-drcnMaxRecords = lens _drcnMaxRecords (\s a -> s { _drcnMaxRecords = a })+drcnMaxRecords = lens _drcnMaxRecords (\ s a -> s{_drcnMaxRecords = a}); --- | The offering type filter value. Use this parameter to show only the available--- offerings matching the specified offering type.+-- | An optional marker returned from a prior request. Use this marker for+-- pagination of results from this action. If this parameter is specified,+-- the response includes only records beyond the marker, up to the value+-- specified by /MaxRecords/.+drcnMarker :: Lens' DescribeReservedCacheNodes (Maybe Text)+drcnMarker = lens _drcnMarker (\ s a -> s{_drcnMarker = a});++-- | The reserved cache node identifier filter value. Use this parameter to+-- show only the reservation that matches the specified reservation ID.+drcnReservedCacheNodeId :: Lens' DescribeReservedCacheNodes (Maybe Text)+drcnReservedCacheNodeId = lens _drcnReservedCacheNodeId (\ s a -> s{_drcnReservedCacheNodeId = a});++-- | The offering type filter value. Use this parameter to show only the+-- available offerings matching the specified offering type. ----- Valid values: '"Light Utilization"|"Medium Utilization"|"Heavy Utilization"'+-- Valid values:+-- '\"Light Utilization\"|\"Medium Utilization\"|\"Heavy Utilization\"' drcnOfferingType :: Lens' DescribeReservedCacheNodes (Maybe Text)-drcnOfferingType = lens _drcnOfferingType (\s a -> s { _drcnOfferingType = a })---- | The product description filter value. Use this parameter to show only those--- reservations matching the specified product description.-drcnProductDescription :: Lens' DescribeReservedCacheNodes (Maybe Text)-drcnProductDescription =-    lens _drcnProductDescription (\s a -> s { _drcnProductDescription = a })+drcnOfferingType = lens _drcnOfferingType (\ s a -> s{_drcnOfferingType = a}); --- | The reserved cache node identifier filter value. Use this parameter to show--- only the reservation that matches the specified reservation ID.-drcnReservedCacheNodeId :: Lens' DescribeReservedCacheNodes (Maybe Text)-drcnReservedCacheNodeId =-    lens _drcnReservedCacheNodeId (\s a -> s { _drcnReservedCacheNodeId = a })+-- | The duration filter value, specified in years or seconds. Use this+-- parameter to show only reservations for this duration.+--+-- Valid Values: '1 | 3 | 31536000 | 94608000'+drcnDuration :: Lens' DescribeReservedCacheNodes (Maybe Text)+drcnDuration = lens _drcnDuration (\ s a -> s{_drcnDuration = a});  -- | The offering identifier filter value. Use this parameter to show only -- purchased reservations matching the specified offering identifier. drcnReservedCacheNodesOfferingId :: Lens' DescribeReservedCacheNodes (Maybe Text)-drcnReservedCacheNodesOfferingId =-    lens _drcnReservedCacheNodesOfferingId-        (\s a -> s { _drcnReservedCacheNodesOfferingId = a })--data DescribeReservedCacheNodesResponse = DescribeReservedCacheNodesResponse-    { _drcnrMarker             :: Maybe Text-    , _drcnrReservedCacheNodes :: List "member" ReservedCacheNode-    } deriving (Eq, Read, Show)+drcnReservedCacheNodesOfferingId = lens _drcnReservedCacheNodesOfferingId (\ s a -> s{_drcnReservedCacheNodesOfferingId = a}); --- | 'DescribeReservedCacheNodesResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'drcnrMarker' @::@ 'Maybe' 'Text'------ * 'drcnrReservedCacheNodes' @::@ ['ReservedCacheNode']----describeReservedCacheNodesResponse :: DescribeReservedCacheNodesResponse-describeReservedCacheNodesResponse = DescribeReservedCacheNodesResponse-    { _drcnrMarker             = Nothing-    , _drcnrReservedCacheNodes = mempty-    }+instance AWSPager DescribeReservedCacheNodes where+        page rq rs+          | stop (rs ^. drcnrsMarker) = Nothing+          | stop (rs ^. drcnrsReservedCacheNodes) = Nothing+          | otherwise =+            Just $ rq & drcnMarker .~ rs ^. drcnrsMarker --- | Provides an identifier to allow retrieval of paginated results.-drcnrMarker :: Lens' DescribeReservedCacheNodesResponse (Maybe Text)-drcnrMarker = lens _drcnrMarker (\s a -> s { _drcnrMarker = a })+instance AWSRequest DescribeReservedCacheNodes where+        type Sv DescribeReservedCacheNodes = ElastiCache+        type Rs DescribeReservedCacheNodes =+             DescribeReservedCacheNodesResponse+        request = postQuery+        response+          = receiveXMLWrapper+              "DescribeReservedCacheNodesResult"+              (\ s h x ->+                 DescribeReservedCacheNodesResponse' <$>+                   (x .@? "Marker") <*>+                     (x .@? "ReservedCacheNodes" .!@ mempty >>=+                        may (parseXMLList "ReservedCacheNode"))+                     <*> (pure (fromEnum s))) --- | A list of reserved cache nodes. Each element in the list contains detailed--- information about one node.-drcnrReservedCacheNodes :: Lens' DescribeReservedCacheNodesResponse [ReservedCacheNode]-drcnrReservedCacheNodes =-    lens _drcnrReservedCacheNodes (\s a -> s { _drcnrReservedCacheNodes = a })-        . _List+instance ToHeaders DescribeReservedCacheNodes where+        toHeaders = const mempty  instance ToPath DescribeReservedCacheNodes where-    toPath = const "/"+        toPath = const "/"  instance ToQuery DescribeReservedCacheNodes where-    toQuery DescribeReservedCacheNodes{..} = mconcat-        [ "CacheNodeType"                =? _drcnCacheNodeType-        , "Duration"                     =? _drcnDuration-        , "Marker"                       =? _drcnMarker-        , "MaxRecords"                   =? _drcnMaxRecords-        , "OfferingType"                 =? _drcnOfferingType-        , "ProductDescription"           =? _drcnProductDescription-        , "ReservedCacheNodeId"          =? _drcnReservedCacheNodeId-        , "ReservedCacheNodesOfferingId" =? _drcnReservedCacheNodesOfferingId-        ]+        toQuery DescribeReservedCacheNodes'{..}+          = mconcat+              ["Action" =:+                 ("DescribeReservedCacheNodes" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "CacheNodeType" =: _drcnCacheNodeType,+               "ProductDescription" =: _drcnProductDescription,+               "MaxRecords" =: _drcnMaxRecords,+               "Marker" =: _drcnMarker,+               "ReservedCacheNodeId" =: _drcnReservedCacheNodeId,+               "OfferingType" =: _drcnOfferingType,+               "Duration" =: _drcnDuration,+               "ReservedCacheNodesOfferingId" =:+                 _drcnReservedCacheNodesOfferingId] -instance ToHeaders DescribeReservedCacheNodes+-- | Represents the output of a /DescribeReservedCacheNodes/ action.+--+-- /See:/ 'describeReservedCacheNodesResponse' smart constructor.+data DescribeReservedCacheNodesResponse = DescribeReservedCacheNodesResponse'+    { _drcnrsMarker             :: !(Maybe Text)+    , _drcnrsReservedCacheNodes :: !(Maybe [ReservedCacheNode])+    , _drcnrsStatus             :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest DescribeReservedCacheNodes where-    type Sv DescribeReservedCacheNodes = ElastiCache-    type Rs DescribeReservedCacheNodes = DescribeReservedCacheNodesResponse+-- | 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:+--+-- * 'drcnrsMarker'+--+-- * 'drcnrsReservedCacheNodes'+--+-- * 'drcnrsStatus'+describeReservedCacheNodesResponse+    :: Int -- ^ 'drcnrsStatus'+    -> DescribeReservedCacheNodesResponse+describeReservedCacheNodesResponse pStatus_ =+    DescribeReservedCacheNodesResponse'+    { _drcnrsMarker = Nothing+    , _drcnrsReservedCacheNodes = Nothing+    , _drcnrsStatus = pStatus_+    } -    request  = post "DescribeReservedCacheNodes"-    response = xmlResponse+-- | Provides an identifier to allow retrieval of paginated results.+drcnrsMarker :: Lens' DescribeReservedCacheNodesResponse (Maybe Text)+drcnrsMarker = lens _drcnrsMarker (\ s a -> s{_drcnrsMarker = a}); -instance FromXML DescribeReservedCacheNodesResponse where-    parseXML = withElement "DescribeReservedCacheNodesResult" $ \x -> DescribeReservedCacheNodesResponse-        <$> x .@? "Marker"-        <*> x .@? "ReservedCacheNodes" .!@ mempty+-- | A list of reserved cache nodes. Each element in the list contains+-- detailed information about one node.+drcnrsReservedCacheNodes :: Lens' DescribeReservedCacheNodesResponse [ReservedCacheNode]+drcnrsReservedCacheNodes = lens _drcnrsReservedCacheNodes (\ s a -> s{_drcnrsReservedCacheNodes = a}) . _Default . _Coerce; -instance AWSPager DescribeReservedCacheNodes where-    page rq rs-        | stop (rs ^. drcnrMarker) = Nothing-        | otherwise = (\x -> rq & drcnMarker ?~ x)-            <$> (rs ^. drcnrMarker)+-- | The response status code.+drcnrsStatus :: Lens' DescribeReservedCacheNodesResponse Int+drcnrsStatus = lens _drcnrsStatus (\ s a -> s{_drcnrsStatus = a});
gen/Network/AWS/ElastiCache/DescribeReservedCacheNodesOfferings.hs view
@@ -1,97 +1,100 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.DescribeReservedCacheNodesOfferings--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /DescribeReservedCacheNodesOfferings/ action lists available reserved cache--- node offerings.+-- The /DescribeReservedCacheNodesOfferings/ action lists available+-- reserved cache node offerings. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReservedCacheNodesOfferings.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReservedCacheNodesOfferings.html AWS API Reference> for DescribeReservedCacheNodesOfferings.+--+-- This operation returns paginated results. module Network.AWS.ElastiCache.DescribeReservedCacheNodesOfferings     (-    -- * Request-      DescribeReservedCacheNodesOfferings-    -- ** Request constructor-    , describeReservedCacheNodesOfferings-    -- ** Request lenses+    -- * Creating a Request+      describeReservedCacheNodesOfferings+    , DescribeReservedCacheNodesOfferings+    -- * Request Lenses     , drcnoCacheNodeType-    , drcnoDuration-    , drcnoMarker+    , drcnoProductDescription     , drcnoMaxRecords+    , drcnoMarker     , drcnoOfferingType-    , drcnoProductDescription+    , drcnoDuration     , drcnoReservedCacheNodesOfferingId -    -- * Response-    , DescribeReservedCacheNodesOfferingsResponse-    -- ** Response constructor+    -- * Destructuring the Response     , describeReservedCacheNodesOfferingsResponse-    -- ** Response lenses-    , drcnorMarker-    , drcnorReservedCacheNodesOfferings+    , DescribeReservedCacheNodesOfferingsResponse+    -- * Response Lenses+    , drcnorsMarker+    , drcnorsReservedCacheNodesOfferings+    , drcnorsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data DescribeReservedCacheNodesOfferings = DescribeReservedCacheNodesOfferings-    { _drcnoCacheNodeType                :: Maybe Text-    , _drcnoDuration                     :: Maybe Text-    , _drcnoMarker                       :: Maybe Text-    , _drcnoMaxRecords                   :: Maybe Int-    , _drcnoOfferingType                 :: Maybe Text-    , _drcnoProductDescription           :: Maybe Text-    , _drcnoReservedCacheNodesOfferingId :: Maybe Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Pager+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'DescribeReservedCacheNodesOfferings' constructor.+-- | Represents the input of a /DescribeReservedCacheNodesOfferings/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'describeReservedCacheNodesOfferings' smart constructor.+data DescribeReservedCacheNodesOfferings = DescribeReservedCacheNodesOfferings'+    { _drcnoCacheNodeType                :: !(Maybe Text)+    , _drcnoProductDescription           :: !(Maybe Text)+    , _drcnoMaxRecords                   :: !(Maybe Int)+    , _drcnoMarker                       :: !(Maybe Text)+    , _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. ----- * 'drcnoCacheNodeType' @::@ 'Maybe' 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'drcnoDuration' @::@ 'Maybe' 'Text'+-- * 'drcnoCacheNodeType' ----- * 'drcnoMarker' @::@ 'Maybe' 'Text'+-- * 'drcnoProductDescription' ----- * 'drcnoMaxRecords' @::@ 'Maybe' 'Int'+-- * 'drcnoMaxRecords' ----- * 'drcnoOfferingType' @::@ 'Maybe' 'Text'+-- * 'drcnoMarker' ----- * 'drcnoProductDescription' @::@ 'Maybe' 'Text'+-- * 'drcnoOfferingType' ----- * 'drcnoReservedCacheNodesOfferingId' @::@ 'Maybe' 'Text'+-- * 'drcnoDuration' ---describeReservedCacheNodesOfferings :: DescribeReservedCacheNodesOfferings-describeReservedCacheNodesOfferings = DescribeReservedCacheNodesOfferings-    { _drcnoReservedCacheNodesOfferingId = Nothing-    , _drcnoCacheNodeType                = Nothing-    , _drcnoDuration                     = Nothing-    , _drcnoProductDescription           = Nothing-    , _drcnoOfferingType                 = Nothing-    , _drcnoMaxRecords                   = Nothing-    , _drcnoMarker                       = Nothing+-- * 'drcnoReservedCacheNodesOfferingId'+describeReservedCacheNodesOfferings+    :: DescribeReservedCacheNodesOfferings+describeReservedCacheNodesOfferings =+    DescribeReservedCacheNodesOfferings'+    { _drcnoCacheNodeType = Nothing+    , _drcnoProductDescription = Nothing+    , _drcnoMaxRecords = Nothing+    , _drcnoMarker = Nothing+    , _drcnoOfferingType = Nothing+    , _drcnoDuration = Nothing+    , _drcnoReservedCacheNodesOfferingId = Nothing     }  -- | The cache node type filter value. Use this parameter to show only the@@ -99,126 +102,169 @@ -- -- 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' 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:+-- -   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'+--     -   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' ----- All t2 instances are created in an Amazon Virtual Private Cloud (VPC). Redis backup/restore is not supported for t2 instances.--- Redis Append-only files (AOF) functionality is not supported for t1 or t2--- instances.  For a complete listing of cache node types and specifications,--- see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#CacheParameterGroups.Memcached.NodeSpecific Cache NodeType-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#CacheParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parametersfor Redis>.-drcnoCacheNodeType :: Lens' DescribeReservedCacheNodesOfferings (Maybe Text)-drcnoCacheNodeType =-    lens _drcnoCacheNodeType (\s a -> s { _drcnoCacheNodeType = a })---- | Duration filter value, specified in years or seconds. Use this parameter to--- show only reservations for a given duration.+-- __Notes:__ ----- Valid Values: '1 | 3 | 31536000 | 94608000'-drcnoDuration :: Lens' DescribeReservedCacheNodesOfferings (Maybe Text)-drcnoDuration = lens _drcnoDuration (\s a -> s { _drcnoDuration = a })+-- -   All t2 instances are created in an Amazon Virtual Private Cloud+--     (VPC).+-- -   Redis backup\/restore is not supported for t2 instances.+-- -   Redis Append-only files (AOF) functionality is not supported for t1+--     or t2 instances.+--+-- For a complete listing of cache node types and specifications, see+-- <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details>+-- and+-- <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#CacheParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached>+-- or+-- <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#CacheParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis>.+drcnoCacheNodeType :: Lens' DescribeReservedCacheNodesOfferings (Maybe Text)+drcnoCacheNodeType = lens _drcnoCacheNodeType (\ s a -> s{_drcnoCacheNodeType = a}); --- | An optional marker returned from a prior request. Use this marker for--- pagination of results from this action. If this parameter is specified, the--- response includes only records beyond the marker, up to the value specified--- by /MaxRecords/.-drcnoMarker :: Lens' DescribeReservedCacheNodesOfferings (Maybe Text)-drcnoMarker = lens _drcnoMarker (\s a -> s { _drcnoMarker = a })+-- | The product description filter value. Use this parameter to show only+-- the available offerings matching the specified product description.+drcnoProductDescription :: Lens' DescribeReservedCacheNodesOfferings (Maybe Text)+drcnoProductDescription = lens _drcnoProductDescription (\ s a -> s{_drcnoProductDescription = a}); --- | 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.+-- | 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. drcnoMaxRecords :: Lens' DescribeReservedCacheNodesOfferings (Maybe Int)-drcnoMaxRecords = lens _drcnoMaxRecords (\s a -> s { _drcnoMaxRecords = a })+drcnoMaxRecords = lens _drcnoMaxRecords (\ s a -> s{_drcnoMaxRecords = a}); --- | The offering type filter value. Use this parameter to show only the available--- offerings matching the specified offering type.+-- | An optional marker returned from a prior request. Use this marker for+-- pagination of results from this action. If this parameter is specified,+-- the response includes only records beyond the marker, up to the value+-- specified by /MaxRecords/.+drcnoMarker :: Lens' DescribeReservedCacheNodesOfferings (Maybe Text)+drcnoMarker = lens _drcnoMarker (\ s a -> s{_drcnoMarker = a});++-- | The offering type filter value. Use this parameter to show only the+-- available offerings matching the specified offering type. ----- Valid Values: '"Light Utilization"|"Medium Utilization"|"Heavy Utilization"'+-- Valid Values:+-- '\"Light Utilization\"|\"Medium Utilization\"|\"Heavy Utilization\"' drcnoOfferingType :: Lens' DescribeReservedCacheNodesOfferings (Maybe Text)-drcnoOfferingType =-    lens _drcnoOfferingType (\s a -> s { _drcnoOfferingType = a })+drcnoOfferingType = lens _drcnoOfferingType (\ s a -> s{_drcnoOfferingType = a}); --- | The product description filter value. Use this parameter to show only the--- available offerings matching the specified product description.-drcnoProductDescription :: Lens' DescribeReservedCacheNodesOfferings (Maybe Text)-drcnoProductDescription =-    lens _drcnoProductDescription (\s a -> s { _drcnoProductDescription = a })+-- | Duration filter value, specified in years or seconds. Use this parameter+-- to show only reservations for a given duration.+--+-- Valid Values: '1 | 3 | 31536000 | 94608000'+drcnoDuration :: Lens' DescribeReservedCacheNodesOfferings (Maybe Text)+drcnoDuration = lens _drcnoDuration (\ s a -> s{_drcnoDuration = a}); --- | The offering identifier filter value. Use this parameter to show only the--- available offering that matches the specified reservation identifier.+-- | The offering identifier filter value. Use this parameter to show only+-- the available offering that matches the specified reservation+-- identifier. -- -- Example: '438012d3-4052-4cc7-b2e3-8d3372e0e706' drcnoReservedCacheNodesOfferingId :: Lens' DescribeReservedCacheNodesOfferings (Maybe Text)-drcnoReservedCacheNodesOfferingId =-    lens _drcnoReservedCacheNodesOfferingId-        (\s a -> s { _drcnoReservedCacheNodesOfferingId = a })+drcnoReservedCacheNodesOfferingId = lens _drcnoReservedCacheNodesOfferingId (\ s a -> s{_drcnoReservedCacheNodesOfferingId = a}); -data DescribeReservedCacheNodesOfferingsResponse = DescribeReservedCacheNodesOfferingsResponse-    { _drcnorMarker                      :: Maybe Text-    , _drcnorReservedCacheNodesOfferings :: List "member" ReservedCacheNodesOffering-    } deriving (Eq, Read, Show)+instance AWSPager DescribeReservedCacheNodesOfferings+         where+        page rq rs+          | stop (rs ^. drcnorsMarker) = Nothing+          | stop (rs ^. drcnorsReservedCacheNodesOfferings) =+            Nothing+          | otherwise =+            Just $ rq & drcnoMarker .~ rs ^. drcnorsMarker --- | 'DescribeReservedCacheNodesOfferingsResponse' constructor.+instance AWSRequest+         DescribeReservedCacheNodesOfferings where+        type Sv DescribeReservedCacheNodesOfferings =+             ElastiCache+        type Rs DescribeReservedCacheNodesOfferings =+             DescribeReservedCacheNodesOfferingsResponse+        request = postQuery+        response+          = receiveXMLWrapper+              "DescribeReservedCacheNodesOfferingsResult"+              (\ s h x ->+                 DescribeReservedCacheNodesOfferingsResponse' <$>+                   (x .@? "Marker") <*>+                     (x .@? "ReservedCacheNodesOfferings" .!@ mempty >>=+                        may (parseXMLList "ReservedCacheNodesOffering"))+                     <*> (pure (fromEnum s)))++instance ToHeaders+         DescribeReservedCacheNodesOfferings where+        toHeaders = const mempty++instance ToPath DescribeReservedCacheNodesOfferings+         where+        toPath = const "/"++instance ToQuery DescribeReservedCacheNodesOfferings+         where+        toQuery DescribeReservedCacheNodesOfferings'{..}+          = mconcat+              ["Action" =:+                 ("DescribeReservedCacheNodesOfferings" ::+                    ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "CacheNodeType" =: _drcnoCacheNodeType,+               "ProductDescription" =: _drcnoProductDescription,+               "MaxRecords" =: _drcnoMaxRecords,+               "Marker" =: _drcnoMarker,+               "OfferingType" =: _drcnoOfferingType,+               "Duration" =: _drcnoDuration,+               "ReservedCacheNodesOfferingId" =:+                 _drcnoReservedCacheNodesOfferingId]++-- | Represents the output of a /DescribeReservedCacheNodesOfferings/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'describeReservedCacheNodesOfferingsResponse' smart constructor.+data DescribeReservedCacheNodesOfferingsResponse = DescribeReservedCacheNodesOfferingsResponse'+    { _drcnorsMarker                      :: !(Maybe Text)+    , _drcnorsReservedCacheNodesOfferings :: !(Maybe [ReservedCacheNodesOffering])+    , _drcnorsStatus                      :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeReservedCacheNodesOfferingsResponse' with the minimum fields required to make a request. ----- * 'drcnorMarker' @::@ 'Maybe' 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'drcnorReservedCacheNodesOfferings' @::@ ['ReservedCacheNodesOffering']+-- * 'drcnorsMarker' ---describeReservedCacheNodesOfferingsResponse :: DescribeReservedCacheNodesOfferingsResponse-describeReservedCacheNodesOfferingsResponse = DescribeReservedCacheNodesOfferingsResponse-    { _drcnorMarker                      = Nothing-    , _drcnorReservedCacheNodesOfferings = mempty+-- * 'drcnorsReservedCacheNodesOfferings'+--+-- * 'drcnorsStatus'+describeReservedCacheNodesOfferingsResponse+    :: Int -- ^ 'drcnorsStatus'+    -> DescribeReservedCacheNodesOfferingsResponse+describeReservedCacheNodesOfferingsResponse pStatus_ =+    DescribeReservedCacheNodesOfferingsResponse'+    { _drcnorsMarker = Nothing+    , _drcnorsReservedCacheNodesOfferings = Nothing+    , _drcnorsStatus = pStatus_     }  -- | Provides an identifier to allow retrieval of paginated results.-drcnorMarker :: Lens' DescribeReservedCacheNodesOfferingsResponse (Maybe Text)-drcnorMarker = lens _drcnorMarker (\s a -> s { _drcnorMarker = a })---- | A list of reserved cache node offerings. Each element in the list contains--- detailed information about one offering.-drcnorReservedCacheNodesOfferings :: Lens' DescribeReservedCacheNodesOfferingsResponse [ReservedCacheNodesOffering]-drcnorReservedCacheNodesOfferings =-    lens _drcnorReservedCacheNodesOfferings-        (\s a -> s { _drcnorReservedCacheNodesOfferings = a })-            . _List--instance ToPath DescribeReservedCacheNodesOfferings where-    toPath = const "/"--instance ToQuery DescribeReservedCacheNodesOfferings where-    toQuery DescribeReservedCacheNodesOfferings{..} = mconcat-        [ "CacheNodeType"                =? _drcnoCacheNodeType-        , "Duration"                     =? _drcnoDuration-        , "Marker"                       =? _drcnoMarker-        , "MaxRecords"                   =? _drcnoMaxRecords-        , "OfferingType"                 =? _drcnoOfferingType-        , "ProductDescription"           =? _drcnoProductDescription-        , "ReservedCacheNodesOfferingId" =? _drcnoReservedCacheNodesOfferingId-        ]--instance ToHeaders DescribeReservedCacheNodesOfferings--instance AWSRequest DescribeReservedCacheNodesOfferings where-    type Sv DescribeReservedCacheNodesOfferings = ElastiCache-    type Rs DescribeReservedCacheNodesOfferings = DescribeReservedCacheNodesOfferingsResponse--    request  = post "DescribeReservedCacheNodesOfferings"-    response = xmlResponse+drcnorsMarker :: Lens' DescribeReservedCacheNodesOfferingsResponse (Maybe Text)+drcnorsMarker = lens _drcnorsMarker (\ s a -> s{_drcnorsMarker = a}); -instance FromXML DescribeReservedCacheNodesOfferingsResponse where-    parseXML = withElement "DescribeReservedCacheNodesOfferingsResult" $ \x -> DescribeReservedCacheNodesOfferingsResponse-        <$> x .@? "Marker"-        <*> x .@? "ReservedCacheNodesOfferings" .!@ mempty+-- | A list of reserved cache node offerings. Each element in the list+-- contains detailed information about one offering.+drcnorsReservedCacheNodesOfferings :: Lens' DescribeReservedCacheNodesOfferingsResponse [ReservedCacheNodesOffering]+drcnorsReservedCacheNodesOfferings = lens _drcnorsReservedCacheNodesOfferings (\ s a -> s{_drcnorsReservedCacheNodesOfferings = a}) . _Default . _Coerce; -instance AWSPager DescribeReservedCacheNodesOfferings where-    page rq rs-        | stop (rs ^. drcnorMarker) = Nothing-        | otherwise = (\x -> rq & drcnoMarker ?~ x)-            <$> (rs ^. drcnorMarker)+-- | The response status code.+drcnorsStatus :: Lens' DescribeReservedCacheNodesOfferingsResponse Int+drcnorsStatus = lens _drcnorsStatus (\ s a -> s{_drcnorsStatus = a});
gen/Network/AWS/ElastiCache/DescribeSnapshots.hs view
@@ -1,184 +1,204 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.DescribeSnapshots--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /DescribeSnapshots/ action returns information about cache cluster--- 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.+-- The /DescribeSnapshots/ action returns information about cache cluster+-- 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. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeSnapshots.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeSnapshots.html AWS API Reference> for DescribeSnapshots.+--+-- This operation returns paginated results. module Network.AWS.ElastiCache.DescribeSnapshots     (-    -- * Request-      DescribeSnapshots-    -- ** Request constructor-    , describeSnapshots-    -- ** Request lenses+    -- * Creating a Request+      describeSnapshots+    , DescribeSnapshots+    -- * Request Lenses     , dsCacheClusterId-    , dsMarker     , dsMaxRecords+    , dsMarker     , dsSnapshotName     , dsSnapshotSource -    -- * Response-    , DescribeSnapshotsResponse-    -- ** Response constructor+    -- * Destructuring the Response     , describeSnapshotsResponse-    -- ** Response lenses-    , dsrMarker-    , dsrSnapshots+    , DescribeSnapshotsResponse+    -- * Response Lenses+    , dssrsSnapshots+    , dssrsMarker+    , dssrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data DescribeSnapshots = DescribeSnapshots-    { _dsCacheClusterId :: Maybe Text-    , _dsMarker         :: Maybe Text-    , _dsMaxRecords     :: Maybe Int-    , _dsSnapshotName   :: Maybe Text-    , _dsSnapshotSource :: Maybe Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Pager+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'DescribeSnapshots' constructor.+-- | Represents the input of a /DescribeSnapshotsMessage/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'describeSnapshots' smart constructor.+data DescribeSnapshots = DescribeSnapshots'+    { _dsCacheClusterId :: !(Maybe Text)+    , _dsMaxRecords     :: !(Maybe Int)+    , _dsMarker         :: !(Maybe Text)+    , _dsSnapshotName   :: !(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. ----- * 'dsCacheClusterId' @::@ 'Maybe' 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'dsMarker' @::@ 'Maybe' 'Text'+-- * 'dsCacheClusterId' ----- * 'dsMaxRecords' @::@ 'Maybe' 'Int'+-- * 'dsMaxRecords' ----- * 'dsSnapshotName' @::@ 'Maybe' 'Text'+-- * 'dsMarker' ----- * 'dsSnapshotSource' @::@ 'Maybe' 'Text'+-- * 'dsSnapshotName' ---describeSnapshots :: DescribeSnapshots-describeSnapshots = DescribeSnapshots+-- * 'dsSnapshotSource'+describeSnapshots+    :: DescribeSnapshots+describeSnapshots =+    DescribeSnapshots'     { _dsCacheClusterId = Nothing-    , _dsSnapshotName   = Nothing+    , _dsMaxRecords = Nothing+    , _dsMarker = Nothing+    , _dsSnapshotName = Nothing     , _dsSnapshotSource = Nothing-    , _dsMarker         = Nothing-    , _dsMaxRecords     = Nothing     }  -- | A user-supplied cluster identifier. If this parameter is specified, only -- snapshots associated with that specific cache cluster will be described. dsCacheClusterId :: Lens' DescribeSnapshots (Maybe Text)-dsCacheClusterId = lens _dsCacheClusterId (\s a -> s { _dsCacheClusterId = a })---- | An optional marker returned from a prior request. Use this marker for--- pagination of results from this action. If this parameter is specified, the--- response includes only records beyond the marker, up to the value specified--- by /MaxRecords/.-dsMarker :: Lens' DescribeSnapshots (Maybe Text)-dsMarker = lens _dsMarker (\s a -> s { _dsMarker = a })+dsCacheClusterId = lens _dsCacheClusterId (\ s a -> s{_dsCacheClusterId = a}); --- | 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.+-- | 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: 50 -- -- Constraints: minimum 20; maximum 50. dsMaxRecords :: Lens' DescribeSnapshots (Maybe Int)-dsMaxRecords = lens _dsMaxRecords (\s a -> s { _dsMaxRecords = a })+dsMaxRecords = lens _dsMaxRecords (\ s a -> s{_dsMaxRecords = a}); --- | A user-supplied name of the snapshot. If this parameter is specified, only--- this snapshot will be described.+-- | An optional marker returned from a prior request. Use this marker for+-- pagination of results from this action. If this parameter is specified,+-- the response includes only records beyond the marker, up to the value+-- specified by /MaxRecords/.+dsMarker :: Lens' DescribeSnapshots (Maybe Text)+dsMarker = lens _dsMarker (\ s a -> s{_dsMarker = a});++-- | A user-supplied name of the snapshot. If this parameter is specified,+-- only this snapshot will be described. dsSnapshotName :: Lens' DescribeSnapshots (Maybe Text)-dsSnapshotName = lens _dsSnapshotName (\s a -> s { _dsSnapshotName = a })+dsSnapshotName = lens _dsSnapshotName (\ s a -> s{_dsSnapshotName = a}); --- | If set to 'system', the output shows snapshots that were automatically created--- by ElastiCache. If set to 'user' the output shows snapshots that were manually--- created. If omitted, the output shows both automatically and manually created--- snapshots.+-- | If set to 'system', the output shows snapshots that were automatically+-- created by ElastiCache. If set to 'user' the output shows snapshots that+-- were manually created. If omitted, the output shows both automatically+-- and manually created snapshots. dsSnapshotSource :: Lens' DescribeSnapshots (Maybe Text)-dsSnapshotSource = lens _dsSnapshotSource (\s a -> s { _dsSnapshotSource = a })--data DescribeSnapshotsResponse = DescribeSnapshotsResponse-    { _dsrMarker    :: Maybe Text-    , _dsrSnapshots :: List "member" Snapshot-    } deriving (Eq, Read, Show)+dsSnapshotSource = lens _dsSnapshotSource (\ s a -> s{_dsSnapshotSource = a}); --- | 'DescribeSnapshotsResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'dsrMarker' @::@ 'Maybe' 'Text'------ * 'dsrSnapshots' @::@ ['Snapshot']----describeSnapshotsResponse :: DescribeSnapshotsResponse-describeSnapshotsResponse = DescribeSnapshotsResponse-    { _dsrMarker    = Nothing-    , _dsrSnapshots = mempty-    }+instance AWSPager DescribeSnapshots where+        page rq rs+          | stop (rs ^. dssrsMarker) = Nothing+          | stop (rs ^. dssrsSnapshots) = Nothing+          | otherwise =+            Just $ rq & dsMarker .~ rs ^. dssrsMarker --- | An optional marker returned from a prior request. Use this marker for--- pagination of results from this action. If this parameter is specified, the--- response includes only records beyond the marker, up to the value specified--- by /MaxRecords/.-dsrMarker :: Lens' DescribeSnapshotsResponse (Maybe Text)-dsrMarker = lens _dsrMarker (\s a -> s { _dsrMarker = a })+instance AWSRequest DescribeSnapshots where+        type Sv DescribeSnapshots = ElastiCache+        type Rs DescribeSnapshots = DescribeSnapshotsResponse+        request = postQuery+        response+          = receiveXMLWrapper "DescribeSnapshotsResult"+              (\ s h x ->+                 DescribeSnapshotsResponse' <$>+                   (x .@? "Snapshots" .!@ mempty >>=+                      may (parseXMLList "Snapshot"))+                     <*> (x .@? "Marker")+                     <*> (pure (fromEnum s))) --- | A list of snapshots. Each item in the list contains detailed information--- about one snapshot.-dsrSnapshots :: Lens' DescribeSnapshotsResponse [Snapshot]-dsrSnapshots = lens _dsrSnapshots (\s a -> s { _dsrSnapshots = a }) . _List+instance ToHeaders DescribeSnapshots where+        toHeaders = const mempty  instance ToPath DescribeSnapshots where-    toPath = const "/"+        toPath = const "/"  instance ToQuery DescribeSnapshots where-    toQuery DescribeSnapshots{..} = mconcat-        [ "CacheClusterId" =? _dsCacheClusterId-        , "Marker"         =? _dsMarker-        , "MaxRecords"     =? _dsMaxRecords-        , "SnapshotName"   =? _dsSnapshotName-        , "SnapshotSource" =? _dsSnapshotSource-        ]+        toQuery DescribeSnapshots'{..}+          = mconcat+              ["Action" =: ("DescribeSnapshots" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "CacheClusterId" =: _dsCacheClusterId,+               "MaxRecords" =: _dsMaxRecords, "Marker" =: _dsMarker,+               "SnapshotName" =: _dsSnapshotName,+               "SnapshotSource" =: _dsSnapshotSource] -instance ToHeaders DescribeSnapshots+-- | Represents the output of a /DescribeSnapshots/ action.+--+-- /See:/ 'describeSnapshotsResponse' smart constructor.+data DescribeSnapshotsResponse = DescribeSnapshotsResponse'+    { _dssrsSnapshots :: !(Maybe [Snapshot])+    , _dssrsMarker    :: !(Maybe Text)+    , _dssrsStatus    :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest DescribeSnapshots where-    type Sv DescribeSnapshots = ElastiCache-    type Rs DescribeSnapshots = DescribeSnapshotsResponse+-- | 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:+--+-- * 'dssrsSnapshots'+--+-- * 'dssrsMarker'+--+-- * 'dssrsStatus'+describeSnapshotsResponse+    :: Int -- ^ 'dssrsStatus'+    -> DescribeSnapshotsResponse+describeSnapshotsResponse pStatus_ =+    DescribeSnapshotsResponse'+    { _dssrsSnapshots = Nothing+    , _dssrsMarker = Nothing+    , _dssrsStatus = pStatus_+    } -    request  = post "DescribeSnapshots"-    response = xmlResponse+-- | 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; -instance FromXML DescribeSnapshotsResponse where-    parseXML = withElement "DescribeSnapshotsResult" $ \x -> DescribeSnapshotsResponse-        <$> x .@? "Marker"-        <*> x .@? "Snapshots" .!@ mempty+-- | An optional marker returned from a prior request. Use this marker for+-- pagination of results from this action. If this parameter is specified,+-- the response includes only records beyond the marker, up to the value+-- specified by /MaxRecords/.+dssrsMarker :: Lens' DescribeSnapshotsResponse (Maybe Text)+dssrsMarker = lens _dssrsMarker (\ s a -> s{_dssrsMarker = a}); -instance AWSPager DescribeSnapshots where-    page rq rs-        | stop (rs ^. dsrMarker) = Nothing-        | otherwise = (\x -> rq & dsMarker ?~ x)-            <$> (rs ^. dsrMarker)+-- | The response status code.+dssrsStatus :: Lens' DescribeSnapshotsResponse Int+dssrsStatus = lens _dssrsStatus (\ s a -> s{_dssrsStatus = a});
gen/Network/AWS/ElastiCache/ListTagsForResource.hs view
@@ -1,120 +1,96 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.ListTagsForResource--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /ListTagsForResource/ action 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. Cost allocation tags can be used--- to categorize and track your AWS costs.+-- The /ListTagsForResource/ action 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. Cost+-- allocation tags can be used 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 AmazonElastiCache>.+-- resource. For more information, see+-- <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/BestPractices.html Using Cost Allocation Tags in Amazon ElastiCache>. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ListTagsForResource.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ListTagsForResource.html AWS API Reference> for ListTagsForResource. module Network.AWS.ElastiCache.ListTagsForResource     (-    -- * Request-      ListTagsForResource-    -- ** Request constructor-    , listTagsForResource-    -- ** Request lenses+    -- * Creating a Request+      listTagsForResource+    , ListTagsForResource+    -- * Request Lenses     , ltfrResourceName -    -- * Response-    , ListTagsForResourceResponse-    -- ** Response constructor-    , listTagsForResourceResponse-    -- ** Response lenses-    , ltfrrTagList+    -- * Destructuring the Response+    , tagListMessage+    , TagListMessage+    -- * Response Lenses+    , tlmTagList     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response -newtype ListTagsForResource = ListTagsForResource+-- | The input parameters for the /ListTagsForResource/ action.+--+-- /See:/ 'listTagsForResource' smart constructor.+newtype ListTagsForResource = ListTagsForResource'     { _ltfrResourceName :: Text-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)+    } deriving (Eq,Read,Show,Data,Typeable,Generic) --- | 'ListTagsForResource' constructor.------ The fields accessible through corresponding lenses are:+-- | Creates a value of 'ListTagsForResource' with the minimum fields required to make a request. ----- * 'ltfrResourceName' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ---listTagsForResource :: Text -- ^ 'ltfrResourceName'-                    -> ListTagsForResource-listTagsForResource p1 = ListTagsForResource-    { _ltfrResourceName = p1+-- * 'ltfrResourceName'+listTagsForResource+    :: Text -- ^ 'ltfrResourceName'+    -> ListTagsForResource+listTagsForResource pResourceName_ =+    ListTagsForResource'+    { _ltfrResourceName = pResourceName_     } --- | The name of the resource for which you want the list of tags, for example 'arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster'.+-- | The name of the resource for which you want the list of tags, for+-- example 'arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster'. ltfrResourceName :: Lens' ListTagsForResource Text-ltfrResourceName = lens _ltfrResourceName (\s a -> s { _ltfrResourceName = a })--newtype ListTagsForResourceResponse = ListTagsForResourceResponse-    { _ltfrrTagList :: List "member" Tag-    } deriving (Eq, Read, Show, Monoid, Semigroup)--instance GHC.Exts.IsList ListTagsForResourceResponse where-    type Item ListTagsForResourceResponse = Tag--    fromList = ListTagsForResourceResponse . GHC.Exts.fromList-    toList   = GHC.Exts.toList . _ltfrrTagList+ltfrResourceName = lens _ltfrResourceName (\ s a -> s{_ltfrResourceName = a}); --- | 'ListTagsForResourceResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'ltfrrTagList' @::@ ['Tag']----listTagsForResourceResponse :: ListTagsForResourceResponse-listTagsForResourceResponse = ListTagsForResourceResponse-    { _ltfrrTagList = mempty-    }+instance AWSRequest ListTagsForResource where+        type Sv ListTagsForResource = ElastiCache+        type Rs ListTagsForResource = TagListMessage+        request = postQuery+        response+          = receiveXMLWrapper "ListTagsForResourceResult"+              (\ s h x -> parseXML x) --- | A list of cost allocation tags as key-value pairs.-ltfrrTagList :: Lens' ListTagsForResourceResponse [Tag]-ltfrrTagList = lens _ltfrrTagList (\s a -> s { _ltfrrTagList = a }) . _List+instance ToHeaders ListTagsForResource where+        toHeaders = const mempty  instance ToPath ListTagsForResource where-    toPath = const "/"+        toPath = const "/"  instance ToQuery ListTagsForResource where-    toQuery ListTagsForResource{..} = mconcat-        [ "ResourceName" =? _ltfrResourceName-        ]--instance ToHeaders ListTagsForResource--instance AWSRequest ListTagsForResource where-    type Sv ListTagsForResource = ElastiCache-    type Rs ListTagsForResource = ListTagsForResourceResponse--    request  = post "ListTagsForResource"-    response = xmlResponse--instance FromXML ListTagsForResourceResponse where-    parseXML = withElement "ListTagsForResourceResult" $ \x -> ListTagsForResourceResponse-        <$> x .@? "TagList" .!@ mempty+        toQuery ListTagsForResource'{..}+          = mconcat+              ["Action" =: ("ListTagsForResource" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "ResourceName" =: _ltfrResourceName]
gen/Network/AWS/ElastiCache/ModifyCacheCluster.hs view
@@ -1,303 +1,328 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.ModifyCacheCluster--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /ModifyCacheCluster/ action modifies the settings for a cache cluster. You--- can use this action to change one or more cluster configuration parameters by--- specifying the parameters and the new values.+-- The /ModifyCacheCluster/ action modifies the settings for a cache+-- cluster. You can use this action to change one or more cluster+-- configuration parameters by specifying the parameters and the new+-- values. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html AWS API Reference> for ModifyCacheCluster. module Network.AWS.ElastiCache.ModifyCacheCluster     (-    -- * Request-      ModifyCacheCluster-    -- ** Request constructor-    , modifyCacheCluster-    -- ** Request lenses-    , mccAZMode-    , mccApplyImmediately+    -- * Creating a Request+      modifyCacheCluster+    , ModifyCacheCluster+    -- * Request Lenses+    , mccEngineVersion+    , mccSecurityGroupIds     , mccAutoMinorVersionUpgrade-    , mccCacheClusterId-    , mccCacheNodeIdsToRemove     , mccCacheParameterGroupName-    , mccCacheSecurityGroupNames-    , mccEngineVersion     , mccNewAvailabilityZones-    , mccNotificationTopicArn-    , mccNotificationTopicStatus-    , mccNumCacheNodes+    , mccSnapshotWindow     , mccPreferredMaintenanceWindow-    , mccSecurityGroupIds+    , mccCacheNodeIdsToRemove     , mccSnapshotRetentionLimit-    , mccSnapshotWindow+    , mccAZMode+    , mccNotificationTopicStatus+    , mccApplyImmediately+    , mccNotificationTopicARN+    , mccNumCacheNodes+    , mccCacheSecurityGroupNames+    , mccCacheClusterId -    -- * Response-    , ModifyCacheClusterResponse-    -- ** Response constructor+    -- * Destructuring the Response     , modifyCacheClusterResponse-    -- ** Response lenses-    , mccrCacheCluster+    , ModifyCacheClusterResponse+    -- * Response Lenses+    , mccrsCacheCluster+    , mccrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data ModifyCacheCluster = ModifyCacheCluster-    { _mccAZMode                     :: Maybe AZMode-    , _mccApplyImmediately           :: Maybe Bool-    , _mccAutoMinorVersionUpgrade    :: Maybe Bool-    , _mccCacheClusterId             :: Text-    , _mccCacheNodeIdsToRemove       :: List "member" Text-    , _mccCacheParameterGroupName    :: Maybe Text-    , _mccCacheSecurityGroupNames    :: List "member" Text-    , _mccEngineVersion              :: Maybe Text-    , _mccNewAvailabilityZones       :: List "member" Text-    , _mccNotificationTopicArn       :: Maybe Text-    , _mccNotificationTopicStatus    :: Maybe Text-    , _mccNumCacheNodes              :: Maybe Int-    , _mccPreferredMaintenanceWindow :: Maybe Text-    , _mccSecurityGroupIds           :: List "member" Text-    , _mccSnapshotRetentionLimit     :: Maybe Int-    , _mccSnapshotWindow             :: Maybe Text-    } deriving (Eq, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'ModifyCacheCluster' constructor.+-- | Represents the input of a /ModifyCacheCluster/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'modifyCacheCluster' smart constructor.+data ModifyCacheCluster = ModifyCacheCluster'+    { _mccEngineVersion              :: !(Maybe Text)+    , _mccSecurityGroupIds           :: !(Maybe [Text])+    , _mccAutoMinorVersionUpgrade    :: !(Maybe Bool)+    , _mccCacheParameterGroupName    :: !(Maybe Text)+    , _mccNewAvailabilityZones       :: !(Maybe [Text])+    , _mccSnapshotWindow             :: !(Maybe Text)+    , _mccPreferredMaintenanceWindow :: !(Maybe Text)+    , _mccCacheNodeIdsToRemove       :: !(Maybe [Text])+    , _mccSnapshotRetentionLimit     :: !(Maybe Int)+    , _mccAZMode                     :: !(Maybe AZMode)+    , _mccNotificationTopicStatus    :: !(Maybe Text)+    , _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. ----- * 'mccAZMode' @::@ 'Maybe' 'AZMode'+-- Use one of the following lenses to modify other fields as desired: ----- * 'mccApplyImmediately' @::@ 'Maybe' 'Bool'+-- * 'mccEngineVersion' ----- * 'mccAutoMinorVersionUpgrade' @::@ 'Maybe' 'Bool'+-- * 'mccSecurityGroupIds' ----- * 'mccCacheClusterId' @::@ 'Text'+-- * 'mccAutoMinorVersionUpgrade' ----- * 'mccCacheNodeIdsToRemove' @::@ ['Text']+-- * 'mccCacheParameterGroupName' ----- * 'mccCacheParameterGroupName' @::@ 'Maybe' 'Text'+-- * 'mccNewAvailabilityZones' ----- * 'mccCacheSecurityGroupNames' @::@ ['Text']+-- * 'mccSnapshotWindow' ----- * 'mccEngineVersion' @::@ 'Maybe' 'Text'+-- * 'mccPreferredMaintenanceWindow' ----- * 'mccNewAvailabilityZones' @::@ ['Text']+-- * 'mccCacheNodeIdsToRemove' ----- * 'mccNotificationTopicArn' @::@ 'Maybe' 'Text'+-- * 'mccSnapshotRetentionLimit' ----- * 'mccNotificationTopicStatus' @::@ 'Maybe' 'Text'+-- * 'mccAZMode' ----- * 'mccNumCacheNodes' @::@ 'Maybe' 'Int'+-- * 'mccNotificationTopicStatus' ----- * 'mccPreferredMaintenanceWindow' @::@ 'Maybe' 'Text'+-- * 'mccApplyImmediately' ----- * 'mccSecurityGroupIds' @::@ ['Text']+-- * 'mccNotificationTopicARN' ----- * 'mccSnapshotRetentionLimit' @::@ 'Maybe' 'Int'+-- * 'mccNumCacheNodes' ----- * 'mccSnapshotWindow' @::@ 'Maybe' 'Text'+-- * 'mccCacheSecurityGroupNames' ---modifyCacheCluster :: Text -- ^ 'mccCacheClusterId'-                   -> ModifyCacheCluster-modifyCacheCluster p1 = ModifyCacheCluster-    { _mccCacheClusterId             = p1-    , _mccNumCacheNodes              = Nothing-    , _mccCacheNodeIdsToRemove       = mempty-    , _mccAZMode                     = Nothing-    , _mccNewAvailabilityZones       = mempty-    , _mccCacheSecurityGroupNames    = mempty-    , _mccSecurityGroupIds           = mempty+-- * 'mccCacheClusterId'+modifyCacheCluster+    :: Text -- ^ 'mccCacheClusterId'+    -> ModifyCacheCluster+modifyCacheCluster pCacheClusterId_ =+    ModifyCacheCluster'+    { _mccEngineVersion = Nothing+    , _mccSecurityGroupIds = Nothing+    , _mccAutoMinorVersionUpgrade = Nothing+    , _mccCacheParameterGroupName = Nothing+    , _mccNewAvailabilityZones = Nothing+    , _mccSnapshotWindow = Nothing     , _mccPreferredMaintenanceWindow = Nothing-    , _mccNotificationTopicArn       = Nothing-    , _mccCacheParameterGroupName    = Nothing-    , _mccNotificationTopicStatus    = Nothing-    , _mccApplyImmediately           = Nothing-    , _mccEngineVersion              = Nothing-    , _mccAutoMinorVersionUpgrade    = Nothing-    , _mccSnapshotRetentionLimit     = Nothing-    , _mccSnapshotWindow             = Nothing+    , _mccCacheNodeIdsToRemove = Nothing+    , _mccSnapshotRetentionLimit = Nothing+    , _mccAZMode = Nothing+    , _mccNotificationTopicStatus = Nothing+    , _mccApplyImmediately = Nothing+    , _mccNotificationTopicARN = Nothing+    , _mccNumCacheNodes = Nothing+    , _mccCacheSecurityGroupNames = Nothing+    , _mccCacheClusterId = pCacheClusterId_     } --- | Specifies whether the new nodes in this Memcached cache cluster are all--- created in a single Availability Zone or created across multiple Availability--- Zones.+-- | The upgraded version of the cache engine to be run on the cache nodes.+mccEngineVersion :: Lens' ModifyCacheCluster (Maybe Text)+mccEngineVersion = lens _mccEngineVersion (\ s a -> s{_mccEngineVersion = a});++-- | Specifies the VPC Security Groups associated with the cache cluster. ----- Valid values: 'single-az' | 'cross-az'.+-- This parameter can be used only with clusters that are created in an+-- Amazon Virtual Private Cloud (VPC).+mccSecurityGroupIds :: Lens' ModifyCacheCluster [Text]+mccSecurityGroupIds = lens _mccSecurityGroupIds (\ s a -> s{_mccSecurityGroupIds = a}) . _Default . _Coerce;++-- | This parameter is currently disabled.+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.+mccCacheParameterGroupName :: Lens' ModifyCacheCluster (Maybe Text)+mccCacheParameterGroupName = lens _mccCacheParameterGroupName (\ s a -> s{_mccCacheParameterGroupName = a});++-- | The list of Availability Zones where the new Memcached cache nodes will+-- be created. ----- This option is only supported for Memcached cache clusters.+-- 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. ----- You cannot specify 'single-az' if the Memcached cache cluster already has--- cache nodes in different Availability Zones. If 'cross-az' is specified,--- existing Memcached nodes remain in their current Availability Zone.+-- This option is only supported on Memcached clusters. ----- Only newly created nodes will be located in different Availability Zones.--- For instructions 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 CacheNode Considerations for Memcached>.+-- 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)+-- -   __Scenario 3:__ You want to cancel all pending actions.+--      Specify 'NumCacheNodes=3' to cancel all pending actions. ---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.+-- 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 'false', then changes to the cache cluster are applied on the next--- maintenance reboot, or the next failure reboot, whichever occurs first.+-- 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>. ----- If you perform a 'ModifyCacheCluster' before a pending modification is--- applied, the pending modification is replaced by the newer modification. Valid values:--- 'true' | 'false'+-- __Impact of new add\/remove requests upon pending requests__ ----- Default: 'false'-mccApplyImmediately :: Lens' ModifyCacheCluster (Maybe Bool)-mccApplyImmediately =-    lens _mccApplyImmediately (\s a -> s { _mccApplyImmediately = a })---- | This parameter is currently disabled.-mccAutoMinorVersionUpgrade :: Lens' ModifyCacheCluster (Maybe Bool)-mccAutoMinorVersionUpgrade =-    lens _mccAutoMinorVersionUpgrade-        (\s a -> s { _mccAutoMinorVersionUpgrade = a })---- | The cache cluster identifier. This value is stored as a lowercase string.-mccCacheClusterId :: Lens' ModifyCacheCluster Text-mccCacheClusterId =-    lens _mccCacheClusterId (\s a -> s { _mccCacheClusterId = 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.+-- >   --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-- >   Scenarios    Pending action   New Request   Results+-- >   ------------ ---------------- ------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-- >   Scenario-1   Delete           Delete        The new delete, pending or immediate, replaces the pending delete.+-- >+-- >   Scenario-2   Delete           Create        The new create, pending or immediate, replaces the pending delete.+-- >+-- >   Scenario-3   Create           Delete        The new delete, pending or immediate, replaces the pending create.+-- >+-- >   Scenario-4   Create           Create        The new create is added to the pending create.+-- >                                                __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.+-- >   -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----- 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 :: Lens' ModifyCacheCluster [Text]-mccCacheNodeIdsToRemove =-    lens _mccCacheNodeIdsToRemove (\s a -> s { _mccCacheNodeIdsToRemove = a })-        . _List+-- Example:+-- 'NewAvailabilityZones.member.1=us-west-2a&NewAvailabilityZones.member.2=us-west-2b&NewAvailabilityZones.member.3=us-west-2c'+mccNewAvailabilityZones :: Lens' ModifyCacheCluster [Text]+mccNewAvailabilityZones = lens _mccNewAvailabilityZones (\ s a -> s{_mccNewAvailabilityZones = a}) . _Default . _Coerce; --- | 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 :: Lens' ModifyCacheCluster (Maybe Text)-mccCacheParameterGroupName =-    lens _mccCacheParameterGroupName-        (\s a -> s { _mccCacheParameterGroupName = a })+-- | The daily time range (in UTC) during which ElastiCache will begin taking+-- a daily snapshot of your cache cluster.+mccSnapshotWindow :: Lens' ModifyCacheCluster (Maybe Text)+mccSnapshotWindow = lens _mccSnapshotWindow (\ s a -> s{_mccSnapshotWindow = a}); --- | A list of cache security group names to authorize on this cache cluster. This--- change is asynchronously applied as soon as possible.+-- | 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: ----- This parameter can be used only with clusters that are created outside of an--- Amazon Virtual Private Cloud (VPC).+-- -   'sun'+-- -   'mon'+-- -   'tue'+-- -   'wed'+-- -   'thu'+-- -   'fri'+-- -   'sat' ----- 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 })-            . _List+-- Example: 'sun:05:00-sun:09:00'+mccPreferredMaintenanceWindow :: Lens' ModifyCacheCluster (Maybe Text)+mccPreferredMaintenanceWindow = lens _mccPreferredMaintenanceWindow (\ s a -> s{_mccPreferredMaintenanceWindow = a}); --- | The upgraded version of the cache engine to be run on the cache nodes.-mccEngineVersion :: Lens' ModifyCacheCluster (Maybe Text)-mccEngineVersion = lens _mccEngineVersion (\s a -> s { _mccEngineVersion = 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.+mccCacheNodeIdsToRemove :: Lens' ModifyCacheCluster [Text]+mccCacheNodeIdsToRemove = lens _mccCacheNodeIdsToRemove (\ s a -> s{_mccCacheNodeIdsToRemove = a}) . _Default . _Coerce; --- | The list of Availability Zones where the new Memcached cache nodes will be--- created.+-- | The number of days for which ElastiCache will retain automatic cache+-- cluster snapshots before deleting them. For example, if you set+-- /SnapshotRetentionLimit/ to 5, then a snapshot that was taken today will+-- be retained for 5 days before being deleted. ----- 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.+-- __Important__+-- If the value of SnapshotRetentionLimit is set to zero (0), backups are+-- turned off.+mccSnapshotRetentionLimit :: Lens' ModifyCacheCluster (Maybe Int)+mccSnapshotRetentionLimit = lens _mccSnapshotRetentionLimit (\ s a -> s{_mccSnapshotRetentionLimit = 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. ----- This option is only supported on Memcached clusters.+-- Valid values: 'single-az' | 'cross-az'. ----- Scenarios:   Scenario 1: You have 3 active nodes and wish to add 2 nodes.+-- This option is only supported for Memcached cache clusters. ----- 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.+-- You cannot specify 'single-az' if the Memcached cache cluster already+-- has cache nodes in different Availability Zones. If 'cross-az' is+-- specified, existing Memcached nodes remain in their current Availability+-- Zone. ----- Specify 'NumCacheNodes=6' ((3 + 2) + 1) and optionally specify an Availability--- Zone for the new node.  Scenario 3: You want to cancel all pending actions.+-- Only newly created nodes will be located in different Availability+-- Zones. For instructions 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>.+mccAZMode :: Lens' ModifyCacheCluster (Maybe AZMode)+mccAZMode = lens _mccAZMode (\ s a -> s{_mccAZMode = a});++-- | The status of the Amazon SNS notification topic. Notifications are sent+-- only if the status is /active/. ----- Specify 'NumCacheNodes=3' to cancel all pending actions.+-- Valid values: 'active' | 'inactive'+mccNotificationTopicStatus :: Lens' ModifyCacheCluster (Maybe Text)+mccNotificationTopicStatus = lens _mccNotificationTopicStatus (\ s a -> s{_mccNotificationTopicStatus = 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. ----- 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 'false', then changes to the cache cluster are applied on the next+-- maintenance reboot, or the next failure reboot, whichever occurs first. ----- 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>.+-- If you perform a 'ModifyCacheCluster' before a pending modification is+-- applied, the pending modification is replaced by the newer modification. ----- Impact of new add/remove requests upon pending requests+-- Valid values: 'true' | 'false' ----- Scenarios Pending action New Request Results   Scenario-1 Delete Delete The new delete, pending or immediate, replaces the pending delete.--- Scenario-2 Delete Create The new create, pending or immediate, replaces--- the pending delete.   Scenario-3 Create Delete The new delete, pending or--- immediate, replaces the pending create.   Scenario-4 Create Create The new--- create is added to the pending create.--- 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.   Example: 'NewAvailabilityZones.member.1=us-west-2a&NewAvailabilityZones.member.2=us-west-2b&NewAvailabilityZones.member.3=us-west-2c'-mccNewAvailabilityZones :: Lens' ModifyCacheCluster [Text]-mccNewAvailabilityZones =-    lens _mccNewAvailabilityZones (\s a -> s { _mccNewAvailabilityZones = a })-        . _List+-- Default: 'false'+mccApplyImmediately :: Lens' ModifyCacheCluster (Maybe Bool)+mccApplyImmediately = lens _mccApplyImmediately (\ s a -> s{_mccApplyImmediately = a}); --- | The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications--- will be sent.+-- | The Amazon Resource Name (ARN) of the Amazon SNS topic to which+-- notifications will be sent. -- -- The Amazon SNS topic owner must be same as the cache cluster owner.-mccNotificationTopicArn :: Lens' ModifyCacheCluster (Maybe Text)-mccNotificationTopicArn =-    lens _mccNotificationTopicArn (\s a -> s { _mccNotificationTopicArn = a })---- | The status of the Amazon SNS notification topic. Notifications are sent only--- if the status is /active/.------ Valid values: 'active' | 'inactive'-mccNotificationTopicStatus :: Lens' ModifyCacheCluster (Maybe Text)-mccNotificationTopicStatus =-    lens _mccNotificationTopicStatus-        (\s a -> s { _mccNotificationTopicStatus = a })+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),--- then more nodes will be added. If the value is less than the number of--- existing cache nodes, then nodes will be removed. If the value is equal to--- the number of current cache nodes, then any pending add or remove requests--- are canceled.+-- | 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), then more nodes will be added. If the value is less+-- than the number of existing cache nodes, then nodes will be removed. If+-- the value is equal to the number of current cache nodes, then 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.@@ -305,116 +330,127 @@ -- For clusters running Redis, this value must be 1. For clusters running -- Memcached, this value must be between 1 and 20. ----- Note:+-- __Note:__ -- Adding or removing Memcached cache nodes can be applied immediately or -- as a pending action. See 'ApplyImmediately'.--- A pending action to modify the--- number of cache nodes in a cluster during its maintenance window, whether by--- adding or removing nodes in accordance with the scale out architecture, is--- not queued. The customer's latest request to add or remove nodes to the--- cluster overrides any previous pending actions to modify the number of cache--- nodes in the cluster. For example, a request to remove 2 nodes would override--- a previous pending action to remove 3 nodes. Similarly, a request to add 2--- nodes would override a previous pending action to remove 3 nodes and vice--- versa. As Memcached cache nodes may now be provisioned in different--- Availability Zones with flexible cache node placement, a request to add nodes--- does not automatically override a previous pending action to add nodes. The--- customer can modify the previous pending action to add more nodes or--- explicitly cancel the pending request and retry the new request. To cancel--- pending actions to modify the number of cache nodes in a cluster, use the 'ModifyCacheCluster' request and set /NumCacheNodes/ equal to the number of cache nodes currently--- in the cache cluster.+--  A pending action to modify the number of cache nodes in a cluster+-- during its maintenance window, whether by adding or removing nodes in+-- accordance with the scale out architecture, is not queued. The+-- customer\'s latest request to add or remove nodes to the cluster+-- overrides any previous pending actions to modify the number of cache+-- nodes in the cluster. For example, a request to remove 2 nodes would+-- override a previous pending action to remove 3 nodes. Similarly, a+-- request to add 2 nodes would override a previous pending action to+-- remove 3 nodes and vice versa. As Memcached cache nodes may now be+-- provisioned in different Availability Zones with flexible cache node+-- placement, a request to add nodes does not automatically override a+-- previous pending action to add nodes. The customer can modify the+-- previous pending action to add more nodes or explicitly cancel the+-- pending request and retry the new request. To cancel pending actions to+-- modify the number of cache nodes in a cluster, use the+-- 'ModifyCacheCluster' request and set /NumCacheNodes/ equal to the number+-- of cache nodes currently in the cache cluster. mccNumCacheNodes :: Lens' ModifyCacheCluster (Maybe Int)-mccNumCacheNodes = lens _mccNumCacheNodes (\s a -> s { _mccNumCacheNodes = 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:------ 'sun' 'mon' 'tue' 'wed' 'thu' 'fri' 'sat'  Example: 'sun:05:00-sun:09:00'-mccPreferredMaintenanceWindow :: Lens' ModifyCacheCluster (Maybe Text)-mccPreferredMaintenanceWindow =-    lens _mccPreferredMaintenanceWindow-        (\s a -> s { _mccPreferredMaintenanceWindow = a })+mccNumCacheNodes = lens _mccNumCacheNodes (\ s a -> s{_mccNumCacheNodes = a}); --- | Specifies the VPC Security Groups associated with the cache cluster.+-- | A list of cache security group names to authorize on this cache cluster.+-- This change is asynchronously applied as soon as possible. ----- This parameter can be used only with clusters that are created in an Amazon--- Virtual Private Cloud (VPC).-mccSecurityGroupIds :: Lens' ModifyCacheCluster [Text]-mccSecurityGroupIds =-    lens _mccSecurityGroupIds (\s a -> s { _mccSecurityGroupIds = a })-        . _List---- | The number of days for which ElastiCache will retain automatic cache cluster--- snapshots before deleting them. For example, if you set /SnapshotRetentionLimit/--- to 5, then a snapshot that was taken today will be retained for 5 days--- before being deleted.+-- This parameter can be used only with clusters that are created outside+-- of an Amazon Virtual Private Cloud (VPC). ----- Important--- If the value of SnapshotRetentionLimit is set to zero (0), backups--- are turned off.-mccSnapshotRetentionLimit :: Lens' ModifyCacheCluster (Maybe Int)-mccSnapshotRetentionLimit =-    lens _mccSnapshotRetentionLimit-        (\s a -> s { _mccSnapshotRetentionLimit = a })---- | The daily time range (in UTC) during which ElastiCache will begin taking a--- daily snapshot of your cache cluster.-mccSnapshotWindow :: Lens' ModifyCacheCluster (Maybe Text)-mccSnapshotWindow =-    lens _mccSnapshotWindow (\s a -> s { _mccSnapshotWindow = a })+-- 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; -newtype ModifyCacheClusterResponse = ModifyCacheClusterResponse-    { _mccrCacheCluster :: Maybe CacheCluster-    } deriving (Eq, Read, Show)+-- | The cache cluster identifier. This value is stored as a lowercase+-- string.+mccCacheClusterId :: Lens' ModifyCacheCluster Text+mccCacheClusterId = lens _mccCacheClusterId (\ s a -> s{_mccCacheClusterId = a}); --- | 'ModifyCacheClusterResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'mccrCacheCluster' @::@ 'Maybe' 'CacheCluster'----modifyCacheClusterResponse :: ModifyCacheClusterResponse-modifyCacheClusterResponse = ModifyCacheClusterResponse-    { _mccrCacheCluster = Nothing-    }+instance AWSRequest ModifyCacheCluster where+        type Sv ModifyCacheCluster = ElastiCache+        type Rs ModifyCacheCluster =+             ModifyCacheClusterResponse+        request = postQuery+        response+          = receiveXMLWrapper "ModifyCacheClusterResult"+              (\ s h x ->+                 ModifyCacheClusterResponse' <$>+                   (x .@? "CacheCluster") <*> (pure (fromEnum s))) -mccrCacheCluster :: Lens' ModifyCacheClusterResponse (Maybe CacheCluster)-mccrCacheCluster = lens _mccrCacheCluster (\s a -> s { _mccrCacheCluster = a })+instance ToHeaders ModifyCacheCluster where+        toHeaders = const mempty  instance ToPath ModifyCacheCluster where-    toPath = const "/"+        toPath = const "/"  instance ToQuery ModifyCacheCluster where-    toQuery ModifyCacheCluster{..} = mconcat-        [ "AZMode"                     =? _mccAZMode-        , "ApplyImmediately"           =? _mccApplyImmediately-        , "AutoMinorVersionUpgrade"    =? _mccAutoMinorVersionUpgrade-        , "CacheClusterId"             =? _mccCacheClusterId-        , "CacheNodeIdsToRemove"       =? _mccCacheNodeIdsToRemove-        , "CacheParameterGroupName"    =? _mccCacheParameterGroupName-        , "CacheSecurityGroupNames"    =? _mccCacheSecurityGroupNames-        , "EngineVersion"              =? _mccEngineVersion-        , "NewAvailabilityZones"       =? _mccNewAvailabilityZones-        , "NotificationTopicArn"       =? _mccNotificationTopicArn-        , "NotificationTopicStatus"    =? _mccNotificationTopicStatus-        , "NumCacheNodes"              =? _mccNumCacheNodes-        , "PreferredMaintenanceWindow" =? _mccPreferredMaintenanceWindow-        , "SecurityGroupIds"           =? _mccSecurityGroupIds-        , "SnapshotRetentionLimit"     =? _mccSnapshotRetentionLimit-        , "SnapshotWindow"             =? _mccSnapshotWindow-        ]+        toQuery ModifyCacheCluster'{..}+          = mconcat+              ["Action" =: ("ModifyCacheCluster" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "EngineVersion" =: _mccEngineVersion,+               "SecurityGroupIds" =:+                 toQuery+                   (toQueryList "SecurityGroupId" <$>+                      _mccSecurityGroupIds),+               "AutoMinorVersionUpgrade" =:+                 _mccAutoMinorVersionUpgrade,+               "CacheParameterGroupName" =:+                 _mccCacheParameterGroupName,+               "NewAvailabilityZones" =:+                 toQuery+                   (toQueryList "PreferredAvailabilityZone" <$>+                      _mccNewAvailabilityZones),+               "SnapshotWindow" =: _mccSnapshotWindow,+               "PreferredMaintenanceWindow" =:+                 _mccPreferredMaintenanceWindow,+               "CacheNodeIdsToRemove" =:+                 toQuery+                   (toQueryList "CacheNodeId" <$>+                      _mccCacheNodeIdsToRemove),+               "SnapshotRetentionLimit" =:+                 _mccSnapshotRetentionLimit,+               "AZMode" =: _mccAZMode,+               "NotificationTopicStatus" =:+                 _mccNotificationTopicStatus,+               "ApplyImmediately" =: _mccApplyImmediately,+               "NotificationTopicArn" =: _mccNotificationTopicARN,+               "NumCacheNodes" =: _mccNumCacheNodes,+               "CacheSecurityGroupNames" =:+                 toQuery+                   (toQueryList "CacheSecurityGroupName" <$>+                      _mccCacheSecurityGroupNames),+               "CacheClusterId" =: _mccCacheClusterId] -instance ToHeaders ModifyCacheCluster+-- | /See:/ 'modifyCacheClusterResponse' smart constructor.+data ModifyCacheClusterResponse = ModifyCacheClusterResponse'+    { _mccrsCacheCluster :: !(Maybe CacheCluster)+    , _mccrsStatus       :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest ModifyCacheCluster where-    type Sv ModifyCacheCluster = ElastiCache-    type Rs ModifyCacheCluster = ModifyCacheClusterResponse+-- | 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:+--+-- * 'mccrsCacheCluster'+--+-- * 'mccrsStatus'+modifyCacheClusterResponse+    :: Int -- ^ 'mccrsStatus'+    -> ModifyCacheClusterResponse+modifyCacheClusterResponse pStatus_ =+    ModifyCacheClusterResponse'+    { _mccrsCacheCluster = Nothing+    , _mccrsStatus = pStatus_+    } -    request  = post "ModifyCacheCluster"-    response = xmlResponse+-- | Undocumented member.+mccrsCacheCluster :: Lens' ModifyCacheClusterResponse (Maybe CacheCluster)+mccrsCacheCluster = lens _mccrsCacheCluster (\ s a -> s{_mccrsCacheCluster = a}); -instance FromXML ModifyCacheClusterResponse where-    parseXML = withElement "ModifyCacheClusterResult" $ \x -> ModifyCacheClusterResponse-        <$> x .@? "CacheCluster"+-- | The response status code.+mccrsStatus :: Lens' ModifyCacheClusterResponse Int+mccrsStatus = lens _mccrsStatus (\ s a -> s{_mccrsStatus = a});
gen/Network/AWS/ElastiCache/ModifyCacheParameterGroup.hs view
@@ -1,128 +1,107 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.ModifyCacheParameterGroup--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /ModifyCacheParameterGroup/ action modifies the parameters of a cache--- parameter group. You can modify up to 20 parameters in a single request by--- submitting a list parameter name and value pairs.+-- The /ModifyCacheParameterGroup/ action modifies the parameters of a+-- cache parameter group. You can modify up to 20 parameters in a single+-- request by submitting a list parameter name and value pairs. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheParameterGroup.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheParameterGroup.html AWS API Reference> for ModifyCacheParameterGroup. module Network.AWS.ElastiCache.ModifyCacheParameterGroup     (-    -- * Request-      ModifyCacheParameterGroup-    -- ** Request constructor-    , modifyCacheParameterGroup-    -- ** Request lenses+    -- * Creating a Request+      modifyCacheParameterGroup+    , ModifyCacheParameterGroup+    -- * Request Lenses     , mcpgCacheParameterGroupName     , mcpgParameterNameValues -    -- * Response-    , ModifyCacheParameterGroupResponse-    -- ** Response constructor-    , modifyCacheParameterGroupResponse-    -- ** Response lenses-    , mcpgrCacheParameterGroupName+    -- * Destructuring the Response+    , cacheParameterGroupNameMessage+    , CacheParameterGroupNameMessage+    -- * Response Lenses+    , cpgnmCacheParameterGroupName     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data ModifyCacheParameterGroup = ModifyCacheParameterGroup-    { _mcpgCacheParameterGroupName :: Text-    , _mcpgParameterNameValues     :: List "member" ParameterNameValue-    } deriving (Eq, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'ModifyCacheParameterGroup' constructor.+-- | Represents the input of a /ModifyCacheParameterGroup/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'modifyCacheParameterGroup' smart constructor.+data ModifyCacheParameterGroup = ModifyCacheParameterGroup'+    { _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. ----- * 'mcpgCacheParameterGroupName' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'mcpgParameterNameValues' @::@ ['ParameterNameValue']+-- * 'mcpgCacheParameterGroupName' ---modifyCacheParameterGroup :: Text -- ^ 'mcpgCacheParameterGroupName'-                          -> ModifyCacheParameterGroup-modifyCacheParameterGroup p1 = ModifyCacheParameterGroup-    { _mcpgCacheParameterGroupName = p1-    , _mcpgParameterNameValues     = mempty+-- * 'mcpgParameterNameValues'+modifyCacheParameterGroup+    :: Text -- ^ 'mcpgCacheParameterGroupName'+    -> ModifyCacheParameterGroup+modifyCacheParameterGroup pCacheParameterGroupName_ =+    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 })+mcpgCacheParameterGroupName = lens _mcpgCacheParameterGroupName (\ s a -> s{_mcpgCacheParameterGroupName = a}); --- | An array of parameter names and values for the parameter update. You must--- supply at least one parameter name and value; subsequent arguments are--- optional. A maximum of 20 parameters may be modified per request.+-- | An array of parameter names and values for the parameter update. You+-- must supply at least one parameter name and value; subsequent arguments+-- are optional. A maximum of 20 parameters may be modified per request. mcpgParameterNameValues :: Lens' ModifyCacheParameterGroup [ParameterNameValue]-mcpgParameterNameValues =-    lens _mcpgParameterNameValues (\s a -> s { _mcpgParameterNameValues = a })-        . _List--newtype ModifyCacheParameterGroupResponse = ModifyCacheParameterGroupResponse-    { _mcpgrCacheParameterGroupName :: Maybe Text-    } deriving (Eq, Ord, Read, Show, Monoid)+mcpgParameterNameValues = lens _mcpgParameterNameValues (\ s a -> s{_mcpgParameterNameValues = a}) . _Coerce; --- | 'ModifyCacheParameterGroupResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'mcpgrCacheParameterGroupName' @::@ 'Maybe' 'Text'----modifyCacheParameterGroupResponse :: ModifyCacheParameterGroupResponse-modifyCacheParameterGroupResponse = ModifyCacheParameterGroupResponse-    { _mcpgrCacheParameterGroupName = Nothing-    }+instance AWSRequest ModifyCacheParameterGroup where+        type Sv ModifyCacheParameterGroup = ElastiCache+        type Rs ModifyCacheParameterGroup =+             CacheParameterGroupNameMessage+        request = postQuery+        response+          = receiveXMLWrapper "ModifyCacheParameterGroupResult"+              (\ s h x -> parseXML x) --- | The name of the cache parameter group.-mcpgrCacheParameterGroupName :: Lens' ModifyCacheParameterGroupResponse (Maybe Text)-mcpgrCacheParameterGroupName =-    lens _mcpgrCacheParameterGroupName-        (\s a -> s { _mcpgrCacheParameterGroupName = a })+instance ToHeaders ModifyCacheParameterGroup where+        toHeaders = const mempty  instance ToPath ModifyCacheParameterGroup where-    toPath = const "/"+        toPath = const "/"  instance ToQuery ModifyCacheParameterGroup where-    toQuery ModifyCacheParameterGroup{..} = mconcat-        [ "CacheParameterGroupName" =? _mcpgCacheParameterGroupName-        , "ParameterNameValues"     =? _mcpgParameterNameValues-        ]--instance ToHeaders ModifyCacheParameterGroup--instance AWSRequest ModifyCacheParameterGroup where-    type Sv ModifyCacheParameterGroup = ElastiCache-    type Rs ModifyCacheParameterGroup = ModifyCacheParameterGroupResponse--    request  = post "ModifyCacheParameterGroup"-    response = xmlResponse--instance FromXML ModifyCacheParameterGroupResponse where-    parseXML = withElement "ModifyCacheParameterGroupResult" $ \x -> ModifyCacheParameterGroupResponse-        <$> x .@? "CacheParameterGroupName"+        toQuery ModifyCacheParameterGroup'{..}+          = mconcat+              ["Action" =:+                 ("ModifyCacheParameterGroup" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "CacheParameterGroupName" =:+                 _mcpgCacheParameterGroupName,+               "ParameterNameValues" =:+                 toQueryList "ParameterNameValue"+                   _mcpgParameterNameValues]
gen/Network/AWS/ElastiCache/ModifyCacheSubnetGroup.hs view
@@ -1,83 +1,86 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.ModifyCacheSubnetGroup--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /ModifyCacheSubnetGroup/ action modifies an existing cache subnet group.+-- The /ModifyCacheSubnetGroup/ action modifies an existing cache subnet+-- group. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheSubnetGroup.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheSubnetGroup.html AWS API Reference> for ModifyCacheSubnetGroup. module Network.AWS.ElastiCache.ModifyCacheSubnetGroup     (-    -- * Request-      ModifyCacheSubnetGroup-    -- ** Request constructor-    , modifyCacheSubnetGroup-    -- ** Request lenses+    -- * Creating a Request+      modifyCacheSubnetGroup+    , ModifyCacheSubnetGroup+    -- * Request Lenses+    , mcsgSubnetIds     , mcsgCacheSubnetGroupDescription     , mcsgCacheSubnetGroupName-    , mcsgSubnetIds -    -- * Response-    , ModifyCacheSubnetGroupResponse-    -- ** Response constructor+    -- * Destructuring the Response     , modifyCacheSubnetGroupResponse-    -- ** Response lenses-    , mcsgrCacheSubnetGroup+    , ModifyCacheSubnetGroupResponse+    -- * Response Lenses+    , mcsgrsCacheSubnetGroup+    , mcsgrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data ModifyCacheSubnetGroup = ModifyCacheSubnetGroup-    { _mcsgCacheSubnetGroupDescription :: Maybe Text-    , _mcsgCacheSubnetGroupName        :: Text-    , _mcsgSubnetIds                   :: List "member" Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'ModifyCacheSubnetGroup' constructor.+-- | Represents the input of a /ModifyCacheSubnetGroup/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'modifyCacheSubnetGroup' smart constructor.+data ModifyCacheSubnetGroup = ModifyCacheSubnetGroup'+    { _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. ----- * 'mcsgCacheSubnetGroupDescription' @::@ 'Maybe' 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'mcsgCacheSubnetGroupName' @::@ 'Text'+-- * 'mcsgSubnetIds' ----- * 'mcsgSubnetIds' @::@ ['Text']+-- * 'mcsgCacheSubnetGroupDescription' ---modifyCacheSubnetGroup :: Text -- ^ 'mcsgCacheSubnetGroupName'-                       -> ModifyCacheSubnetGroup-modifyCacheSubnetGroup p1 = ModifyCacheSubnetGroup-    { _mcsgCacheSubnetGroupName        = p1+-- * 'mcsgCacheSubnetGroupName'+modifyCacheSubnetGroup+    :: Text -- ^ 'mcsgCacheSubnetGroupName'+    -> ModifyCacheSubnetGroup+modifyCacheSubnetGroup pCacheSubnetGroupName_ =+    ModifyCacheSubnetGroup'+    { _mcsgSubnetIds = Nothing     , _mcsgCacheSubnetGroupDescription = Nothing-    , _mcsgSubnetIds                   = mempty+    , _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;+ -- | A description for the cache subnet group. mcsgCacheSubnetGroupDescription :: Lens' ModifyCacheSubnetGroup (Maybe Text)-mcsgCacheSubnetGroupDescription =-    lens _mcsgCacheSubnetGroupDescription-        (\s a -> s { _mcsgCacheSubnetGroupDescription = a })+mcsgCacheSubnetGroupDescription = lens _mcsgCacheSubnetGroupDescription (\ s a -> s{_mcsgCacheSubnetGroupDescription = a});  -- | The name for the cache subnet group. This value is stored as a lowercase -- string.@@ -87,52 +90,64 @@ -- -- Example: 'mysubnetgroup' mcsgCacheSubnetGroupName :: Lens' ModifyCacheSubnetGroup Text-mcsgCacheSubnetGroupName =-    lens _mcsgCacheSubnetGroupName-        (\s a -> s { _mcsgCacheSubnetGroupName = a })---- | The EC2 subnet IDs for the cache subnet group.-mcsgSubnetIds :: Lens' ModifyCacheSubnetGroup [Text]-mcsgSubnetIds = lens _mcsgSubnetIds (\s a -> s { _mcsgSubnetIds = a }) . _List--newtype ModifyCacheSubnetGroupResponse = ModifyCacheSubnetGroupResponse-    { _mcsgrCacheSubnetGroup :: Maybe CacheSubnetGroup-    } deriving (Eq, Read, Show)+mcsgCacheSubnetGroupName = lens _mcsgCacheSubnetGroupName (\ s a -> s{_mcsgCacheSubnetGroupName = a}); --- | 'ModifyCacheSubnetGroupResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'mcsgrCacheSubnetGroup' @::@ 'Maybe' 'CacheSubnetGroup'----modifyCacheSubnetGroupResponse :: ModifyCacheSubnetGroupResponse-modifyCacheSubnetGroupResponse = ModifyCacheSubnetGroupResponse-    { _mcsgrCacheSubnetGroup = Nothing-    }+instance AWSRequest ModifyCacheSubnetGroup where+        type Sv ModifyCacheSubnetGroup = ElastiCache+        type Rs ModifyCacheSubnetGroup =+             ModifyCacheSubnetGroupResponse+        request = postQuery+        response+          = receiveXMLWrapper "ModifyCacheSubnetGroupResult"+              (\ s h x ->+                 ModifyCacheSubnetGroupResponse' <$>+                   (x .@? "CacheSubnetGroup") <*> (pure (fromEnum s))) -mcsgrCacheSubnetGroup :: Lens' ModifyCacheSubnetGroupResponse (Maybe CacheSubnetGroup)-mcsgrCacheSubnetGroup =-    lens _mcsgrCacheSubnetGroup (\s a -> s { _mcsgrCacheSubnetGroup = a })+instance ToHeaders ModifyCacheSubnetGroup where+        toHeaders = const mempty  instance ToPath ModifyCacheSubnetGroup where-    toPath = const "/"+        toPath = const "/"  instance ToQuery ModifyCacheSubnetGroup where-    toQuery ModifyCacheSubnetGroup{..} = mconcat-        [ "CacheSubnetGroupDescription" =? _mcsgCacheSubnetGroupDescription-        , "CacheSubnetGroupName"        =? _mcsgCacheSubnetGroupName-        , "SubnetIds"                   =? _mcsgSubnetIds-        ]+        toQuery ModifyCacheSubnetGroup'{..}+          = mconcat+              ["Action" =:+                 ("ModifyCacheSubnetGroup" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "SubnetIds" =:+                 toQuery+                   (toQueryList "SubnetIdentifier" <$> _mcsgSubnetIds),+               "CacheSubnetGroupDescription" =:+                 _mcsgCacheSubnetGroupDescription,+               "CacheSubnetGroupName" =: _mcsgCacheSubnetGroupName] -instance ToHeaders ModifyCacheSubnetGroup+-- | /See:/ 'modifyCacheSubnetGroupResponse' smart constructor.+data ModifyCacheSubnetGroupResponse = ModifyCacheSubnetGroupResponse'+    { _mcsgrsCacheSubnetGroup :: !(Maybe CacheSubnetGroup)+    , _mcsgrsStatus           :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest ModifyCacheSubnetGroup where-    type Sv ModifyCacheSubnetGroup = ElastiCache-    type Rs ModifyCacheSubnetGroup = ModifyCacheSubnetGroupResponse+-- | 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:+--+-- * 'mcsgrsCacheSubnetGroup'+--+-- * 'mcsgrsStatus'+modifyCacheSubnetGroupResponse+    :: Int -- ^ 'mcsgrsStatus'+    -> ModifyCacheSubnetGroupResponse+modifyCacheSubnetGroupResponse pStatus_ =+    ModifyCacheSubnetGroupResponse'+    { _mcsgrsCacheSubnetGroup = Nothing+    , _mcsgrsStatus = pStatus_+    } -    request  = post "ModifyCacheSubnetGroup"-    response = xmlResponse+-- | Undocumented member.+mcsgrsCacheSubnetGroup :: Lens' ModifyCacheSubnetGroupResponse (Maybe CacheSubnetGroup)+mcsgrsCacheSubnetGroup = lens _mcsgrsCacheSubnetGroup (\ s a -> s{_mcsgrsCacheSubnetGroup = a}); -instance FromXML ModifyCacheSubnetGroupResponse where-    parseXML = withElement "ModifyCacheSubnetGroupResult" $ \x -> ModifyCacheSubnetGroupResponse-        <$> x .@? "CacheSubnetGroup"+-- | The response status code.+mcsgrsStatus :: Lens' ModifyCacheSubnetGroupResponse Int+mcsgrsStatus = lens _mcsgrsStatus (\ s a -> s{_mcsgrsStatus = a});
gen/Network/AWS/ElastiCache/ModifyReplicationGroup.hs view
@@ -1,345 +1,359 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.ModifyReplicationGroup--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /ModifyReplicationGroup/ action modifies the settings for a replication--- group.+-- The /ModifyReplicationGroup/ action modifies the settings for a+-- replication group. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html AWS API Reference> for ModifyReplicationGroup. module Network.AWS.ElastiCache.ModifyReplicationGroup     (-    -- * Request-      ModifyReplicationGroup-    -- ** Request constructor-    , modifyReplicationGroup-    -- ** Request lenses-    , mrgApplyImmediately-    , mrgAutoMinorVersionUpgrade+    -- * Creating a Request+      modifyReplicationGroup+    , ModifyReplicationGroup+    -- * Request Lenses     , mrgAutomaticFailoverEnabled-    , mrgCacheParameterGroupName-    , mrgCacheSecurityGroupNames     , mrgEngineVersion-    , mrgNotificationTopicArn-    , mrgNotificationTopicStatus-    , mrgPreferredMaintenanceWindow-    , mrgPrimaryClusterId-    , mrgReplicationGroupDescription-    , mrgReplicationGroupId+    , mrgSnapshottingClusterId     , mrgSecurityGroupIds-    , mrgSnapshotRetentionLimit+    , mrgAutoMinorVersionUpgrade+    , mrgReplicationGroupDescription+    , mrgCacheParameterGroupName     , mrgSnapshotWindow-    , mrgSnapshottingClusterId+    , mrgPrimaryClusterId+    , mrgPreferredMaintenanceWindow+    , mrgSnapshotRetentionLimit+    , mrgNotificationTopicStatus+    , mrgApplyImmediately+    , mrgNotificationTopicARN+    , mrgCacheSecurityGroupNames+    , mrgReplicationGroupId -    -- * Response-    , ModifyReplicationGroupResponse-    -- ** Response constructor+    -- * Destructuring the Response     , modifyReplicationGroupResponse-    -- ** Response lenses-    , mrgrReplicationGroup+    , ModifyReplicationGroupResponse+    -- * Response Lenses+    , mrgrsReplicationGroup+    , mrgrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data ModifyReplicationGroup = ModifyReplicationGroup-    { _mrgApplyImmediately            :: Maybe Bool-    , _mrgAutoMinorVersionUpgrade     :: Maybe Bool-    , _mrgAutomaticFailoverEnabled    :: Maybe Bool-    , _mrgCacheParameterGroupName     :: Maybe Text-    , _mrgCacheSecurityGroupNames     :: List "member" Text-    , _mrgEngineVersion               :: Maybe Text-    , _mrgNotificationTopicArn        :: Maybe Text-    , _mrgNotificationTopicStatus     :: Maybe Text-    , _mrgPreferredMaintenanceWindow  :: Maybe Text-    , _mrgPrimaryClusterId            :: Maybe Text-    , _mrgReplicationGroupDescription :: Maybe Text-    , _mrgReplicationGroupId          :: Text-    , _mrgSecurityGroupIds            :: List "member" Text-    , _mrgSnapshotRetentionLimit      :: Maybe Int-    , _mrgSnapshotWindow              :: Maybe Text-    , _mrgSnapshottingClusterId       :: Maybe Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'ModifyReplicationGroup' constructor.+-- | Represents the input of a /ModifyReplicationGroups/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'modifyReplicationGroup' smart constructor.+data ModifyReplicationGroup = ModifyReplicationGroup'+    { _mrgAutomaticFailoverEnabled    :: !(Maybe Bool)+    , _mrgEngineVersion               :: !(Maybe Text)+    , _mrgSnapshottingClusterId       :: !(Maybe Text)+    , _mrgSecurityGroupIds            :: !(Maybe [Text])+    , _mrgAutoMinorVersionUpgrade     :: !(Maybe Bool)+    , _mrgReplicationGroupDescription :: !(Maybe Text)+    , _mrgCacheParameterGroupName     :: !(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)++-- | Creates a value of 'ModifyReplicationGroup' with the minimum fields required to make a request. ----- * 'mrgApplyImmediately' @::@ 'Maybe' 'Bool'+-- Use one of the following lenses to modify other fields as desired: ----- * 'mrgAutoMinorVersionUpgrade' @::@ 'Maybe' 'Bool'+-- * 'mrgAutomaticFailoverEnabled' ----- * 'mrgAutomaticFailoverEnabled' @::@ 'Maybe' 'Bool'+-- * 'mrgEngineVersion' ----- * 'mrgCacheParameterGroupName' @::@ 'Maybe' 'Text'+-- * 'mrgSnapshottingClusterId' ----- * 'mrgCacheSecurityGroupNames' @::@ ['Text']+-- * 'mrgSecurityGroupIds' ----- * 'mrgEngineVersion' @::@ 'Maybe' 'Text'+-- * 'mrgAutoMinorVersionUpgrade' ----- * 'mrgNotificationTopicArn' @::@ 'Maybe' 'Text'+-- * 'mrgReplicationGroupDescription' ----- * 'mrgNotificationTopicStatus' @::@ 'Maybe' 'Text'+-- * 'mrgCacheParameterGroupName' ----- * 'mrgPreferredMaintenanceWindow' @::@ 'Maybe' 'Text'+-- * 'mrgSnapshotWindow' ----- * 'mrgPrimaryClusterId' @::@ 'Maybe' 'Text'+-- * 'mrgPrimaryClusterId' ----- * 'mrgReplicationGroupDescription' @::@ 'Maybe' 'Text'+-- * 'mrgPreferredMaintenanceWindow' ----- * 'mrgReplicationGroupId' @::@ 'Text'+-- * 'mrgSnapshotRetentionLimit' ----- * 'mrgSecurityGroupIds' @::@ ['Text']+-- * 'mrgNotificationTopicStatus' ----- * 'mrgSnapshotRetentionLimit' @::@ 'Maybe' 'Int'+-- * 'mrgApplyImmediately' ----- * 'mrgSnapshotWindow' @::@ 'Maybe' 'Text'+-- * 'mrgNotificationTopicARN' ----- * 'mrgSnapshottingClusterId' @::@ 'Maybe' 'Text'+-- * 'mrgCacheSecurityGroupNames' ---modifyReplicationGroup :: Text -- ^ 'mrgReplicationGroupId'-                       -> ModifyReplicationGroup-modifyReplicationGroup p1 = ModifyReplicationGroup-    { _mrgReplicationGroupId          = p1+-- * 'mrgReplicationGroupId'+modifyReplicationGroup+    :: Text -- ^ 'mrgReplicationGroupId'+    -> ModifyReplicationGroup+modifyReplicationGroup pReplicationGroupId_ =+    ModifyReplicationGroup'+    { _mrgAutomaticFailoverEnabled = Nothing+    , _mrgEngineVersion = Nothing+    , _mrgSnapshottingClusterId = Nothing+    , _mrgSecurityGroupIds = Nothing+    , _mrgAutoMinorVersionUpgrade = Nothing     , _mrgReplicationGroupDescription = Nothing-    , _mrgPrimaryClusterId            = Nothing-    , _mrgSnapshottingClusterId       = Nothing-    , _mrgAutomaticFailoverEnabled    = Nothing-    , _mrgCacheSecurityGroupNames     = mempty-    , _mrgSecurityGroupIds            = mempty-    , _mrgPreferredMaintenanceWindow  = Nothing-    , _mrgNotificationTopicArn        = Nothing-    , _mrgCacheParameterGroupName     = Nothing-    , _mrgNotificationTopicStatus     = Nothing-    , _mrgApplyImmediately            = Nothing-    , _mrgEngineVersion               = Nothing-    , _mrgAutoMinorVersionUpgrade     = Nothing-    , _mrgSnapshotRetentionLimit      = Nothing-    , _mrgSnapshotWindow              = Nothing+    , _mrgCacheParameterGroupName = Nothing+    , _mrgSnapshotWindow = Nothing+    , _mrgPrimaryClusterId = Nothing+    , _mrgPreferredMaintenanceWindow = Nothing+    , _mrgSnapshotRetentionLimit = Nothing+    , _mrgNotificationTopicStatus = Nothing+    , _mrgApplyImmediately = Nothing+    , _mrgNotificationTopicARN = Nothing+    , _mrgCacheSecurityGroupNames = Nothing+    , _mrgReplicationGroupId = pReplicationGroupId_     } --- | 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 replication--- group.------ If 'false', then changes to the nodes in the replication group are applied on--- the next maintenance reboot, or the next failure reboot, whichever occurs--- first.------ Valid values: 'true' | 'false'------ Default: 'false'-mrgApplyImmediately :: Lens' ModifyReplicationGroup (Maybe Bool)-mrgApplyImmediately =-    lens _mrgApplyImmediately (\s a -> s { _mrgApplyImmediately = a })---- | This parameter is currently disabled.-mrgAutoMinorVersionUpgrade :: Lens' ModifyReplicationGroup (Maybe Bool)-mrgAutoMinorVersionUpgrade =-    lens _mrgAutoMinorVersionUpgrade-        (\s a -> s { _mrgAutoMinorVersionUpgrade = a })---- | Whether a read replica will be automatically promoted to read/write primary--- if the existing primary encounters a failure.+-- | Whether a read replica will be automatically promoted to read\/write+-- primary if the existing primary encounters a failure. -- -- Valid values: 'true' | 'false' -- -- ElastiCache Multi-AZ replication groups are not supported on: ----- Redis versions earlier than 2.8.6. T1 and T2 cache node types.+-- -   Redis versions earlier than 2.8.6.+-- -   T1 and T2 cache node types. mrgAutomaticFailoverEnabled :: Lens' ModifyReplicationGroup (Maybe Bool)-mrgAutomaticFailoverEnabled =-    lens _mrgAutomaticFailoverEnabled-        (\s a -> s { _mrgAutomaticFailoverEnabled = a })+mrgAutomaticFailoverEnabled = lens _mrgAutomaticFailoverEnabled (\ s a -> s{_mrgAutomaticFailoverEnabled = a}); --- | The name of the cache parameter group to apply to all of the clusters in this--- replication group. This change is asynchronously applied as soon as possible--- for parameters when the /ApplyImmediately/ parameter is specified as /true/ for--- this request.-mrgCacheParameterGroupName :: Lens' ModifyReplicationGroup (Maybe Text)-mrgCacheParameterGroupName =-    lens _mrgCacheParameterGroupName-        (\s a -> s { _mrgCacheParameterGroupName = a })+-- | The upgraded version of the cache engine to be run on the cache clusters+-- in the replication group.+mrgEngineVersion :: Lens' ModifyReplicationGroup (Maybe Text)+mrgEngineVersion = lens _mrgEngineVersion (\ s a -> s{_mrgEngineVersion = 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.+-- | The cache cluster ID that will be used as the daily snapshot source for+-- the replication group.+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 outside of an Amazon Virtual Private Cloud (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 })-            . _List+-- clusters running in an Amazon Virtual Private Cloud (VPC).+mrgSecurityGroupIds :: Lens' ModifyReplicationGroup [Text]+mrgSecurityGroupIds = lens _mrgSecurityGroupIds (\ s a -> s{_mrgSecurityGroupIds = a}) . _Default . _Coerce; --- | The upgraded version of the cache engine to be run on the cache clusters in--- the replication group.-mrgEngineVersion :: Lens' ModifyReplicationGroup (Maybe Text)-mrgEngineVersion = lens _mrgEngineVersion (\s a -> s { _mrgEngineVersion = a })+-- | This parameter is currently disabled.+mrgAutoMinorVersionUpgrade :: Lens' ModifyReplicationGroup (Maybe Bool)+mrgAutoMinorVersionUpgrade = lens _mrgAutoMinorVersionUpgrade (\ s a -> s{_mrgAutoMinorVersionUpgrade = a}); --- | The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications--- will be sent.------ The Amazon SNS topic owner must be same as the replication group owner.-mrgNotificationTopicArn :: Lens' ModifyReplicationGroup (Maybe Text)-mrgNotificationTopicArn =-    lens _mrgNotificationTopicArn (\s a -> s { _mrgNotificationTopicArn = a })+-- | A description for the replication group. Maximum length is 255+-- characters.+mrgReplicationGroupDescription :: Lens' ModifyReplicationGroup (Maybe Text)+mrgReplicationGroupDescription = lens _mrgReplicationGroupDescription (\ s a -> s{_mrgReplicationGroupDescription = a}); --- | 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'-mrgNotificationTopicStatus :: Lens' ModifyReplicationGroup (Maybe Text)-mrgNotificationTopicStatus =-    lens _mrgNotificationTopicStatus-        (\s a -> s { _mrgNotificationTopicStatus = a })+-- | The name of the cache parameter group to apply to all of the clusters in+-- this replication group. This change is asynchronously applied as soon as+-- possible for parameters when the /ApplyImmediately/ parameter is+-- specified as /true/ for this request.+mrgCacheParameterGroupName :: Lens' ModifyReplicationGroup (Maybe Text)+mrgCacheParameterGroupName = lens _mrgCacheParameterGroupName (\ s a -> s{_mrgCacheParameterGroupName = 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:+-- | The daily time range (in UTC) during which ElastiCache will begin taking+-- a daily snapshot of the node group specified by /SnapshottingClusterId/. ----- 'sun' 'mon' 'tue' 'wed' 'thu' 'fri' 'sat'  Example: 'sun:05:00-sun:09:00'-mrgPreferredMaintenanceWindow :: Lens' ModifyReplicationGroup (Maybe Text)-mrgPreferredMaintenanceWindow =-    lens _mrgPreferredMaintenanceWindow-        (\s a -> s { _mrgPreferredMaintenanceWindow = a })+-- Example: '05:00-09:00'+--+-- If you do not specify this parameter, then ElastiCache will+-- automatically choose an appropriate time range.+mrgSnapshotWindow :: Lens' ModifyReplicationGroup (Maybe Text)+mrgSnapshotWindow = lens _mrgSnapshotWindow (\ s a -> s{_mrgSnapshotWindow = a}); --- | If this parameter is specified, ElastiCache will promote each of the cache--- clusters in the specified replication group to the primary role. The nodes of--- all other cache clusters in the replication group will be read replicas.+-- | If this parameter is specified, ElastiCache will promote each of the+-- cache clusters in the specified replication group to the primary role.+-- The nodes of all other cache clusters in the replication group will be+-- read replicas. mrgPrimaryClusterId :: Lens' ModifyReplicationGroup (Maybe Text)-mrgPrimaryClusterId =-    lens _mrgPrimaryClusterId (\s a -> s { _mrgPrimaryClusterId = a })---- | A description for the replication group. Maximum length is 255 characters.-mrgReplicationGroupDescription :: Lens' ModifyReplicationGroup (Maybe Text)-mrgReplicationGroupDescription =-    lens _mrgReplicationGroupDescription-        (\s a -> s { _mrgReplicationGroupDescription = a })---- | The identifier of the replication group to modify.-mrgReplicationGroupId :: Lens' ModifyReplicationGroup Text-mrgReplicationGroupId =-    lens _mrgReplicationGroupId (\s a -> s { _mrgReplicationGroupId = a })+mrgPrimaryClusterId = lens _mrgPrimaryClusterId (\ s a -> s{_mrgPrimaryClusterId = a}); --- | Specifies the VPC Security Groups associated with the cache clusters in the--- replication group.+-- | 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: ----- This parameter can be used only with replication group containing cache--- clusters running in an Amazon Virtual Private Cloud (VPC).-mrgSecurityGroupIds :: Lens' ModifyReplicationGroup [Text]-mrgSecurityGroupIds =-    lens _mrgSecurityGroupIds (\s a -> s { _mrgSecurityGroupIds = a })-        . _List+-- -   'sun'+-- -   'mon'+-- -   'tue'+-- -   'wed'+-- -   'thu'+-- -   'fri'+-- -   'sat'+--+-- Example: 'sun:05:00-sun:09:00'+mrgPreferredMaintenanceWindow :: Lens' ModifyReplicationGroup (Maybe Text)+mrgPreferredMaintenanceWindow = lens _mrgPreferredMaintenanceWindow (\ s a -> s{_mrgPreferredMaintenanceWindow = a}); --- | The number of days for which ElastiCache will retain automatic node group--- snapshots before deleting them. For example, if you set /SnapshotRetentionLimit/--- to 5, then a snapshot that was taken today will be retained for 5 days--- before being deleted.+-- | The number of days for which ElastiCache will retain automatic node+-- group snapshots before deleting them. For example, if you set+-- /SnapshotRetentionLimit/ to 5, then a snapshot that was taken today will+-- be retained for 5 days before being deleted. ----- Important--- If the value of SnapshotRetentionLimit is set to zero (0), backups--- are turned off.+-- __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 })+mrgSnapshotRetentionLimit = lens _mrgSnapshotRetentionLimit (\ s a -> s{_mrgSnapshotRetentionLimit = a}); --- | The daily time range (in UTC) during which ElastiCache will begin taking a--- daily snapshot of the node group specified by /SnapshottingClusterId/.------ Example: '05:00-09:00'+-- | The status of the Amazon SNS notification topic for the replication+-- group. Notifications are sent only if the status is /active/. ----- If you do not specify this parameter, then ElastiCache will automatically--- choose an appropriate time range.-mrgSnapshotWindow :: Lens' ModifyReplicationGroup (Maybe Text)-mrgSnapshotWindow =-    lens _mrgSnapshotWindow (\s a -> s { _mrgSnapshotWindow = a })+-- Valid values: 'active' | 'inactive'+mrgNotificationTopicStatus :: Lens' ModifyReplicationGroup (Maybe Text)+mrgNotificationTopicStatus = lens _mrgNotificationTopicStatus (\ s a -> s{_mrgNotificationTopicStatus = a}); --- | The cache cluster ID that will be used as the daily snapshot source for the+-- | 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 -- replication group.-mrgSnapshottingClusterId :: Lens' ModifyReplicationGroup (Maybe Text)-mrgSnapshottingClusterId =-    lens _mrgSnapshottingClusterId-        (\s a -> s { _mrgSnapshottingClusterId = a })--newtype ModifyReplicationGroupResponse = ModifyReplicationGroupResponse-    { _mrgrReplicationGroup :: Maybe ReplicationGroup-    } deriving (Eq, Read, Show)+--+-- If 'false', then changes to the nodes in the replication group are+-- applied on the next maintenance reboot, or the next failure reboot,+-- whichever occurs first.+--+-- Valid values: 'true' | 'false'+--+-- Default: 'false'+mrgApplyImmediately :: Lens' ModifyReplicationGroup (Maybe Bool)+mrgApplyImmediately = lens _mrgApplyImmediately (\ s a -> s{_mrgApplyImmediately = a}); --- | 'ModifyReplicationGroupResponse' constructor.+-- | The Amazon Resource Name (ARN) of the Amazon SNS topic to which+-- notifications will be sent. ----- The fields accessible through corresponding lenses are:+-- The Amazon SNS topic owner must be same as the replication group owner.+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. ----- * 'mrgrReplicationGroup' @::@ 'Maybe' 'ReplicationGroup'+-- This parameter can be used only with replication group containing cache+-- clusters running outside of an Amazon Virtual Private Cloud (VPC). ---modifyReplicationGroupResponse :: ModifyReplicationGroupResponse-modifyReplicationGroupResponse = ModifyReplicationGroupResponse-    { _mrgrReplicationGroup = Nothing-    }+-- 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; -mrgrReplicationGroup :: Lens' ModifyReplicationGroupResponse (Maybe ReplicationGroup)-mrgrReplicationGroup =-    lens _mrgrReplicationGroup (\s a -> s { _mrgrReplicationGroup = a })+-- | The identifier of the replication group to modify.+mrgReplicationGroupId :: Lens' ModifyReplicationGroup Text+mrgReplicationGroupId = lens _mrgReplicationGroupId (\ s a -> s{_mrgReplicationGroupId = a}); +instance AWSRequest ModifyReplicationGroup where+        type Sv ModifyReplicationGroup = ElastiCache+        type Rs ModifyReplicationGroup =+             ModifyReplicationGroupResponse+        request = postQuery+        response+          = receiveXMLWrapper "ModifyReplicationGroupResult"+              (\ s h x ->+                 ModifyReplicationGroupResponse' <$>+                   (x .@? "ReplicationGroup") <*> (pure (fromEnum s)))++instance ToHeaders ModifyReplicationGroup where+        toHeaders = const mempty+ instance ToPath ModifyReplicationGroup where-    toPath = const "/"+        toPath = const "/"  instance ToQuery ModifyReplicationGroup where-    toQuery ModifyReplicationGroup{..} = mconcat-        [ "ApplyImmediately"            =? _mrgApplyImmediately-        , "AutoMinorVersionUpgrade"     =? _mrgAutoMinorVersionUpgrade-        , "AutomaticFailoverEnabled"    =? _mrgAutomaticFailoverEnabled-        , "CacheParameterGroupName"     =? _mrgCacheParameterGroupName-        , "CacheSecurityGroupNames"     =? _mrgCacheSecurityGroupNames-        , "EngineVersion"               =? _mrgEngineVersion-        , "NotificationTopicArn"        =? _mrgNotificationTopicArn-        , "NotificationTopicStatus"     =? _mrgNotificationTopicStatus-        , "PreferredMaintenanceWindow"  =? _mrgPreferredMaintenanceWindow-        , "PrimaryClusterId"            =? _mrgPrimaryClusterId-        , "ReplicationGroupDescription" =? _mrgReplicationGroupDescription-        , "ReplicationGroupId"          =? _mrgReplicationGroupId-        , "SecurityGroupIds"            =? _mrgSecurityGroupIds-        , "SnapshotRetentionLimit"      =? _mrgSnapshotRetentionLimit-        , "SnapshotWindow"              =? _mrgSnapshotWindow-        , "SnapshottingClusterId"       =? _mrgSnapshottingClusterId-        ]+        toQuery ModifyReplicationGroup'{..}+          = mconcat+              ["Action" =:+                 ("ModifyReplicationGroup" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "AutomaticFailoverEnabled" =:+                 _mrgAutomaticFailoverEnabled,+               "EngineVersion" =: _mrgEngineVersion,+               "SnapshottingClusterId" =: _mrgSnapshottingClusterId,+               "SecurityGroupIds" =:+                 toQuery+                   (toQueryList "SecurityGroupId" <$>+                      _mrgSecurityGroupIds),+               "AutoMinorVersionUpgrade" =:+                 _mrgAutoMinorVersionUpgrade,+               "ReplicationGroupDescription" =:+                 _mrgReplicationGroupDescription,+               "CacheParameterGroupName" =:+                 _mrgCacheParameterGroupName,+               "SnapshotWindow" =: _mrgSnapshotWindow,+               "PrimaryClusterId" =: _mrgPrimaryClusterId,+               "PreferredMaintenanceWindow" =:+                 _mrgPreferredMaintenanceWindow,+               "SnapshotRetentionLimit" =:+                 _mrgSnapshotRetentionLimit,+               "NotificationTopicStatus" =:+                 _mrgNotificationTopicStatus,+               "ApplyImmediately" =: _mrgApplyImmediately,+               "NotificationTopicArn" =: _mrgNotificationTopicARN,+               "CacheSecurityGroupNames" =:+                 toQuery+                   (toQueryList "CacheSecurityGroupName" <$>+                      _mrgCacheSecurityGroupNames),+               "ReplicationGroupId" =: _mrgReplicationGroupId] -instance ToHeaders ModifyReplicationGroup+-- | /See:/ 'modifyReplicationGroupResponse' smart constructor.+data ModifyReplicationGroupResponse = ModifyReplicationGroupResponse'+    { _mrgrsReplicationGroup :: !(Maybe ReplicationGroup)+    , _mrgrsStatus           :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest ModifyReplicationGroup where-    type Sv ModifyReplicationGroup = ElastiCache-    type Rs ModifyReplicationGroup = ModifyReplicationGroupResponse+-- | 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:+--+-- * 'mrgrsReplicationGroup'+--+-- * 'mrgrsStatus'+modifyReplicationGroupResponse+    :: Int -- ^ 'mrgrsStatus'+    -> ModifyReplicationGroupResponse+modifyReplicationGroupResponse pStatus_ =+    ModifyReplicationGroupResponse'+    { _mrgrsReplicationGroup = Nothing+    , _mrgrsStatus = pStatus_+    } -    request  = post "ModifyReplicationGroup"-    response = xmlResponse+-- | Undocumented member.+mrgrsReplicationGroup :: Lens' ModifyReplicationGroupResponse (Maybe ReplicationGroup)+mrgrsReplicationGroup = lens _mrgrsReplicationGroup (\ s a -> s{_mrgrsReplicationGroup = a}); -instance FromXML ModifyReplicationGroupResponse where-    parseXML = withElement "ModifyReplicationGroupResult" $ \x -> ModifyReplicationGroupResponse-        <$> x .@? "ReplicationGroup"+-- | The response status code.+mrgrsStatus :: Lens' ModifyReplicationGroupResponse Int+mrgrsStatus = lens _mrgrsStatus (\ s a -> s{_mrgrsStatus = a});
gen/Network/AWS/ElastiCache/PurchaseReservedCacheNodesOffering.hs view
@@ -1,140 +1,157 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.PurchaseReservedCacheNodesOffering--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /PurchaseReservedCacheNodesOffering/ action allows you to purchase a+-- The /PurchaseReservedCacheNodesOffering/ action allows you to purchase a -- reserved cache node offering. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_PurchaseReservedCacheNodesOffering.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_PurchaseReservedCacheNodesOffering.html AWS API Reference> for PurchaseReservedCacheNodesOffering. module Network.AWS.ElastiCache.PurchaseReservedCacheNodesOffering     (-    -- * Request-      PurchaseReservedCacheNodesOffering-    -- ** Request constructor-    , purchaseReservedCacheNodesOffering-    -- ** Request lenses+    -- * Creating a Request+      purchaseReservedCacheNodesOffering+    , PurchaseReservedCacheNodesOffering+    -- * Request Lenses     , prcnoCacheNodeCount     , prcnoReservedCacheNodeId     , prcnoReservedCacheNodesOfferingId -    -- * Response-    , PurchaseReservedCacheNodesOfferingResponse-    -- ** Response constructor+    -- * Destructuring the Response     , purchaseReservedCacheNodesOfferingResponse-    -- ** Response lenses-    , prcnorReservedCacheNode+    , PurchaseReservedCacheNodesOfferingResponse+    -- * Response Lenses+    , prcnorsReservedCacheNode+    , prcnorsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data PurchaseReservedCacheNodesOffering = PurchaseReservedCacheNodesOffering-    { _prcnoCacheNodeCount               :: Maybe Int-    , _prcnoReservedCacheNodeId          :: Maybe Text-    , _prcnoReservedCacheNodesOfferingId :: Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'PurchaseReservedCacheNodesOffering' constructor.+-- | Represents the input of a /PurchaseReservedCacheNodesOffering/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'purchaseReservedCacheNodesOffering' smart constructor.+data PurchaseReservedCacheNodesOffering = PurchaseReservedCacheNodesOffering'+    { _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. ----- * 'prcnoCacheNodeCount' @::@ 'Maybe' 'Int'+-- Use one of the following lenses to modify other fields as desired: ----- * 'prcnoReservedCacheNodeId' @::@ 'Maybe' 'Text'+-- * 'prcnoCacheNodeCount' ----- * 'prcnoReservedCacheNodesOfferingId' @::@ 'Text'+-- * 'prcnoReservedCacheNodeId' ---purchaseReservedCacheNodesOffering :: Text -- ^ 'prcnoReservedCacheNodesOfferingId'-                                   -> PurchaseReservedCacheNodesOffering-purchaseReservedCacheNodesOffering p1 = PurchaseReservedCacheNodesOffering-    { _prcnoReservedCacheNodesOfferingId = p1-    , _prcnoReservedCacheNodeId          = Nothing-    , _prcnoCacheNodeCount               = Nothing+-- * 'prcnoReservedCacheNodesOfferingId'+purchaseReservedCacheNodesOffering+    :: Text -- ^ 'prcnoReservedCacheNodesOfferingId'+    -> PurchaseReservedCacheNodesOffering+purchaseReservedCacheNodesOffering 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 })+prcnoCacheNodeCount = lens _prcnoCacheNodeCount (\ s a -> s{_prcnoCacheNodeCount = a});  -- | A customer-specified identifier to track this reservation. -- -- Example: myreservationID prcnoReservedCacheNodeId :: Lens' PurchaseReservedCacheNodesOffering (Maybe Text)-prcnoReservedCacheNodeId =-    lens _prcnoReservedCacheNodeId-        (\s a -> s { _prcnoReservedCacheNodeId = a })+prcnoReservedCacheNodeId = lens _prcnoReservedCacheNodeId (\ s a -> s{_prcnoReservedCacheNodeId = a});  -- | The ID of the reserved cache node offering to purchase. -- -- Example: 438012d3-4052-4cc7-b2e3-8d3372e0e706 prcnoReservedCacheNodesOfferingId :: Lens' PurchaseReservedCacheNodesOffering Text-prcnoReservedCacheNodesOfferingId =-    lens _prcnoReservedCacheNodesOfferingId-        (\s a -> s { _prcnoReservedCacheNodesOfferingId = a })--newtype PurchaseReservedCacheNodesOfferingResponse = PurchaseReservedCacheNodesOfferingResponse-    { _prcnorReservedCacheNode :: Maybe ReservedCacheNode-    } deriving (Eq, Read, Show)+prcnoReservedCacheNodesOfferingId = lens _prcnoReservedCacheNodesOfferingId (\ s a -> s{_prcnoReservedCacheNodesOfferingId = a}); --- | 'PurchaseReservedCacheNodesOfferingResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'prcnorReservedCacheNode' @::@ 'Maybe' 'ReservedCacheNode'----purchaseReservedCacheNodesOfferingResponse :: PurchaseReservedCacheNodesOfferingResponse-purchaseReservedCacheNodesOfferingResponse = PurchaseReservedCacheNodesOfferingResponse-    { _prcnorReservedCacheNode = Nothing-    }+instance AWSRequest+         PurchaseReservedCacheNodesOffering where+        type Sv PurchaseReservedCacheNodesOffering =+             ElastiCache+        type Rs PurchaseReservedCacheNodesOffering =+             PurchaseReservedCacheNodesOfferingResponse+        request = postQuery+        response+          = receiveXMLWrapper+              "PurchaseReservedCacheNodesOfferingResult"+              (\ s h x ->+                 PurchaseReservedCacheNodesOfferingResponse' <$>+                   (x .@? "ReservedCacheNode") <*> (pure (fromEnum s))) -prcnorReservedCacheNode :: Lens' PurchaseReservedCacheNodesOfferingResponse (Maybe ReservedCacheNode)-prcnorReservedCacheNode =-    lens _prcnorReservedCacheNode (\s a -> s { _prcnorReservedCacheNode = a })+instance ToHeaders PurchaseReservedCacheNodesOffering+         where+        toHeaders = const mempty -instance ToPath PurchaseReservedCacheNodesOffering where-    toPath = const "/"+instance ToPath PurchaseReservedCacheNodesOffering+         where+        toPath = const "/" -instance ToQuery PurchaseReservedCacheNodesOffering where-    toQuery PurchaseReservedCacheNodesOffering{..} = mconcat-        [ "CacheNodeCount"               =? _prcnoCacheNodeCount-        , "ReservedCacheNodeId"          =? _prcnoReservedCacheNodeId-        , "ReservedCacheNodesOfferingId" =? _prcnoReservedCacheNodesOfferingId-        ]+instance ToQuery PurchaseReservedCacheNodesOffering+         where+        toQuery PurchaseReservedCacheNodesOffering'{..}+          = mconcat+              ["Action" =:+                 ("PurchaseReservedCacheNodesOffering" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "CacheNodeCount" =: _prcnoCacheNodeCount,+               "ReservedCacheNodeId" =: _prcnoReservedCacheNodeId,+               "ReservedCacheNodesOfferingId" =:+                 _prcnoReservedCacheNodesOfferingId] -instance ToHeaders PurchaseReservedCacheNodesOffering+-- | /See:/ 'purchaseReservedCacheNodesOfferingResponse' smart constructor.+data PurchaseReservedCacheNodesOfferingResponse = PurchaseReservedCacheNodesOfferingResponse'+    { _prcnorsReservedCacheNode :: !(Maybe ReservedCacheNode)+    , _prcnorsStatus            :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest PurchaseReservedCacheNodesOffering where-    type Sv PurchaseReservedCacheNodesOffering = ElastiCache-    type Rs PurchaseReservedCacheNodesOffering = PurchaseReservedCacheNodesOfferingResponse+-- | 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:+--+-- * 'prcnorsReservedCacheNode'+--+-- * 'prcnorsStatus'+purchaseReservedCacheNodesOfferingResponse+    :: Int -- ^ 'prcnorsStatus'+    -> PurchaseReservedCacheNodesOfferingResponse+purchaseReservedCacheNodesOfferingResponse pStatus_ =+    PurchaseReservedCacheNodesOfferingResponse'+    { _prcnorsReservedCacheNode = Nothing+    , _prcnorsStatus = pStatus_+    } -    request  = post "PurchaseReservedCacheNodesOffering"-    response = xmlResponse+-- | Undocumented member.+prcnorsReservedCacheNode :: Lens' PurchaseReservedCacheNodesOfferingResponse (Maybe ReservedCacheNode)+prcnorsReservedCacheNode = lens _prcnorsReservedCacheNode (\ s a -> s{_prcnorsReservedCacheNode = a}); -instance FromXML PurchaseReservedCacheNodesOfferingResponse where-    parseXML = withElement "PurchaseReservedCacheNodesOfferingResult" $ \x -> PurchaseReservedCacheNodesOfferingResponse-        <$> x .@? "ReservedCacheNode"+-- | The response status code.+prcnorsStatus :: Lens' PurchaseReservedCacheNodesOfferingResponse Int+prcnorsStatus = lens _prcnorsStatus (\ s a -> s{_prcnorsStatus = a});
gen/Network/AWS/ElastiCache/RebootCacheCluster.hs view
@@ -1,131 +1,146 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.RebootCacheCluster--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /RebootCacheCluster/ action reboots some, or all, of the cache nodes within--- a provisioned cache cluster. This API will apply any modified cache parameter--- groups to the cache cluster. The reboot action 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.+-- The /RebootCacheCluster/ action reboots some, or all, of the cache nodes+-- within a provisioned cache cluster. This API will apply any modified+-- cache parameter groups to the cache cluster. The reboot action 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. -- -- 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. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_RebootCacheCluster.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_RebootCacheCluster.html AWS API Reference> for RebootCacheCluster. module Network.AWS.ElastiCache.RebootCacheCluster     (-    -- * Request-      RebootCacheCluster-    -- ** Request constructor-    , rebootCacheCluster-    -- ** Request lenses+    -- * Creating a Request+      rebootCacheCluster+    , RebootCacheCluster+    -- * Request Lenses     , rccCacheClusterId     , rccCacheNodeIdsToReboot -    -- * Response-    , RebootCacheClusterResponse-    -- ** Response constructor+    -- * Destructuring the Response     , rebootCacheClusterResponse-    -- ** Response lenses-    , rccrCacheCluster+    , RebootCacheClusterResponse+    -- * Response Lenses+    , rccrsCacheCluster+    , rccrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data RebootCacheCluster = RebootCacheCluster-    { _rccCacheClusterId       :: Text-    , _rccCacheNodeIdsToReboot :: List "member" Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'RebootCacheCluster' constructor.+-- | Represents the input of a /RebootCacheCluster/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'rebootCacheCluster' smart constructor.+data RebootCacheCluster = RebootCacheCluster'+    { _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. ----- * 'rccCacheClusterId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'rccCacheNodeIdsToReboot' @::@ ['Text']+-- * 'rccCacheClusterId' ---rebootCacheCluster :: Text -- ^ 'rccCacheClusterId'-                   -> RebootCacheCluster-rebootCacheCluster p1 = RebootCacheCluster-    { _rccCacheClusterId       = p1+-- * 'rccCacheNodeIdsToReboot'+rebootCacheCluster+    :: Text -- ^ 'rccCacheClusterId'+    -> RebootCacheCluster+rebootCacheCluster pCacheClusterId_ =+    RebootCacheCluster'+    { _rccCacheClusterId = pCacheClusterId_     , _rccCacheNodeIdsToReboot = mempty     } --- | The cache cluster identifier. This parameter is stored as a lowercase string.+-- | The cache cluster identifier. This parameter is stored as a lowercase+-- string. rccCacheClusterId :: Lens' RebootCacheCluster Text-rccCacheClusterId =-    lens _rccCacheClusterId (\s a -> s { _rccCacheClusterId = a })+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 cache cluster, specify all of+-- the cache node IDs. rccCacheNodeIdsToReboot :: Lens' RebootCacheCluster [Text]-rccCacheNodeIdsToReboot =-    lens _rccCacheNodeIdsToReboot (\s a -> s { _rccCacheNodeIdsToReboot = a })-        . _List--newtype RebootCacheClusterResponse = RebootCacheClusterResponse-    { _rccrCacheCluster :: Maybe CacheCluster-    } deriving (Eq, Read, Show)+rccCacheNodeIdsToReboot = lens _rccCacheNodeIdsToReboot (\ s a -> s{_rccCacheNodeIdsToReboot = a}) . _Coerce; --- | 'RebootCacheClusterResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'rccrCacheCluster' @::@ 'Maybe' 'CacheCluster'----rebootCacheClusterResponse :: RebootCacheClusterResponse-rebootCacheClusterResponse = RebootCacheClusterResponse-    { _rccrCacheCluster = Nothing-    }+instance AWSRequest RebootCacheCluster where+        type Sv RebootCacheCluster = ElastiCache+        type Rs RebootCacheCluster =+             RebootCacheClusterResponse+        request = postQuery+        response+          = receiveXMLWrapper "RebootCacheClusterResult"+              (\ s h x ->+                 RebootCacheClusterResponse' <$>+                   (x .@? "CacheCluster") <*> (pure (fromEnum s))) -rccrCacheCluster :: Lens' RebootCacheClusterResponse (Maybe CacheCluster)-rccrCacheCluster = lens _rccrCacheCluster (\s a -> s { _rccrCacheCluster = a })+instance ToHeaders RebootCacheCluster where+        toHeaders = const mempty  instance ToPath RebootCacheCluster where-    toPath = const "/"+        toPath = const "/"  instance ToQuery RebootCacheCluster where-    toQuery RebootCacheCluster{..} = mconcat-        [ "CacheClusterId"       =? _rccCacheClusterId-        , "CacheNodeIdsToReboot" =? _rccCacheNodeIdsToReboot-        ]+        toQuery RebootCacheCluster'{..}+          = mconcat+              ["Action" =: ("RebootCacheCluster" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "CacheClusterId" =: _rccCacheClusterId,+               "CacheNodeIdsToReboot" =:+                 toQueryList "CacheNodeId" _rccCacheNodeIdsToReboot] -instance ToHeaders RebootCacheCluster+-- | /See:/ 'rebootCacheClusterResponse' smart constructor.+data RebootCacheClusterResponse = RebootCacheClusterResponse'+    { _rccrsCacheCluster :: !(Maybe CacheCluster)+    , _rccrsStatus       :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest RebootCacheCluster where-    type Sv RebootCacheCluster = ElastiCache-    type Rs RebootCacheCluster = RebootCacheClusterResponse+-- | 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:+--+-- * 'rccrsCacheCluster'+--+-- * 'rccrsStatus'+rebootCacheClusterResponse+    :: Int -- ^ 'rccrsStatus'+    -> RebootCacheClusterResponse+rebootCacheClusterResponse pStatus_ =+    RebootCacheClusterResponse'+    { _rccrsCacheCluster = Nothing+    , _rccrsStatus = pStatus_+    } -    request  = post "RebootCacheCluster"-    response = xmlResponse+-- | Undocumented member.+rccrsCacheCluster :: Lens' RebootCacheClusterResponse (Maybe CacheCluster)+rccrsCacheCluster = lens _rccrsCacheCluster (\ s a -> s{_rccrsCacheCluster = a}); -instance FromXML RebootCacheClusterResponse where-    parseXML = withElement "RebootCacheClusterResult" $ \x -> RebootCacheClusterResponse-        <$> x .@? "CacheCluster"+-- | The response status code.+rccrsStatus :: Lens' RebootCacheClusterResponse Int+rccrsStatus = lens _rccrsStatus (\ s a -> s{_rccrsStatus = a});
gen/Network/AWS/ElastiCache/RemoveTagsFromResource.hs view
@@ -1,129 +1,105 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.RemoveTagsFromResource--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /RemoveTagsFromResource/ action removes the tags identified by the 'TagKeys'--- list from the named resource.+-- The /RemoveTagsFromResource/ action removes the tags identified by the+-- 'TagKeys' list from the named resource. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_RemoveTagsFromResource.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_RemoveTagsFromResource.html AWS API Reference> for RemoveTagsFromResource. module Network.AWS.ElastiCache.RemoveTagsFromResource     (-    -- * Request-      RemoveTagsFromResource-    -- ** Request constructor-    , removeTagsFromResource-    -- ** Request lenses+    -- * Creating a Request+      removeTagsFromResource+    , RemoveTagsFromResource+    -- * Request Lenses     , rtfrResourceName     , rtfrTagKeys -    -- * Response-    , RemoveTagsFromResourceResponse-    -- ** Response constructor-    , removeTagsFromResourceResponse-    -- ** Response lenses-    , rtfrrTagList+    -- * Destructuring the Response+    , tagListMessage+    , TagListMessage+    -- * Response Lenses+    , tlmTagList     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data RemoveTagsFromResource = RemoveTagsFromResource-    { _rtfrResourceName :: Text-    , _rtfrTagKeys      :: List "member" Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'RemoveTagsFromResource' constructor.+-- | Represents the input of a /RemoveTagsFromResource/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'removeTagsFromResource' smart constructor.+data RemoveTagsFromResource = RemoveTagsFromResource'+    { _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. ----- * 'rtfrResourceName' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'rtfrTagKeys' @::@ ['Text']+-- * 'rtfrResourceName' ---removeTagsFromResource :: Text -- ^ 'rtfrResourceName'-                       -> RemoveTagsFromResource-removeTagsFromResource p1 = RemoveTagsFromResource-    { _rtfrResourceName = p1-    , _rtfrTagKeys      = mempty+-- * 'rtfrTagKeys'+removeTagsFromResource+    :: Text -- ^ 'rtfrResourceName'+    -> RemoveTagsFromResource+removeTagsFromResource pResourceName_ =+    RemoveTagsFromResource'+    { _rtfrResourceName = pResourceName_+    , _rtfrTagKeys = mempty     }  -- | The name of the ElastiCache resource from which you want the listed tags--- removed, for example 'arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster'.+-- removed, for example+-- 'arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster'. rtfrResourceName :: Lens' RemoveTagsFromResource Text-rtfrResourceName = lens _rtfrResourceName (\s a -> s { _rtfrResourceName = a })+rtfrResourceName = lens _rtfrResourceName (\ s a -> s{_rtfrResourceName = a});  -- | A list of 'TagKeys' identifying the tags you want removed from the named--- resource. For example, 'TagKeys.member.1=Region' removes the cost allocation--- tag with the key name 'Region' from the resource named by the /ResourceName/--- parameter.+-- resource. For example, 'TagKeys.member.1=Region' removes the cost+-- allocation tag with the key name 'Region' from the resource named by the+-- /ResourceName/ parameter. rtfrTagKeys :: Lens' RemoveTagsFromResource [Text]-rtfrTagKeys = lens _rtfrTagKeys (\s a -> s { _rtfrTagKeys = a }) . _List--newtype RemoveTagsFromResourceResponse = RemoveTagsFromResourceResponse-    { _rtfrrTagList :: List "member" Tag-    } deriving (Eq, Read, Show, Monoid, Semigroup)--instance GHC.Exts.IsList RemoveTagsFromResourceResponse where-    type Item RemoveTagsFromResourceResponse = Tag--    fromList = RemoveTagsFromResourceResponse . GHC.Exts.fromList-    toList   = GHC.Exts.toList . _rtfrrTagList+rtfrTagKeys = lens _rtfrTagKeys (\ s a -> s{_rtfrTagKeys = a}) . _Coerce; --- | 'RemoveTagsFromResourceResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'rtfrrTagList' @::@ ['Tag']----removeTagsFromResourceResponse :: RemoveTagsFromResourceResponse-removeTagsFromResourceResponse = RemoveTagsFromResourceResponse-    { _rtfrrTagList = mempty-    }+instance AWSRequest RemoveTagsFromResource where+        type Sv RemoveTagsFromResource = ElastiCache+        type Rs RemoveTagsFromResource = TagListMessage+        request = postQuery+        response+          = receiveXMLWrapper "RemoveTagsFromResourceResult"+              (\ s h x -> parseXML x) --- | A list of cost allocation tags as key-value pairs.-rtfrrTagList :: Lens' RemoveTagsFromResourceResponse [Tag]-rtfrrTagList = lens _rtfrrTagList (\s a -> s { _rtfrrTagList = a }) . _List+instance ToHeaders RemoveTagsFromResource where+        toHeaders = const mempty  instance ToPath RemoveTagsFromResource where-    toPath = const "/"+        toPath = const "/"  instance ToQuery RemoveTagsFromResource where-    toQuery RemoveTagsFromResource{..} = mconcat-        [ "ResourceName" =? _rtfrResourceName-        , "TagKeys"      =? _rtfrTagKeys-        ]--instance ToHeaders RemoveTagsFromResource--instance AWSRequest RemoveTagsFromResource where-    type Sv RemoveTagsFromResource = ElastiCache-    type Rs RemoveTagsFromResource = RemoveTagsFromResourceResponse--    request  = post "RemoveTagsFromResource"-    response = xmlResponse--instance FromXML RemoveTagsFromResourceResponse where-    parseXML = withElement "RemoveTagsFromResourceResult" $ \x -> RemoveTagsFromResourceResponse-        <$> x .@? "TagList" .!@ mempty+        toQuery RemoveTagsFromResource'{..}+          = mconcat+              ["Action" =:+                 ("RemoveTagsFromResource" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "ResourceName" =: _rtfrResourceName,+               "TagKeys" =: toQueryList "member" _rtfrTagKeys]
gen/Network/AWS/ElastiCache/ResetCacheParameterGroup.hs view
@@ -1,143 +1,122 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.ResetCacheParameterGroup--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /ResetCacheParameterGroup/ action modifies the parameters of a cache--- parameter group to the engine or system default value. You can reset specific--- parameters by submitting a list of parameter names. To reset the entire cache--- parameter group, specify the /ResetAllParameters/ and /CacheParameterGroupName/--- parameters.+-- The /ResetCacheParameterGroup/ action modifies the parameters of a cache+-- parameter group to the engine or system default value. You can reset+-- specific parameters by submitting a list of parameter names. To reset+-- the entire cache parameter group, specify the /ResetAllParameters/ and+-- /CacheParameterGroupName/ parameters. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ResetCacheParameterGroup.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ResetCacheParameterGroup.html AWS API Reference> for ResetCacheParameterGroup. module Network.AWS.ElastiCache.ResetCacheParameterGroup     (-    -- * Request-      ResetCacheParameterGroup-    -- ** Request constructor-    , resetCacheParameterGroup-    -- ** Request lenses+    -- * Creating a Request+      resetCacheParameterGroup+    , ResetCacheParameterGroup+    -- * Request Lenses+    , rcpgResetAllParameters     , rcpgCacheParameterGroupName     , rcpgParameterNameValues-    , rcpgResetAllParameters -    -- * Response-    , ResetCacheParameterGroupResponse-    -- ** Response constructor-    , resetCacheParameterGroupResponse-    -- ** Response lenses-    , rcpgrCacheParameterGroupName+    -- * Destructuring the Response+    , cacheParameterGroupNameMessage+    , CacheParameterGroupNameMessage+    -- * Response Lenses+    , cpgnmCacheParameterGroupName     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data ResetCacheParameterGroup = ResetCacheParameterGroup-    { _rcpgCacheParameterGroupName :: Text-    , _rcpgParameterNameValues     :: List "member" ParameterNameValue-    , _rcpgResetAllParameters      :: Maybe Bool-    } deriving (Eq, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'ResetCacheParameterGroup' constructor.+-- | Represents the input of a /ResetCacheParameterGroup/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'resetCacheParameterGroup' smart constructor.+data ResetCacheParameterGroup = ResetCacheParameterGroup'+    { _rcpgResetAllParameters      :: !(Maybe Bool)+    , _rcpgCacheParameterGroupName :: !Text+    , _rcpgParameterNameValues     :: ![ParameterNameValue]+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ResetCacheParameterGroup' with the minimum fields required to make a request. ----- * 'rcpgCacheParameterGroupName' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'rcpgParameterNameValues' @::@ ['ParameterNameValue']+-- * 'rcpgResetAllParameters' ----- * 'rcpgResetAllParameters' @::@ 'Maybe' 'Bool'+-- * 'rcpgCacheParameterGroupName' ---resetCacheParameterGroup :: Text -- ^ 'rcpgCacheParameterGroupName'-                         -> ResetCacheParameterGroup-resetCacheParameterGroup p1 = ResetCacheParameterGroup-    { _rcpgCacheParameterGroupName = p1-    , _rcpgResetAllParameters      = Nothing-    , _rcpgParameterNameValues     = mempty+-- * 'rcpgParameterNameValues'+resetCacheParameterGroup+    :: Text -- ^ 'rcpgCacheParameterGroupName'+    -> ResetCacheParameterGroup+resetCacheParameterGroup pCacheParameterGroupName_ =+    ResetCacheParameterGroup'+    { _rcpgResetAllParameters = Nothing+    , _rcpgCacheParameterGroupName = pCacheParameterGroupName_+    , _rcpgParameterNameValues = mempty     } --- | The name of the cache parameter group to reset.-rcpgCacheParameterGroupName :: Lens' ResetCacheParameterGroup Text-rcpgCacheParameterGroupName =-    lens _rcpgCacheParameterGroupName-        (\s a -> s { _rcpgCacheParameterGroupName = a })---- | An array of parameter names to be reset. If you are not resetting the entire--- cache parameter group, you must specify at least one parameter name.-rcpgParameterNameValues :: Lens' ResetCacheParameterGroup [ParameterNameValue]-rcpgParameterNameValues =-    lens _rcpgParameterNameValues (\s a -> s { _rcpgParameterNameValues = a })-        . _List---- | If /true/, all parameters in the cache parameter group will be reset to default--- values. If /false/, no such action occurs.+-- | If /true/, all parameters in the cache parameter group will be reset to+-- default values. If /false/, no such action occurs. -- -- Valid values: 'true' | 'false' rcpgResetAllParameters :: Lens' ResetCacheParameterGroup (Maybe Bool)-rcpgResetAllParameters =-    lens _rcpgResetAllParameters (\s a -> s { _rcpgResetAllParameters = a })+rcpgResetAllParameters = lens _rcpgResetAllParameters (\ s a -> s{_rcpgResetAllParameters = a}); -newtype ResetCacheParameterGroupResponse = ResetCacheParameterGroupResponse-    { _rcpgrCacheParameterGroupName :: Maybe Text-    } deriving (Eq, Ord, Read, Show, Monoid)+-- | The name of the cache parameter group to reset.+rcpgCacheParameterGroupName :: Lens' ResetCacheParameterGroup Text+rcpgCacheParameterGroupName = lens _rcpgCacheParameterGroupName (\ s a -> s{_rcpgCacheParameterGroupName = a}); --- | 'ResetCacheParameterGroupResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'rcpgrCacheParameterGroupName' @::@ 'Maybe' 'Text'----resetCacheParameterGroupResponse :: ResetCacheParameterGroupResponse-resetCacheParameterGroupResponse = ResetCacheParameterGroupResponse-    { _rcpgrCacheParameterGroupName = Nothing-    }+-- | An array of parameter names to be reset. If you are not resetting the+-- entire cache parameter group, you must specify at least one parameter+-- name.+rcpgParameterNameValues :: Lens' ResetCacheParameterGroup [ParameterNameValue]+rcpgParameterNameValues = lens _rcpgParameterNameValues (\ s a -> s{_rcpgParameterNameValues = a}) . _Coerce; --- | The name of the cache parameter group.-rcpgrCacheParameterGroupName :: Lens' ResetCacheParameterGroupResponse (Maybe Text)-rcpgrCacheParameterGroupName =-    lens _rcpgrCacheParameterGroupName-        (\s a -> s { _rcpgrCacheParameterGroupName = a })+instance AWSRequest ResetCacheParameterGroup where+        type Sv ResetCacheParameterGroup = ElastiCache+        type Rs ResetCacheParameterGroup =+             CacheParameterGroupNameMessage+        request = postQuery+        response+          = receiveXMLWrapper "ResetCacheParameterGroupResult"+              (\ s h x -> parseXML x) +instance ToHeaders ResetCacheParameterGroup where+        toHeaders = const mempty+ instance ToPath ResetCacheParameterGroup where-    toPath = const "/"+        toPath = const "/"  instance ToQuery ResetCacheParameterGroup where-    toQuery ResetCacheParameterGroup{..} = mconcat-        [ "CacheParameterGroupName" =? _rcpgCacheParameterGroupName-        , "ParameterNameValues"     =? _rcpgParameterNameValues-        , "ResetAllParameters"      =? _rcpgResetAllParameters-        ]--instance ToHeaders ResetCacheParameterGroup--instance AWSRequest ResetCacheParameterGroup where-    type Sv ResetCacheParameterGroup = ElastiCache-    type Rs ResetCacheParameterGroup = ResetCacheParameterGroupResponse--    request  = post "ResetCacheParameterGroup"-    response = xmlResponse--instance FromXML ResetCacheParameterGroupResponse where-    parseXML = withElement "ResetCacheParameterGroupResult" $ \x -> ResetCacheParameterGroupResponse-        <$> x .@? "CacheParameterGroupName"+        toQuery ResetCacheParameterGroup'{..}+          = mconcat+              ["Action" =:+                 ("ResetCacheParameterGroup" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "ResetAllParameters" =: _rcpgResetAllParameters,+               "CacheParameterGroupName" =:+                 _rcpgCacheParameterGroupName,+               "ParameterNameValues" =:+                 toQueryList "ParameterNameValue"+                   _rcpgParameterNameValues]
gen/Network/AWS/ElastiCache/RevokeCacheSecurityGroupIngress.hs view
@@ -1,141 +1,155 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# 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.RevokeCacheSecurityGroupIngress--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | The /RevokeCacheSecurityGroupIngress/ action revokes ingress from a cache--- security group. Use this action to disallow access from an Amazon EC2--- security group that had been previously authorized.+-- The /RevokeCacheSecurityGroupIngress/ action revokes ingress from a+-- cache security group. Use this action to disallow access from an Amazon+-- EC2 security group that had been previously authorized. ----- <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_RevokeCacheSecurityGroupIngress.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_RevokeCacheSecurityGroupIngress.html AWS API Reference> for RevokeCacheSecurityGroupIngress. module Network.AWS.ElastiCache.RevokeCacheSecurityGroupIngress     (-    -- * Request-      RevokeCacheSecurityGroupIngress-    -- ** Request constructor-    , revokeCacheSecurityGroupIngress-    -- ** Request lenses+    -- * Creating a Request+      revokeCacheSecurityGroupIngress+    , RevokeCacheSecurityGroupIngress+    -- * Request Lenses     , rcsgiCacheSecurityGroupName     , rcsgiEC2SecurityGroupName     , rcsgiEC2SecurityGroupOwnerId -    -- * Response-    , RevokeCacheSecurityGroupIngressResponse-    -- ** Response constructor+    -- * Destructuring the Response     , revokeCacheSecurityGroupIngressResponse-    -- ** Response lenses-    , rcsgirCacheSecurityGroup+    , RevokeCacheSecurityGroupIngressResponse+    -- * Response Lenses+    , rcsgirsCacheSecurityGroup+    , rcsgirsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.Query-import Network.AWS.ElastiCache.Types-import qualified GHC.Exts--data RevokeCacheSecurityGroupIngress = RevokeCacheSecurityGroupIngress-    { _rcsgiCacheSecurityGroupName  :: Text-    , _rcsgiEC2SecurityGroupName    :: Text-    , _rcsgiEC2SecurityGroupOwnerId :: Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.ElastiCache.Types+import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'RevokeCacheSecurityGroupIngress' constructor.+-- | Represents the input of a /RevokeCacheSecurityGroupIngress/ action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'revokeCacheSecurityGroupIngress' smart constructor.+data RevokeCacheSecurityGroupIngress = RevokeCacheSecurityGroupIngress'+    { _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. ----- * 'rcsgiCacheSecurityGroupName' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'rcsgiEC2SecurityGroupName' @::@ 'Text'+-- * 'rcsgiCacheSecurityGroupName' ----- * 'rcsgiEC2SecurityGroupOwnerId' @::@ 'Text'+-- * 'rcsgiEC2SecurityGroupName' ---revokeCacheSecurityGroupIngress :: Text -- ^ 'rcsgiCacheSecurityGroupName'-                                -> Text -- ^ 'rcsgiEC2SecurityGroupName'-                                -> Text -- ^ 'rcsgiEC2SecurityGroupOwnerId'-                                -> RevokeCacheSecurityGroupIngress-revokeCacheSecurityGroupIngress p1 p2 p3 = RevokeCacheSecurityGroupIngress-    { _rcsgiCacheSecurityGroupName  = p1-    , _rcsgiEC2SecurityGroupName    = p2-    , _rcsgiEC2SecurityGroupOwnerId = p3+-- * 'rcsgiEC2SecurityGroupOwnerId'+revokeCacheSecurityGroupIngress+    :: Text -- ^ 'rcsgiCacheSecurityGroupName'+    -> Text -- ^ 'rcsgiEC2SecurityGroupName'+    -> Text -- ^ 'rcsgiEC2SecurityGroupOwnerId'+    -> RevokeCacheSecurityGroupIngress+revokeCacheSecurityGroupIngress pCacheSecurityGroupName_ pEC2SecurityGroupName_ 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 })+rcsgiCacheSecurityGroupName = lens _rcsgiCacheSecurityGroupName (\ s a -> s{_rcsgiCacheSecurityGroupName = a});  -- | The name of the Amazon EC2 security group to revoke access from. rcsgiEC2SecurityGroupName :: Lens' RevokeCacheSecurityGroupIngress Text-rcsgiEC2SecurityGroupName =-    lens _rcsgiEC2SecurityGroupName-        (\s a -> s { _rcsgiEC2SecurityGroupName = a })+rcsgiEC2SecurityGroupName = lens _rcsgiEC2SecurityGroupName (\ s a -> s{_rcsgiEC2SecurityGroupName = a}); --- | The AWS account number of the Amazon EC2 security group owner. Note that this--- is not the same thing as an AWS access key ID - you must provide a valid AWS--- account number for this parameter.+-- | The AWS account number of the Amazon EC2 security group owner. Note that+-- this is not the same thing as an AWS access key ID - you must provide a+-- valid AWS account number for this parameter. rcsgiEC2SecurityGroupOwnerId :: Lens' RevokeCacheSecurityGroupIngress Text-rcsgiEC2SecurityGroupOwnerId =-    lens _rcsgiEC2SecurityGroupOwnerId-        (\s a -> s { _rcsgiEC2SecurityGroupOwnerId = a })--newtype RevokeCacheSecurityGroupIngressResponse = RevokeCacheSecurityGroupIngressResponse-    { _rcsgirCacheSecurityGroup :: Maybe CacheSecurityGroup-    } deriving (Eq, Read, Show)+rcsgiEC2SecurityGroupOwnerId = lens _rcsgiEC2SecurityGroupOwnerId (\ s a -> s{_rcsgiEC2SecurityGroupOwnerId = a}); --- | 'RevokeCacheSecurityGroupIngressResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'rcsgirCacheSecurityGroup' @::@ 'Maybe' 'CacheSecurityGroup'----revokeCacheSecurityGroupIngressResponse :: RevokeCacheSecurityGroupIngressResponse-revokeCacheSecurityGroupIngressResponse = RevokeCacheSecurityGroupIngressResponse-    { _rcsgirCacheSecurityGroup = Nothing-    }+instance AWSRequest RevokeCacheSecurityGroupIngress+         where+        type Sv RevokeCacheSecurityGroupIngress = ElastiCache+        type Rs RevokeCacheSecurityGroupIngress =+             RevokeCacheSecurityGroupIngressResponse+        request = postQuery+        response+          = receiveXMLWrapper+              "RevokeCacheSecurityGroupIngressResult"+              (\ s h x ->+                 RevokeCacheSecurityGroupIngressResponse' <$>+                   (x .@? "CacheSecurityGroup") <*> (pure (fromEnum s))) -rcsgirCacheSecurityGroup :: Lens' RevokeCacheSecurityGroupIngressResponse (Maybe CacheSecurityGroup)-rcsgirCacheSecurityGroup =-    lens _rcsgirCacheSecurityGroup-        (\s a -> s { _rcsgirCacheSecurityGroup = a })+instance ToHeaders RevokeCacheSecurityGroupIngress+         where+        toHeaders = const mempty  instance ToPath RevokeCacheSecurityGroupIngress where-    toPath = const "/"+        toPath = const "/" -instance ToQuery RevokeCacheSecurityGroupIngress where-    toQuery RevokeCacheSecurityGroupIngress{..} = mconcat-        [ "CacheSecurityGroupName"  =? _rcsgiCacheSecurityGroupName-        , "EC2SecurityGroupName"    =? _rcsgiEC2SecurityGroupName-        , "EC2SecurityGroupOwnerId" =? _rcsgiEC2SecurityGroupOwnerId-        ]+instance ToQuery RevokeCacheSecurityGroupIngress+         where+        toQuery RevokeCacheSecurityGroupIngress'{..}+          = mconcat+              ["Action" =:+                 ("RevokeCacheSecurityGroupIngress" :: ByteString),+               "Version" =: ("2015-02-02" :: ByteString),+               "CacheSecurityGroupName" =:+                 _rcsgiCacheSecurityGroupName,+               "EC2SecurityGroupName" =: _rcsgiEC2SecurityGroupName,+               "EC2SecurityGroupOwnerId" =:+                 _rcsgiEC2SecurityGroupOwnerId] -instance ToHeaders RevokeCacheSecurityGroupIngress+-- | /See:/ 'revokeCacheSecurityGroupIngressResponse' smart constructor.+data RevokeCacheSecurityGroupIngressResponse = RevokeCacheSecurityGroupIngressResponse'+    { _rcsgirsCacheSecurityGroup :: !(Maybe CacheSecurityGroup)+    , _rcsgirsStatus             :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest RevokeCacheSecurityGroupIngress where-    type Sv RevokeCacheSecurityGroupIngress = ElastiCache-    type Rs RevokeCacheSecurityGroupIngress = RevokeCacheSecurityGroupIngressResponse+-- | 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:+--+-- * 'rcsgirsCacheSecurityGroup'+--+-- * 'rcsgirsStatus'+revokeCacheSecurityGroupIngressResponse+    :: Int -- ^ 'rcsgirsStatus'+    -> RevokeCacheSecurityGroupIngressResponse+revokeCacheSecurityGroupIngressResponse pStatus_ =+    RevokeCacheSecurityGroupIngressResponse'+    { _rcsgirsCacheSecurityGroup = Nothing+    , _rcsgirsStatus = pStatus_+    } -    request  = post "RevokeCacheSecurityGroupIngress"-    response = xmlResponse+-- | Undocumented member.+rcsgirsCacheSecurityGroup :: Lens' RevokeCacheSecurityGroupIngressResponse (Maybe CacheSecurityGroup)+rcsgirsCacheSecurityGroup = lens _rcsgirsCacheSecurityGroup (\ s a -> s{_rcsgirsCacheSecurityGroup = a}); -instance FromXML RevokeCacheSecurityGroupIngressResponse where-    parseXML = withElement "RevokeCacheSecurityGroupIngressResult" $ \x -> RevokeCacheSecurityGroupIngressResponse-        <$> x .@? "CacheSecurityGroup"+-- | The response status code.+rcsgirsStatus :: Lens' RevokeCacheSecurityGroupIngressResponse Int+rcsgirsStatus = lens _rcsgirsStatus (\ s a -> s{_rcsgirsStatus = a});
gen/Network/AWS/ElastiCache/Types.hs view
@@ -1,2983 +1,644 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}-{-# LANGUAGE ViewPatterns                #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- Module      : Network.AWS.ElastiCache.Types--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental--- Portability : non-portable (GHC extensions)------ Derived from AWS service descriptions, licensed under Apache 2.0.--module Network.AWS.ElastiCache.Types-    (-    -- * Service-      ElastiCache-    -- ** Error-    , RESTError-    -- ** XML-    , ns--    -- * NodeSnapshot-    , NodeSnapshot-    , nodeSnapshot-    , nsCacheNodeCreateTime-    , nsCacheNodeId-    , nsCacheSize-    , nsSnapshotCreateTime--    -- * Snapshot-    , Snapshot-    , snapshot-    , sAutoMinorVersionUpgrade-    , sCacheClusterCreateTime-    , sCacheClusterId-    , sCacheNodeType-    , sCacheParameterGroupName-    , sCacheSubnetGroupName-    , sEngine-    , sEngineVersion-    , sNodeSnapshots-    , sNumCacheNodes-    , sPort-    , sPreferredAvailabilityZone-    , sPreferredMaintenanceWindow-    , sSnapshotName-    , sSnapshotRetentionLimit-    , sSnapshotSource-    , sSnapshotStatus-    , sSnapshotWindow-    , sTopicArn-    , sVpcId--    -- * Event-    , Event-    , event-    , eDate-    , eMessage-    , eSourceIdentifier-    , eSourceType--    -- * NodeGroup-    , NodeGroup-    , nodeGroup-    , ngNodeGroupId-    , ngNodeGroupMembers-    , ngPrimaryEndpoint-    , ngStatus--    -- * CacheNodeTypeSpecificValue-    , CacheNodeTypeSpecificValue-    , cacheNodeTypeSpecificValue-    , cntsvCacheNodeType-    , cntsvValue--    -- * Tag-    , Tag-    , tag-    , tagKey-    , tagValue--    -- * PendingAutomaticFailoverStatus-    , PendingAutomaticFailoverStatus (..)--    -- * NotificationConfiguration-    , NotificationConfiguration-    , notificationConfiguration-    , ncTopicArn-    , ncTopicStatus--    -- * ReplicationGroupPendingModifiedValues-    , ReplicationGroupPendingModifiedValues-    , replicationGroupPendingModifiedValues-    , rgpmvAutomaticFailoverStatus-    , rgpmvPrimaryClusterId--    -- * EC2SecurityGroup-    , EC2SecurityGroup-    , ec2SecurityGroup-    , ecsgEC2SecurityGroupName-    , ecsgEC2SecurityGroupOwnerId-    , ecsgStatus--    -- * ParameterNameValue-    , ParameterNameValue-    , parameterNameValue-    , pnvParameterName-    , pnvParameterValue--    -- * SourceType-    , SourceType (..)--    -- * CacheSubnetGroup-    , CacheSubnetGroup-    , cacheSubnetGroup-    , csgCacheSubnetGroupDescription-    , csgCacheSubnetGroupName-    , csgSubnets-    , csgVpcId--    -- * ReservedCacheNode-    , ReservedCacheNode-    , reservedCacheNode-    , rcnCacheNodeCount-    , rcnCacheNodeType-    , rcnDuration-    , rcnFixedPrice-    , rcnOfferingType-    , rcnProductDescription-    , rcnRecurringCharges-    , rcnReservedCacheNodeId-    , rcnReservedCacheNodesOfferingId-    , rcnStartTime-    , rcnState-    , rcnUsagePrice--    -- * Subnet-    , Subnet-    , subnet-    , sSubnetAvailabilityZone-    , sSubnetIdentifier--    -- * SecurityGroupMembership-    , SecurityGroupMembership-    , securityGroupMembership-    , sgmSecurityGroupId-    , sgmStatus--    -- * CacheCluster-    , CacheCluster-    , cacheCluster-    , ccAutoMinorVersionUpgrade-    , ccCacheClusterCreateTime-    , ccCacheClusterId-    , ccCacheClusterStatus-    , ccCacheNodeType-    , ccCacheNodes-    , ccCacheParameterGroup-    , ccCacheSecurityGroups-    , ccCacheSubnetGroupName-    , ccClientDownloadLandingPage-    , ccConfigurationEndpoint-    , ccEngine-    , ccEngineVersion-    , ccNotificationConfiguration-    , ccNumCacheNodes-    , ccPendingModifiedValues-    , ccPreferredAvailabilityZone-    , ccPreferredMaintenanceWindow-    , ccReplicationGroupId-    , ccSecurityGroups-    , ccSnapshotRetentionLimit-    , ccSnapshotWindow--    -- * EngineDefaults-    , EngineDefaults-    , engineDefaults-    , edCacheNodeTypeSpecificParameters-    , edCacheParameterGroupFamily-    , edMarker-    , edParameters--    -- * CacheParameterGroupStatus-    , CacheParameterGroupStatus-    , cacheParameterGroupStatus-    , cpgsCacheNodeIdsToReboot-    , cpgsCacheParameterGroupName-    , cpgsParameterApplyStatus--    -- * CacheNode-    , CacheNode-    , cacheNode-    , cnCacheNodeCreateTime-    , cnCacheNodeId-    , cnCacheNodeStatus-    , cnCustomerAvailabilityZone-    , cnEndpoint-    , cnParameterGroupStatus-    , cnSourceCacheNodeId--    -- * CacheSecurityGroupMembership-    , CacheSecurityGroupMembership-    , cacheSecurityGroupMembership-    , csgmCacheSecurityGroupName-    , csgmStatus--    -- * AvailabilityZone-    , AvailabilityZone-    , availabilityZone-    , azName--    -- * NodeGroupMember-    , NodeGroupMember-    , nodeGroupMember-    , ngmCacheClusterId-    , ngmCacheNodeId-    , ngmCurrentRole-    , ngmPreferredAvailabilityZone-    , ngmReadEndpoint--    -- * CacheParameterGroup-    , CacheParameterGroup-    , cacheParameterGroup-    , cpgCacheParameterGroupFamily-    , cpgCacheParameterGroupName-    , cpgDescription--    -- * AutomaticFailoverStatus-    , AutomaticFailoverStatus (..)--    -- * CacheSecurityGroup-    , CacheSecurityGroup-    , cacheSecurityGroup-    , csgCacheSecurityGroupName-    , csgDescription-    , csgEC2SecurityGroups-    , csgOwnerId--    -- * CacheNodeTypeSpecificParameter-    , CacheNodeTypeSpecificParameter-    , cacheNodeTypeSpecificParameter-    , cntspAllowedValues-    , cntspCacheNodeTypeSpecificValues-    , cntspDataType-    , cntspDescription-    , cntspIsModifiable-    , cntspMinimumEngineVersion-    , cntspParameterName-    , cntspSource--    -- * AZMode-    , AZMode (..)--    -- * CacheEngineVersion-    , CacheEngineVersion-    , cacheEngineVersion-    , cevCacheEngineDescription-    , cevCacheEngineVersionDescription-    , cevCacheParameterGroupFamily-    , cevEngine-    , cevEngineVersion--    -- * ReplicationGroup-    , ReplicationGroup-    , replicationGroup-    , rgAutomaticFailover-    , rgDescription-    , rgMemberClusters-    , rgNodeGroups-    , rgPendingModifiedValues-    , rgReplicationGroupId-    , rgSnapshottingClusterId-    , rgStatus--    -- * RecurringCharge-    , RecurringCharge-    , recurringCharge-    , rcRecurringChargeAmount-    , rcRecurringChargeFrequency--    -- * ReservedCacheNodesOffering-    , ReservedCacheNodesOffering-    , reservedCacheNodesOffering-    , rcnoCacheNodeType-    , rcnoDuration-    , rcnoFixedPrice-    , rcnoOfferingType-    , rcnoProductDescription-    , rcnoRecurringCharges-    , rcnoReservedCacheNodesOfferingId-    , rcnoUsagePrice--    -- * TagListMessage-    , TagListMessage-    , tagListMessage-    , tlmTagList--    -- * Endpoint-    , Endpoint-    , endpoint-    , eAddress-    , ePort--    -- * PendingModifiedValues-    , PendingModifiedValues-    , pendingModifiedValues-    , pmvCacheNodeIdsToRemove-    , pmvEngineVersion-    , pmvNumCacheNodes--    -- * CacheParameterGroupNameMessage-    , CacheParameterGroupNameMessage-    , cacheParameterGroupNameMessage-    , cpgnmCacheParameterGroupName--    -- * Parameter-    , Parameter-    , parameter-    , pAllowedValues-    , pDataType-    , pDescription-    , pIsModifiable-    , pMinimumEngineVersion-    , pParameterName-    , pParameterValue-    , pSource-    ) where--import Network.AWS.Prelude-import Network.AWS.Signing-import qualified GHC.Exts---- | Version @2015-02-02@ of the Amazon ElastiCache service.-data ElastiCache--instance AWSService ElastiCache where-    type Sg ElastiCache = V4-    type Er ElastiCache = RESTError--    service = service'-      where-        service' :: Service ElastiCache-        service' = Service-            { _svcAbbrev       = "ElastiCache"-            , _svcPrefix       = "elasticache"-            , _svcVersion      = "2015-02-02"-            , _svcTargetPrefix = Nothing-            , _svcJSONVersion  = Nothing-            , _svcHandle       = handle-            , _svcRetry        = retry-            }--        handle :: Status-               -> Maybe (LazyByteString -> ServiceError RESTError)-        handle = restError statusSuccess service'--        retry :: Retry ElastiCache-        retry = Exponential-            { _retryBase     = 0.05-            , _retryGrowth   = 2-            , _retryAttempts = 5-            , _retryCheck    = check-            }--        check :: Status-              -> RESTError-              -> Bool-        check (statusCode -> s) (awsErrorCode -> e)-            | s == 400 && (Just "Throttling") == e = True -- Throttling-            | s == 500  = True -- General Server Error-            | s == 509  = True -- Limit Exceeded-            | s == 503  = True -- Service Unavailable-            | otherwise = False--ns :: Text-ns = "http://elasticache.amazonaws.com/doc/2015-02-02/"-{-# INLINE ns #-}--data NodeSnapshot = NodeSnapshot-    { _nsCacheNodeCreateTime :: Maybe ISO8601-    , _nsCacheNodeId         :: Maybe Text-    , _nsCacheSize           :: Maybe Text-    , _nsSnapshotCreateTime  :: Maybe ISO8601-    } deriving (Eq, Ord, Read, Show)---- | 'NodeSnapshot' constructor.------ The fields accessible through corresponding lenses are:------ * 'nsCacheNodeCreateTime' @::@ 'Maybe' 'UTCTime'------ * 'nsCacheNodeId' @::@ 'Maybe' 'Text'------ * 'nsCacheSize' @::@ 'Maybe' 'Text'------ * 'nsSnapshotCreateTime' @::@ 'Maybe' 'UTCTime'----nodeSnapshot :: NodeSnapshot-nodeSnapshot = NodeSnapshot-    { _nsCacheNodeId         = Nothing-    , _nsCacheSize           = Nothing-    , _nsCacheNodeCreateTime = Nothing-    , _nsSnapshotCreateTime  = Nothing-    }---- | 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---- | 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 })---- | The size of the cache on the source cache node.-nsCacheSize :: Lens' NodeSnapshot (Maybe Text)-nsCacheSize = lens _nsCacheSize (\s a -> s { _nsCacheSize = 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--instance FromXML NodeSnapshot where-    parseXML x = NodeSnapshot-        <$> x .@? "CacheNodeCreateTime"-        <*> x .@? "CacheNodeId"-        <*> x .@? "CacheSize"-        <*> x .@? "SnapshotCreateTime"--instance ToQuery NodeSnapshot where-    toQuery NodeSnapshot{..} = mconcat-        [ "CacheNodeCreateTime" =? _nsCacheNodeCreateTime-        , "CacheNodeId"         =? _nsCacheNodeId-        , "CacheSize"           =? _nsCacheSize-        , "SnapshotCreateTime"  =? _nsSnapshotCreateTime-        ]--data Snapshot = Snapshot-    { _sAutoMinorVersionUpgrade    :: Maybe Bool-    , _sCacheClusterCreateTime     :: Maybe ISO8601-    , _sCacheClusterId             :: Maybe Text-    , _sCacheNodeType              :: Maybe Text-    , _sCacheParameterGroupName    :: Maybe Text-    , _sCacheSubnetGroupName       :: Maybe Text-    , _sEngine                     :: Maybe Text-    , _sEngineVersion              :: Maybe Text-    , _sNodeSnapshots              :: List "member" NodeSnapshot-    , _sNumCacheNodes              :: Maybe Int-    , _sPort                       :: Maybe Int-    , _sPreferredAvailabilityZone  :: Maybe Text-    , _sPreferredMaintenanceWindow :: Maybe Text-    , _sSnapshotName               :: Maybe Text-    , _sSnapshotRetentionLimit     :: Maybe Int-    , _sSnapshotSource             :: Maybe Text-    , _sSnapshotStatus             :: Maybe Text-    , _sSnapshotWindow             :: Maybe Text-    , _sTopicArn                   :: Maybe Text-    , _sVpcId                      :: Maybe Text-    } deriving (Eq, Read, Show)---- | 'Snapshot' constructor.------ The fields accessible through corresponding lenses are:------ * 'sAutoMinorVersionUpgrade' @::@ 'Maybe' 'Bool'------ * 'sCacheClusterCreateTime' @::@ 'Maybe' 'UTCTime'------ * 'sCacheClusterId' @::@ 'Maybe' 'Text'------ * 'sCacheNodeType' @::@ 'Maybe' 'Text'------ * 'sCacheParameterGroupName' @::@ 'Maybe' 'Text'------ * 'sCacheSubnetGroupName' @::@ 'Maybe' 'Text'------ * 'sEngine' @::@ 'Maybe' 'Text'------ * 'sEngineVersion' @::@ 'Maybe' 'Text'------ * 'sNodeSnapshots' @::@ ['NodeSnapshot']------ * 'sNumCacheNodes' @::@ 'Maybe' 'Int'------ * 'sPort' @::@ 'Maybe' 'Int'------ * 'sPreferredAvailabilityZone' @::@ 'Maybe' 'Text'------ * 'sPreferredMaintenanceWindow' @::@ 'Maybe' 'Text'------ * 'sSnapshotName' @::@ 'Maybe' 'Text'------ * 'sSnapshotRetentionLimit' @::@ 'Maybe' 'Int'------ * 'sSnapshotSource' @::@ 'Maybe' 'Text'------ * 'sSnapshotStatus' @::@ 'Maybe' 'Text'------ * 'sSnapshotWindow' @::@ 'Maybe' 'Text'------ * 'sTopicArn' @::@ 'Maybe' 'Text'------ * 'sVpcId' @::@ 'Maybe' 'Text'----snapshot :: Snapshot-snapshot = Snapshot-    { _sSnapshotName               = Nothing-    , _sCacheClusterId             = Nothing-    , _sSnapshotStatus             = Nothing-    , _sSnapshotSource             = Nothing-    , _sCacheNodeType              = Nothing-    , _sEngine                     = Nothing-    , _sEngineVersion              = Nothing-    , _sNumCacheNodes              = Nothing-    , _sPreferredAvailabilityZone  = Nothing-    , _sCacheClusterCreateTime     = Nothing-    , _sPreferredMaintenanceWindow = Nothing-    , _sTopicArn                   = Nothing-    , _sPort                       = Nothing-    , _sCacheParameterGroupName    = Nothing-    , _sCacheSubnetGroupName       = Nothing-    , _sVpcId                      = Nothing-    , _sAutoMinorVersionUpgrade    = Nothing-    , _sSnapshotRetentionLimit     = Nothing-    , _sSnapshotWindow             = Nothing-    , _sNodeSnapshots              = mempty-    }---- | This parameter is currently disabled.-sAutoMinorVersionUpgrade :: Lens' Snapshot (Maybe Bool)-sAutoMinorVersionUpgrade =-    lens _sAutoMinorVersionUpgrade-        (\s a -> s { _sAutoMinorVersionUpgrade = 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---- | 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 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' 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 (VPC). Redis backup/restore is not supported for t2 instances.--- Redis Append-only files (AOF) functionality is not supported for t1 or t2--- instances.  For a complete listing of cache node types and specifications,--- see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#CacheParameterGroups.Memcached.NodeSpecific Cache NodeType-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#CacheParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parametersfor Redis>.-sCacheNodeType :: Lens' Snapshot (Maybe Text)-sCacheNodeType = lens _sCacheNodeType (\s a -> s { _sCacheNodeType = 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 })---- | 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 cache engine (/memcached/ or /redis/) used by the source cache--- cluster.-sEngine :: Lens' Snapshot (Maybe Text)-sEngine = lens _sEngine (\s a -> s { _sEngine = a })---- | 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 })---- | A list of the cache nodes in the source cache cluster.-sNodeSnapshots :: Lens' Snapshot [NodeSnapshot]-sNodeSnapshots = lens _sNodeSnapshots (\s a -> s { _sNodeSnapshots = a }) . _List---- | 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 })---- | 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 })---- | 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:------ 'sun' 'mon' 'tue' 'wed' 'thu' 'fri' 'sat'  Example: 'sun:05:00-sun:09:00'-sPreferredMaintenanceWindow :: Lens' Snapshot (Maybe Text)-sPreferredMaintenanceWindow =-    lens _sPreferredMaintenanceWindow-        (\s a -> s { _sPreferredMaintenanceWindow = 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 })---- | For an automatic snapshot, the number of days for which ElastiCache will--- retain 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/ action.------ 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 })---- | 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 })---- | 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 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 })---- | 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 })--instance FromXML Snapshot where-    parseXML x = Snapshot-        <$> x .@? "AutoMinorVersionUpgrade"-        <*> x .@? "CacheClusterCreateTime"-        <*> x .@? "CacheClusterId"-        <*> x .@? "CacheNodeType"-        <*> x .@? "CacheParameterGroupName"-        <*> x .@? "CacheSubnetGroupName"-        <*> x .@? "Engine"-        <*> x .@? "EngineVersion"-        <*> x .@? "NodeSnapshots" .!@ mempty-        <*> x .@? "NumCacheNodes"-        <*> x .@? "Port"-        <*> x .@? "PreferredAvailabilityZone"-        <*> x .@? "PreferredMaintenanceWindow"-        <*> x .@? "SnapshotName"-        <*> x .@? "SnapshotRetentionLimit"-        <*> x .@? "SnapshotSource"-        <*> x .@? "SnapshotStatus"-        <*> x .@? "SnapshotWindow"-        <*> x .@? "TopicArn"-        <*> x .@? "VpcId"--instance ToQuery Snapshot where-    toQuery Snapshot{..} = mconcat-        [ "AutoMinorVersionUpgrade"    =? _sAutoMinorVersionUpgrade-        , "CacheClusterCreateTime"     =? _sCacheClusterCreateTime-        , "CacheClusterId"             =? _sCacheClusterId-        , "CacheNodeType"              =? _sCacheNodeType-        , "CacheParameterGroupName"    =? _sCacheParameterGroupName-        , "CacheSubnetGroupName"       =? _sCacheSubnetGroupName-        , "Engine"                     =? _sEngine-        , "EngineVersion"              =? _sEngineVersion-        , "NodeSnapshots"              =? _sNodeSnapshots-        , "NumCacheNodes"              =? _sNumCacheNodes-        , "Port"                       =? _sPort-        , "PreferredAvailabilityZone"  =? _sPreferredAvailabilityZone-        , "PreferredMaintenanceWindow" =? _sPreferredMaintenanceWindow-        , "SnapshotName"               =? _sSnapshotName-        , "SnapshotRetentionLimit"     =? _sSnapshotRetentionLimit-        , "SnapshotSource"             =? _sSnapshotSource-        , "SnapshotStatus"             =? _sSnapshotStatus-        , "SnapshotWindow"             =? _sSnapshotWindow-        , "TopicArn"                   =? _sTopicArn-        , "VpcId"                      =? _sVpcId-        ]--data Event = Event-    { _eDate             :: Maybe ISO8601-    , _eMessage          :: Maybe Text-    , _eSourceIdentifier :: Maybe Text-    , _eSourceType       :: Maybe SourceType-    } deriving (Eq, Read, Show)---- | 'Event' constructor.------ The fields accessible through corresponding lenses are:------ * 'eDate' @::@ 'Maybe' 'UTCTime'------ * 'eMessage' @::@ 'Maybe' 'Text'------ * 'eSourceIdentifier' @::@ 'Maybe' 'Text'------ * 'eSourceType' @::@ 'Maybe' 'SourceType'----event :: Event-event = Event-    { _eSourceIdentifier = Nothing-    , _eSourceType       = Nothing-    , _eMessage          = Nothing-    , _eDate             = Nothing-    }---- | 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 })---- | 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 })---- | 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 })--instance FromXML Event where-    parseXML x = Event-        <$> x .@? "Date"-        <*> x .@? "Message"-        <*> x .@? "SourceIdentifier"-        <*> x .@? "SourceType"--instance ToQuery Event where-    toQuery Event{..} = mconcat-        [ "Date"             =? _eDate-        , "Message"          =? _eMessage-        , "SourceIdentifier" =? _eSourceIdentifier-        , "SourceType"       =? _eSourceType-        ]--data NodeGroup = NodeGroup-    { _ngNodeGroupId      :: Maybe Text-    , _ngNodeGroupMembers :: List "member" NodeGroupMember-    , _ngPrimaryEndpoint  :: Maybe Endpoint-    , _ngStatus           :: Maybe Text-    } deriving (Eq, Read, Show)---- | 'NodeGroup' constructor.------ The fields accessible through corresponding lenses are:------ * 'ngNodeGroupId' @::@ 'Maybe' 'Text'------ * 'ngNodeGroupMembers' @::@ ['NodeGroupMember']------ * 'ngPrimaryEndpoint' @::@ 'Maybe' 'Endpoint'------ * 'ngStatus' @::@ 'Maybe' 'Text'----nodeGroup :: NodeGroup-nodeGroup = NodeGroup-    { _ngNodeGroupId      = Nothing-    , _ngStatus           = Nothing-    , _ngPrimaryEndpoint  = Nothing-    , _ngNodeGroupMembers = mempty-    }---- | The identifier for the node group. A replication group contains only one node--- group; therefore, the node group ID is 0001.-ngNodeGroupId :: Lens' NodeGroup (Maybe Text)-ngNodeGroupId = lens _ngNodeGroupId (\s a -> s { _ngNodeGroupId = a })---- | A list containing information about individual nodes within the node group.-ngNodeGroupMembers :: Lens' NodeGroup [NodeGroupMember]-ngNodeGroupMembers =-    lens _ngNodeGroupMembers (\s a -> s { _ngNodeGroupMembers = a })-        . _List--ngPrimaryEndpoint :: Lens' NodeGroup (Maybe Endpoint)-ngPrimaryEndpoint =-    lens _ngPrimaryEndpoint (\s a -> s { _ngPrimaryEndpoint = a })---- | The current state of this replication group - /creating/, /available/, etc.-ngStatus :: Lens' NodeGroup (Maybe Text)-ngStatus = lens _ngStatus (\s a -> s { _ngStatus = a })--instance FromXML NodeGroup where-    parseXML x = NodeGroup-        <$> x .@? "NodeGroupId"-        <*> x .@? "NodeGroupMembers" .!@ mempty-        <*> x .@? "PrimaryEndpoint"-        <*> x .@? "Status"--instance ToQuery NodeGroup where-    toQuery NodeGroup{..} = mconcat-        [ "NodeGroupId"      =? _ngNodeGroupId-        , "NodeGroupMembers" =? _ngNodeGroupMembers-        , "PrimaryEndpoint"  =? _ngPrimaryEndpoint-        , "Status"           =? _ngStatus-        ]--data CacheNodeTypeSpecificValue = CacheNodeTypeSpecificValue-    { _cntsvCacheNodeType :: Maybe Text-    , _cntsvValue         :: Maybe Text-    } deriving (Eq, Ord, Read, Show)---- | 'CacheNodeTypeSpecificValue' constructor.------ The fields accessible through corresponding lenses are:------ * 'cntsvCacheNodeType' @::@ 'Maybe' 'Text'------ * 'cntsvValue' @::@ 'Maybe' 'Text'----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 ToQuery CacheNodeTypeSpecificValue where-    toQuery CacheNodeTypeSpecificValue{..} = mconcat-        [ "CacheNodeType" =? _cntsvCacheNodeType-        , "Value"         =? _cntsvValue-        ]--data Tag = Tag-    { _tagKey   :: Maybe Text-    , _tagValue :: Maybe Text-    } deriving (Eq, Ord, Read, Show)---- | 'Tag' constructor.------ The fields accessible through corresponding lenses are:------ * 'tagKey' @::@ 'Maybe' 'Text'------ * 'tagValue' @::@ 'Maybe' 'Text'----tag :: Tag-tag = Tag-    { _tagKey   = Nothing-    , _tagValue = Nothing-    }---- | The key for the tag.-tagKey :: Lens' Tag (Maybe Text)-tagKey = lens _tagKey (\s a -> s { _tagKey = a })---- | The tag's value. May not be null.-tagValue :: Lens' Tag (Maybe Text)-tagValue = lens _tagValue (\s a -> s { _tagValue = a })--instance FromXML Tag where-    parseXML x = Tag-        <$> x .@? "Key"-        <*> x .@? "Value"--instance ToQuery Tag where-    toQuery Tag{..} = mconcat-        [ "Key"   =? _tagKey-        , "Value" =? _tagValue-        ]--data PendingAutomaticFailoverStatus-    = Disabled -- ^ disabled-    | Enabled  -- ^ enabled-      deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable PendingAutomaticFailoverStatus--instance FromText PendingAutomaticFailoverStatus where-    parser = takeLowerText >>= \case-        "disabled" -> pure Disabled-        "enabled"  -> pure Enabled-        e          -> fail $-            "Failure parsing PendingAutomaticFailoverStatus from " ++ show e--instance ToText PendingAutomaticFailoverStatus where-    toText = \case-        Disabled -> "disabled"-        Enabled  -> "enabled"--instance ToByteString PendingAutomaticFailoverStatus-instance ToHeader     PendingAutomaticFailoverStatus-instance ToQuery      PendingAutomaticFailoverStatus--instance FromXML PendingAutomaticFailoverStatus where-    parseXML = parseXMLText "PendingAutomaticFailoverStatus"--data NotificationConfiguration = NotificationConfiguration-    { _ncTopicArn    :: Maybe Text-    , _ncTopicStatus :: Maybe Text-    } deriving (Eq, Ord, Read, Show)---- | 'NotificationConfiguration' constructor.------ The fields accessible through corresponding lenses are:------ * 'ncTopicArn' @::@ 'Maybe' 'Text'------ * 'ncTopicStatus' @::@ 'Maybe' 'Text'----notificationConfiguration :: NotificationConfiguration-notificationConfiguration = NotificationConfiguration-    { _ncTopicArn    = Nothing-    , _ncTopicStatus = Nothing-    }---- | The Amazon Resource Name (ARN) that identifies the topic.-ncTopicArn :: Lens' NotificationConfiguration (Maybe Text)-ncTopicArn = lens _ncTopicArn (\s a -> s { _ncTopicArn = a })---- | The current state of the topic.-ncTopicStatus :: Lens' NotificationConfiguration (Maybe Text)-ncTopicStatus = lens _ncTopicStatus (\s a -> s { _ncTopicStatus = a })--instance FromXML NotificationConfiguration where-    parseXML x = NotificationConfiguration-        <$> x .@? "TopicArn"-        <*> x .@? "TopicStatus"--instance ToQuery NotificationConfiguration where-    toQuery NotificationConfiguration{..} = mconcat-        [ "TopicArn"    =? _ncTopicArn-        , "TopicStatus" =? _ncTopicStatus-        ]--data ReplicationGroupPendingModifiedValues = ReplicationGroupPendingModifiedValues-    { _rgpmvAutomaticFailoverStatus :: Maybe PendingAutomaticFailoverStatus-    , _rgpmvPrimaryClusterId        :: Maybe Text-    } deriving (Eq, Read, Show)---- | 'ReplicationGroupPendingModifiedValues' constructor.------ The fields accessible through corresponding lenses are:------ * 'rgpmvAutomaticFailoverStatus' @::@ 'Maybe' 'PendingAutomaticFailoverStatus'------ * 'rgpmvPrimaryClusterId' @::@ 'Maybe' 'Text'----replicationGroupPendingModifiedValues :: ReplicationGroupPendingModifiedValues-replicationGroupPendingModifiedValues = ReplicationGroupPendingModifiedValues-    { _rgpmvPrimaryClusterId        = Nothing-    , _rgpmvAutomaticFailoverStatus = Nothing-    }---- | Indicates the status of Multi-AZ for this replication group.------ ElastiCache Multi-AZ replication groups are not supported on:------ Redis versions earlier than 2.8.6. T1 and T2 cache node types.-rgpmvAutomaticFailoverStatus :: Lens' ReplicationGroupPendingModifiedValues (Maybe PendingAutomaticFailoverStatus)-rgpmvAutomaticFailoverStatus =-    lens _rgpmvAutomaticFailoverStatus-        (\s a -> s { _rgpmvAutomaticFailoverStatus = a })---- | The primary cluster ID which will be 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 })--instance FromXML ReplicationGroupPendingModifiedValues where-    parseXML x = ReplicationGroupPendingModifiedValues-        <$> x .@? "AutomaticFailoverStatus"-        <*> x .@? "PrimaryClusterId"--instance ToQuery ReplicationGroupPendingModifiedValues where-    toQuery ReplicationGroupPendingModifiedValues{..} = mconcat-        [ "AutomaticFailoverStatus" =? _rgpmvAutomaticFailoverStatus-        , "PrimaryClusterId"        =? _rgpmvPrimaryClusterId-        ]--data EC2SecurityGroup = EC2SecurityGroup-    { _ecsgEC2SecurityGroupName    :: Maybe Text-    , _ecsgEC2SecurityGroupOwnerId :: Maybe Text-    , _ecsgStatus                  :: Maybe Text-    } deriving (Eq, Ord, Read, Show)---- | 'EC2SecurityGroup' constructor.------ The fields accessible through corresponding lenses are:------ * 'ecsgEC2SecurityGroupName' @::@ 'Maybe' 'Text'------ * 'ecsgEC2SecurityGroupOwnerId' @::@ 'Maybe' 'Text'------ * 'ecsgStatus' @::@ 'Maybe' 'Text'----ec2SecurityGroup :: EC2SecurityGroup-ec2SecurityGroup = EC2SecurityGroup-    { _ecsgStatus                  = Nothing-    , _ecsgEC2SecurityGroupName    = Nothing-    , _ecsgEC2SecurityGroupOwnerId = Nothing-    }---- | The name of the Amazon EC2 security group.-ecsgEC2SecurityGroupName :: Lens' EC2SecurityGroup (Maybe Text)-ecsgEC2SecurityGroupName =-    lens _ecsgEC2SecurityGroupName-        (\s a -> s { _ecsgEC2SecurityGroupName = a })---- | The AWS account ID of the Amazon EC2 security group owner.-ecsgEC2SecurityGroupOwnerId :: Lens' EC2SecurityGroup (Maybe Text)-ecsgEC2SecurityGroupOwnerId =-    lens _ecsgEC2SecurityGroupOwnerId-        (\s a -> s { _ecsgEC2SecurityGroupOwnerId = a })---- | The status of the Amazon EC2 security group.-ecsgStatus :: Lens' EC2SecurityGroup (Maybe Text)-ecsgStatus = lens _ecsgStatus (\s a -> s { _ecsgStatus = a })--instance FromXML EC2SecurityGroup where-    parseXML x = EC2SecurityGroup-        <$> x .@? "EC2SecurityGroupName"-        <*> x .@? "EC2SecurityGroupOwnerId"-        <*> x .@? "Status"--instance ToQuery EC2SecurityGroup where-    toQuery EC2SecurityGroup{..} = mconcat-        [ "EC2SecurityGroupName"    =? _ecsgEC2SecurityGroupName-        , "EC2SecurityGroupOwnerId" =? _ecsgEC2SecurityGroupOwnerId-        , "Status"                  =? _ecsgStatus-        ]--data ParameterNameValue = ParameterNameValue-    { _pnvParameterName  :: Maybe Text-    , _pnvParameterValue :: Maybe Text-    } deriving (Eq, Ord, Read, Show)---- | 'ParameterNameValue' constructor.------ The fields accessible through corresponding lenses are:------ * 'pnvParameterName' @::@ 'Maybe' 'Text'------ * 'pnvParameterValue' @::@ 'Maybe' 'Text'----parameterNameValue :: ParameterNameValue-parameterNameValue = ParameterNameValue-    { _pnvParameterName  = Nothing-    , _pnvParameterValue = Nothing-    }---- | The name of the parameter.-pnvParameterName :: Lens' ParameterNameValue (Maybe Text)-pnvParameterName = lens _pnvParameterName (\s a -> s { _pnvParameterName = a })---- | The value of the parameter.-pnvParameterValue :: Lens' ParameterNameValue (Maybe Text)-pnvParameterValue =-    lens _pnvParameterValue (\s a -> s { _pnvParameterValue = a })--instance FromXML ParameterNameValue where-    parseXML x = ParameterNameValue-        <$> x .@? "ParameterName"-        <*> x .@? "ParameterValue"--instance ToQuery ParameterNameValue where-    toQuery ParameterNameValue{..} = mconcat-        [ "ParameterName"  =? _pnvParameterName-        , "ParameterValue" =? _pnvParameterValue-        ]--data SourceType-    = STCacheCluster        -- ^ cache-cluster-    | STCacheParameterGroup -- ^ cache-parameter-group-    | STCacheSecurityGroup  -- ^ cache-security-group-    | STCacheSubnetGroup    -- ^ cache-subnet-group-      deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable SourceType--instance FromText SourceType where-    parser = takeLowerText >>= \case-        "cache-cluster"         -> pure STCacheCluster-        "cache-parameter-group" -> pure STCacheParameterGroup-        "cache-security-group"  -> pure STCacheSecurityGroup-        "cache-subnet-group"    -> pure STCacheSubnetGroup-        e                       -> fail $-            "Failure parsing SourceType from " ++ show e--instance ToText SourceType where-    toText = \case-        STCacheCluster        -> "cache-cluster"-        STCacheParameterGroup -> "cache-parameter-group"-        STCacheSecurityGroup  -> "cache-security-group"-        STCacheSubnetGroup    -> "cache-subnet-group"--instance ToByteString SourceType-instance ToHeader     SourceType-instance ToQuery      SourceType--instance FromXML SourceType where-    parseXML = parseXMLText "SourceType"--data CacheSubnetGroup = CacheSubnetGroup-    { _csgCacheSubnetGroupDescription :: Maybe Text-    , _csgCacheSubnetGroupName        :: Maybe Text-    , _csgSubnets                     :: List "member" Subnet-    , _csgVpcId                       :: Maybe Text-    } deriving (Eq, Read, Show)---- | 'CacheSubnetGroup' constructor.------ The fields accessible through corresponding lenses are:------ * 'csgCacheSubnetGroupDescription' @::@ 'Maybe' 'Text'------ * 'csgCacheSubnetGroupName' @::@ 'Maybe' 'Text'------ * 'csgSubnets' @::@ ['Subnet']------ * 'csgVpcId' @::@ 'Maybe' 'Text'----cacheSubnetGroup :: CacheSubnetGroup-cacheSubnetGroup = CacheSubnetGroup-    { _csgCacheSubnetGroupName        = Nothing-    , _csgCacheSubnetGroupDescription = Nothing-    , _csgVpcId                       = Nothing-    , _csgSubnets                     = mempty-    }---- | The description of the cache subnet group.-csgCacheSubnetGroupDescription :: Lens' CacheSubnetGroup (Maybe Text)-csgCacheSubnetGroupDescription =-    lens _csgCacheSubnetGroupDescription-        (\s a -> s { _csgCacheSubnetGroupDescription = a })---- | The name of the cache subnet group.-csgCacheSubnetGroupName :: Lens' CacheSubnetGroup (Maybe Text)-csgCacheSubnetGroupName =-    lens _csgCacheSubnetGroupName (\s a -> s { _csgCacheSubnetGroupName = a })---- | A list of subnets associated with the cache subnet group.-csgSubnets :: Lens' CacheSubnetGroup [Subnet]-csgSubnets = lens _csgSubnets (\s a -> s { _csgSubnets = a }) . _List---- | 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 })--instance FromXML CacheSubnetGroup where-    parseXML x = CacheSubnetGroup-        <$> x .@? "CacheSubnetGroupDescription"-        <*> x .@? "CacheSubnetGroupName"-        <*> x .@? "Subnets" .!@ mempty-        <*> x .@? "VpcId"--instance ToQuery CacheSubnetGroup where-    toQuery CacheSubnetGroup{..} = mconcat-        [ "CacheSubnetGroupDescription" =? _csgCacheSubnetGroupDescription-        , "CacheSubnetGroupName"        =? _csgCacheSubnetGroupName-        , "Subnets"                     =? _csgSubnets-        , "VpcId"                       =? _csgVpcId-        ]--data ReservedCacheNode = ReservedCacheNode-    { _rcnCacheNodeCount               :: Maybe Int-    , _rcnCacheNodeType                :: Maybe Text-    , _rcnDuration                     :: Maybe Int-    , _rcnFixedPrice                   :: Maybe Double-    , _rcnOfferingType                 :: Maybe Text-    , _rcnProductDescription           :: Maybe Text-    , _rcnRecurringCharges             :: List "member" RecurringCharge-    , _rcnReservedCacheNodeId          :: Maybe Text-    , _rcnReservedCacheNodesOfferingId :: Maybe Text-    , _rcnStartTime                    :: Maybe ISO8601-    , _rcnState                        :: Maybe Text-    , _rcnUsagePrice                   :: Maybe Double-    } deriving (Eq, Read, Show)---- | 'ReservedCacheNode' constructor.------ The fields accessible through corresponding lenses are:------ * 'rcnCacheNodeCount' @::@ 'Maybe' 'Int'------ * 'rcnCacheNodeType' @::@ 'Maybe' 'Text'------ * 'rcnDuration' @::@ 'Maybe' 'Int'------ * 'rcnFixedPrice' @::@ 'Maybe' 'Double'------ * 'rcnOfferingType' @::@ 'Maybe' 'Text'------ * 'rcnProductDescription' @::@ 'Maybe' 'Text'------ * 'rcnRecurringCharges' @::@ ['RecurringCharge']------ * 'rcnReservedCacheNodeId' @::@ 'Maybe' 'Text'------ * 'rcnReservedCacheNodesOfferingId' @::@ 'Maybe' 'Text'------ * 'rcnStartTime' @::@ 'Maybe' 'UTCTime'------ * 'rcnState' @::@ 'Maybe' 'Text'------ * 'rcnUsagePrice' @::@ 'Maybe' 'Double'----reservedCacheNode :: ReservedCacheNode-reservedCacheNode = ReservedCacheNode-    { _rcnReservedCacheNodeId          = Nothing-    , _rcnReservedCacheNodesOfferingId = Nothing-    , _rcnCacheNodeType                = Nothing-    , _rcnStartTime                    = Nothing-    , _rcnDuration                     = Nothing-    , _rcnFixedPrice                   = Nothing-    , _rcnUsagePrice                   = Nothing-    , _rcnCacheNodeCount               = Nothing-    , _rcnProductDescription           = Nothing-    , _rcnOfferingType                 = Nothing-    , _rcnState                        = Nothing-    , _rcnRecurringCharges             = mempty-    }---- | The number of cache nodes that have been reserved.-rcnCacheNodeCount :: Lens' ReservedCacheNode (Maybe Int)-rcnCacheNodeCount =-    lens _rcnCacheNodeCount (\s a -> s { _rcnCacheNodeCount = a })---- | 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' 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 (VPC). Redis backup/restore is not supported for t2 instances.--- Redis Append-only files (AOF) functionality is not supported for t1 or t2--- instances.  For a complete listing of cache node types and specifications,--- see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#CacheParameterGroups.Memcached.NodeSpecific Cache NodeType-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#CacheParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parametersfor Redis>.-rcnCacheNodeType :: Lens' ReservedCacheNode (Maybe Text)-rcnCacheNodeType = lens _rcnCacheNodeType (\s a -> s { _rcnCacheNodeType = a })---- | The duration of the reservation in seconds.-rcnDuration :: Lens' ReservedCacheNode (Maybe Int)-rcnDuration = lens _rcnDuration (\s a -> s { _rcnDuration = a })---- | The fixed price charged for this reserved cache node.-rcnFixedPrice :: Lens' ReservedCacheNode (Maybe Double)-rcnFixedPrice = lens _rcnFixedPrice (\s a -> s { _rcnFixedPrice = a })---- | The offering type of this reserved cache node.-rcnOfferingType :: Lens' ReservedCacheNode (Maybe Text)-rcnOfferingType = lens _rcnOfferingType (\s a -> s { _rcnOfferingType = a })---- | The description of the reserved cache node.-rcnProductDescription :: Lens' ReservedCacheNode (Maybe Text)-rcnProductDescription =-    lens _rcnProductDescription (\s a -> s { _rcnProductDescription = a })---- | The recurring price charged to run this reserved cache node.-rcnRecurringCharges :: Lens' ReservedCacheNode [RecurringCharge]-rcnRecurringCharges =-    lens _rcnRecurringCharges (\s a -> s { _rcnRecurringCharges = a })-        . _List---- | The unique identifier for the reservation.-rcnReservedCacheNodeId :: Lens' ReservedCacheNode (Maybe Text)-rcnReservedCacheNodeId =-    lens _rcnReservedCacheNodeId (\s a -> s { _rcnReservedCacheNodeId = a })---- | The offering identifier.-rcnReservedCacheNodesOfferingId :: Lens' ReservedCacheNode (Maybe Text)-rcnReservedCacheNodesOfferingId =-    lens _rcnReservedCacheNodesOfferingId-        (\s a -> s { _rcnReservedCacheNodesOfferingId = a })---- | The time the reservation started.-rcnStartTime :: Lens' ReservedCacheNode (Maybe UTCTime)-rcnStartTime = lens _rcnStartTime (\s a -> s { _rcnStartTime = a }) . mapping _Time---- | The state of the reserved cache node.-rcnState :: Lens' ReservedCacheNode (Maybe Text)-rcnState = lens _rcnState (\s a -> s { _rcnState = a })---- | The hourly price charged for this reserved cache node.-rcnUsagePrice :: Lens' ReservedCacheNode (Maybe Double)-rcnUsagePrice = lens _rcnUsagePrice (\s a -> s { _rcnUsagePrice = a })--instance FromXML ReservedCacheNode where-    parseXML x = ReservedCacheNode-        <$> x .@? "CacheNodeCount"-        <*> x .@? "CacheNodeType"-        <*> x .@? "Duration"-        <*> x .@? "FixedPrice"-        <*> x .@? "OfferingType"-        <*> x .@? "ProductDescription"-        <*> x .@? "RecurringCharges" .!@ mempty-        <*> x .@? "ReservedCacheNodeId"-        <*> x .@? "ReservedCacheNodesOfferingId"-        <*> x .@? "StartTime"-        <*> x .@? "State"-        <*> x .@? "UsagePrice"--instance ToQuery ReservedCacheNode where-    toQuery ReservedCacheNode{..} = mconcat-        [ "CacheNodeCount"               =? _rcnCacheNodeCount-        , "CacheNodeType"                =? _rcnCacheNodeType-        , "Duration"                     =? _rcnDuration-        , "FixedPrice"                   =? _rcnFixedPrice-        , "OfferingType"                 =? _rcnOfferingType-        , "ProductDescription"           =? _rcnProductDescription-        , "RecurringCharges"             =? _rcnRecurringCharges-        , "ReservedCacheNodeId"          =? _rcnReservedCacheNodeId-        , "ReservedCacheNodesOfferingId" =? _rcnReservedCacheNodesOfferingId-        , "StartTime"                    =? _rcnStartTime-        , "State"                        =? _rcnState-        , "UsagePrice"                   =? _rcnUsagePrice-        ]--data Subnet = Subnet-    { _sSubnetAvailabilityZone :: Maybe AvailabilityZone-    , _sSubnetIdentifier       :: Maybe Text-    } deriving (Eq, Read, Show)---- | 'Subnet' constructor.------ The fields accessible through corresponding lenses are:------ * 'sSubnetAvailabilityZone' @::@ 'Maybe' 'AvailabilityZone'------ * 'sSubnetIdentifier' @::@ 'Maybe' 'Text'----subnet :: Subnet-subnet = Subnet-    { _sSubnetIdentifier       = Nothing-    , _sSubnetAvailabilityZone = Nothing-    }---- | The Availability Zone associated with the subnet.-sSubnetAvailabilityZone :: Lens' Subnet (Maybe AvailabilityZone)-sSubnetAvailabilityZone =-    lens _sSubnetAvailabilityZone (\s a -> s { _sSubnetAvailabilityZone = a })---- | The unique identifier for the subnet.-sSubnetIdentifier :: Lens' Subnet (Maybe Text)-sSubnetIdentifier =-    lens _sSubnetIdentifier (\s a -> s { _sSubnetIdentifier = a })--instance FromXML Subnet where-    parseXML x = Subnet-        <$> x .@? "SubnetAvailabilityZone"-        <*> x .@? "SubnetIdentifier"--instance ToQuery Subnet where-    toQuery Subnet{..} = mconcat-        [ "SubnetAvailabilityZone" =? _sSubnetAvailabilityZone-        , "SubnetIdentifier"       =? _sSubnetIdentifier-        ]--data SecurityGroupMembership = SecurityGroupMembership-    { _sgmSecurityGroupId :: Maybe Text-    , _sgmStatus          :: Maybe Text-    } deriving (Eq, Ord, Read, Show)---- | 'SecurityGroupMembership' constructor.------ The fields accessible through corresponding lenses are:------ * 'sgmSecurityGroupId' @::@ 'Maybe' 'Text'------ * 'sgmStatus' @::@ 'Maybe' 'Text'----securityGroupMembership :: SecurityGroupMembership-securityGroupMembership = SecurityGroupMembership-    { _sgmSecurityGroupId = Nothing-    , _sgmStatus          = Nothing-    }---- | The identifier of the cache security group.-sgmSecurityGroupId :: Lens' SecurityGroupMembership (Maybe Text)-sgmSecurityGroupId =-    lens _sgmSecurityGroupId (\s a -> s { _sgmSecurityGroupId = a })---- | 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 })--instance FromXML SecurityGroupMembership where-    parseXML x = SecurityGroupMembership-        <$> x .@? "SecurityGroupId"-        <*> x .@? "Status"--instance ToQuery SecurityGroupMembership where-    toQuery SecurityGroupMembership{..} = mconcat-        [ "SecurityGroupId" =? _sgmSecurityGroupId-        , "Status"          =? _sgmStatus-        ]--data CacheCluster = CacheCluster-    { _ccAutoMinorVersionUpgrade    :: Maybe Bool-    , _ccCacheClusterCreateTime     :: Maybe ISO8601-    , _ccCacheClusterId             :: Maybe Text-    , _ccCacheClusterStatus         :: Maybe Text-    , _ccCacheNodeType              :: Maybe Text-    , _ccCacheNodes                 :: List "member" CacheNode-    , _ccCacheParameterGroup        :: Maybe CacheParameterGroupStatus-    , _ccCacheSecurityGroups        :: List "member" CacheSecurityGroupMembership-    , _ccCacheSubnetGroupName       :: Maybe Text-    , _ccClientDownloadLandingPage  :: Maybe Text-    , _ccConfigurationEndpoint      :: Maybe Endpoint-    , _ccEngine                     :: Maybe Text-    , _ccEngineVersion              :: Maybe Text-    , _ccNotificationConfiguration  :: Maybe NotificationConfiguration-    , _ccNumCacheNodes              :: Maybe Int-    , _ccPendingModifiedValues      :: Maybe PendingModifiedValues-    , _ccPreferredAvailabilityZone  :: Maybe Text-    , _ccPreferredMaintenanceWindow :: Maybe Text-    , _ccReplicationGroupId         :: Maybe Text-    , _ccSecurityGroups             :: List "member" SecurityGroupMembership-    , _ccSnapshotRetentionLimit     :: Maybe Int-    , _ccSnapshotWindow             :: Maybe Text-    } deriving (Eq, Read, Show)---- | 'CacheCluster' constructor.------ The fields accessible through corresponding lenses are:------ * 'ccAutoMinorVersionUpgrade' @::@ 'Maybe' 'Bool'------ * 'ccCacheClusterCreateTime' @::@ 'Maybe' 'UTCTime'------ * 'ccCacheClusterId' @::@ 'Maybe' 'Text'------ * 'ccCacheClusterStatus' @::@ 'Maybe' 'Text'------ * 'ccCacheNodeType' @::@ 'Maybe' 'Text'------ * 'ccCacheNodes' @::@ ['CacheNode']------ * 'ccCacheParameterGroup' @::@ 'Maybe' 'CacheParameterGroupStatus'------ * 'ccCacheSecurityGroups' @::@ ['CacheSecurityGroupMembership']------ * 'ccCacheSubnetGroupName' @::@ 'Maybe' 'Text'------ * 'ccClientDownloadLandingPage' @::@ 'Maybe' 'Text'------ * 'ccConfigurationEndpoint' @::@ 'Maybe' 'Endpoint'------ * 'ccEngine' @::@ 'Maybe' 'Text'------ * 'ccEngineVersion' @::@ 'Maybe' 'Text'------ * 'ccNotificationConfiguration' @::@ 'Maybe' 'NotificationConfiguration'------ * 'ccNumCacheNodes' @::@ 'Maybe' 'Int'------ * 'ccPendingModifiedValues' @::@ 'Maybe' 'PendingModifiedValues'------ * 'ccPreferredAvailabilityZone' @::@ 'Maybe' 'Text'------ * 'ccPreferredMaintenanceWindow' @::@ 'Maybe' 'Text'------ * 'ccReplicationGroupId' @::@ 'Maybe' 'Text'------ * 'ccSecurityGroups' @::@ ['SecurityGroupMembership']------ * 'ccSnapshotRetentionLimit' @::@ 'Maybe' 'Int'------ * 'ccSnapshotWindow' @::@ 'Maybe' 'Text'----cacheCluster :: CacheCluster-cacheCluster = CacheCluster-    { _ccCacheClusterId             = Nothing-    , _ccConfigurationEndpoint      = Nothing-    , _ccClientDownloadLandingPage  = Nothing-    , _ccCacheNodeType              = Nothing-    , _ccEngine                     = Nothing-    , _ccEngineVersion              = Nothing-    , _ccCacheClusterStatus         = Nothing-    , _ccNumCacheNodes              = Nothing-    , _ccPreferredAvailabilityZone  = Nothing-    , _ccCacheClusterCreateTime     = Nothing-    , _ccPreferredMaintenanceWindow = Nothing-    , _ccPendingModifiedValues      = Nothing-    , _ccNotificationConfiguration  = Nothing-    , _ccCacheSecurityGroups        = mempty-    , _ccCacheParameterGroup        = Nothing-    , _ccCacheSubnetGroupName       = Nothing-    , _ccCacheNodes                 = mempty-    , _ccAutoMinorVersionUpgrade    = Nothing-    , _ccSecurityGroups             = mempty-    , _ccReplicationGroupId         = Nothing-    , _ccSnapshotRetentionLimit     = Nothing-    , _ccSnapshotWindow             = Nothing-    }---- | This parameter is currently disabled.-ccAutoMinorVersionUpgrade :: Lens' CacheCluster (Maybe Bool)-ccAutoMinorVersionUpgrade =-    lens _ccAutoMinorVersionUpgrade-        (\s a -> s { _ccAutoMinorVersionUpgrade = a })---- | 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---- | 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 })---- | The current state of this cache cluster, one of the following values: /available/, /creating/, /deleted/, /deleting/, /incompatible-network/, /modifying/, /rebootingcache cluster nodes/, /restore-failed/, or /snapshotting/.-ccCacheClusterStatus :: Lens' CacheCluster (Maybe Text)-ccCacheClusterStatus =-    lens _ccCacheClusterStatus (\s a -> s { _ccCacheClusterStatus = 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' 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 (VPC). Redis backup/restore is not supported for t2 instances.--- Redis Append-only files (AOF) functionality is not supported for t1 or t2--- instances.  For a complete listing of cache node types and specifications,--- see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#CacheParameterGroups.Memcached.NodeSpecific Cache NodeType-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#CacheParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parametersfor 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 }) . _List--ccCacheParameterGroup :: Lens' CacheCluster (Maybe CacheParameterGroupStatus)-ccCacheParameterGroup =-    lens _ccCacheParameterGroup (\s a -> s { _ccCacheParameterGroup = 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 })-        . _List---- | 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 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 })--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 })---- | The version of the cache engine version that is used in this cache cluster.-ccEngineVersion :: Lens' CacheCluster (Maybe Text)-ccEngineVersion = lens _ccEngineVersion (\s a -> s { _ccEngineVersion = a })--ccNotificationConfiguration :: Lens' CacheCluster (Maybe NotificationConfiguration)-ccNotificationConfiguration =-    lens _ccNotificationConfiguration-        (\s a -> s { _ccNotificationConfiguration = 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 })--ccPendingModifiedValues :: Lens' CacheCluster (Maybe PendingModifiedValues)-ccPendingModifiedValues =-    lens _ccPendingModifiedValues (\s a -> s { _ccPendingModifiedValues = 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 })---- | 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:------ 'sun' 'mon' 'tue' 'wed' 'thu' 'fri' 'sat'  Example: 'sun:05:00-sun:09:00'-ccPreferredMaintenanceWindow :: Lens' CacheCluster (Maybe Text)-ccPreferredMaintenanceWindow =-    lens _ccPreferredMaintenanceWindow-        (\s a -> s { _ccPreferredMaintenanceWindow = 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 })---- | A list of VPC Security Groups associated with the cache cluster.-ccSecurityGroups :: Lens' CacheCluster [SecurityGroupMembership]-ccSecurityGroups = lens _ccSecurityGroups (\s a -> s { _ccSecurityGroups = a }) . _List---- | The number of days for which ElastiCache will retain automatic cache cluster--- snapshots before deleting them. For example, if you set /SnapshotRetentionLimit/--- to 5, then a snapshot that was taken today will be 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 daily time range (in UTC) during which ElastiCache will begin 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 })--instance FromXML CacheCluster where-    parseXML x = CacheCluster-        <$> x .@? "AutoMinorVersionUpgrade"-        <*> x .@? "CacheClusterCreateTime"-        <*> x .@? "CacheClusterId"-        <*> x .@? "CacheClusterStatus"-        <*> x .@? "CacheNodeType"-        <*> x .@? "CacheNodes" .!@ mempty-        <*> x .@? "CacheParameterGroup"-        <*> x .@? "CacheSecurityGroups" .!@ mempty-        <*> x .@? "CacheSubnetGroupName"-        <*> x .@? "ClientDownloadLandingPage"-        <*> x .@? "ConfigurationEndpoint"-        <*> x .@? "Engine"-        <*> x .@? "EngineVersion"-        <*> x .@? "NotificationConfiguration"-        <*> x .@? "NumCacheNodes"-        <*> x .@? "PendingModifiedValues"-        <*> x .@? "PreferredAvailabilityZone"-        <*> x .@? "PreferredMaintenanceWindow"-        <*> x .@? "ReplicationGroupId"-        <*> x .@? "SecurityGroups" .!@ mempty-        <*> x .@? "SnapshotRetentionLimit"-        <*> x .@? "SnapshotWindow"--instance ToQuery CacheCluster where-    toQuery CacheCluster{..} = mconcat-        [ "AutoMinorVersionUpgrade"    =? _ccAutoMinorVersionUpgrade-        , "CacheClusterCreateTime"     =? _ccCacheClusterCreateTime-        , "CacheClusterId"             =? _ccCacheClusterId-        , "CacheClusterStatus"         =? _ccCacheClusterStatus-        , "CacheNodeType"              =? _ccCacheNodeType-        , "CacheNodes"                 =? _ccCacheNodes-        , "CacheParameterGroup"        =? _ccCacheParameterGroup-        , "CacheSecurityGroups"        =? _ccCacheSecurityGroups-        , "CacheSubnetGroupName"       =? _ccCacheSubnetGroupName-        , "ClientDownloadLandingPage"  =? _ccClientDownloadLandingPage-        , "ConfigurationEndpoint"      =? _ccConfigurationEndpoint-        , "Engine"                     =? _ccEngine-        , "EngineVersion"              =? _ccEngineVersion-        , "NotificationConfiguration"  =? _ccNotificationConfiguration-        , "NumCacheNodes"              =? _ccNumCacheNodes-        , "PendingModifiedValues"      =? _ccPendingModifiedValues-        , "PreferredAvailabilityZone"  =? _ccPreferredAvailabilityZone-        , "PreferredMaintenanceWindow" =? _ccPreferredMaintenanceWindow-        , "ReplicationGroupId"         =? _ccReplicationGroupId-        , "SecurityGroups"             =? _ccSecurityGroups-        , "SnapshotRetentionLimit"     =? _ccSnapshotRetentionLimit-        , "SnapshotWindow"             =? _ccSnapshotWindow-        ]--data EngineDefaults = EngineDefaults-    { _edCacheNodeTypeSpecificParameters :: List "member" CacheNodeTypeSpecificParameter-    , _edCacheParameterGroupFamily       :: Maybe Text-    , _edMarker                          :: Maybe Text-    , _edParameters                      :: List "member" Parameter-    } deriving (Eq, Read, Show)---- | 'EngineDefaults' constructor.------ The fields accessible through corresponding lenses are:------ * 'edCacheNodeTypeSpecificParameters' @::@ ['CacheNodeTypeSpecificParameter']------ * 'edCacheParameterGroupFamily' @::@ 'Maybe' 'Text'------ * 'edMarker' @::@ 'Maybe' 'Text'------ * 'edParameters' @::@ ['Parameter']----engineDefaults :: EngineDefaults-engineDefaults = EngineDefaults-    { _edCacheParameterGroupFamily       = Nothing-    , _edMarker                          = Nothing-    , _edParameters                      = mempty-    , _edCacheNodeTypeSpecificParameters = mempty-    }---- | 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 })-            . _List---- | Specifies the name of the cache parameter group family to which the engine--- default parameters apply.-edCacheParameterGroupFamily :: Lens' EngineDefaults (Maybe Text)-edCacheParameterGroupFamily =-    lens _edCacheParameterGroupFamily-        (\s a -> s { _edCacheParameterGroupFamily = a })---- | 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 }) . _List--instance FromXML EngineDefaults where-    parseXML x = EngineDefaults-        <$> x .@? "CacheNodeTypeSpecificParameters" .!@ mempty-        <*> x .@? "CacheParameterGroupFamily"-        <*> x .@? "Marker"-        <*> x .@? "Parameters" .!@ mempty--instance ToQuery EngineDefaults where-    toQuery EngineDefaults{..} = mconcat-        [ "CacheNodeTypeSpecificParameters" =? _edCacheNodeTypeSpecificParameters-        , "CacheParameterGroupFamily"       =? _edCacheParameterGroupFamily-        , "Marker"                          =? _edMarker-        , "Parameters"                      =? _edParameters-        ]--data CacheParameterGroupStatus = CacheParameterGroupStatus-    { _cpgsCacheNodeIdsToReboot    :: List "member" Text-    , _cpgsCacheParameterGroupName :: Maybe Text-    , _cpgsParameterApplyStatus    :: Maybe Text-    } deriving (Eq, Ord, Read, Show)---- | 'CacheParameterGroupStatus' constructor.------ The fields accessible through corresponding lenses are:------ * 'cpgsCacheNodeIdsToReboot' @::@ ['Text']------ * 'cpgsCacheParameterGroupName' @::@ 'Maybe' 'Text'------ * 'cpgsParameterApplyStatus' @::@ 'Maybe' 'Text'----cacheParameterGroupStatus :: CacheParameterGroupStatus-cacheParameterGroupStatus = CacheParameterGroupStatus-    { _cpgsCacheParameterGroupName = Nothing-    , _cpgsParameterApplyStatus    = Nothing-    , _cpgsCacheNodeIdsToReboot    = mempty-    }---- | 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 })-            . _List---- | The name of the cache parameter group.-cpgsCacheParameterGroupName :: Lens' CacheParameterGroupStatus (Maybe Text)-cpgsCacheParameterGroupName =-    lens _cpgsCacheParameterGroupName-        (\s a -> s { _cpgsCacheParameterGroupName = a })---- | 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 .@? "CacheNodeIdsToReboot" .!@ mempty-        <*> x .@? "CacheParameterGroupName"-        <*> x .@? "ParameterApplyStatus"--instance ToQuery CacheParameterGroupStatus where-    toQuery CacheParameterGroupStatus{..} = mconcat-        [ "CacheNodeIdsToReboot"    =? _cpgsCacheNodeIdsToReboot-        , "CacheParameterGroupName" =? _cpgsCacheParameterGroupName-        , "ParameterApplyStatus"    =? _cpgsParameterApplyStatus-        ]--data CacheNode = CacheNode-    { _cnCacheNodeCreateTime      :: Maybe ISO8601-    , _cnCacheNodeId              :: Maybe Text-    , _cnCacheNodeStatus          :: Maybe Text-    , _cnCustomerAvailabilityZone :: Maybe Text-    , _cnEndpoint                 :: Maybe Endpoint-    , _cnParameterGroupStatus     :: Maybe Text-    , _cnSourceCacheNodeId        :: Maybe Text-    } deriving (Eq, Read, Show)---- | 'CacheNode' constructor.------ The fields accessible through corresponding lenses are:------ * 'cnCacheNodeCreateTime' @::@ 'Maybe' 'UTCTime'------ * 'cnCacheNodeId' @::@ 'Maybe' 'Text'------ * 'cnCacheNodeStatus' @::@ 'Maybe' 'Text'------ * 'cnCustomerAvailabilityZone' @::@ 'Maybe' 'Text'------ * 'cnEndpoint' @::@ 'Maybe' 'Endpoint'------ * 'cnParameterGroupStatus' @::@ 'Maybe' 'Text'------ * 'cnSourceCacheNodeId' @::@ 'Maybe' 'Text'----cacheNode :: CacheNode-cacheNode = CacheNode-    { _cnCacheNodeId              = Nothing-    , _cnCacheNodeStatus          = Nothing-    , _cnCacheNodeCreateTime      = Nothing-    , _cnEndpoint                 = Nothing-    , _cnParameterGroupStatus     = Nothing-    , _cnSourceCacheNodeId        = Nothing-    , _cnCustomerAvailabilityZone = Nothing-    }---- | 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 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 Availability Zone where this node was created and now resides.-cnCustomerAvailabilityZone :: Lens' CacheNode (Maybe Text)-cnCustomerAvailabilityZone =-    lens _cnCustomerAvailabilityZone-        (\s a -> s { _cnCustomerAvailabilityZone = a })---- | The hostname for connecting to this cache node.-cnEndpoint :: Lens' CacheNode (Maybe Endpoint)-cnEndpoint = lens _cnEndpoint (\s a -> s { _cnEndpoint = 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 ID of the primary node to which this read replica node is synchronized.--- If this field is empty, then this node is not associated with a primary cache--- cluster.-cnSourceCacheNodeId :: Lens' CacheNode (Maybe Text)-cnSourceCacheNodeId =-    lens _cnSourceCacheNodeId (\s a -> s { _cnSourceCacheNodeId = a })--instance FromXML CacheNode where-    parseXML x = CacheNode-        <$> x .@? "CacheNodeCreateTime"-        <*> x .@? "CacheNodeId"-        <*> x .@? "CacheNodeStatus"-        <*> x .@? "CustomerAvailabilityZone"-        <*> x .@? "Endpoint"-        <*> x .@? "ParameterGroupStatus"-        <*> x .@? "SourceCacheNodeId"--instance ToQuery CacheNode where-    toQuery CacheNode{..} = mconcat-        [ "CacheNodeCreateTime"      =? _cnCacheNodeCreateTime-        , "CacheNodeId"              =? _cnCacheNodeId-        , "CacheNodeStatus"          =? _cnCacheNodeStatus-        , "CustomerAvailabilityZone" =? _cnCustomerAvailabilityZone-        , "Endpoint"                 =? _cnEndpoint-        , "ParameterGroupStatus"     =? _cnParameterGroupStatus-        , "SourceCacheNodeId"        =? _cnSourceCacheNodeId-        ]--data CacheSecurityGroupMembership = CacheSecurityGroupMembership-    { _csgmCacheSecurityGroupName :: Maybe Text-    , _csgmStatus                 :: Maybe Text-    } deriving (Eq, Ord, Read, Show)---- | 'CacheSecurityGroupMembership' constructor.------ The fields accessible through corresponding lenses are:------ * 'csgmCacheSecurityGroupName' @::@ 'Maybe' 'Text'------ * 'csgmStatus' @::@ 'Maybe' 'Text'----cacheSecurityGroupMembership :: CacheSecurityGroupMembership-cacheSecurityGroupMembership = CacheSecurityGroupMembership-    { _csgmCacheSecurityGroupName = Nothing-    , _csgmStatus                 = Nothing-    }---- | The name of the cache security group.-csgmCacheSecurityGroupName :: Lens' CacheSecurityGroupMembership (Maybe Text)-csgmCacheSecurityGroupName =-    lens _csgmCacheSecurityGroupName-        (\s a -> s { _csgmCacheSecurityGroupName = a })---- | 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 })--instance FromXML CacheSecurityGroupMembership where-    parseXML x = CacheSecurityGroupMembership-        <$> x .@? "CacheSecurityGroupName"-        <*> x .@? "Status"--instance ToQuery CacheSecurityGroupMembership where-    toQuery CacheSecurityGroupMembership{..} = mconcat-        [ "CacheSecurityGroupName" =? _csgmCacheSecurityGroupName-        , "Status"                 =? _csgmStatus-        ]--newtype AvailabilityZone = AvailabilityZone-    { _azName :: Maybe Text-    } deriving (Eq, Ord, Read, Show, Monoid)---- | 'AvailabilityZone' constructor.------ The fields accessible through corresponding lenses are:------ * 'azName' @::@ 'Maybe' 'Text'----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 ToQuery AvailabilityZone where-    toQuery AvailabilityZone{..} = mconcat-        [ "Name" =? _azName-        ]--data NodeGroupMember = NodeGroupMember-    { _ngmCacheClusterId            :: Maybe Text-    , _ngmCacheNodeId               :: Maybe Text-    , _ngmCurrentRole               :: Maybe Text-    , _ngmPreferredAvailabilityZone :: Maybe Text-    , _ngmReadEndpoint              :: Maybe Endpoint-    } deriving (Eq, Read, Show)---- | 'NodeGroupMember' constructor.------ The fields accessible through corresponding lenses are:------ * 'ngmCacheClusterId' @::@ 'Maybe' 'Text'------ * 'ngmCacheNodeId' @::@ 'Maybe' 'Text'------ * 'ngmCurrentRole' @::@ 'Maybe' 'Text'------ * 'ngmPreferredAvailabilityZone' @::@ 'Maybe' 'Text'------ * 'ngmReadEndpoint' @::@ 'Maybe' 'Endpoint'----nodeGroupMember :: NodeGroupMember-nodeGroupMember = NodeGroupMember-    { _ngmCacheClusterId            = Nothing-    , _ngmCacheNodeId               = Nothing-    , _ngmReadEndpoint              = Nothing-    , _ngmPreferredAvailabilityZone = Nothing-    , _ngmCurrentRole               = 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 role that is currently assigned to the node - /primary/ or /replica/.-ngmCurrentRole :: Lens' NodeGroupMember (Maybe Text)-ngmCurrentRole = lens _ngmCurrentRole (\s a -> s { _ngmCurrentRole = 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 })--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 .@? "CurrentRole"-        <*> x .@? "PreferredAvailabilityZone"-        <*> x .@? "ReadEndpoint"--instance ToQuery NodeGroupMember where-    toQuery NodeGroupMember{..} = mconcat-        [ "CacheClusterId"            =? _ngmCacheClusterId-        , "CacheNodeId"               =? _ngmCacheNodeId-        , "CurrentRole"               =? _ngmCurrentRole-        , "PreferredAvailabilityZone" =? _ngmPreferredAvailabilityZone-        , "ReadEndpoint"              =? _ngmReadEndpoint-        ]--data CacheParameterGroup = CacheParameterGroup-    { _cpgCacheParameterGroupFamily :: Maybe Text-    , _cpgCacheParameterGroupName   :: Maybe Text-    , _cpgDescription               :: Maybe Text-    } deriving (Eq, Ord, Read, Show)---- | 'CacheParameterGroup' constructor.------ The fields accessible through corresponding lenses are:------ * 'cpgCacheParameterGroupFamily' @::@ 'Maybe' 'Text'------ * 'cpgCacheParameterGroupName' @::@ 'Maybe' 'Text'------ * 'cpgDescription' @::@ 'Maybe' 'Text'----cacheParameterGroup :: CacheParameterGroup-cacheParameterGroup = CacheParameterGroup-    { _cpgCacheParameterGroupName   = Nothing-    , _cpgCacheParameterGroupFamily = Nothing-    , _cpgDescription               = Nothing-    }---- | The name of the cache parameter group family that this cache parameter group--- is compatible with.-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 ToQuery CacheParameterGroup where-    toQuery CacheParameterGroup{..} = mconcat-        [ "CacheParameterGroupFamily" =? _cpgCacheParameterGroupFamily-        , "CacheParameterGroupName"   =? _cpgCacheParameterGroupName-        , "Description"               =? _cpgDescription-        ]--data AutomaticFailoverStatus-    = AFSDisabled  -- ^ disabled-    | AFSDisabling -- ^ disabling-    | AFSEnabled   -- ^ enabled-    | AFSEnabling  -- ^ enabling-      deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable AutomaticFailoverStatus--instance FromText AutomaticFailoverStatus where-    parser = takeLowerText >>= \case-        "disabled"  -> pure AFSDisabled-        "disabling" -> pure AFSDisabling-        "enabled"   -> pure AFSEnabled-        "enabling"  -> pure AFSEnabling-        e           -> fail $-            "Failure parsing AutomaticFailoverStatus from " ++ show e--instance ToText AutomaticFailoverStatus where-    toText = \case-        AFSDisabled  -> "disabled"-        AFSDisabling -> "disabling"-        AFSEnabled   -> "enabled"-        AFSEnabling  -> "enabling"--instance ToByteString AutomaticFailoverStatus-instance ToHeader     AutomaticFailoverStatus-instance ToQuery      AutomaticFailoverStatus--instance FromXML AutomaticFailoverStatus where-    parseXML = parseXMLText "AutomaticFailoverStatus"--data CacheSecurityGroup = CacheSecurityGroup-    { _csgCacheSecurityGroupName :: Maybe Text-    , _csgDescription            :: Maybe Text-    , _csgEC2SecurityGroups      :: List "member" EC2SecurityGroup-    , _csgOwnerId                :: Maybe Text-    } deriving (Eq, Read, Show)---- | 'CacheSecurityGroup' constructor.------ The fields accessible through corresponding lenses are:------ * 'csgCacheSecurityGroupName' @::@ 'Maybe' 'Text'------ * 'csgDescription' @::@ 'Maybe' 'Text'------ * 'csgEC2SecurityGroups' @::@ ['EC2SecurityGroup']------ * 'csgOwnerId' @::@ 'Maybe' 'Text'----cacheSecurityGroup :: CacheSecurityGroup-cacheSecurityGroup = CacheSecurityGroup-    { _csgOwnerId                = Nothing-    , _csgCacheSecurityGroupName = Nothing-    , _csgDescription            = Nothing-    , _csgEC2SecurityGroups      = mempty-    }---- | The name of the cache security group.-csgCacheSecurityGroupName :: Lens' CacheSecurityGroup (Maybe Text)-csgCacheSecurityGroupName =-    lens _csgCacheSecurityGroupName-        (\s a -> s { _csgCacheSecurityGroupName = a })---- | The description of the cache security group.-csgDescription :: Lens' CacheSecurityGroup (Maybe Text)-csgDescription = lens _csgDescription (\s a -> s { _csgDescription = 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 })-        . _List---- | The AWS account ID of the cache security group owner.-csgOwnerId :: Lens' CacheSecurityGroup (Maybe Text)-csgOwnerId = lens _csgOwnerId (\s a -> s { _csgOwnerId = a })--instance FromXML CacheSecurityGroup where-    parseXML x = CacheSecurityGroup-        <$> x .@? "CacheSecurityGroupName"-        <*> x .@? "Description"-        <*> x .@? "EC2SecurityGroups" .!@ mempty-        <*> x .@? "OwnerId"--instance ToQuery CacheSecurityGroup where-    toQuery CacheSecurityGroup{..} = mconcat-        [ "CacheSecurityGroupName" =? _csgCacheSecurityGroupName-        , "Description"            =? _csgDescription-        , "EC2SecurityGroups"      =? _csgEC2SecurityGroups-        , "OwnerId"                =? _csgOwnerId-        ]--data CacheNodeTypeSpecificParameter = CacheNodeTypeSpecificParameter-    { _cntspAllowedValues               :: Maybe Text-    , _cntspCacheNodeTypeSpecificValues :: List "member" CacheNodeTypeSpecificValue-    , _cntspDataType                    :: Maybe Text-    , _cntspDescription                 :: Maybe Text-    , _cntspIsModifiable                :: Maybe Bool-    , _cntspMinimumEngineVersion        :: Maybe Text-    , _cntspParameterName               :: Maybe Text-    , _cntspSource                      :: Maybe Text-    } deriving (Eq, Read, Show)---- | 'CacheNodeTypeSpecificParameter' constructor.------ The fields accessible through corresponding lenses are:------ * 'cntspAllowedValues' @::@ 'Maybe' 'Text'------ * 'cntspCacheNodeTypeSpecificValues' @::@ ['CacheNodeTypeSpecificValue']------ * 'cntspDataType' @::@ 'Maybe' 'Text'------ * 'cntspDescription' @::@ 'Maybe' 'Text'------ * 'cntspIsModifiable' @::@ 'Maybe' 'Bool'------ * 'cntspMinimumEngineVersion' @::@ 'Maybe' 'Text'------ * 'cntspParameterName' @::@ 'Maybe' 'Text'------ * 'cntspSource' @::@ 'Maybe' 'Text'----cacheNodeTypeSpecificParameter :: CacheNodeTypeSpecificParameter-cacheNodeTypeSpecificParameter = CacheNodeTypeSpecificParameter-    { _cntspParameterName               = Nothing-    , _cntspDescription                 = Nothing-    , _cntspSource                      = Nothing-    , _cntspDataType                    = Nothing-    , _cntspAllowedValues               = Nothing-    , _cntspIsModifiable                = Nothing-    , _cntspMinimumEngineVersion        = Nothing-    , _cntspCacheNodeTypeSpecificValues = mempty-    }---- | The valid range of values for the parameter.-cntspAllowedValues :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)-cntspAllowedValues =-    lens _cntspAllowedValues (\s a -> s { _cntspAllowedValues = a })---- | 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 })-            . _List---- | The valid data type for the parameter.-cntspDataType :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)-cntspDataType = lens _cntspDataType (\s a -> s { _cntspDataType = a })---- | A description of the parameter.-cntspDescription :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)-cntspDescription = lens _cntspDescription (\s a -> s { _cntspDescription = 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 earliest cache engine version to which the parameter can apply.-cntspMinimumEngineVersion :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)-cntspMinimumEngineVersion =-    lens _cntspMinimumEngineVersion-        (\s a -> s { _cntspMinimumEngineVersion = a })---- | The name of the parameter.-cntspParameterName :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)-cntspParameterName =-    lens _cntspParameterName (\s a -> s { _cntspParameterName = a })---- | The source of the parameter value.-cntspSource :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)-cntspSource = lens _cntspSource (\s a -> s { _cntspSource = a })--instance FromXML CacheNodeTypeSpecificParameter where-    parseXML x = CacheNodeTypeSpecificParameter-        <$> x .@? "AllowedValues"-        <*> x .@? "CacheNodeTypeSpecificValues" .!@ mempty-        <*> x .@? "DataType"-        <*> x .@? "Description"-        <*> x .@? "IsModifiable"-        <*> x .@? "MinimumEngineVersion"-        <*> x .@? "ParameterName"-        <*> x .@? "Source"--instance ToQuery CacheNodeTypeSpecificParameter where-    toQuery CacheNodeTypeSpecificParameter{..} = mconcat-        [ "AllowedValues"               =? _cntspAllowedValues-        , "CacheNodeTypeSpecificValues" =? _cntspCacheNodeTypeSpecificValues-        , "DataType"                    =? _cntspDataType-        , "Description"                 =? _cntspDescription-        , "IsModifiable"                =? _cntspIsModifiable-        , "MinimumEngineVersion"        =? _cntspMinimumEngineVersion-        , "ParameterName"               =? _cntspParameterName-        , "Source"                      =? _cntspSource-        ]--data AZMode-    = CrossAz  -- ^ cross-az-    | SingleAz -- ^ single-az-      deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable AZMode--instance FromText AZMode where-    parser = takeLowerText >>= \case-        "cross-az"  -> pure CrossAz-        "single-az" -> pure SingleAz-        e           -> fail $-            "Failure parsing AZMode from " ++ show e--instance ToText AZMode where-    toText = \case-        CrossAz  -> "cross-az"-        SingleAz -> "single-az"--instance ToByteString AZMode-instance ToHeader     AZMode-instance ToQuery      AZMode--instance FromXML AZMode where-    parseXML = parseXMLText "AZMode"--data CacheEngineVersion = CacheEngineVersion-    { _cevCacheEngineDescription        :: Maybe Text-    , _cevCacheEngineVersionDescription :: Maybe Text-    , _cevCacheParameterGroupFamily     :: Maybe Text-    , _cevEngine                        :: Maybe Text-    , _cevEngineVersion                 :: Maybe Text-    } deriving (Eq, Ord, Read, Show)---- | 'CacheEngineVersion' constructor.------ The fields accessible through corresponding lenses are:------ * 'cevCacheEngineDescription' @::@ 'Maybe' 'Text'------ * 'cevCacheEngineVersionDescription' @::@ 'Maybe' 'Text'------ * 'cevCacheParameterGroupFamily' @::@ 'Maybe' 'Text'------ * 'cevEngine' @::@ 'Maybe' 'Text'------ * 'cevEngineVersion' @::@ 'Maybe' 'Text'----cacheEngineVersion :: CacheEngineVersion-cacheEngineVersion = CacheEngineVersion-    { _cevEngine                        = Nothing-    , _cevEngineVersion                 = Nothing-    , _cevCacheParameterGroupFamily     = Nothing-    , _cevCacheEngineDescription        = Nothing-    , _cevCacheEngineVersionDescription = Nothing-    }---- | The description of the cache engine.-cevCacheEngineDescription :: Lens' CacheEngineVersion (Maybe Text)-cevCacheEngineDescription =-    lens _cevCacheEngineDescription-        (\s a -> s { _cevCacheEngineDescription = a })---- | The description of the cache engine version.-cevCacheEngineVersionDescription :: Lens' CacheEngineVersion (Maybe Text)-cevCacheEngineVersionDescription =-    lens _cevCacheEngineVersionDescription-        (\s a -> s { _cevCacheEngineVersionDescription = a })---- | The name of the cache parameter group family associated with this cache--- engine.-cevCacheParameterGroupFamily :: Lens' CacheEngineVersion (Maybe Text)-cevCacheParameterGroupFamily =-    lens _cevCacheParameterGroupFamily-        (\s a -> s { _cevCacheParameterGroupFamily = a })---- | The name of the cache engine.-cevEngine :: Lens' CacheEngineVersion (Maybe Text)-cevEngine = lens _cevEngine (\s a -> s { _cevEngine = a })---- | The version number of the cache engine.-cevEngineVersion :: Lens' CacheEngineVersion (Maybe Text)-cevEngineVersion = lens _cevEngineVersion (\s a -> s { _cevEngineVersion = a })--instance FromXML CacheEngineVersion where-    parseXML x = CacheEngineVersion-        <$> x .@? "CacheEngineDescription"-        <*> x .@? "CacheEngineVersionDescription"-        <*> x .@? "CacheParameterGroupFamily"-        <*> x .@? "Engine"-        <*> x .@? "EngineVersion"--instance ToQuery CacheEngineVersion where-    toQuery CacheEngineVersion{..} = mconcat-        [ "CacheEngineDescription"        =? _cevCacheEngineDescription-        , "CacheEngineVersionDescription" =? _cevCacheEngineVersionDescription-        , "CacheParameterGroupFamily"     =? _cevCacheParameterGroupFamily-        , "Engine"                        =? _cevEngine-        , "EngineVersion"                 =? _cevEngineVersion-        ]--data ReplicationGroup = ReplicationGroup-    { _rgAutomaticFailover     :: Maybe AutomaticFailoverStatus-    , _rgDescription           :: Maybe Text-    , _rgMemberClusters        :: List "member" Text-    , _rgNodeGroups            :: List "member" NodeGroup-    , _rgPendingModifiedValues :: Maybe ReplicationGroupPendingModifiedValues-    , _rgReplicationGroupId    :: Maybe Text-    , _rgSnapshottingClusterId :: Maybe Text-    , _rgStatus                :: Maybe Text-    } deriving (Eq, Read, Show)---- | 'ReplicationGroup' constructor.------ The fields accessible through corresponding lenses are:------ * 'rgAutomaticFailover' @::@ 'Maybe' 'AutomaticFailoverStatus'------ * 'rgDescription' @::@ 'Maybe' 'Text'------ * 'rgMemberClusters' @::@ ['Text']------ * 'rgNodeGroups' @::@ ['NodeGroup']------ * 'rgPendingModifiedValues' @::@ 'Maybe' 'ReplicationGroupPendingModifiedValues'------ * 'rgReplicationGroupId' @::@ 'Maybe' 'Text'------ * 'rgSnapshottingClusterId' @::@ 'Maybe' 'Text'------ * 'rgStatus' @::@ 'Maybe' 'Text'----replicationGroup :: ReplicationGroup-replicationGroup = ReplicationGroup-    { _rgReplicationGroupId    = Nothing-    , _rgDescription           = Nothing-    , _rgStatus                = Nothing-    , _rgPendingModifiedValues = Nothing-    , _rgMemberClusters        = mempty-    , _rgNodeGroups            = mempty-    , _rgSnapshottingClusterId = Nothing-    , _rgAutomaticFailover     = Nothing-    }---- | Indicates the status of Multi-AZ for this replication group.------ ElastiCache Multi-AZ replication groups are not supported on:------ Redis versions earlier than 2.8.6. T1 and T2 cache node types.-rgAutomaticFailover :: Lens' ReplicationGroup (Maybe AutomaticFailoverStatus)-rgAutomaticFailover =-    lens _rgAutomaticFailover (\s a -> s { _rgAutomaticFailover = a })---- | The description of the replication group.-rgDescription :: Lens' ReplicationGroup (Maybe Text)-rgDescription = lens _rgDescription (\s a -> s { _rgDescription = 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 }) . _List---- | 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 }) . _List---- | 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 })---- | The identifier for the replication group.-rgReplicationGroupId :: Lens' ReplicationGroup (Maybe Text)-rgReplicationGroupId =-    lens _rgReplicationGroupId (\s a -> s { _rgReplicationGroupId = a })---- | 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 current state of this replication group - /creating/, /available/, etc.-rgStatus :: Lens' ReplicationGroup (Maybe Text)-rgStatus = lens _rgStatus (\s a -> s { _rgStatus = a })--instance FromXML ReplicationGroup where-    parseXML x = ReplicationGroup-        <$> x .@? "AutomaticFailover"-        <*> x .@? "Description"-        <*> x .@? "MemberClusters" .!@ mempty-        <*> x .@? "NodeGroups" .!@ mempty-        <*> x .@? "PendingModifiedValues"-        <*> x .@? "ReplicationGroupId"-        <*> x .@? "SnapshottingClusterId"-        <*> x .@? "Status"--instance ToQuery ReplicationGroup where-    toQuery ReplicationGroup{..} = mconcat-        [ "AutomaticFailover"     =? _rgAutomaticFailover-        , "Description"           =? _rgDescription-        , "MemberClusters"        =? _rgMemberClusters-        , "NodeGroups"            =? _rgNodeGroups-        , "PendingModifiedValues" =? _rgPendingModifiedValues-        , "ReplicationGroupId"    =? _rgReplicationGroupId-        , "SnapshottingClusterId" =? _rgSnapshottingClusterId-        , "Status"                =? _rgStatus-        ]--data RecurringCharge = RecurringCharge-    { _rcRecurringChargeAmount    :: Maybe Double-    , _rcRecurringChargeFrequency :: Maybe Text-    } deriving (Eq, Ord, Read, Show)---- | 'RecurringCharge' constructor.------ The fields accessible through corresponding lenses are:------ * 'rcRecurringChargeAmount' @::@ 'Maybe' 'Double'------ * 'rcRecurringChargeFrequency' @::@ 'Maybe' 'Text'----recurringCharge :: RecurringCharge-recurringCharge = RecurringCharge-    { _rcRecurringChargeAmount    = Nothing-    , _rcRecurringChargeFrequency = Nothing-    }---- | The monetary amount of the recurring charge.-rcRecurringChargeAmount :: Lens' RecurringCharge (Maybe Double)-rcRecurringChargeAmount =-    lens _rcRecurringChargeAmount (\s a -> s { _rcRecurringChargeAmount = a })---- | The frequency of the recurring charge.-rcRecurringChargeFrequency :: Lens' RecurringCharge (Maybe Text)-rcRecurringChargeFrequency =-    lens _rcRecurringChargeFrequency-        (\s a -> s { _rcRecurringChargeFrequency = a })--instance FromXML RecurringCharge where-    parseXML x = RecurringCharge-        <$> x .@? "RecurringChargeAmount"-        <*> x .@? "RecurringChargeFrequency"--instance ToQuery RecurringCharge where-    toQuery RecurringCharge{..} = mconcat-        [ "RecurringChargeAmount"    =? _rcRecurringChargeAmount-        , "RecurringChargeFrequency" =? _rcRecurringChargeFrequency-        ]--data ReservedCacheNodesOffering = ReservedCacheNodesOffering-    { _rcnoCacheNodeType                :: Maybe Text-    , _rcnoDuration                     :: Maybe Int-    , _rcnoFixedPrice                   :: Maybe Double-    , _rcnoOfferingType                 :: Maybe Text-    , _rcnoProductDescription           :: Maybe Text-    , _rcnoRecurringCharges             :: List "member" RecurringCharge-    , _rcnoReservedCacheNodesOfferingId :: Maybe Text-    , _rcnoUsagePrice                   :: Maybe Double-    } deriving (Eq, Read, Show)---- | 'ReservedCacheNodesOffering' constructor.------ The fields accessible through corresponding lenses are:------ * 'rcnoCacheNodeType' @::@ 'Maybe' 'Text'------ * 'rcnoDuration' @::@ 'Maybe' 'Int'------ * 'rcnoFixedPrice' @::@ 'Maybe' 'Double'------ * 'rcnoOfferingType' @::@ 'Maybe' 'Text'------ * 'rcnoProductDescription' @::@ 'Maybe' 'Text'------ * 'rcnoRecurringCharges' @::@ ['RecurringCharge']------ * 'rcnoReservedCacheNodesOfferingId' @::@ 'Maybe' 'Text'------ * 'rcnoUsagePrice' @::@ 'Maybe' 'Double'----reservedCacheNodesOffering :: ReservedCacheNodesOffering-reservedCacheNodesOffering = ReservedCacheNodesOffering-    { _rcnoReservedCacheNodesOfferingId = Nothing-    , _rcnoCacheNodeType                = Nothing-    , _rcnoDuration                     = Nothing-    , _rcnoFixedPrice                   = Nothing-    , _rcnoUsagePrice                   = Nothing-    , _rcnoProductDescription           = Nothing-    , _rcnoOfferingType                 = Nothing-    , _rcnoRecurringCharges             = mempty-    }---- | 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' 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 (VPC). Redis backup/restore is not supported for t2 instances.--- Redis Append-only files (AOF) functionality is not supported for t1 or t2--- instances.  For a complete listing of cache node types and specifications,--- see <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details> and <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#CacheParameterGroups.Memcached.NodeSpecific Cache NodeType-Specific Parameters for Memcached> or <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#CacheParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parametersfor Redis>.-rcnoCacheNodeType :: Lens' ReservedCacheNodesOffering (Maybe Text)-rcnoCacheNodeType =-    lens _rcnoCacheNodeType (\s a -> s { _rcnoCacheNodeType = a })---- | The duration of the offering. in seconds.-rcnoDuration :: Lens' ReservedCacheNodesOffering (Maybe Int)-rcnoDuration = lens _rcnoDuration (\s a -> s { _rcnoDuration = a })---- | The fixed price charged for this offering.-rcnoFixedPrice :: Lens' ReservedCacheNodesOffering (Maybe Double)-rcnoFixedPrice = lens _rcnoFixedPrice (\s a -> s { _rcnoFixedPrice = a })---- | The offering type.-rcnoOfferingType :: Lens' ReservedCacheNodesOffering (Maybe Text)-rcnoOfferingType = lens _rcnoOfferingType (\s a -> s { _rcnoOfferingType = 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 })-        . _List---- | A unique identifier for the reserved cache node offering.-rcnoReservedCacheNodesOfferingId :: Lens' ReservedCacheNodesOffering (Maybe Text)-rcnoReservedCacheNodesOfferingId =-    lens _rcnoReservedCacheNodesOfferingId-        (\s a -> s { _rcnoReservedCacheNodesOfferingId = a })---- | The hourly price charged for this offering.-rcnoUsagePrice :: Lens' ReservedCacheNodesOffering (Maybe Double)-rcnoUsagePrice = lens _rcnoUsagePrice (\s a -> s { _rcnoUsagePrice = a })--instance FromXML ReservedCacheNodesOffering where-    parseXML x = ReservedCacheNodesOffering-        <$> x .@? "CacheNodeType"-        <*> x .@? "Duration"-        <*> x .@? "FixedPrice"-        <*> x .@? "OfferingType"-        <*> x .@? "ProductDescription"-        <*> x .@? "RecurringCharges" .!@ mempty-        <*> x .@? "ReservedCacheNodesOfferingId"-        <*> x .@? "UsagePrice"--instance ToQuery ReservedCacheNodesOffering where-    toQuery ReservedCacheNodesOffering{..} = mconcat-        [ "CacheNodeType"                =? _rcnoCacheNodeType-        , "Duration"                     =? _rcnoDuration-        , "FixedPrice"                   =? _rcnoFixedPrice-        , "OfferingType"                 =? _rcnoOfferingType-        , "ProductDescription"           =? _rcnoProductDescription-        , "RecurringCharges"             =? _rcnoRecurringCharges-        , "ReservedCacheNodesOfferingId" =? _rcnoReservedCacheNodesOfferingId-        , "UsagePrice"                   =? _rcnoUsagePrice-        ]--newtype TagListMessage = TagListMessage-    { _tlmTagList :: List "member" Tag-    } deriving (Eq, Read, Show, Monoid, Semigroup)--instance GHC.Exts.IsList TagListMessage where-    type Item TagListMessage = Tag--    fromList = TagListMessage . GHC.Exts.fromList-    toList   = GHC.Exts.toList . _tlmTagList---- | 'TagListMessage' constructor.------ The fields accessible through corresponding lenses are:------ * 'tlmTagList' @::@ ['Tag']----tagListMessage :: TagListMessage-tagListMessage = TagListMessage-    { _tlmTagList = mempty-    }---- | A list of cost allocation tags as key-value pairs.-tlmTagList :: Lens' TagListMessage [Tag]-tlmTagList = lens _tlmTagList (\s a -> s { _tlmTagList = a }) . _List--instance FromXML TagListMessage where-    parseXML x = TagListMessage-        <$> x .@? "TagList" .!@ mempty--instance ToQuery TagListMessage where-    toQuery TagListMessage{..} = mconcat-        [ "TagList" =? _tlmTagList-        ]--data Endpoint = Endpoint-    { _eAddress :: Maybe Text-    , _ePort    :: Maybe Int-    } deriving (Eq, Ord, Read, Show)---- | 'Endpoint' constructor.------ The fields accessible through corresponding lenses are:------ * 'eAddress' @::@ 'Maybe' 'Text'------ * 'ePort' @::@ 'Maybe' 'Int'----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 ToQuery Endpoint where-    toQuery Endpoint{..} = mconcat-        [ "Address" =? _eAddress-        , "Port"    =? _ePort-        ]--data PendingModifiedValues = PendingModifiedValues-    { _pmvCacheNodeIdsToRemove :: List "member" Text-    , _pmvEngineVersion        :: Maybe Text-    , _pmvNumCacheNodes        :: Maybe Int-    } deriving (Eq, Ord, Read, Show)---- | 'PendingModifiedValues' constructor.------ The fields accessible through corresponding lenses are:------ * 'pmvCacheNodeIdsToRemove' @::@ ['Text']------ * 'pmvEngineVersion' @::@ 'Maybe' 'Text'------ * 'pmvNumCacheNodes' @::@ 'Maybe' 'Int'----pendingModifiedValues :: PendingModifiedValues-pendingModifiedValues = PendingModifiedValues-    { _pmvNumCacheNodes        = Nothing-    , _pmvCacheNodeIdsToRemove = mempty-    , _pmvEngineVersion        = Nothing-    }---- | 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 })-        . _List---- | The new cache engine version that the cache cluster will run.-pmvEngineVersion :: Lens' PendingModifiedValues (Maybe Text)-pmvEngineVersion = lens _pmvEngineVersion (\s a -> s { _pmvEngineVersion = a })---- | 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 .@? "CacheNodeIdsToRemove" .!@ mempty-        <*> x .@? "EngineVersion"-        <*> x .@? "NumCacheNodes"--instance ToQuery PendingModifiedValues where-    toQuery PendingModifiedValues{..} = mconcat-        [ "CacheNodeIdsToRemove" =? _pmvCacheNodeIdsToRemove-        , "EngineVersion"        =? _pmvEngineVersion-        , "NumCacheNodes"        =? _pmvNumCacheNodes-        ]--newtype CacheParameterGroupNameMessage = CacheParameterGroupNameMessage-    { _cpgnmCacheParameterGroupName :: Maybe Text-    } deriving (Eq, Ord, Read, Show, Monoid)---- | 'CacheParameterGroupNameMessage' constructor.------ The fields accessible through corresponding lenses are:------ * 'cpgnmCacheParameterGroupName' @::@ 'Maybe' 'Text'----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 ToQuery CacheParameterGroupNameMessage where-    toQuery CacheParameterGroupNameMessage{..} = mconcat-        [ "CacheParameterGroupName" =? _cpgnmCacheParameterGroupName-        ]--data Parameter = Parameter-    { _pAllowedValues        :: Maybe Text-    , _pDataType             :: Maybe Text-    , _pDescription          :: Maybe Text-    , _pIsModifiable         :: Maybe Bool-    , _pMinimumEngineVersion :: Maybe Text-    , _pParameterName        :: Maybe Text-    , _pParameterValue       :: Maybe Text-    , _pSource               :: Maybe Text-    } deriving (Eq, Ord, Read, Show)---- | 'Parameter' constructor.------ The fields accessible through corresponding lenses are:------ * 'pAllowedValues' @::@ 'Maybe' 'Text'------ * 'pDataType' @::@ 'Maybe' 'Text'------ * 'pDescription' @::@ 'Maybe' 'Text'------ * 'pIsModifiable' @::@ 'Maybe' 'Bool'------ * 'pMinimumEngineVersion' @::@ 'Maybe' 'Text'------ * 'pParameterName' @::@ 'Maybe' 'Text'------ * 'pParameterValue' @::@ 'Maybe' 'Text'------ * 'pSource' @::@ 'Maybe' 'Text'----parameter :: Parameter-parameter = Parameter-    { _pParameterName        = Nothing-    , _pParameterValue       = Nothing-    , _pDescription          = Nothing-    , _pSource               = Nothing-    , _pDataType             = Nothing-    , _pAllowedValues        = Nothing-    , _pIsModifiable         = Nothing-    , _pMinimumEngineVersion = Nothing-    }---- | The valid range of values for the parameter.-pAllowedValues :: Lens' Parameter (Maybe Text)-pAllowedValues = lens _pAllowedValues (\s a -> s { _pAllowedValues = a })---- | The valid data type for the parameter.-pDataType :: Lens' Parameter (Maybe Text)-pDataType = lens _pDataType (\s a -> s { _pDataType = a })---- | A description of the parameter.-pDescription :: Lens' Parameter (Maybe Text)-pDescription = lens _pDescription (\s a -> s { _pDescription = 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 earliest cache engine version to which the parameter can apply.-pMinimumEngineVersion :: Lens' Parameter (Maybe Text)-pMinimumEngineVersion =-    lens _pMinimumEngineVersion (\s a -> s { _pMinimumEngineVersion = a })---- | The name of the parameter.-pParameterName :: Lens' Parameter (Maybe Text)-pParameterName = lens _pParameterName (\s a -> s { _pParameterName = a })---- | The value of the parameter.-pParameterValue :: Lens' Parameter (Maybe Text)-pParameterValue = lens _pParameterValue (\s a -> s { _pParameterValue = a })---- | The source of the parameter.-pSource :: Lens' Parameter (Maybe Text)-pSource = lens _pSource (\s a -> s { _pSource = a })--instance FromXML Parameter where-    parseXML x = Parameter-        <$> x .@? "AllowedValues"-        <*> x .@? "DataType"-        <*> x .@? "Description"-        <*> x .@? "IsModifiable"-        <*> x .@? "MinimumEngineVersion"-        <*> x .@? "ParameterName"-        <*> x .@? "ParameterValue"-        <*> x .@? "Source"--instance ToQuery Parameter where-    toQuery Parameter{..} = mconcat-        [ "AllowedValues"        =? _pAllowedValues-        , "DataType"             =? _pDataType-        , "Description"          =? _pDescription-        , "IsModifiable"         =? _pIsModifiable-        , "MinimumEngineVersion" =? _pMinimumEngineVersion-        , "ParameterName"        =? _pParameterName-        , "ParameterValue"       =? _pParameterValue-        , "Source"               =? _pSource-        ]+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TypeFamilies      #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ElastiCache.Types+-- Copyright   : (c) 2013-2015 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+    (+    -- * Service+      ElastiCache++    -- * Errors+    , _CacheSubnetGroupAlreadyExistsFault+    , _CacheSubnetGroupInUse+    , _CacheSecurityGroupNotFoundFault+    , _ReservedCacheNodeAlreadyExistsFault+    , _AuthorizationAlreadyExistsFault+    , _ReservedCacheNodeQuotaExceededFault+    , _CacheSubnetGroupQuotaExceededFault+    , _ReplicationGroupNotFoundFault+    , _ReservedCacheNodesOfferingNotFoundFault+    , _TagQuotaPerResourceExceeded+    , _InvalidSubnet+    , _SnapshotNotFoundFault+    , _InsufficientCacheClusterCapacityFault+    , _InvalidSnapshotStateFault+    , _SnapshotAlreadyExistsFault+    , _TagNotFoundFault+    , _SnapshotQuotaExceededFault+    , _CacheParameterGroupAlreadyExistsFault+    , _NodeQuotaForClusterExceededFault+    , _SnapshotFeatureNotSupportedFault+    , _CacheSubnetGroupNotFoundFault+    , _ReservedCacheNodeNotFoundFault+    , _InvalidParameterValueException+    , _InvalidVPCNetworkStateFault+    , _CacheClusterNotFoundFault+    , _InvalidReplicationGroupStateFault+    , _ReplicationGroupAlreadyExistsFault+    , _SubnetInUse+    , _CacheClusterAlreadyExistsFault+    , _ClusterQuotaForCustomerExceededFault+    , _AuthorizationNotFoundFault+    , _CacheSecurityGroupQuotaExceededFault+    , _InvalidCacheClusterStateFault+    , _CacheParameterGroupQuotaExceededFault+    , _NodeQuotaForCustomerExceededFault+    , _CacheSubnetQuotaExceededFault+    , _CacheParameterGroupNotFoundFault+    , _InvalidParameterCombinationException+    , _InvalidARNFault+    , _InvalidCacheParameterGroupStateFault+    , _CacheSecurityGroupAlreadyExistsFault+    , _InvalidCacheSecurityGroupStateFault++    -- * AZMode+    , AZMode (..)++    -- * AutomaticFailoverStatus+    , AutomaticFailoverStatus (..)++    -- * PendingAutomaticFailoverStatus+    , PendingAutomaticFailoverStatus (..)++    -- * SourceType+    , SourceType (..)++    -- * AvailabilityZone+    , AvailabilityZone+    , availabilityZone+    , azName++    -- * CacheCluster+    , CacheCluster+    , cacheCluster+    , ccCacheNodeType+    , ccEngineVersion+    , ccCacheNodes+    , ccCacheClusterCreateTime+    , ccAutoMinorVersionUpgrade+    , ccSecurityGroups+    , ccNotificationConfiguration+    , ccSnapshotWindow+    , ccCacheClusterId+    , ccConfigurationEndpoint+    , ccEngine+    , ccCacheSecurityGroups+    , ccClientDownloadLandingPage+    , ccPreferredMaintenanceWindow+    , ccCacheSubnetGroupName+    , ccCacheClusterStatus+    , ccPreferredAvailabilityZone+    , ccCacheParameterGroup+    , ccSnapshotRetentionLimit+    , ccReplicationGroupId+    , ccPendingModifiedValues+    , ccNumCacheNodes++    -- * CacheEngineVersion+    , CacheEngineVersion+    , cacheEngineVersion+    , cevCacheEngineDescription+    , cevCacheParameterGroupFamily+    , cevEngineVersion+    , cevCacheEngineVersionDescription+    , cevEngine++    -- * CacheNode+    , CacheNode+    , cacheNode+    , cnSourceCacheNodeId+    , cnParameterGroupStatus+    , cnCacheNodeCreateTime+    , cnCustomerAvailabilityZone+    , cnCacheNodeId+    , cnCacheNodeStatus+    , cnEndpoint++    -- * CacheNodeTypeSpecificParameter+    , CacheNodeTypeSpecificParameter+    , cacheNodeTypeSpecificParameter+    , cntspCacheNodeTypeSpecificValues+    , cntspMinimumEngineVersion+    , cntspSource+    , cntspIsModifiable+    , cntspAllowedValues+    , cntspDataType+    , cntspParameterName+    , cntspDescription++    -- * CacheNodeTypeSpecificValue+    , CacheNodeTypeSpecificValue+    , cacheNodeTypeSpecificValue+    , cntsvCacheNodeType+    , cntsvValue++    -- * CacheParameterGroup+    , CacheParameterGroup+    , cacheParameterGroup+    , cpgCacheParameterGroupFamily+    , cpgCacheParameterGroupName+    , cpgDescription++    -- * CacheParameterGroupNameMessage+    , CacheParameterGroupNameMessage+    , cacheParameterGroupNameMessage+    , cpgnmCacheParameterGroupName++    -- * CacheParameterGroupStatus+    , CacheParameterGroupStatus+    , cacheParameterGroupStatus+    , cpgsCacheParameterGroupName+    , cpgsCacheNodeIdsToReboot+    , cpgsParameterApplyStatus++    -- * CacheSecurityGroup+    , CacheSecurityGroup+    , cacheSecurityGroup+    , csgCacheSecurityGroupName+    , csgOwnerId+    , csgEC2SecurityGroups+    , csgDescription++    -- * CacheSecurityGroupMembership+    , CacheSecurityGroupMembership+    , cacheSecurityGroupMembership+    , csgmStatus+    , csgmCacheSecurityGroupName++    -- * CacheSubnetGroup+    , CacheSubnetGroup+    , cacheSubnetGroup+    , csgVPCId+    , csgSubnets+    , csgCacheSubnetGroupName+    , csgCacheSubnetGroupDescription++    -- * EC2SecurityGroup+    , EC2SecurityGroup+    , ec2SecurityGroup+    , esgStatus+    , esgEC2SecurityGroupOwnerId+    , esgEC2SecurityGroupName++    -- * Endpoint+    , Endpoint+    , endpoint+    , eAddress+    , ePort++    -- * EngineDefaults+    , EngineDefaults+    , engineDefaults+    , edCacheParameterGroupFamily+    , edCacheNodeTypeSpecificParameters+    , edParameters+    , edMarker++    -- * Event+    , Event+    , event+    , eSourceType+    , eSourceIdentifier+    , eDate+    , eMessage++    -- * NodeGroup+    , NodeGroup+    , nodeGroup+    , ngStatus+    , ngPrimaryEndpoint+    , ngNodeGroupMembers+    , ngNodeGroupId++    -- * NodeGroupMember+    , NodeGroupMember+    , nodeGroupMember+    , ngmCacheClusterId+    , ngmCacheNodeId+    , ngmPreferredAvailabilityZone+    , ngmCurrentRole+    , ngmReadEndpoint++    -- * NodeSnapshot+    , NodeSnapshot+    , nodeSnapshot+    , nsCacheNodeCreateTime+    , nsCacheNodeId+    , nsSnapshotCreateTime+    , nsCacheSize++    -- * NotificationConfiguration+    , NotificationConfiguration+    , notificationConfiguration+    , ncTopicStatus+    , ncTopicARN++    -- * Parameter+    , Parameter+    , parameter+    , pParameterValue+    , pMinimumEngineVersion+    , pSource+    , pIsModifiable+    , pAllowedValues+    , pDataType+    , pParameterName+    , pDescription++    -- * ParameterNameValue+    , ParameterNameValue+    , parameterNameValue+    , pnvParameterValue+    , pnvParameterName++    -- * PendingModifiedValues+    , PendingModifiedValues+    , pendingModifiedValues+    , pmvEngineVersion+    , pmvCacheNodeIdsToRemove+    , pmvNumCacheNodes++    -- * RecurringCharge+    , RecurringCharge+    , recurringCharge+    , rcRecurringChargeFrequency+    , rcRecurringChargeAmount++    -- * ReplicationGroup+    , ReplicationGroup+    , replicationGroup+    , rgNodeGroups+    , rgStatus+    , rgSnapshottingClusterId+    , rgMemberClusters+    , rgReplicationGroupId+    , rgPendingModifiedValues+    , rgDescription+    , rgAutomaticFailover++    -- * ReplicationGroupPendingModifiedValues+    , ReplicationGroupPendingModifiedValues+    , replicationGroupPendingModifiedValues+    , rgpmvPrimaryClusterId+    , rgpmvAutomaticFailoverStatus++    -- * ReservedCacheNode+    , ReservedCacheNode+    , reservedCacheNode+    , rcnCacheNodeType+    , rcnState+    , rcnProductDescription+    , rcnStartTime+    , rcnCacheNodeCount+    , rcnReservedCacheNodeId+    , rcnOfferingType+    , rcnUsagePrice+    , rcnRecurringCharges+    , rcnFixedPrice+    , rcnDuration+    , rcnReservedCacheNodesOfferingId++    -- * ReservedCacheNodesOffering+    , ReservedCacheNodesOffering+    , reservedCacheNodesOffering+    , rcnoCacheNodeType+    , rcnoProductDescription+    , rcnoOfferingType+    , rcnoUsagePrice+    , rcnoRecurringCharges+    , rcnoFixedPrice+    , rcnoDuration+    , rcnoReservedCacheNodesOfferingId++    -- * SecurityGroupMembership+    , SecurityGroupMembership+    , securityGroupMembership+    , sgmStatus+    , sgmSecurityGroupId++    -- * Snapshot+    , Snapshot+    , snapshot+    , sCacheNodeType+    , sEngineVersion+    , sCacheClusterCreateTime+    , sAutoMinorVersionUpgrade+    , sCacheParameterGroupName+    , sSnapshotStatus+    , sSnapshotWindow+    , sVPCId+    , sCacheClusterId+    , sEngine+    , sPreferredMaintenanceWindow+    , sTopicARN+    , sCacheSubnetGroupName+    , sNodeSnapshots+    , sPreferredAvailabilityZone+    , sSnapshotRetentionLimit+    , sSnapshotName+    , sSnapshotSource+    , sNumCacheNodes+    , sPort++    -- * Subnet+    , Subnet+    , subnet+    , sSubnetIdentifier+    , sSubnetAvailabilityZone++    -- * Tag+    , Tag+    , tag+    , tagValue+    , tagKey++    -- * TagListMessage+    , TagListMessage+    , tagListMessage+    , tlmTagList+    ) where++import           Network.AWS.ElastiCache.Types.Product+import           Network.AWS.ElastiCache.Types.Sum+import           Network.AWS.Prelude+import           Network.AWS.Sign.V4++-- | Version @2015-02-02@ of the Amazon ElastiCache SDK.+data ElastiCache++instance AWSService ElastiCache where+    type Sg ElastiCache = V4+    service = const svc+      where+        svc =+            Service+            { _svcAbbrev = "ElastiCache"+            , _svcPrefix = "elasticache"+            , _svcVersion = "2015-02-02"+            , _svcEndpoint = defaultEndpoint svc+            , _svcTimeout = Just 70+            , _svcStatus = statusSuccess+            , _svcError = parseXMLError+            , _svcRetry = retry+            }+        retry =+            Exponential+            { _retryBase = 5.0e-2+            , _retryGrowth = 2+            , _retryAttempts = 5+            , _retryCheck = check+            }+        check e+          | has (hasCode "ThrottlingException" . hasStatus 400) e =+              Just "throttling_exception"+          | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"+          | has (hasStatus 503) e = Just "service_unavailable"+          | has (hasStatus 500) e = Just "general_server_error"+          | has (hasStatus 509) e = Just "limit_exceeded"+          | otherwise = Nothing++-- | 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"++-- | The requested cache subnet group is currently in use.+_CacheSubnetGroupInUse :: AsError a => Getting (First ServiceError) a ServiceError+_CacheSubnetGroupInUse =+    _ServiceError . hasStatus 400 . hasCode "CacheSubnetGroupInUse"++-- | 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"++-- | You already have a reservation with the given identifier.+_ReservedCacheNodeAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError+_ReservedCacheNodeAlreadyExistsFault =+    _ServiceError . hasStatus 404 . hasCode "ReservedCacheNodeAlreadyExists"++-- | 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"++-- | 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"++-- | 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"++-- | The specified replication group does not exist.+_ReplicationGroupNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError+_ReplicationGroupNotFoundFault =+    _ServiceError . hasStatus 404 . hasCode "ReplicationGroupNotFoundFault"++-- | The requested cache node offering does not exist.+_ReservedCacheNodesOfferingNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError+_ReservedCacheNodesOfferingNotFoundFault =+    _ServiceError .+    hasStatus 404 . hasCode "ReservedCacheNodesOfferingNotFound"++-- | 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.+_TagQuotaPerResourceExceeded :: AsError a => Getting (First ServiceError) a ServiceError+_TagQuotaPerResourceExceeded =+    _ServiceError . hasStatus 400 . hasCode "TagQuotaPerResourceExceeded"++-- | An invalid subnet identifier was specified.+_InvalidSubnet :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidSubnet = _ServiceError . hasStatus 400 . hasCode "InvalidSubnet"++-- | 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"++-- | 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"++-- | The current state of the snapshot does not allow the requested action to+-- occur.+_InvalidSnapshotStateFault :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidSnapshotStateFault =+    _ServiceError . hasStatus 400 . hasCode "InvalidSnapshotState"++-- | You already have a snapshot with the given name.+_SnapshotAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError+_SnapshotAlreadyExistsFault =+    _ServiceError . hasStatus 400 . hasCode "SnapshotAlreadyExistsFault"++-- | The requested tag was not found on this resource.+_TagNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError+_TagNotFoundFault = _ServiceError . hasStatus 404 . hasCode "TagNotFound"++-- | 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"++-- | A cache parameter group with the requested name already exists.+_CacheParameterGroupAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError+_CacheParameterGroupAlreadyExistsFault =+    _ServiceError . hasStatus 400 . hasCode "CacheParameterGroupAlreadyExists"++-- | The request cannot be processed because it would exceed the allowed+-- number of cache nodes in a single cache cluster.+_NodeQuotaForClusterExceededFault :: AsError a => Getting (First ServiceError) a ServiceError+_NodeQuotaForClusterExceededFault =+    _ServiceError . hasStatus 400 . hasCode "NodeQuotaForClusterExceeded"++-- | You attempted one of the following actions:+--+-- -   Creating a snapshot of a Redis cache cluster running on a /t1.micro/+--     cache node.+--+-- -   Creating a snapshot of a cache cluster that is running Memcached+--     rather than Redis.+--+-- Neither of these are supported by ElastiCache.+_SnapshotFeatureNotSupportedFault :: AsError a => Getting (First ServiceError) a ServiceError+_SnapshotFeatureNotSupportedFault =+    _ServiceError . hasStatus 400 . hasCode "SnapshotFeatureNotSupportedFault"++-- | 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"++-- | The requested reserved cache node was not found.+_ReservedCacheNodeNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError+_ReservedCacheNodeNotFoundFault =+    _ServiceError . hasStatus 404 . hasCode "ReservedCacheNodeNotFound"++-- | The value for a parameter is invalid.+_InvalidParameterValueException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidParameterValueException =+    _ServiceError . hasStatus 400 . hasCode "InvalidParameterValue"++-- | The VPC network is in an invalid state.+_InvalidVPCNetworkStateFault :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidVPCNetworkStateFault =+    _ServiceError . hasStatus 400 . hasCode "InvalidVPCNetworkStateFault"++-- | The requested cache cluster ID does not refer to an existing cache+-- cluster.+_CacheClusterNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError+_CacheClusterNotFoundFault =+    _ServiceError . hasStatus 404 . hasCode "CacheClusterNotFound"++-- | The requested replication group is not in the /available/ state.+_InvalidReplicationGroupStateFault :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidReplicationGroupStateFault =+    _ServiceError . hasStatus 400 . hasCode "InvalidReplicationGroupState"++-- | The specified replication group already exists.+_ReplicationGroupAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError+_ReplicationGroupAlreadyExistsFault =+    _ServiceError . hasStatus 400 . hasCode "ReplicationGroupAlreadyExists"++-- | 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"++-- | You already have a cache cluster with the given identifier.+_CacheClusterAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError+_CacheClusterAlreadyExistsFault =+    _ServiceError . hasStatus 400 . hasCode "CacheClusterAlreadyExists"++-- | The request cannot be processed because it would exceed the allowed+-- number of cache clusters per customer.+_ClusterQuotaForCustomerExceededFault :: AsError a => Getting (First ServiceError) a ServiceError+_ClusterQuotaForCustomerExceededFault =+    _ServiceError . hasStatus 400 . hasCode "ClusterQuotaForCustomerExceeded"++-- | 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"++-- | 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"++-- | The requested cache cluster is not in the /available/ state.+_InvalidCacheClusterStateFault :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidCacheClusterStateFault =+    _ServiceError . hasStatus 400 . hasCode "InvalidCacheClusterState"++-- | 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"++-- | 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"++-- | 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"++-- | 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"++-- | Two or more incompatible parameters were specified.+_InvalidParameterCombinationException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidParameterCombinationException =+    _ServiceError . hasStatus 400 . hasCode "InvalidParameterCombination"++-- | 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"++-- | The current state of the cache parameter group does not allow the+-- requested action to occur.+_InvalidCacheParameterGroupStateFault :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidCacheParameterGroupStateFault =+    _ServiceError . hasStatus 400 . hasCode "InvalidCacheParameterGroupState"++-- | A cache security group with the specified name already exists.+_CacheSecurityGroupAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError+_CacheSecurityGroupAlreadyExistsFault =+    _ServiceError . hasStatus 400 . hasCode "CacheSecurityGroupAlreadyExists"++-- | 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"
+ gen/Network/AWS/ElastiCache/Types/Product.hs view
@@ -0,0 +1,2436 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ElastiCache.Types.Product+-- Copyright   : (c) 2013-2015 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.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'+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")++-- | Contains all of the attributes of a specific cache cluster.+--+-- /See:/ 'cacheCluster' smart constructor.+data CacheCluster = CacheCluster'+    { _ccCacheNodeType              :: !(Maybe Text)+    , _ccEngineVersion              :: !(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)+    , _ccCacheClusterStatus         :: !(Maybe Text)+    , _ccPreferredAvailabilityZone  :: !(Maybe Text)+    , _ccCacheParameterGroup        :: !(Maybe CacheParameterGroupStatus)+    , _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:+--+-- * 'ccCacheNodeType'+--+-- * 'ccEngineVersion'+--+-- * 'ccCacheNodes'+--+-- * 'ccCacheClusterCreateTime'+--+-- * 'ccAutoMinorVersionUpgrade'+--+-- * 'ccSecurityGroups'+--+-- * 'ccNotificationConfiguration'+--+-- * 'ccSnapshotWindow'+--+-- * 'ccCacheClusterId'+--+-- * 'ccConfigurationEndpoint'+--+-- * 'ccEngine'+--+-- * 'ccCacheSecurityGroups'+--+-- * 'ccClientDownloadLandingPage'+--+-- * 'ccPreferredMaintenanceWindow'+--+-- * 'ccCacheSubnetGroupName'+--+-- * 'ccCacheClusterStatus'+--+-- * 'ccPreferredAvailabilityZone'+--+-- * 'ccCacheParameterGroup'+--+-- * 'ccSnapshotRetentionLimit'+--+-- * 'ccReplicationGroupId'+--+-- * 'ccPendingModifiedValues'+--+-- * 'ccNumCacheNodes'+cacheCluster+    :: CacheCluster+cacheCluster =+    CacheCluster'+    { _ccCacheNodeType = Nothing+    , _ccEngineVersion = 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+    , _ccCacheClusterStatus = Nothing+    , _ccPreferredAvailabilityZone = Nothing+    , _ccCacheParameterGroup = Nothing+    , _ccSnapshotRetentionLimit = Nothing+    , _ccReplicationGroupId = Nothing+    , _ccPendingModifiedValues = Nothing+    , _ccNumCacheNodes = Nothing+    }++-- | 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'+--     -   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+--     (VPC).+-- -   Redis backup\/restore is not supported for t2 instances.+-- -   Redis Append-only files (AOF) functionality is not supported for t1+--     or t2 instances.+--+-- For a complete listing of cache node types and specifications, see+-- <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details>+-- and+-- <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#CacheParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached>+-- or+-- <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#CacheParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis>.+ccCacheNodeType :: Lens' CacheCluster (Maybe Text)+ccCacheNodeType = lens _ccCacheNodeType (\ s a -> s{_ccCacheNodeType = a});++-- | The version of the cache engine version that is used in this cache+-- cluster.+ccEngineVersion :: Lens' CacheCluster (Maybe Text)+ccEngineVersion = lens _ccEngineVersion (\ s a -> s{_ccEngineVersion = 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 will begin 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 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:+--+-- -   'sun'+-- -   'mon'+-- -   'tue'+-- -   'wed'+-- -   'thu'+-- -   'fri'+-- -   'sat'+--+-- Example: 'sun:05:00-sun:09:00'+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 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 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 number of days for which ElastiCache will retain automatic cache+-- cluster snapshots before deleting them. For example, if you set+-- /SnapshotRetentionLimit/ to 5, then a snapshot that was taken today will+-- be 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 .@? "CacheNodeType") <*> (x .@? "EngineVersion")+                <*>+                (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 .@? "CacheClusterStatus")+                <*> (x .@? "PreferredAvailabilityZone")+                <*> (x .@? "CacheParameterGroup")+                <*> (x .@? "SnapshotRetentionLimit")+                <*> (x .@? "ReplicationGroupId")+                <*> (x .@? "PendingModifiedValues")+                <*> (x .@? "NumCacheNodes")++-- | Provides all of the details about a particular cache engine version.+--+-- /See:/ 'cacheEngineVersion' smart constructor.+data CacheEngineVersion = CacheEngineVersion'+    { _cevCacheEngineDescription        :: !(Maybe Text)+    , _cevCacheParameterGroupFamily     :: !(Maybe Text)+    , _cevEngineVersion                 :: !(Maybe Text)+    , _cevCacheEngineVersionDescription :: !(Maybe Text)+    , _cevEngine                        :: !(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:+--+-- * 'cevCacheEngineDescription'+--+-- * 'cevCacheParameterGroupFamily'+--+-- * 'cevEngineVersion'+--+-- * 'cevCacheEngineVersionDescription'+--+-- * 'cevEngine'+cacheEngineVersion+    :: CacheEngineVersion+cacheEngineVersion =+    CacheEngineVersion'+    { _cevCacheEngineDescription = Nothing+    , _cevCacheParameterGroupFamily = Nothing+    , _cevEngineVersion = Nothing+    , _cevCacheEngineVersionDescription = Nothing+    , _cevEngine = Nothing+    }++-- | The description of the cache engine.+cevCacheEngineDescription :: Lens' CacheEngineVersion (Maybe Text)+cevCacheEngineDescription = lens _cevCacheEngineDescription (\ s a -> s{_cevCacheEngineDescription = a});++-- | The name of the cache parameter group family associated with this cache+-- engine.+cevCacheParameterGroupFamily :: Lens' CacheEngineVersion (Maybe Text)+cevCacheParameterGroupFamily = lens _cevCacheParameterGroupFamily (\ s a -> s{_cevCacheParameterGroupFamily = a});++-- | The version number of the cache engine.+cevEngineVersion :: Lens' CacheEngineVersion (Maybe Text)+cevEngineVersion = lens _cevEngineVersion (\ s a -> s{_cevEngineVersion = a});++-- | The description of the cache engine version.+cevCacheEngineVersionDescription :: Lens' CacheEngineVersion (Maybe Text)+cevCacheEngineVersionDescription = lens _cevCacheEngineVersionDescription (\ s a -> s{_cevCacheEngineVersionDescription = a});++-- | The name of the cache engine.+cevEngine :: Lens' CacheEngineVersion (Maybe Text)+cevEngine = lens _cevEngine (\ s a -> s{_cevEngine = a});++instance FromXML CacheEngineVersion where+        parseXML x+          = CacheEngineVersion' <$>+              (x .@? "CacheEngineDescription") <*>+                (x .@? "CacheParameterGroupFamily")+                <*> (x .@? "EngineVersion")+                <*> (x .@? "CacheEngineVersionDescription")+                <*> (x .@? "Engine")++-- | 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'+--     -   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+--     (VPC).+-- -   Redis backup\/restore is not supported for t2 instances.+-- -   Redis Append-only files (AOF) functionality is not supported for t1+--     or t2 instances.+--+-- For a complete listing of cache node types and specifications, see+-- <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details>+-- and+-- <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#CacheParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached>+-- or+-- <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#CacheParameterGroups.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'+--+-- * 'cnParameterGroupStatus'+--+-- * 'cnCacheNodeCreateTime'+--+-- * 'cnCustomerAvailabilityZone'+--+-- * 'cnCacheNodeId'+--+-- * 'cnCacheNodeStatus'+--+-- * 'cnEndpoint'+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, then 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")++-- | 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)+    , _cntspAllowedValues               :: !(Maybe Text)+    , _cntspDataType                    :: !(Maybe Text)+    , _cntspParameterName               :: !(Maybe Text)+    , _cntspDescription                 :: !(Maybe Text)+    } 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'+--+-- * 'cntspMinimumEngineVersion'+--+-- * 'cntspSource'+--+-- * 'cntspIsModifiable'+--+-- * 'cntspAllowedValues'+--+-- * 'cntspDataType'+--+-- * 'cntspParameterName'+--+-- * 'cntspDescription'+cacheNodeTypeSpecificParameter+    :: CacheNodeTypeSpecificParameter+cacheNodeTypeSpecificParameter =+    CacheNodeTypeSpecificParameter'+    { _cntspCacheNodeTypeSpecificValues = Nothing+    , _cntspMinimumEngineVersion = Nothing+    , _cntspSource = Nothing+    , _cntspIsModifiable = Nothing+    , _cntspAllowedValues = Nothing+    , _cntspDataType = Nothing+    , _cntspParameterName = Nothing+    , _cntspDescription = 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 range of values for the parameter.+cntspAllowedValues :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)+cntspAllowedValues = lens _cntspAllowedValues (\ s a -> s{_cntspAllowedValues = a});++-- | The valid data type for the parameter.+cntspDataType :: Lens' CacheNodeTypeSpecificParameter (Maybe Text)+cntspDataType = lens _cntspDataType (\ s a -> s{_cntspDataType = 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});++instance FromXML CacheNodeTypeSpecificParameter where+        parseXML x+          = CacheNodeTypeSpecificParameter' <$>+              (x .@? "CacheNodeTypeSpecificValues" .!@ mempty >>=+                 may (parseXMLList "CacheNodeTypeSpecificValue"))+                <*> (x .@? "MinimumEngineVersion")+                <*> (x .@? "Source")+                <*> (x .@? "IsModifiable")+                <*> (x .@? "AllowedValues")+                <*> (x .@? "DataType")+                <*> (x .@? "ParameterName")+                <*> (x .@? "Description")++-- | 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'+--+-- * 'cntsvValue'+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")++-- | Represents the output of a /CreateCacheParameterGroup/ action.+--+-- /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'+--+-- * 'cpgCacheParameterGroupName'+--+-- * 'cpgDescription'+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.+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")++-- | Represents the output of one of the following actions:+--+-- -   /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'+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")++-- | The 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'+--+-- * 'cpgsCacheNodeIdsToReboot'+--+-- * 'cpgsParameterApplyStatus'+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")++-- | Represents the output of one of the following actions:+--+-- -   /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'+--+-- * 'csgOwnerId'+--+-- * 'csgEC2SecurityGroups'+--+-- * 'csgDescription'+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")++-- | 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'+--+-- * 'csgmCacheSecurityGroupName'+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")++-- | Represents the output of one of the following actions:+--+-- -   /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'+--+-- * 'csgSubnets'+--+-- * 'csgCacheSubnetGroupName'+--+-- * 'csgCacheSubnetGroupDescription'+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")++-- | 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'+--+-- * 'esgEC2SecurityGroupOwnerId'+--+-- * 'esgEC2SecurityGroupName'+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")++-- | 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'+--+-- * 'ePort'+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")++-- | Represents the output of a /DescribeEngineDefaultParameters/ action.+--+-- /See:/ 'engineDefaults' smart constructor.+data EngineDefaults = EngineDefaults'+    { _edCacheParameterGroupFamily       :: !(Maybe Text)+    , _edCacheNodeTypeSpecificParameters :: !(Maybe [CacheNodeTypeSpecificParameter])+    , _edParameters                      :: !(Maybe [Parameter])+    , _edMarker                          :: !(Maybe Text)+    } 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'+--+-- * 'edCacheNodeTypeSpecificParameters'+--+-- * 'edParameters'+--+-- * 'edMarker'+engineDefaults+    :: EngineDefaults+engineDefaults =+    EngineDefaults'+    { _edCacheParameterGroupFamily = Nothing+    , _edCacheNodeTypeSpecificParameters = Nothing+    , _edParameters = Nothing+    , _edMarker = Nothing+    }++-- | Specifies the name of the cache parameter group family to which the+-- engine default parameters apply.+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;++-- | Contains a list of engine default parameters.+edParameters :: Lens' EngineDefaults [Parameter]+edParameters = lens _edParameters (\ s a -> s{_edParameters = 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});++instance FromXML EngineDefaults where+        parseXML x+          = EngineDefaults' <$>+              (x .@? "CacheParameterGroupFamily") <*>+                (x .@? "CacheNodeTypeSpecificParameters" .!@ mempty+                   >>=+                   may (parseXMLList "CacheNodeTypeSpecificParameter"))+                <*>+                (x .@? "Parameters" .!@ mempty >>=+                   may (parseXMLList "Parameter"))+                <*> (x .@? "Marker")++-- | 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'+--+-- * 'eSourceIdentifier'+--+-- * 'eDate'+--+-- * 'eMessage'+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")++-- | Represents a collection of cache nodes in a replication group.+--+-- /See:/ 'nodeGroup' smart constructor.+data NodeGroup = NodeGroup'+    { _ngStatus           :: !(Maybe Text)+    , _ngPrimaryEndpoint  :: !(Maybe Endpoint)+    , _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'+--+-- * 'ngPrimaryEndpoint'+--+-- * 'ngNodeGroupMembers'+--+-- * 'ngNodeGroupId'+nodeGroup+    :: NodeGroup+nodeGroup =+    NodeGroup'+    { _ngStatus = Nothing+    , _ngPrimaryEndpoint = 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});++-- | Undocumented member.+ngPrimaryEndpoint :: Lens' NodeGroup (Maybe Endpoint)+ngPrimaryEndpoint = lens _ngPrimaryEndpoint (\ s a -> s{_ngPrimaryEndpoint = a});++-- | A list containing information about individual nodes within the node+-- group.+ngNodeGroupMembers :: Lens' NodeGroup [NodeGroupMember]+ngNodeGroupMembers = lens _ngNodeGroupMembers (\ s a -> s{_ngNodeGroupMembers = a}) . _Default . _Coerce;++-- | The identifier for the node group. A replication group contains only one+-- node group; therefore, the node group ID is 0001.+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 .@? "NodeGroupMembers" .!@ mempty >>=+                   may (parseXMLList "NodeGroupMember"))+                <*> (x .@? "NodeGroupId")++-- | Represents a single node within a node group.+--+-- /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'+--+-- * 'ngmCacheNodeId'+--+-- * 'ngmPreferredAvailabilityZone'+--+-- * 'ngmCurrentRole'+--+-- * 'ngmReadEndpoint'+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")++-- | Represents an individual cache node in a snapshot of a cache cluster.+--+-- /See:/ 'nodeSnapshot' smart constructor.+data NodeSnapshot = NodeSnapshot'+    { _nsCacheNodeCreateTime :: !(Maybe ISO8601)+    , _nsCacheNodeId         :: !(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:+--+-- * 'nsCacheNodeCreateTime'+--+-- * 'nsCacheNodeId'+--+-- * 'nsSnapshotCreateTime'+--+-- * 'nsCacheSize'+nodeSnapshot+    :: NodeSnapshot+nodeSnapshot =+    NodeSnapshot'+    { _nsCacheNodeCreateTime = Nothing+    , _nsCacheNodeId = Nothing+    , _nsSnapshotCreateTime = Nothing+    , _nsCacheSize = Nothing+    }++-- | 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;++-- | 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});++-- | 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 .@? "CacheNodeCreateTime") <*>+                (x .@? "CacheNodeId")+                <*> (x .@? "SnapshotCreateTime")+                <*> (x .@? "CacheSize")++-- | 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'+--+-- * 'ncTopicARN'+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")++-- | 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)+    , _pAllowedValues        :: !(Maybe Text)+    , _pDataType             :: !(Maybe Text)+    , _pParameterName        :: !(Maybe Text)+    , _pDescription          :: !(Maybe Text)+    } 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'+--+-- * 'pMinimumEngineVersion'+--+-- * 'pSource'+--+-- * 'pIsModifiable'+--+-- * 'pAllowedValues'+--+-- * 'pDataType'+--+-- * 'pParameterName'+--+-- * 'pDescription'+parameter+    :: Parameter+parameter =+    Parameter'+    { _pParameterValue = Nothing+    , _pMinimumEngineVersion = Nothing+    , _pSource = Nothing+    , _pIsModifiable = Nothing+    , _pAllowedValues = Nothing+    , _pDataType = Nothing+    , _pParameterName = Nothing+    , _pDescription = 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 range of values for the parameter.+pAllowedValues :: Lens' Parameter (Maybe Text)+pAllowedValues = lens _pAllowedValues (\ s a -> s{_pAllowedValues = a});++-- | The valid data type for the parameter.+pDataType :: Lens' Parameter (Maybe Text)+pDataType = lens _pDataType (\ s a -> s{_pDataType = 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});++instance FromXML Parameter where+        parseXML x+          = Parameter' <$>+              (x .@? "ParameterValue") <*>+                (x .@? "MinimumEngineVersion")+                <*> (x .@? "Source")+                <*> (x .@? "IsModifiable")+                <*> (x .@? "AllowedValues")+                <*> (x .@? "DataType")+                <*> (x .@? "ParameterName")+                <*> (x .@? "Description")++-- | 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'+--+-- * 'pnvParameterName'+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 ToQuery ParameterNameValue where+        toQuery ParameterNameValue'{..}+          = mconcat+              ["ParameterValue" =: _pnvParameterValue,+               "ParameterName" =: _pnvParameterName]++-- | A group of settings that will be applied to the cache cluster in the+-- future, or that are currently being applied.+--+-- /See:/ 'pendingModifiedValues' smart constructor.+data PendingModifiedValues = PendingModifiedValues'+    { _pmvEngineVersion        :: !(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'+--+-- * 'pmvCacheNodeIdsToRemove'+--+-- * 'pmvNumCacheNodes'+pendingModifiedValues+    :: PendingModifiedValues+pendingModifiedValues =+    PendingModifiedValues'+    { _pmvEngineVersion = Nothing+    , _pmvCacheNodeIdsToRemove = Nothing+    , _pmvNumCacheNodes = Nothing+    }++-- | The new cache engine version that the cache cluster will run.+pmvEngineVersion :: Lens' PendingModifiedValues (Maybe Text)+pmvEngineVersion = lens _pmvEngineVersion (\ s a -> s{_pmvEngineVersion = 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 .@? "CacheNodeIdsToRemove" .!@ mempty >>=+                   may (parseXMLList "CacheNodeId"))+                <*> (x .@? "NumCacheNodes")++-- | 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'+--+-- * 'rcRecurringChargeAmount'+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")++-- | Contains all of the attributes of a specific replication group.+--+-- /See:/ 'replicationGroup' smart constructor.+data ReplicationGroup = ReplicationGroup'+    { _rgNodeGroups            :: !(Maybe [NodeGroup])+    , _rgStatus                :: !(Maybe Text)+    , _rgSnapshottingClusterId :: !(Maybe Text)+    , _rgMemberClusters        :: !(Maybe [Text])+    , _rgReplicationGroupId    :: !(Maybe Text)+    , _rgPendingModifiedValues :: !(Maybe ReplicationGroupPendingModifiedValues)+    , _rgDescription           :: !(Maybe Text)+    , _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:+--+-- * 'rgNodeGroups'+--+-- * 'rgStatus'+--+-- * 'rgSnapshottingClusterId'+--+-- * 'rgMemberClusters'+--+-- * 'rgReplicationGroupId'+--+-- * 'rgPendingModifiedValues'+--+-- * 'rgDescription'+--+-- * 'rgAutomaticFailover'+replicationGroup+    :: ReplicationGroup+replicationGroup =+    ReplicationGroup'+    { _rgNodeGroups = Nothing+    , _rgStatus = Nothing+    , _rgSnapshottingClusterId = Nothing+    , _rgMemberClusters = Nothing+    , _rgReplicationGroupId = Nothing+    , _rgPendingModifiedValues = Nothing+    , _rgDescription = Nothing+    , _rgAutomaticFailover = Nothing+    }++-- | 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 current state of this replication group - /creating/, /available/,+-- etc.+rgStatus :: Lens' ReplicationGroup (Maybe Text)+rgStatus = lens _rgStatus (\ s a -> s{_rgStatus = a});++-- | 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 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 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});++-- | The description of the replication group.+rgDescription :: Lens' ReplicationGroup (Maybe Text)+rgDescription = lens _rgDescription (\ s a -> s{_rgDescription = a});++-- | Indicates the status of Multi-AZ for this replication group.+--+-- ElastiCache Multi-AZ replication groups are not supported on:+--+-- -   Redis versions earlier than 2.8.6.+-- -   T1 and T2 cache node types.+rgAutomaticFailover :: Lens' ReplicationGroup (Maybe AutomaticFailoverStatus)+rgAutomaticFailover = lens _rgAutomaticFailover (\ s a -> s{_rgAutomaticFailover = a});++instance FromXML ReplicationGroup where+        parseXML x+          = ReplicationGroup' <$>+              (x .@? "NodeGroups" .!@ mempty >>=+                 may (parseXMLList "NodeGroup"))+                <*> (x .@? "Status")+                <*> (x .@? "SnapshottingClusterId")+                <*>+                (x .@? "MemberClusters" .!@ mempty >>=+                   may (parseXMLList "ClusterId"))+                <*> (x .@? "ReplicationGroupId")+                <*> (x .@? "PendingModifiedValues")+                <*> (x .@? "Description")+                <*> (x .@? "AutomaticFailover")++-- | The settings to be applied to the 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'+--+-- * 'rgpmvAutomaticFailoverStatus'+replicationGroupPendingModifiedValues+    :: ReplicationGroupPendingModifiedValues+replicationGroupPendingModifiedValues =+    ReplicationGroupPendingModifiedValues'+    { _rgpmvPrimaryClusterId = Nothing+    , _rgpmvAutomaticFailoverStatus = Nothing+    }++-- | The primary cluster ID which will be 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 replication group.+--+-- ElastiCache Multi-AZ replication groups are not supported on:+--+-- -   Redis versions earlier than 2.8.6.+-- -   T1 and T2 cache node types.+rgpmvAutomaticFailoverStatus :: Lens' ReplicationGroupPendingModifiedValues (Maybe PendingAutomaticFailoverStatus)+rgpmvAutomaticFailoverStatus = lens _rgpmvAutomaticFailoverStatus (\ s a -> s{_rgpmvAutomaticFailoverStatus = a});++instance FromXML+         ReplicationGroupPendingModifiedValues where+        parseXML x+          = ReplicationGroupPendingModifiedValues' <$>+              (x .@? "PrimaryClusterId") <*>+                (x .@? "AutomaticFailoverStatus")++-- | Represents the output of a /PurchaseReservedCacheNodesOffering/ action.+--+-- /See:/ 'reservedCacheNode' smart constructor.+data ReservedCacheNode = ReservedCacheNode'+    { _rcnCacheNodeType                :: !(Maybe Text)+    , _rcnState                        :: !(Maybe Text)+    , _rcnProductDescription           :: !(Maybe Text)+    , _rcnStartTime                    :: !(Maybe ISO8601)+    , _rcnCacheNodeCount               :: !(Maybe Int)+    , _rcnReservedCacheNodeId          :: !(Maybe Text)+    , _rcnOfferingType                 :: !(Maybe Text)+    , _rcnUsagePrice                   :: !(Maybe Double)+    , _rcnRecurringCharges             :: !(Maybe [RecurringCharge])+    , _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'+--+-- * 'rcnState'+--+-- * 'rcnProductDescription'+--+-- * 'rcnStartTime'+--+-- * 'rcnCacheNodeCount'+--+-- * 'rcnReservedCacheNodeId'+--+-- * 'rcnOfferingType'+--+-- * 'rcnUsagePrice'+--+-- * 'rcnRecurringCharges'+--+-- * 'rcnFixedPrice'+--+-- * 'rcnDuration'+--+-- * 'rcnReservedCacheNodesOfferingId'+reservedCacheNode+    :: ReservedCacheNode+reservedCacheNode =+    ReservedCacheNode'+    { _rcnCacheNodeType = Nothing+    , _rcnState = Nothing+    , _rcnProductDescription = Nothing+    , _rcnStartTime = Nothing+    , _rcnCacheNodeCount = Nothing+    , _rcnReservedCacheNodeId = Nothing+    , _rcnOfferingType = Nothing+    , _rcnUsagePrice = Nothing+    , _rcnRecurringCharges = 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'+--     -   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+--     (VPC).+-- -   Redis backup\/restore is not supported for t2 instances.+-- -   Redis Append-only files (AOF) functionality is not supported for t1+--     or t2 instances.+--+-- For a complete listing of cache node types and specifications, see+-- <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details>+-- and+-- <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#CacheParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached>+-- or+-- <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#CacheParameterGroups.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 description of the reserved cache node.+rcnProductDescription :: Lens' ReservedCacheNode (Maybe Text)+rcnProductDescription = lens _rcnProductDescription (\ s a -> s{_rcnProductDescription = a});++-- | The time the reservation started.+rcnStartTime :: Lens' ReservedCacheNode (Maybe UTCTime)+rcnStartTime = lens _rcnStartTime (\ s a -> s{_rcnStartTime = a}) . mapping _Time;++-- | 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 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 recurring price charged to run this reserved cache node.+rcnRecurringCharges :: Lens' ReservedCacheNode [RecurringCharge]+rcnRecurringCharges = lens _rcnRecurringCharges (\ s a -> s{_rcnRecurringCharges = a}) . _Default . _Coerce;++-- | 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 .@? "ProductDescription")+                <*> (x .@? "StartTime")+                <*> (x .@? "CacheNodeCount")+                <*> (x .@? "ReservedCacheNodeId")+                <*> (x .@? "OfferingType")+                <*> (x .@? "UsagePrice")+                <*>+                (x .@? "RecurringCharges" .!@ mempty >>=+                   may (parseXMLList "RecurringCharge"))+                <*> (x .@? "FixedPrice")+                <*> (x .@? "Duration")+                <*> (x .@? "ReservedCacheNodesOfferingId")++-- | Describes all of the attributes of a reserved cache node offering.+--+-- /See:/ 'reservedCacheNodesOffering' smart constructor.+data ReservedCacheNodesOffering = ReservedCacheNodesOffering'+    { _rcnoCacheNodeType                :: !(Maybe Text)+    , _rcnoProductDescription           :: !(Maybe Text)+    , _rcnoOfferingType                 :: !(Maybe Text)+    , _rcnoUsagePrice                   :: !(Maybe Double)+    , _rcnoRecurringCharges             :: !(Maybe [RecurringCharge])+    , _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'+--+-- * 'rcnoProductDescription'+--+-- * 'rcnoOfferingType'+--+-- * 'rcnoUsagePrice'+--+-- * 'rcnoRecurringCharges'+--+-- * 'rcnoFixedPrice'+--+-- * 'rcnoDuration'+--+-- * 'rcnoReservedCacheNodesOfferingId'+reservedCacheNodesOffering+    :: ReservedCacheNodesOffering+reservedCacheNodesOffering =+    ReservedCacheNodesOffering'+    { _rcnoCacheNodeType = Nothing+    , _rcnoProductDescription = Nothing+    , _rcnoOfferingType = Nothing+    , _rcnoUsagePrice = Nothing+    , _rcnoRecurringCharges = 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'+--     -   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+--     (VPC).+-- -   Redis backup\/restore is not supported for t2 instances.+-- -   Redis Append-only files (AOF) functionality is not supported for t1+--     or t2 instances.+--+-- For a complete listing of cache node types and specifications, see+-- <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details>+-- and+-- <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#CacheParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached>+-- or+-- <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#CacheParameterGroups.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 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 recurring price charged to run this reserved cache node.+rcnoRecurringCharges :: Lens' ReservedCacheNodesOffering [RecurringCharge]+rcnoRecurringCharges = lens _rcnoRecurringCharges (\ s a -> s{_rcnoRecurringCharges = a}) . _Default . _Coerce;++-- | 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 .@? "OfferingType")+                <*> (x .@? "UsagePrice")+                <*>+                (x .@? "RecurringCharges" .!@ mempty >>=+                   may (parseXMLList "RecurringCharge"))+                <*> (x .@? "FixedPrice")+                <*> (x .@? "Duration")+                <*> (x .@? "ReservedCacheNodesOfferingId")++-- | 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'+--+-- * 'sgmSecurityGroupId'+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")++-- | Represents a copy of an entire cache cluster as of the time when the+-- snapshot was taken.+--+-- /See:/ 'snapshot' smart constructor.+data Snapshot = Snapshot'+    { _sCacheNodeType              :: !(Maybe Text)+    , _sEngineVersion              :: !(Maybe Text)+    , _sCacheClusterCreateTime     :: !(Maybe ISO8601)+    , _sAutoMinorVersionUpgrade    :: !(Maybe Bool)+    , _sCacheParameterGroupName    :: !(Maybe Text)+    , _sSnapshotStatus             :: !(Maybe Text)+    , _sSnapshotWindow             :: !(Maybe Text)+    , _sVPCId                      :: !(Maybe Text)+    , _sCacheClusterId             :: !(Maybe Text)+    , _sEngine                     :: !(Maybe Text)+    , _sPreferredMaintenanceWindow :: !(Maybe Text)+    , _sTopicARN                   :: !(Maybe Text)+    , _sCacheSubnetGroupName       :: !(Maybe Text)+    , _sNodeSnapshots              :: !(Maybe [NodeSnapshot])+    , _sPreferredAvailabilityZone  :: !(Maybe Text)+    , _sSnapshotRetentionLimit     :: !(Maybe Int)+    , _sSnapshotName               :: !(Maybe Text)+    , _sSnapshotSource             :: !(Maybe Text)+    , _sNumCacheNodes              :: !(Maybe Int)+    , _sPort                       :: !(Maybe Int)+    } 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:+--+-- * 'sCacheNodeType'+--+-- * 'sEngineVersion'+--+-- * 'sCacheClusterCreateTime'+--+-- * 'sAutoMinorVersionUpgrade'+--+-- * 'sCacheParameterGroupName'+--+-- * 'sSnapshotStatus'+--+-- * 'sSnapshotWindow'+--+-- * 'sVPCId'+--+-- * 'sCacheClusterId'+--+-- * 'sEngine'+--+-- * 'sPreferredMaintenanceWindow'+--+-- * 'sTopicARN'+--+-- * 'sCacheSubnetGroupName'+--+-- * 'sNodeSnapshots'+--+-- * 'sPreferredAvailabilityZone'+--+-- * 'sSnapshotRetentionLimit'+--+-- * 'sSnapshotName'+--+-- * 'sSnapshotSource'+--+-- * 'sNumCacheNodes'+--+-- * 'sPort'+snapshot+    :: Snapshot+snapshot =+    Snapshot'+    { _sCacheNodeType = Nothing+    , _sEngineVersion = Nothing+    , _sCacheClusterCreateTime = Nothing+    , _sAutoMinorVersionUpgrade = Nothing+    , _sCacheParameterGroupName = Nothing+    , _sSnapshotStatus = Nothing+    , _sSnapshotWindow = Nothing+    , _sVPCId = Nothing+    , _sCacheClusterId = Nothing+    , _sEngine = Nothing+    , _sPreferredMaintenanceWindow = Nothing+    , _sTopicARN = Nothing+    , _sCacheSubnetGroupName = Nothing+    , _sNodeSnapshots = Nothing+    , _sPreferredAvailabilityZone = Nothing+    , _sSnapshotRetentionLimit = Nothing+    , _sSnapshotName = Nothing+    , _sSnapshotSource = Nothing+    , _sNumCacheNodes = Nothing+    , _sPort = Nothing+    }++-- | 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'+--     -   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+--     (VPC).+-- -   Redis backup\/restore is not supported for t2 instances.+-- -   Redis Append-only files (AOF) functionality is not supported for t1+--     or t2 instances.+--+-- For a complete listing of cache node types and specifications, see+-- <http://aws.amazon.com/elasticache/details Amazon ElastiCache Product Features and Details>+-- and+-- <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#CacheParameterGroups.Memcached.NodeSpecific Cache Node Type-Specific Parameters for Memcached>+-- or+-- <http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#CacheParameterGroups.Redis.NodeSpecific Cache Node Type-Specific Parameters for Redis>.+sCacheNodeType :: Lens' Snapshot (Maybe Text)+sCacheNodeType = lens _sCacheNodeType (\ s a -> s{_sCacheNodeType = a});++-- | 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 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});++-- | 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 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 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 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:+--+-- -   'sun'+-- -   'mon'+-- -   'tue'+-- -   'wed'+-- -   'thu'+-- -   'fri'+-- -   'sat'+--+-- Example: 'sun:05:00-sun:09:00'+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});++-- | 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});++-- | 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 Availability Zone in which the source cache cluster is+-- located.+sPreferredAvailabilityZone :: Lens' Snapshot (Maybe Text)+sPreferredAvailabilityZone = lens _sPreferredAvailabilityZone (\ s a -> s{_sPreferredAvailabilityZone = a});++-- | For an automatic snapshot, the number of days for which ElastiCache will+-- retain 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/ action.+--+-- __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});++-- | 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});++-- | 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});++instance FromXML Snapshot where+        parseXML x+          = Snapshot' <$>+              (x .@? "CacheNodeType") <*> (x .@? "EngineVersion")+                <*> (x .@? "CacheClusterCreateTime")+                <*> (x .@? "AutoMinorVersionUpgrade")+                <*> (x .@? "CacheParameterGroupName")+                <*> (x .@? "SnapshotStatus")+                <*> (x .@? "SnapshotWindow")+                <*> (x .@? "VpcId")+                <*> (x .@? "CacheClusterId")+                <*> (x .@? "Engine")+                <*> (x .@? "PreferredMaintenanceWindow")+                <*> (x .@? "TopicArn")+                <*> (x .@? "CacheSubnetGroupName")+                <*>+                (x .@? "NodeSnapshots" .!@ mempty >>=+                   may (parseXMLList "NodeSnapshot"))+                <*> (x .@? "PreferredAvailabilityZone")+                <*> (x .@? "SnapshotRetentionLimit")+                <*> (x .@? "SnapshotName")+                <*> (x .@? "SnapshotSource")+                <*> (x .@? "NumCacheNodes")+                <*> (x .@? "Port")++-- | 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'+--+-- * 'sSubnetAvailabilityZone'+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")++-- | 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'+--+-- * 'tagKey'+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 ToQuery Tag where+        toQuery Tag'{..}+          = mconcat ["Value" =: _tagValue, "Key" =: _tagKey]++-- | Represents the output from the /AddTagsToResource/,+-- /ListTagsOnResource/, and /RemoveTagsFromResource/ actions.+--+-- /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'+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"))
+ gen/Network/AWS/ElastiCache/Types/Sum.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ElastiCache.Types.Sum+-- Copyright   : (c) 2013-2015 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.Sum where++import           Network.AWS.Prelude++data AZMode+    = CrossAz+    | SingleAz+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText AZMode where+    parser = takeLowerText >>= \case+        "cross-az" -> pure CrossAz+        "single-az" -> pure SingleAz+        e -> fromTextError $ "Failure parsing AZMode from value: '" <> e+           <> "'. Accepted values: cross-az, single-az"++instance ToText AZMode where+    toText = \case+        CrossAz -> "cross-az"+        SingleAz -> "single-az"++instance Hashable     AZMode+instance ToByteString AZMode+instance ToQuery      AZMode+instance ToHeader     AZMode++data AutomaticFailoverStatus+    = AFSDisabled+    | AFSDisabling+    | AFSEnabled+    | AFSEnabling+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText AutomaticFailoverStatus where+    parser = takeLowerText >>= \case+        "disabled" -> pure AFSDisabled+        "disabling" -> pure AFSDisabling+        "enabled" -> pure AFSEnabled+        "enabling" -> pure AFSEnabling+        e -> fromTextError $ "Failure parsing AutomaticFailoverStatus from value: '" <> e+           <> "'. Accepted values: disabled, disabling, enabled, enabling"++instance ToText AutomaticFailoverStatus where+    toText = \case+        AFSDisabled -> "disabled"+        AFSDisabling -> "disabling"+        AFSEnabled -> "enabled"+        AFSEnabling -> "enabling"++instance Hashable     AutomaticFailoverStatus+instance ToByteString AutomaticFailoverStatus+instance ToQuery      AutomaticFailoverStatus+instance ToHeader     AutomaticFailoverStatus++instance FromXML AutomaticFailoverStatus where+    parseXML = parseXMLText "AutomaticFailoverStatus"++data PendingAutomaticFailoverStatus+    = Disabled+    | Enabled+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText PendingAutomaticFailoverStatus where+    parser = takeLowerText >>= \case+        "disabled" -> pure Disabled+        "enabled" -> pure Enabled+        e -> fromTextError $ "Failure parsing PendingAutomaticFailoverStatus from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText PendingAutomaticFailoverStatus where+    toText = \case+        Disabled -> "disabled"+        Enabled -> "enabled"++instance Hashable     PendingAutomaticFailoverStatus+instance ToByteString PendingAutomaticFailoverStatus+instance ToQuery      PendingAutomaticFailoverStatus+instance ToHeader     PendingAutomaticFailoverStatus++instance FromXML PendingAutomaticFailoverStatus where+    parseXML = parseXMLText "PendingAutomaticFailoverStatus"++data SourceType+    = CacheCluster+    | CacheParameterGroup+    | CacheSecurityGroup+    | CacheSubnetGroup+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText SourceType where+    parser = takeLowerText >>= \case+        "cache-cluster" -> pure CacheCluster+        "cache-parameter-group" -> pure CacheParameterGroup+        "cache-security-group" -> pure CacheSecurityGroup+        "cache-subnet-group" -> pure CacheSubnetGroup+        e -> fromTextError $ "Failure parsing SourceType from value: '" <> e+           <> "'. Accepted values: cache-cluster, cache-parameter-group, cache-security-group, cache-subnet-group"++instance ToText SourceType where+    toText = \case+        CacheCluster -> "cache-cluster"+        CacheParameterGroup -> "cache-parameter-group"+        CacheSecurityGroup -> "cache-security-group"+        CacheSubnetGroup -> "cache-subnet-group"++instance Hashable     SourceType+instance ToByteString SourceType+instance ToQuery      SourceType+instance ToHeader     SourceType++instance FromXML SourceType where+    parseXML = parseXMLText "SourceType"
gen/Network/AWS/ElastiCache/Waiters.hs view
@@ -1,91 +1,148 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeFamilies      #-} +{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.ElastiCache.Waiters--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.- module Network.AWS.ElastiCache.Waiters where -import Network.AWS.ElastiCache.DescribeCacheClusters-import Network.AWS.ElastiCache.DescribeReplicationGroups-import Network.AWS.ElastiCache.Types-import Network.AWS.Waiters+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.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 dccrCacheClusters) . ccCacheClusterStatus . _Just)-        , matchAny "deleted" AcceptFailure-            (folding (concatOf dccrCacheClusters) . ccCacheClusterStatus . _Just)-        , matchAny "deleting" AcceptFailure-            (folding (concatOf dccrCacheClusters) . ccCacheClusterStatus . _Just)-        , matchAny "incompatible-network" AcceptFailure-            (folding (concatOf dccrCacheClusters) . ccCacheClusterStatus . _Just)-        , matchAny "restore-failed" AcceptFailure-            (folding (concatOf dccrCacheClusters) . ccCacheClusterStatus . _Just)-        ]+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)]     } +-- | 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 dccrCacheClusters) . ccCacheClusterStatus . _Just)-        , matchAny "modifying" AcceptFailure-            (folding (concatOf dccrCacheClusters) . ccCacheClusterStatus . _Just)-        , matchAny "rebooting" AcceptFailure-            (folding (concatOf dccrCacheClusters) . ccCacheClusterStatus . _Just)-        ]+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)]     } -replicationGroupAvailable :: Wait DescribeReplicationGroups-replicationGroupAvailable = Wait-    { _waitName      = "ReplicationGroupAvailable"-    , _waitAttempts  = 60-    , _waitDelay     = 30-    , _waitAcceptors =-        [ matchAll "available" AcceptSuccess-            (folding (concatOf drgrReplicationGroups) . rgStatus . _Just)-        , matchAny "deleted" AcceptFailure-            (folding (concatOf drgrReplicationGroups) . rgStatus . _Just)-        , matchAny "deleting" AcceptFailure-            (folding (concatOf drgrReplicationGroups) . rgStatus . _Just)-        , matchAny "incompatible-network" AcceptFailure-            (folding (concatOf drgrReplicationGroups) . rgStatus . _Just)-        , matchAny "restore-failed" AcceptFailure-            (folding (concatOf drgrReplicationGroups) . rgStatus . _Just)-        ]+-- | 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)]     } -replicationGroupDeleted :: Wait DescribeReplicationGroups-replicationGroupDeleted = Wait-    { _waitName      = "ReplicationGroupDeleted"-    , _waitAttempts  = 60-    , _waitDelay     = 30-    , _waitAcceptors =-        [ matchError "ReplicationGroupNotFoundFault" AcceptSuccess-        , matchAny "creating" AcceptFailure-            (folding (concatOf drgrReplicationGroups) . rgStatus . _Just)-        , matchAny "modifying" AcceptFailure-            (folding (concatOf drgrReplicationGroups) . rgStatus . _Just)-        , matchAny "rebooting" AcceptFailure-            (folding (concatOf drgrReplicationGroups) . rgStatus . _Just)-        ]+-- | 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)]     }
+ test/Main.hs view
@@ -0,0 +1,21 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2015 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 Main (main) where++import Test.Tasty+import Test.AWS.ElastiCache+import Test.AWS.ElastiCache.Internal++main :: IO ()+main = defaultMain $ testGroup "ElastiCache"+    [ testGroup "tests"    tests+    , testGroup "fixtures" fixtures+    ]
+ test/Test/AWS/ElastiCache.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE OverloadedStrings #-}++-- Module      : Test.AWS.ElastiCache+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++module Test.AWS.ElastiCache+    ( tests+    , fixtures+    ) where++import           Network.AWS.ElastiCache+import           Test.AWS.Gen.ElastiCache+import           Test.Tasty++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/AWS/ElastiCache/Internal.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Test.AWS.ElastiCache.Internal+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++module Test.AWS.ElastiCache.Internal where++import Test.AWS.Prelude
+ test/Test/AWS/Gen/ElastiCache.hs view
@@ -0,0 +1,668 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-orphans        #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Test.AWS.Gen.ElastiCache+-- Copyright   : (c) 2013-2015 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 Test.AWS.Gen.ElastiCache where++import Data.Proxy+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.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+--     [ testGroup "request"+--         [ testDeleteCacheSecurityGroup $+--             deleteCacheSecurityGroup+--+--         , testCreateReplicationGroup $+--             createReplicationGroup+--+--         , testDeleteCacheCluster $+--             deleteCacheCluster+--+--         , testRebootCacheCluster $+--             rebootCacheCluster+--+--         , testRevokeCacheSecurityGroupIngress $+--             revokeCacheSecurityGroupIngress+--+--         , testDescribeEvents $+--             describeEvents+--+--         , testDescribeEngineDefaultParameters $+--             describeEngineDefaultParameters+--+--         , testModifyCacheParameterGroup $+--             modifyCacheParameterGroup+--+--         , testCreateCacheCluster $+--             createCacheCluster+--+--         , testListTagsForResource $+--             listTagsForResource+--+--         , testDeleteReplicationGroup $+--             deleteReplicationGroup+--+--         , testPurchaseReservedCacheNodesOffering $+--             purchaseReservedCacheNodesOffering+--+--         , testDescribeCacheClusters $+--             describeCacheClusters+--+--         , testModifyReplicationGroup $+--             modifyReplicationGroup+--+--         , testRemoveTagsFromResource $+--             removeTagsFromResource+--+--         , testDescribeCacheParameters $+--             describeCacheParameters+--+--         , testDescribeCacheSubnetGroups $+--             describeCacheSubnetGroups+--+--         , testCreateCacheSecurityGroup $+--             createCacheSecurityGroup+--+--         , testAddTagsToResource $+--             addTagsToResource+--+--         , testAuthorizeCacheSecurityGroupIngress $+--             authorizeCacheSecurityGroupIngress+--+--         , testCopySnapshot $+--             copySnapshot+--+--         , testCreateCacheSubnetGroup $+--             createCacheSubnetGroup+--+--         , testDescribeCacheParameterGroups $+--             describeCacheParameterGroups+--+--         , testResetCacheParameterGroup $+--             resetCacheParameterGroup+--+--         , testDescribeSnapshots $+--             describeSnapshots+--+--         , testDescribeReservedCacheNodesOfferings $+--             describeReservedCacheNodesOfferings+--+--         , testDeleteSnapshot $+--             deleteSnapshot+--+--         , testDescribeReplicationGroups $+--             describeReplicationGroups+--+--         , testModifyCacheSubnetGroup $+--             modifyCacheSubnetGroup+--+--         , testCreateSnapshot $+--             createSnapshot+--+--         , testDescribeCacheSecurityGroups $+--             describeCacheSecurityGroups+--+--         , testDeleteCacheParameterGroup $+--             deleteCacheParameterGroup+--+--         , testDescribeReservedCacheNodes $+--             describeReservedCacheNodes+--+--         , testDescribeCacheEngineVersions $+--             describeCacheEngineVersions+--+--         , testModifyCacheCluster $+--             modifyCacheCluster+--+--         , testCreateCacheParameterGroup $+--             createCacheParameterGroup+--+--         , testDeleteCacheSubnetGroup $+--             deleteCacheSubnetGroup+--+--           ]++--     , testGroup "response"+--         [ testDeleteCacheSecurityGroupResponse $+--             deleteCacheSecurityGroupResponse+--+--         , testCreateReplicationGroupResponse $+--             createReplicationGroupResponse+--+--         , testDeleteCacheClusterResponse $+--             deleteCacheClusterResponse+--+--         , testRebootCacheClusterResponse $+--             rebootCacheClusterResponse+--+--         , testRevokeCacheSecurityGroupIngressResponse $+--             revokeCacheSecurityGroupIngressResponse+--+--         , testDescribeEventsResponse $+--             describeEventsResponse+--+--         , testDescribeEngineDefaultParametersResponse $+--             describeEngineDefaultParametersResponse+--+--         , testModifyCacheParameterGroupResponse $+--             cacheParameterGroupNameMessage+--+--         , testCreateCacheClusterResponse $+--             createCacheClusterResponse+--+--         , testListTagsForResourceResponse $+--             tagListMessage+--+--         , testDeleteReplicationGroupResponse $+--             deleteReplicationGroupResponse+--+--         , testPurchaseReservedCacheNodesOfferingResponse $+--             purchaseReservedCacheNodesOfferingResponse+--+--         , testDescribeCacheClustersResponse $+--             describeCacheClustersResponse+--+--         , testModifyReplicationGroupResponse $+--             modifyReplicationGroupResponse+--+--         , testRemoveTagsFromResourceResponse $+--             tagListMessage+--+--         , testDescribeCacheParametersResponse $+--             describeCacheParametersResponse+--+--         , testDescribeCacheSubnetGroupsResponse $+--             describeCacheSubnetGroupsResponse+--+--         , testCreateCacheSecurityGroupResponse $+--             createCacheSecurityGroupResponse+--+--         , testAddTagsToResourceResponse $+--             tagListMessage+--+--         , testAuthorizeCacheSecurityGroupIngressResponse $+--             authorizeCacheSecurityGroupIngressResponse+--+--         , testCopySnapshotResponse $+--             copySnapshotResponse+--+--         , testCreateCacheSubnetGroupResponse $+--             createCacheSubnetGroupResponse+--+--         , testDescribeCacheParameterGroupsResponse $+--             describeCacheParameterGroupsResponse+--+--         , testResetCacheParameterGroupResponse $+--             cacheParameterGroupNameMessage+--+--         , testDescribeSnapshotsResponse $+--             describeSnapshotsResponse+--+--         , testDescribeReservedCacheNodesOfferingsResponse $+--             describeReservedCacheNodesOfferingsResponse+--+--         , testDeleteSnapshotResponse $+--             deleteSnapshotResponse+--+--         , testDescribeReplicationGroupsResponse $+--             describeReplicationGroupsResponse+--+--         , testModifyCacheSubnetGroupResponse $+--             modifyCacheSubnetGroupResponse+--+--         , testCreateSnapshotResponse $+--             createSnapshotResponse+--+--         , testDescribeCacheSecurityGroupsResponse $+--             describeCacheSecurityGroupsResponse+--+--         , testDeleteCacheParameterGroupResponse $+--             deleteCacheParameterGroupResponse+--+--         , testDescribeReservedCacheNodesResponse $+--             describeReservedCacheNodesResponse+--+--         , testDescribeCacheEngineVersionsResponse $+--             describeCacheEngineVersionsResponse+--+--         , testModifyCacheClusterResponse $+--             modifyCacheClusterResponse+--+--         , testCreateCacheParameterGroupResponse $+--             createCacheParameterGroupResponse+--+--         , testDeleteCacheSubnetGroupResponse $+--             deleteCacheSubnetGroupResponse+--+--           ]+--     ]++-- Requests++testDeleteCacheSecurityGroup :: DeleteCacheSecurityGroup -> TestTree+testDeleteCacheSecurityGroup = req+    "DeleteCacheSecurityGroup"+    "fixture/DeleteCacheSecurityGroup"++testCreateReplicationGroup :: CreateReplicationGroup -> TestTree+testCreateReplicationGroup = req+    "CreateReplicationGroup"+    "fixture/CreateReplicationGroup"++testDeleteCacheCluster :: DeleteCacheCluster -> TestTree+testDeleteCacheCluster = req+    "DeleteCacheCluster"+    "fixture/DeleteCacheCluster"++testRebootCacheCluster :: RebootCacheCluster -> TestTree+testRebootCacheCluster = req+    "RebootCacheCluster"+    "fixture/RebootCacheCluster"++testRevokeCacheSecurityGroupIngress :: RevokeCacheSecurityGroupIngress -> TestTree+testRevokeCacheSecurityGroupIngress = req+    "RevokeCacheSecurityGroupIngress"+    "fixture/RevokeCacheSecurityGroupIngress"++testDescribeEvents :: DescribeEvents -> TestTree+testDescribeEvents = req+    "DescribeEvents"+    "fixture/DescribeEvents"++testDescribeEngineDefaultParameters :: DescribeEngineDefaultParameters -> TestTree+testDescribeEngineDefaultParameters = req+    "DescribeEngineDefaultParameters"+    "fixture/DescribeEngineDefaultParameters"++testModifyCacheParameterGroup :: ModifyCacheParameterGroup -> TestTree+testModifyCacheParameterGroup = req+    "ModifyCacheParameterGroup"+    "fixture/ModifyCacheParameterGroup"++testCreateCacheCluster :: CreateCacheCluster -> TestTree+testCreateCacheCluster = req+    "CreateCacheCluster"+    "fixture/CreateCacheCluster"++testListTagsForResource :: ListTagsForResource -> TestTree+testListTagsForResource = req+    "ListTagsForResource"+    "fixture/ListTagsForResource"++testDeleteReplicationGroup :: DeleteReplicationGroup -> TestTree+testDeleteReplicationGroup = req+    "DeleteReplicationGroup"+    "fixture/DeleteReplicationGroup"++testPurchaseReservedCacheNodesOffering :: PurchaseReservedCacheNodesOffering -> TestTree+testPurchaseReservedCacheNodesOffering = req+    "PurchaseReservedCacheNodesOffering"+    "fixture/PurchaseReservedCacheNodesOffering"++testDescribeCacheClusters :: DescribeCacheClusters -> TestTree+testDescribeCacheClusters = req+    "DescribeCacheClusters"+    "fixture/DescribeCacheClusters"++testModifyReplicationGroup :: ModifyReplicationGroup -> TestTree+testModifyReplicationGroup = req+    "ModifyReplicationGroup"+    "fixture/ModifyReplicationGroup"++testRemoveTagsFromResource :: RemoveTagsFromResource -> TestTree+testRemoveTagsFromResource = req+    "RemoveTagsFromResource"+    "fixture/RemoveTagsFromResource"++testDescribeCacheParameters :: DescribeCacheParameters -> TestTree+testDescribeCacheParameters = req+    "DescribeCacheParameters"+    "fixture/DescribeCacheParameters"++testDescribeCacheSubnetGroups :: DescribeCacheSubnetGroups -> TestTree+testDescribeCacheSubnetGroups = req+    "DescribeCacheSubnetGroups"+    "fixture/DescribeCacheSubnetGroups"++testCreateCacheSecurityGroup :: CreateCacheSecurityGroup -> TestTree+testCreateCacheSecurityGroup = req+    "CreateCacheSecurityGroup"+    "fixture/CreateCacheSecurityGroup"++testAddTagsToResource :: AddTagsToResource -> TestTree+testAddTagsToResource = req+    "AddTagsToResource"+    "fixture/AddTagsToResource"++testAuthorizeCacheSecurityGroupIngress :: AuthorizeCacheSecurityGroupIngress -> TestTree+testAuthorizeCacheSecurityGroupIngress = req+    "AuthorizeCacheSecurityGroupIngress"+    "fixture/AuthorizeCacheSecurityGroupIngress"++testCopySnapshot :: CopySnapshot -> TestTree+testCopySnapshot = req+    "CopySnapshot"+    "fixture/CopySnapshot"++testCreateCacheSubnetGroup :: CreateCacheSubnetGroup -> TestTree+testCreateCacheSubnetGroup = req+    "CreateCacheSubnetGroup"+    "fixture/CreateCacheSubnetGroup"++testDescribeCacheParameterGroups :: DescribeCacheParameterGroups -> TestTree+testDescribeCacheParameterGroups = req+    "DescribeCacheParameterGroups"+    "fixture/DescribeCacheParameterGroups"++testResetCacheParameterGroup :: ResetCacheParameterGroup -> TestTree+testResetCacheParameterGroup = req+    "ResetCacheParameterGroup"+    "fixture/ResetCacheParameterGroup"++testDescribeSnapshots :: DescribeSnapshots -> TestTree+testDescribeSnapshots = req+    "DescribeSnapshots"+    "fixture/DescribeSnapshots"++testDescribeReservedCacheNodesOfferings :: DescribeReservedCacheNodesOfferings -> TestTree+testDescribeReservedCacheNodesOfferings = req+    "DescribeReservedCacheNodesOfferings"+    "fixture/DescribeReservedCacheNodesOfferings"++testDeleteSnapshot :: DeleteSnapshot -> TestTree+testDeleteSnapshot = req+    "DeleteSnapshot"+    "fixture/DeleteSnapshot"++testDescribeReplicationGroups :: DescribeReplicationGroups -> TestTree+testDescribeReplicationGroups = req+    "DescribeReplicationGroups"+    "fixture/DescribeReplicationGroups"++testModifyCacheSubnetGroup :: ModifyCacheSubnetGroup -> TestTree+testModifyCacheSubnetGroup = req+    "ModifyCacheSubnetGroup"+    "fixture/ModifyCacheSubnetGroup"++testCreateSnapshot :: CreateSnapshot -> TestTree+testCreateSnapshot = req+    "CreateSnapshot"+    "fixture/CreateSnapshot"++testDescribeCacheSecurityGroups :: DescribeCacheSecurityGroups -> TestTree+testDescribeCacheSecurityGroups = req+    "DescribeCacheSecurityGroups"+    "fixture/DescribeCacheSecurityGroups"++testDeleteCacheParameterGroup :: DeleteCacheParameterGroup -> TestTree+testDeleteCacheParameterGroup = req+    "DeleteCacheParameterGroup"+    "fixture/DeleteCacheParameterGroup"++testDescribeReservedCacheNodes :: DescribeReservedCacheNodes -> TestTree+testDescribeReservedCacheNodes = req+    "DescribeReservedCacheNodes"+    "fixture/DescribeReservedCacheNodes"++testDescribeCacheEngineVersions :: DescribeCacheEngineVersions -> TestTree+testDescribeCacheEngineVersions = req+    "DescribeCacheEngineVersions"+    "fixture/DescribeCacheEngineVersions"++testModifyCacheCluster :: ModifyCacheCluster -> TestTree+testModifyCacheCluster = req+    "ModifyCacheCluster"+    "fixture/ModifyCacheCluster"++testCreateCacheParameterGroup :: CreateCacheParameterGroup -> TestTree+testCreateCacheParameterGroup = req+    "CreateCacheParameterGroup"+    "fixture/CreateCacheParameterGroup"++testDeleteCacheSubnetGroup :: DeleteCacheSubnetGroup -> TestTree+testDeleteCacheSubnetGroup = req+    "DeleteCacheSubnetGroup"+    "fixture/DeleteCacheSubnetGroup"++-- Responses++testDeleteCacheSecurityGroupResponse :: DeleteCacheSecurityGroupResponse -> TestTree+testDeleteCacheSecurityGroupResponse = res+    "DeleteCacheSecurityGroupResponse"+    "fixture/DeleteCacheSecurityGroupResponse"+    (Proxy :: Proxy DeleteCacheSecurityGroup)++testCreateReplicationGroupResponse :: CreateReplicationGroupResponse -> TestTree+testCreateReplicationGroupResponse = res+    "CreateReplicationGroupResponse"+    "fixture/CreateReplicationGroupResponse"+    (Proxy :: Proxy CreateReplicationGroup)++testDeleteCacheClusterResponse :: DeleteCacheClusterResponse -> TestTree+testDeleteCacheClusterResponse = res+    "DeleteCacheClusterResponse"+    "fixture/DeleteCacheClusterResponse"+    (Proxy :: Proxy DeleteCacheCluster)++testRebootCacheClusterResponse :: RebootCacheClusterResponse -> TestTree+testRebootCacheClusterResponse = res+    "RebootCacheClusterResponse"+    "fixture/RebootCacheClusterResponse"+    (Proxy :: Proxy RebootCacheCluster)++testRevokeCacheSecurityGroupIngressResponse :: RevokeCacheSecurityGroupIngressResponse -> TestTree+testRevokeCacheSecurityGroupIngressResponse = res+    "RevokeCacheSecurityGroupIngressResponse"+    "fixture/RevokeCacheSecurityGroupIngressResponse"+    (Proxy :: Proxy RevokeCacheSecurityGroupIngress)++testDescribeEventsResponse :: DescribeEventsResponse -> TestTree+testDescribeEventsResponse = res+    "DescribeEventsResponse"+    "fixture/DescribeEventsResponse"+    (Proxy :: Proxy DescribeEvents)++testDescribeEngineDefaultParametersResponse :: DescribeEngineDefaultParametersResponse -> TestTree+testDescribeEngineDefaultParametersResponse = res+    "DescribeEngineDefaultParametersResponse"+    "fixture/DescribeEngineDefaultParametersResponse"+    (Proxy :: Proxy DescribeEngineDefaultParameters)++testModifyCacheParameterGroupResponse :: CacheParameterGroupNameMessage -> TestTree+testModifyCacheParameterGroupResponse = res+    "ModifyCacheParameterGroupResponse"+    "fixture/ModifyCacheParameterGroupResponse"+    (Proxy :: Proxy ModifyCacheParameterGroup)++testCreateCacheClusterResponse :: CreateCacheClusterResponse -> TestTree+testCreateCacheClusterResponse = res+    "CreateCacheClusterResponse"+    "fixture/CreateCacheClusterResponse"+    (Proxy :: Proxy CreateCacheCluster)++testListTagsForResourceResponse :: TagListMessage -> TestTree+testListTagsForResourceResponse = res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse"+    (Proxy :: Proxy ListTagsForResource)++testDeleteReplicationGroupResponse :: DeleteReplicationGroupResponse -> TestTree+testDeleteReplicationGroupResponse = res+    "DeleteReplicationGroupResponse"+    "fixture/DeleteReplicationGroupResponse"+    (Proxy :: Proxy DeleteReplicationGroup)++testPurchaseReservedCacheNodesOfferingResponse :: PurchaseReservedCacheNodesOfferingResponse -> TestTree+testPurchaseReservedCacheNodesOfferingResponse = res+    "PurchaseReservedCacheNodesOfferingResponse"+    "fixture/PurchaseReservedCacheNodesOfferingResponse"+    (Proxy :: Proxy PurchaseReservedCacheNodesOffering)++testDescribeCacheClustersResponse :: DescribeCacheClustersResponse -> TestTree+testDescribeCacheClustersResponse = res+    "DescribeCacheClustersResponse"+    "fixture/DescribeCacheClustersResponse"+    (Proxy :: Proxy DescribeCacheClusters)++testModifyReplicationGroupResponse :: ModifyReplicationGroupResponse -> TestTree+testModifyReplicationGroupResponse = res+    "ModifyReplicationGroupResponse"+    "fixture/ModifyReplicationGroupResponse"+    (Proxy :: Proxy ModifyReplicationGroup)++testRemoveTagsFromResourceResponse :: TagListMessage -> TestTree+testRemoveTagsFromResourceResponse = res+    "RemoveTagsFromResourceResponse"+    "fixture/RemoveTagsFromResourceResponse"+    (Proxy :: Proxy RemoveTagsFromResource)++testDescribeCacheParametersResponse :: DescribeCacheParametersResponse -> TestTree+testDescribeCacheParametersResponse = res+    "DescribeCacheParametersResponse"+    "fixture/DescribeCacheParametersResponse"+    (Proxy :: Proxy DescribeCacheParameters)++testDescribeCacheSubnetGroupsResponse :: DescribeCacheSubnetGroupsResponse -> TestTree+testDescribeCacheSubnetGroupsResponse = res+    "DescribeCacheSubnetGroupsResponse"+    "fixture/DescribeCacheSubnetGroupsResponse"+    (Proxy :: Proxy DescribeCacheSubnetGroups)++testCreateCacheSecurityGroupResponse :: CreateCacheSecurityGroupResponse -> TestTree+testCreateCacheSecurityGroupResponse = res+    "CreateCacheSecurityGroupResponse"+    "fixture/CreateCacheSecurityGroupResponse"+    (Proxy :: Proxy CreateCacheSecurityGroup)++testAddTagsToResourceResponse :: TagListMessage -> TestTree+testAddTagsToResourceResponse = res+    "AddTagsToResourceResponse"+    "fixture/AddTagsToResourceResponse"+    (Proxy :: Proxy AddTagsToResource)++testAuthorizeCacheSecurityGroupIngressResponse :: AuthorizeCacheSecurityGroupIngressResponse -> TestTree+testAuthorizeCacheSecurityGroupIngressResponse = res+    "AuthorizeCacheSecurityGroupIngressResponse"+    "fixture/AuthorizeCacheSecurityGroupIngressResponse"+    (Proxy :: Proxy AuthorizeCacheSecurityGroupIngress)++testCopySnapshotResponse :: CopySnapshotResponse -> TestTree+testCopySnapshotResponse = res+    "CopySnapshotResponse"+    "fixture/CopySnapshotResponse"+    (Proxy :: Proxy CopySnapshot)++testCreateCacheSubnetGroupResponse :: CreateCacheSubnetGroupResponse -> TestTree+testCreateCacheSubnetGroupResponse = res+    "CreateCacheSubnetGroupResponse"+    "fixture/CreateCacheSubnetGroupResponse"+    (Proxy :: Proxy CreateCacheSubnetGroup)++testDescribeCacheParameterGroupsResponse :: DescribeCacheParameterGroupsResponse -> TestTree+testDescribeCacheParameterGroupsResponse = res+    "DescribeCacheParameterGroupsResponse"+    "fixture/DescribeCacheParameterGroupsResponse"+    (Proxy :: Proxy DescribeCacheParameterGroups)++testResetCacheParameterGroupResponse :: CacheParameterGroupNameMessage -> TestTree+testResetCacheParameterGroupResponse = res+    "ResetCacheParameterGroupResponse"+    "fixture/ResetCacheParameterGroupResponse"+    (Proxy :: Proxy ResetCacheParameterGroup)++testDescribeSnapshotsResponse :: DescribeSnapshotsResponse -> TestTree+testDescribeSnapshotsResponse = res+    "DescribeSnapshotsResponse"+    "fixture/DescribeSnapshotsResponse"+    (Proxy :: Proxy DescribeSnapshots)++testDescribeReservedCacheNodesOfferingsResponse :: DescribeReservedCacheNodesOfferingsResponse -> TestTree+testDescribeReservedCacheNodesOfferingsResponse = res+    "DescribeReservedCacheNodesOfferingsResponse"+    "fixture/DescribeReservedCacheNodesOfferingsResponse"+    (Proxy :: Proxy DescribeReservedCacheNodesOfferings)++testDeleteSnapshotResponse :: DeleteSnapshotResponse -> TestTree+testDeleteSnapshotResponse = res+    "DeleteSnapshotResponse"+    "fixture/DeleteSnapshotResponse"+    (Proxy :: Proxy DeleteSnapshot)++testDescribeReplicationGroupsResponse :: DescribeReplicationGroupsResponse -> TestTree+testDescribeReplicationGroupsResponse = res+    "DescribeReplicationGroupsResponse"+    "fixture/DescribeReplicationGroupsResponse"+    (Proxy :: Proxy DescribeReplicationGroups)++testModifyCacheSubnetGroupResponse :: ModifyCacheSubnetGroupResponse -> TestTree+testModifyCacheSubnetGroupResponse = res+    "ModifyCacheSubnetGroupResponse"+    "fixture/ModifyCacheSubnetGroupResponse"+    (Proxy :: Proxy ModifyCacheSubnetGroup)++testCreateSnapshotResponse :: CreateSnapshotResponse -> TestTree+testCreateSnapshotResponse = res+    "CreateSnapshotResponse"+    "fixture/CreateSnapshotResponse"+    (Proxy :: Proxy CreateSnapshot)++testDescribeCacheSecurityGroupsResponse :: DescribeCacheSecurityGroupsResponse -> TestTree+testDescribeCacheSecurityGroupsResponse = res+    "DescribeCacheSecurityGroupsResponse"+    "fixture/DescribeCacheSecurityGroupsResponse"+    (Proxy :: Proxy DescribeCacheSecurityGroups)++testDeleteCacheParameterGroupResponse :: DeleteCacheParameterGroupResponse -> TestTree+testDeleteCacheParameterGroupResponse = res+    "DeleteCacheParameterGroupResponse"+    "fixture/DeleteCacheParameterGroupResponse"+    (Proxy :: Proxy DeleteCacheParameterGroup)++testDescribeReservedCacheNodesResponse :: DescribeReservedCacheNodesResponse -> TestTree+testDescribeReservedCacheNodesResponse = res+    "DescribeReservedCacheNodesResponse"+    "fixture/DescribeReservedCacheNodesResponse"+    (Proxy :: Proxy DescribeReservedCacheNodes)++testDescribeCacheEngineVersionsResponse :: DescribeCacheEngineVersionsResponse -> TestTree+testDescribeCacheEngineVersionsResponse = res+    "DescribeCacheEngineVersionsResponse"+    "fixture/DescribeCacheEngineVersionsResponse"+    (Proxy :: Proxy DescribeCacheEngineVersions)++testModifyCacheClusterResponse :: ModifyCacheClusterResponse -> TestTree+testModifyCacheClusterResponse = res+    "ModifyCacheClusterResponse"+    "fixture/ModifyCacheClusterResponse"+    (Proxy :: Proxy ModifyCacheCluster)++testCreateCacheParameterGroupResponse :: CreateCacheParameterGroupResponse -> TestTree+testCreateCacheParameterGroupResponse = res+    "CreateCacheParameterGroupResponse"+    "fixture/CreateCacheParameterGroupResponse"+    (Proxy :: Proxy CreateCacheParameterGroup)++testDeleteCacheSubnetGroupResponse :: DeleteCacheSubnetGroupResponse -> TestTree+testDeleteCacheSubnetGroupResponse = res+    "DeleteCacheSubnetGroupResponse"+    "fixture/DeleteCacheSubnetGroupResponse"+    (Proxy :: Proxy DeleteCacheSubnetGroup)