diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,14 @@
 
 ## Description
 
-Amazon Cognito Sync provides an AWS service and client library that enable cross-device syncing of application-related user data. High-level client libraries are available for both iOS and Android. You can use these libraries to persist data locally so that it's available even if the device is offline. Developer credentials don't need to be stored on the mobile device to access the service. You can use Amazon Cognito to obtain a normalized user ID and credentials. User data is persisted in a dataset that can store up to 1 MB of key-value pairs, and you can have up to 20 datasets per user identity.
+    Amazon Cognito Sync provides an AWS service and client library that enable
+    cross-device syncing of application-related user data. High-level client
+    libraries are available for both iOS and Android. You can use these libraries
+    to persist data locally so that it's available even if the device is offline.
+    Developer credentials don't need to be stored on the mobile device to access
+    the service. You can use Amazon Cognito to obtain a normalized user ID and
+    credentials. User data is persisted in a dataset that can store up to 1 MB of
+    key-value pairs, and you can have up to 20 datasets per user identity.
 
 Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-cognito-sync)
 and [AWS API Reference](http://docs.aws.amazon.com/cognitosync/latest/APIReference/Welcome.html).
diff --git a/amazonka-cognito-sync.cabal b/amazonka-cognito-sync.cabal
--- a/amazonka-cognito-sync.cabal
+++ b/amazonka-cognito-sync.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-cognito-sync
-version:               0.0.1
+version:               0.0.2
 synopsis:              Amazon Cognito Sync SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -13,15 +13,14 @@
 cabal-version:         >= 1.10
 
 description:
-    Amazon Cognito Sync provides an AWS service and client library that
-    enable cross-device syncing of application-related user data.
-    High-level client libraries are available for both iOS and Android. You
-    can use these libraries to persist data locally so that it's available
-    even if the device is offline. Developer credentials don't need to be
-    stored on the mobile device to access the service. You can use Amazon
-    Cognito to obtain a normalized user ID and credentials. User data is
-    persisted in a dataset that can store up to 1 MB of key-value pairs,
-    and you can have up to 20 datasets per user identity.
+    Amazon Cognito Sync provides an AWS service and client library that enable
+    cross-device syncing of application-related user data. High-level client
+    libraries are available for both iOS and Android. You can use these libraries
+    to persist data locally so that it's available even if the device is offline.
+    Developer credentials don't need to be stored on the mobile device to access
+    the service. You can use Amazon Cognito to obtain a normalized user ID and
+    credentials. User data is persisted in a dataset that can store up to 1 MB of
+    key-value pairs, and you can have up to 20 datasets per user identity.
     .
     /See:/ <http://docs.aws.amazon.com/cognitosync/latest/APIReference/Welcome.html AWS API Reference>
     .
@@ -58,5 +57,5 @@
     other-modules:
 
     build-depends:
-          amazonka-core == 0.0.1.*
+          amazonka-core == 0.0.2.*
         , base          >= 4.7     && < 5
diff --git a/gen/Network/AWS/CognitoSync.hs b/gen/Network/AWS/CognitoSync.hs
--- a/gen/Network/AWS/CognitoSync.hs
+++ b/gen/Network/AWS/CognitoSync.hs
@@ -10,13 +10,12 @@
 
 -- | Amazon Cognito Sync provides an AWS service and client library that enable
 -- cross-device syncing of application-related user data. High-level client
--- libraries are available for both iOS and Android. You can use these
--- libraries to persist data locally so that it's available even if the device
--- is offline. Developer credentials don't need to be stored on the mobile
--- device to access the service. You can use Amazon Cognito to obtain a
--- normalized user ID and credentials. User data is persisted in a dataset
--- that can store up to 1 MB of key-value pairs, and you can have up to 20
--- datasets per user identity.
+-- libraries are available for both iOS and Android. You can use these libraries
+-- to persist data locally so that it's available even if the device is offline.
+-- Developer credentials don't need to be stored on the mobile device to access
+-- the service. You can use Amazon Cognito to obtain a normalized user ID and
+-- credentials. User data is persisted in a dataset that can store up to 1 MB of
+-- key-value pairs, and you can have up to 20 datasets per user identity.
 module Network.AWS.CognitoSync
     ( module Network.AWS.CognitoSync.DeleteDataset
     , module Network.AWS.CognitoSync.DescribeDataset
diff --git a/gen/Network/AWS/CognitoSync/DeleteDataset.hs b/gen/Network/AWS/CognitoSync/DeleteDataset.hs
--- a/gen/Network/AWS/CognitoSync/DeleteDataset.hs
+++ b/gen/Network/AWS/CognitoSync/DeleteDataset.hs
@@ -76,20 +76,20 @@
     , _dd1DatasetName    = p3
     }
 
--- | A string of up to 128 characters. Allowed characters are a-z, A-Z, 0-9,
--- '_' (underscore), '-' (dash), and '.' (dot).
+-- | A string of up to 128 characters. Allowed characters are a-z, A-Z, 0-9, '_'
+-- (underscore), '-' (dash), and '.' (dot).
 dd1DatasetName :: Lens' DeleteDataset Text
 dd1DatasetName = lens _dd1DatasetName (\s a -> s { _dd1DatasetName = a })
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito. GUID generation is unique within a region.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
+-- GUID generation is unique within a region.
 dd1IdentityId :: Lens' DeleteDataset Text
 dd1IdentityId = lens _dd1IdentityId (\s a -> s { _dd1IdentityId = a })
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito. GUID generation is unique within a region.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
+-- GUID generation is unique within a region.
 dd1IdentityPoolId :: Lens' DeleteDataset Text
 dd1IdentityPoolId =
     lens _dd1IdentityPoolId (\s a -> s { _dd1IdentityPoolId = a })
@@ -109,11 +109,11 @@
     { _ddr1Dataset = Nothing
     }
 
--- | A collection of data for an identity pool. An identity pool can have
--- multiple datasets. A dataset is per identity and can be general or
--- associated with a particular entity in an application (like a saved
--- game). Datasets are automatically created if they don't exist. Data is
--- synced by dataset, and a dataset can hold up to 1MB of key-value pairs.
+-- | A collection of data for an identity pool. An identity pool can have multiple
+-- datasets. A dataset is per identity and can be general or associated with a
+-- particular entity in an application (like a saved game). Datasets are
+-- automatically created if they don't exist. Data is synced by dataset, and a
+-- dataset can hold up to 1MB of key-value pairs.
 ddr1Dataset :: Lens' DeleteDatasetResponse (Maybe Dataset)
 ddr1Dataset = lens _ddr1Dataset (\s a -> s { _ddr1Dataset = a })
 
diff --git a/gen/Network/AWS/CognitoSync/DescribeDataset.hs b/gen/Network/AWS/CognitoSync/DescribeDataset.hs
--- a/gen/Network/AWS/CognitoSync/DescribeDataset.hs
+++ b/gen/Network/AWS/CognitoSync/DescribeDataset.hs
@@ -77,20 +77,20 @@
     , _ddDatasetName    = p3
     }
 
--- | A string of up to 128 characters. Allowed characters are a-z, A-Z, 0-9,
--- '_' (underscore), '-' (dash), and '.' (dot).
+-- | A string of up to 128 characters. Allowed characters are a-z, A-Z, 0-9, '_'
+-- (underscore), '-' (dash), and '.' (dot).
 ddDatasetName :: Lens' DescribeDataset Text
 ddDatasetName = lens _ddDatasetName (\s a -> s { _ddDatasetName = a })
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito. GUID generation is unique within a region.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
+-- GUID generation is unique within a region.
 ddIdentityId :: Lens' DescribeDataset Text
 ddIdentityId = lens _ddIdentityId (\s a -> s { _ddIdentityId = a })
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito. GUID generation is unique within a region.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
+-- GUID generation is unique within a region.
 ddIdentityPoolId :: Lens' DescribeDataset Text
 ddIdentityPoolId = lens _ddIdentityPoolId (\s a -> s { _ddIdentityPoolId = a })
 
@@ -110,10 +110,10 @@
     }
 
 -- | Metadata for a collection of data for an identity. An identity can have
--- multiple datasets. A dataset can be general or associated with a
--- particular entity in an application (like a saved game). Datasets are
--- automatically created if they don't exist. Data is synced by dataset, and
--- a dataset can hold up to 1MB of key-value pairs.
+-- multiple datasets. A dataset can be general or associated with a particular
+-- entity in an application (like a saved game). Datasets are automatically
+-- created if they don't exist. Data is synced by dataset, and a dataset can
+-- hold up to 1MB of key-value pairs.
 ddrDataset :: Lens' DescribeDatasetResponse (Maybe Dataset)
 ddrDataset = lens _ddrDataset (\s a -> s { _ddrDataset = a })
 
diff --git a/gen/Network/AWS/CognitoSync/DescribeIdentityPoolUsage.hs b/gen/Network/AWS/CognitoSync/DescribeIdentityPoolUsage.hs
--- a/gen/Network/AWS/CognitoSync/DescribeIdentityPoolUsage.hs
+++ b/gen/Network/AWS/CognitoSync/DescribeIdentityPoolUsage.hs
@@ -63,8 +63,8 @@
     }
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito. GUID generation is unique within a region.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
+-- GUID generation is unique within a region.
 dipuIdentityPoolId :: Lens' DescribeIdentityPoolUsage Text
 dipuIdentityPoolId =
     lens _dipuIdentityPoolId (\s a -> s { _dipuIdentityPoolId = a })
diff --git a/gen/Network/AWS/CognitoSync/DescribeIdentityUsage.hs b/gen/Network/AWS/CognitoSync/DescribeIdentityUsage.hs
--- a/gen/Network/AWS/CognitoSync/DescribeIdentityUsage.hs
+++ b/gen/Network/AWS/CognitoSync/DescribeIdentityUsage.hs
@@ -20,8 +20,8 @@
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
 
--- | Gets usage information for an identity, including number of datasets and
--- data usage.
+-- | Gets usage information for an identity, including number of datasets and data
+-- usage.
 --
 -- <http://docs.aws.amazon.com/cognitosync/latest/APIReference/API_DescribeIdentityUsage.html>
 module Network.AWS.CognitoSync.DescribeIdentityUsage
@@ -69,14 +69,14 @@
     }
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito. GUID generation is unique within a region.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
+-- GUID generation is unique within a region.
 diuIdentityId :: Lens' DescribeIdentityUsage Text
 diuIdentityId = lens _diuIdentityId (\s a -> s { _diuIdentityId = a })
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito. GUID generation is unique within a region.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
+-- GUID generation is unique within a region.
 diuIdentityPoolId :: Lens' DescribeIdentityUsage Text
 diuIdentityPoolId =
     lens _diuIdentityPoolId (\s a -> s { _diuIdentityPoolId = a })
diff --git a/gen/Network/AWS/CognitoSync/GetIdentityPoolConfiguration.hs b/gen/Network/AWS/CognitoSync/GetIdentityPoolConfiguration.hs
--- a/gen/Network/AWS/CognitoSync/GetIdentityPoolConfiguration.hs
+++ b/gen/Network/AWS/CognitoSync/GetIdentityPoolConfiguration.hs
@@ -63,8 +63,8 @@
     }
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito. This is the ID of the pool for which to return a configuration.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
+-- This is the ID of the pool for which to return a configuration.
 gipcIdentityPoolId :: Lens' GetIdentityPoolConfiguration Text
 gipcIdentityPoolId =
     lens _gipcIdentityPoolId (\s a -> s { _gipcIdentityPoolId = a })
@@ -89,8 +89,7 @@
     }
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
 gipcrIdentityPoolId :: Lens' GetIdentityPoolConfigurationResponse (Maybe Text)
 gipcrIdentityPoolId =
     lens _gipcrIdentityPoolId (\s a -> s { _gipcrIdentityPoolId = a })
diff --git a/gen/Network/AWS/CognitoSync/ListDatasets.hs b/gen/Network/AWS/CognitoSync/ListDatasets.hs
--- a/gen/Network/AWS/CognitoSync/ListDatasets.hs
+++ b/gen/Network/AWS/CognitoSync/ListDatasets.hs
@@ -23,8 +23,7 @@
 -- | Lists datasets for an identity. The credentials used to make this API call
 -- need to have access to the identity data. With Amazon Cognito Sync, each
 -- identity has access only to its own data. You should use Amazon Cognito
--- Identity service to retrieve the credentials necessary to make this API
--- call.
+-- Identity service to retrieve the credentials necessary to make this API call.
 --
 -- <http://docs.aws.amazon.com/cognitosync/latest/APIReference/API_ListDatasets.html>
 module Network.AWS.CognitoSync.ListDatasets
@@ -84,14 +83,14 @@
     }
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito. GUID generation is unique within a region.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
+-- GUID generation is unique within a region.
 ldIdentityId :: Lens' ListDatasets Text
 ldIdentityId = lens _ldIdentityId (\s a -> s { _ldIdentityId = a })
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito. GUID generation is unique within a region.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
+-- GUID generation is unique within a region.
 ldIdentityPoolId :: Lens' ListDatasets Text
 ldIdentityPoolId = lens _ldIdentityPoolId (\s a -> s { _ldIdentityPoolId = a })
 
diff --git a/gen/Network/AWS/CognitoSync/ListRecords.hs b/gen/Network/AWS/CognitoSync/ListRecords.hs
--- a/gen/Network/AWS/CognitoSync/ListRecords.hs
+++ b/gen/Network/AWS/CognitoSync/ListRecords.hs
@@ -20,12 +20,11 @@
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
 
--- | Gets paginated records, optionally changed after a particular sync count
--- for a dataset and identity. The credentials used to make this API call need
--- to have access to the identity data. With Amazon Cognito Sync, each
--- identity has access only to its own data. You should use Amazon Cognito
--- Identity service to retrieve the credentials necessary to make this API
--- call.
+-- | Gets paginated records, optionally changed after a particular sync count for
+-- a dataset and identity. The credentials used to make this API call need to
+-- have access to the identity data. With Amazon Cognito Sync, each identity has
+-- access only to its own data. You should use Amazon Cognito Identity service
+-- to retrieve the credentials necessary to make this API call.
 --
 -- <http://docs.aws.amazon.com/cognitosync/latest/APIReference/API_ListRecords.html>
 module Network.AWS.CognitoSync.ListRecords
@@ -106,20 +105,20 @@
     , _lrSyncSessionToken = Nothing
     }
 
--- | A string of up to 128 characters. Allowed characters are a-z, A-Z, 0-9,
--- '_' (underscore), '-' (dash), and '.' (dot).
+-- | A string of up to 128 characters. Allowed characters are a-z, A-Z, 0-9, '_'
+-- (underscore), '-' (dash), and '.' (dot).
 lrDatasetName :: Lens' ListRecords Text
 lrDatasetName = lens _lrDatasetName (\s a -> s { _lrDatasetName = a })
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito. GUID generation is unique within a region.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
+-- GUID generation is unique within a region.
 lrIdentityId :: Lens' ListRecords Text
 lrIdentityId = lens _lrIdentityId (\s a -> s { _lrIdentityId = a })
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito. GUID generation is unique within a region.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
+-- GUID generation is unique within a region.
 lrIdentityPoolId :: Lens' ListRecords Text
 lrIdentityPoolId = lens _lrIdentityPoolId (\s a -> s { _lrIdentityPoolId = a })
 
diff --git a/gen/Network/AWS/CognitoSync/RegisterDevice.hs b/gen/Network/AWS/CognitoSync/RegisterDevice.hs
--- a/gen/Network/AWS/CognitoSync/RegisterDevice.hs
+++ b/gen/Network/AWS/CognitoSync/RegisterDevice.hs
@@ -84,8 +84,8 @@
 rdIdentityId = lens _rdIdentityId (\s a -> s { _rdIdentityId = a })
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito. Here, the ID of the pool that the identity belongs to.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
+-- Here, the ID of the pool that the identity belongs to.
 rdIdentityPoolId :: Lens' RegisterDevice Text
 rdIdentityPoolId = lens _rdIdentityPoolId (\s a -> s { _rdIdentityPoolId = a })
 
diff --git a/gen/Network/AWS/CognitoSync/SetIdentityPoolConfiguration.hs b/gen/Network/AWS/CognitoSync/SetIdentityPoolConfiguration.hs
--- a/gen/Network/AWS/CognitoSync/SetIdentityPoolConfiguration.hs
+++ b/gen/Network/AWS/CognitoSync/SetIdentityPoolConfiguration.hs
@@ -68,8 +68,8 @@
     }
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito. This is the ID of the pool to modify.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
+-- This is the ID of the pool to modify.
 sipcIdentityPoolId :: Lens' SetIdentityPoolConfiguration Text
 sipcIdentityPoolId =
     lens _sipcIdentityPoolId (\s a -> s { _sipcIdentityPoolId = a })
@@ -98,8 +98,7 @@
     }
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
 sipcrIdentityPoolId :: Lens' SetIdentityPoolConfigurationResponse (Maybe Text)
 sipcrIdentityPoolId =
     lens _sipcrIdentityPoolId (\s a -> s { _sipcrIdentityPoolId = a })
diff --git a/gen/Network/AWS/CognitoSync/SubscribeToDataset.hs b/gen/Network/AWS/CognitoSync/SubscribeToDataset.hs
--- a/gen/Network/AWS/CognitoSync/SubscribeToDataset.hs
+++ b/gen/Network/AWS/CognitoSync/SubscribeToDataset.hs
@@ -91,8 +91,8 @@
 stdIdentityId = lens _stdIdentityId (\s a -> s { _stdIdentityId = a })
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito. The ID of the pool to which the identity belongs.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
+-- The ID of the pool to which the identity belongs.
 stdIdentityPoolId :: Lens' SubscribeToDataset Text
 stdIdentityPoolId =
     lens _stdIdentityPoolId (\s a -> s { _stdIdentityPoolId = a })
diff --git a/gen/Network/AWS/CognitoSync/Types.hs b/gen/Network/AWS/CognitoSync/Types.hs
--- a/gen/Network/AWS/CognitoSync/Types.hs
+++ b/gen/Network/AWS/CognitoSync/Types.hs
@@ -114,7 +114,7 @@
 data IdentityPoolUsage = IdentityPoolUsage
     { _ipuDataStorage       :: Maybe Integer
     , _ipuIdentityPoolId    :: Maybe Text
-    , _ipuLastModifiedDate  :: Maybe RFC822
+    , _ipuLastModifiedDate  :: Maybe ISO8601
     , _ipuSyncSessionsCount :: Maybe Integer
     } deriving (Eq, Ord, Show)
 
@@ -143,8 +143,8 @@
 ipuDataStorage = lens _ipuDataStorage (\s a -> s { _ipuDataStorage = a })
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito. GUID generation is unique within a region.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
+-- GUID generation is unique within a region.
 ipuIdentityPoolId :: Lens' IdentityPoolUsage (Maybe Text)
 ipuIdentityPoolId =
     lens _ipuIdentityPoolId (\s a -> s { _ipuIdentityPoolId = a })
@@ -185,10 +185,13 @@
 instance Hashable Platform
 
 instance FromText Platform where
-    parser = match "ADM"          Adm
-         <|> match "APNS"         Apns
-         <|> match "APNS_SANDBOX" ApnsSandbox
-         <|> match "GCM"          Gcm
+    parser = takeText >>= \case
+        "ADM"          -> pure Adm
+        "APNS"         -> pure Apns
+        "APNS_SANDBOX" -> pure ApnsSandbox
+        "GCM"          -> pure Gcm
+        e              -> fail $
+            "Failure parsing Platform from " ++ show e
 
 instance ToText Platform where
     toText = \case
@@ -208,12 +211,12 @@
     toJSON = toJSONText
 
 data Dataset = Dataset
-    { _dCreationDate     :: Maybe RFC822
+    { _dCreationDate     :: Maybe ISO8601
     , _dDataStorage      :: Maybe Integer
     , _dDatasetName      :: Maybe Text
     , _dIdentityId       :: Maybe Text
     , _dLastModifiedBy   :: Maybe Text
-    , _dLastModifiedDate :: Maybe RFC822
+    , _dLastModifiedDate :: Maybe ISO8601
     , _dNumRecords       :: Maybe Integer
     } deriving (Eq, Ord, Show)
 
@@ -254,14 +257,14 @@
 dDataStorage :: Lens' Dataset (Maybe Integer)
 dDataStorage = lens _dDataStorage (\s a -> s { _dDataStorage = a })
 
--- | A string of up to 128 characters. Allowed characters are a-z, A-Z, 0-9,
--- '_' (underscore), '-' (dash), and '.' (dot).
+-- | A string of up to 128 characters. Allowed characters are a-z, A-Z, 0-9, '_'
+-- (underscore), '-' (dash), and '.' (dot).
 dDatasetName :: Lens' Dataset (Maybe Text)
 dDatasetName = lens _dDatasetName (\s a -> s { _dDatasetName = a })
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito. GUID generation is unique within a region.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
+-- GUID generation is unique within a region.
 dIdentityId :: Lens' Dataset (Maybe Text)
 dIdentityId = lens _dIdentityId (\s a -> s { _dIdentityId = a })
 
@@ -308,8 +311,11 @@
 instance Hashable Operation
 
 instance FromText Operation where
-    parser = match "remove"  Remove
-         <|> match "replace" Replace
+    parser = takeText >>= \case
+        "remove"  -> pure Remove
+        "replace" -> pure Replace
+        e         -> fail $
+            "Failure parsing Operation from " ++ show e
 
 instance ToText Operation where
     toText = \case
@@ -327,10 +333,10 @@
     toJSON = toJSONText
 
 data Record = Record
-    { _rDeviceLastModifiedDate :: Maybe RFC822
+    { _rDeviceLastModifiedDate :: Maybe ISO8601
     , _rKey                    :: Maybe Text
     , _rLastModifiedBy         :: Maybe Text
-    , _rLastModifiedDate       :: Maybe RFC822
+    , _rLastModifiedDate       :: Maybe ISO8601
     , _rSyncCount              :: Maybe Integer
     , _rValue                  :: Maybe Text
     } deriving (Eq, Ord, Show)
@@ -413,7 +419,7 @@
     , _iuDatasetCount     :: Maybe Int
     , _iuIdentityId       :: Maybe Text
     , _iuIdentityPoolId   :: Maybe Text
-    , _iuLastModifiedDate :: Maybe RFC822
+    , _iuLastModifiedDate :: Maybe ISO8601
     } deriving (Eq, Ord, Show)
 
 -- | 'IdentityUsage' constructor.
@@ -448,14 +454,14 @@
 iuDatasetCount = lens _iuDatasetCount (\s a -> s { _iuDatasetCount = a })
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito. GUID generation is unique within a region.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
+-- GUID generation is unique within a region.
 iuIdentityId :: Lens' IdentityUsage (Maybe Text)
 iuIdentityId = lens _iuIdentityId (\s a -> s { _iuIdentityId = a })
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito. GUID generation is unique within a region.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
+-- GUID generation is unique within a region.
 iuIdentityPoolId :: Lens' IdentityUsage (Maybe Text)
 iuIdentityPoolId = lens _iuIdentityPoolId (\s a -> s { _iuIdentityPoolId = a })
 
@@ -483,7 +489,7 @@
         ]
 
 data RecordPatch = RecordPatch
-    { _rpDeviceLastModifiedDate :: Maybe RFC822
+    { _rpDeviceLastModifiedDate :: Maybe ISO8601
     , _rpKey                    :: Text
     , _rpOp                     :: Operation
     , _rpSyncCount              :: Integer
@@ -581,8 +587,7 @@
     lens _psApplicationArns (\s a -> s { _psApplicationArns = a })
         . _List
 
--- | A role configured to allow Cognito to call SNS on behalf of the
--- developer.
+-- | A role configured to allow Cognito to call SNS on behalf of the developer.
 psRoleArn :: Lens' PushSync (Maybe Text)
 psRoleArn = lens _psRoleArn (\s a -> s { _psRoleArn = a })
 
diff --git a/gen/Network/AWS/CognitoSync/UnsubscribeFromDataset.hs b/gen/Network/AWS/CognitoSync/UnsubscribeFromDataset.hs
--- a/gen/Network/AWS/CognitoSync/UnsubscribeFromDataset.hs
+++ b/gen/Network/AWS/CognitoSync/UnsubscribeFromDataset.hs
@@ -91,8 +91,8 @@
 ufdIdentityId = lens _ufdIdentityId (\s a -> s { _ufdIdentityId = a })
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito. The ID of the pool to which this identity belongs.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
+-- The ID of the pool to which this identity belongs.
 ufdIdentityPoolId :: Lens' UnsubscribeFromDataset Text
 ufdIdentityPoolId =
     lens _ufdIdentityPoolId (\s a -> s { _ufdIdentityPoolId = a })
diff --git a/gen/Network/AWS/CognitoSync/UpdateRecords.hs b/gen/Network/AWS/CognitoSync/UpdateRecords.hs
--- a/gen/Network/AWS/CognitoSync/UpdateRecords.hs
+++ b/gen/Network/AWS/CognitoSync/UpdateRecords.hs
@@ -22,9 +22,9 @@
 
 -- | Posts updates to records and add and delete records for a dataset and user.
 -- The credentials used to make this API call need to have access to the
--- identity data. With Amazon Cognito Sync, each identity has access only to
--- its own data. You should use Amazon Cognito Identity service to retrieve
--- the credentials necessary to make this API call.
+-- identity data. With Amazon Cognito Sync, each identity has access only to its
+-- own data. You should use Amazon Cognito Identity service to retrieve the
+-- credentials necessary to make this API call.
 --
 -- <http://docs.aws.amazon.com/cognitosync/latest/APIReference/API_UpdateRecords.html>
 module Network.AWS.CognitoSync.UpdateRecords
@@ -98,14 +98,13 @@
     , _urClientContext    = Nothing
     }
 
--- | Intended to supply a device ID that will populate the lastModifiedBy
--- field referenced in other methods. The ClientContext field is not yet
--- implemented.
+-- | Intended to supply a device ID that will populate the 'lastModifiedBy' field
+-- referenced in other methods. The 'ClientContext' field is not yet implemented.
 urClientContext :: Lens' UpdateRecords (Maybe Text)
 urClientContext = lens _urClientContext (\s a -> s { _urClientContext = a })
 
--- | A string of up to 128 characters. Allowed characters are a-z, A-Z, 0-9,
--- '_' (underscore), '-' (dash), and '.' (dot).
+-- | A string of up to 128 characters. Allowed characters are a-z, A-Z, 0-9, '_'
+-- (underscore), '-' (dash), and '.' (dot).
 urDatasetName :: Lens' UpdateRecords Text
 urDatasetName = lens _urDatasetName (\s a -> s { _urDatasetName = a })
 
@@ -114,14 +113,14 @@
 urDeviceId = lens _urDeviceId (\s a -> s { _urDeviceId = a })
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito. GUID generation is unique within a region.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
+-- GUID generation is unique within a region.
 urIdentityId :: Lens' UpdateRecords Text
 urIdentityId = lens _urIdentityId (\s a -> s { _urIdentityId = a })
 
 -- | A name-spaced GUID (for example,
--- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
--- Cognito. GUID generation is unique within a region.
+-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.
+-- GUID generation is unique within a region.
 urIdentityPoolId :: Lens' UpdateRecords Text
 urIdentityPoolId = lens _urIdentityPoolId (\s a -> s { _urIdentityPoolId = a })
 
