diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`1.3.7`
+`1.4.0`
 
 
 ## Description
@@ -20,7 +20,7 @@
 parameters, and errors.
 
 Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-ds)
-and the [AWS API Reference](http://docs.aws.amazon.com/directoryservice/latest/devguide/welcome.html).
+and the [AWS API Reference](https://aws.amazon.com/documentation/).
 
 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.
diff --git a/amazonka-ds.cabal b/amazonka-ds.cabal
--- a/amazonka-ds.cabal
+++ b/amazonka-ds.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-ds
-version:               1.3.7
+version:               1.4.0
 synopsis:              Amazon Directory Service SDK.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
@@ -7,7 +7,7 @@
 license-file:          LICENSE
 author:                Brendan Hay
 maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
-copyright:             Copyright (c) 2013-2015 Brendan Hay
+copyright:             Copyright (c) 2013-2016 Brendan Hay
 category:              Network, AWS, Cloud, Distributed Computing
 build-type:            Simple
 cabal-version:         >= 1.10
@@ -30,7 +30,7 @@
     such as <http://hackage.haskell.org/package/lens lens> or
     <http://hackage.haskell.org/package/lens-family-core lens-family-core>.
     .
-    See "Network.AWS.DirectoryService" and the <http://docs.aws.amazon.com/directoryservice/latest/devguide/welcome.html AWS API Reference>
+    See "Network.AWS.DirectoryService" or <https://aws.amazon.com/documentation/ the AWS Documentation>
     to get started.
 
 source-repository head
@@ -55,7 +55,9 @@
         , Network.AWS.DirectoryService.DeleteDirectory
         , Network.AWS.DirectoryService.DeleteSnapshot
         , Network.AWS.DirectoryService.DeleteTrust
+        , Network.AWS.DirectoryService.DeregisterEventTopic
         , Network.AWS.DirectoryService.DescribeDirectories
+        , Network.AWS.DirectoryService.DescribeEventTopics
         , Network.AWS.DirectoryService.DescribeSnapshots
         , Network.AWS.DirectoryService.DescribeTrusts
         , Network.AWS.DirectoryService.DisableRadius
@@ -64,6 +66,7 @@
         , Network.AWS.DirectoryService.EnableSSO
         , Network.AWS.DirectoryService.GetDirectoryLimits
         , Network.AWS.DirectoryService.GetSnapshotLimits
+        , Network.AWS.DirectoryService.RegisterEventTopic
         , Network.AWS.DirectoryService.RestoreFromSnapshot
         , Network.AWS.DirectoryService.Types
         , Network.AWS.DirectoryService.UpdateRadius
@@ -75,7 +78,7 @@
         , Network.AWS.DirectoryService.Types.Sum
 
     build-depends:
-          amazonka-core == 1.3.7.*
+          amazonka-core == 1.4.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-ds-test
@@ -95,9 +98,9 @@
         , Test.AWS.DirectoryService.Internal
 
     build-depends:
-          amazonka-core == 1.3.7.*
-        , amazonka-test == 1.3.7.*
-        , amazonka-ds == 1.3.7.*
+          amazonka-core == 1.4.0.*
+        , amazonka-test == 1.4.0.*
+        , amazonka-ds == 1.4.0.*
         , base
         , bytestring
         , tasty
diff --git a/fixture/DeregisterEventTopic.yaml b/fixture/DeregisterEventTopic.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeregisterEventTopic.yaml
diff --git a/fixture/DeregisterEventTopicResponse.proto b/fixture/DeregisterEventTopicResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeregisterEventTopicResponse.proto
diff --git a/fixture/DescribeEventTopics.yaml b/fixture/DescribeEventTopics.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeEventTopics.yaml
diff --git a/fixture/DescribeEventTopicsResponse.proto b/fixture/DescribeEventTopicsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeEventTopicsResponse.proto
diff --git a/fixture/RegisterEventTopic.yaml b/fixture/RegisterEventTopic.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/RegisterEventTopic.yaml
diff --git a/fixture/RegisterEventTopicResponse.proto b/fixture/RegisterEventTopicResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/RegisterEventTopicResponse.proto
diff --git a/gen/Network/AWS/DirectoryService.hs b/gen/Network/AWS/DirectoryService.hs
--- a/gen/Network/AWS/DirectoryService.hs
+++ b/gen/Network/AWS/DirectoryService.hs
@@ -5,7 +5,7 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -16,8 +16,6 @@
 -- This is the /AWS Directory Service API Reference/. This guide provides
 -- detailed information about AWS Directory Service operations, data types,
 -- parameters, and errors.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/welcome.html AWS API Reference>
 module Network.AWS.DirectoryService
     (
     -- * Service Configuration
@@ -71,6 +69,9 @@
     -- ** GetSnapshotLimits
     , module Network.AWS.DirectoryService.GetSnapshotLimits
 
+    -- ** RegisterEventTopic
+    , module Network.AWS.DirectoryService.RegisterEventTopic
+
     -- ** ConnectDirectory
     , module Network.AWS.DirectoryService.ConnectDirectory
 
@@ -89,9 +90,15 @@
     -- ** CreateMicrosoftAD
     , module Network.AWS.DirectoryService.CreateMicrosoftAD
 
+    -- ** DeregisterEventTopic
+    , module Network.AWS.DirectoryService.DeregisterEventTopic
+
     -- ** CreateDirectory
     , module Network.AWS.DirectoryService.CreateDirectory
 
+    -- ** DescribeEventTopics
+    , module Network.AWS.DirectoryService.DescribeEventTopics
+
     -- ** EnableSSO
     , module Network.AWS.DirectoryService.EnableSSO
 
@@ -157,6 +164,9 @@
     -- ** SnapshotType
     , SnapshotType (..)
 
+    -- ** TopicStatus
+    , TopicStatus (..)
+
     -- ** TrustDirection
     , TrustDirection (..)
 
@@ -246,6 +256,15 @@
     , dvsdSecurityGroupId
     , dvsdAvailabilityZones
 
+    -- ** EventTopic
+    , EventTopic
+    , eventTopic
+    , etStatus
+    , etDirectoryId
+    , etTopicName
+    , etTopicARN
+    , etCreatedDateTime
+
     -- ** RadiusSettings
     , RadiusSettings
     , radiusSettings
@@ -299,7 +318,9 @@
 import           Network.AWS.DirectoryService.DeleteDirectory
 import           Network.AWS.DirectoryService.DeleteSnapshot
 import           Network.AWS.DirectoryService.DeleteTrust
+import           Network.AWS.DirectoryService.DeregisterEventTopic
 import           Network.AWS.DirectoryService.DescribeDirectories
+import           Network.AWS.DirectoryService.DescribeEventTopics
 import           Network.AWS.DirectoryService.DescribeSnapshots
 import           Network.AWS.DirectoryService.DescribeTrusts
 import           Network.AWS.DirectoryService.DisableRadius
@@ -308,6 +329,7 @@
 import           Network.AWS.DirectoryService.EnableSSO
 import           Network.AWS.DirectoryService.GetDirectoryLimits
 import           Network.AWS.DirectoryService.GetSnapshotLimits
+import           Network.AWS.DirectoryService.RegisterEventTopic
 import           Network.AWS.DirectoryService.RestoreFromSnapshot
 import           Network.AWS.DirectoryService.Types
 import           Network.AWS.DirectoryService.UpdateRadius
diff --git a/gen/Network/AWS/DirectoryService/ConnectDirectory.hs b/gen/Network/AWS/DirectoryService/ConnectDirectory.hs
--- a/gen/Network/AWS/DirectoryService/ConnectDirectory.hs
+++ b/gen/Network/AWS/DirectoryService/ConnectDirectory.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.ConnectDirectory
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Creates an AD Connector to connect to an on-premises directory.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_ConnectDirectory.html AWS API Reference> for ConnectDirectory.
 module Network.AWS.DirectoryService.ConnectDirectory
     (
     -- * Creating a Request
@@ -49,7 +47,7 @@
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | Contains the inputs for the ConnectDirectory operation.
+-- | Contains the inputs for the < ConnectDirectory> operation.
 --
 -- /See:/ 'connectDirectory' smart constructor.
 data ConnectDirectory = ConnectDirectory'
@@ -113,8 +111,8 @@
 cdSize :: Lens' ConnectDirectory DirectorySize
 cdSize = lens _cdSize (\ s a -> s{_cdSize = a});
 
--- | A DirectoryConnectSettings object that contains additional information
--- for the operation.
+-- | A < DirectoryConnectSettings> object that contains additional
+-- information for the operation.
 cdConnectSettings :: Lens' ConnectDirectory DirectoryConnectSettings
 cdConnectSettings = lens _cdConnectSettings (\ s a -> s{_cdConnectSettings = a});
 
@@ -127,6 +125,8 @@
                  ConnectDirectoryResponse' <$>
                    (x .?> "DirectoryId") <*> (pure (fromEnum s)))
 
+instance Hashable ConnectDirectory
+
 instance ToHeaders ConnectDirectory where
         toHeaders
           = const
@@ -154,7 +154,7 @@
 instance ToQuery ConnectDirectory where
         toQuery = const mempty
 
--- | Contains the results of the ConnectDirectory operation.
+-- | Contains the results of the < ConnectDirectory> operation.
 --
 -- /See:/ 'connectDirectoryResponse' smart constructor.
 data ConnectDirectoryResponse = ConnectDirectoryResponse'
diff --git a/gen/Network/AWS/DirectoryService/CreateAlias.hs b/gen/Network/AWS/DirectoryService/CreateAlias.hs
--- a/gen/Network/AWS/DirectoryService/CreateAlias.hs
+++ b/gen/Network/AWS/DirectoryService/CreateAlias.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.CreateAlias
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -24,8 +24,6 @@
 --
 -- After an alias has been created, it cannot be deleted or reused, so this
 -- operation should only be used when absolutely necessary.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_CreateAlias.html AWS API Reference> for CreateAlias.
 module Network.AWS.DirectoryService.CreateAlias
     (
     -- * Creating a Request
@@ -51,7 +49,7 @@
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | Contains the inputs for the CreateAlias operation.
+-- | Contains the inputs for the < CreateAlias> operation.
 --
 -- /See:/ 'createAlias' smart constructor.
 data CreateAlias = CreateAlias'
@@ -98,6 +96,8 @@
                    (x .?> "DirectoryId") <*> (x .?> "Alias") <*>
                      (pure (fromEnum s)))
 
+instance Hashable CreateAlias
+
 instance ToHeaders CreateAlias where
         toHeaders
           = const
@@ -121,7 +121,7 @@
 instance ToQuery CreateAlias where
         toQuery = const mempty
 
--- | Contains the results of the CreateAlias operation.
+-- | Contains the results of the < CreateAlias> operation.
 --
 -- /See:/ 'createAliasResponse' smart constructor.
 data CreateAliasResponse = CreateAliasResponse'
diff --git a/gen/Network/AWS/DirectoryService/CreateComputer.hs b/gen/Network/AWS/DirectoryService/CreateComputer.hs
--- a/gen/Network/AWS/DirectoryService/CreateComputer.hs
+++ b/gen/Network/AWS/DirectoryService/CreateComputer.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.CreateComputer
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -20,8 +20,6 @@
 --
 -- Creates a computer account in the specified directory, and joins the
 -- computer to the directory.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_CreateComputer.html AWS API Reference> for CreateComputer.
 module Network.AWS.DirectoryService.CreateComputer
     (
     -- * Creating a Request
@@ -49,7 +47,7 @@
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | Contains the inputs for the CreateComputer operation.
+-- | Contains the inputs for the < CreateComputer> operation.
 --
 -- /See:/ 'createComputer' smart constructor.
 data CreateComputer = CreateComputer'
@@ -87,8 +85,8 @@
     , _ccPassword = _Sensitive # pPassword_
     }
 
--- | An array of Attribute objects that contain any LDAP attributes to apply
--- to the computer account.
+-- | An array of < Attribute> objects that contain any LDAP attributes to
+-- apply to the computer account.
 ccComputerAttributes :: Lens' CreateComputer [Attribute]
 ccComputerAttributes = lens _ccComputerAttributes (\ s a -> s{_ccComputerAttributes = a}) . _Default . _Coerce;
 
@@ -119,6 +117,8 @@
                  CreateComputerResponse' <$>
                    (x .?> "Computer") <*> (pure (fromEnum s)))
 
+instance Hashable CreateComputer
+
 instance ToHeaders CreateComputer where
         toHeaders
           = const
@@ -146,7 +146,7 @@
 instance ToQuery CreateComputer where
         toQuery = const mempty
 
--- | Contains the results for the CreateComputer operation.
+-- | Contains the results for the < CreateComputer> operation.
 --
 -- /See:/ 'createComputerResponse' smart constructor.
 data CreateComputerResponse = CreateComputerResponse'
@@ -170,7 +170,7 @@
     , _ccrsResponseStatus = pResponseStatus_
     }
 
--- | A Computer object that represents the computer account.
+-- | A < Computer> object that represents the computer account.
 ccrsComputer :: Lens' CreateComputerResponse (Maybe Computer)
 ccrsComputer = lens _ccrsComputer (\ s a -> s{_ccrsComputer = a});
 
diff --git a/gen/Network/AWS/DirectoryService/CreateDirectory.hs b/gen/Network/AWS/DirectoryService/CreateDirectory.hs
--- a/gen/Network/AWS/DirectoryService/CreateDirectory.hs
+++ b/gen/Network/AWS/DirectoryService/CreateDirectory.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.CreateDirectory
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Creates a Simple AD directory.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_CreateDirectory.html AWS API Reference> for CreateDirectory.
 module Network.AWS.DirectoryService.CreateDirectory
     (
     -- * Creating a Request
@@ -49,7 +47,7 @@
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | Contains the inputs for the CreateDirectory operation.
+-- | Contains the inputs for the < CreateDirectory> operation.
 --
 -- /See:/ 'createDirectory' smart constructor.
 data CreateDirectory = CreateDirectory'
@@ -95,8 +93,8 @@
 cShortName :: Lens' CreateDirectory (Maybe Text)
 cShortName = lens _cShortName (\ s a -> s{_cShortName = a});
 
--- | A DirectoryVpcSettings object that contains additional information for
--- the operation.
+-- | A < DirectoryVpcSettings> object that contains additional information
+-- for the operation.
 cVPCSettings :: Lens' CreateDirectory (Maybe DirectoryVPCSettings)
 cVPCSettings = lens _cVPCSettings (\ s a -> s{_cVPCSettings = a});
 
@@ -127,6 +125,8 @@
                  CreateDirectoryResponse' <$>
                    (x .?> "DirectoryId") <*> (pure (fromEnum s)))
 
+instance Hashable CreateDirectory
+
 instance ToHeaders CreateDirectory where
         toHeaders
           = const
@@ -154,7 +154,7 @@
 instance ToQuery CreateDirectory where
         toQuery = const mempty
 
--- | Contains the results of the CreateDirectory operation.
+-- | Contains the results of the < CreateDirectory> operation.
 --
 -- /See:/ 'createDirectoryResponse' smart constructor.
 data CreateDirectoryResponse = CreateDirectoryResponse'
diff --git a/gen/Network/AWS/DirectoryService/CreateMicrosoftAD.hs b/gen/Network/AWS/DirectoryService/CreateMicrosoftAD.hs
--- a/gen/Network/AWS/DirectoryService/CreateMicrosoftAD.hs
+++ b/gen/Network/AWS/DirectoryService/CreateMicrosoftAD.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.CreateMicrosoftAD
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Creates a Microsoft AD in the AWS cloud.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_CreateMicrosoftAD.html AWS API Reference> for CreateMicrosoftAD.
 module Network.AWS.DirectoryService.CreateMicrosoftAD
     (
     -- * Creating a Request
@@ -120,6 +118,8 @@
               (\ s h x ->
                  CreateMicrosoftADResponse' <$>
                    (x .?> "DirectoryId") <*> (pure (fromEnum s)))
+
+instance Hashable CreateMicrosoftAD
 
 instance ToHeaders CreateMicrosoftAD where
         toHeaders
diff --git a/gen/Network/AWS/DirectoryService/CreateSnapshot.hs b/gen/Network/AWS/DirectoryService/CreateSnapshot.hs
--- a/gen/Network/AWS/DirectoryService/CreateSnapshot.hs
+++ b/gen/Network/AWS/DirectoryService/CreateSnapshot.hs
@@ -12,17 +12,16 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.CreateSnapshot
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Creates a snapshot of a Simple AD directory.
+-- Creates a snapshot of a Simple AD or Microsoft AD directory in the AWS
+-- cloud.
 --
 -- You cannot take snapshots of AD Connector directories.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_CreateSnapshot.html AWS API Reference> for CreateSnapshot.
 module Network.AWS.DirectoryService.CreateSnapshot
     (
     -- * Creating a Request
@@ -47,7 +46,7 @@
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | Contains the inputs for the CreateSnapshot operation.
+-- | Contains the inputs for the < CreateSnapshot> operation.
 --
 -- /See:/ 'createSnapshot' smart constructor.
 data CreateSnapshot = CreateSnapshot'
@@ -75,7 +74,7 @@
 csName :: Lens' CreateSnapshot (Maybe Text)
 csName = lens _csName (\ s a -> s{_csName = a});
 
--- | The identifier of the directory to take a snapshot of.
+-- | The identifier of the directory of which to take a snapshot.
 csDirectoryId :: Lens' CreateSnapshot Text
 csDirectoryId = lens _csDirectoryId (\ s a -> s{_csDirectoryId = a});
 
@@ -88,6 +87,8 @@
                  CreateSnapshotResponse' <$>
                    (x .?> "SnapshotId") <*> (pure (fromEnum s)))
 
+instance Hashable CreateSnapshot
+
 instance ToHeaders CreateSnapshot where
         toHeaders
           = const
@@ -111,7 +112,7 @@
 instance ToQuery CreateSnapshot where
         toQuery = const mempty
 
--- | Contains the results of the CreateSnapshot operation.
+-- | Contains the results of the < CreateSnapshot> operation.
 --
 -- /See:/ 'createSnapshotResponse' smart constructor.
 data CreateSnapshotResponse = CreateSnapshotResponse'
diff --git a/gen/Network/AWS/DirectoryService/CreateTrust.hs b/gen/Network/AWS/DirectoryService/CreateTrust.hs
--- a/gen/Network/AWS/DirectoryService/CreateTrust.hs
+++ b/gen/Network/AWS/DirectoryService/CreateTrust.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.CreateTrust
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -28,8 +28,6 @@
 -- This action initiates the creation of the AWS side of a trust
 -- relationship between a Microsoft AD in the AWS cloud and an external
 -- domain.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_CreateTrust.html AWS API Reference> for CreateTrust.
 module Network.AWS.DirectoryService.CreateTrust
     (
     -- * Creating a Request
@@ -136,6 +134,8 @@
               (\ s h x ->
                  CreateTrustResponse' <$>
                    (x .?> "TrustId") <*> (pure (fromEnum s)))
+
+instance Hashable CreateTrust
 
 instance ToHeaders CreateTrust where
         toHeaders
diff --git a/gen/Network/AWS/DirectoryService/DeleteDirectory.hs b/gen/Network/AWS/DirectoryService/DeleteDirectory.hs
--- a/gen/Network/AWS/DirectoryService/DeleteDirectory.hs
+++ b/gen/Network/AWS/DirectoryService/DeleteDirectory.hs
@@ -12,22 +12,20 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.DeleteDirectory
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Deletes an AWS Directory Service directory.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_DeleteDirectory.html AWS API Reference> for DeleteDirectory.
 module Network.AWS.DirectoryService.DeleteDirectory
     (
     -- * Creating a Request
       deleteDirectory
     , DeleteDirectory
     -- * Request Lenses
-    , dDirectoryId
+    , delDirectoryId
 
     -- * Destructuring the Response
     , deleteDirectoryResponse
@@ -44,29 +42,29 @@
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | Contains the inputs for the DeleteDirectory operation.
+-- | Contains the inputs for the < DeleteDirectory> operation.
 --
 -- /See:/ 'deleteDirectory' smart constructor.
 newtype DeleteDirectory = DeleteDirectory'
-    { _dDirectoryId :: Text
+    { _delDirectoryId :: Text
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'DeleteDirectory' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'dDirectoryId'
+-- * 'delDirectoryId'
 deleteDirectory
-    :: Text -- ^ 'dDirectoryId'
+    :: Text -- ^ 'delDirectoryId'
     -> DeleteDirectory
 deleteDirectory pDirectoryId_ =
     DeleteDirectory'
-    { _dDirectoryId = pDirectoryId_
+    { _delDirectoryId = pDirectoryId_
     }
 
 -- | The identifier of the directory to delete.
-dDirectoryId :: Lens' DeleteDirectory Text
-dDirectoryId = lens _dDirectoryId (\ s a -> s{_dDirectoryId = a});
+delDirectoryId :: Lens' DeleteDirectory Text
+delDirectoryId = lens _delDirectoryId (\ s a -> s{_delDirectoryId = a});
 
 instance AWSRequest DeleteDirectory where
         type Rs DeleteDirectory = DeleteDirectoryResponse
@@ -77,6 +75,8 @@
                  DeleteDirectoryResponse' <$>
                    (x .?> "DirectoryId") <*> (pure (fromEnum s)))
 
+instance Hashable DeleteDirectory
+
 instance ToHeaders DeleteDirectory where
         toHeaders
           = const
@@ -90,7 +90,7 @@
 instance ToJSON DeleteDirectory where
         toJSON DeleteDirectory'{..}
           = object
-              (catMaybes [Just ("DirectoryId" .= _dDirectoryId)])
+              (catMaybes [Just ("DirectoryId" .= _delDirectoryId)])
 
 instance ToPath DeleteDirectory where
         toPath = const "/"
@@ -98,7 +98,7 @@
 instance ToQuery DeleteDirectory where
         toQuery = const mempty
 
--- | Contains the results of the DeleteDirectory operation.
+-- | Contains the results of the < DeleteDirectory> operation.
 --
 -- /See:/ 'deleteDirectoryResponse' smart constructor.
 data DeleteDirectoryResponse = DeleteDirectoryResponse'
diff --git a/gen/Network/AWS/DirectoryService/DeleteSnapshot.hs b/gen/Network/AWS/DirectoryService/DeleteSnapshot.hs
--- a/gen/Network/AWS/DirectoryService/DeleteSnapshot.hs
+++ b/gen/Network/AWS/DirectoryService/DeleteSnapshot.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.DeleteSnapshot
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Deletes a directory snapshot.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_DeleteSnapshot.html AWS API Reference> for DeleteSnapshot.
 module Network.AWS.DirectoryService.DeleteSnapshot
     (
     -- * Creating a Request
@@ -44,7 +42,7 @@
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | Contains the inputs for the DeleteSnapshot operation.
+-- | Contains the inputs for the < DeleteSnapshot> operation.
 --
 -- /See:/ 'deleteSnapshot' smart constructor.
 newtype DeleteSnapshot = DeleteSnapshot'
@@ -77,6 +75,8 @@
                  DeleteSnapshotResponse' <$>
                    (x .?> "SnapshotId") <*> (pure (fromEnum s)))
 
+instance Hashable DeleteSnapshot
+
 instance ToHeaders DeleteSnapshot where
         toHeaders
           = const
@@ -98,7 +98,7 @@
 instance ToQuery DeleteSnapshot where
         toQuery = const mempty
 
--- | Contains the results of the DeleteSnapshot operation.
+-- | Contains the results of the < DeleteSnapshot> operation.
 --
 -- /See:/ 'deleteSnapshotResponse' smart constructor.
 data DeleteSnapshotResponse = DeleteSnapshotResponse'
diff --git a/gen/Network/AWS/DirectoryService/DeleteTrust.hs b/gen/Network/AWS/DirectoryService/DeleteTrust.hs
--- a/gen/Network/AWS/DirectoryService/DeleteTrust.hs
+++ b/gen/Network/AWS/DirectoryService/DeleteTrust.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.DeleteTrust
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -20,8 +20,6 @@
 --
 -- Deletes an existing trust relationship between your Microsoft AD in the
 -- AWS cloud and an external domain.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_DeleteTrust.html AWS API Reference> for DeleteTrust.
 module Network.AWS.DirectoryService.DeleteTrust
     (
     -- * Creating a Request
@@ -78,6 +76,8 @@
               (\ s h x ->
                  DeleteTrustResponse' <$>
                    (x .?> "TrustId") <*> (pure (fromEnum s)))
+
+instance Hashable DeleteTrust
 
 instance ToHeaders DeleteTrust where
         toHeaders
diff --git a/gen/Network/AWS/DirectoryService/DeregisterEventTopic.hs b/gen/Network/AWS/DirectoryService/DeregisterEventTopic.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/DirectoryService/DeregisterEventTopic.hs
@@ -0,0 +1,137 @@
+{-# 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.DirectoryService.DeregisterEventTopic
+-- Copyright   : (c) 2013-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Removes the specified directory as a publisher to the specified SNS
+-- topic.
+module Network.AWS.DirectoryService.DeregisterEventTopic
+    (
+    -- * Creating a Request
+      deregisterEventTopic
+    , DeregisterEventTopic
+    -- * Request Lenses
+    , detDirectoryId
+    , detTopicName
+
+    -- * Destructuring the Response
+    , deregisterEventTopicResponse
+    , DeregisterEventTopicResponse
+    -- * Response Lenses
+    , derrsResponseStatus
+    ) where
+
+import           Network.AWS.DirectoryService.Types
+import           Network.AWS.DirectoryService.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | Removes the specified directory as a publisher to the specified SNS
+-- topic.
+--
+-- /See:/ 'deregisterEventTopic' smart constructor.
+data DeregisterEventTopic = DeregisterEventTopic'
+    { _detDirectoryId :: !Text
+    , _detTopicName   :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeregisterEventTopic' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'detDirectoryId'
+--
+-- * 'detTopicName'
+deregisterEventTopic
+    :: Text -- ^ 'detDirectoryId'
+    -> Text -- ^ 'detTopicName'
+    -> DeregisterEventTopic
+deregisterEventTopic pDirectoryId_ pTopicName_ =
+    DeregisterEventTopic'
+    { _detDirectoryId = pDirectoryId_
+    , _detTopicName = pTopicName_
+    }
+
+-- | The Directory ID to remove as a publisher. This directory will no longer
+-- send messages to the specified SNS topic.
+detDirectoryId :: Lens' DeregisterEventTopic Text
+detDirectoryId = lens _detDirectoryId (\ s a -> s{_detDirectoryId = a});
+
+-- | The name of the SNS topic from which to remove the directory as a
+-- publisher.
+detTopicName :: Lens' DeregisterEventTopic Text
+detTopicName = lens _detTopicName (\ s a -> s{_detTopicName = a});
+
+instance AWSRequest DeregisterEventTopic where
+        type Rs DeregisterEventTopic =
+             DeregisterEventTopicResponse
+        request = postJSON directoryService
+        response
+          = receiveEmpty
+              (\ s h x ->
+                 DeregisterEventTopicResponse' <$>
+                   (pure (fromEnum s)))
+
+instance Hashable DeregisterEventTopic
+
+instance ToHeaders DeregisterEventTopic where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("DirectoryService_20150416.DeregisterEventTopic" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DeregisterEventTopic where
+        toJSON DeregisterEventTopic'{..}
+          = object
+              (catMaybes
+                 [Just ("DirectoryId" .= _detDirectoryId),
+                  Just ("TopicName" .= _detTopicName)])
+
+instance ToPath DeregisterEventTopic where
+        toPath = const "/"
+
+instance ToQuery DeregisterEventTopic where
+        toQuery = const mempty
+
+-- | /See:/ 'deregisterEventTopicResponse' smart constructor.
+newtype DeregisterEventTopicResponse = DeregisterEventTopicResponse'
+    { _derrsResponseStatus :: Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeregisterEventTopicResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'derrsResponseStatus'
+deregisterEventTopicResponse
+    :: Int -- ^ 'derrsResponseStatus'
+    -> DeregisterEventTopicResponse
+deregisterEventTopicResponse pResponseStatus_ =
+    DeregisterEventTopicResponse'
+    { _derrsResponseStatus = pResponseStatus_
+    }
+
+-- | The response status code.
+derrsResponseStatus :: Lens' DeregisterEventTopicResponse Int
+derrsResponseStatus = lens _derrsResponseStatus (\ s a -> s{_derrsResponseStatus = a});
diff --git a/gen/Network/AWS/DirectoryService/DescribeDirectories.hs b/gen/Network/AWS/DirectoryService/DescribeDirectories.hs
--- a/gen/Network/AWS/DirectoryService/DescribeDirectories.hs
+++ b/gen/Network/AWS/DirectoryService/DescribeDirectories.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.DescribeDirectories
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -27,13 +27,11 @@
 -- This operation supports pagination with the use of the /NextToken/
 -- request and response parameters. If more results are available, the
 -- /DescribeDirectoriesResult.NextToken/ member contains a token that you
--- pass in the next call to DescribeDirectories to retrieve the next set of
--- items.
+-- pass in the next call to < DescribeDirectories> to retrieve the next set
+-- of items.
 --
 -- You can also specify a maximum number of return results with the /Limit/
 -- parameter.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_DescribeDirectories.html AWS API Reference> for DescribeDirectories.
 module Network.AWS.DirectoryService.DescribeDirectories
     (
     -- * Creating a Request
@@ -60,7 +58,7 @@
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | Contains the inputs for the DescribeDirectories operation.
+-- | Contains the inputs for the < DescribeDirectories> operation.
 --
 -- /See:/ 'describeDirectories' smart constructor.
 data DescribeDirectories = DescribeDirectories'
@@ -88,7 +86,7 @@
     }
 
 -- | The /DescribeDirectoriesResult.NextToken/ value from a previous call to
--- DescribeDirectories. Pass null if this is the first call.
+-- < DescribeDirectories>. Pass null if this is the first call.
 ddNextToken :: Lens' DescribeDirectories (Maybe Text)
 ddNextToken = lens _ddNextToken (\ s a -> s{_ddNextToken = a});
 
@@ -118,6 +116,8 @@
                      (x .?> "NextToken")
                      <*> (pure (fromEnum s)))
 
+instance Hashable DescribeDirectories
+
 instance ToHeaders DescribeDirectories where
         toHeaders
           = const
@@ -142,7 +142,7 @@
 instance ToQuery DescribeDirectories where
         toQuery = const mempty
 
--- | Contains the results of the DescribeDirectories operation.
+-- | Contains the results of the < DescribeDirectories> operation.
 --
 -- /See:/ 'describeDirectoriesResponse' smart constructor.
 data DescribeDirectoriesResponse = DescribeDirectoriesResponse'
@@ -170,7 +170,7 @@
     , _ddrsResponseStatus = pResponseStatus_
     }
 
--- | The list of DirectoryDescription objects that were retrieved.
+-- | The list of < DirectoryDescription> objects that were retrieved.
 --
 -- It is possible that this list contains less than the number of items
 -- specified in the /Limit/ member of the request. This occurs if there are
@@ -180,7 +180,7 @@
 ddrsDirectoryDescriptions = lens _ddrsDirectoryDescriptions (\ s a -> s{_ddrsDirectoryDescriptions = a}) . _Default . _Coerce;
 
 -- | If not null, more results are available. Pass this value for the
--- /NextToken/ parameter in a subsequent call to DescribeDirectories to
+-- /NextToken/ parameter in a subsequent call to < DescribeDirectories> to
 -- retrieve the next set of items.
 ddrsNextToken :: Lens' DescribeDirectoriesResponse (Maybe Text)
 ddrsNextToken = lens _ddrsNextToken (\ s a -> s{_ddrsNextToken = a});
diff --git a/gen/Network/AWS/DirectoryService/DescribeEventTopics.hs b/gen/Network/AWS/DirectoryService/DescribeEventTopics.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/DirectoryService/DescribeEventTopics.hs
@@ -0,0 +1,149 @@
+{-# 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.DirectoryService.DescribeEventTopics
+-- Copyright   : (c) 2013-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Obtains information about which SNS topics receive status messages from
+-- the specified directory.
+--
+-- If no input parameters are provided, such as DirectoryId or TopicName,
+-- this request describes all of the associations in the account.
+module Network.AWS.DirectoryService.DescribeEventTopics
+    (
+    -- * Creating a Request
+      describeEventTopics
+    , DescribeEventTopics
+    -- * Request Lenses
+    , dDirectoryId
+    , dTopicNames
+
+    -- * Destructuring the Response
+    , describeEventTopicsResponse
+    , DescribeEventTopicsResponse
+    -- * Response Lenses
+    , detrsEventTopics
+    , detrsResponseStatus
+    ) where
+
+import           Network.AWS.DirectoryService.Types
+import           Network.AWS.DirectoryService.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'describeEventTopics' smart constructor.
+data DescribeEventTopics = DescribeEventTopics'
+    { _dDirectoryId :: !(Maybe Text)
+    , _dTopicNames  :: !(Maybe [Text])
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeEventTopics' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dDirectoryId'
+--
+-- * 'dTopicNames'
+describeEventTopics
+    :: DescribeEventTopics
+describeEventTopics =
+    DescribeEventTopics'
+    { _dDirectoryId = Nothing
+    , _dTopicNames = Nothing
+    }
+
+-- | The Directory ID for which to get the list of associated SNS topics. If
+-- this member is null, associations for all Directory IDs are returned.
+dDirectoryId :: Lens' DescribeEventTopics (Maybe Text)
+dDirectoryId = lens _dDirectoryId (\ s a -> s{_dDirectoryId = a});
+
+-- | A list of SNS topic names for which to obtain the information. If this
+-- member is null, all associations for the specified Directory ID are
+-- returned.
+--
+-- An empty list results in an 'InvalidParameterException' being thrown.
+dTopicNames :: Lens' DescribeEventTopics [Text]
+dTopicNames = lens _dTopicNames (\ s a -> s{_dTopicNames = a}) . _Default . _Coerce;
+
+instance AWSRequest DescribeEventTopics where
+        type Rs DescribeEventTopics =
+             DescribeEventTopicsResponse
+        request = postJSON directoryService
+        response
+          = receiveJSON
+              (\ s h x ->
+                 DescribeEventTopicsResponse' <$>
+                   (x .?> "EventTopics" .!@ mempty) <*>
+                     (pure (fromEnum s)))
+
+instance Hashable DescribeEventTopics
+
+instance ToHeaders DescribeEventTopics where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("DirectoryService_20150416.DescribeEventTopics" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DescribeEventTopics where
+        toJSON DescribeEventTopics'{..}
+          = object
+              (catMaybes
+                 [("DirectoryId" .=) <$> _dDirectoryId,
+                  ("TopicNames" .=) <$> _dTopicNames])
+
+instance ToPath DescribeEventTopics where
+        toPath = const "/"
+
+instance ToQuery DescribeEventTopics where
+        toQuery = const mempty
+
+-- | /See:/ 'describeEventTopicsResponse' smart constructor.
+data DescribeEventTopicsResponse = DescribeEventTopicsResponse'
+    { _detrsEventTopics    :: !(Maybe [EventTopic])
+    , _detrsResponseStatus :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeEventTopicsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'detrsEventTopics'
+--
+-- * 'detrsResponseStatus'
+describeEventTopicsResponse
+    :: Int -- ^ 'detrsResponseStatus'
+    -> DescribeEventTopicsResponse
+describeEventTopicsResponse pResponseStatus_ =
+    DescribeEventTopicsResponse'
+    { _detrsEventTopics = Nothing
+    , _detrsResponseStatus = pResponseStatus_
+    }
+
+-- | A list of SNS topic names that receive status messages from the
+-- specified Directory ID.
+detrsEventTopics :: Lens' DescribeEventTopicsResponse [EventTopic]
+detrsEventTopics = lens _detrsEventTopics (\ s a -> s{_detrsEventTopics = a}) . _Default . _Coerce;
+
+-- | The response status code.
+detrsResponseStatus :: Lens' DescribeEventTopicsResponse Int
+detrsResponseStatus = lens _detrsResponseStatus (\ s a -> s{_detrsResponseStatus = a});
diff --git a/gen/Network/AWS/DirectoryService/DescribeSnapshots.hs b/gen/Network/AWS/DirectoryService/DescribeSnapshots.hs
--- a/gen/Network/AWS/DirectoryService/DescribeSnapshots.hs
+++ b/gen/Network/AWS/DirectoryService/DescribeSnapshots.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.DescribeSnapshots
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -24,12 +24,10 @@
 -- This operation supports pagination with the use of the /NextToken/
 -- request and response parameters. If more results are available, the
 -- /DescribeSnapshots.NextToken/ member contains a token that you pass in
--- the next call to DescribeSnapshots to retrieve the next set of items.
+-- the next call to < DescribeSnapshots> to retrieve the next set of items.
 --
 -- You can also specify a maximum number of return results with the /Limit/
 -- parameter.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_DescribeSnapshots.html AWS API Reference> for DescribeSnapshots.
 module Network.AWS.DirectoryService.DescribeSnapshots
     (
     -- * Creating a Request
@@ -57,7 +55,7 @@
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | Contains the inputs for the DescribeSnapshots operation.
+-- | Contains the inputs for the < DescribeSnapshots> operation.
 --
 -- /See:/ 'describeSnapshots' smart constructor.
 data DescribeSnapshots = DescribeSnapshots'
@@ -94,7 +92,7 @@
 dsDirectoryId = lens _dsDirectoryId (\ s a -> s{_dsDirectoryId = a});
 
 -- | The /DescribeSnapshotsResult.NextToken/ value from a previous call to
--- DescribeSnapshots. Pass null if this is the first call.
+-- < DescribeSnapshots>. Pass null if this is the first call.
 dsNextToken :: Lens' DescribeSnapshots (Maybe Text)
 dsNextToken = lens _dsNextToken (\ s a -> s{_dsNextToken = a});
 
@@ -119,6 +117,8 @@
                      (x .?> "Snapshots" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
+instance Hashable DescribeSnapshots
+
 instance ToHeaders DescribeSnapshots where
         toHeaders
           = const
@@ -144,7 +144,7 @@
 instance ToQuery DescribeSnapshots where
         toQuery = const mempty
 
--- | Contains the results of the DescribeSnapshots operation.
+-- | Contains the results of the < DescribeSnapshots> operation.
 --
 -- /See:/ 'describeSnapshotsResponse' smart constructor.
 data DescribeSnapshotsResponse = DescribeSnapshotsResponse'
@@ -173,11 +173,11 @@
     }
 
 -- | If not null, more results are available. Pass this value in the
--- /NextToken/ member of a subsequent call to DescribeSnapshots.
+-- /NextToken/ member of a subsequent call to < DescribeSnapshots>.
 dssrsNextToken :: Lens' DescribeSnapshotsResponse (Maybe Text)
 dssrsNextToken = lens _dssrsNextToken (\ s a -> s{_dssrsNextToken = a});
 
--- | The list of Snapshot objects that were retrieved.
+-- | The list of < Snapshot> objects that were retrieved.
 --
 -- It is possible that this list contains less than the number of items
 -- specified in the /Limit/ member of the request. This occurs if there are
diff --git a/gen/Network/AWS/DirectoryService/DescribeTrusts.hs b/gen/Network/AWS/DirectoryService/DescribeTrusts.hs
--- a/gen/Network/AWS/DirectoryService/DescribeTrusts.hs
+++ b/gen/Network/AWS/DirectoryService/DescribeTrusts.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.DescribeTrusts
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -23,8 +23,6 @@
 -- If no input parameters are provided, such as DirectoryId or TrustIds,
 -- this request describes all the trust relationships belonging to the
 -- account.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_DescribeTrusts.html AWS API Reference> for DescribeTrusts.
 module Network.AWS.DirectoryService.DescribeTrusts
     (
     -- * Creating a Request
@@ -91,7 +89,7 @@
 dtDirectoryId = lens _dtDirectoryId (\ s a -> s{_dtDirectoryId = a});
 
 -- | The /DescribeTrustsResult.NextToken/ value from a previous call to
--- DescribeTrusts. Pass null if this is the first call.
+-- < DescribeTrusts>. Pass null if this is the first call.
 dtNextToken :: Lens' DescribeTrusts (Maybe Text)
 dtNextToken = lens _dtNextToken (\ s a -> s{_dtNextToken = a});
 
@@ -117,6 +115,8 @@
                    (x .?> "NextToken") <*> (x .?> "Trusts" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
+instance Hashable DescribeTrusts
+
 instance ToHeaders DescribeTrusts where
         toHeaders
           = const
@@ -169,8 +169,8 @@
     }
 
 -- | If not null, more results are available. Pass this value for the
--- /NextToken/ parameter in a subsequent call to DescribeTrusts to retrieve
--- the next set of items.
+-- /NextToken/ parameter in a subsequent call to < DescribeTrusts> to
+-- retrieve the next set of items.
 dtrsNextToken :: Lens' DescribeTrustsResponse (Maybe Text)
 dtrsNextToken = lens _dtrsNextToken (\ s a -> s{_dtrsNextToken = a});
 
diff --git a/gen/Network/AWS/DirectoryService/DisableRadius.hs b/gen/Network/AWS/DirectoryService/DisableRadius.hs
--- a/gen/Network/AWS/DirectoryService/DisableRadius.hs
+++ b/gen/Network/AWS/DirectoryService/DisableRadius.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.DisableRadius
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -21,8 +21,6 @@
 -- Disables multi-factor authentication (MFA) with the Remote
 -- Authentication Dial In User Service (RADIUS) server for an AD Connector
 -- directory.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_DisableRadius.html AWS API Reference> for DisableRadius.
 module Network.AWS.DirectoryService.DisableRadius
     (
     -- * Creating a Request
@@ -45,7 +43,7 @@
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | Contains the inputs for the DisableRadius operation.
+-- | Contains the inputs for the < DisableRadius> operation.
 --
 -- /See:/ 'disableRadius' smart constructor.
 newtype DisableRadius = DisableRadius'
@@ -77,6 +75,8 @@
               (\ s h x ->
                  DisableRadiusResponse' <$> (pure (fromEnum s)))
 
+instance Hashable DisableRadius
+
 instance ToHeaders DisableRadius where
         toHeaders
           = const
@@ -98,7 +98,7 @@
 instance ToQuery DisableRadius where
         toQuery = const mempty
 
--- | Contains the results of the DisableRadius operation.
+-- | Contains the results of the < DisableRadius> operation.
 --
 -- /See:/ 'disableRadiusResponse' smart constructor.
 newtype DisableRadiusResponse = DisableRadiusResponse'
diff --git a/gen/Network/AWS/DirectoryService/DisableSSO.hs b/gen/Network/AWS/DirectoryService/DisableSSO.hs
--- a/gen/Network/AWS/DirectoryService/DisableSSO.hs
+++ b/gen/Network/AWS/DirectoryService/DisableSSO.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.DisableSSO
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Disables single-sign on for a directory.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_DisableSSO.html AWS API Reference> for DisableSSO.
 module Network.AWS.DirectoryService.DisableSSO
     (
     -- * Creating a Request
@@ -45,7 +43,7 @@
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | Contains the inputs for the DisableSso operation.
+-- | Contains the inputs for the < DisableSso> operation.
 --
 -- /See:/ 'disableSSO' smart constructor.
 data DisableSSO = DisableSSO'
@@ -103,6 +101,8 @@
               (\ s h x ->
                  DisableSSOResponse' <$> (pure (fromEnum s)))
 
+instance Hashable DisableSSO
+
 instance ToHeaders DisableSSO where
         toHeaders
           = const
@@ -127,7 +127,7 @@
 instance ToQuery DisableSSO where
         toQuery = const mempty
 
--- | Contains the results of the DisableSso operation.
+-- | Contains the results of the < DisableSso> operation.
 --
 -- /See:/ 'disableSSOResponse' smart constructor.
 newtype DisableSSOResponse = DisableSSOResponse'
diff --git a/gen/Network/AWS/DirectoryService/EnableRadius.hs b/gen/Network/AWS/DirectoryService/EnableRadius.hs
--- a/gen/Network/AWS/DirectoryService/EnableRadius.hs
+++ b/gen/Network/AWS/DirectoryService/EnableRadius.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.EnableRadius
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -20,8 +20,6 @@
 --
 -- Enables multi-factor authentication (MFA) with the Remote Authentication
 -- Dial In User Service (RADIUS) server for an AD Connector directory.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_EnableRadius.html AWS API Reference> for EnableRadius.
 module Network.AWS.DirectoryService.EnableRadius
     (
     -- * Creating a Request
@@ -45,7 +43,7 @@
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | Contains the inputs for the EnableRadius operation.
+-- | Contains the inputs for the < EnableRadius> operation.
 --
 -- /See:/ 'enableRadius' smart constructor.
 data EnableRadius = EnableRadius'
@@ -74,7 +72,7 @@
 erDirectoryId :: Lens' EnableRadius Text
 erDirectoryId = lens _erDirectoryId (\ s a -> s{_erDirectoryId = a});
 
--- | A RadiusSettings object that contains information about the RADIUS
+-- | A < RadiusSettings> object that contains information about the RADIUS
 -- server.
 erRadiusSettings :: Lens' EnableRadius RadiusSettings
 erRadiusSettings = lens _erRadiusSettings (\ s a -> s{_erRadiusSettings = a});
@@ -87,6 +85,8 @@
               (\ s h x ->
                  EnableRadiusResponse' <$> (pure (fromEnum s)))
 
+instance Hashable EnableRadius
+
 instance ToHeaders EnableRadius where
         toHeaders
           = const
@@ -110,7 +110,7 @@
 instance ToQuery EnableRadius where
         toQuery = const mempty
 
--- | Contains the results of the EnableRadius operation.
+-- | Contains the results of the < EnableRadius> operation.
 --
 -- /See:/ 'enableRadiusResponse' smart constructor.
 newtype EnableRadiusResponse = EnableRadiusResponse'
diff --git a/gen/Network/AWS/DirectoryService/EnableSSO.hs b/gen/Network/AWS/DirectoryService/EnableSSO.hs
--- a/gen/Network/AWS/DirectoryService/EnableSSO.hs
+++ b/gen/Network/AWS/DirectoryService/EnableSSO.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.EnableSSO
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Enables single-sign on for a directory.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_EnableSSO.html AWS API Reference> for EnableSSO.
 module Network.AWS.DirectoryService.EnableSSO
     (
     -- * Creating a Request
@@ -45,7 +43,7 @@
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | Contains the inputs for the EnableSso operation.
+-- | Contains the inputs for the < EnableSso> operation.
 --
 -- /See:/ 'enableSSO' smart constructor.
 data EnableSSO = EnableSSO'
@@ -103,6 +101,8 @@
               (\ s h x ->
                  EnableSSOResponse' <$> (pure (fromEnum s)))
 
+instance Hashable EnableSSO
+
 instance ToHeaders EnableSSO where
         toHeaders
           = const
@@ -127,7 +127,7 @@
 instance ToQuery EnableSSO where
         toQuery = const mempty
 
--- | Contains the results of the EnableSso operation.
+-- | Contains the results of the < EnableSso> operation.
 --
 -- /See:/ 'enableSSOResponse' smart constructor.
 newtype EnableSSOResponse = EnableSSOResponse'
diff --git a/gen/Network/AWS/DirectoryService/GetDirectoryLimits.hs b/gen/Network/AWS/DirectoryService/GetDirectoryLimits.hs
--- a/gen/Network/AWS/DirectoryService/GetDirectoryLimits.hs
+++ b/gen/Network/AWS/DirectoryService/GetDirectoryLimits.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.GetDirectoryLimits
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Obtains directory limit information for the current region.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_GetDirectoryLimits.html AWS API Reference> for GetDirectoryLimits.
 module Network.AWS.DirectoryService.GetDirectoryLimits
     (
     -- * Creating a Request
@@ -42,7 +40,7 @@
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | Contains the inputs for the GetDirectoryLimits operation.
+-- | Contains the inputs for the < GetDirectoryLimits> operation.
 --
 -- /See:/ 'getDirectoryLimits' smart constructor.
 data GetDirectoryLimits =
@@ -65,6 +63,8 @@
                  GetDirectoryLimitsResponse' <$>
                    (x .?> "DirectoryLimits") <*> (pure (fromEnum s)))
 
+instance Hashable GetDirectoryLimits
+
 instance ToHeaders GetDirectoryLimits where
         toHeaders
           = const
@@ -84,7 +84,7 @@
 instance ToQuery GetDirectoryLimits where
         toQuery = const mempty
 
--- | Contains the results of the GetDirectoryLimits operation.
+-- | Contains the results of the < GetDirectoryLimits> operation.
 --
 -- /See:/ 'getDirectoryLimitsResponse' smart constructor.
 data GetDirectoryLimitsResponse = GetDirectoryLimitsResponse'
@@ -108,7 +108,7 @@
     , _gdlrsResponseStatus = pResponseStatus_
     }
 
--- | A DirectoryLimits object that contains the directory limits for the
+-- | A < DirectoryLimits> object that contains the directory limits for the
 -- current region.
 gdlrsDirectoryLimits :: Lens' GetDirectoryLimitsResponse (Maybe DirectoryLimits)
 gdlrsDirectoryLimits = lens _gdlrsDirectoryLimits (\ s a -> s{_gdlrsDirectoryLimits = a});
diff --git a/gen/Network/AWS/DirectoryService/GetSnapshotLimits.hs b/gen/Network/AWS/DirectoryService/GetSnapshotLimits.hs
--- a/gen/Network/AWS/DirectoryService/GetSnapshotLimits.hs
+++ b/gen/Network/AWS/DirectoryService/GetSnapshotLimits.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.GetSnapshotLimits
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Obtains the manual snapshot limits for a directory.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_GetSnapshotLimits.html AWS API Reference> for GetSnapshotLimits.
 module Network.AWS.DirectoryService.GetSnapshotLimits
     (
     -- * Creating a Request
@@ -44,7 +42,7 @@
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | Contains the inputs for the GetSnapshotLimits operation.
+-- | Contains the inputs for the < GetSnapshotLimits> operation.
 --
 -- /See:/ 'getSnapshotLimits' smart constructor.
 newtype GetSnapshotLimits = GetSnapshotLimits'
@@ -77,6 +75,8 @@
                  GetSnapshotLimitsResponse' <$>
                    (x .?> "SnapshotLimits") <*> (pure (fromEnum s)))
 
+instance Hashable GetSnapshotLimits
+
 instance ToHeaders GetSnapshotLimits where
         toHeaders
           = const
@@ -98,7 +98,7 @@
 instance ToQuery GetSnapshotLimits where
         toQuery = const mempty
 
--- | Contains the results of the GetSnapshotLimits operation.
+-- | Contains the results of the < GetSnapshotLimits> operation.
 --
 -- /See:/ 'getSnapshotLimitsResponse' smart constructor.
 data GetSnapshotLimitsResponse = GetSnapshotLimitsResponse'
@@ -122,8 +122,8 @@
     , _gslrsResponseStatus = pResponseStatus_
     }
 
--- | A SnapshotLimits object that contains the manual snapshot limits for the
--- specified directory.
+-- | A < SnapshotLimits> object that contains the manual snapshot limits for
+-- the specified directory.
 gslrsSnapshotLimits :: Lens' GetSnapshotLimitsResponse (Maybe SnapshotLimits)
 gslrsSnapshotLimits = lens _gslrsSnapshotLimits (\ s a -> s{_gslrsSnapshotLimits = a});
 
diff --git a/gen/Network/AWS/DirectoryService/RegisterEventTopic.hs b/gen/Network/AWS/DirectoryService/RegisterEventTopic.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/DirectoryService/RegisterEventTopic.hs
@@ -0,0 +1,136 @@
+{-# 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.DirectoryService.RegisterEventTopic
+-- Copyright   : (c) 2013-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Associates a directory with an SNS topic. This establishes the directory
+-- as a publisher to the specified SNS topic. You can then receive email or
+-- text (SMS) messages when the status of your directory changes. You get
+-- notified if your directory goes from an Active status to an Impaired or
+-- Inoperable status. You also receive a notification when the directory
+-- returns to an Active status.
+module Network.AWS.DirectoryService.RegisterEventTopic
+    (
+    -- * Creating a Request
+      registerEventTopic
+    , RegisterEventTopic
+    -- * Request Lenses
+    , retDirectoryId
+    , retTopicName
+
+    -- * Destructuring the Response
+    , registerEventTopicResponse
+    , RegisterEventTopicResponse
+    -- * Response Lenses
+    , retrsResponseStatus
+    ) where
+
+import           Network.AWS.DirectoryService.Types
+import           Network.AWS.DirectoryService.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'registerEventTopic' smart constructor.
+data RegisterEventTopic = RegisterEventTopic'
+    { _retDirectoryId :: !Text
+    , _retTopicName   :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RegisterEventTopic' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'retDirectoryId'
+--
+-- * 'retTopicName'
+registerEventTopic
+    :: Text -- ^ 'retDirectoryId'
+    -> Text -- ^ 'retTopicName'
+    -> RegisterEventTopic
+registerEventTopic pDirectoryId_ pTopicName_ =
+    RegisterEventTopic'
+    { _retDirectoryId = pDirectoryId_
+    , _retTopicName = pTopicName_
+    }
+
+-- | The Directory ID that will publish status messages to the SNS topic.
+retDirectoryId :: Lens' RegisterEventTopic Text
+retDirectoryId = lens _retDirectoryId (\ s a -> s{_retDirectoryId = a});
+
+-- | The SNS topic name to which the directory will publish status messages.
+-- This SNS topic must be in the same region as the specified Directory ID.
+retTopicName :: Lens' RegisterEventTopic Text
+retTopicName = lens _retTopicName (\ s a -> s{_retTopicName = a});
+
+instance AWSRequest RegisterEventTopic where
+        type Rs RegisterEventTopic =
+             RegisterEventTopicResponse
+        request = postJSON directoryService
+        response
+          = receiveEmpty
+              (\ s h x ->
+                 RegisterEventTopicResponse' <$> (pure (fromEnum s)))
+
+instance Hashable RegisterEventTopic
+
+instance ToHeaders RegisterEventTopic where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("DirectoryService_20150416.RegisterEventTopic" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON RegisterEventTopic where
+        toJSON RegisterEventTopic'{..}
+          = object
+              (catMaybes
+                 [Just ("DirectoryId" .= _retDirectoryId),
+                  Just ("TopicName" .= _retTopicName)])
+
+instance ToPath RegisterEventTopic where
+        toPath = const "/"
+
+instance ToQuery RegisterEventTopic where
+        toQuery = const mempty
+
+-- | /See:/ 'registerEventTopicResponse' smart constructor.
+newtype RegisterEventTopicResponse = RegisterEventTopicResponse'
+    { _retrsResponseStatus :: Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RegisterEventTopicResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'retrsResponseStatus'
+registerEventTopicResponse
+    :: Int -- ^ 'retrsResponseStatus'
+    -> RegisterEventTopicResponse
+registerEventTopicResponse pResponseStatus_ =
+    RegisterEventTopicResponse'
+    { _retrsResponseStatus = pResponseStatus_
+    }
+
+-- | The response status code.
+retrsResponseStatus :: Lens' RegisterEventTopicResponse Int
+retrsResponseStatus = lens _retrsResponseStatus (\ s a -> s{_retrsResponseStatus = a});
diff --git a/gen/Network/AWS/DirectoryService/RestoreFromSnapshot.hs b/gen/Network/AWS/DirectoryService/RestoreFromSnapshot.hs
--- a/gen/Network/AWS/DirectoryService/RestoreFromSnapshot.hs
+++ b/gen/Network/AWS/DirectoryService/RestoreFromSnapshot.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.RestoreFromSnapshot
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -25,11 +25,9 @@
 --
 -- This action returns as soon as the restore operation is initiated. You
 -- can monitor the progress of the restore operation by calling the
--- DescribeDirectories operation with the directory identifier. When the
+-- < DescribeDirectories> operation with the directory identifier. When the
 -- __DirectoryDescription.Stage__ value changes to 'Active', the restore
 -- operation is complete.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_RestoreFromSnapshot.html AWS API Reference> for RestoreFromSnapshot.
 module Network.AWS.DirectoryService.RestoreFromSnapshot
     (
     -- * Creating a Request
@@ -52,7 +50,8 @@
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | An object representing the inputs for the RestoreFromSnapshot operation.
+-- | An object representing the inputs for the < RestoreFromSnapshot>
+-- operation.
 --
 -- /See:/ 'restoreFromSnapshot' smart constructor.
 newtype RestoreFromSnapshot = RestoreFromSnapshot'
@@ -85,6 +84,8 @@
               (\ s h x ->
                  RestoreFromSnapshotResponse' <$> (pure (fromEnum s)))
 
+instance Hashable RestoreFromSnapshot
+
 instance ToHeaders RestoreFromSnapshot where
         toHeaders
           = const
@@ -106,7 +107,7 @@
 instance ToQuery RestoreFromSnapshot where
         toQuery = const mempty
 
--- | Contains the results of the RestoreFromSnapshot operation.
+-- | Contains the results of the < RestoreFromSnapshot> operation.
 --
 -- /See:/ 'restoreFromSnapshotResponse' smart constructor.
 newtype RestoreFromSnapshotResponse = RestoreFromSnapshotResponse'
diff --git a/gen/Network/AWS/DirectoryService/Types.hs b/gen/Network/AWS/DirectoryService/Types.hs
--- a/gen/Network/AWS/DirectoryService/Types.hs
+++ b/gen/Network/AWS/DirectoryService/Types.hs
@@ -4,7 +4,7 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.Types
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -50,6 +50,9 @@
     -- * SnapshotType
     , SnapshotType (..)
 
+    -- * TopicStatus
+    , TopicStatus (..)
+
     -- * TrustDirection
     , TrustDirection (..)
 
@@ -139,6 +142,15 @@
     , dvsdSecurityGroupId
     , dvsdAvailabilityZones
 
+    -- * EventTopic
+    , EventTopic
+    , eventTopic
+    , etStatus
+    , etDirectoryId
+    , etTopicName
+    , etTopicARN
+    , etCreatedDateTime
+
     -- * RadiusSettings
     , RadiusSettings
     , radiusSettings
@@ -211,6 +223,7 @@
         , _retryCheck = check
         }
     check e
+      | has (hasStatus 429) e = Just "too_many_requests"
       | has (hasCode "ThrottlingException" . hasStatus 400) e =
           Just "throttling_exception"
       | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
@@ -245,7 +258,7 @@
     _ServiceError . hasCode "EntityAlreadyExistsException"
 
 -- | The maximum number of directories in the region has been reached. You
--- can use the GetDirectoryLimits operation to determine your directory
+-- can use the < GetDirectoryLimits> operation to determine your directory
 -- limits in the region.
 _DirectoryLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
 _DirectoryLimitExceededException =
@@ -272,7 +285,7 @@
 _ServiceException = _ServiceError . hasCode "ServiceException"
 
 -- | The maximum number of manual snapshots for the directory has been
--- reached. You can use the GetSnapshotLimits operation to determine the
+-- reached. You can use the < GetSnapshotLimits> operation to determine the
 -- snapshot limits for a directory.
 _SnapshotLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
 _SnapshotLimitExceededException =
diff --git a/gen/Network/AWS/DirectoryService/Types/Product.hs b/gen/Network/AWS/DirectoryService/Types/Product.hs
--- a/gen/Network/AWS/DirectoryService/Types/Product.hs
+++ b/gen/Network/AWS/DirectoryService/Types/Product.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.Types.Product
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -58,6 +58,8 @@
               (\ x ->
                  Attribute' <$> (x .:? "Value") <*> (x .:? "Name"))
 
+instance Hashable Attribute
+
 instance ToJSON Attribute where
         toJSON Attribute'{..}
           = object
@@ -95,8 +97,8 @@
 cComputerId :: Lens' Computer (Maybe Text)
 cComputerId = lens _cComputerId (\ s a -> s{_cComputerId = a});
 
--- | An array of Attribute objects containing the LDAP attributes that belong
--- to the computer account.
+-- | An array of < Attribute> objects containing the LDAP attributes that
+-- belong to the computer account.
 cComputerAttributes :: Lens' Computer [Attribute]
 cComputerAttributes = lens _cComputerAttributes (\ s a -> s{_cComputerAttributes = a}) . _Default . _Coerce;
 
@@ -113,7 +115,9 @@
                      (x .:? "ComputerAttributes" .!= mempty)
                      <*> (x .:? "ComputerName"))
 
--- | Contains information for the ConnectDirectory operation when an AD
+instance Hashable Computer
+
+-- | Contains information for the < ConnectDirectory> operation when an AD
 -- Connector directory is being created.
 --
 -- /See:/ 'directoryConnectSettings' smart constructor.
@@ -171,6 +175,8 @@
 dcsCustomerUserName :: Lens' DirectoryConnectSettings Text
 dcsCustomerUserName = lens _dcsCustomerUserName (\ s a -> s{_dcsCustomerUserName = a});
 
+instance Hashable DirectoryConnectSettings
+
 instance ToJSON DirectoryConnectSettings where
         toJSON DirectoryConnectSettings'{..}
           = object
@@ -256,6 +262,8 @@
                      <*> (x .:? "ConnectIps" .!= mempty)
                      <*> (x .:? "AvailabilityZones" .!= mempty))
 
+instance Hashable DirectoryConnectSettingsDescription
+
 -- | Contains information about an AWS Directory Service directory.
 --
 -- /See:/ 'directoryDescription' smart constructor.
@@ -370,7 +378,7 @@
 ddSize :: Lens' DirectoryDescription (Maybe DirectorySize)
 ddSize = lens _ddSize (\ s a -> s{_ddSize = a});
 
--- | A RadiusSettings object that contains information about the RADIUS
+-- | A < RadiusSettings> object that contains information about the RADIUS
 -- server configured for this directory.
 ddRadiusSettings :: Lens' DirectoryDescription (Maybe RadiusSettings)
 ddRadiusSettings = lens _ddRadiusSettings (\ s a -> s{_ddRadiusSettings = a});
@@ -394,7 +402,7 @@
 ddStageLastUpdatedDateTime = lens _ddStageLastUpdatedDateTime (\ s a -> s{_ddStageLastUpdatedDateTime = a}) . mapping _Time;
 
 -- | Indicates if single-sign on is enabled for the directory. For more
--- information, see EnableSso and DisableSso.
+-- information, see < EnableSso> and < DisableSso>.
 ddSSOEnabled :: Lens' DirectoryDescription (Maybe Bool)
 ddSSOEnabled = lens _ddSSOEnabled (\ s a -> s{_ddSSOEnabled = a});
 
@@ -406,7 +414,7 @@
 ddDNSIPAddrs :: Lens' DirectoryDescription [Text]
 ddDNSIPAddrs = lens _ddDNSIPAddrs (\ s a -> s{_ddDNSIPAddrs = a}) . _Default . _Coerce;
 
--- | A DirectoryVpcSettingsDescription object that contains additional
+-- | A < DirectoryVpcSettingsDescription> object that contains additional
 -- information about a directory. This member is only present if the
 -- directory is a Simple AD or Managed AD directory.
 ddVPCSettings :: Lens' DirectoryDescription (Maybe DirectoryVPCSettingsDescription)
@@ -420,7 +428,7 @@
 ddStageReason :: Lens' DirectoryDescription (Maybe Text)
 ddStageReason = lens _ddStageReason (\ s a -> s{_ddStageReason = a});
 
--- | A DirectoryConnectSettingsDescription object that contains additional
+-- | A < DirectoryConnectSettingsDescription> object that contains additional
 -- information about an AD Connector directory. This member is only present
 -- if the directory is an AD Connector directory.
 ddConnectSettings :: Lens' DirectoryDescription (Maybe DirectoryConnectSettingsDescription)
@@ -453,6 +461,8 @@
                      <*> (x .:? "ConnectSettings")
                      <*> (x .:? "Description"))
 
+instance Hashable DirectoryDescription
+
 -- | Contains directory limit information for a region.
 --
 -- /See:/ 'directoryLimits' smart constructor.
@@ -555,8 +565,10 @@
                      <*> (x .:? "CloudOnlyDirectoriesLimitReached")
                      <*> (x .:? "CloudOnlyMicrosoftADCurrentCount"))
 
--- | Contains VPC information for the CreateDirectory or CreateMicrosoftAD
--- operation.
+instance Hashable DirectoryLimits
+
+-- | Contains VPC information for the < CreateDirectory> or
+-- < CreateMicrosoftAD> operation.
 --
 -- /See:/ 'directoryVPCSettings' smart constructor.
 data DirectoryVPCSettings = DirectoryVPCSettings'
@@ -590,6 +602,8 @@
 dvsSubnetIds :: Lens' DirectoryVPCSettings [Text]
 dvsSubnetIds = lens _dvsSubnetIds (\ s a -> s{_dvsSubnetIds = a}) . _Coerce;
 
+instance Hashable DirectoryVPCSettings
+
 instance ToJSON DirectoryVPCSettings where
         toJSON DirectoryVPCSettings'{..}
           = object
@@ -657,6 +671,79 @@
                      <*> (x .:? "SecurityGroupId")
                      <*> (x .:? "AvailabilityZones" .!= mempty))
 
+instance Hashable DirectoryVPCSettingsDescription
+
+-- | Information about SNS topic and AWS Directory Service directory
+-- associations.
+--
+-- /See:/ 'eventTopic' smart constructor.
+data EventTopic = EventTopic'
+    { _etStatus          :: !(Maybe TopicStatus)
+    , _etDirectoryId     :: !(Maybe Text)
+    , _etTopicName       :: !(Maybe Text)
+    , _etTopicARN        :: !(Maybe Text)
+    , _etCreatedDateTime :: !(Maybe POSIX)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EventTopic' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'etStatus'
+--
+-- * 'etDirectoryId'
+--
+-- * 'etTopicName'
+--
+-- * 'etTopicARN'
+--
+-- * 'etCreatedDateTime'
+eventTopic
+    :: EventTopic
+eventTopic =
+    EventTopic'
+    { _etStatus = Nothing
+    , _etDirectoryId = Nothing
+    , _etTopicName = Nothing
+    , _etTopicARN = Nothing
+    , _etCreatedDateTime = Nothing
+    }
+
+-- | The topic registration status.
+etStatus :: Lens' EventTopic (Maybe TopicStatus)
+etStatus = lens _etStatus (\ s a -> s{_etStatus = a});
+
+-- | The Directory ID of an AWS Directory Service directory that will publish
+-- status messages to an SNS topic.
+etDirectoryId :: Lens' EventTopic (Maybe Text)
+etDirectoryId = lens _etDirectoryId (\ s a -> s{_etDirectoryId = a});
+
+-- | The name of an AWS SNS topic the receives status messages from the
+-- directory.
+etTopicName :: Lens' EventTopic (Maybe Text)
+etTopicName = lens _etTopicName (\ s a -> s{_etTopicName = a});
+
+-- | The SNS topic ARN (Amazon Resource Name).
+etTopicARN :: Lens' EventTopic (Maybe Text)
+etTopicARN = lens _etTopicARN (\ s a -> s{_etTopicARN = a});
+
+-- | The date and time of when you associated your directory with the SNS
+-- topic.
+etCreatedDateTime :: Lens' EventTopic (Maybe UTCTime)
+etCreatedDateTime = lens _etCreatedDateTime (\ s a -> s{_etCreatedDateTime = a}) . mapping _Time;
+
+instance FromJSON EventTopic where
+        parseJSON
+          = withObject "EventTopic"
+              (\ x ->
+                 EventTopic' <$>
+                   (x .:? "Status") <*> (x .:? "DirectoryId") <*>
+                     (x .:? "TopicName")
+                     <*> (x .:? "TopicArn")
+                     <*> (x .:? "CreatedDateTime"))
+
+instance Hashable EventTopic
+
 -- | Contains information about a Remote Authentication Dial In User Service
 -- (RADIUS) server.
 --
@@ -756,6 +843,8 @@
                      <*> (x .:? "RadiusTimeout")
                      <*> (x .:? "RadiusPort"))
 
+instance Hashable RadiusSettings
+
 instance ToJSON RadiusSettings where
         toJSON RadiusSettings'{..}
           = object
@@ -844,6 +933,8 @@
                      <*> (x .:? "Type")
                      <*> (x .:? "SnapshotId"))
 
+instance Hashable Snapshot
+
 -- | Contains manual snapshot limit information for a directory.
 --
 -- /See:/ 'snapshotLimits' smart constructor.
@@ -892,6 +983,8 @@
                      (x .:? "ManualSnapshotsCurrentCount")
                      <*> (x .:? "ManualSnapshotsLimit"))
 
+instance Hashable SnapshotLimits
+
 -- | Describes a trust relationship between an Microsoft AD in the AWS cloud
 -- and an external domain.
 --
@@ -995,3 +1088,5 @@
                      <*> (x .:? "RemoteDomainName")
                      <*> (x .:? "TrustId")
                      <*> (x .:? "CreatedDateTime"))
+
+instance Hashable Trust
diff --git a/gen/Network/AWS/DirectoryService/Types/Sum.hs b/gen/Network/AWS/DirectoryService/Types/Sum.hs
--- a/gen/Network/AWS/DirectoryService/Types/Sum.hs
+++ b/gen/Network/AWS/DirectoryService/Types/Sum.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.Types.Sum
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -241,6 +241,37 @@
 
 instance FromJSON SnapshotType where
     parseJSON = parseJSONText "SnapshotType"
+
+data TopicStatus
+    = TDeleted
+    | TFailed
+    | TRegistered
+    | TTopicNotFound
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+
+instance FromText TopicStatus where
+    parser = takeLowerText >>= \case
+        "deleted" -> pure TDeleted
+        "failed" -> pure TFailed
+        "registered" -> pure TRegistered
+        "topic not found" -> pure TTopicNotFound
+        e -> fromTextError $ "Failure parsing TopicStatus from value: '" <> e
+           <> "'. Accepted values: Deleted, Failed, Registered, Topic not found"
+
+instance ToText TopicStatus where
+    toText = \case
+        TDeleted -> "Deleted"
+        TFailed -> "Failed"
+        TRegistered -> "Registered"
+        TTopicNotFound -> "Topic not found"
+
+instance Hashable     TopicStatus
+instance ToByteString TopicStatus
+instance ToQuery      TopicStatus
+instance ToHeader     TopicStatus
+
+instance FromJSON TopicStatus where
+    parseJSON = parseJSONText "TopicStatus"
 
 data TrustDirection
     = OneWayIncoming
diff --git a/gen/Network/AWS/DirectoryService/UpdateRadius.hs b/gen/Network/AWS/DirectoryService/UpdateRadius.hs
--- a/gen/Network/AWS/DirectoryService/UpdateRadius.hs
+++ b/gen/Network/AWS/DirectoryService/UpdateRadius.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.UpdateRadius
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -20,8 +20,6 @@
 --
 -- Updates the Remote Authentication Dial In User Service (RADIUS) server
 -- information for an AD Connector directory.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_UpdateRadius.html AWS API Reference> for UpdateRadius.
 module Network.AWS.DirectoryService.UpdateRadius
     (
     -- * Creating a Request
@@ -45,7 +43,7 @@
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | Contains the inputs for the UpdateRadius operation.
+-- | Contains the inputs for the < UpdateRadius> operation.
 --
 -- /See:/ 'updateRadius' smart constructor.
 data UpdateRadius = UpdateRadius'
@@ -75,7 +73,7 @@
 urDirectoryId :: Lens' UpdateRadius Text
 urDirectoryId = lens _urDirectoryId (\ s a -> s{_urDirectoryId = a});
 
--- | A RadiusSettings object that contains information about the RADIUS
+-- | A < RadiusSettings> object that contains information about the RADIUS
 -- server.
 urRadiusSettings :: Lens' UpdateRadius RadiusSettings
 urRadiusSettings = lens _urRadiusSettings (\ s a -> s{_urRadiusSettings = a});
@@ -88,6 +86,8 @@
               (\ s h x ->
                  UpdateRadiusResponse' <$> (pure (fromEnum s)))
 
+instance Hashable UpdateRadius
+
 instance ToHeaders UpdateRadius where
         toHeaders
           = const
@@ -111,7 +111,7 @@
 instance ToQuery UpdateRadius where
         toQuery = const mempty
 
--- | Contains the results of the UpdateRadius operation.
+-- | Contains the results of the < UpdateRadius> operation.
 --
 -- /See:/ 'updateRadiusResponse' smart constructor.
 newtype UpdateRadiusResponse = UpdateRadiusResponse'
diff --git a/gen/Network/AWS/DirectoryService/VerifyTrust.hs b/gen/Network/AWS/DirectoryService/VerifyTrust.hs
--- a/gen/Network/AWS/DirectoryService/VerifyTrust.hs
+++ b/gen/Network/AWS/DirectoryService/VerifyTrust.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.VerifyTrust
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -23,8 +23,6 @@
 --
 -- This action verifies a trust relationship between your Microsoft AD in
 -- the AWS cloud and an external domain.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_VerifyTrust.html AWS API Reference> for VerifyTrust.
 module Network.AWS.DirectoryService.VerifyTrust
     (
     -- * Creating a Request
@@ -81,6 +79,8 @@
               (\ s h x ->
                  VerifyTrustResponse' <$>
                    (x .?> "TrustId") <*> (pure (fromEnum s)))
+
+instance Hashable VerifyTrust
 
 instance ToHeaders VerifyTrust where
         toHeaders
diff --git a/gen/Network/AWS/DirectoryService/Waiters.hs b/gen/Network/AWS/DirectoryService/Waiters.hs
--- a/gen/Network/AWS/DirectoryService/Waiters.hs
+++ b/gen/Network/AWS/DirectoryService/Waiters.hs
@@ -7,7 +7,7 @@
 
 -- |
 -- Module      : Network.AWS.DirectoryService.Waiters
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -2,7 +2,7 @@
 
 -- |
 -- Module      : Main
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
diff --git a/test/Test/AWS/DirectoryService.hs b/test/Test/AWS/DirectoryService.hs
--- a/test/Test/AWS/DirectoryService.hs
+++ b/test/Test/AWS/DirectoryService.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE OverloadedStrings #-}
 
 -- Module      : Test.AWS.DirectoryService
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 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
diff --git a/test/Test/AWS/DirectoryService/Internal.hs b/test/Test/AWS/DirectoryService/Internal.hs
--- a/test/Test/AWS/DirectoryService/Internal.hs
+++ b/test/Test/AWS/DirectoryService/Internal.hs
@@ -2,7 +2,7 @@
 {-# OPTIONS_GHC -fno-warn-unused-imports #-}
 
 -- Module      : Test.AWS.DirectoryService.Internal
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 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
diff --git a/test/Test/AWS/Gen/DirectoryService.hs b/test/Test/AWS/Gen/DirectoryService.hs
--- a/test/Test/AWS/Gen/DirectoryService.hs
+++ b/test/Test/AWS/Gen/DirectoryService.hs
@@ -5,7 +5,7 @@
 
 -- |
 -- Module      : Test.AWS.Gen.DirectoryService
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -31,6 +31,9 @@
 --         [ testGetSnapshotLimits $
 --             getSnapshotLimits
 --
+--         , testRegisterEventTopic $
+--             registerEventTopic
+--
 --         , testConnectDirectory $
 --             connectDirectory
 --
@@ -49,9 +52,15 @@
 --         , testCreateMicrosoftAD $
 --             createMicrosoftAD
 --
+--         , testDeregisterEventTopic $
+--             deregisterEventTopic
+--
 --         , testCreateDirectory $
 --             createDirectory
 --
+--         , testDescribeEventTopics $
+--             describeEventTopics
+--
 --         , testEnableSSO $
 --             enableSSO
 --
@@ -100,6 +109,9 @@
 --         [ testGetSnapshotLimitsResponse $
 --             getSnapshotLimitsResponse
 --
+--         , testRegisterEventTopicResponse $
+--             registerEventTopicResponse
+--
 --         , testConnectDirectoryResponse $
 --             connectDirectoryResponse
 --
@@ -118,9 +130,15 @@
 --         , testCreateMicrosoftADResponse $
 --             createMicrosoftADResponse
 --
+--         , testDeregisterEventTopicResponse $
+--             deregisterEventTopicResponse
+--
 --         , testCreateDirectoryResponse $
 --             createDirectoryResponse
 --
+--         , testDescribeEventTopicsResponse $
+--             describeEventTopicsResponse
+--
 --         , testEnableSSOResponse $
 --             enableSSOResponse
 --
@@ -173,6 +191,11 @@
     "GetSnapshotLimits"
     "fixture/GetSnapshotLimits.yaml"
 
+testRegisterEventTopic :: RegisterEventTopic -> TestTree
+testRegisterEventTopic = req
+    "RegisterEventTopic"
+    "fixture/RegisterEventTopic.yaml"
+
 testConnectDirectory :: ConnectDirectory -> TestTree
 testConnectDirectory = req
     "ConnectDirectory"
@@ -203,11 +226,21 @@
     "CreateMicrosoftAD"
     "fixture/CreateMicrosoftAD.yaml"
 
+testDeregisterEventTopic :: DeregisterEventTopic -> TestTree
+testDeregisterEventTopic = req
+    "DeregisterEventTopic"
+    "fixture/DeregisterEventTopic.yaml"
+
 testCreateDirectory :: CreateDirectory -> TestTree
 testCreateDirectory = req
     "CreateDirectory"
     "fixture/CreateDirectory.yaml"
 
+testDescribeEventTopics :: DescribeEventTopics -> TestTree
+testDescribeEventTopics = req
+    "DescribeEventTopics"
+    "fixture/DescribeEventTopics.yaml"
+
 testEnableSSO :: EnableSSO -> TestTree
 testEnableSSO = req
     "EnableSSO"
@@ -287,6 +320,13 @@
     directoryService
     (Proxy :: Proxy GetSnapshotLimits)
 
+testRegisterEventTopicResponse :: RegisterEventTopicResponse -> TestTree
+testRegisterEventTopicResponse = res
+    "RegisterEventTopicResponse"
+    "fixture/RegisterEventTopicResponse.proto"
+    directoryService
+    (Proxy :: Proxy RegisterEventTopic)
+
 testConnectDirectoryResponse :: ConnectDirectoryResponse -> TestTree
 testConnectDirectoryResponse = res
     "ConnectDirectoryResponse"
@@ -329,12 +369,26 @@
     directoryService
     (Proxy :: Proxy CreateMicrosoftAD)
 
+testDeregisterEventTopicResponse :: DeregisterEventTopicResponse -> TestTree
+testDeregisterEventTopicResponse = res
+    "DeregisterEventTopicResponse"
+    "fixture/DeregisterEventTopicResponse.proto"
+    directoryService
+    (Proxy :: Proxy DeregisterEventTopic)
+
 testCreateDirectoryResponse :: CreateDirectoryResponse -> TestTree
 testCreateDirectoryResponse = res
     "CreateDirectoryResponse"
     "fixture/CreateDirectoryResponse.proto"
     directoryService
     (Proxy :: Proxy CreateDirectory)
+
+testDescribeEventTopicsResponse :: DescribeEventTopicsResponse -> TestTree
+testDescribeEventTopicsResponse = res
+    "DescribeEventTopicsResponse"
+    "fixture/DescribeEventTopicsResponse.proto"
+    directoryService
+    (Proxy :: Proxy DescribeEventTopics)
 
 testEnableSSOResponse :: EnableSSOResponse -> TestTree
 testEnableSSOResponse = res
