diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`1.3.6`
+`1.3.7`
 
 
 ## Description
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.6
+version:               1.3.7
 synopsis:              Amazon Directory Service SDK.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
@@ -49,11 +49,15 @@
         , Network.AWS.DirectoryService.CreateAlias
         , Network.AWS.DirectoryService.CreateComputer
         , Network.AWS.DirectoryService.CreateDirectory
+        , Network.AWS.DirectoryService.CreateMicrosoftAD
         , Network.AWS.DirectoryService.CreateSnapshot
+        , Network.AWS.DirectoryService.CreateTrust
         , Network.AWS.DirectoryService.DeleteDirectory
         , Network.AWS.DirectoryService.DeleteSnapshot
+        , Network.AWS.DirectoryService.DeleteTrust
         , Network.AWS.DirectoryService.DescribeDirectories
         , Network.AWS.DirectoryService.DescribeSnapshots
+        , Network.AWS.DirectoryService.DescribeTrusts
         , Network.AWS.DirectoryService.DisableRadius
         , Network.AWS.DirectoryService.DisableSSO
         , Network.AWS.DirectoryService.EnableRadius
@@ -63,6 +67,7 @@
         , Network.AWS.DirectoryService.RestoreFromSnapshot
         , Network.AWS.DirectoryService.Types
         , Network.AWS.DirectoryService.UpdateRadius
+        , Network.AWS.DirectoryService.VerifyTrust
         , Network.AWS.DirectoryService.Waiters
 
     other-modules:
@@ -70,7 +75,7 @@
         , Network.AWS.DirectoryService.Types.Sum
 
     build-depends:
-          amazonka-core == 1.3.6.*
+          amazonka-core == 1.3.7.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-ds-test
@@ -90,12 +95,11 @@
         , Test.AWS.DirectoryService.Internal
 
     build-depends:
-          amazonka-core == 1.3.6.*
-        , amazonka-test == 1.3.6.*
-        , amazonka-ds == 1.3.6.*
+          amazonka-core == 1.3.7.*
+        , amazonka-test == 1.3.7.*
+        , amazonka-ds == 1.3.7.*
         , base
         , bytestring
-        , lens
         , tasty
         , tasty-hunit
         , text
diff --git a/fixture/CreateMicrosoftAD.yaml b/fixture/CreateMicrosoftAD.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateMicrosoftAD.yaml
diff --git a/fixture/CreateMicrosoftADResponse.proto b/fixture/CreateMicrosoftADResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateMicrosoftADResponse.proto
diff --git a/fixture/CreateTrust.yaml b/fixture/CreateTrust.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateTrust.yaml
diff --git a/fixture/CreateTrustResponse.proto b/fixture/CreateTrustResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateTrustResponse.proto
diff --git a/fixture/DeleteTrust.yaml b/fixture/DeleteTrust.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteTrust.yaml
diff --git a/fixture/DeleteTrustResponse.proto b/fixture/DeleteTrustResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteTrustResponse.proto
diff --git a/fixture/DescribeTrusts.yaml b/fixture/DescribeTrusts.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeTrusts.yaml
diff --git a/fixture/DescribeTrustsResponse.proto b/fixture/DescribeTrustsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeTrustsResponse.proto
diff --git a/fixture/VerifyTrust.yaml b/fixture/VerifyTrust.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/VerifyTrust.yaml
diff --git a/fixture/VerifyTrustResponse.proto b/fixture/VerifyTrustResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/VerifyTrustResponse.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
@@ -80,6 +80,15 @@
     -- ** DescribeDirectories
     , module Network.AWS.DirectoryService.DescribeDirectories
 
+    -- ** DescribeTrusts
+    , module Network.AWS.DirectoryService.DescribeTrusts
+
+    -- ** DeleteTrust
+    , module Network.AWS.DirectoryService.DeleteTrust
+
+    -- ** CreateMicrosoftAD
+    , module Network.AWS.DirectoryService.CreateMicrosoftAD
+
     -- ** CreateDirectory
     , module Network.AWS.DirectoryService.CreateDirectory
 
@@ -101,6 +110,9 @@
     -- ** DeleteSnapshot
     , module Network.AWS.DirectoryService.DeleteSnapshot
 
+    -- ** CreateTrust
+    , module Network.AWS.DirectoryService.CreateTrust
+
     -- ** DeleteDirectory
     , module Network.AWS.DirectoryService.DeleteDirectory
 
@@ -113,6 +125,9 @@
     -- ** DisableSSO
     , module Network.AWS.DirectoryService.DisableSSO
 
+    -- ** VerifyTrust
+    , module Network.AWS.DirectoryService.VerifyTrust
+
     -- ** GetDirectoryLimits
     , module Network.AWS.DirectoryService.GetDirectoryLimits
 
@@ -142,6 +157,15 @@
     -- ** SnapshotType
     , SnapshotType (..)
 
+    -- ** TrustDirection
+    , TrustDirection (..)
+
+    -- ** TrustState
+    , TrustState (..)
+
+    -- ** TrustType
+    , TrustType (..)
+
     -- ** Attribute
     , Attribute
     , attribute
@@ -199,11 +223,14 @@
     , DirectoryLimits
     , directoryLimits
     , dlConnectedDirectoriesCurrentCount
+    , dlCloudOnlyMicrosoftADLimitReached
     , dlConnectedDirectoriesLimit
     , dlConnectedDirectoriesLimitReached
+    , dlCloudOnlyMicrosoftADLimit
     , dlCloudOnlyDirectoriesLimit
     , dlCloudOnlyDirectoriesCurrentCount
     , dlCloudOnlyDirectoriesLimitReached
+    , dlCloudOnlyMicrosoftADCurrentCount
 
     -- ** DirectoryVPCSettings
     , DirectoryVPCSettings
@@ -247,17 +274,34 @@
     , slManualSnapshotsLimitReached
     , slManualSnapshotsCurrentCount
     , slManualSnapshotsLimit
+
+    -- ** Trust
+    , Trust
+    , trust
+    , tDirectoryId
+    , tTrustState
+    , tLastUpdatedDateTime
+    , tTrustDirection
+    , tStateLastUpdatedDateTime
+    , tTrustType
+    , tRemoteDomainName
+    , tTrustId
+    , tCreatedDateTime
     ) where
 
 import           Network.AWS.DirectoryService.ConnectDirectory
 import           Network.AWS.DirectoryService.CreateAlias
 import           Network.AWS.DirectoryService.CreateComputer
 import           Network.AWS.DirectoryService.CreateDirectory
+import           Network.AWS.DirectoryService.CreateMicrosoftAD
 import           Network.AWS.DirectoryService.CreateSnapshot
+import           Network.AWS.DirectoryService.CreateTrust
 import           Network.AWS.DirectoryService.DeleteDirectory
 import           Network.AWS.DirectoryService.DeleteSnapshot
+import           Network.AWS.DirectoryService.DeleteTrust
 import           Network.AWS.DirectoryService.DescribeDirectories
 import           Network.AWS.DirectoryService.DescribeSnapshots
+import           Network.AWS.DirectoryService.DescribeTrusts
 import           Network.AWS.DirectoryService.DisableRadius
 import           Network.AWS.DirectoryService.DisableSSO
 import           Network.AWS.DirectoryService.EnableRadius
@@ -267,6 +311,7 @@
 import           Network.AWS.DirectoryService.RestoreFromSnapshot
 import           Network.AWS.DirectoryService.Types
 import           Network.AWS.DirectoryService.UpdateRadius
+import           Network.AWS.DirectoryService.VerifyTrust
 import           Network.AWS.DirectoryService.Waiters
 
 {- $errors
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
@@ -18,7 +18,7 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Creates an AD Connector to connect an on-premises directory.
+-- 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
@@ -44,6 +44,7 @@
 
 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
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
@@ -20,7 +20,7 @@
 --
 -- Creates an alias for a directory and assigns the alias to the directory.
 -- The alias is used to construct the access URL for the directory, such as
--- 'http:\/\/\<alias>.awsapps.com'.
+-- 'http:\/\/&#x3C;alias&#x3E;.awsapps.com'.
 --
 -- After an alias has been created, it cannot be deleted or reused, so this
 -- operation should only be used when absolutely necessary.
@@ -46,6 +46,7 @@
 
 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
@@ -75,14 +76,15 @@
     , _caAlias = pAlias_
     }
 
--- | The identifier of the directory to create the alias for.
+-- | The identifier of the directory for which to create the alias.
 caDirectoryId :: Lens' CreateAlias Text
 caDirectoryId = lens _caDirectoryId (\ s a -> s{_caDirectoryId = a});
 
 -- | The requested alias.
 --
--- The alias must be unique amongst all aliases in AWS. This operation will
--- throw an 'EntityAlreadyExistsException' if this alias already exists.
+-- The alias must be unique amongst all aliases in AWS. This operation
+-- throws an 'EntityAlreadyExistsException' error if the alias already
+-- exists.
 caAlias :: Lens' CreateAlias Text
 caAlias = lens _caAlias (\ s a -> s{_caAlias = a});
 
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
@@ -44,6 +44,7 @@
 
 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
@@ -96,7 +97,7 @@
 ccOrganizationalUnitDistinguishedName :: Lens' CreateComputer (Maybe Text)
 ccOrganizationalUnitDistinguishedName = lens _ccOrganizationalUnitDistinguishedName (\ s a -> s{_ccOrganizationalUnitDistinguishedName = a});
 
--- | The identifier of the directory to create the computer account in.
+-- | The identifier of the directory in which to create the computer account.
 ccDirectoryId :: Lens' CreateComputer Text
 ccDirectoryId = lens _ccDirectoryId (\ s a -> s{_ccDirectoryId = a});
 
@@ -169,7 +170,7 @@
     , _ccrsResponseStatus = pResponseStatus_
     }
 
--- | A Computer object the 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
@@ -44,6 +44,7 @@
 
 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
diff --git a/gen/Network/AWS/DirectoryService/CreateMicrosoftAD.hs b/gen/Network/AWS/DirectoryService/CreateMicrosoftAD.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/DirectoryService/CreateMicrosoftAD.hs
@@ -0,0 +1,178 @@
+{-# 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.CreateMicrosoftAD
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- 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
+      createMicrosoftAD
+    , CreateMicrosoftAD
+    -- * Request Lenses
+    , cmadShortName
+    , cmadDescription
+    , cmadName
+    , cmadPassword
+    , cmadVPCSettings
+
+    -- * Destructuring the Response
+    , createMicrosoftADResponse
+    , CreateMicrosoftADResponse
+    -- * Response Lenses
+    , cmadrsDirectoryId
+    , cmadrsResponseStatus
+    ) 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
+
+-- | Creates a Microsoft AD in the AWS cloud.
+--
+-- /See:/ 'createMicrosoftAD' smart constructor.
+data CreateMicrosoftAD = CreateMicrosoftAD'
+    { _cmadShortName   :: !(Maybe Text)
+    , _cmadDescription :: !(Maybe Text)
+    , _cmadName        :: !Text
+    , _cmadPassword    :: !(Sensitive Text)
+    , _cmadVPCSettings :: !DirectoryVPCSettings
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreateMicrosoftAD' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cmadShortName'
+--
+-- * 'cmadDescription'
+--
+-- * 'cmadName'
+--
+-- * 'cmadPassword'
+--
+-- * 'cmadVPCSettings'
+createMicrosoftAD
+    :: Text -- ^ 'cmadName'
+    -> Text -- ^ 'cmadPassword'
+    -> DirectoryVPCSettings -- ^ 'cmadVPCSettings'
+    -> CreateMicrosoftAD
+createMicrosoftAD pName_ pPassword_ pVPCSettings_ =
+    CreateMicrosoftAD'
+    { _cmadShortName = Nothing
+    , _cmadDescription = Nothing
+    , _cmadName = pName_
+    , _cmadPassword = _Sensitive # pPassword_
+    , _cmadVPCSettings = pVPCSettings_
+    }
+
+-- | The NetBIOS name for your domain. A short identifier for your domain,
+-- such as 'CORP'. If you don\'t specify a NetBIOS name, it will default to
+-- the first part of your directory DNS. For example, 'CORP' for the
+-- directory DNS 'corp.example.com'.
+cmadShortName :: Lens' CreateMicrosoftAD (Maybe Text)
+cmadShortName = lens _cmadShortName (\ s a -> s{_cmadShortName = a});
+
+-- | A textual description for the directory. This label will appear on the
+-- AWS console 'Directory Details' page after the directory is created.
+cmadDescription :: Lens' CreateMicrosoftAD (Maybe Text)
+cmadDescription = lens _cmadDescription (\ s a -> s{_cmadDescription = a});
+
+-- | The fully qualified domain name for the directory, such as
+-- 'corp.example.com'. This name will resolve inside your VPC only. It does
+-- not need to be publicly resolvable.
+cmadName :: Lens' CreateMicrosoftAD Text
+cmadName = lens _cmadName (\ s a -> s{_cmadName = a});
+
+-- | The password for the default administrative user named 'Admin'.
+cmadPassword :: Lens' CreateMicrosoftAD Text
+cmadPassword = lens _cmadPassword (\ s a -> s{_cmadPassword = a}) . _Sensitive;
+
+-- | Undocumented member.
+cmadVPCSettings :: Lens' CreateMicrosoftAD DirectoryVPCSettings
+cmadVPCSettings = lens _cmadVPCSettings (\ s a -> s{_cmadVPCSettings = a});
+
+instance AWSRequest CreateMicrosoftAD where
+        type Rs CreateMicrosoftAD = CreateMicrosoftADResponse
+        request = postJSON directoryService
+        response
+          = receiveJSON
+              (\ s h x ->
+                 CreateMicrosoftADResponse' <$>
+                   (x .?> "DirectoryId") <*> (pure (fromEnum s)))
+
+instance ToHeaders CreateMicrosoftAD where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("DirectoryService_20150416.CreateMicrosoftAD" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON CreateMicrosoftAD where
+        toJSON CreateMicrosoftAD'{..}
+          = object
+              (catMaybes
+                 [("ShortName" .=) <$> _cmadShortName,
+                  ("Description" .=) <$> _cmadDescription,
+                  Just ("Name" .= _cmadName),
+                  Just ("Password" .= _cmadPassword),
+                  Just ("VpcSettings" .= _cmadVPCSettings)])
+
+instance ToPath CreateMicrosoftAD where
+        toPath = const "/"
+
+instance ToQuery CreateMicrosoftAD where
+        toQuery = const mempty
+
+-- | /See:/ 'createMicrosoftADResponse' smart constructor.
+data CreateMicrosoftADResponse = CreateMicrosoftADResponse'
+    { _cmadrsDirectoryId    :: !(Maybe Text)
+    , _cmadrsResponseStatus :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreateMicrosoftADResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cmadrsDirectoryId'
+--
+-- * 'cmadrsResponseStatus'
+createMicrosoftADResponse
+    :: Int -- ^ 'cmadrsResponseStatus'
+    -> CreateMicrosoftADResponse
+createMicrosoftADResponse pResponseStatus_ =
+    CreateMicrosoftADResponse'
+    { _cmadrsDirectoryId = Nothing
+    , _cmadrsResponseStatus = pResponseStatus_
+    }
+
+-- | The identifier of the directory that was created.
+cmadrsDirectoryId :: Lens' CreateMicrosoftADResponse (Maybe Text)
+cmadrsDirectoryId = lens _cmadrsDirectoryId (\ s a -> s{_cmadrsDirectoryId = a});
+
+-- | The response status code.
+cmadrsResponseStatus :: Lens' CreateMicrosoftADResponse Int
+cmadrsResponseStatus = lens _cmadrsResponseStatus (\ s a -> s{_cmadrsResponseStatus = a});
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
@@ -18,9 +18,9 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Creates a snapshot of an existing directory.
+-- Creates a snapshot of a Simple AD directory.
 --
--- You cannot take snapshots of extended or connected directories.
+-- 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
@@ -42,6 +42,7 @@
 
 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
diff --git a/gen/Network/AWS/DirectoryService/CreateTrust.hs b/gen/Network/AWS/DirectoryService/CreateTrust.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/DirectoryService/CreateTrust.hs
@@ -0,0 +1,194 @@
+{-# 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.CreateTrust
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- AWS Directory Service for Microsoft Active Directory allows you to
+-- configure trust relationships. For example, you can establish a trust
+-- between your Microsoft AD in the AWS cloud, and your existing
+-- on-premises Microsoft Active Directory. This would allow you to provide
+-- users and groups access to resources in either domain, with a single set
+-- of credentials.
+--
+-- 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
+      createTrust
+    , CreateTrust
+    -- * Request Lenses
+    , ctTrustType
+    , ctDirectoryId
+    , ctRemoteDomainName
+    , ctTrustPassword
+    , ctTrustDirection
+
+    -- * Destructuring the Response
+    , createTrustResponse
+    , CreateTrustResponse
+    -- * Response Lenses
+    , ctrsTrustId
+    , ctrsResponseStatus
+    ) 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
+
+-- | AWS Directory Service for Microsoft Active Directory allows you to
+-- configure trust relationships. For example, you can establish a trust
+-- between your Microsoft AD in the AWS cloud, and your existing
+-- on-premises Microsoft Active Directory. This would allow you to provide
+-- users and groups access to resources in either domain, with a single set
+-- of credentials.
+--
+-- 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:/ 'createTrust' smart constructor.
+data CreateTrust = CreateTrust'
+    { _ctTrustType        :: !(Maybe TrustType)
+    , _ctDirectoryId      :: !Text
+    , _ctRemoteDomainName :: !Text
+    , _ctTrustPassword    :: !(Sensitive Text)
+    , _ctTrustDirection   :: !TrustDirection
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreateTrust' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctTrustType'
+--
+-- * 'ctDirectoryId'
+--
+-- * 'ctRemoteDomainName'
+--
+-- * 'ctTrustPassword'
+--
+-- * 'ctTrustDirection'
+createTrust
+    :: Text -- ^ 'ctDirectoryId'
+    -> Text -- ^ 'ctRemoteDomainName'
+    -> Text -- ^ 'ctTrustPassword'
+    -> TrustDirection -- ^ 'ctTrustDirection'
+    -> CreateTrust
+createTrust pDirectoryId_ pRemoteDomainName_ pTrustPassword_ pTrustDirection_ =
+    CreateTrust'
+    { _ctTrustType = Nothing
+    , _ctDirectoryId = pDirectoryId_
+    , _ctRemoteDomainName = pRemoteDomainName_
+    , _ctTrustPassword = _Sensitive # pTrustPassword_
+    , _ctTrustDirection = pTrustDirection_
+    }
+
+-- | The trust relationship type.
+ctTrustType :: Lens' CreateTrust (Maybe TrustType)
+ctTrustType = lens _ctTrustType (\ s a -> s{_ctTrustType = a});
+
+-- | The Directory ID of the Microsoft AD in the AWS cloud for which to
+-- establish the trust relationship.
+ctDirectoryId :: Lens' CreateTrust Text
+ctDirectoryId = lens _ctDirectoryId (\ s a -> s{_ctDirectoryId = a});
+
+-- | The Fully Qualified Domain Name (FQDN) of the external domain for which
+-- to create the trust relationship.
+ctRemoteDomainName :: Lens' CreateTrust Text
+ctRemoteDomainName = lens _ctRemoteDomainName (\ s a -> s{_ctRemoteDomainName = a});
+
+-- | The trust password. The must be the same password that was used when
+-- creating the trust relationship on the external domain.
+ctTrustPassword :: Lens' CreateTrust Text
+ctTrustPassword = lens _ctTrustPassword (\ s a -> s{_ctTrustPassword = a}) . _Sensitive;
+
+-- | The direction of the trust relationship.
+ctTrustDirection :: Lens' CreateTrust TrustDirection
+ctTrustDirection = lens _ctTrustDirection (\ s a -> s{_ctTrustDirection = a});
+
+instance AWSRequest CreateTrust where
+        type Rs CreateTrust = CreateTrustResponse
+        request = postJSON directoryService
+        response
+          = receiveJSON
+              (\ s h x ->
+                 CreateTrustResponse' <$>
+                   (x .?> "TrustId") <*> (pure (fromEnum s)))
+
+instance ToHeaders CreateTrust where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("DirectoryService_20150416.CreateTrust" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON CreateTrust where
+        toJSON CreateTrust'{..}
+          = object
+              (catMaybes
+                 [("TrustType" .=) <$> _ctTrustType,
+                  Just ("DirectoryId" .= _ctDirectoryId),
+                  Just ("RemoteDomainName" .= _ctRemoteDomainName),
+                  Just ("TrustPassword" .= _ctTrustPassword),
+                  Just ("TrustDirection" .= _ctTrustDirection)])
+
+instance ToPath CreateTrust where
+        toPath = const "/"
+
+instance ToQuery CreateTrust where
+        toQuery = const mempty
+
+-- | /See:/ 'createTrustResponse' smart constructor.
+data CreateTrustResponse = CreateTrustResponse'
+    { _ctrsTrustId        :: !(Maybe Text)
+    , _ctrsResponseStatus :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreateTrustResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctrsTrustId'
+--
+-- * 'ctrsResponseStatus'
+createTrustResponse
+    :: Int -- ^ 'ctrsResponseStatus'
+    -> CreateTrustResponse
+createTrustResponse pResponseStatus_ =
+    CreateTrustResponse'
+    { _ctrsTrustId = Nothing
+    , _ctrsResponseStatus = pResponseStatus_
+    }
+
+-- | A unique identifier for the trust relationship that was created.
+ctrsTrustId :: Lens' CreateTrustResponse (Maybe Text)
+ctrsTrustId = lens _ctrsTrustId (\ s a -> s{_ctrsTrustId = a});
+
+-- | The response status code.
+ctrsResponseStatus :: Lens' CreateTrustResponse Int
+ctrsResponseStatus = lens _ctrsResponseStatus (\ s a -> s{_ctrsResponseStatus = a});
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
@@ -39,6 +39,7 @@
 
 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
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
@@ -39,6 +39,7 @@
 
 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
diff --git a/gen/Network/AWS/DirectoryService/DeleteTrust.hs b/gen/Network/AWS/DirectoryService/DeleteTrust.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/DirectoryService/DeleteTrust.hs
@@ -0,0 +1,130 @@
+{-# 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.DeleteTrust
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- 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
+      deleteTrust
+    , DeleteTrust
+    -- * Request Lenses
+    , dtTrustId
+
+    -- * Destructuring the Response
+    , deleteTrustResponse
+    , DeleteTrustResponse
+    -- * Response Lenses
+    , delrsTrustId
+    , delrsResponseStatus
+    ) 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
+
+-- | Deletes the local side of an existing trust relationship between the
+-- Microsoft AD in the AWS cloud and the external domain.
+--
+-- /See:/ 'deleteTrust' smart constructor.
+newtype DeleteTrust = DeleteTrust'
+    { _dtTrustId :: Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeleteTrust' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dtTrustId'
+deleteTrust
+    :: Text -- ^ 'dtTrustId'
+    -> DeleteTrust
+deleteTrust pTrustId_ =
+    DeleteTrust'
+    { _dtTrustId = pTrustId_
+    }
+
+-- | The Trust ID of the trust relationship to be deleted.
+dtTrustId :: Lens' DeleteTrust Text
+dtTrustId = lens _dtTrustId (\ s a -> s{_dtTrustId = a});
+
+instance AWSRequest DeleteTrust where
+        type Rs DeleteTrust = DeleteTrustResponse
+        request = postJSON directoryService
+        response
+          = receiveJSON
+              (\ s h x ->
+                 DeleteTrustResponse' <$>
+                   (x .?> "TrustId") <*> (pure (fromEnum s)))
+
+instance ToHeaders DeleteTrust where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("DirectoryService_20150416.DeleteTrust" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DeleteTrust where
+        toJSON DeleteTrust'{..}
+          = object (catMaybes [Just ("TrustId" .= _dtTrustId)])
+
+instance ToPath DeleteTrust where
+        toPath = const "/"
+
+instance ToQuery DeleteTrust where
+        toQuery = const mempty
+
+-- | /See:/ 'deleteTrustResponse' smart constructor.
+data DeleteTrustResponse = DeleteTrustResponse'
+    { _delrsTrustId        :: !(Maybe Text)
+    , _delrsResponseStatus :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeleteTrustResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'delrsTrustId'
+--
+-- * 'delrsResponseStatus'
+deleteTrustResponse
+    :: Int -- ^ 'delrsResponseStatus'
+    -> DeleteTrustResponse
+deleteTrustResponse pResponseStatus_ =
+    DeleteTrustResponse'
+    { _delrsTrustId = Nothing
+    , _delrsResponseStatus = pResponseStatus_
+    }
+
+-- | The Trust ID of the trust relationship that was deleted.
+delrsTrustId :: Lens' DeleteTrustResponse (Maybe Text)
+delrsTrustId = lens _delrsTrustId (\ s a -> s{_delrsTrustId = a});
+
+-- | The response status code.
+delrsResponseStatus :: Lens' DeleteTrustResponse Int
+delrsResponseStatus = lens _delrsResponseStatus (\ s a -> s{_delrsResponseStatus = 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
@@ -55,6 +55,7 @@
 
 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
@@ -91,9 +92,9 @@
 ddNextToken :: Lens' DescribeDirectories (Maybe Text)
 ddNextToken = lens _ddNextToken (\ s a -> s{_ddNextToken = a});
 
--- | A list of identifiers of the directories to obtain the information for.
--- If this member is null, all directories that belong to the current
--- account are returned.
+-- | A list of identifiers of the directories for which to obtain the
+-- information. If this member is null, all directories that belong to the
+-- current account are returned.
 --
 -- An empty list results in an 'InvalidParameterException' being thrown.
 ddDirectoryIds :: Lens' DescribeDirectories [Text]
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
@@ -52,6 +52,7 @@
 
 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
@@ -87,7 +88,8 @@
     , _dsLimit = Nothing
     }
 
--- | The identifier of the directory to retrieve snapshot information for.
+-- | The identifier of the directory for which to retrieve snapshot
+-- information.
 dsDirectoryId :: Lens' DescribeSnapshots (Maybe Text)
 dsDirectoryId = lens _dsDirectoryId (\ s a -> s{_dsDirectoryId = a});
 
diff --git a/gen/Network/AWS/DirectoryService/DescribeTrusts.hs b/gen/Network/AWS/DirectoryService/DescribeTrusts.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/DirectoryService/DescribeTrusts.hs
@@ -0,0 +1,188 @@
+{-# 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.DescribeTrusts
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Obtains information about the trust relationships for this account.
+--
+-- 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
+      describeTrusts
+    , DescribeTrusts
+    -- * Request Lenses
+    , dtDirectoryId
+    , dtNextToken
+    , dtTrustIds
+    , dtLimit
+
+    -- * Destructuring the Response
+    , describeTrustsResponse
+    , DescribeTrustsResponse
+    -- * Response Lenses
+    , dtrsNextToken
+    , dtrsTrusts
+    , dtrsResponseStatus
+    ) 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
+
+-- | Describes the trust relationships for a particular Microsoft AD in the
+-- AWS cloud. If no input parameters are are provided, such as directory ID
+-- or trust ID, this request describes all the trust relationships.
+--
+-- /See:/ 'describeTrusts' smart constructor.
+data DescribeTrusts = DescribeTrusts'
+    { _dtDirectoryId :: !(Maybe Text)
+    , _dtNextToken   :: !(Maybe Text)
+    , _dtTrustIds    :: !(Maybe [Text])
+    , _dtLimit       :: !(Maybe Nat)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeTrusts' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dtDirectoryId'
+--
+-- * 'dtNextToken'
+--
+-- * 'dtTrustIds'
+--
+-- * 'dtLimit'
+describeTrusts
+    :: DescribeTrusts
+describeTrusts =
+    DescribeTrusts'
+    { _dtDirectoryId = Nothing
+    , _dtNextToken = Nothing
+    , _dtTrustIds = Nothing
+    , _dtLimit = Nothing
+    }
+
+-- | The Directory ID of the AWS directory that is a part of the requested
+-- trust relationship.
+dtDirectoryId :: Lens' DescribeTrusts (Maybe Text)
+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.
+dtNextToken :: Lens' DescribeTrusts (Maybe Text)
+dtNextToken = lens _dtNextToken (\ s a -> s{_dtNextToken = a});
+
+-- | A list of identifiers of the trust relationships for which to obtain the
+-- information. If this member is null, all trust relationships that belong
+-- to the current account are returned.
+--
+-- An empty list results in an 'InvalidParameterException' being thrown.
+dtTrustIds :: Lens' DescribeTrusts [Text]
+dtTrustIds = lens _dtTrustIds (\ s a -> s{_dtTrustIds = a}) . _Default . _Coerce;
+
+-- | The maximum number of objects to return.
+dtLimit :: Lens' DescribeTrusts (Maybe Natural)
+dtLimit = lens _dtLimit (\ s a -> s{_dtLimit = a}) . mapping _Nat;
+
+instance AWSRequest DescribeTrusts where
+        type Rs DescribeTrusts = DescribeTrustsResponse
+        request = postJSON directoryService
+        response
+          = receiveJSON
+              (\ s h x ->
+                 DescribeTrustsResponse' <$>
+                   (x .?> "NextToken") <*> (x .?> "Trusts" .!@ mempty)
+                     <*> (pure (fromEnum s)))
+
+instance ToHeaders DescribeTrusts where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("DirectoryService_20150416.DescribeTrusts" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DescribeTrusts where
+        toJSON DescribeTrusts'{..}
+          = object
+              (catMaybes
+                 [("DirectoryId" .=) <$> _dtDirectoryId,
+                  ("NextToken" .=) <$> _dtNextToken,
+                  ("TrustIds" .=) <$> _dtTrustIds,
+                  ("Limit" .=) <$> _dtLimit])
+
+instance ToPath DescribeTrusts where
+        toPath = const "/"
+
+instance ToQuery DescribeTrusts where
+        toQuery = const mempty
+
+-- | /See:/ 'describeTrustsResponse' smart constructor.
+data DescribeTrustsResponse = DescribeTrustsResponse'
+    { _dtrsNextToken      :: !(Maybe Text)
+    , _dtrsTrusts         :: !(Maybe [Trust])
+    , _dtrsResponseStatus :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeTrustsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dtrsNextToken'
+--
+-- * 'dtrsTrusts'
+--
+-- * 'dtrsResponseStatus'
+describeTrustsResponse
+    :: Int -- ^ 'dtrsResponseStatus'
+    -> DescribeTrustsResponse
+describeTrustsResponse pResponseStatus_ =
+    DescribeTrustsResponse'
+    { _dtrsNextToken = Nothing
+    , _dtrsTrusts = Nothing
+    , _dtrsResponseStatus = pResponseStatus_
+    }
+
+-- | 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.
+dtrsNextToken :: Lens' DescribeTrustsResponse (Maybe Text)
+dtrsNextToken = lens _dtrsNextToken (\ s a -> s{_dtrsNextToken = a});
+
+-- | The list of Trust 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
+-- less than the requested number of items left to retrieve, or if the
+-- limitations of the operation have been exceeded.
+dtrsTrusts :: Lens' DescribeTrustsResponse [Trust]
+dtrsTrusts = lens _dtrsTrusts (\ s a -> s{_dtrsTrusts = a}) . _Default . _Coerce;
+
+-- | The response status code.
+dtrsResponseStatus :: Lens' DescribeTrustsResponse Int
+dtrsResponseStatus = lens _dtrsResponseStatus (\ s a -> s{_dtrsResponseStatus = 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
@@ -18,8 +18,9 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Disables multi-factor authentication (MFA) with Remote Authentication
--- Dial In User Service (RADIUS) for an AD Connector directory.
+-- 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
@@ -39,6 +40,7 @@
 
 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
@@ -63,7 +65,7 @@
     { _drDirectoryId = pDirectoryId_
     }
 
--- | The identifier of the directory to disable MFA for.
+-- | The identifier of the directory for which to disable MFA.
 drDirectoryId :: Lens' DisableRadius Text
 drDirectoryId = lens _drDirectoryId (\ s a -> s{_drDirectoryId = a});
 
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
@@ -40,6 +40,7 @@
 
 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
@@ -74,10 +75,10 @@
 
 -- | The username of an alternate account to use to disable single-sign on.
 -- This is only used for AD Connector directories. This account must have
--- privileges to remove a service principle name.
+-- privileges to remove a service principal name.
 --
 -- If the AD Connector service account does not have privileges to remove a
--- service principle name, you can specify an alternate account with the
+-- service principal name, you can specify an alternate account with the
 -- /UserName/ and /Password/ parameters. These credentials are only used to
 -- disable single sign-on and are not stored by the service. The AD
 -- Connector service account is not changed.
@@ -85,12 +86,12 @@
 dssoUserName = lens _dssoUserName (\ s a -> s{_dssoUserName = a});
 
 -- | The password of an alternate account to use to disable single-sign on.
--- This is only used for AD Connector directories. See the /UserName/
--- parameter for more information.
+-- This is only used for AD Connector directories. For more information,
+-- see the /UserName/ parameter.
 dssoPassword :: Lens' DisableSSO (Maybe Text)
 dssoPassword = lens _dssoPassword (\ s a -> s{_dssoPassword = a}) . mapping _Sensitive;
 
--- | The identifier of the directory to disable single-sign on for.
+-- | The identifier of the directory for which to disable single-sign on.
 dssoDirectoryId :: Lens' DisableSSO Text
 dssoDirectoryId = lens _dssoDirectoryId (\ s a -> s{_dssoDirectoryId = a});
 
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
@@ -18,8 +18,8 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Enables multi-factor authentication (MFA) with Remote Authentication
--- Dial In User Service (RADIUS) for an AD Connector directory.
+-- 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
@@ -40,6 +40,7 @@
 
 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
@@ -69,7 +70,7 @@
     , _erRadiusSettings = pRadiusSettings_
     }
 
--- | The identifier of the directory to enable MFA for.
+-- | The identifier of the directory for which to enable MFA.
 erDirectoryId :: Lens' EnableRadius Text
 erDirectoryId = lens _erDirectoryId (\ s a -> s{_erDirectoryId = a});
 
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
@@ -40,6 +40,7 @@
 
 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
@@ -74,10 +75,10 @@
 
 -- | The username of an alternate account to use to enable single-sign on.
 -- This is only used for AD Connector directories. This account must have
--- privileges to add a service principle name.
+-- privileges to add a service principal name.
 --
 -- If the AD Connector service account does not have privileges to add a
--- service principle name, you can specify an alternate account with the
+-- service principal name, you can specify an alternate account with the
 -- /UserName/ and /Password/ parameters. These credentials are only used to
 -- enable single sign-on and are not stored by the service. The AD
 -- Connector service account is not changed.
@@ -85,12 +86,12 @@
 esUserName = lens _esUserName (\ s a -> s{_esUserName = a});
 
 -- | The password of an alternate account to use to enable single-sign on.
--- This is only used for AD Connector directories. See the /UserName/
--- parameter for more information.
+-- This is only used for AD Connector directories. For more information,
+-- see the /UserName/ parameter.
 esPassword :: Lens' EnableSSO (Maybe Text)
 esPassword = lens _esPassword (\ s a -> s{_esPassword = a}) . mapping _Sensitive;
 
--- | The identifier of the directory to enable single-sign on for.
+-- | The identifier of the directory for which to enable single-sign on.
 esDirectoryId :: Lens' EnableSSO Text
 esDirectoryId = lens _esDirectoryId (\ s a -> s{_esDirectoryId = a});
 
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
@@ -37,6 +37,7 @@
 
 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
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
@@ -39,6 +39,7 @@
 
 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
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
@@ -47,6 +47,7 @@
 
 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
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
@@ -50,6 +50,15 @@
     -- * SnapshotType
     , SnapshotType (..)
 
+    -- * TrustDirection
+    , TrustDirection (..)
+
+    -- * TrustState
+    , TrustState (..)
+
+    -- * TrustType
+    , TrustType (..)
+
     -- * Attribute
     , Attribute
     , attribute
@@ -107,11 +116,14 @@
     , DirectoryLimits
     , directoryLimits
     , dlConnectedDirectoriesCurrentCount
+    , dlCloudOnlyMicrosoftADLimitReached
     , dlConnectedDirectoriesLimit
     , dlConnectedDirectoriesLimitReached
+    , dlCloudOnlyMicrosoftADLimit
     , dlCloudOnlyDirectoriesLimit
     , dlCloudOnlyDirectoriesCurrentCount
     , dlCloudOnlyDirectoriesLimitReached
+    , dlCloudOnlyMicrosoftADCurrentCount
 
     -- * DirectoryVPCSettings
     , DirectoryVPCSettings
@@ -155,10 +167,24 @@
     , slManualSnapshotsLimitReached
     , slManualSnapshotsCurrentCount
     , slManualSnapshotsLimit
+
+    -- * Trust
+    , Trust
+    , trust
+    , tDirectoryId
+    , tTrustState
+    , tLastUpdatedDateTime
+    , tTrustDirection
+    , tStateLastUpdatedDateTime
+    , tTrustType
+    , tRemoteDomainName
+    , tTrustId
+    , tCreatedDateTime
     ) where
 
 import           Network.AWS.DirectoryService.Types.Product
 import           Network.AWS.DirectoryService.Types.Sum
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Sign.V4
 
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
@@ -18,6 +18,7 @@
 module Network.AWS.DirectoryService.Types.Product where
 
 import           Network.AWS.DirectoryService.Types.Sum
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 
 -- | Represents a named directory attribute.
@@ -94,8 +95,8 @@
 cComputerId :: Lens' Computer (Maybe Text)
 cComputerId = lens _cComputerId (\ s a -> s{_cComputerId = a});
 
--- | An array of Attribute objects that contain 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;
 
@@ -146,12 +147,12 @@
     , _dcsCustomerUserName = pCustomerUserName_
     }
 
--- | The identifier of the VPC that the AD Connector is created in.
+-- | The identifier of the VPC in which the AD Connector is created.
 dcsVPCId :: Lens' DirectoryConnectSettings Text
 dcsVPCId = lens _dcsVPCId (\ s a -> s{_dcsVPCId = a});
 
--- | A list of subnet identifiers in the VPC that the AD Connector is created
--- in.
+-- | A list of subnet identifiers in the VPC in which the AD Connector is
+-- created.
 dcsSubnetIds :: Lens' DirectoryConnectSettings [Text]
 dcsSubnetIds = lens _dcsSubnetIds (\ s a -> s{_dcsSubnetIds = a}) . _Coerce;
 
@@ -355,7 +356,9 @@
 ddDirectoryId = lens _ddDirectoryId (\ s a -> s{_ddDirectoryId = a});
 
 -- | The access URL for the directory, such as
--- 'http:\/\/\<alias>.awsapps.com'.
+-- 'http:\/\/&#x3C;alias&#x3E;.awsapps.com'. If no alias has been created
+-- for the directory, '&#x3C;alias&#x3E;' is the directory identifier, such
+-- as 'd-XXXXXXXXXX'.
 ddAccessURL :: Lens' DirectoryDescription (Maybe Text)
 ddAccessURL = lens _ddAccessURL (\ s a -> s{_ddAccessURL = a});
 
@@ -376,7 +379,9 @@
 ddLaunchTime :: Lens' DirectoryDescription (Maybe UTCTime)
 ddLaunchTime = lens _ddLaunchTime (\ s a -> s{_ddLaunchTime = a}) . mapping _Time;
 
--- | The alias for the directory.
+-- | The alias for the directory. If no alias has been created for the
+-- directory, the alias is the directory identifier, such as
+-- 'd-XXXXXXXXXX'.
 ddAlias :: Lens' DirectoryDescription (Maybe Text)
 ddAlias = lens _ddAlias (\ s a -> s{_ddAlias = a});
 
@@ -394,16 +399,16 @@
 ddSSOEnabled = lens _ddSSOEnabled (\ s a -> s{_ddSSOEnabled = a});
 
 -- | The IP addresses of the DNS servers for the directory. For a Simple AD
--- directory, these are the IP addresses of the Simple AD directory
--- servers. For an AD Connector directory, these are the IP addresses of
--- the DNS servers or domain controllers in the on-premises directory that
--- the AD Connector is connected to.
+-- or Microsoft AD directory, these are the IP addresses of the Simple AD
+-- or Microsoft AD directory servers. For an AD Connector directory, these
+-- are the IP addresses of the DNS servers or domain controllers in the
+-- on-premises directory to which the AD Connector is connected.
 ddDNSIPAddrs :: Lens' DirectoryDescription [Text]
 ddDNSIPAddrs = lens _ddDNSIPAddrs (\ s a -> s{_ddDNSIPAddrs = a}) . _Default . _Coerce;
 
 -- | A DirectoryVpcSettingsDescription object that contains additional
--- information about a Simple AD directory. This member is only present if
--- the directory is a Simple AD directory.
+-- 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)
 ddVPCSettings = lens _ddVPCSettings (\ s a -> s{_ddVPCSettings = a});
 
@@ -453,11 +458,14 @@
 -- /See:/ 'directoryLimits' smart constructor.
 data DirectoryLimits = DirectoryLimits'
     { _dlConnectedDirectoriesCurrentCount :: !(Maybe Nat)
+    , _dlCloudOnlyMicrosoftADLimitReached :: !(Maybe Bool)
     , _dlConnectedDirectoriesLimit        :: !(Maybe Nat)
     , _dlConnectedDirectoriesLimitReached :: !(Maybe Bool)
+    , _dlCloudOnlyMicrosoftADLimit        :: !(Maybe Nat)
     , _dlCloudOnlyDirectoriesLimit        :: !(Maybe Nat)
     , _dlCloudOnlyDirectoriesCurrentCount :: !(Maybe Nat)
     , _dlCloudOnlyDirectoriesLimitReached :: !(Maybe Bool)
+    , _dlCloudOnlyMicrosoftADCurrentCount :: !(Maybe Nat)
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'DirectoryLimits' with the minimum fields required to make a request.
@@ -466,31 +474,44 @@
 --
 -- * 'dlConnectedDirectoriesCurrentCount'
 --
+-- * 'dlCloudOnlyMicrosoftADLimitReached'
+--
 -- * 'dlConnectedDirectoriesLimit'
 --
 -- * 'dlConnectedDirectoriesLimitReached'
 --
+-- * 'dlCloudOnlyMicrosoftADLimit'
+--
 -- * 'dlCloudOnlyDirectoriesLimit'
 --
 -- * 'dlCloudOnlyDirectoriesCurrentCount'
 --
 -- * 'dlCloudOnlyDirectoriesLimitReached'
+--
+-- * 'dlCloudOnlyMicrosoftADCurrentCount'
 directoryLimits
     :: DirectoryLimits
 directoryLimits =
     DirectoryLimits'
     { _dlConnectedDirectoriesCurrentCount = Nothing
+    , _dlCloudOnlyMicrosoftADLimitReached = Nothing
     , _dlConnectedDirectoriesLimit = Nothing
     , _dlConnectedDirectoriesLimitReached = Nothing
+    , _dlCloudOnlyMicrosoftADLimit = Nothing
     , _dlCloudOnlyDirectoriesLimit = Nothing
     , _dlCloudOnlyDirectoriesCurrentCount = Nothing
     , _dlCloudOnlyDirectoriesLimitReached = Nothing
+    , _dlCloudOnlyMicrosoftADCurrentCount = Nothing
     }
 
 -- | The current number of connected directories in the region.
 dlConnectedDirectoriesCurrentCount :: Lens' DirectoryLimits (Maybe Natural)
 dlConnectedDirectoriesCurrentCount = lens _dlConnectedDirectoriesCurrentCount (\ s a -> s{_dlConnectedDirectoriesCurrentCount = a}) . mapping _Nat;
 
+-- | Indicates if the Microsoft AD directory limit has been reached.
+dlCloudOnlyMicrosoftADLimitReached :: Lens' DirectoryLimits (Maybe Bool)
+dlCloudOnlyMicrosoftADLimitReached = lens _dlCloudOnlyMicrosoftADLimitReached (\ s a -> s{_dlCloudOnlyMicrosoftADLimitReached = a});
+
 -- | The maximum number of connected directories allowed in the region.
 dlConnectedDirectoriesLimit :: Lens' DirectoryLimits (Maybe Natural)
 dlConnectedDirectoriesLimit = lens _dlConnectedDirectoriesLimit (\ s a -> s{_dlConnectedDirectoriesLimit = a}) . mapping _Nat;
@@ -499,6 +520,10 @@
 dlConnectedDirectoriesLimitReached :: Lens' DirectoryLimits (Maybe Bool)
 dlConnectedDirectoriesLimitReached = lens _dlConnectedDirectoriesLimitReached (\ s a -> s{_dlConnectedDirectoriesLimitReached = a});
 
+-- | The maximum number of Microsoft AD directories allowed in the region.
+dlCloudOnlyMicrosoftADLimit :: Lens' DirectoryLimits (Maybe Natural)
+dlCloudOnlyMicrosoftADLimit = lens _dlCloudOnlyMicrosoftADLimit (\ s a -> s{_dlCloudOnlyMicrosoftADLimit = a}) . mapping _Nat;
+
 -- | The maximum number of cloud directories allowed in the region.
 dlCloudOnlyDirectoriesLimit :: Lens' DirectoryLimits (Maybe Natural)
 dlCloudOnlyDirectoriesLimit = lens _dlCloudOnlyDirectoriesLimit (\ s a -> s{_dlCloudOnlyDirectoriesLimit = a}) . mapping _Nat;
@@ -511,20 +536,27 @@
 dlCloudOnlyDirectoriesLimitReached :: Lens' DirectoryLimits (Maybe Bool)
 dlCloudOnlyDirectoriesLimitReached = lens _dlCloudOnlyDirectoriesLimitReached (\ s a -> s{_dlCloudOnlyDirectoriesLimitReached = a});
 
+-- | The current number of Microsoft AD directories in the region.
+dlCloudOnlyMicrosoftADCurrentCount :: Lens' DirectoryLimits (Maybe Natural)
+dlCloudOnlyMicrosoftADCurrentCount = lens _dlCloudOnlyMicrosoftADCurrentCount (\ s a -> s{_dlCloudOnlyMicrosoftADCurrentCount = a}) . mapping _Nat;
+
 instance FromJSON DirectoryLimits where
         parseJSON
           = withObject "DirectoryLimits"
               (\ x ->
                  DirectoryLimits' <$>
                    (x .:? "ConnectedDirectoriesCurrentCount") <*>
-                     (x .:? "ConnectedDirectoriesLimit")
+                     (x .:? "CloudOnlyMicrosoftADLimitReached")
+                     <*> (x .:? "ConnectedDirectoriesLimit")
                      <*> (x .:? "ConnectedDirectoriesLimitReached")
+                     <*> (x .:? "CloudOnlyMicrosoftADLimit")
                      <*> (x .:? "CloudOnlyDirectoriesLimit")
                      <*> (x .:? "CloudOnlyDirectoriesCurrentCount")
-                     <*> (x .:? "CloudOnlyDirectoriesLimitReached"))
+                     <*> (x .:? "CloudOnlyDirectoriesLimitReached")
+                     <*> (x .:? "CloudOnlyMicrosoftADCurrentCount"))
 
--- | Contains information for the CreateDirectory operation when a Simple AD
--- directory is being created.
+-- | Contains VPC information for the CreateDirectory or CreateMicrosoftAD
+-- operation.
 --
 -- /See:/ 'directoryVPCSettings' smart constructor.
 data DirectoryVPCSettings = DirectoryVPCSettings'
@@ -548,7 +580,7 @@
     , _dvsSubnetIds = mempty
     }
 
--- | The identifier of the VPC to create the Simple AD directory in.
+-- | The identifier of the VPC in which to create the directory.
 dvsVPCId :: Lens' DirectoryVPCSettings Text
 dvsVPCId = lens _dvsVPCId (\ s a -> s{_dvsVPCId = a});
 
@@ -565,7 +597,7 @@
                  [Just ("VpcId" .= _dvsVPCId),
                   Just ("SubnetIds" .= _dvsSubnetIds)])
 
--- | Contains information about a Simple AD directory.
+-- | Contains information about the directory.
 --
 -- /See:/ 'directoryVPCSettingsDescription' smart constructor.
 data DirectoryVPCSettingsDescription = DirectoryVPCSettingsDescription'
@@ -604,7 +636,10 @@
 dvsdVPCId :: Lens' DirectoryVPCSettingsDescription (Maybe Text)
 dvsdVPCId = lens _dvsdVPCId (\ s a -> s{_dvsdVPCId = a});
 
--- | The security group identifier for the directory.
+-- | The security group identifier for the directory. If the directory was
+-- created before 8\/1\/2014, this is the identifier of the directory
+-- members security group that was created when the directory was created.
+-- If the directory was created after this date, this value is null.
 dvsdSecurityGroupId :: Lens' DirectoryVPCSettingsDescription (Maybe Text)
 dvsdSecurityGroupId = lens _dvsdSecurityGroupId (\ s a -> s{_dvsdSecurityGroupId = a});
 
@@ -856,3 +891,107 @@
                    (x .:? "ManualSnapshotsLimitReached") <*>
                      (x .:? "ManualSnapshotsCurrentCount")
                      <*> (x .:? "ManualSnapshotsLimit"))
+
+-- | Describes a trust relationship between an Microsoft AD in the AWS cloud
+-- and an external domain.
+--
+-- /See:/ 'trust' smart constructor.
+data Trust = Trust'
+    { _tDirectoryId              :: !(Maybe Text)
+    , _tTrustState               :: !(Maybe TrustState)
+    , _tLastUpdatedDateTime      :: !(Maybe POSIX)
+    , _tTrustDirection           :: !(Maybe TrustDirection)
+    , _tStateLastUpdatedDateTime :: !(Maybe POSIX)
+    , _tTrustType                :: !(Maybe TrustType)
+    , _tRemoteDomainName         :: !(Maybe Text)
+    , _tTrustId                  :: !(Maybe Text)
+    , _tCreatedDateTime          :: !(Maybe POSIX)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Trust' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tDirectoryId'
+--
+-- * 'tTrustState'
+--
+-- * 'tLastUpdatedDateTime'
+--
+-- * 'tTrustDirection'
+--
+-- * 'tStateLastUpdatedDateTime'
+--
+-- * 'tTrustType'
+--
+-- * 'tRemoteDomainName'
+--
+-- * 'tTrustId'
+--
+-- * 'tCreatedDateTime'
+trust
+    :: Trust
+trust =
+    Trust'
+    { _tDirectoryId = Nothing
+    , _tTrustState = Nothing
+    , _tLastUpdatedDateTime = Nothing
+    , _tTrustDirection = Nothing
+    , _tStateLastUpdatedDateTime = Nothing
+    , _tTrustType = Nothing
+    , _tRemoteDomainName = Nothing
+    , _tTrustId = Nothing
+    , _tCreatedDateTime = Nothing
+    }
+
+-- | The Directory ID of the AWS directory involved in the trust
+-- relationship.
+tDirectoryId :: Lens' Trust (Maybe Text)
+tDirectoryId = lens _tDirectoryId (\ s a -> s{_tDirectoryId = a});
+
+-- | The trust relationship state.
+tTrustState :: Lens' Trust (Maybe TrustState)
+tTrustState = lens _tTrustState (\ s a -> s{_tTrustState = a});
+
+-- | The date and time that the trust relationship was last updated.
+tLastUpdatedDateTime :: Lens' Trust (Maybe UTCTime)
+tLastUpdatedDateTime = lens _tLastUpdatedDateTime (\ s a -> s{_tLastUpdatedDateTime = a}) . mapping _Time;
+
+-- | The trust relationship direction.
+tTrustDirection :: Lens' Trust (Maybe TrustDirection)
+tTrustDirection = lens _tTrustDirection (\ s a -> s{_tTrustDirection = a});
+
+-- | The date and time that the TrustState was last updated.
+tStateLastUpdatedDateTime :: Lens' Trust (Maybe UTCTime)
+tStateLastUpdatedDateTime = lens _tStateLastUpdatedDateTime (\ s a -> s{_tStateLastUpdatedDateTime = a}) . mapping _Time;
+
+-- | The trust relationship type.
+tTrustType :: Lens' Trust (Maybe TrustType)
+tTrustType = lens _tTrustType (\ s a -> s{_tTrustType = a});
+
+-- | The Fully Qualified Domain Name (FQDN) of the external domain involved
+-- in the trust relationship.
+tRemoteDomainName :: Lens' Trust (Maybe Text)
+tRemoteDomainName = lens _tRemoteDomainName (\ s a -> s{_tRemoteDomainName = a});
+
+-- | The unique ID of the trust relationship.
+tTrustId :: Lens' Trust (Maybe Text)
+tTrustId = lens _tTrustId (\ s a -> s{_tTrustId = a});
+
+-- | The date and time that the trust relationship was created.
+tCreatedDateTime :: Lens' Trust (Maybe UTCTime)
+tCreatedDateTime = lens _tCreatedDateTime (\ s a -> s{_tCreatedDateTime = a}) . mapping _Time;
+
+instance FromJSON Trust where
+        parseJSON
+          = withObject "Trust"
+              (\ x ->
+                 Trust' <$>
+                   (x .:? "DirectoryId") <*> (x .:? "TrustState") <*>
+                     (x .:? "LastUpdatedDateTime")
+                     <*> (x .:? "TrustDirection")
+                     <*> (x .:? "StateLastUpdatedDateTime")
+                     <*> (x .:? "TrustType")
+                     <*> (x .:? "RemoteDomainName")
+                     <*> (x .:? "TrustId")
+                     <*> (x .:? "CreatedDateTime"))
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
@@ -22,7 +22,7 @@
 data DirectorySize
     = Large
     | Small
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText DirectorySize where
     parser = takeLowerText >>= \case
@@ -59,7 +59,7 @@
     | DSRequested
     | DSRestoreFailed
     | DSRestoring
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText DirectoryStage where
     parser = takeLowerText >>= \case
@@ -101,19 +101,22 @@
 
 data DirectoryType
     = ADConnector
+    | MicrosoftAD
     | SimpleAD
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText DirectoryType where
     parser = takeLowerText >>= \case
         "adconnector" -> pure ADConnector
+        "microsoftad" -> pure MicrosoftAD
         "simplead" -> pure SimpleAD
         e -> fromTextError $ "Failure parsing DirectoryType from value: '" <> e
-           <> "'. Accepted values: ADConnector, SimpleAD"
+           <> "'. Accepted values: ADConnector, MicrosoftAD, SimpleAD"
 
 instance ToText DirectoryType where
     toText = \case
         ADConnector -> "ADConnector"
+        MicrosoftAD -> "MicrosoftAD"
         SimpleAD -> "SimpleAD"
 
 instance Hashable     DirectoryType
@@ -129,7 +132,7 @@
     | MsCHAPV1
     | MsCHAPV2
     | Pap
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText RadiusAuthenticationProtocol where
     parser = takeLowerText >>= \case
@@ -162,7 +165,7 @@
     = Completed
     | Creating
     | Failed
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText RadiusStatus where
     parser = takeLowerText >>= \case
@@ -190,7 +193,7 @@
     = SSCompleted
     | SSCreating
     | SSFailed
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText SnapshotStatus where
     parser = takeLowerText >>= \case
@@ -217,7 +220,7 @@
 data SnapshotType
     = Auto
     | Manual
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText SnapshotType where
     parser = takeLowerText >>= \case
@@ -238,3 +241,102 @@
 
 instance FromJSON SnapshotType where
     parseJSON = parseJSONText "SnapshotType"
+
+data TrustDirection
+    = OneWayIncoming
+    | OneWayOutgoing
+    | TwoWay
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+
+instance FromText TrustDirection where
+    parser = takeLowerText >>= \case
+        "one-way: incoming" -> pure OneWayIncoming
+        "one-way: outgoing" -> pure OneWayOutgoing
+        "two-way" -> pure TwoWay
+        e -> fromTextError $ "Failure parsing TrustDirection from value: '" <> e
+           <> "'. Accepted values: One-Way: Incoming, One-Way: Outgoing, Two-Way"
+
+instance ToText TrustDirection where
+    toText = \case
+        OneWayIncoming -> "One-Way: Incoming"
+        OneWayOutgoing -> "One-Way: Outgoing"
+        TwoWay -> "Two-Way"
+
+instance Hashable     TrustDirection
+instance ToByteString TrustDirection
+instance ToQuery      TrustDirection
+instance ToHeader     TrustDirection
+
+instance ToJSON TrustDirection where
+    toJSON = toJSONText
+
+instance FromJSON TrustDirection where
+    parseJSON = parseJSONText "TrustDirection"
+
+data TrustState
+    = TSCreated
+    | TSCreating
+    | TSDeleted
+    | TSDeleting
+    | TSFailed
+    | TSVerified
+    | TSVerifyFailed
+    | TSVerifying
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+
+instance FromText TrustState where
+    parser = takeLowerText >>= \case
+        "created" -> pure TSCreated
+        "creating" -> pure TSCreating
+        "deleted" -> pure TSDeleted
+        "deleting" -> pure TSDeleting
+        "failed" -> pure TSFailed
+        "verified" -> pure TSVerified
+        "verifyfailed" -> pure TSVerifyFailed
+        "verifying" -> pure TSVerifying
+        e -> fromTextError $ "Failure parsing TrustState from value: '" <> e
+           <> "'. Accepted values: Created, Creating, Deleted, Deleting, Failed, Verified, VerifyFailed, Verifying"
+
+instance ToText TrustState where
+    toText = \case
+        TSCreated -> "Created"
+        TSCreating -> "Creating"
+        TSDeleted -> "Deleted"
+        TSDeleting -> "Deleting"
+        TSFailed -> "Failed"
+        TSVerified -> "Verified"
+        TSVerifyFailed -> "VerifyFailed"
+        TSVerifying -> "Verifying"
+
+instance Hashable     TrustState
+instance ToByteString TrustState
+instance ToQuery      TrustState
+instance ToHeader     TrustState
+
+instance FromJSON TrustState where
+    parseJSON = parseJSONText "TrustState"
+
+data TrustType =
+    Forest
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+
+instance FromText TrustType where
+    parser = takeLowerText >>= \case
+        "forest" -> pure Forest
+        e -> fromTextError $ "Failure parsing TrustType from value: '" <> e
+           <> "'. Accepted values: Forest"
+
+instance ToText TrustType where
+    toText = \case
+        Forest -> "Forest"
+
+instance Hashable     TrustType
+instance ToByteString TrustType
+instance ToQuery      TrustType
+instance ToHeader     TrustType
+
+instance ToJSON TrustType where
+    toJSON = toJSONText
+
+instance FromJSON TrustType where
+    parseJSON = parseJSONText "TrustType"
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
@@ -40,6 +40,7 @@
 
 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
@@ -69,8 +70,8 @@
     , _urRadiusSettings = pRadiusSettings_
     }
 
--- | The identifier of the directory to update the RADIUS server information
--- for.
+-- | The identifier of the directory for which to update the RADIUS server
+-- information.
 urDirectoryId :: Lens' UpdateRadius Text
 urDirectoryId = lens _urDirectoryId (\ s a -> s{_urDirectoryId = a});
 
diff --git a/gen/Network/AWS/DirectoryService/VerifyTrust.hs b/gen/Network/AWS/DirectoryService/VerifyTrust.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/DirectoryService/VerifyTrust.hs
@@ -0,0 +1,133 @@
+{-# 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.VerifyTrust
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- AWS Directory Service for Microsoft Active Directory allows you to
+-- configure and verify trust relationships.
+--
+-- 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
+      verifyTrust
+    , VerifyTrust
+    -- * Request Lenses
+    , vtTrustId
+
+    -- * Destructuring the Response
+    , verifyTrustResponse
+    , VerifyTrustResponse
+    -- * Response Lenses
+    , vtrsTrustId
+    , vtrsResponseStatus
+    ) 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
+
+-- | Initiates the verification of an existing trust relationship between a
+-- Microsoft AD in the AWS cloud and an external domain.
+--
+-- /See:/ 'verifyTrust' smart constructor.
+newtype VerifyTrust = VerifyTrust'
+    { _vtTrustId :: Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'VerifyTrust' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'vtTrustId'
+verifyTrust
+    :: Text -- ^ 'vtTrustId'
+    -> VerifyTrust
+verifyTrust pTrustId_ =
+    VerifyTrust'
+    { _vtTrustId = pTrustId_
+    }
+
+-- | The unique Trust ID of the trust relationship to verify.
+vtTrustId :: Lens' VerifyTrust Text
+vtTrustId = lens _vtTrustId (\ s a -> s{_vtTrustId = a});
+
+instance AWSRequest VerifyTrust where
+        type Rs VerifyTrust = VerifyTrustResponse
+        request = postJSON directoryService
+        response
+          = receiveJSON
+              (\ s h x ->
+                 VerifyTrustResponse' <$>
+                   (x .?> "TrustId") <*> (pure (fromEnum s)))
+
+instance ToHeaders VerifyTrust where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("DirectoryService_20150416.VerifyTrust" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON VerifyTrust where
+        toJSON VerifyTrust'{..}
+          = object (catMaybes [Just ("TrustId" .= _vtTrustId)])
+
+instance ToPath VerifyTrust where
+        toPath = const "/"
+
+instance ToQuery VerifyTrust where
+        toQuery = const mempty
+
+-- | /See:/ 'verifyTrustResponse' smart constructor.
+data VerifyTrustResponse = VerifyTrustResponse'
+    { _vtrsTrustId        :: !(Maybe Text)
+    , _vtrsResponseStatus :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'VerifyTrustResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'vtrsTrustId'
+--
+-- * 'vtrsResponseStatus'
+verifyTrustResponse
+    :: Int -- ^ 'vtrsResponseStatus'
+    -> VerifyTrustResponse
+verifyTrustResponse pResponseStatus_ =
+    VerifyTrustResponse'
+    { _vtrsTrustId = Nothing
+    , _vtrsResponseStatus = pResponseStatus_
+    }
+
+-- | The unique Trust ID of the trust relationship that was verified.
+vtrsTrustId :: Lens' VerifyTrustResponse (Maybe Text)
+vtrsTrustId = lens _vtrsTrustId (\ s a -> s{_vtrsTrustId = a});
+
+-- | The response status code.
+vtrsResponseStatus :: Lens' VerifyTrustResponse Int
+vtrsResponseStatus = lens _vtrsResponseStatus (\ s a -> s{_vtrsResponseStatus = a});
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
@@ -16,5 +16,6 @@
 module Network.AWS.DirectoryService.Waiters where
 
 import           Network.AWS.DirectoryService.Types
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Waiter
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
@@ -40,6 +40,15 @@
 --         , testDescribeDirectories $
 --             describeDirectories
 --
+--         , testDescribeTrusts $
+--             describeTrusts
+--
+--         , testDeleteTrust $
+--             deleteTrust
+--
+--         , testCreateMicrosoftAD $
+--             createMicrosoftAD
+--
 --         , testCreateDirectory $
 --             createDirectory
 --
@@ -61,6 +70,9 @@
 --         , testDeleteSnapshot $
 --             deleteSnapshot
 --
+--         , testCreateTrust $
+--             createTrust
+--
 --         , testDeleteDirectory $
 --             deleteDirectory
 --
@@ -73,6 +85,9 @@
 --         , testDisableSSO $
 --             disableSSO
 --
+--         , testVerifyTrust $
+--             verifyTrust
+--
 --         , testGetDirectoryLimits $
 --             getDirectoryLimits
 --
@@ -94,6 +109,15 @@
 --         , testDescribeDirectoriesResponse $
 --             describeDirectoriesResponse
 --
+--         , testDescribeTrustsResponse $
+--             describeTrustsResponse
+--
+--         , testDeleteTrustResponse $
+--             deleteTrustResponse
+--
+--         , testCreateMicrosoftADResponse $
+--             createMicrosoftADResponse
+--
 --         , testCreateDirectoryResponse $
 --             createDirectoryResponse
 --
@@ -115,6 +139,9 @@
 --         , testDeleteSnapshotResponse $
 --             deleteSnapshotResponse
 --
+--         , testCreateTrustResponse $
+--             createTrustResponse
+--
 --         , testDeleteDirectoryResponse $
 --             deleteDirectoryResponse
 --
@@ -127,6 +154,9 @@
 --         , testDisableSSOResponse $
 --             disableSSOResponse
 --
+--         , testVerifyTrustResponse $
+--             verifyTrustResponse
+--
 --         , testGetDirectoryLimitsResponse $
 --             getDirectoryLimitsResponse
 --
@@ -158,6 +188,21 @@
     "DescribeDirectories"
     "fixture/DescribeDirectories.yaml"
 
+testDescribeTrusts :: DescribeTrusts -> TestTree
+testDescribeTrusts = req
+    "DescribeTrusts"
+    "fixture/DescribeTrusts.yaml"
+
+testDeleteTrust :: DeleteTrust -> TestTree
+testDeleteTrust = req
+    "DeleteTrust"
+    "fixture/DeleteTrust.yaml"
+
+testCreateMicrosoftAD :: CreateMicrosoftAD -> TestTree
+testCreateMicrosoftAD = req
+    "CreateMicrosoftAD"
+    "fixture/CreateMicrosoftAD.yaml"
+
 testCreateDirectory :: CreateDirectory -> TestTree
 testCreateDirectory = req
     "CreateDirectory"
@@ -193,6 +238,11 @@
     "DeleteSnapshot"
     "fixture/DeleteSnapshot.yaml"
 
+testCreateTrust :: CreateTrust -> TestTree
+testCreateTrust = req
+    "CreateTrust"
+    "fixture/CreateTrust.yaml"
+
 testDeleteDirectory :: DeleteDirectory -> TestTree
 testDeleteDirectory = req
     "DeleteDirectory"
@@ -213,6 +263,11 @@
     "DisableSSO"
     "fixture/DisableSSO.yaml"
 
+testVerifyTrust :: VerifyTrust -> TestTree
+testVerifyTrust = req
+    "VerifyTrust"
+    "fixture/VerifyTrust.yaml"
+
 testGetDirectoryLimits :: GetDirectoryLimits -> TestTree
 testGetDirectoryLimits = req
     "GetDirectoryLimits"
@@ -253,6 +308,27 @@
     directoryService
     (Proxy :: Proxy DescribeDirectories)
 
+testDescribeTrustsResponse :: DescribeTrustsResponse -> TestTree
+testDescribeTrustsResponse = res
+    "DescribeTrustsResponse"
+    "fixture/DescribeTrustsResponse.proto"
+    directoryService
+    (Proxy :: Proxy DescribeTrusts)
+
+testDeleteTrustResponse :: DeleteTrustResponse -> TestTree
+testDeleteTrustResponse = res
+    "DeleteTrustResponse"
+    "fixture/DeleteTrustResponse.proto"
+    directoryService
+    (Proxy :: Proxy DeleteTrust)
+
+testCreateMicrosoftADResponse :: CreateMicrosoftADResponse -> TestTree
+testCreateMicrosoftADResponse = res
+    "CreateMicrosoftADResponse"
+    "fixture/CreateMicrosoftADResponse.proto"
+    directoryService
+    (Proxy :: Proxy CreateMicrosoftAD)
+
 testCreateDirectoryResponse :: CreateDirectoryResponse -> TestTree
 testCreateDirectoryResponse = res
     "CreateDirectoryResponse"
@@ -302,6 +378,13 @@
     directoryService
     (Proxy :: Proxy DeleteSnapshot)
 
+testCreateTrustResponse :: CreateTrustResponse -> TestTree
+testCreateTrustResponse = res
+    "CreateTrustResponse"
+    "fixture/CreateTrustResponse.proto"
+    directoryService
+    (Proxy :: Proxy CreateTrust)
+
 testDeleteDirectoryResponse :: DeleteDirectoryResponse -> TestTree
 testDeleteDirectoryResponse = res
     "DeleteDirectoryResponse"
@@ -329,6 +412,13 @@
     "fixture/DisableSSOResponse.proto"
     directoryService
     (Proxy :: Proxy DisableSSO)
+
+testVerifyTrustResponse :: VerifyTrustResponse -> TestTree
+testVerifyTrustResponse = res
+    "VerifyTrustResponse"
+    "fixture/VerifyTrustResponse.proto"
+    directoryService
+    (Proxy :: Proxy VerifyTrust)
 
 testGetDirectoryLimitsResponse :: GetDirectoryLimitsResponse -> TestTree
 testGetDirectoryLimitsResponse = res
