diff --git a/amazonka-elasticache.cabal b/amazonka-elasticache.cabal
--- a/amazonka-elasticache.cabal
+++ b/amazonka-elasticache.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-elasticache
-version:               0.0.0
+version:               0.0.1
 synopsis:              Amazon ElastiCache SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -81,5 +81,5 @@
     other-modules:
 
     build-depends:
-          amazonka-core
-        , base          >= 4.7 && < 5
+          amazonka-core == 0.0.1.*
+        , base          >= 4.7     && < 5
diff --git a/gen/Network/AWS/ElastiCache/CreateCacheCluster.hs b/gen/Network/AWS/ElastiCache/CreateCacheCluster.hs
--- a/gen/Network/AWS/ElastiCache/CreateCacheCluster.hs
+++ b/gen/Network/AWS/ElastiCache/CreateCacheCluster.hs
@@ -68,7 +68,7 @@
 import qualified GHC.Exts
 
 data CreateCacheCluster = CreateCacheCluster
-    { _cccAZMode                     :: Maybe Text
+    { _cccAZMode                     :: Maybe AZMode
     , _cccAutoMinorVersionUpgrade    :: Maybe Bool
     , _cccCacheClusterId             :: Text
     , _cccCacheNodeType              :: Maybe Text
@@ -89,13 +89,13 @@
     , _cccSnapshotName               :: Maybe Text
     , _cccSnapshotRetentionLimit     :: Maybe Int
     , _cccSnapshotWindow             :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Show)
 
 -- | 'CreateCacheCluster' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'cccAZMode' @::@ 'Maybe' 'Text'
+-- * 'cccAZMode' @::@ 'Maybe' 'AZMode'
 --
 -- * 'cccAutoMinorVersionUpgrade' @::@ 'Maybe' 'Bool'
 --
@@ -168,7 +168,7 @@
 -- 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 Text)
+cccAZMode :: Lens' CreateCacheCluster (Maybe AZMode)
 cccAZMode = lens _cccAZMode (\s a -> s { _cccAZMode = a })
 
 -- | Determines whether minor engine upgrades will be applied automatically to
diff --git a/gen/Network/AWS/ElastiCache/DescribeEvents.hs b/gen/Network/AWS/ElastiCache/DescribeEvents.hs
--- a/gen/Network/AWS/ElastiCache/DescribeEvents.hs
+++ b/gen/Network/AWS/ElastiCache/DescribeEvents.hs
@@ -63,9 +63,9 @@
     , _deMarker           :: Maybe Text
     , _deMaxRecords       :: Maybe Int
     , _deSourceIdentifier :: Maybe Text
-    , _deSourceType       :: Maybe Text
+    , _deSourceType       :: Maybe SourceType
     , _deStartTime        :: Maybe RFC822
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Show)
 
 -- | 'DescribeEvents' constructor.
 --
@@ -81,7 +81,7 @@
 --
 -- * 'deSourceIdentifier' @::@ 'Maybe' 'Text'
 --
--- * 'deSourceType' @::@ 'Maybe' 'Text'
+-- * 'deSourceType' @::@ 'Maybe' 'SourceType'
 --
 -- * 'deStartTime' @::@ 'Maybe' 'UTCTime'
 --
@@ -128,7 +128,7 @@
 -- | 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 Text)
+deSourceType :: Lens' DescribeEvents (Maybe SourceType)
 deSourceType = lens _deSourceType (\s a -> s { _deSourceType = a })
 
 -- | The beginning of the time interval to retrieve events for, specified in
diff --git a/gen/Network/AWS/ElastiCache/ModifyCacheCluster.hs b/gen/Network/AWS/ElastiCache/ModifyCacheCluster.hs
--- a/gen/Network/AWS/ElastiCache/ModifyCacheCluster.hs
+++ b/gen/Network/AWS/ElastiCache/ModifyCacheCluster.hs
@@ -63,7 +63,7 @@
 import qualified GHC.Exts
 
 data ModifyCacheCluster = ModifyCacheCluster
-    { _mccAZMode                     :: Maybe Text
+    { _mccAZMode                     :: Maybe AZMode
     , _mccApplyImmediately           :: Maybe Bool
     , _mccAutoMinorVersionUpgrade    :: Maybe Bool
     , _mccCacheClusterId             :: Text
@@ -79,13 +79,13 @@
     , _mccSecurityGroupIds           :: List "SecurityGroupId" Text
     , _mccSnapshotRetentionLimit     :: Maybe Int
     , _mccSnapshotWindow             :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Show)
 
 -- | 'ModifyCacheCluster' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'mccAZMode' @::@ 'Maybe' 'Text'
+-- * 'mccAZMode' @::@ 'Maybe' 'AZMode'
 --
 -- * 'mccApplyImmediately' @::@ 'Maybe' 'Bool'
 --
@@ -142,7 +142,7 @@
 -- created in a single Availability Zone or created across multiple
 -- Availability Zones. Valid values: single-az | cross-az. This option is
 -- only supported for Memcached cache clusters.
-mccAZMode :: Lens' ModifyCacheCluster (Maybe Text)
+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
diff --git a/gen/Network/AWS/ElastiCache/Types.hs b/gen/Network/AWS/ElastiCache/Types.hs
--- a/gen/Network/AWS/ElastiCache/Types.hs
+++ b/gen/Network/AWS/ElastiCache/Types.hs
@@ -669,8 +669,8 @@
     { _eDate             :: Maybe RFC822
     , _eMessage          :: Maybe Text
     , _eSourceIdentifier :: Maybe Text
-    , _eSourceType       :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    , _eSourceType       :: Maybe SourceType
+    } deriving (Eq, Show)
 
 -- | 'Event' constructor.
 --
@@ -682,7 +682,7 @@
 --
 -- * 'eSourceIdentifier' @::@ 'Maybe' 'Text'
 --
--- * 'eSourceType' @::@ 'Maybe' 'Text'
+-- * 'eSourceType' @::@ 'Maybe' 'SourceType'
 --
 event :: Event
 event = Event
@@ -709,7 +709,7 @@
 
 -- | Specifies the origin of this event - a cache cluster, a parameter group,
 -- a security group, etc.
-eSourceType :: Lens' Event (Maybe Text)
+eSourceType :: Lens' Event (Maybe SourceType)
 eSourceType = lens _eSourceType (\s a -> s { _eSourceType = a })
 
 instance FromXML Event where
@@ -844,11 +844,13 @@
         Disabled -> "disabled"
         Enabled  -> "enabled"
 
+instance ToByteString PendingAutomaticFailoverStatus
+instance ToHeader     PendingAutomaticFailoverStatus
+instance ToQuery      PendingAutomaticFailoverStatus
+
 instance FromXML PendingAutomaticFailoverStatus where
     parseXML = parseXMLText "PendingAutomaticFailoverStatus"
 
-instance ToQuery PendingAutomaticFailoverStatus where
-    toQuery = toQuery . toText
 
 data NotificationConfiguration = NotificationConfiguration
     { _ncTopicArn    :: Maybe Text
@@ -889,15 +891,15 @@
         ]
 
 data ReplicationGroupPendingModifiedValues = ReplicationGroupPendingModifiedValues
-    { _rgpmvAutomaticFailoverStatus :: Maybe Text
+    { _rgpmvAutomaticFailoverStatus :: Maybe PendingAutomaticFailoverStatus
     , _rgpmvPrimaryClusterId        :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Show)
 
 -- | 'ReplicationGroupPendingModifiedValues' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'rgpmvAutomaticFailoverStatus' @::@ 'Maybe' 'Text'
+-- * 'rgpmvAutomaticFailoverStatus' @::@ 'Maybe' 'PendingAutomaticFailoverStatus'
 --
 -- * 'rgpmvPrimaryClusterId' @::@ 'Maybe' 'Text'
 --
@@ -908,7 +910,7 @@
     }
 
 -- | Indicates the status of automatic failover for this replication group.
-rgpmvAutomaticFailoverStatus :: Lens' ReplicationGroupPendingModifiedValues (Maybe Text)
+rgpmvAutomaticFailoverStatus :: Lens' ReplicationGroupPendingModifiedValues (Maybe PendingAutomaticFailoverStatus)
 rgpmvAutomaticFailoverStatus =
     lens _rgpmvAutomaticFailoverStatus
         (\s a -> s { _rgpmvAutomaticFailoverStatus = a })
@@ -1044,11 +1046,13 @@
         STCacheSecurityGroup  -> "cache-security-group"
         STCacheSubnetGroup    -> "cache-subnet-group"
 
+instance ToByteString SourceType
+instance ToHeader     SourceType
+instance ToQuery      SourceType
+
 instance FromXML SourceType where
     parseXML = parseXMLText "SourceType"
 
-instance ToQuery SourceType where
-    toQuery = toQuery . toText
 
 data CacheSubnetGroup = CacheSubnetGroup
     { _csgCacheSubnetGroupDescription :: Maybe Text
@@ -2049,11 +2053,13 @@
         AFSEnabled   -> "enabled"
         AFSEnabling  -> "enabling"
 
+instance ToByteString AutomaticFailoverStatus
+instance ToHeader     AutomaticFailoverStatus
+instance ToQuery      AutomaticFailoverStatus
+
 instance FromXML AutomaticFailoverStatus where
     parseXML = parseXMLText "AutomaticFailoverStatus"
 
-instance ToQuery AutomaticFailoverStatus where
-    toQuery = toQuery . toText
 
 data CacheSecurityGroup = CacheSecurityGroup
     { _csgCacheSecurityGroupName :: Maybe Text
@@ -2243,11 +2249,13 @@
         CrossAz  -> "cross-az"
         SingleAz -> "single-az"
 
+instance ToByteString AZMode
+instance ToHeader     AZMode
+instance ToQuery      AZMode
+
 instance FromXML AZMode where
     parseXML = parseXMLText "AZMode"
 
-instance ToQuery AZMode where
-    toQuery = toQuery . toText
 
 data CacheEngineVersion = CacheEngineVersion
     { _cevCacheEngineDescription        :: Maybe Text
@@ -2325,7 +2333,7 @@
         ]
 
 data ReplicationGroup = ReplicationGroup
-    { _rgAutomaticFailover     :: Maybe Text
+    { _rgAutomaticFailover     :: Maybe AutomaticFailoverStatus
     , _rgDescription           :: Maybe Text
     , _rgMemberClusters        :: List "ClusterId" Text
     , _rgNodeGroups            :: List "NodeGroup" NodeGroup
@@ -2339,7 +2347,7 @@
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'rgAutomaticFailover' @::@ 'Maybe' 'Text'
+-- * 'rgAutomaticFailover' @::@ 'Maybe' 'AutomaticFailoverStatus'
 --
 -- * 'rgDescription' @::@ 'Maybe' 'Text'
 --
@@ -2368,7 +2376,7 @@
     }
 
 -- | Indicates the status of automatic failover for this replication group.
-rgAutomaticFailover :: Lens' ReplicationGroup (Maybe Text)
+rgAutomaticFailover :: Lens' ReplicationGroup (Maybe AutomaticFailoverStatus)
 rgAutomaticFailover =
     lens _rgAutomaticFailover (\s a -> s { _rgAutomaticFailover = a })
 
