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.3.4
+version:               0.3.5
 synopsis:              Amazon Cognito Sync SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -46,11 +46,13 @@
         , Network.AWS.CognitoSync.DescribeIdentityPoolUsage
         , Network.AWS.CognitoSync.DescribeIdentityUsage
         , Network.AWS.CognitoSync.GetBulkPublishDetails
+        , Network.AWS.CognitoSync.GetCognitoEvents
         , Network.AWS.CognitoSync.GetIdentityPoolConfiguration
         , Network.AWS.CognitoSync.ListDatasets
         , Network.AWS.CognitoSync.ListIdentityPoolUsage
         , Network.AWS.CognitoSync.ListRecords
         , Network.AWS.CognitoSync.RegisterDevice
+        , Network.AWS.CognitoSync.SetCognitoEvents
         , Network.AWS.CognitoSync.SetIdentityPoolConfiguration
         , Network.AWS.CognitoSync.SubscribeToDataset
         , Network.AWS.CognitoSync.Types
@@ -60,5 +62,5 @@
     other-modules:
 
     build-depends:
-          amazonka-core == 0.3.4.*
+          amazonka-core == 0.3.5.*
         , 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
@@ -25,11 +25,13 @@
     , module Network.AWS.CognitoSync.DescribeIdentityPoolUsage
     , module Network.AWS.CognitoSync.DescribeIdentityUsage
     , module Network.AWS.CognitoSync.GetBulkPublishDetails
+    , module Network.AWS.CognitoSync.GetCognitoEvents
     , module Network.AWS.CognitoSync.GetIdentityPoolConfiguration
     , module Network.AWS.CognitoSync.ListDatasets
     , module Network.AWS.CognitoSync.ListIdentityPoolUsage
     , module Network.AWS.CognitoSync.ListRecords
     , module Network.AWS.CognitoSync.RegisterDevice
+    , module Network.AWS.CognitoSync.SetCognitoEvents
     , module Network.AWS.CognitoSync.SetIdentityPoolConfiguration
     , module Network.AWS.CognitoSync.SubscribeToDataset
     , module Network.AWS.CognitoSync.Types
@@ -43,11 +45,13 @@
 import Network.AWS.CognitoSync.DescribeIdentityPoolUsage
 import Network.AWS.CognitoSync.DescribeIdentityUsage
 import Network.AWS.CognitoSync.GetBulkPublishDetails
+import Network.AWS.CognitoSync.GetCognitoEvents
 import Network.AWS.CognitoSync.GetIdentityPoolConfiguration
 import Network.AWS.CognitoSync.ListDatasets
 import Network.AWS.CognitoSync.ListIdentityPoolUsage
 import Network.AWS.CognitoSync.ListRecords
 import Network.AWS.CognitoSync.RegisterDevice
+import Network.AWS.CognitoSync.SetCognitoEvents
 import Network.AWS.CognitoSync.SetIdentityPoolConfiguration
 import Network.AWS.CognitoSync.SubscribeToDataset
 import Network.AWS.CognitoSync.Types
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
@@ -25,9 +25,9 @@
 -- | Deletes the specific dataset. The dataset will be deleted permanently, and
 -- the action can't be undone. Datasets that this dataset was merged with will
 -- no longer report the merge. Any subsequent operation on this dataset will
--- result in a 'ResourceNotFoundException'.
+-- result in a ResourceNotFoundException.
 --
--- 'DeleteDataset' can be called with temporary user credentials provided by
+-- DeleteDataset can be called with temporary user credentials provided by
 -- Cognito Identity or with developer credentials.
 --
 -- <http://docs.aws.amazon.com/cognitosync/latest/APIReference/API_DeleteDataset.html>
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
@@ -27,7 +27,7 @@
 -- credentials used to make this API call need to have access to the identity
 -- data.
 --
--- 'DescribeDataset' can be called with temporary user credentials provided by
+-- DescribeDataset can be called with temporary user credentials provided by
 -- Cognito Identity or with developer credentials. You should use Cognito
 -- Identity credentials to make this API call.
 --
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
@@ -25,7 +25,7 @@
 -- | Gets usage details (for example, data storage) about a particular identity
 -- pool.
 --
--- 'DescribeIdentityPoolUsage' can only be called with developer credentials. You
+-- DescribeIdentityPoolUsage can only be called with developer credentials. You
 -- cannot make this API call with the temporary user credentials provided by
 -- Cognito Identity.
 --
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
@@ -25,7 +25,7 @@
 -- | Gets usage information for an identity, including number of datasets and data
 -- usage.
 --
--- 'DescribeIdentityUsage' can be called with temporary user credentials provided
+-- DescribeIdentityUsage can be called with temporary user credentials provided
 -- by Cognito Identity or with developer credentials.
 --
 -- <http://docs.aws.amazon.com/cognitosync/latest/APIReference/API_DescribeIdentityUsage.html>
diff --git a/gen/Network/AWS/CognitoSync/GetBulkPublishDetails.hs b/gen/Network/AWS/CognitoSync/GetBulkPublishDetails.hs
--- a/gen/Network/AWS/CognitoSync/GetBulkPublishDetails.hs
+++ b/gen/Network/AWS/CognitoSync/GetBulkPublishDetails.hs
@@ -106,7 +106,7 @@
     , _gbpdrFailureMessage          = Nothing
     }
 
--- | If 'BulkPublishStatus' is SUCCEEDED, the time the last bulk publish operation
+-- | If BulkPublishStatus is SUCCEEDED, the time the last bulk publish operation
 -- completed.
 gbpdrBulkPublishCompleteTime :: Lens' GetBulkPublishDetailsResponse (Maybe UTCTime)
 gbpdrBulkPublishCompleteTime =
@@ -121,16 +121,16 @@
         (\s a -> s { _gbpdrBulkPublishStartTime = a })
             . mapping _Time
 
--- | Status of the last bulk publish operation, valid values are: 'NOT_STARTED' - No
+-- | Status of the last bulk publish operation, valid values are: NOT_STARTED - No
 -- bulk publish has been requested for this identity pool
 --
--- 'IN_PROGRESS' - Data is being published to the configured stream
+-- IN_PROGRESS - Data is being published to the configured stream
 --
--- 'SUCCEEDED' - All data for the identity pool has been published to the
+-- SUCCEEDED - All data for the identity pool has been published to the
 -- configured stream
 --
--- 'FAILED' - Some portion of the data has failed to publish, check 'FailureMessage'
--- for the cause.
+-- FAILED - Some portion of the data has failed to publish, check
+-- FailureMessage for the cause.
 gbpdrBulkPublishStatus :: Lens' GetBulkPublishDetailsResponse (Maybe BulkPublishStatus)
 gbpdrBulkPublishStatus =
     lens _gbpdrBulkPublishStatus (\s a -> s { _gbpdrBulkPublishStatus = a })
diff --git a/gen/Network/AWS/CognitoSync/GetCognitoEvents.hs b/gen/Network/AWS/CognitoSync/GetCognitoEvents.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/CognitoSync/GetCognitoEvents.hs
@@ -0,0 +1,116 @@
+{-# LANGUAGE DataKinds                   #-}
+{-# LANGUAGE DeriveGeneric               #-}
+{-# LANGUAGE FlexibleInstances           #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
+{-# LANGUAGE LambdaCase                  #-}
+{-# LANGUAGE NoImplicitPrelude           #-}
+{-# LANGUAGE OverloadedStrings           #-}
+{-# LANGUAGE RecordWildCards             #-}
+{-# LANGUAGE TypeFamilies                #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Module      : Network.AWS.CognitoSync.GetCognitoEvents
+-- 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.
+
+-- | Gets the events and the corresponding Lambda functions associated with an
+-- identity pool
+--
+-- <http://docs.aws.amazon.com/cognitosync/latest/APIReference/API_GetCognitoEvents.html>
+module Network.AWS.CognitoSync.GetCognitoEvents
+    (
+    -- * Request
+      GetCognitoEvents
+    -- ** Request constructor
+    , getCognitoEvents
+    -- ** Request lenses
+    , gceIdentityPoolId
+
+    -- * Response
+    , GetCognitoEventsResponse
+    -- ** Response constructor
+    , getCognitoEventsResponse
+    -- ** Response lenses
+    , gcerEvents
+    ) where
+
+import Network.AWS.Data (Object)
+import Network.AWS.Prelude
+import Network.AWS.Request.RestJSON
+import Network.AWS.CognitoSync.Types
+import qualified GHC.Exts
+
+newtype GetCognitoEvents = GetCognitoEvents
+    { _gceIdentityPoolId :: Text
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
+
+-- | 'GetCognitoEvents' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'gceIdentityPoolId' @::@ 'Text'
+--
+getCognitoEvents :: Text -- ^ 'gceIdentityPoolId'
+                 -> GetCognitoEvents
+getCognitoEvents p1 = GetCognitoEvents
+    { _gceIdentityPoolId = p1
+    }
+
+-- | The Cognito Identity Pool ID for the request
+gceIdentityPoolId :: Lens' GetCognitoEvents Text
+gceIdentityPoolId =
+    lens _gceIdentityPoolId (\s a -> s { _gceIdentityPoolId = a })
+
+newtype GetCognitoEventsResponse = GetCognitoEventsResponse
+    { _gcerEvents :: Map Text Text
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
+
+-- | 'GetCognitoEventsResponse' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'gcerEvents' @::@ 'HashMap' 'Text' 'Text'
+--
+getCognitoEventsResponse :: GetCognitoEventsResponse
+getCognitoEventsResponse = GetCognitoEventsResponse
+    { _gcerEvents = mempty
+    }
+
+-- | The Cognito Events returned from the GetCognitoEvents request
+gcerEvents :: Lens' GetCognitoEventsResponse (HashMap Text Text)
+gcerEvents = lens _gcerEvents (\s a -> s { _gcerEvents = a }) . _Map
+
+instance ToPath GetCognitoEvents where
+    toPath GetCognitoEvents{..} = mconcat
+        [ "/identitypools/"
+        , toText _gceIdentityPoolId
+        , "/events"
+        ]
+
+instance ToQuery GetCognitoEvents where
+    toQuery = const mempty
+
+instance ToHeaders GetCognitoEvents
+
+instance ToJSON GetCognitoEvents where
+    toJSON = const (toJSON Empty)
+
+instance AWSRequest GetCognitoEvents where
+    type Sv GetCognitoEvents = CognitoSync
+    type Rs GetCognitoEvents = GetCognitoEventsResponse
+
+    request  = get
+    response = jsonResponse
+
+instance FromJSON GetCognitoEventsResponse where
+    parseJSON = withObject "GetCognitoEventsResponse" $ \o -> GetCognitoEventsResponse
+        <$> o .:? "Events" .!= mempty
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
@@ -26,7 +26,7 @@
 -- access only to its own data. Thus, the credentials used to make this API call
 -- need to have access to the identity data.
 --
--- 'ListDatasets' can be called with temporary user credentials provided by
+-- ListDatasets can be called with temporary user credentials provided by
 -- Cognito Identity or with developer credentials. You should use the Cognito
 -- Identity credentials to make this API call.
 --
diff --git a/gen/Network/AWS/CognitoSync/ListIdentityPoolUsage.hs b/gen/Network/AWS/CognitoSync/ListIdentityPoolUsage.hs
--- a/gen/Network/AWS/CognitoSync/ListIdentityPoolUsage.hs
+++ b/gen/Network/AWS/CognitoSync/ListIdentityPoolUsage.hs
@@ -24,7 +24,7 @@
 
 -- | Gets a list of identity pools registered with Cognito.
 --
--- 'ListIdentityPoolUsage' can only be called with developer credentials. You
+-- ListIdentityPoolUsage can only be called with developer credentials. You
 -- cannot make this API call with the temporary user credentials provided by
 -- Cognito Identity.
 --
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
@@ -27,7 +27,7 @@
 -- only to its own data. Thus, the credentials used to make this API call need
 -- to have access to the identity data.
 --
--- 'ListRecords' can be called with temporary user credentials provided by
+-- ListRecords can be called with temporary user credentials provided by
 -- Cognito Identity or with developer credentials. You should use Cognito
 -- Identity credentials to make this API call.
 --
diff --git a/gen/Network/AWS/CognitoSync/SetCognitoEvents.hs b/gen/Network/AWS/CognitoSync/SetCognitoEvents.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/CognitoSync/SetCognitoEvents.hs
@@ -0,0 +1,111 @@
+{-# LANGUAGE DataKinds                   #-}
+{-# LANGUAGE DeriveGeneric               #-}
+{-# LANGUAGE FlexibleInstances           #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
+{-# LANGUAGE LambdaCase                  #-}
+{-# LANGUAGE NoImplicitPrelude           #-}
+{-# LANGUAGE OverloadedStrings           #-}
+{-# LANGUAGE RecordWildCards             #-}
+{-# LANGUAGE TypeFamilies                #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Module      : Network.AWS.CognitoSync.SetCognitoEvents
+-- 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.
+
+-- | Sets the AWS Lambda function for a given event type for an identity pool.
+-- This request only updates the key/value pair specified. Other key/values
+-- pairs are not updated. To remove a key value pair, pass a empty value for the
+-- particular key.
+--
+-- <http://docs.aws.amazon.com/cognitosync/latest/APIReference/API_SetCognitoEvents.html>
+module Network.AWS.CognitoSync.SetCognitoEvents
+    (
+    -- * Request
+      SetCognitoEvents
+    -- ** Request constructor
+    , setCognitoEvents
+    -- ** Request lenses
+    , sceEvents
+    , sceIdentityPoolId
+
+    -- * Response
+    , SetCognitoEventsResponse
+    -- ** Response constructor
+    , setCognitoEventsResponse
+    ) where
+
+import Network.AWS.Data (Object)
+import Network.AWS.Prelude
+import Network.AWS.Request.RestJSON
+import Network.AWS.CognitoSync.Types
+import qualified GHC.Exts
+
+data SetCognitoEvents = SetCognitoEvents
+    { _sceEvents         :: Map Text Text
+    , _sceIdentityPoolId :: Text
+    } deriving (Eq, Read, Show)
+
+-- | 'SetCognitoEvents' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'sceEvents' @::@ 'HashMap' 'Text' 'Text'
+--
+-- * 'sceIdentityPoolId' @::@ 'Text'
+--
+setCognitoEvents :: Text -- ^ 'sceIdentityPoolId'
+                 -> SetCognitoEvents
+setCognitoEvents p1 = SetCognitoEvents
+    { _sceIdentityPoolId = p1
+    , _sceEvents         = mempty
+    }
+
+-- | The events to configure
+sceEvents :: Lens' SetCognitoEvents (HashMap Text Text)
+sceEvents = lens _sceEvents (\s a -> s { _sceEvents = a }) . _Map
+
+-- | The Cognito Identity Pool to use when configuring Cognito Events
+sceIdentityPoolId :: Lens' SetCognitoEvents Text
+sceIdentityPoolId =
+    lens _sceIdentityPoolId (\s a -> s { _sceIdentityPoolId = a })
+
+data SetCognitoEventsResponse = SetCognitoEventsResponse
+    deriving (Eq, Ord, Read, Show, Generic)
+
+-- | 'SetCognitoEventsResponse' constructor.
+setCognitoEventsResponse :: SetCognitoEventsResponse
+setCognitoEventsResponse = SetCognitoEventsResponse
+
+instance ToPath SetCognitoEvents where
+    toPath SetCognitoEvents{..} = mconcat
+        [ "/identitypools/"
+        , toText _sceIdentityPoolId
+        , "/events"
+        ]
+
+instance ToQuery SetCognitoEvents where
+    toQuery = const mempty
+
+instance ToHeaders SetCognitoEvents
+
+instance ToJSON SetCognitoEvents where
+    toJSON SetCognitoEvents{..} = object
+        [ "Events" .= _sceEvents
+        ]
+
+instance AWSRequest SetCognitoEvents where
+    type Sv SetCognitoEvents = CognitoSync
+    type Rs SetCognitoEvents = SetCognitoEventsResponse
+
+    request  = post
+    response = nullResponse SetCognitoEventsResponse
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
@@ -540,7 +540,7 @@
 
 -- | The ARN of the role Amazon Cognito can assume in order to publish to the
 -- stream. This role must grant access to Amazon Cognito (cognito-sync) to
--- invoke 'PutRecord' on your Cognito stream.
+-- invoke PutRecord on your Cognito stream.
 csRoleArn :: Lens' CognitoStreams (Maybe Text)
 csRoleArn = lens _csRoleArn (\s a -> s { _csRoleArn = a })
 
@@ -549,11 +549,11 @@
 csStreamName :: Lens' CognitoStreams (Maybe Text)
 csStreamName = lens _csStreamName (\s a -> s { _csStreamName = a })
 
--- | Status of the Cognito streams. Valid values are: 'ENABLED' - Streaming of
+-- | Status of the Cognito streams. Valid values are: ENABLED - Streaming of
 -- updates to identity pool is enabled.
 --
--- 'DISABLED'Streaming of updates to identity pool is disabled. Bulk publish will
--- also fail if 'StreamingStatus' is 'DISABLED'.
+-- DISABLED - Streaming of updates to identity pool is disabled. Bulk publish
+-- will also fail if StreamingStatus is DISABLED.
 csStreamingStatus :: Lens' CognitoStreams (Maybe StreamingStatus)
 csStreamingStatus =
     lens _csStreamingStatus (\s a -> s { _csStreamingStatus = 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
@@ -24,7 +24,7 @@
 
 -- | Posts updates to records and adds and deletes records for a dataset and user.
 --
--- 'UpdateRecords' can only be called with temporary user credentials provided by
+-- UpdateRecords can only be called with temporary user credentials provided by
 -- Cognito Identity. You cannot make this API call with developer credentials.
 --
 -- <http://docs.aws.amazon.com/cognitosync/latest/APIReference/API_UpdateRecords.html>
@@ -100,8 +100,8 @@
     , _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 })
 
