diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`1.4.5`
+`1.5.0`
 
 
 ## Description
diff --git a/amazonka-codecommit.cabal b/amazonka-codecommit.cabal
--- a/amazonka-codecommit.cabal
+++ b/amazonka-codecommit.cabal
@@ -1,13 +1,13 @@
 name:                  amazonka-codecommit
-version:               1.4.5
+version:               1.5.0
 synopsis:              Amazon CodeCommit SDK.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
-license:               OtherLicense
+license:               MPL-2.0
 license-file:          LICENSE
 author:                Brendan Hay
-maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
-copyright:             Copyright (c) 2013-2016 Brendan Hay
+maintainer:            Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+copyright:             Copyright (c) 2013-2017 Brendan Hay
 category:              Network, AWS, Cloud, Distributed Computing
 build-type:            Simple
 cabal-version:         >= 1.10
@@ -29,23 +29,31 @@
     to get started.
 
 source-repository head
-    type:     git
-    location: git://github.com/brendanhay/amazonka.git
+    type:              git
+    location:          git://github.com/brendanhay/amazonka.git
+    subdir:            amazonka-codecommit
 
 library
     default-language:  Haskell2010
     hs-source-dirs:    src gen
 
-    ghc-options:       -Wall
+    ghc-options:
+        -Wall
+        -fwarn-incomplete-uni-patterns
+        -fwarn-incomplete-record-updates
+        -funbox-strict-fields
 
     exposed-modules:
           Network.AWS.CodeCommit
         , Network.AWS.CodeCommit.BatchGetRepositories
         , Network.AWS.CodeCommit.CreateBranch
         , Network.AWS.CodeCommit.CreateRepository
+        , Network.AWS.CodeCommit.DeleteBranch
         , Network.AWS.CodeCommit.DeleteRepository
+        , Network.AWS.CodeCommit.GetBlob
         , Network.AWS.CodeCommit.GetBranch
         , Network.AWS.CodeCommit.GetCommit
+        , Network.AWS.CodeCommit.GetDifferences
         , Network.AWS.CodeCommit.GetRepository
         , Network.AWS.CodeCommit.GetRepositoryTriggers
         , Network.AWS.CodeCommit.ListBranches
@@ -63,7 +71,7 @@
         , Network.AWS.CodeCommit.Types.Sum
 
     build-depends:
-          amazonka-core == 1.4.5.*
+          amazonka-core == 1.5.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-codecommit-test
@@ -83,9 +91,9 @@
         , Test.AWS.CodeCommit.Internal
 
     build-depends:
-          amazonka-core == 1.4.5.*
-        , amazonka-test == 1.4.5.*
-        , amazonka-codecommit == 1.4.5.*
+          amazonka-core == 1.5.0.*
+        , amazonka-test == 1.5.0.*
+        , amazonka-codecommit
         , base
         , bytestring
         , tasty
diff --git a/fixture/DeleteBranch.yaml b/fixture/DeleteBranch.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteBranch.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/DeleteBranchResponse.proto b/fixture/DeleteBranchResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteBranchResponse.proto
diff --git a/fixture/GetBlob.yaml b/fixture/GetBlob.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetBlob.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/GetBlobResponse.proto b/fixture/GetBlobResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetBlobResponse.proto
diff --git a/fixture/GetDifferences.yaml b/fixture/GetDifferences.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetDifferences.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/GetDifferencesResponse.proto b/fixture/GetDifferencesResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetDifferencesResponse.proto
diff --git a/gen/Network/AWS/CodeCommit.hs b/gen/Network/AWS/CodeCommit.hs
--- a/gen/Network/AWS/CodeCommit.hs
+++ b/gen/Network/AWS/CodeCommit.hs
@@ -5,28 +5,70 @@
 
 -- |
 -- Module      : Network.AWS.CodeCommit
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- __AWS CodeCommit__
 --
--- This is the /AWS CodeCommit API Reference/ . This reference provides descriptions of the operations and data types for AWS CodeCommit API.
+-- This is the /AWS CodeCommit API Reference/ . This reference provides descriptions of the operations and data types for AWS CodeCommit API along with usage examples.
 --
 -- You can use the AWS CodeCommit API to work with the following objects:
 --
---     * Repositories, by calling the following:     * 'BatchGetRepositories' , which returns information about one or more repositories associated with your AWS account    * 'CreateRepository' , which creates an AWS CodeCommit repository    * 'DeleteRepository' , which deletes an AWS CodeCommit repository    * 'GetRepository' , which returns information about a specified repository    * 'ListRepositories' , which lists all AWS CodeCommit repositories associated with your AWS account    * 'UpdateRepositoryDescription' , which sets or updates the description of the repository    * 'UpdateRepositoryName' , which changes the name of the repository. If you change the name of a repository, no other users of that repository will be able to access it until you send them the new HTTPS or SSH URL to use.
+-- Repositories, by calling the following:
 --
---     * Branches, by calling the following:     * 'CreateBranch' , which creates a new branch in a specified repository    * 'GetBranch' , which returns information about a specified branch    * 'ListBranches' , which lists all branches for a specified repository    * 'UpdateDefaultBranch' , which changes the default branch for a repository
+--     * 'BatchGetRepositories' , which returns information about one or more repositories associated with your AWS account
 --
---     * Information about committed code in a repository, by calling the following:     * 'GetCommit' , which returns information about a commit, including commit messages and committer information.
+--     * 'CreateRepository' , which creates an AWS CodeCommit repository
 --
---     * Triggers, by calling the following:     * 'GetRepositoryTriggers' , which returns information about triggers configured for a repository    * 'PutRepositoryTriggers' , which replaces all triggers for a repository and can be used to create or delete triggers    * 'TestRepositoryTriggers' , which tests the functionality of a repository trigger by sending data to the trigger target
+--     * 'DeleteRepository' , which deletes an AWS CodeCommit repository
 --
+--     * 'GetRepository' , which returns information about a specified repository
 --
+--     * 'ListRepositories' , which lists all AWS CodeCommit repositories associated with your AWS account
 --
+--     * 'UpdateRepositoryDescription' , which sets or updates the description of the repository
+--
+--     * 'UpdateRepositoryName' , which changes the name of the repository. If you change the name of a repository, no other users of that repository will be able to access it until you send them the new HTTPS or SSH URL to use.
+--
+--
+--
+-- Branches, by calling the following:
+--
+--     * 'CreateBranch' , which creates a new branch in a specified repository
+--
+--     * 'DeleteBranch' , which deletes the specified branch in a repository unless it is the default branch
+--
+--     * 'GetBranch' , which returns information about a specified branch
+--
+--     * 'ListBranches' , which lists all branches for a specified repository
+--
+--     * 'UpdateDefaultBranch' , which changes the default branch for a repository
+--
+--
+--
+-- Information about committed code in a repository, by calling the following:
+--
+--     * 'GetBlob' , which returns the base-64 encoded content of an individual Git blob object within a repository
+--
+--     * 'GetCommit' , which returns information about a commit, including commit messages and author and committer information
+--
+--     * 'GetDifferences' , which returns information about the differences in a valid commit specifier (such as a branch, tag, HEAD, commit ID or other fully qualified reference)
+--
+--
+--
+-- Triggers, by calling the following:
+--
+--     * 'GetRepositoryTriggers' , which returns information about triggers configured for a repository
+--
+--     * 'PutRepositoryTriggers' , which replaces all triggers for a repository and can be used to create or delete triggers
+--
+--     * 'TestRepositoryTriggers' , which tests the functionality of a repository trigger by sending data to the trigger target
+--
+--
+--
 -- For information about how to use AWS CodeCommit, see the <http://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html AWS CodeCommit User Guide> .
 --
 module Network.AWS.CodeCommit
@@ -52,6 +94,9 @@
     -- ** InvalidRepositoryTriggerCustomDataException
     , _InvalidRepositoryTriggerCustomDataException
 
+    -- ** BlobIdDoesNotExistException
+    , _BlobIdDoesNotExistException
+
     -- ** MaximumRepositoryNamesExceededException
     , _MaximumRepositoryNamesExceededException
 
@@ -79,15 +124,27 @@
     -- ** InvalidRepositoryTriggerDestinationARNException
     , _InvalidRepositoryTriggerDestinationARNException
 
+    -- ** BlobIdRequiredException
+    , _BlobIdRequiredException
+
     -- ** RepositoryNamesRequiredException
     , _RepositoryNamesRequiredException
 
+    -- ** InvalidBlobIdException
+    , _InvalidBlobIdException
+
     -- ** InvalidOrderException
     , _InvalidOrderException
 
     -- ** BranchDoesNotExistException
     , _BranchDoesNotExistException
 
+    -- ** DefaultBranchCannotBeDeletedException
+    , _DefaultBranchCannotBeDeletedException
+
+    -- ** InvalidPathException
+    , _InvalidPathException
+
     -- ** RepositoryTriggerNameRequiredException
     , _RepositoryTriggerNameRequiredException
 
@@ -97,6 +154,9 @@
     -- ** MaximumBranchesExceededException
     , _MaximumBranchesExceededException
 
+    -- ** PathDoesNotExistException
+    , _PathDoesNotExistException
+
     -- ** EncryptionIntegrityChecksFailedException
     , _EncryptionIntegrityChecksFailedException
 
@@ -109,12 +169,18 @@
     -- ** BranchNameExistsException
     , _BranchNameExistsException
 
+    -- ** InvalidCommitException
+    , _InvalidCommitException
+
     -- ** InvalidSortByException
     , _InvalidSortByException
 
     -- ** EncryptionKeyDisabledException
     , _EncryptionKeyDisabledException
 
+    -- ** CommitRequiredException
+    , _CommitRequiredException
+
     -- ** CommitIdRequiredException
     , _CommitIdRequiredException
 
@@ -130,6 +196,12 @@
     -- ** RepositoryTriggerBranchNameListRequiredException
     , _RepositoryTriggerBranchNameListRequiredException
 
+    -- ** InvalidMaxResultsException
+    , _InvalidMaxResultsException
+
+    -- ** FileTooLargeException
+    , _FileTooLargeException
+
     -- ** CommitIdDoesNotExistException
     , _CommitIdDoesNotExistException
 
@@ -163,6 +235,12 @@
     -- ** GetBranch
     , module Network.AWS.CodeCommit.GetBranch
 
+    -- ** GetDifferences
+    , module Network.AWS.CodeCommit.GetDifferences
+
+    -- ** DeleteBranch
+    , module Network.AWS.CodeCommit.DeleteBranch
+
     -- ** UpdateRepositoryDescription
     , module Network.AWS.CodeCommit.UpdateRepositoryDescription
 
@@ -190,6 +268,9 @@
     -- ** TestRepositoryTriggers
     , module Network.AWS.CodeCommit.TestRepositoryTriggers
 
+    -- ** GetBlob
+    , module Network.AWS.CodeCommit.GetBlob
+
     -- ** PutRepositoryTriggers
     , module Network.AWS.CodeCommit.PutRepositoryTriggers
 
@@ -201,6 +282,9 @@
 
     -- * Types
 
+    -- ** ChangeTypeEnum
+    , ChangeTypeEnum (..)
+
     -- ** OrderEnum
     , OrderEnum (..)
 
@@ -210,6 +294,13 @@
     -- ** SortByEnum
     , SortByEnum (..)
 
+    -- ** BlobMetadata
+    , BlobMetadata
+    , blobMetadata
+    , bmPath
+    , bmMode
+    , bmBlobId
+
     -- ** BranchInfo
     , BranchInfo
     , branchInfo
@@ -219,6 +310,7 @@
     -- ** Commit
     , Commit
     , commit
+    , cCommitId
     , cCommitter
     , cTreeId
     , cAdditionalData
@@ -226,6 +318,13 @@
     , cAuthor
     , cMessage
 
+    -- ** Difference
+    , Difference
+    , difference
+    , dAfterBlob
+    , dBeforeBlob
+    , dChangeType
+
     -- ** RepositoryMetadata
     , RepositoryMetadata
     , repositoryMetadata
@@ -251,8 +350,8 @@
     , repositoryTrigger
     , rtBranches
     , rtCustomData
-    , rtDestinationARN
     , rtName
+    , rtDestinationARN
     , rtEvents
 
     -- ** RepositoryTriggerExecutionFailure
@@ -269,23 +368,26 @@
     , uiName
     ) where
 
-import           Network.AWS.CodeCommit.BatchGetRepositories
-import           Network.AWS.CodeCommit.CreateBranch
-import           Network.AWS.CodeCommit.CreateRepository
-import           Network.AWS.CodeCommit.DeleteRepository
-import           Network.AWS.CodeCommit.GetBranch
-import           Network.AWS.CodeCommit.GetCommit
-import           Network.AWS.CodeCommit.GetRepository
-import           Network.AWS.CodeCommit.GetRepositoryTriggers
-import           Network.AWS.CodeCommit.ListBranches
-import           Network.AWS.CodeCommit.ListRepositories
-import           Network.AWS.CodeCommit.PutRepositoryTriggers
-import           Network.AWS.CodeCommit.TestRepositoryTriggers
-import           Network.AWS.CodeCommit.Types
-import           Network.AWS.CodeCommit.UpdateDefaultBranch
-import           Network.AWS.CodeCommit.UpdateRepositoryDescription
-import           Network.AWS.CodeCommit.UpdateRepositoryName
-import           Network.AWS.CodeCommit.Waiters
+import Network.AWS.CodeCommit.BatchGetRepositories
+import Network.AWS.CodeCommit.CreateBranch
+import Network.AWS.CodeCommit.CreateRepository
+import Network.AWS.CodeCommit.DeleteBranch
+import Network.AWS.CodeCommit.DeleteRepository
+import Network.AWS.CodeCommit.GetBlob
+import Network.AWS.CodeCommit.GetBranch
+import Network.AWS.CodeCommit.GetCommit
+import Network.AWS.CodeCommit.GetDifferences
+import Network.AWS.CodeCommit.GetRepository
+import Network.AWS.CodeCommit.GetRepositoryTriggers
+import Network.AWS.CodeCommit.ListBranches
+import Network.AWS.CodeCommit.ListRepositories
+import Network.AWS.CodeCommit.PutRepositoryTriggers
+import Network.AWS.CodeCommit.TestRepositoryTriggers
+import Network.AWS.CodeCommit.Types
+import Network.AWS.CodeCommit.UpdateDefaultBranch
+import Network.AWS.CodeCommit.UpdateRepositoryDescription
+import Network.AWS.CodeCommit.UpdateRepositoryName
+import Network.AWS.CodeCommit.Waiters
 
 {- $errors
 Error matchers are designed for use with the functions provided by
diff --git a/gen/Network/AWS/CodeCommit/BatchGetRepositories.hs b/gen/Network/AWS/CodeCommit/BatchGetRepositories.hs
--- a/gen/Network/AWS/CodeCommit/BatchGetRepositories.hs
+++ b/gen/Network/AWS/CodeCommit/BatchGetRepositories.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeCommit.BatchGetRepositories
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -38,12 +38,12 @@
     , bgrrsResponseStatus
     ) where
 
-import           Network.AWS.CodeCommit.Types
-import           Network.AWS.CodeCommit.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeCommit.Types
+import Network.AWS.CodeCommit.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | Represents the input of a batch get repositories operation.
 --
@@ -51,9 +51,10 @@
 --
 -- /See:/ 'batchGetRepositories' smart constructor.
 newtype BatchGetRepositories = BatchGetRepositories'
-    { _bgrRepositoryNames :: [Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _bgrRepositoryNames :: [Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'BatchGetRepositories' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -61,11 +62,9 @@
 -- * 'bgrRepositoryNames' - The names of the repositories to get information about.
 batchGetRepositories
     :: BatchGetRepositories
-batchGetRepositories =
-    BatchGetRepositories'
-    { _bgrRepositoryNames = mempty
-    }
+batchGetRepositories = BatchGetRepositories' {_bgrRepositoryNames = mempty}
 
+
 -- | The names of the repositories to get information about.
 bgrRepositoryNames :: Lens' BatchGetRepositories [Text]
 bgrRepositoryNames = lens _bgrRepositoryNames (\ s a -> s{_bgrRepositoryNames = a}) . _Coerce;
@@ -82,9 +81,9 @@
                      (x .?> "repositoriesNotFound" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
-instance Hashable BatchGetRepositories
+instance Hashable BatchGetRepositories where
 
-instance NFData BatchGetRepositories
+instance NFData BatchGetRepositories where
 
 instance ToHeaders BatchGetRepositories where
         toHeaders
@@ -114,11 +113,12 @@
 --
 -- /See:/ 'batchGetRepositoriesResponse' smart constructor.
 data BatchGetRepositoriesResponse = BatchGetRepositoriesResponse'
-    { _bgrrsRepositories         :: !(Maybe [RepositoryMetadata])
-    , _bgrrsRepositoriesNotFound :: !(Maybe [Text])
-    , _bgrrsResponseStatus       :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _bgrrsRepositories         :: !(Maybe [RepositoryMetadata])
+  , _bgrrsRepositoriesNotFound :: !(Maybe [Text])
+  , _bgrrsResponseStatus       :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'BatchGetRepositoriesResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -132,12 +132,13 @@
     :: Int -- ^ 'bgrrsResponseStatus'
     -> BatchGetRepositoriesResponse
 batchGetRepositoriesResponse pResponseStatus_ =
-    BatchGetRepositoriesResponse'
-    { _bgrrsRepositories = Nothing
-    , _bgrrsRepositoriesNotFound = Nothing
-    , _bgrrsResponseStatus = pResponseStatus_
-    }
+  BatchGetRepositoriesResponse'
+  { _bgrrsRepositories = Nothing
+  , _bgrrsRepositoriesNotFound = Nothing
+  , _bgrrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | A list of repositories returned by the batch get repositories operation.
 bgrrsRepositories :: Lens' BatchGetRepositoriesResponse [RepositoryMetadata]
 bgrrsRepositories = lens _bgrrsRepositories (\ s a -> s{_bgrrsRepositories = a}) . _Default . _Coerce;
@@ -150,4 +151,4 @@
 bgrrsResponseStatus :: Lens' BatchGetRepositoriesResponse Int
 bgrrsResponseStatus = lens _bgrrsResponseStatus (\ s a -> s{_bgrrsResponseStatus = a});
 
-instance NFData BatchGetRepositoriesResponse
+instance NFData BatchGetRepositoriesResponse where
diff --git a/gen/Network/AWS/CodeCommit/CreateBranch.hs b/gen/Network/AWS/CodeCommit/CreateBranch.hs
--- a/gen/Network/AWS/CodeCommit/CreateBranch.hs
+++ b/gen/Network/AWS/CodeCommit/CreateBranch.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeCommit.CreateBranch
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -36,12 +36,12 @@
     , CreateBranchResponse
     ) where
 
-import           Network.AWS.CodeCommit.Types
-import           Network.AWS.CodeCommit.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeCommit.Types
+import Network.AWS.CodeCommit.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | Represents the input of a create branch operation.
 --
@@ -49,11 +49,12 @@
 --
 -- /See:/ 'createBranch' smart constructor.
 data CreateBranch = CreateBranch'
-    { _cbRepositoryName :: !Text
-    , _cbBranchName     :: !Text
-    , _cbCommitId       :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cbRepositoryName :: !Text
+  , _cbBranchName     :: !Text
+  , _cbCommitId       :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateBranch' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -69,12 +70,13 @@
     -> Text -- ^ 'cbCommitId'
     -> CreateBranch
 createBranch pRepositoryName_ pBranchName_ pCommitId_ =
-    CreateBranch'
-    { _cbRepositoryName = pRepositoryName_
-    , _cbBranchName = pBranchName_
-    , _cbCommitId = pCommitId_
-    }
+  CreateBranch'
+  { _cbRepositoryName = pRepositoryName_
+  , _cbBranchName = pBranchName_
+  , _cbCommitId = pCommitId_
+  }
 
+
 -- | The name of the repository in which you want to create the new branch.
 cbRepositoryName :: Lens' CreateBranch Text
 cbRepositoryName = lens _cbRepositoryName (\ s a -> s{_cbRepositoryName = a});
@@ -92,9 +94,9 @@
         request = postJSON codeCommit
         response = receiveNull CreateBranchResponse'
 
-instance Hashable CreateBranch
+instance Hashable CreateBranch where
 
-instance NFData CreateBranch
+instance NFData CreateBranch where
 
 instance ToHeaders CreateBranch where
         toHeaders
@@ -121,13 +123,15 @@
 
 -- | /See:/ 'createBranchResponse' smart constructor.
 data CreateBranchResponse =
-    CreateBranchResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  CreateBranchResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateBranchResponse' with the minimum fields required to make a request.
 --
 createBranchResponse
     :: CreateBranchResponse
 createBranchResponse = CreateBranchResponse'
 
-instance NFData CreateBranchResponse
+
+instance NFData CreateBranchResponse where
diff --git a/gen/Network/AWS/CodeCommit/CreateRepository.hs b/gen/Network/AWS/CodeCommit/CreateRepository.hs
--- a/gen/Network/AWS/CodeCommit/CreateRepository.hs
+++ b/gen/Network/AWS/CodeCommit/CreateRepository.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeCommit.CreateRepository
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -38,12 +38,12 @@
     , crrsResponseStatus
     ) where
 
-import           Network.AWS.CodeCommit.Types
-import           Network.AWS.CodeCommit.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeCommit.Types
+import Network.AWS.CodeCommit.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | Represents the input of a create repository operation.
 --
@@ -51,10 +51,11 @@
 --
 -- /See:/ 'createRepository' smart constructor.
 data CreateRepository = CreateRepository'
-    { _crRepositoryDescription :: !(Maybe Text)
-    , _crRepositoryName        :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _crRepositoryDescription :: !(Maybe Text)
+  , _crRepositoryName        :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateRepository' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -66,11 +67,10 @@
     :: Text -- ^ 'crRepositoryName'
     -> CreateRepository
 createRepository pRepositoryName_ =
-    CreateRepository'
-    { _crRepositoryDescription = Nothing
-    , _crRepositoryName = pRepositoryName_
-    }
+  CreateRepository'
+  {_crRepositoryDescription = Nothing, _crRepositoryName = pRepositoryName_}
 
+
 -- | A comment or description about the new repository.
 crRepositoryDescription :: Lens' CreateRepository (Maybe Text)
 crRepositoryDescription = lens _crRepositoryDescription (\ s a -> s{_crRepositoryDescription = a});
@@ -88,9 +88,9 @@
                  CreateRepositoryResponse' <$>
                    (x .?> "repositoryMetadata") <*> (pure (fromEnum s)))
 
-instance Hashable CreateRepository
+instance Hashable CreateRepository where
 
-instance NFData CreateRepository
+instance NFData CreateRepository where
 
 instance ToHeaders CreateRepository where
         toHeaders
@@ -122,10 +122,11 @@
 --
 -- /See:/ 'createRepositoryResponse' smart constructor.
 data CreateRepositoryResponse = CreateRepositoryResponse'
-    { _crrsRepositoryMetadata :: !(Maybe RepositoryMetadata)
-    , _crrsResponseStatus     :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _crrsRepositoryMetadata :: !(Maybe RepositoryMetadata)
+  , _crrsResponseStatus     :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateRepositoryResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -137,11 +138,10 @@
     :: Int -- ^ 'crrsResponseStatus'
     -> CreateRepositoryResponse
 createRepositoryResponse pResponseStatus_ =
-    CreateRepositoryResponse'
-    { _crrsRepositoryMetadata = Nothing
-    , _crrsResponseStatus = pResponseStatus_
-    }
+  CreateRepositoryResponse'
+  {_crrsRepositoryMetadata = Nothing, _crrsResponseStatus = pResponseStatus_}
 
+
 -- | Information about the newly created repository.
 crrsRepositoryMetadata :: Lens' CreateRepositoryResponse (Maybe RepositoryMetadata)
 crrsRepositoryMetadata = lens _crrsRepositoryMetadata (\ s a -> s{_crrsRepositoryMetadata = a});
@@ -150,4 +150,4 @@
 crrsResponseStatus :: Lens' CreateRepositoryResponse Int
 crrsResponseStatus = lens _crrsResponseStatus (\ s a -> s{_crrsResponseStatus = a});
 
-instance NFData CreateRepositoryResponse
+instance NFData CreateRepositoryResponse where
diff --git a/gen/Network/AWS/CodeCommit/DeleteBranch.hs b/gen/Network/AWS/CodeCommit/DeleteBranch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/CodeCommit/DeleteBranch.hs
@@ -0,0 +1,152 @@
+{-# 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.CodeCommit.DeleteBranch
+-- Copyright   : (c) 2013-2017 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a branch from a repository, unless that branch is the default branch for the repository.
+--
+--
+module Network.AWS.CodeCommit.DeleteBranch
+    (
+    -- * Creating a Request
+      deleteBranch
+    , DeleteBranch
+    -- * Request Lenses
+    , dbRepositoryName
+    , dbBranchName
+
+    -- * Destructuring the Response
+    , deleteBranchResponse
+    , DeleteBranchResponse
+    -- * Response Lenses
+    , dbrsDeletedBranch
+    , dbrsResponseStatus
+    ) where
+
+import Network.AWS.CodeCommit.Types
+import Network.AWS.CodeCommit.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | Represents the input of a delete branch operation.
+--
+--
+--
+-- /See:/ 'deleteBranch' smart constructor.
+data DeleteBranch = DeleteBranch'
+  { _dbRepositoryName :: !Text
+  , _dbBranchName     :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DeleteBranch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dbRepositoryName' - The name of the repository that contains the branch to be deleted.
+--
+-- * 'dbBranchName' - The name of the branch to delete.
+deleteBranch
+    :: Text -- ^ 'dbRepositoryName'
+    -> Text -- ^ 'dbBranchName'
+    -> DeleteBranch
+deleteBranch pRepositoryName_ pBranchName_ =
+  DeleteBranch'
+  {_dbRepositoryName = pRepositoryName_, _dbBranchName = pBranchName_}
+
+
+-- | The name of the repository that contains the branch to be deleted.
+dbRepositoryName :: Lens' DeleteBranch Text
+dbRepositoryName = lens _dbRepositoryName (\ s a -> s{_dbRepositoryName = a});
+
+-- | The name of the branch to delete.
+dbBranchName :: Lens' DeleteBranch Text
+dbBranchName = lens _dbBranchName (\ s a -> s{_dbBranchName = a});
+
+instance AWSRequest DeleteBranch where
+        type Rs DeleteBranch = DeleteBranchResponse
+        request = postJSON codeCommit
+        response
+          = receiveJSON
+              (\ s h x ->
+                 DeleteBranchResponse' <$>
+                   (x .?> "deletedBranch") <*> (pure (fromEnum s)))
+
+instance Hashable DeleteBranch where
+
+instance NFData DeleteBranch where
+
+instance ToHeaders DeleteBranch where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeCommit_20150413.DeleteBranch" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DeleteBranch where
+        toJSON DeleteBranch'{..}
+          = object
+              (catMaybes
+                 [Just ("repositoryName" .= _dbRepositoryName),
+                  Just ("branchName" .= _dbBranchName)])
+
+instance ToPath DeleteBranch where
+        toPath = const "/"
+
+instance ToQuery DeleteBranch where
+        toQuery = const mempty
+
+-- | Represents the output of a delete branch operation.
+--
+--
+--
+-- /See:/ 'deleteBranchResponse' smart constructor.
+data DeleteBranchResponse = DeleteBranchResponse'
+  { _dbrsDeletedBranch  :: !(Maybe BranchInfo)
+  , _dbrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DeleteBranchResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dbrsDeletedBranch' - Information about the branch deleted by the operation, including the branch name and the commit ID that was the tip of the branch.
+--
+-- * 'dbrsResponseStatus' - -- | The response status code.
+deleteBranchResponse
+    :: Int -- ^ 'dbrsResponseStatus'
+    -> DeleteBranchResponse
+deleteBranchResponse pResponseStatus_ =
+  DeleteBranchResponse'
+  {_dbrsDeletedBranch = Nothing, _dbrsResponseStatus = pResponseStatus_}
+
+
+-- | Information about the branch deleted by the operation, including the branch name and the commit ID that was the tip of the branch.
+dbrsDeletedBranch :: Lens' DeleteBranchResponse (Maybe BranchInfo)
+dbrsDeletedBranch = lens _dbrsDeletedBranch (\ s a -> s{_dbrsDeletedBranch = a});
+
+-- | -- | The response status code.
+dbrsResponseStatus :: Lens' DeleteBranchResponse Int
+dbrsResponseStatus = lens _dbrsResponseStatus (\ s a -> s{_dbrsResponseStatus = a});
+
+instance NFData DeleteBranchResponse where
diff --git a/gen/Network/AWS/CodeCommit/DeleteRepository.hs b/gen/Network/AWS/CodeCommit/DeleteRepository.hs
--- a/gen/Network/AWS/CodeCommit/DeleteRepository.hs
+++ b/gen/Network/AWS/CodeCommit/DeleteRepository.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeCommit.DeleteRepository
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -22,6 +22,7 @@
 --
 --
 -- /Important:/ Deleting a repository also deletes all associated objects and metadata. After a repository is deleted, all future push calls to the deleted repository will fail.
+--
 module Network.AWS.CodeCommit.DeleteRepository
     (
     -- * Creating a Request
@@ -38,12 +39,12 @@
     , drrsResponseStatus
     ) where
 
-import           Network.AWS.CodeCommit.Types
-import           Network.AWS.CodeCommit.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeCommit.Types
+import Network.AWS.CodeCommit.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | Represents the input of a delete repository operation.
 --
@@ -51,9 +52,10 @@
 --
 -- /See:/ 'deleteRepository' smart constructor.
 newtype DeleteRepository = DeleteRepository'
-    { _drRepositoryName :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _drRepositoryName :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteRepository' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -63,10 +65,9 @@
     :: Text -- ^ 'drRepositoryName'
     -> DeleteRepository
 deleteRepository pRepositoryName_ =
-    DeleteRepository'
-    { _drRepositoryName = pRepositoryName_
-    }
+  DeleteRepository' {_drRepositoryName = pRepositoryName_}
 
+
 -- | The name of the repository to delete.
 drRepositoryName :: Lens' DeleteRepository Text
 drRepositoryName = lens _drRepositoryName (\ s a -> s{_drRepositoryName = a});
@@ -80,9 +81,9 @@
                  DeleteRepositoryResponse' <$>
                    (x .?> "repositoryId") <*> (pure (fromEnum s)))
 
-instance Hashable DeleteRepository
+instance Hashable DeleteRepository where
 
-instance NFData DeleteRepository
+instance NFData DeleteRepository where
 
 instance ToHeaders DeleteRepository where
         toHeaders
@@ -112,10 +113,11 @@
 --
 -- /See:/ 'deleteRepositoryResponse' smart constructor.
 data DeleteRepositoryResponse = DeleteRepositoryResponse'
-    { _drrsRepositoryId   :: !(Maybe Text)
-    , _drrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _drrsRepositoryId   :: !(Maybe Text)
+  , _drrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteRepositoryResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -127,11 +129,10 @@
     :: Int -- ^ 'drrsResponseStatus'
     -> DeleteRepositoryResponse
 deleteRepositoryResponse pResponseStatus_ =
-    DeleteRepositoryResponse'
-    { _drrsRepositoryId = Nothing
-    , _drrsResponseStatus = pResponseStatus_
-    }
+  DeleteRepositoryResponse'
+  {_drrsRepositoryId = Nothing, _drrsResponseStatus = pResponseStatus_}
 
+
 -- | The ID of the repository that was deleted.
 drrsRepositoryId :: Lens' DeleteRepositoryResponse (Maybe Text)
 drrsRepositoryId = lens _drrsRepositoryId (\ s a -> s{_drrsRepositoryId = a});
@@ -140,4 +141,4 @@
 drrsResponseStatus :: Lens' DeleteRepositoryResponse Int
 drrsResponseStatus = lens _drrsResponseStatus (\ s a -> s{_drrsResponseStatus = a});
 
-instance NFData DeleteRepositoryResponse
+instance NFData DeleteRepositoryResponse where
diff --git a/gen/Network/AWS/CodeCommit/GetBlob.hs b/gen/Network/AWS/CodeCommit/GetBlob.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/CodeCommit/GetBlob.hs
@@ -0,0 +1,152 @@
+{-# 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.CodeCommit.GetBlob
+-- Copyright   : (c) 2013-2017 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the base-64 encoded content of an individual blob within a repository.
+--
+--
+module Network.AWS.CodeCommit.GetBlob
+    (
+    -- * Creating a Request
+      getBlob
+    , GetBlob
+    -- * Request Lenses
+    , gRepositoryName
+    , gBlobId
+
+    -- * Destructuring the Response
+    , getBlobResponse
+    , GetBlobResponse
+    -- * Response Lenses
+    , gbrsResponseStatus
+    , gbrsContent
+    ) where
+
+import Network.AWS.CodeCommit.Types
+import Network.AWS.CodeCommit.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | Represents the input of a get blob operation.
+--
+--
+--
+-- /See:/ 'getBlob' smart constructor.
+data GetBlob = GetBlob'
+  { _gRepositoryName :: !Text
+  , _gBlobId         :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GetBlob' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gRepositoryName' - The name of the repository that contains the blob.
+--
+-- * 'gBlobId' - The ID of the blob, which is its SHA-1 pointer.
+getBlob
+    :: Text -- ^ 'gRepositoryName'
+    -> Text -- ^ 'gBlobId'
+    -> GetBlob
+getBlob pRepositoryName_ pBlobId_ =
+  GetBlob' {_gRepositoryName = pRepositoryName_, _gBlobId = pBlobId_}
+
+
+-- | The name of the repository that contains the blob.
+gRepositoryName :: Lens' GetBlob Text
+gRepositoryName = lens _gRepositoryName (\ s a -> s{_gRepositoryName = a});
+
+-- | The ID of the blob, which is its SHA-1 pointer.
+gBlobId :: Lens' GetBlob Text
+gBlobId = lens _gBlobId (\ s a -> s{_gBlobId = a});
+
+instance AWSRequest GetBlob where
+        type Rs GetBlob = GetBlobResponse
+        request = postJSON codeCommit
+        response
+          = receiveJSON
+              (\ s h x ->
+                 GetBlobResponse' <$>
+                   (pure (fromEnum s)) <*> (x .:> "content"))
+
+instance Hashable GetBlob where
+
+instance NFData GetBlob where
+
+instance ToHeaders GetBlob where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeCommit_20150413.GetBlob" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON GetBlob where
+        toJSON GetBlob'{..}
+          = object
+              (catMaybes
+                 [Just ("repositoryName" .= _gRepositoryName),
+                  Just ("blobId" .= _gBlobId)])
+
+instance ToPath GetBlob where
+        toPath = const "/"
+
+instance ToQuery GetBlob where
+        toQuery = const mempty
+
+-- | Represents the output of a get blob operation.
+--
+--
+--
+-- /See:/ 'getBlobResponse' smart constructor.
+data GetBlobResponse = GetBlobResponse'
+  { _gbrsResponseStatus :: !Int
+  , _gbrsContent        :: !Base64
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GetBlobResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gbrsResponseStatus' - -- | The response status code.
+--
+-- * 'gbrsContent' - The content of the blob, usually a file.-- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.
+getBlobResponse
+    :: Int -- ^ 'gbrsResponseStatus'
+    -> ByteString -- ^ 'gbrsContent'
+    -> GetBlobResponse
+getBlobResponse pResponseStatus_ pContent_ =
+  GetBlobResponse'
+  {_gbrsResponseStatus = pResponseStatus_, _gbrsContent = _Base64 # pContent_}
+
+
+-- | -- | The response status code.
+gbrsResponseStatus :: Lens' GetBlobResponse Int
+gbrsResponseStatus = lens _gbrsResponseStatus (\ s a -> s{_gbrsResponseStatus = a});
+
+-- | The content of the blob, usually a file.-- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.
+gbrsContent :: Lens' GetBlobResponse ByteString
+gbrsContent = lens _gbrsContent (\ s a -> s{_gbrsContent = a}) . _Base64;
+
+instance NFData GetBlobResponse where
diff --git a/gen/Network/AWS/CodeCommit/GetBranch.hs b/gen/Network/AWS/CodeCommit/GetBranch.hs
--- a/gen/Network/AWS/CodeCommit/GetBranch.hs
+++ b/gen/Network/AWS/CodeCommit/GetBranch.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeCommit.GetBranch
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -34,16 +34,16 @@
     , getBranchResponse
     , GetBranchResponse
     -- * Response Lenses
-    , gbrsBranch
-    , gbrsResponseStatus
+    , grsBranch
+    , grsResponseStatus
     ) where
 
-import           Network.AWS.CodeCommit.Types
-import           Network.AWS.CodeCommit.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeCommit.Types
+import Network.AWS.CodeCommit.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | Represents the input of a get branch operation.
 --
@@ -51,10 +51,11 @@
 --
 -- /See:/ 'getBranch' smart constructor.
 data GetBranch = GetBranch'
-    { _gbBranchName     :: !(Maybe Text)
-    , _gbRepositoryName :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gbBranchName     :: !(Maybe Text)
+  , _gbRepositoryName :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetBranch' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -64,12 +65,9 @@
 -- * 'gbRepositoryName' - The name of the repository that contains the branch for which you want to retrieve information.
 getBranch
     :: GetBranch
-getBranch =
-    GetBranch'
-    { _gbBranchName = Nothing
-    , _gbRepositoryName = Nothing
-    }
+getBranch = GetBranch' {_gbBranchName = Nothing, _gbRepositoryName = Nothing}
 
+
 -- | The name of the branch for which you want to retrieve information.
 gbBranchName :: Lens' GetBranch (Maybe Text)
 gbBranchName = lens _gbBranchName (\ s a -> s{_gbBranchName = a});
@@ -87,9 +85,9 @@
                  GetBranchResponse' <$>
                    (x .?> "branch") <*> (pure (fromEnum s)))
 
-instance Hashable GetBranch
+instance Hashable GetBranch where
 
-instance NFData GetBranch
+instance NFData GetBranch where
 
 instance ToHeaders GetBranch where
         toHeaders
@@ -119,32 +117,32 @@
 --
 -- /See:/ 'getBranchResponse' smart constructor.
 data GetBranchResponse = GetBranchResponse'
-    { _gbrsBranch         :: !(Maybe BranchInfo)
-    , _gbrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _grsBranch         :: !(Maybe BranchInfo)
+  , _grsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetBranchResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'gbrsBranch' - The name of the branch.
+-- * 'grsBranch' - The name of the branch.
 --
--- * 'gbrsResponseStatus' - -- | The response status code.
+-- * 'grsResponseStatus' - -- | The response status code.
 getBranchResponse
-    :: Int -- ^ 'gbrsResponseStatus'
+    :: Int -- ^ 'grsResponseStatus'
     -> GetBranchResponse
 getBranchResponse pResponseStatus_ =
-    GetBranchResponse'
-    { _gbrsBranch = Nothing
-    , _gbrsResponseStatus = pResponseStatus_
-    }
+  GetBranchResponse'
+  {_grsBranch = Nothing, _grsResponseStatus = pResponseStatus_}
 
+
 -- | The name of the branch.
-gbrsBranch :: Lens' GetBranchResponse (Maybe BranchInfo)
-gbrsBranch = lens _gbrsBranch (\ s a -> s{_gbrsBranch = a});
+grsBranch :: Lens' GetBranchResponse (Maybe BranchInfo)
+grsBranch = lens _grsBranch (\ s a -> s{_grsBranch = a});
 
 -- | -- | The response status code.
-gbrsResponseStatus :: Lens' GetBranchResponse Int
-gbrsResponseStatus = lens _gbrsResponseStatus (\ s a -> s{_gbrsResponseStatus = a});
+grsResponseStatus :: Lens' GetBranchResponse Int
+grsResponseStatus = lens _grsResponseStatus (\ s a -> s{_grsResponseStatus = a});
 
-instance NFData GetBranchResponse
+instance NFData GetBranchResponse where
diff --git a/gen/Network/AWS/CodeCommit/GetCommit.hs b/gen/Network/AWS/CodeCommit/GetCommit.hs
--- a/gen/Network/AWS/CodeCommit/GetCommit.hs
+++ b/gen/Network/AWS/CodeCommit/GetCommit.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeCommit.GetCommit
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -38,12 +38,12 @@
     , gcrsCommit
     ) where
 
-import           Network.AWS.CodeCommit.Types
-import           Network.AWS.CodeCommit.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeCommit.Types
+import Network.AWS.CodeCommit.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | Represents the input of a get commit operation.
 --
@@ -51,32 +51,31 @@
 --
 -- /See:/ 'getCommit' smart constructor.
 data GetCommit = GetCommit'
-    { _gcRepositoryName :: !Text
-    , _gcCommitId       :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gcRepositoryName :: !Text
+  , _gcCommitId       :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetCommit' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
 -- * 'gcRepositoryName' - The name of the repository to which the commit was made.
 --
--- * 'gcCommitId' - The commit ID.
+-- * 'gcCommitId' - The commit ID. Commit IDs are the full SHA of the commit.
 getCommit
     :: Text -- ^ 'gcRepositoryName'
     -> Text -- ^ 'gcCommitId'
     -> GetCommit
 getCommit pRepositoryName_ pCommitId_ =
-    GetCommit'
-    { _gcRepositoryName = pRepositoryName_
-    , _gcCommitId = pCommitId_
-    }
+  GetCommit' {_gcRepositoryName = pRepositoryName_, _gcCommitId = pCommitId_}
 
+
 -- | The name of the repository to which the commit was made.
 gcRepositoryName :: Lens' GetCommit Text
 gcRepositoryName = lens _gcRepositoryName (\ s a -> s{_gcRepositoryName = a});
 
--- | The commit ID.
+-- | The commit ID. Commit IDs are the full SHA of the commit.
 gcCommitId :: Lens' GetCommit Text
 gcCommitId = lens _gcCommitId (\ s a -> s{_gcCommitId = a});
 
@@ -89,9 +88,9 @@
                  GetCommitResponse' <$>
                    (pure (fromEnum s)) <*> (x .:> "commit"))
 
-instance Hashable GetCommit
+instance Hashable GetCommit where
 
-instance NFData GetCommit
+instance NFData GetCommit where
 
 instance ToHeaders GetCommit where
         toHeaders
@@ -121,33 +120,33 @@
 --
 -- /See:/ 'getCommitResponse' smart constructor.
 data GetCommitResponse = GetCommitResponse'
-    { _gcrsResponseStatus :: !Int
-    , _gcrsCommit         :: !Commit
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gcrsResponseStatus :: !Int
+  , _gcrsCommit         :: !Commit
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetCommitResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
 -- * 'gcrsResponseStatus' - -- | The response status code.
 --
--- * 'gcrsCommit' - Information about the specified commit.
+-- * 'gcrsCommit' - A commit data type object that contains information about the specified commit.
 getCommitResponse
     :: Int -- ^ 'gcrsResponseStatus'
     -> Commit -- ^ 'gcrsCommit'
     -> GetCommitResponse
 getCommitResponse pResponseStatus_ pCommit_ =
-    GetCommitResponse'
-    { _gcrsResponseStatus = pResponseStatus_
-    , _gcrsCommit = pCommit_
-    }
+  GetCommitResponse'
+  {_gcrsResponseStatus = pResponseStatus_, _gcrsCommit = pCommit_}
 
+
 -- | -- | The response status code.
 gcrsResponseStatus :: Lens' GetCommitResponse Int
 gcrsResponseStatus = lens _gcrsResponseStatus (\ s a -> s{_gcrsResponseStatus = a});
 
--- | Information about the specified commit.
+-- | A commit data type object that contains information about the specified commit.
 gcrsCommit :: Lens' GetCommitResponse Commit
 gcrsCommit = lens _gcrsCommit (\ s a -> s{_gcrsCommit = a});
 
-instance NFData GetCommitResponse
+instance NFData GetCommitResponse where
diff --git a/gen/Network/AWS/CodeCommit/GetDifferences.hs b/gen/Network/AWS/CodeCommit/GetDifferences.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/CodeCommit/GetDifferences.hs
@@ -0,0 +1,211 @@
+{-# 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.CodeCommit.GetDifferences
+-- Copyright   : (c) 2013-2017 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about the differences in a valid commit specifier (such as a branch, tag, HEAD, commit ID or other fully qualified reference). Results can be limited to a specified path.
+--
+--
+module Network.AWS.CodeCommit.GetDifferences
+    (
+    -- * Creating a Request
+      getDifferences
+    , GetDifferences
+    -- * Request Lenses
+    , gdAfterPath
+    , gdNextToken
+    , gdBeforeCommitSpecifier
+    , gdBeforePath
+    , gdMaxResults
+    , gdRepositoryName
+    , gdAfterCommitSpecifier
+
+    -- * Destructuring the Response
+    , getDifferencesResponse
+    , GetDifferencesResponse
+    -- * Response Lenses
+    , gdrsNextToken
+    , gdrsDifferences
+    , gdrsResponseStatus
+    ) where
+
+import Network.AWS.CodeCommit.Types
+import Network.AWS.CodeCommit.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'getDifferences' smart constructor.
+data GetDifferences = GetDifferences'
+  { _gdAfterPath             :: !(Maybe Text)
+  , _gdNextToken             :: !(Maybe Text)
+  , _gdBeforeCommitSpecifier :: !(Maybe Text)
+  , _gdBeforePath            :: !(Maybe Text)
+  , _gdMaxResults            :: !(Maybe Int)
+  , _gdRepositoryName        :: !Text
+  , _gdAfterCommitSpecifier  :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GetDifferences' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gdAfterPath' - The file path in which to check differences. Limits the results to this path. Can also be used to specify the changed name of a directory or folder, if it has changed. If not specified, differences will be shown for all paths.
+--
+-- * 'gdNextToken' - An enumeration token that when provided in a request, returns the next batch of the results.
+--
+-- * 'gdBeforeCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to identify a commit. For example, the full commit ID. Optional. If not specified, all changes prior to the @afterCommitSpecifier@ value will be shown. If you do not use @beforeCommitSpecifier@ in your request, consider limiting the results with @maxResults@ .
+--
+-- * 'gdBeforePath' - The file path in which to check for differences. Limits the results to this path. Can also be used to specify the previous name of a directory or folder. If @beforePath@ and @afterPath@ are not specified, differences will be shown for all paths.
+--
+-- * 'gdMaxResults' - A non-negative integer used to limit the number of returned results.
+--
+-- * 'gdRepositoryName' - The name of the repository where you want to get differences.
+--
+-- * 'gdAfterCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to identify a commit.
+getDifferences
+    :: Text -- ^ 'gdRepositoryName'
+    -> Text -- ^ 'gdAfterCommitSpecifier'
+    -> GetDifferences
+getDifferences pRepositoryName_ pAfterCommitSpecifier_ =
+  GetDifferences'
+  { _gdAfterPath = Nothing
+  , _gdNextToken = Nothing
+  , _gdBeforeCommitSpecifier = Nothing
+  , _gdBeforePath = Nothing
+  , _gdMaxResults = Nothing
+  , _gdRepositoryName = pRepositoryName_
+  , _gdAfterCommitSpecifier = pAfterCommitSpecifier_
+  }
+
+
+-- | The file path in which to check differences. Limits the results to this path. Can also be used to specify the changed name of a directory or folder, if it has changed. If not specified, differences will be shown for all paths.
+gdAfterPath :: Lens' GetDifferences (Maybe Text)
+gdAfterPath = lens _gdAfterPath (\ s a -> s{_gdAfterPath = a});
+
+-- | An enumeration token that when provided in a request, returns the next batch of the results.
+gdNextToken :: Lens' GetDifferences (Maybe Text)
+gdNextToken = lens _gdNextToken (\ s a -> s{_gdNextToken = a});
+
+-- | The branch, tag, HEAD, or other fully qualified reference used to identify a commit. For example, the full commit ID. Optional. If not specified, all changes prior to the @afterCommitSpecifier@ value will be shown. If you do not use @beforeCommitSpecifier@ in your request, consider limiting the results with @maxResults@ .
+gdBeforeCommitSpecifier :: Lens' GetDifferences (Maybe Text)
+gdBeforeCommitSpecifier = lens _gdBeforeCommitSpecifier (\ s a -> s{_gdBeforeCommitSpecifier = a});
+
+-- | The file path in which to check for differences. Limits the results to this path. Can also be used to specify the previous name of a directory or folder. If @beforePath@ and @afterPath@ are not specified, differences will be shown for all paths.
+gdBeforePath :: Lens' GetDifferences (Maybe Text)
+gdBeforePath = lens _gdBeforePath (\ s a -> s{_gdBeforePath = a});
+
+-- | A non-negative integer used to limit the number of returned results.
+gdMaxResults :: Lens' GetDifferences (Maybe Int)
+gdMaxResults = lens _gdMaxResults (\ s a -> s{_gdMaxResults = a});
+
+-- | The name of the repository where you want to get differences.
+gdRepositoryName :: Lens' GetDifferences Text
+gdRepositoryName = lens _gdRepositoryName (\ s a -> s{_gdRepositoryName = a});
+
+-- | The branch, tag, HEAD, or other fully qualified reference used to identify a commit.
+gdAfterCommitSpecifier :: Lens' GetDifferences Text
+gdAfterCommitSpecifier = lens _gdAfterCommitSpecifier (\ s a -> s{_gdAfterCommitSpecifier = a});
+
+instance AWSRequest GetDifferences where
+        type Rs GetDifferences = GetDifferencesResponse
+        request = postJSON codeCommit
+        response
+          = receiveJSON
+              (\ s h x ->
+                 GetDifferencesResponse' <$>
+                   (x .?> "NextToken") <*>
+                     (x .?> "differences" .!@ mempty)
+                     <*> (pure (fromEnum s)))
+
+instance Hashable GetDifferences where
+
+instance NFData GetDifferences where
+
+instance ToHeaders GetDifferences where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeCommit_20150413.GetDifferences" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON GetDifferences where
+        toJSON GetDifferences'{..}
+          = object
+              (catMaybes
+                 [("afterPath" .=) <$> _gdAfterPath,
+                  ("NextToken" .=) <$> _gdNextToken,
+                  ("beforeCommitSpecifier" .=) <$>
+                    _gdBeforeCommitSpecifier,
+                  ("beforePath" .=) <$> _gdBeforePath,
+                  ("MaxResults" .=) <$> _gdMaxResults,
+                  Just ("repositoryName" .= _gdRepositoryName),
+                  Just
+                    ("afterCommitSpecifier" .= _gdAfterCommitSpecifier)])
+
+instance ToPath GetDifferences where
+        toPath = const "/"
+
+instance ToQuery GetDifferences where
+        toQuery = const mempty
+
+-- | /See:/ 'getDifferencesResponse' smart constructor.
+data GetDifferencesResponse = GetDifferencesResponse'
+  { _gdrsNextToken      :: !(Maybe Text)
+  , _gdrsDifferences    :: !(Maybe [Difference])
+  , _gdrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GetDifferencesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gdrsNextToken' - An enumeration token that can be used in a request to return the next batch of the results.
+--
+-- * 'gdrsDifferences' - A differences data type object that contains information about the differences, including whether the difference is added, modified, or deleted (A, D, M).
+--
+-- * 'gdrsResponseStatus' - -- | The response status code.
+getDifferencesResponse
+    :: Int -- ^ 'gdrsResponseStatus'
+    -> GetDifferencesResponse
+getDifferencesResponse pResponseStatus_ =
+  GetDifferencesResponse'
+  { _gdrsNextToken = Nothing
+  , _gdrsDifferences = Nothing
+  , _gdrsResponseStatus = pResponseStatus_
+  }
+
+
+-- | An enumeration token that can be used in a request to return the next batch of the results.
+gdrsNextToken :: Lens' GetDifferencesResponse (Maybe Text)
+gdrsNextToken = lens _gdrsNextToken (\ s a -> s{_gdrsNextToken = a});
+
+-- | A differences data type object that contains information about the differences, including whether the difference is added, modified, or deleted (A, D, M).
+gdrsDifferences :: Lens' GetDifferencesResponse [Difference]
+gdrsDifferences = lens _gdrsDifferences (\ s a -> s{_gdrsDifferences = a}) . _Default . _Coerce;
+
+-- | -- | The response status code.
+gdrsResponseStatus :: Lens' GetDifferencesResponse Int
+gdrsResponseStatus = lens _gdrsResponseStatus (\ s a -> s{_gdrsResponseStatus = a});
+
+instance NFData GetDifferencesResponse where
diff --git a/gen/Network/AWS/CodeCommit/GetRepository.hs b/gen/Network/AWS/CodeCommit/GetRepository.hs
--- a/gen/Network/AWS/CodeCommit/GetRepository.hs
+++ b/gen/Network/AWS/CodeCommit/GetRepository.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeCommit.GetRepository
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -37,12 +37,12 @@
     , grrsResponseStatus
     ) where
 
-import           Network.AWS.CodeCommit.Types
-import           Network.AWS.CodeCommit.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeCommit.Types
+import Network.AWS.CodeCommit.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | Represents the input of a get repository operation.
 --
@@ -50,9 +50,10 @@
 --
 -- /See:/ 'getRepository' smart constructor.
 newtype GetRepository = GetRepository'
-    { _grRepositoryName :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _grRepositoryName :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetRepository' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -62,10 +63,9 @@
     :: Text -- ^ 'grRepositoryName'
     -> GetRepository
 getRepository pRepositoryName_ =
-    GetRepository'
-    { _grRepositoryName = pRepositoryName_
-    }
+  GetRepository' {_grRepositoryName = pRepositoryName_}
 
+
 -- | The name of the repository to get information about.
 grRepositoryName :: Lens' GetRepository Text
 grRepositoryName = lens _grRepositoryName (\ s a -> s{_grRepositoryName = a});
@@ -79,9 +79,9 @@
                  GetRepositoryResponse' <$>
                    (x .?> "repositoryMetadata") <*> (pure (fromEnum s)))
 
-instance Hashable GetRepository
+instance Hashable GetRepository where
 
-instance NFData GetRepository
+instance NFData GetRepository where
 
 instance ToHeaders GetRepository where
         toHeaders
@@ -110,10 +110,11 @@
 --
 -- /See:/ 'getRepositoryResponse' smart constructor.
 data GetRepositoryResponse = GetRepositoryResponse'
-    { _grrsRepositoryMetadata :: !(Maybe RepositoryMetadata)
-    , _grrsResponseStatus     :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _grrsRepositoryMetadata :: !(Maybe RepositoryMetadata)
+  , _grrsResponseStatus     :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetRepositoryResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -125,11 +126,10 @@
     :: Int -- ^ 'grrsResponseStatus'
     -> GetRepositoryResponse
 getRepositoryResponse pResponseStatus_ =
-    GetRepositoryResponse'
-    { _grrsRepositoryMetadata = Nothing
-    , _grrsResponseStatus = pResponseStatus_
-    }
+  GetRepositoryResponse'
+  {_grrsRepositoryMetadata = Nothing, _grrsResponseStatus = pResponseStatus_}
 
+
 -- | Information about the repository.
 grrsRepositoryMetadata :: Lens' GetRepositoryResponse (Maybe RepositoryMetadata)
 grrsRepositoryMetadata = lens _grrsRepositoryMetadata (\ s a -> s{_grrsRepositoryMetadata = a});
@@ -138,4 +138,4 @@
 grrsResponseStatus :: Lens' GetRepositoryResponse Int
 grrsResponseStatus = lens _grrsResponseStatus (\ s a -> s{_grrsResponseStatus = a});
 
-instance NFData GetRepositoryResponse
+instance NFData GetRepositoryResponse where
diff --git a/gen/Network/AWS/CodeCommit/GetRepositoryTriggers.hs b/gen/Network/AWS/CodeCommit/GetRepositoryTriggers.hs
--- a/gen/Network/AWS/CodeCommit/GetRepositoryTriggers.hs
+++ b/gen/Network/AWS/CodeCommit/GetRepositoryTriggers.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeCommit.GetRepositoryTriggers
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -38,12 +38,12 @@
     , grtrsResponseStatus
     ) where
 
-import           Network.AWS.CodeCommit.Types
-import           Network.AWS.CodeCommit.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeCommit.Types
+import Network.AWS.CodeCommit.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | Represents the input of a get repository triggers operation.
 --
@@ -51,23 +51,24 @@
 --
 -- /See:/ 'getRepositoryTriggers' smart constructor.
 newtype GetRepositoryTriggers = GetRepositoryTriggers'
-    { _grtRepositoryName :: Maybe Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _grtRepositoryName :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetRepositoryTriggers' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
 -- * 'grtRepositoryName' - The name of the repository for which the trigger is configured.
 getRepositoryTriggers
-    :: GetRepositoryTriggers
-getRepositoryTriggers =
-    GetRepositoryTriggers'
-    { _grtRepositoryName = Nothing
-    }
+    :: Text -- ^ 'grtRepositoryName'
+    -> GetRepositoryTriggers
+getRepositoryTriggers pRepositoryName_ =
+  GetRepositoryTriggers' {_grtRepositoryName = pRepositoryName_}
 
+
 -- | The name of the repository for which the trigger is configured.
-grtRepositoryName :: Lens' GetRepositoryTriggers (Maybe Text)
+grtRepositoryName :: Lens' GetRepositoryTriggers Text
 grtRepositoryName = lens _grtRepositoryName (\ s a -> s{_grtRepositoryName = a});
 
 instance AWSRequest GetRepositoryTriggers where
@@ -82,9 +83,9 @@
                      (x .?> "triggers" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
-instance Hashable GetRepositoryTriggers
+instance Hashable GetRepositoryTriggers where
 
-instance NFData GetRepositoryTriggers
+instance NFData GetRepositoryTriggers where
 
 instance ToHeaders GetRepositoryTriggers where
         toHeaders
@@ -100,7 +101,7 @@
         toJSON GetRepositoryTriggers'{..}
           = object
               (catMaybes
-                 [("repositoryName" .=) <$> _grtRepositoryName])
+                 [Just ("repositoryName" .= _grtRepositoryName)])
 
 instance ToPath GetRepositoryTriggers where
         toPath = const "/"
@@ -114,11 +115,12 @@
 --
 -- /See:/ 'getRepositoryTriggersResponse' smart constructor.
 data GetRepositoryTriggersResponse = GetRepositoryTriggersResponse'
-    { _grtrsConfigurationId :: !(Maybe Text)
-    , _grtrsTriggers        :: !(Maybe [RepositoryTrigger])
-    , _grtrsResponseStatus  :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _grtrsConfigurationId :: !(Maybe Text)
+  , _grtrsTriggers        :: !(Maybe [RepositoryTrigger])
+  , _grtrsResponseStatus  :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetRepositoryTriggersResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -132,12 +134,13 @@
     :: Int -- ^ 'grtrsResponseStatus'
     -> GetRepositoryTriggersResponse
 getRepositoryTriggersResponse pResponseStatus_ =
-    GetRepositoryTriggersResponse'
-    { _grtrsConfigurationId = Nothing
-    , _grtrsTriggers = Nothing
-    , _grtrsResponseStatus = pResponseStatus_
-    }
+  GetRepositoryTriggersResponse'
+  { _grtrsConfigurationId = Nothing
+  , _grtrsTriggers = Nothing
+  , _grtrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | The system-generated unique ID for the trigger.
 grtrsConfigurationId :: Lens' GetRepositoryTriggersResponse (Maybe Text)
 grtrsConfigurationId = lens _grtrsConfigurationId (\ s a -> s{_grtrsConfigurationId = a});
@@ -150,4 +153,4 @@
 grtrsResponseStatus :: Lens' GetRepositoryTriggersResponse Int
 grtrsResponseStatus = lens _grtrsResponseStatus (\ s a -> s{_grtrsResponseStatus = a});
 
-instance NFData GetRepositoryTriggersResponse
+instance NFData GetRepositoryTriggersResponse where
diff --git a/gen/Network/AWS/CodeCommit/ListBranches.hs b/gen/Network/AWS/CodeCommit/ListBranches.hs
--- a/gen/Network/AWS/CodeCommit/ListBranches.hs
+++ b/gen/Network/AWS/CodeCommit/ListBranches.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeCommit.ListBranches
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -41,13 +41,13 @@
     , lbrsResponseStatus
     ) where
 
-import           Network.AWS.CodeCommit.Types
-import           Network.AWS.CodeCommit.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Pager
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeCommit.Types
+import Network.AWS.CodeCommit.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | Represents the input of a list branches operation.
 --
@@ -55,10 +55,11 @@
 --
 -- /See:/ 'listBranches' smart constructor.
 data ListBranches = ListBranches'
-    { _lbNextToken      :: !(Maybe Text)
-    , _lbRepositoryName :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lbNextToken      :: !(Maybe Text)
+  , _lbRepositoryName :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListBranches' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -70,11 +71,9 @@
     :: Text -- ^ 'lbRepositoryName'
     -> ListBranches
 listBranches pRepositoryName_ =
-    ListBranches'
-    { _lbNextToken = Nothing
-    , _lbRepositoryName = pRepositoryName_
-    }
+  ListBranches' {_lbNextToken = Nothing, _lbRepositoryName = pRepositoryName_}
 
+
 -- | An enumeration token that allows the operation to batch the results.
 lbNextToken :: Lens' ListBranches (Maybe Text)
 lbNextToken = lens _lbNextToken (\ s a -> s{_lbNextToken = a});
@@ -100,9 +99,9 @@
                    (x .?> "branches" .!@ mempty) <*> (x .?> "nextToken")
                      <*> (pure (fromEnum s)))
 
-instance Hashable ListBranches
+instance Hashable ListBranches where
 
-instance NFData ListBranches
+instance NFData ListBranches where
 
 instance ToHeaders ListBranches where
         toHeaders
@@ -132,11 +131,12 @@
 --
 -- /See:/ 'listBranchesResponse' smart constructor.
 data ListBranchesResponse = ListBranchesResponse'
-    { _lbrsBranches       :: !(Maybe [Text])
-    , _lbrsNextToken      :: !(Maybe Text)
-    , _lbrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lbrsBranches       :: !(Maybe [Text])
+  , _lbrsNextToken      :: !(Maybe Text)
+  , _lbrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListBranchesResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -150,12 +150,13 @@
     :: Int -- ^ 'lbrsResponseStatus'
     -> ListBranchesResponse
 listBranchesResponse pResponseStatus_ =
-    ListBranchesResponse'
-    { _lbrsBranches = Nothing
-    , _lbrsNextToken = Nothing
-    , _lbrsResponseStatus = pResponseStatus_
-    }
+  ListBranchesResponse'
+  { _lbrsBranches = Nothing
+  , _lbrsNextToken = Nothing
+  , _lbrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | The list of branch names.
 lbrsBranches :: Lens' ListBranchesResponse [Text]
 lbrsBranches = lens _lbrsBranches (\ s a -> s{_lbrsBranches = a}) . _Default . _Coerce;
@@ -168,4 +169,4 @@
 lbrsResponseStatus :: Lens' ListBranchesResponse Int
 lbrsResponseStatus = lens _lbrsResponseStatus (\ s a -> s{_lbrsResponseStatus = a});
 
-instance NFData ListBranchesResponse
+instance NFData ListBranchesResponse where
diff --git a/gen/Network/AWS/CodeCommit/ListRepositories.hs b/gen/Network/AWS/CodeCommit/ListRepositories.hs
--- a/gen/Network/AWS/CodeCommit/ListRepositories.hs
+++ b/gen/Network/AWS/CodeCommit/ListRepositories.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeCommit.ListRepositories
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -42,13 +42,13 @@
     , lrrsResponseStatus
     ) where
 
-import           Network.AWS.CodeCommit.Types
-import           Network.AWS.CodeCommit.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Pager
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeCommit.Types
+import Network.AWS.CodeCommit.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | Represents the input of a list repositories operation.
 --
@@ -56,11 +56,12 @@
 --
 -- /See:/ 'listRepositories' smart constructor.
 data ListRepositories = ListRepositories'
-    { _lrNextToken :: !(Maybe Text)
-    , _lrOrder     :: !(Maybe OrderEnum)
-    , _lrSortBy    :: !(Maybe SortByEnum)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lrNextToken :: !(Maybe Text)
+  , _lrOrder     :: !(Maybe OrderEnum)
+  , _lrSortBy    :: !(Maybe SortByEnum)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListRepositories' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -73,12 +74,10 @@
 listRepositories
     :: ListRepositories
 listRepositories =
-    ListRepositories'
-    { _lrNextToken = Nothing
-    , _lrOrder = Nothing
-    , _lrSortBy = Nothing
-    }
+  ListRepositories'
+  {_lrNextToken = Nothing, _lrOrder = Nothing, _lrSortBy = Nothing}
 
+
 -- | An enumeration token that allows the operation to batch the results of the operation. Batch sizes are 1,000 for list repository operations. When the client sends the token back to AWS CodeCommit, another page of 1,000 records is retrieved.
 lrNextToken :: Lens' ListRepositories (Maybe Text)
 lrNextToken = lens _lrNextToken (\ s a -> s{_lrNextToken = a});
@@ -109,9 +108,9 @@
                      (x .?> "nextToken")
                      <*> (pure (fromEnum s)))
 
-instance Hashable ListRepositories
+instance Hashable ListRepositories where
 
-instance NFData ListRepositories
+instance NFData ListRepositories where
 
 instance ToHeaders ListRepositories where
         toHeaders
@@ -143,11 +142,12 @@
 --
 -- /See:/ 'listRepositoriesResponse' smart constructor.
 data ListRepositoriesResponse = ListRepositoriesResponse'
-    { _lrrsRepositories   :: !(Maybe [RepositoryNameIdPair])
-    , _lrrsNextToken      :: !(Maybe Text)
-    , _lrrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lrrsRepositories   :: !(Maybe [RepositoryNameIdPair])
+  , _lrrsNextToken      :: !(Maybe Text)
+  , _lrrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListRepositoriesResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -161,12 +161,13 @@
     :: Int -- ^ 'lrrsResponseStatus'
     -> ListRepositoriesResponse
 listRepositoriesResponse pResponseStatus_ =
-    ListRepositoriesResponse'
-    { _lrrsRepositories = Nothing
-    , _lrrsNextToken = Nothing
-    , _lrrsResponseStatus = pResponseStatus_
-    }
+  ListRepositoriesResponse'
+  { _lrrsRepositories = Nothing
+  , _lrrsNextToken = Nothing
+  , _lrrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Lists the repositories called by the list repositories operation.
 lrrsRepositories :: Lens' ListRepositoriesResponse [RepositoryNameIdPair]
 lrrsRepositories = lens _lrrsRepositories (\ s a -> s{_lrrsRepositories = a}) . _Default . _Coerce;
@@ -179,4 +180,4 @@
 lrrsResponseStatus :: Lens' ListRepositoriesResponse Int
 lrrsResponseStatus = lens _lrrsResponseStatus (\ s a -> s{_lrrsResponseStatus = a});
 
-instance NFData ListRepositoriesResponse
+instance NFData ListRepositoriesResponse where
diff --git a/gen/Network/AWS/CodeCommit/PutRepositoryTriggers.hs b/gen/Network/AWS/CodeCommit/PutRepositoryTriggers.hs
--- a/gen/Network/AWS/CodeCommit/PutRepositoryTriggers.hs
+++ b/gen/Network/AWS/CodeCommit/PutRepositoryTriggers.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeCommit.PutRepositoryTriggers
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -27,8 +27,8 @@
       putRepositoryTriggers
     , PutRepositoryTriggers
     -- * Request Lenses
-    , prtTriggers
     , prtRepositoryName
+    , prtTriggers
 
     -- * Destructuring the Response
     , putRepositoryTriggersResponse
@@ -38,12 +38,12 @@
     , prtrsResponseStatus
     ) where
 
-import           Network.AWS.CodeCommit.Types
-import           Network.AWS.CodeCommit.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeCommit.Types
+import Network.AWS.CodeCommit.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | Represents the input ofa put repository triggers operation.
 --
@@ -51,33 +51,34 @@
 --
 -- /See:/ 'putRepositoryTriggers' smart constructor.
 data PutRepositoryTriggers = PutRepositoryTriggers'
-    { _prtTriggers       :: !(Maybe [RepositoryTrigger])
-    , _prtRepositoryName :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _prtRepositoryName :: !Text
+  , _prtTriggers       :: ![RepositoryTrigger]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'PutRepositoryTriggers' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'prtTriggers' - The JSON block of configuration information for each trigger.
---
 -- * 'prtRepositoryName' - The name of the repository where you want to create or update the trigger.
+--
+-- * 'prtTriggers' - The JSON block of configuration information for each trigger.
 putRepositoryTriggers
-    :: PutRepositoryTriggers
-putRepositoryTriggers =
-    PutRepositoryTriggers'
-    { _prtTriggers = Nothing
-    , _prtRepositoryName = Nothing
-    }
+    :: Text -- ^ 'prtRepositoryName'
+    -> PutRepositoryTriggers
+putRepositoryTriggers pRepositoryName_ =
+  PutRepositoryTriggers'
+  {_prtRepositoryName = pRepositoryName_, _prtTriggers = mempty}
 
--- | The JSON block of configuration information for each trigger.
-prtTriggers :: Lens' PutRepositoryTriggers [RepositoryTrigger]
-prtTriggers = lens _prtTriggers (\ s a -> s{_prtTriggers = a}) . _Default . _Coerce;
 
 -- | The name of the repository where you want to create or update the trigger.
-prtRepositoryName :: Lens' PutRepositoryTriggers (Maybe Text)
+prtRepositoryName :: Lens' PutRepositoryTriggers Text
 prtRepositoryName = lens _prtRepositoryName (\ s a -> s{_prtRepositoryName = a});
 
+-- | The JSON block of configuration information for each trigger.
+prtTriggers :: Lens' PutRepositoryTriggers [RepositoryTrigger]
+prtTriggers = lens _prtTriggers (\ s a -> s{_prtTriggers = a}) . _Coerce;
+
 instance AWSRequest PutRepositoryTriggers where
         type Rs PutRepositoryTriggers =
              PutRepositoryTriggersResponse
@@ -88,9 +89,9 @@
                  PutRepositoryTriggersResponse' <$>
                    (x .?> "configurationId") <*> (pure (fromEnum s)))
 
-instance Hashable PutRepositoryTriggers
+instance Hashable PutRepositoryTriggers where
 
-instance NFData PutRepositoryTriggers
+instance NFData PutRepositoryTriggers where
 
 instance ToHeaders PutRepositoryTriggers where
         toHeaders
@@ -106,8 +107,8 @@
         toJSON PutRepositoryTriggers'{..}
           = object
               (catMaybes
-                 [("triggers" .=) <$> _prtTriggers,
-                  ("repositoryName" .=) <$> _prtRepositoryName])
+                 [Just ("repositoryName" .= _prtRepositoryName),
+                  Just ("triggers" .= _prtTriggers)])
 
 instance ToPath PutRepositoryTriggers where
         toPath = const "/"
@@ -121,10 +122,11 @@
 --
 -- /See:/ 'putRepositoryTriggersResponse' smart constructor.
 data PutRepositoryTriggersResponse = PutRepositoryTriggersResponse'
-    { _prtrsConfigurationId :: !(Maybe Text)
-    , _prtrsResponseStatus  :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _prtrsConfigurationId :: !(Maybe Text)
+  , _prtrsResponseStatus  :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'PutRepositoryTriggersResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -136,11 +138,10 @@
     :: Int -- ^ 'prtrsResponseStatus'
     -> PutRepositoryTriggersResponse
 putRepositoryTriggersResponse pResponseStatus_ =
-    PutRepositoryTriggersResponse'
-    { _prtrsConfigurationId = Nothing
-    , _prtrsResponseStatus = pResponseStatus_
-    }
+  PutRepositoryTriggersResponse'
+  {_prtrsConfigurationId = Nothing, _prtrsResponseStatus = pResponseStatus_}
 
+
 -- | The system-generated unique ID for the create or update operation.
 prtrsConfigurationId :: Lens' PutRepositoryTriggersResponse (Maybe Text)
 prtrsConfigurationId = lens _prtrsConfigurationId (\ s a -> s{_prtrsConfigurationId = a});
@@ -149,4 +150,4 @@
 prtrsResponseStatus :: Lens' PutRepositoryTriggersResponse Int
 prtrsResponseStatus = lens _prtrsResponseStatus (\ s a -> s{_prtrsResponseStatus = a});
 
-instance NFData PutRepositoryTriggersResponse
+instance NFData PutRepositoryTriggersResponse where
diff --git a/gen/Network/AWS/CodeCommit/TestRepositoryTriggers.hs b/gen/Network/AWS/CodeCommit/TestRepositoryTriggers.hs
--- a/gen/Network/AWS/CodeCommit/TestRepositoryTriggers.hs
+++ b/gen/Network/AWS/CodeCommit/TestRepositoryTriggers.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeCommit.TestRepositoryTriggers
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -27,8 +27,8 @@
       testRepositoryTriggers
     , TestRepositoryTriggers
     -- * Request Lenses
-    , trtTriggers
     , trtRepositoryName
+    , trtTriggers
 
     -- * Destructuring the Response
     , testRepositoryTriggersResponse
@@ -39,12 +39,12 @@
     , trtrsResponseStatus
     ) where
 
-import           Network.AWS.CodeCommit.Types
-import           Network.AWS.CodeCommit.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeCommit.Types
+import Network.AWS.CodeCommit.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | Represents the input of a test repository triggers operation.
 --
@@ -52,33 +52,34 @@
 --
 -- /See:/ 'testRepositoryTriggers' smart constructor.
 data TestRepositoryTriggers = TestRepositoryTriggers'
-    { _trtTriggers       :: !(Maybe [RepositoryTrigger])
-    , _trtRepositoryName :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _trtRepositoryName :: !Text
+  , _trtTriggers       :: ![RepositoryTrigger]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'TestRepositoryTriggers' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'trtTriggers' - The list of triggers to test.
---
 -- * 'trtRepositoryName' - The name of the repository in which to test the triggers.
+--
+-- * 'trtTriggers' - The list of triggers to test.
 testRepositoryTriggers
-    :: TestRepositoryTriggers
-testRepositoryTriggers =
-    TestRepositoryTriggers'
-    { _trtTriggers = Nothing
-    , _trtRepositoryName = Nothing
-    }
+    :: Text -- ^ 'trtRepositoryName'
+    -> TestRepositoryTriggers
+testRepositoryTriggers pRepositoryName_ =
+  TestRepositoryTriggers'
+  {_trtRepositoryName = pRepositoryName_, _trtTriggers = mempty}
 
--- | The list of triggers to test.
-trtTriggers :: Lens' TestRepositoryTriggers [RepositoryTrigger]
-trtTriggers = lens _trtTriggers (\ s a -> s{_trtTriggers = a}) . _Default . _Coerce;
 
 -- | The name of the repository in which to test the triggers.
-trtRepositoryName :: Lens' TestRepositoryTriggers (Maybe Text)
+trtRepositoryName :: Lens' TestRepositoryTriggers Text
 trtRepositoryName = lens _trtRepositoryName (\ s a -> s{_trtRepositoryName = a});
 
+-- | The list of triggers to test.
+trtTriggers :: Lens' TestRepositoryTriggers [RepositoryTrigger]
+trtTriggers = lens _trtTriggers (\ s a -> s{_trtTriggers = a}) . _Coerce;
+
 instance AWSRequest TestRepositoryTriggers where
         type Rs TestRepositoryTriggers =
              TestRepositoryTriggersResponse
@@ -91,9 +92,9 @@
                      (x .?> "successfulExecutions" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
-instance Hashable TestRepositoryTriggers
+instance Hashable TestRepositoryTriggers where
 
-instance NFData TestRepositoryTriggers
+instance NFData TestRepositoryTriggers where
 
 instance ToHeaders TestRepositoryTriggers where
         toHeaders
@@ -109,8 +110,8 @@
         toJSON TestRepositoryTriggers'{..}
           = object
               (catMaybes
-                 [("triggers" .=) <$> _trtTriggers,
-                  ("repositoryName" .=) <$> _trtRepositoryName])
+                 [Just ("repositoryName" .= _trtRepositoryName),
+                  Just ("triggers" .= _trtTriggers)])
 
 instance ToPath TestRepositoryTriggers where
         toPath = const "/"
@@ -124,11 +125,12 @@
 --
 -- /See:/ 'testRepositoryTriggersResponse' smart constructor.
 data TestRepositoryTriggersResponse = TestRepositoryTriggersResponse'
-    { _trtrsFailedExecutions     :: !(Maybe [RepositoryTriggerExecutionFailure])
-    , _trtrsSuccessfulExecutions :: !(Maybe [Text])
-    , _trtrsResponseStatus       :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _trtrsFailedExecutions     :: !(Maybe [RepositoryTriggerExecutionFailure])
+  , _trtrsSuccessfulExecutions :: !(Maybe [Text])
+  , _trtrsResponseStatus       :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'TestRepositoryTriggersResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -142,12 +144,13 @@
     :: Int -- ^ 'trtrsResponseStatus'
     -> TestRepositoryTriggersResponse
 testRepositoryTriggersResponse pResponseStatus_ =
-    TestRepositoryTriggersResponse'
-    { _trtrsFailedExecutions = Nothing
-    , _trtrsSuccessfulExecutions = Nothing
-    , _trtrsResponseStatus = pResponseStatus_
-    }
+  TestRepositoryTriggersResponse'
+  { _trtrsFailedExecutions = Nothing
+  , _trtrsSuccessfulExecutions = Nothing
+  , _trtrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | The list of triggers that were not able to be tested. This list provides the names of the triggers that could not be tested, separated by commas.
 trtrsFailedExecutions :: Lens' TestRepositoryTriggersResponse [RepositoryTriggerExecutionFailure]
 trtrsFailedExecutions = lens _trtrsFailedExecutions (\ s a -> s{_trtrsFailedExecutions = a}) . _Default . _Coerce;
@@ -160,4 +163,4 @@
 trtrsResponseStatus :: Lens' TestRepositoryTriggersResponse Int
 trtrsResponseStatus = lens _trtrsResponseStatus (\ s a -> s{_trtrsResponseStatus = a});
 
-instance NFData TestRepositoryTriggersResponse
+instance NFData TestRepositoryTriggersResponse where
diff --git a/gen/Network/AWS/CodeCommit/Types.hs b/gen/Network/AWS/CodeCommit/Types.hs
--- a/gen/Network/AWS/CodeCommit/Types.hs
+++ b/gen/Network/AWS/CodeCommit/Types.hs
@@ -4,9 +4,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeCommit.Types
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -21,6 +21,7 @@
     , _EncryptionKeyNotFoundException
     , _InvalidRepositoryTriggerBranchNameException
     , _InvalidRepositoryTriggerCustomDataException
+    , _BlobIdDoesNotExistException
     , _MaximumRepositoryNamesExceededException
     , _InvalidRepositoryDescriptionException
     , _RepositoryNameExistsException
@@ -30,23 +31,32 @@
     , _RepositoryTriggersListRequiredException
     , _EncryptionKeyUnavailableException
     , _InvalidRepositoryTriggerDestinationARNException
+    , _BlobIdRequiredException
     , _RepositoryNamesRequiredException
+    , _InvalidBlobIdException
     , _InvalidOrderException
     , _BranchDoesNotExistException
+    , _DefaultBranchCannotBeDeletedException
+    , _InvalidPathException
     , _RepositoryTriggerNameRequiredException
     , _RepositoryDoesNotExistException
     , _MaximumBranchesExceededException
+    , _PathDoesNotExistException
     , _EncryptionIntegrityChecksFailedException
     , _RepositoryTriggerEventsListRequiredException
     , _EncryptionKeyAccessDeniedException
     , _BranchNameExistsException
+    , _InvalidCommitException
     , _InvalidSortByException
     , _EncryptionKeyDisabledException
+    , _CommitRequiredException
     , _CommitIdRequiredException
     , _InvalidCommitIdException
     , _RepositoryTriggerDestinationARNRequiredException
     , _CommitDoesNotExistException
     , _RepositoryTriggerBranchNameListRequiredException
+    , _InvalidMaxResultsException
+    , _FileTooLargeException
     , _CommitIdDoesNotExistException
     , _InvalidRepositoryTriggerNameException
     , _RepositoryNameRequiredException
@@ -54,6 +64,9 @@
     , _InvalidRepositoryTriggerEventsException
     , _InvalidRepositoryNameException
 
+    -- * ChangeTypeEnum
+    , ChangeTypeEnum (..)
+
     -- * OrderEnum
     , OrderEnum (..)
 
@@ -63,6 +76,13 @@
     -- * SortByEnum
     , SortByEnum (..)
 
+    -- * BlobMetadata
+    , BlobMetadata
+    , blobMetadata
+    , bmPath
+    , bmMode
+    , bmBlobId
+
     -- * BranchInfo
     , BranchInfo
     , branchInfo
@@ -72,6 +92,7 @@
     -- * Commit
     , Commit
     , commit
+    , cCommitId
     , cCommitter
     , cTreeId
     , cAdditionalData
@@ -79,6 +100,13 @@
     , cAuthor
     , cMessage
 
+    -- * Difference
+    , Difference
+    , difference
+    , dAfterBlob
+    , dBeforeBlob
+    , dChangeType
+
     -- * RepositoryMetadata
     , RepositoryMetadata
     , repositoryMetadata
@@ -104,8 +132,8 @@
     , repositoryTrigger
     , rtBranches
     , rtCustomData
-    , rtDestinationARN
     , rtName
+    , rtDestinationARN
     , rtEvents
 
     -- * RepositoryTriggerExecutionFailure
@@ -122,38 +150,40 @@
     , uiName
     ) where
 
-import           Network.AWS.CodeCommit.Types.Product
-import           Network.AWS.CodeCommit.Types.Sum
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Sign.V4
+import Network.AWS.CodeCommit.Types.Product
+import Network.AWS.CodeCommit.Types.Sum
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Sign.V4
 
 -- | API version @2015-04-13@ of the Amazon CodeCommit SDK configuration.
 codeCommit :: Service
 codeCommit =
-    Service
-    { _svcAbbrev = "CodeCommit"
-    , _svcSigner = v4
-    , _svcPrefix = "codecommit"
-    , _svcVersion = "2015-04-13"
-    , _svcEndpoint = defaultEndpoint codeCommit
-    , _svcTimeout = Just 70
-    , _svcCheck = statusSuccess
-    , _svcError = parseJSONError "CodeCommit"
-    , _svcRetry = retry
-    }
+  Service
+  { _svcAbbrev = "CodeCommit"
+  , _svcSigner = v4
+  , _svcPrefix = "codecommit"
+  , _svcVersion = "2015-04-13"
+  , _svcEndpoint = defaultEndpoint codeCommit
+  , _svcTimeout = Just 70
+  , _svcCheck = statusSuccess
+  , _svcError = parseJSONError "CodeCommit"
+  , _svcRetry = retry
+  }
   where
     retry =
-        Exponential
-        { _retryBase = 5.0e-2
-        , _retryGrowth = 2
-        , _retryAttempts = 5
-        , _retryCheck = check
-        }
+      Exponential
+      { _retryBase = 5.0e-2
+      , _retryGrowth = 2
+      , _retryAttempts = 5
+      , _retryCheck = check
+      }
     check e
+      | has (hasCode "ThrottledException" . hasStatus 400) e =
+        Just "throttled_exception"
       | has (hasStatus 429) e = Just "too_many_requests"
       | has (hasCode "ThrottlingException" . hasStatus 400) e =
-          Just "throttling_exception"
+        Just "throttling_exception"
       | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
       | has (hasStatus 504) e = Just "gateway_timeout"
       | has (hasStatus 502) e = Just "bad_gateway"
@@ -162,258 +192,379 @@
       | has (hasStatus 509) e = Just "limit_exceeded"
       | otherwise = Nothing
 
+
 -- | The region for the trigger target does not match the region for the repository. Triggers must be created in the same region as the target for the trigger.
 --
 --
 _InvalidRepositoryTriggerRegionException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidRepositoryTriggerRegionException =
-    _ServiceError . hasCode "InvalidRepositoryTriggerRegionException"
+  _MatchServiceError codeCommit "InvalidRepositoryTriggerRegionException"
 
+
 -- | The specified continuation token is not valid.
 --
 --
 _InvalidContinuationTokenException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidContinuationTokenException =
-    _ServiceError . hasCode "InvalidContinuationTokenException"
+  _MatchServiceError codeCommit "InvalidContinuationTokenException"
 
+
 -- | No encryption key was found.
 --
 --
 _EncryptionKeyNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
 _EncryptionKeyNotFoundException =
-    _ServiceError . hasCode "EncryptionKeyNotFoundException"
+  _MatchServiceError codeCommit "EncryptionKeyNotFoundException"
 
+
 -- | One or more branch names specified for the trigger is not valid.
 --
 --
 _InvalidRepositoryTriggerBranchNameException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidRepositoryTriggerBranchNameException =
-    _ServiceError . hasCode "InvalidRepositoryTriggerBranchNameException"
+  _MatchServiceError codeCommit "InvalidRepositoryTriggerBranchNameException"
 
+
 -- | The custom data provided for the trigger is not valid.
 --
 --
 _InvalidRepositoryTriggerCustomDataException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidRepositoryTriggerCustomDataException =
-    _ServiceError . hasCode "InvalidRepositoryTriggerCustomDataException"
+  _MatchServiceError codeCommit "InvalidRepositoryTriggerCustomDataException"
 
+
+-- | The specified blob does not exist.
+--
+--
+_BlobIdDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
+_BlobIdDoesNotExistException =
+  _MatchServiceError codeCommit "BlobIdDoesNotExistException"
+
+
 -- | The maximum number of allowed repository names was exceeded. Currently, this number is 25.
 --
 --
 _MaximumRepositoryNamesExceededException :: AsError a => Getting (First ServiceError) a ServiceError
 _MaximumRepositoryNamesExceededException =
-    _ServiceError . hasCode "MaximumRepositoryNamesExceededException"
+  _MatchServiceError codeCommit "MaximumRepositoryNamesExceededException"
 
+
 -- | The specified repository description is not valid.
 --
 --
 _InvalidRepositoryDescriptionException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidRepositoryDescriptionException =
-    _ServiceError . hasCode "InvalidRepositoryDescriptionException"
+  _MatchServiceError codeCommit "InvalidRepositoryDescriptionException"
 
+
 -- | The specified repository name already exists.
 --
 --
 _RepositoryNameExistsException :: AsError a => Getting (First ServiceError) a ServiceError
 _RepositoryNameExistsException =
-    _ServiceError . hasCode "RepositoryNameExistsException"
+  _MatchServiceError codeCommit "RepositoryNameExistsException"
 
+
 -- | The number of triggers allowed for the repository was exceeded.
 --
 --
 _MaximumRepositoryTriggersExceededException :: AsError a => Getting (First ServiceError) a ServiceError
 _MaximumRepositoryTriggersExceededException =
-    _ServiceError . hasCode "MaximumRepositoryTriggersExceededException"
+  _MatchServiceError codeCommit "MaximumRepositoryTriggersExceededException"
 
+
 -- | The specified branch name is not valid.
 --
 --
 _InvalidBranchNameException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidBranchNameException =
-    _ServiceError . hasCode "InvalidBranchNameException"
+  _MatchServiceError codeCommit "InvalidBranchNameException"
 
+
 -- | A branch name is required but was not specified.
 --
 --
 _BranchNameRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
 _BranchNameRequiredException =
-    _ServiceError . hasCode "BranchNameRequiredException"
+  _MatchServiceError codeCommit "BranchNameRequiredException"
 
+
 -- | The list of triggers for the repository is required but was not specified.
 --
 --
 _RepositoryTriggersListRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
 _RepositoryTriggersListRequiredException =
-    _ServiceError . hasCode "RepositoryTriggersListRequiredException"
+  _MatchServiceError codeCommit "RepositoryTriggersListRequiredException"
 
+
 -- | The encryption key is not available.
 --
 --
 _EncryptionKeyUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError
 _EncryptionKeyUnavailableException =
-    _ServiceError . hasCode "EncryptionKeyUnavailableException"
+  _MatchServiceError codeCommit "EncryptionKeyUnavailableException"
 
+
 -- | The Amazon Resource Name (ARN) for the trigger is not valid for the specified destination. The most common reason for this error is that the ARN does not meet the requirements for the service type.
 --
 --
 _InvalidRepositoryTriggerDestinationARNException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidRepositoryTriggerDestinationARNException =
-    _ServiceError . hasCode "InvalidRepositoryTriggerDestinationArnException"
+  _MatchServiceError
+    codeCommit
+    "InvalidRepositoryTriggerDestinationArnException"
 
+
+-- | A blob ID is required but was not specified.
+--
+--
+_BlobIdRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
+_BlobIdRequiredException =
+  _MatchServiceError codeCommit "BlobIdRequiredException"
+
+
 -- | A repository names object is required but was not specified.
 --
 --
 _RepositoryNamesRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
 _RepositoryNamesRequiredException =
-    _ServiceError . hasCode "RepositoryNamesRequiredException"
+  _MatchServiceError codeCommit "RepositoryNamesRequiredException"
 
+
+-- | The specified blob is not valid.
+--
+--
+_InvalidBlobIdException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidBlobIdException = _MatchServiceError codeCommit "InvalidBlobIdException"
+
+
 -- | The specified sort order is not valid.
 --
 --
 _InvalidOrderException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidOrderException = _ServiceError . hasCode "InvalidOrderException"
+_InvalidOrderException = _MatchServiceError codeCommit "InvalidOrderException"
 
+
 -- | The specified branch does not exist.
 --
 --
 _BranchDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
 _BranchDoesNotExistException =
-    _ServiceError . hasCode "BranchDoesNotExistException"
+  _MatchServiceError codeCommit "BranchDoesNotExistException"
 
+
+-- | The specified branch is the default branch for the repository, and cannot be deleted. To delete this branch, you must first set another branch as the default branch.
+--
+--
+_DefaultBranchCannotBeDeletedException :: AsError a => Getting (First ServiceError) a ServiceError
+_DefaultBranchCannotBeDeletedException =
+  _MatchServiceError codeCommit "DefaultBranchCannotBeDeletedException"
+
+
+-- | The specified path is not valid.
+--
+--
+_InvalidPathException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidPathException = _MatchServiceError codeCommit "InvalidPathException"
+
+
 -- | A name for the trigger is required but was not specified.
 --
 --
 _RepositoryTriggerNameRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
 _RepositoryTriggerNameRequiredException =
-    _ServiceError . hasCode "RepositoryTriggerNameRequiredException"
+  _MatchServiceError codeCommit "RepositoryTriggerNameRequiredException"
 
+
 -- | The specified repository does not exist.
 --
 --
 _RepositoryDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
 _RepositoryDoesNotExistException =
-    _ServiceError . hasCode "RepositoryDoesNotExistException"
+  _MatchServiceError codeCommit "RepositoryDoesNotExistException"
 
+
 -- | The number of branches for the trigger was exceeded.
 --
 --
 _MaximumBranchesExceededException :: AsError a => Getting (First ServiceError) a ServiceError
 _MaximumBranchesExceededException =
-    _ServiceError . hasCode "MaximumBranchesExceededException"
+  _MatchServiceError codeCommit "MaximumBranchesExceededException"
 
+
+-- | The specified path does not exist.
+--
+--
+_PathDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
+_PathDoesNotExistException =
+  _MatchServiceError codeCommit "PathDoesNotExistException"
+
+
 -- | An encryption integrity check failed.
 --
 --
 _EncryptionIntegrityChecksFailedException :: AsError a => Getting (First ServiceError) a ServiceError
 _EncryptionIntegrityChecksFailedException =
-    _ServiceError . hasCode "EncryptionIntegrityChecksFailedException"
+  _MatchServiceError codeCommit "EncryptionIntegrityChecksFailedException"
 
+
 -- | At least one event for the trigger is required but was not specified.
 --
 --
 _RepositoryTriggerEventsListRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
 _RepositoryTriggerEventsListRequiredException =
-    _ServiceError . hasCode "RepositoryTriggerEventsListRequiredException"
+  _MatchServiceError codeCommit "RepositoryTriggerEventsListRequiredException"
 
+
 -- | An encryption key could not be accessed.
 --
 --
 _EncryptionKeyAccessDeniedException :: AsError a => Getting (First ServiceError) a ServiceError
 _EncryptionKeyAccessDeniedException =
-    _ServiceError . hasCode "EncryptionKeyAccessDeniedException"
+  _MatchServiceError codeCommit "EncryptionKeyAccessDeniedException"
 
+
 -- | The specified branch name already exists.
 --
 --
 _BranchNameExistsException :: AsError a => Getting (First ServiceError) a ServiceError
 _BranchNameExistsException =
-    _ServiceError . hasCode "BranchNameExistsException"
+  _MatchServiceError codeCommit "BranchNameExistsException"
 
+
+-- | The specified commit is not valid.
+--
+--
+_InvalidCommitException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidCommitException = _MatchServiceError codeCommit "InvalidCommitException"
+
+
 -- | The specified sort by value is not valid.
 --
 --
 _InvalidSortByException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidSortByException = _ServiceError . hasCode "InvalidSortByException"
+_InvalidSortByException = _MatchServiceError codeCommit "InvalidSortByException"
 
+
 -- | The encryption key is disabled.
 --
 --
 _EncryptionKeyDisabledException :: AsError a => Getting (First ServiceError) a ServiceError
 _EncryptionKeyDisabledException =
-    _ServiceError . hasCode "EncryptionKeyDisabledException"
+  _MatchServiceError codeCommit "EncryptionKeyDisabledException"
 
+
+-- | A commit was not specified.
+--
+--
+_CommitRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
+_CommitRequiredException =
+  _MatchServiceError codeCommit "CommitRequiredException"
+
+
 -- | A commit ID was not specified.
 --
 --
 _CommitIdRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
 _CommitIdRequiredException =
-    _ServiceError . hasCode "CommitIdRequiredException"
+  _MatchServiceError codeCommit "CommitIdRequiredException"
 
+
 -- | The specified commit ID is not valid.
 --
 --
 _InvalidCommitIdException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidCommitIdException = _ServiceError . hasCode "InvalidCommitIdException"
+_InvalidCommitIdException =
+  _MatchServiceError codeCommit "InvalidCommitIdException"
 
+
 -- | A destination ARN for the target service for the trigger is required but was not specified.
 --
 --
 _RepositoryTriggerDestinationARNRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
 _RepositoryTriggerDestinationARNRequiredException =
-    _ServiceError . hasCode "RepositoryTriggerDestinationArnRequiredException"
+  _MatchServiceError
+    codeCommit
+    "RepositoryTriggerDestinationArnRequiredException"
 
+
 -- | The specified commit does not exist or no commit was specified, and the specified repository has no default branch.
 --
 --
 _CommitDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
 _CommitDoesNotExistException =
-    _ServiceError . hasCode "CommitDoesNotExistException"
+  _MatchServiceError codeCommit "CommitDoesNotExistException"
 
+
 -- | At least one branch name is required but was not specified in the trigger configuration.
 --
 --
 _RepositoryTriggerBranchNameListRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
 _RepositoryTriggerBranchNameListRequiredException =
-    _ServiceError . hasCode "RepositoryTriggerBranchNameListRequiredException"
+  _MatchServiceError
+    codeCommit
+    "RepositoryTriggerBranchNameListRequiredException"
 
+
+-- | The specified number of maximum results is not valid.
+--
+--
+_InvalidMaxResultsException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidMaxResultsException =
+  _MatchServiceError codeCommit "InvalidMaxResultsException"
+
+
+-- | The specified file exceeds the file size limit for AWS CodeCommit. For more information about limits in AWS CodeCommit, see <http://docs.aws.amazon.com/codecommit/latest/userguide/limits.html AWS CodeCommit User Guide> .
+--
+--
+_FileTooLargeException :: AsError a => Getting (First ServiceError) a ServiceError
+_FileTooLargeException = _MatchServiceError codeCommit "FileTooLargeException"
+
+
 -- | The specified commit ID does not exist.
 --
 --
 _CommitIdDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
 _CommitIdDoesNotExistException =
-    _ServiceError . hasCode "CommitIdDoesNotExistException"
+  _MatchServiceError codeCommit "CommitIdDoesNotExistException"
 
+
 -- | The name of the trigger is not valid.
 --
 --
 _InvalidRepositoryTriggerNameException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidRepositoryTriggerNameException =
-    _ServiceError . hasCode "InvalidRepositoryTriggerNameException"
+  _MatchServiceError codeCommit "InvalidRepositoryTriggerNameException"
 
+
 -- | A repository name is required but was not specified.
 --
 --
 _RepositoryNameRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
 _RepositoryNameRequiredException =
-    _ServiceError . hasCode "RepositoryNameRequiredException"
+  _MatchServiceError codeCommit "RepositoryNameRequiredException"
 
+
 -- | A repository resource limit was exceeded.
 --
 --
 _RepositoryLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
 _RepositoryLimitExceededException =
-    _ServiceError . hasCode "RepositoryLimitExceededException"
+  _MatchServiceError codeCommit "RepositoryLimitExceededException"
 
+
 -- | One or more events specified for the trigger is not valid. Check to make sure that all events specified match the requirements for allowed events.
 --
 --
 _InvalidRepositoryTriggerEventsException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidRepositoryTriggerEventsException =
-    _ServiceError . hasCode "InvalidRepositoryTriggerEventsException"
+  _MatchServiceError codeCommit "InvalidRepositoryTriggerEventsException"
 
+
 -- | At least one specified repository name is not valid.
 --
 --
 _InvalidRepositoryNameException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidRepositoryNameException =
-    _ServiceError . hasCode "InvalidRepositoryNameException"
+  _MatchServiceError codeCommit "InvalidRepositoryNameException"
+
diff --git a/gen/Network/AWS/CodeCommit/Types/Product.hs b/gen/Network/AWS/CodeCommit/Types/Product.hs
--- a/gen/Network/AWS/CodeCommit/Types/Product.hs
+++ b/gen/Network/AWS/CodeCommit/Types/Product.hs
@@ -9,28 +9,80 @@
 
 -- |
 -- Module      : Network.AWS.CodeCommit.Types.Product
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 module Network.AWS.CodeCommit.Types.Product where
 
-import           Network.AWS.CodeCommit.Types.Sum
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
+import Network.AWS.CodeCommit.Types.Sum
+import Network.AWS.Lens
+import Network.AWS.Prelude
 
+-- | Returns information about a specific Git blob object.
+--
+--
+--
+-- /See:/ 'blobMetadata' smart constructor.
+data BlobMetadata = BlobMetadata'
+  { _bmPath   :: !(Maybe Text)
+  , _bmMode   :: !(Maybe Text)
+  , _bmBlobId :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BlobMetadata' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bmPath' - The path to the blob and any associated file name, if any.
+--
+-- * 'bmMode' - The file mode permissions of the blob. File mode permission codes include:     * @100644@ indicates read/write     * @100755@ indicates read/write/execute     * @160000@ indicates a submodule     * @120000@ indicates a symlink
+--
+-- * 'bmBlobId' - The full ID of the blob.
+blobMetadata
+    :: BlobMetadata
+blobMetadata =
+  BlobMetadata' {_bmPath = Nothing, _bmMode = Nothing, _bmBlobId = Nothing}
+
+
+-- | The path to the blob and any associated file name, if any.
+bmPath :: Lens' BlobMetadata (Maybe Text)
+bmPath = lens _bmPath (\ s a -> s{_bmPath = a});
+
+-- | The file mode permissions of the blob. File mode permission codes include:     * @100644@ indicates read/write     * @100755@ indicates read/write/execute     * @160000@ indicates a submodule     * @120000@ indicates a symlink
+bmMode :: Lens' BlobMetadata (Maybe Text)
+bmMode = lens _bmMode (\ s a -> s{_bmMode = a});
+
+-- | The full ID of the blob.
+bmBlobId :: Lens' BlobMetadata (Maybe Text)
+bmBlobId = lens _bmBlobId (\ s a -> s{_bmBlobId = a});
+
+instance FromJSON BlobMetadata where
+        parseJSON
+          = withObject "BlobMetadata"
+              (\ x ->
+                 BlobMetadata' <$>
+                   (x .:? "path") <*> (x .:? "mode") <*>
+                     (x .:? "blobId"))
+
+instance Hashable BlobMetadata where
+
+instance NFData BlobMetadata where
+
 -- | Returns information about a branch.
 --
 --
 --
 -- /See:/ 'branchInfo' smart constructor.
 data BranchInfo = BranchInfo'
-    { _biCommitId   :: !(Maybe Text)
-    , _biBranchName :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _biCommitId   :: !(Maybe Text)
+  , _biBranchName :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'BranchInfo' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -40,12 +92,9 @@
 -- * 'biBranchName' - The name of the branch.
 branchInfo
     :: BranchInfo
-branchInfo =
-    BranchInfo'
-    { _biCommitId = Nothing
-    , _biBranchName = Nothing
-    }
+branchInfo = BranchInfo' {_biCommitId = Nothing, _biBranchName = Nothing}
 
+
 -- | The ID of the last commit made to the branch.
 biCommitId :: Lens' BranchInfo (Maybe Text)
 biCommitId = lens _biCommitId (\ s a -> s{_biCommitId = a});
@@ -61,9 +110,9 @@
                  BranchInfo' <$>
                    (x .:? "commitId") <*> (x .:? "branchName"))
 
-instance Hashable BranchInfo
+instance Hashable BranchInfo where
 
-instance NFData BranchInfo
+instance NFData BranchInfo where
 
 -- | Returns information about a specific commit.
 --
@@ -71,42 +120,52 @@
 --
 -- /See:/ 'commit' smart constructor.
 data Commit = Commit'
-    { _cCommitter      :: !(Maybe UserInfo)
-    , _cTreeId         :: !(Maybe Text)
-    , _cAdditionalData :: !(Maybe Text)
-    , _cParents        :: !(Maybe [Text])
-    , _cAuthor         :: !(Maybe UserInfo)
-    , _cMessage        :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cCommitId       :: !(Maybe Text)
+  , _cCommitter      :: !(Maybe UserInfo)
+  , _cTreeId         :: !(Maybe Text)
+  , _cAdditionalData :: !(Maybe Text)
+  , _cParents        :: !(Maybe [Text])
+  , _cAuthor         :: !(Maybe UserInfo)
+  , _cMessage        :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Commit' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'cCommitter' - Information about the person who committed the specified commit, also known as the committer. For more information about the difference between an author and a committer in Git, see <http://git-scm.com/book/ch2-3.html Viewing the Commit History> in Pro Git by Scott Chacon and Ben Straub.
+-- * 'cCommitId' - The full SHA of the specified commit.
 --
+-- * 'cCommitter' - Information about the person who committed the specified commit, also known as the committer. Information includes the date in timestamp format with GMT offset, the name of the committer, and the email address for the committer, as configured in Git. For more information about the difference between an author and a committer in Git, see <http://git-scm.com/book/ch2-3.html Viewing the Commit History> in Pro Git by Scott Chacon and Ben Straub.
+--
 -- * 'cTreeId' - Tree information for the specified commit.
 --
 -- * 'cAdditionalData' - Any additional data associated with the specified commit.
 --
 -- * 'cParents' - The parent list for the specified commit.
 --
--- * 'cAuthor' - Information about the author of the specified commit.
+-- * 'cAuthor' - Information about the author of the specified commit. Information includes the date in timestamp format with GMT offset, the name of the author, and the email address for the author, as configured in Git.
 --
--- * 'cMessage' - The message associated with the specified commit.
+-- * 'cMessage' - The commit message associated with the specified commit.
 commit
     :: Commit
 commit =
-    Commit'
-    { _cCommitter = Nothing
-    , _cTreeId = Nothing
-    , _cAdditionalData = Nothing
-    , _cParents = Nothing
-    , _cAuthor = Nothing
-    , _cMessage = Nothing
-    }
+  Commit'
+  { _cCommitId = Nothing
+  , _cCommitter = Nothing
+  , _cTreeId = Nothing
+  , _cAdditionalData = Nothing
+  , _cParents = Nothing
+  , _cAuthor = Nothing
+  , _cMessage = Nothing
+  }
 
--- | Information about the person who committed the specified commit, also known as the committer. For more information about the difference between an author and a committer in Git, see <http://git-scm.com/book/ch2-3.html Viewing the Commit History> in Pro Git by Scott Chacon and Ben Straub.
+
+-- | The full SHA of the specified commit.
+cCommitId :: Lens' Commit (Maybe Text)
+cCommitId = lens _cCommitId (\ s a -> s{_cCommitId = a});
+
+-- | Information about the person who committed the specified commit, also known as the committer. Information includes the date in timestamp format with GMT offset, the name of the committer, and the email address for the committer, as configured in Git. For more information about the difference between an author and a committer in Git, see <http://git-scm.com/book/ch2-3.html Viewing the Commit History> in Pro Git by Scott Chacon and Ben Straub.
 cCommitter :: Lens' Commit (Maybe UserInfo)
 cCommitter = lens _cCommitter (\ s a -> s{_cCommitter = a});
 
@@ -122,11 +181,11 @@
 cParents :: Lens' Commit [Text]
 cParents = lens _cParents (\ s a -> s{_cParents = a}) . _Default . _Coerce;
 
--- | Information about the author of the specified commit.
+-- | Information about the author of the specified commit. Information includes the date in timestamp format with GMT offset, the name of the author, and the email address for the author, as configured in Git.
 cAuthor :: Lens' Commit (Maybe UserInfo)
 cAuthor = lens _cAuthor (\ s a -> s{_cAuthor = a});
 
--- | The message associated with the specified commit.
+-- | The commit message associated with the specified commit.
 cMessage :: Lens' Commit (Maybe Text)
 cMessage = lens _cMessage (\ s a -> s{_cMessage = a});
 
@@ -135,34 +194,88 @@
           = withObject "Commit"
               (\ x ->
                  Commit' <$>
-                   (x .:? "committer") <*> (x .:? "treeId") <*>
-                     (x .:? "additionalData")
+                   (x .:? "commitId") <*> (x .:? "committer") <*>
+                     (x .:? "treeId")
+                     <*> (x .:? "additionalData")
                      <*> (x .:? "parents" .!= mempty)
                      <*> (x .:? "author")
                      <*> (x .:? "message"))
 
-instance Hashable Commit
+instance Hashable Commit where
 
-instance NFData Commit
+instance NFData Commit where
 
+-- | Returns information about a set of differences for a commit specifier.
+--
+--
+--
+-- /See:/ 'difference' smart constructor.
+data Difference = Difference'
+  { _dAfterBlob  :: !(Maybe BlobMetadata)
+  , _dBeforeBlob :: !(Maybe BlobMetadata)
+  , _dChangeType :: !(Maybe ChangeTypeEnum)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'Difference' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dAfterBlob' - Information about an @afterBlob@ data type object, including the ID, the file mode permission code, and the path.
+--
+-- * 'dBeforeBlob' - Information about a @beforeBlob@ data type object, including the ID, the file mode permission code, and the path.
+--
+-- * 'dChangeType' - Whether the change type of the difference is an addition (A), deletion (D), or modification (M).
+difference
+    :: Difference
+difference =
+  Difference'
+  {_dAfterBlob = Nothing, _dBeforeBlob = Nothing, _dChangeType = Nothing}
+
+
+-- | Information about an @afterBlob@ data type object, including the ID, the file mode permission code, and the path.
+dAfterBlob :: Lens' Difference (Maybe BlobMetadata)
+dAfterBlob = lens _dAfterBlob (\ s a -> s{_dAfterBlob = a});
+
+-- | Information about a @beforeBlob@ data type object, including the ID, the file mode permission code, and the path.
+dBeforeBlob :: Lens' Difference (Maybe BlobMetadata)
+dBeforeBlob = lens _dBeforeBlob (\ s a -> s{_dBeforeBlob = a});
+
+-- | Whether the change type of the difference is an addition (A), deletion (D), or modification (M).
+dChangeType :: Lens' Difference (Maybe ChangeTypeEnum)
+dChangeType = lens _dChangeType (\ s a -> s{_dChangeType = a});
+
+instance FromJSON Difference where
+        parseJSON
+          = withObject "Difference"
+              (\ x ->
+                 Difference' <$>
+                   (x .:? "afterBlob") <*> (x .:? "beforeBlob") <*>
+                     (x .:? "changeType"))
+
+instance Hashable Difference where
+
+instance NFData Difference where
+
 -- | Information about a repository.
 --
 --
 --
 -- /See:/ 'repositoryMetadata' smart constructor.
 data RepositoryMetadata = RepositoryMetadata'
-    { _rmRepositoryDescription :: !(Maybe Text)
-    , _rmLastModifiedDate      :: !(Maybe POSIX)
-    , _rmARN                   :: !(Maybe Text)
-    , _rmCloneURLHTTP          :: !(Maybe Text)
-    , _rmAccountId             :: !(Maybe Text)
-    , _rmDefaultBranch         :: !(Maybe Text)
-    , _rmRepositoryId          :: !(Maybe Text)
-    , _rmRepositoryName        :: !(Maybe Text)
-    , _rmCreationDate          :: !(Maybe POSIX)
-    , _rmCloneURLSSH           :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _rmRepositoryDescription :: !(Maybe Text)
+  , _rmLastModifiedDate      :: !(Maybe POSIX)
+  , _rmARN                   :: !(Maybe Text)
+  , _rmCloneURLHTTP          :: !(Maybe Text)
+  , _rmAccountId             :: !(Maybe Text)
+  , _rmDefaultBranch         :: !(Maybe Text)
+  , _rmRepositoryId          :: !(Maybe Text)
+  , _rmRepositoryName        :: !(Maybe Text)
+  , _rmCreationDate          :: !(Maybe POSIX)
+  , _rmCloneURLSSH           :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'RepositoryMetadata' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -189,19 +302,20 @@
 repositoryMetadata
     :: RepositoryMetadata
 repositoryMetadata =
-    RepositoryMetadata'
-    { _rmRepositoryDescription = Nothing
-    , _rmLastModifiedDate = Nothing
-    , _rmARN = Nothing
-    , _rmCloneURLHTTP = Nothing
-    , _rmAccountId = Nothing
-    , _rmDefaultBranch = Nothing
-    , _rmRepositoryId = Nothing
-    , _rmRepositoryName = Nothing
-    , _rmCreationDate = Nothing
-    , _rmCloneURLSSH = Nothing
-    }
+  RepositoryMetadata'
+  { _rmRepositoryDescription = Nothing
+  , _rmLastModifiedDate = Nothing
+  , _rmARN = Nothing
+  , _rmCloneURLHTTP = Nothing
+  , _rmAccountId = Nothing
+  , _rmDefaultBranch = Nothing
+  , _rmRepositoryId = Nothing
+  , _rmRepositoryName = Nothing
+  , _rmCreationDate = Nothing
+  , _rmCloneURLSSH = Nothing
+  }
 
+
 -- | A comment or description about the repository.
 rmRepositoryDescription :: Lens' RepositoryMetadata (Maybe Text)
 rmRepositoryDescription = lens _rmRepositoryDescription (\ s a -> s{_rmRepositoryDescription = a});
@@ -258,9 +372,9 @@
                      <*> (x .:? "creationDate")
                      <*> (x .:? "cloneUrlSsh"))
 
-instance Hashable RepositoryMetadata
+instance Hashable RepositoryMetadata where
 
-instance NFData RepositoryMetadata
+instance NFData RepositoryMetadata where
 
 -- | Information about a repository name and ID.
 --
@@ -268,10 +382,11 @@
 --
 -- /See:/ 'repositoryNameIdPair' smart constructor.
 data RepositoryNameIdPair = RepositoryNameIdPair'
-    { _rnipRepositoryId   :: !(Maybe Text)
-    , _rnipRepositoryName :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _rnipRepositoryId   :: !(Maybe Text)
+  , _rnipRepositoryName :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'RepositoryNameIdPair' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -282,11 +397,10 @@
 repositoryNameIdPair
     :: RepositoryNameIdPair
 repositoryNameIdPair =
-    RepositoryNameIdPair'
-    { _rnipRepositoryId = Nothing
-    , _rnipRepositoryName = Nothing
-    }
+  RepositoryNameIdPair'
+  {_rnipRepositoryId = Nothing, _rnipRepositoryName = Nothing}
 
+
 -- | The ID associated with the repository.
 rnipRepositoryId :: Lens' RepositoryNameIdPair (Maybe Text)
 rnipRepositoryId = lens _rnipRepositoryId (\ s a -> s{_rnipRepositoryId = a});
@@ -302,9 +416,9 @@
                  RepositoryNameIdPair' <$>
                    (x .:? "repositoryId") <*> (x .:? "repositoryName"))
 
-instance Hashable RepositoryNameIdPair
+instance Hashable RepositoryNameIdPair where
 
-instance NFData RepositoryNameIdPair
+instance NFData RepositoryNameIdPair where
 
 -- | Information about a trigger for a repository.
 --
@@ -312,38 +426,42 @@
 --
 -- /See:/ 'repositoryTrigger' smart constructor.
 data RepositoryTrigger = RepositoryTrigger'
-    { _rtBranches       :: !(Maybe [Text])
-    , _rtCustomData     :: !(Maybe Text)
-    , _rtDestinationARN :: !(Maybe Text)
-    , _rtName           :: !(Maybe Text)
-    , _rtEvents         :: !(Maybe [RepositoryTriggerEventEnum])
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _rtBranches       :: !(Maybe [Text])
+  , _rtCustomData     :: !(Maybe Text)
+  , _rtName           :: !Text
+  , _rtDestinationARN :: !Text
+  , _rtEvents         :: ![RepositoryTriggerEventEnum]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'RepositoryTrigger' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'rtBranches' - The branches that will be included in the trigger configuration. If no branches are specified, the trigger will apply to all branches.
+-- * 'rtBranches' - The branches that will be included in the trigger configuration. If you specify an empty array, the trigger will apply to all branches.
 --
 -- * 'rtCustomData' - Any custom data associated with the trigger that will be included in the information sent to the target of the trigger.
 --
--- * 'rtDestinationARN' - The ARN of the resource that is the target for a trigger. For example, the ARN of a topic in Amazon Simple Notification Service (SNS).
---
 -- * 'rtName' - The name of the trigger.
 --
--- * 'rtEvents' - The repository events that will cause the trigger to run actions in another service, such as sending a notification through Amazon Simple Notification Service (SNS). If no events are specified, the trigger will run for all repository events.
+-- * 'rtDestinationARN' - The ARN of the resource that is the target for a trigger. For example, the ARN of a topic in Amazon Simple Notification Service (SNS).
+--
+-- * 'rtEvents' - The repository events that will cause the trigger to run actions in another service, such as sending a notification through Amazon Simple Notification Service (SNS).
 repositoryTrigger
-    :: RepositoryTrigger
-repositoryTrigger =
-    RepositoryTrigger'
-    { _rtBranches = Nothing
-    , _rtCustomData = Nothing
-    , _rtDestinationARN = Nothing
-    , _rtName = Nothing
-    , _rtEvents = Nothing
-    }
+    :: Text -- ^ 'rtName'
+    -> Text -- ^ 'rtDestinationARN'
+    -> RepositoryTrigger
+repositoryTrigger pName_ pDestinationARN_ =
+  RepositoryTrigger'
+  { _rtBranches = Nothing
+  , _rtCustomData = Nothing
+  , _rtName = pName_
+  , _rtDestinationARN = pDestinationARN_
+  , _rtEvents = mempty
+  }
 
--- | The branches that will be included in the trigger configuration. If no branches are specified, the trigger will apply to all branches.
+
+-- | The branches that will be included in the trigger configuration. If you specify an empty array, the trigger will apply to all branches.
 rtBranches :: Lens' RepositoryTrigger [Text]
 rtBranches = lens _rtBranches (\ s a -> s{_rtBranches = a}) . _Default . _Coerce;
 
@@ -351,17 +469,17 @@
 rtCustomData :: Lens' RepositoryTrigger (Maybe Text)
 rtCustomData = lens _rtCustomData (\ s a -> s{_rtCustomData = a});
 
--- | The ARN of the resource that is the target for a trigger. For example, the ARN of a topic in Amazon Simple Notification Service (SNS).
-rtDestinationARN :: Lens' RepositoryTrigger (Maybe Text)
-rtDestinationARN = lens _rtDestinationARN (\ s a -> s{_rtDestinationARN = a});
-
 -- | The name of the trigger.
-rtName :: Lens' RepositoryTrigger (Maybe Text)
+rtName :: Lens' RepositoryTrigger Text
 rtName = lens _rtName (\ s a -> s{_rtName = a});
 
--- | The repository events that will cause the trigger to run actions in another service, such as sending a notification through Amazon Simple Notification Service (SNS). If no events are specified, the trigger will run for all repository events.
+-- | The ARN of the resource that is the target for a trigger. For example, the ARN of a topic in Amazon Simple Notification Service (SNS).
+rtDestinationARN :: Lens' RepositoryTrigger Text
+rtDestinationARN = lens _rtDestinationARN (\ s a -> s{_rtDestinationARN = a});
+
+-- | The repository events that will cause the trigger to run actions in another service, such as sending a notification through Amazon Simple Notification Service (SNS).
 rtEvents :: Lens' RepositoryTrigger [RepositoryTriggerEventEnum]
-rtEvents = lens _rtEvents (\ s a -> s{_rtEvents = a}) . _Default . _Coerce;
+rtEvents = lens _rtEvents (\ s a -> s{_rtEvents = a}) . _Coerce;
 
 instance FromJSON RepositoryTrigger where
         parseJSON
@@ -370,13 +488,13 @@
                  RepositoryTrigger' <$>
                    (x .:? "branches" .!= mempty) <*>
                      (x .:? "customData")
-                     <*> (x .:? "destinationArn")
-                     <*> (x .:? "name")
+                     <*> (x .: "name")
+                     <*> (x .: "destinationArn")
                      <*> (x .:? "events" .!= mempty))
 
-instance Hashable RepositoryTrigger
+instance Hashable RepositoryTrigger where
 
-instance NFData RepositoryTrigger
+instance NFData RepositoryTrigger where
 
 instance ToJSON RepositoryTrigger where
         toJSON RepositoryTrigger'{..}
@@ -384,9 +502,9 @@
               (catMaybes
                  [("branches" .=) <$> _rtBranches,
                   ("customData" .=) <$> _rtCustomData,
-                  ("destinationArn" .=) <$> _rtDestinationARN,
-                  ("name" .=) <$> _rtName,
-                  ("events" .=) <$> _rtEvents])
+                  Just ("name" .= _rtName),
+                  Just ("destinationArn" .= _rtDestinationARN),
+                  Just ("events" .= _rtEvents)])
 
 -- | A trigger failed to run.
 --
@@ -394,10 +512,11 @@
 --
 -- /See:/ 'repositoryTriggerExecutionFailure' smart constructor.
 data RepositoryTriggerExecutionFailure = RepositoryTriggerExecutionFailure'
-    { _rtefFailureMessage :: !(Maybe Text)
-    , _rtefTrigger        :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _rtefFailureMessage :: !(Maybe Text)
+  , _rtefTrigger        :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'RepositoryTriggerExecutionFailure' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -408,11 +527,10 @@
 repositoryTriggerExecutionFailure
     :: RepositoryTriggerExecutionFailure
 repositoryTriggerExecutionFailure =
-    RepositoryTriggerExecutionFailure'
-    { _rtefFailureMessage = Nothing
-    , _rtefTrigger = Nothing
-    }
+  RepositoryTriggerExecutionFailure'
+  {_rtefFailureMessage = Nothing, _rtefTrigger = Nothing}
 
+
 -- | Additional message information about the trigger that did not run.
 rtefFailureMessage :: Lens' RepositoryTriggerExecutionFailure (Maybe Text)
 rtefFailureMessage = lens _rtefFailureMessage (\ s a -> s{_rtefFailureMessage = a});
@@ -430,8 +548,10 @@
                    (x .:? "failureMessage") <*> (x .:? "trigger"))
 
 instance Hashable RepositoryTriggerExecutionFailure
+         where
 
 instance NFData RepositoryTriggerExecutionFailure
+         where
 
 -- | Information about the user who made a specified commit.
 --
@@ -439,11 +559,12 @@
 --
 -- /See:/ 'userInfo' smart constructor.
 data UserInfo = UserInfo'
-    { _uiEmail :: !(Maybe Text)
-    , _uiDate  :: !(Maybe Text)
-    , _uiName  :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _uiEmail :: !(Maybe Text)
+  , _uiDate  :: !(Maybe Text)
+  , _uiName  :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UserInfo' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -455,13 +576,9 @@
 -- * 'uiName' - The name of the user who made the specified commit.
 userInfo
     :: UserInfo
-userInfo =
-    UserInfo'
-    { _uiEmail = Nothing
-    , _uiDate = Nothing
-    , _uiName = Nothing
-    }
+userInfo = UserInfo' {_uiEmail = Nothing, _uiDate = Nothing, _uiName = Nothing}
 
+
 -- | The email address associated with the user who made the commit, if any.
 uiEmail :: Lens' UserInfo (Maybe Text)
 uiEmail = lens _uiEmail (\ s a -> s{_uiEmail = a});
@@ -482,6 +599,6 @@
                    (x .:? "email") <*> (x .:? "date") <*>
                      (x .:? "name"))
 
-instance Hashable UserInfo
+instance Hashable UserInfo where
 
-instance NFData UserInfo
+instance NFData UserInfo where
diff --git a/gen/Network/AWS/CodeCommit/Types/Sum.hs b/gen/Network/AWS/CodeCommit/Types/Sum.hs
--- a/gen/Network/AWS/CodeCommit/Types/Sum.hs
+++ b/gen/Network/AWS/CodeCommit/Types/Sum.hs
@@ -9,21 +9,52 @@
 
 -- |
 -- Module      : Network.AWS.CodeCommit.Types.Sum
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 module Network.AWS.CodeCommit.Types.Sum where
 
-import           Network.AWS.Prelude
+import Network.AWS.Prelude
 
+data ChangeTypeEnum
+  = A
+  | D
+  | M
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
+
+
+instance FromText ChangeTypeEnum where
+    parser = takeLowerText >>= \case
+        "a" -> pure A
+        "d" -> pure D
+        "m" -> pure M
+        e -> fromTextError $ "Failure parsing ChangeTypeEnum from value: '" <> e
+           <> "'. Accepted values: a, d, m"
+
+instance ToText ChangeTypeEnum where
+    toText = \case
+        A -> "A"
+        D -> "D"
+        M -> "M"
+
+instance Hashable     ChangeTypeEnum
+instance NFData       ChangeTypeEnum
+instance ToByteString ChangeTypeEnum
+instance ToQuery      ChangeTypeEnum
+instance ToHeader     ChangeTypeEnum
+
+instance FromJSON ChangeTypeEnum where
+    parseJSON = parseJSONText "ChangeTypeEnum"
+
 data OrderEnum
-    = Ascending
-    | Descending
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = Ascending
+  | Descending
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText OrderEnum where
     parser = takeLowerText >>= \case
         "ascending" -> pure Ascending
@@ -46,12 +77,13 @@
     toJSON = toJSONText
 
 data RepositoryTriggerEventEnum
-    = All
-    | CreateReference
-    | DeleteReference
-    | UpdateReference
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = All
+  | CreateReference
+  | DeleteReference
+  | UpdateReference
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText RepositoryTriggerEventEnum where
     parser = takeLowerText >>= \case
         "all" -> pure All
@@ -81,9 +113,10 @@
     parseJSON = parseJSONText "RepositoryTriggerEventEnum"
 
 data SortByEnum
-    = LastModifiedDate
-    | RepositoryName
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = LastModifiedDate
+  | RepositoryName
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
+
 
 instance FromText SortByEnum where
     parser = takeLowerText >>= \case
diff --git a/gen/Network/AWS/CodeCommit/UpdateDefaultBranch.hs b/gen/Network/AWS/CodeCommit/UpdateDefaultBranch.hs
--- a/gen/Network/AWS/CodeCommit/UpdateDefaultBranch.hs
+++ b/gen/Network/AWS/CodeCommit/UpdateDefaultBranch.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeCommit.UpdateDefaultBranch
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -35,12 +35,12 @@
     , UpdateDefaultBranchResponse
     ) where
 
-import           Network.AWS.CodeCommit.Types
-import           Network.AWS.CodeCommit.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeCommit.Types
+import Network.AWS.CodeCommit.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | Represents the input of an update default branch operation.
 --
@@ -48,10 +48,11 @@
 --
 -- /See:/ 'updateDefaultBranch' smart constructor.
 data UpdateDefaultBranch = UpdateDefaultBranch'
-    { _udbRepositoryName    :: !Text
-    , _udbDefaultBranchName :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _udbRepositoryName    :: !Text
+  , _udbDefaultBranchName :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateDefaultBranch' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -64,11 +65,12 @@
     -> Text -- ^ 'udbDefaultBranchName'
     -> UpdateDefaultBranch
 updateDefaultBranch pRepositoryName_ pDefaultBranchName_ =
-    UpdateDefaultBranch'
-    { _udbRepositoryName = pRepositoryName_
-    , _udbDefaultBranchName = pDefaultBranchName_
-    }
+  UpdateDefaultBranch'
+  { _udbRepositoryName = pRepositoryName_
+  , _udbDefaultBranchName = pDefaultBranchName_
+  }
 
+
 -- | The name of the repository to set or change the default branch for.
 udbRepositoryName :: Lens' UpdateDefaultBranch Text
 udbRepositoryName = lens _udbRepositoryName (\ s a -> s{_udbRepositoryName = a});
@@ -83,9 +85,9 @@
         request = postJSON codeCommit
         response = receiveNull UpdateDefaultBranchResponse'
 
-instance Hashable UpdateDefaultBranch
+instance Hashable UpdateDefaultBranch where
 
-instance NFData UpdateDefaultBranch
+instance NFData UpdateDefaultBranch where
 
 instance ToHeaders UpdateDefaultBranch where
         toHeaders
@@ -112,13 +114,15 @@
 
 -- | /See:/ 'updateDefaultBranchResponse' smart constructor.
 data UpdateDefaultBranchResponse =
-    UpdateDefaultBranchResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  UpdateDefaultBranchResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateDefaultBranchResponse' with the minimum fields required to make a request.
 --
 updateDefaultBranchResponse
     :: UpdateDefaultBranchResponse
 updateDefaultBranchResponse = UpdateDefaultBranchResponse'
 
-instance NFData UpdateDefaultBranchResponse
+
+instance NFData UpdateDefaultBranchResponse where
diff --git a/gen/Network/AWS/CodeCommit/UpdateRepositoryDescription.hs b/gen/Network/AWS/CodeCommit/UpdateRepositoryDescription.hs
--- a/gen/Network/AWS/CodeCommit/UpdateRepositoryDescription.hs
+++ b/gen/Network/AWS/CodeCommit/UpdateRepositoryDescription.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeCommit.UpdateRepositoryDescription
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -35,12 +35,12 @@
     , UpdateRepositoryDescriptionResponse
     ) where
 
-import           Network.AWS.CodeCommit.Types
-import           Network.AWS.CodeCommit.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeCommit.Types
+import Network.AWS.CodeCommit.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | Represents the input of an update repository description operation.
 --
@@ -48,10 +48,11 @@
 --
 -- /See:/ 'updateRepositoryDescription' smart constructor.
 data UpdateRepositoryDescription = UpdateRepositoryDescription'
-    { _urdRepositoryDescription :: !(Maybe Text)
-    , _urdRepositoryName        :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _urdRepositoryDescription :: !(Maybe Text)
+  , _urdRepositoryName        :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateRepositoryDescription' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -63,11 +64,10 @@
     :: Text -- ^ 'urdRepositoryName'
     -> UpdateRepositoryDescription
 updateRepositoryDescription pRepositoryName_ =
-    UpdateRepositoryDescription'
-    { _urdRepositoryDescription = Nothing
-    , _urdRepositoryName = pRepositoryName_
-    }
+  UpdateRepositoryDescription'
+  {_urdRepositoryDescription = Nothing, _urdRepositoryName = pRepositoryName_}
 
+
 -- | The new comment or description for the specified repository. Repository descriptions are limited to 1,000 characters.
 urdRepositoryDescription :: Lens' UpdateRepositoryDescription (Maybe Text)
 urdRepositoryDescription = lens _urdRepositoryDescription (\ s a -> s{_urdRepositoryDescription = a});
@@ -83,9 +83,9 @@
         response
           = receiveNull UpdateRepositoryDescriptionResponse'
 
-instance Hashable UpdateRepositoryDescription
+instance Hashable UpdateRepositoryDescription where
 
-instance NFData UpdateRepositoryDescription
+instance NFData UpdateRepositoryDescription where
 
 instance ToHeaders UpdateRepositoryDescription where
         toHeaders
@@ -113,13 +113,16 @@
 
 -- | /See:/ 'updateRepositoryDescriptionResponse' smart constructor.
 data UpdateRepositoryDescriptionResponse =
-    UpdateRepositoryDescriptionResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  UpdateRepositoryDescriptionResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateRepositoryDescriptionResponse' with the minimum fields required to make a request.
 --
 updateRepositoryDescriptionResponse
     :: UpdateRepositoryDescriptionResponse
 updateRepositoryDescriptionResponse = UpdateRepositoryDescriptionResponse'
 
+
 instance NFData UpdateRepositoryDescriptionResponse
+         where
diff --git a/gen/Network/AWS/CodeCommit/UpdateRepositoryName.hs b/gen/Network/AWS/CodeCommit/UpdateRepositoryName.hs
--- a/gen/Network/AWS/CodeCommit/UpdateRepositoryName.hs
+++ b/gen/Network/AWS/CodeCommit/UpdateRepositoryName.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeCommit.UpdateRepositoryName
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -35,12 +35,12 @@
     , UpdateRepositoryNameResponse
     ) where
 
-import           Network.AWS.CodeCommit.Types
-import           Network.AWS.CodeCommit.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeCommit.Types
+import Network.AWS.CodeCommit.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | Represents the input of an update repository description operation.
 --
@@ -48,10 +48,11 @@
 --
 -- /See:/ 'updateRepositoryName' smart constructor.
 data UpdateRepositoryName = UpdateRepositoryName'
-    { _urnOldName :: !Text
-    , _urnNewName :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _urnOldName :: !Text
+  , _urnNewName :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateRepositoryName' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -64,11 +65,9 @@
     -> Text -- ^ 'urnNewName'
     -> UpdateRepositoryName
 updateRepositoryName pOldName_ pNewName_ =
-    UpdateRepositoryName'
-    { _urnOldName = pOldName_
-    , _urnNewName = pNewName_
-    }
+  UpdateRepositoryName' {_urnOldName = pOldName_, _urnNewName = pNewName_}
 
+
 -- | The existing name of the repository.
 urnOldName :: Lens' UpdateRepositoryName Text
 urnOldName = lens _urnOldName (\ s a -> s{_urnOldName = a});
@@ -83,9 +82,9 @@
         request = postJSON codeCommit
         response = receiveNull UpdateRepositoryNameResponse'
 
-instance Hashable UpdateRepositoryName
+instance Hashable UpdateRepositoryName where
 
-instance NFData UpdateRepositoryName
+instance NFData UpdateRepositoryName where
 
 instance ToHeaders UpdateRepositoryName where
         toHeaders
@@ -112,13 +111,15 @@
 
 -- | /See:/ 'updateRepositoryNameResponse' smart constructor.
 data UpdateRepositoryNameResponse =
-    UpdateRepositoryNameResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  UpdateRepositoryNameResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateRepositoryNameResponse' with the minimum fields required to make a request.
 --
 updateRepositoryNameResponse
     :: UpdateRepositoryNameResponse
 updateRepositoryNameResponse = UpdateRepositoryNameResponse'
 
-instance NFData UpdateRepositoryNameResponse
+
+instance NFData UpdateRepositoryNameResponse where
diff --git a/gen/Network/AWS/CodeCommit/Waiters.hs b/gen/Network/AWS/CodeCommit/Waiters.hs
--- a/gen/Network/AWS/CodeCommit/Waiters.hs
+++ b/gen/Network/AWS/CodeCommit/Waiters.hs
@@ -7,15 +7,15 @@
 
 -- |
 -- Module      : Network.AWS.CodeCommit.Waiters
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 module Network.AWS.CodeCommit.Waiters where
 
-import           Network.AWS.CodeCommit.Types
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Waiter
+import Network.AWS.CodeCommit.Types
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Waiter
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -2,9 +2,9 @@
 
 -- |
 -- Module      : Main
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
diff --git a/test/Test/AWS/Gen/CodeCommit.hs b/test/Test/AWS/Gen/CodeCommit.hs
--- a/test/Test/AWS/Gen/CodeCommit.hs
+++ b/test/Test/AWS/Gen/CodeCommit.hs
@@ -5,20 +5,20 @@
 
 -- |
 -- Module      : Test.AWS.Gen.CodeCommit
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 module Test.AWS.Gen.CodeCommit where
 
 import Data.Proxy
+import Network.AWS.CodeCommit
+import Test.AWS.CodeCommit.Internal
 import Test.AWS.Fixture
 import Test.AWS.Prelude
 import Test.Tasty
-import Network.AWS.CodeCommit
-import Test.AWS.CodeCommit.Internal
 
 -- Auto-generated: the actual test selection needs to be manually placed into
 -- the top-level so that real test data can be incrementally added.
@@ -37,6 +37,12 @@
 --         , requestGetBranch $
 --             getBranch
 --
+--         , requestGetDifferences $
+--             getDifferences
+--
+--         , requestDeleteBranch $
+--             deleteBranch
+--
 --         , requestUpdateRepositoryDescription $
 --             updateRepositoryDescription
 --
@@ -64,6 +70,9 @@
 --         , requestTestRepositoryTriggers $
 --             testRepositoryTriggers
 --
+--         , requestGetBlob $
+--             getBlob
+--
 --         , requestPutRepositoryTriggers $
 --             putRepositoryTriggers
 --
@@ -85,6 +94,12 @@
 --         , responseGetBranch $
 --             getBranchResponse
 --
+--         , responseGetDifferences $
+--             getDifferencesResponse
+--
+--         , responseDeleteBranch $
+--             deleteBranchResponse
+--
 --         , responseUpdateRepositoryDescription $
 --             updateRepositoryDescriptionResponse
 --
@@ -112,6 +127,9 @@
 --         , responseTestRepositoryTriggers $
 --             testRepositoryTriggersResponse
 --
+--         , responseGetBlob $
+--             getBlobResponse
+--
 --         , responsePutRepositoryTriggers $
 --             putRepositoryTriggersResponse
 --
@@ -141,6 +159,16 @@
     "GetBranch"
     "fixture/GetBranch.yaml"
 
+requestGetDifferences :: GetDifferences -> TestTree
+requestGetDifferences = req
+    "GetDifferences"
+    "fixture/GetDifferences.yaml"
+
+requestDeleteBranch :: DeleteBranch -> TestTree
+requestDeleteBranch = req
+    "DeleteBranch"
+    "fixture/DeleteBranch.yaml"
+
 requestUpdateRepositoryDescription :: UpdateRepositoryDescription -> TestTree
 requestUpdateRepositoryDescription = req
     "UpdateRepositoryDescription"
@@ -186,6 +214,11 @@
     "TestRepositoryTriggers"
     "fixture/TestRepositoryTriggers.yaml"
 
+requestGetBlob :: GetBlob -> TestTree
+requestGetBlob = req
+    "GetBlob"
+    "fixture/GetBlob.yaml"
+
 requestPutRepositoryTriggers :: PutRepositoryTriggers -> TestTree
 requestPutRepositoryTriggers = req
     "PutRepositoryTriggers"
@@ -224,6 +257,20 @@
     codeCommit
     (Proxy :: Proxy GetBranch)
 
+responseGetDifferences :: GetDifferencesResponse -> TestTree
+responseGetDifferences = res
+    "GetDifferencesResponse"
+    "fixture/GetDifferencesResponse.proto"
+    codeCommit
+    (Proxy :: Proxy GetDifferences)
+
+responseDeleteBranch :: DeleteBranchResponse -> TestTree
+responseDeleteBranch = res
+    "DeleteBranchResponse"
+    "fixture/DeleteBranchResponse.proto"
+    codeCommit
+    (Proxy :: Proxy DeleteBranch)
+
 responseUpdateRepositoryDescription :: UpdateRepositoryDescriptionResponse -> TestTree
 responseUpdateRepositoryDescription = res
     "UpdateRepositoryDescriptionResponse"
@@ -286,6 +333,13 @@
     "fixture/TestRepositoryTriggersResponse.proto"
     codeCommit
     (Proxy :: Proxy TestRepositoryTriggers)
+
+responseGetBlob :: GetBlobResponse -> TestTree
+responseGetBlob = res
+    "GetBlobResponse"
+    "fixture/GetBlobResponse.proto"
+    codeCommit
+    (Proxy :: Proxy GetBlob)
 
 responsePutRepositoryTriggers :: PutRepositoryTriggersResponse -> TestTree
 responsePutRepositoryTriggers = res
