diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,26 +8,27 @@
 
 ## Version
 
-`1.4.4`
+`1.4.5`
 
 
 ## Description
 
-AWS IoT
-
-AWS IoT-Data enables secure, bi-directional communication between Internet-connected things (such as sensors, actuators, embedded devices, or smart appliances) and the AWS cloud. It implements a broker for applications and things to publish messages over HTTP (Publish) and retrieve, update, and delete thing shadows. A thing shadow is a persistent representation of your things and their state in the AWS cloud.
-
 Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-iot-dataplane)
 and the [AWS API Reference](https://aws.amazon.com/documentation/).
 
 The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),
-which provides mechanisms for specifying AuthN/AuthZ information and sending requests.
+which provides mechanisms for specifying AuthN/AuthZ information, sending requests,
+and receiving responses.
 
-Use of lenses is required for constructing and manipulating types.
-This is due to the amount of nesting of AWS types and transparency regarding
+Lenses are used for constructing and manipulating types,
+due to the depth of nesting of AWS types and transparency regarding
 de/serialisation into more palatable Haskell values.
 The provided lenses should be compatible with any of the major lens libraries
 [lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core).
+
+See [Network.AWS.IoTDataPlane](http://hackage.haskell.org/package/amazonka-iot-dataplane/docs/Network-AWS-IoTDataPlane.html)
+or [the AWS documentation](https://aws.amazon.com/documentation/) to get started.
+
 
 ## Contribute
 
diff --git a/amazonka-iot-dataplane.cabal b/amazonka-iot-dataplane.cabal
--- a/amazonka-iot-dataplane.cabal
+++ b/amazonka-iot-dataplane.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-iot-dataplane
-version:               1.4.4
+version:               1.4.5
 synopsis:              Amazon IoT Data Plane SDK.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
@@ -13,22 +13,19 @@
 cabal-version:         >= 1.10
 extra-source-files:    README.md fixture/*.yaml fixture/*.proto src/.gitkeep
 description:
-    AWS IoT
-
-    AWS IoT-Data enables secure, bi-directional communication between Internet-connected things (such as sensors, actuators, embedded devices, or smart appliances) and the AWS cloud. It implements a broker for applications and things to publish messages over HTTP (Publish) and retrieve, update, and delete thing shadows. A thing shadow is a persistent representation of your things and their state in the AWS cloud.
-    .
     The types from this library are intended to be used with
     <http://hackage.haskell.org/package/amazonka amazonka>, which provides
-    mechanisms for specifying AuthN/AuthZ information and sending requests.
+    mechanisms for specifying AuthN/AuthZ information, sending requests,
+    and receiving responses.
     .
-    Use of lenses is required for constructing and manipulating types.
-    This is due to the amount of nesting of AWS types and transparency regarding
+    Lenses are used for constructing and manipulating types,
+    due to the depth of nesting of AWS types and transparency regarding
     de/serialisation into more palatable Haskell values.
     The provided lenses should be compatible with any of the major lens libraries
     such as <http://hackage.haskell.org/package/lens lens> or
     <http://hackage.haskell.org/package/lens-family-core lens-family-core>.
     .
-    See "Network.AWS.IoTDataPlane" or <https://aws.amazon.com/documentation/ the AWS Documentation>
+    See "Network.AWS.IoTDataPlane" or <https://aws.amazon.com/documentation/ the AWS documentation>
     to get started.
 
 source-repository head
@@ -55,7 +52,7 @@
         , Network.AWS.IoTDataPlane.Types.Sum
 
     build-depends:
-          amazonka-core == 1.4.4.*
+          amazonka-core == 1.4.5.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-iot-dataplane-test
@@ -75,9 +72,9 @@
         , Test.AWS.IoTDataPlane.Internal
 
     build-depends:
-          amazonka-core == 1.4.4.*
-        , amazonka-test == 1.4.4.*
-        , amazonka-iot-dataplane == 1.4.4.*
+          amazonka-core == 1.4.5.*
+        , amazonka-test == 1.4.5.*
+        , amazonka-iot-dataplane == 1.4.5.*
         , base
         , bytestring
         , tasty
diff --git a/gen/Network/AWS/IoTDataPlane.hs b/gen/Network/AWS/IoTDataPlane.hs
--- a/gen/Network/AWS/IoTDataPlane.hs
+++ b/gen/Network/AWS/IoTDataPlane.hs
@@ -11,9 +11,10 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- AWS IoT
+-- __AWS IoT__
 --
 -- AWS IoT-Data enables secure, bi-directional communication between Internet-connected things (such as sensors, actuators, embedded devices, or smart appliances) and the AWS cloud. It implements a broker for applications and things to publish messages over HTTP (Publish) and retrieve, update, and delete thing shadows. A thing shadow is a persistent representation of your things and their state in the AWS cloud.
+--
 module Network.AWS.IoTDataPlane
     (
     -- * Service Configuration
diff --git a/gen/Network/AWS/IoTDataPlane/DeleteThingShadow.hs b/gen/Network/AWS/IoTDataPlane/DeleteThingShadow.hs
--- a/gen/Network/AWS/IoTDataPlane/DeleteThingShadow.hs
+++ b/gen/Network/AWS/IoTDataPlane/DeleteThingShadow.hs
@@ -20,7 +20,9 @@
 --
 -- Deletes the thing shadow for the specified thing.
 --
--- For more information, see <http://docs.aws.amazon.com/iot/latest/developerguide/API_DeleteThingShadow.html DeleteThingShadow> in the /AWS IoT Developer Guide/.
+--
+-- For more information, see <http://docs.aws.amazon.com/iot/latest/developerguide/API_DeleteThingShadow.html DeleteThingShadow> in the /AWS IoT Developer Guide/ .
+--
 module Network.AWS.IoTDataPlane.DeleteThingShadow
     (
     -- * Creating a Request
@@ -46,6 +48,8 @@
 
 -- | The input for the DeleteThingShadow operation.
 --
+--
+--
 -- /See:/ 'deleteThingShadow' smart constructor.
 newtype DeleteThingShadow = DeleteThingShadow'
     { _dtsThingName :: Text
@@ -55,7 +59,7 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'dtsThingName'
+-- * 'dtsThingName' - The name of the thing.
 deleteThingShadow
     :: Text -- ^ 'dtsThingName'
     -> DeleteThingShadow
@@ -93,6 +97,8 @@
 
 -- | The output from the DeleteThingShadow operation.
 --
+--
+--
 -- /See:/ 'deleteThingShadowResponse' smart constructor.
 data DeleteThingShadowResponse = DeleteThingShadowResponse'
     { _dtsrsResponseStatus :: !Int
@@ -103,9 +109,9 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'dtsrsResponseStatus'
+-- * 'dtsrsResponseStatus' - -- | The response status code.
 --
--- * 'dtsrsPayload'
+-- * 'dtsrsPayload' - The state information, in JSON format.
 deleteThingShadowResponse
     :: Int -- ^ 'dtsrsResponseStatus'
     -> HashMap Text Value -- ^ 'dtsrsPayload'
@@ -116,7 +122,7 @@
     , _dtsrsPayload = pPayload_
     }
 
--- | The response status code.
+-- | -- | The response status code.
 dtsrsResponseStatus :: Lens' DeleteThingShadowResponse Int
 dtsrsResponseStatus = lens _dtsrsResponseStatus (\ s a -> s{_dtsrsResponseStatus = a});
 
diff --git a/gen/Network/AWS/IoTDataPlane/GetThingShadow.hs b/gen/Network/AWS/IoTDataPlane/GetThingShadow.hs
--- a/gen/Network/AWS/IoTDataPlane/GetThingShadow.hs
+++ b/gen/Network/AWS/IoTDataPlane/GetThingShadow.hs
@@ -20,7 +20,9 @@
 --
 -- Gets the thing shadow for the specified thing.
 --
--- For more information, see <http://docs.aws.amazon.com/iot/latest/developerguide/API_GetThingShadow.html GetThingShadow> in the /AWS IoT Developer Guide/.
+--
+-- For more information, see <http://docs.aws.amazon.com/iot/latest/developerguide/API_GetThingShadow.html GetThingShadow> in the /AWS IoT Developer Guide/ .
+--
 module Network.AWS.IoTDataPlane.GetThingShadow
     (
     -- * Creating a Request
@@ -46,6 +48,8 @@
 
 -- | The input for the GetThingShadow operation.
 --
+--
+--
 -- /See:/ 'getThingShadow' smart constructor.
 newtype GetThingShadow = GetThingShadow'
     { _gtsThingName :: Text
@@ -55,7 +59,7 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'gtsThingName'
+-- * 'gtsThingName' - The name of the thing.
 getThingShadow
     :: Text -- ^ 'gtsThingName'
     -> GetThingShadow
@@ -93,6 +97,8 @@
 
 -- | The output from the GetThingShadow operation.
 --
+--
+--
 -- /See:/ 'getThingShadowResponse' smart constructor.
 data GetThingShadowResponse = GetThingShadowResponse'
     { _gtsrsPayload        :: !(Maybe (HashMap Text Value))
@@ -103,9 +109,9 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'gtsrsPayload'
+-- * 'gtsrsPayload' - The state information, in JSON format.
 --
--- * 'gtsrsResponseStatus'
+-- * 'gtsrsResponseStatus' - -- | The response status code.
 getThingShadowResponse
     :: Int -- ^ 'gtsrsResponseStatus'
     -> GetThingShadowResponse
@@ -119,7 +125,7 @@
 gtsrsPayload :: Lens' GetThingShadowResponse (Maybe (HashMap Text Value))
 gtsrsPayload = lens _gtsrsPayload (\ s a -> s{_gtsrsPayload = a});
 
--- | The response status code.
+-- | -- | The response status code.
 gtsrsResponseStatus :: Lens' GetThingShadowResponse Int
 gtsrsResponseStatus = lens _gtsrsResponseStatus (\ s a -> s{_gtsrsResponseStatus = a});
 
diff --git a/gen/Network/AWS/IoTDataPlane/Publish.hs b/gen/Network/AWS/IoTDataPlane/Publish.hs
--- a/gen/Network/AWS/IoTDataPlane/Publish.hs
+++ b/gen/Network/AWS/IoTDataPlane/Publish.hs
@@ -20,7 +20,9 @@
 --
 -- Publishes state information.
 --
--- For more information, see <http://docs.aws.amazon.com/iot/latest/developerguide/protocols.html#http HTTP Protocol> in the /AWS IoT Developer Guide/.
+--
+-- For more information, see <http://docs.aws.amazon.com/iot/latest/developerguide/protocols.html#http HTTP Protocol> in the /AWS IoT Developer Guide/ .
+--
 module Network.AWS.IoTDataPlane.Publish
     (
     -- * Creating a Request
@@ -45,6 +47,8 @@
 
 -- | The input for the Publish operation.
 --
+--
+--
 -- /See:/ 'publish' smart constructor.
 data Publish = Publish'
     { _pPayload :: !(Maybe (HashMap Text Value))
@@ -56,11 +60,11 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'pPayload'
+-- * 'pPayload' - The state information, in JSON format.
 --
--- * 'pQos'
+-- * 'pQos' - The Quality of Service (QoS) level.
 --
--- * 'pTopic'
+-- * 'pTopic' - The name of the MQTT topic.
 publish
     :: Text -- ^ 'pTopic'
     -> Publish
diff --git a/gen/Network/AWS/IoTDataPlane/Types.hs b/gen/Network/AWS/IoTDataPlane/Types.hs
--- a/gen/Network/AWS/IoTDataPlane/Types.hs
+++ b/gen/Network/AWS/IoTDataPlane/Types.hs
@@ -34,7 +34,7 @@
 import           Network.AWS.Prelude
 import           Network.AWS.Sign.V4
 
--- | API version '2015-05-28' of the Amazon IoT Data Plane SDK configuration.
+-- | API version @2015-05-28@ of the Amazon IoT Data Plane SDK configuration.
 ioTDataPlane :: Service
 ioTDataPlane =
     Service
@@ -69,51 +69,71 @@
       | otherwise = Nothing
 
 -- | The request is not valid.
+--
+--
 _InvalidRequestException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidRequestException =
     _ServiceError . hasStatus 400 . hasCode "InvalidRequestException"
 
 -- | The specified version does not match the version of the document.
+--
+--
 _ConflictException :: AsError a => Getting (First ServiceError) a ServiceError
 _ConflictException =
     _ServiceError . hasStatus 409 . hasCode "ConflictException"
 
 -- | The payload exceeds the maximum size allowed.
+--
+--
 _RequestEntityTooLargeException :: AsError a => Getting (First ServiceError) a ServiceError
 _RequestEntityTooLargeException =
     _ServiceError . hasStatus 413 . hasCode "RequestEntityTooLargeException"
 
 -- | The rate exceeds the limit.
+--
+--
 _ThrottlingException :: AsError a => Getting (First ServiceError) a ServiceError
 _ThrottlingException =
     _ServiceError . hasStatus 429 . hasCode "ThrottlingException"
 
 -- | The specified combination of HTTP verb and URI is not supported.
+--
+--
 _MethodNotAllowedException :: AsError a => Getting (First ServiceError) a ServiceError
 _MethodNotAllowedException =
     _ServiceError . hasStatus 405 . hasCode "MethodNotAllowedException"
 
 -- | An unexpected error has occurred.
+--
+--
 _InternalFailureException :: AsError a => Getting (First ServiceError) a ServiceError
 _InternalFailureException =
     _ServiceError . hasStatus 500 . hasCode "InternalFailureException"
 
 -- | The service is temporarily unavailable.
+--
+--
 _ServiceUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError
 _ServiceUnavailableException =
     _ServiceError . hasStatus 503 . hasCode "ServiceUnavailableException"
 
 -- | You are not authorized to perform this operation.
+--
+--
 _UnauthorizedException :: AsError a => Getting (First ServiceError) a ServiceError
 _UnauthorizedException =
     _ServiceError . hasStatus 401 . hasCode "UnauthorizedException"
 
 -- | The specified resource does not exist.
+--
+--
 _ResourceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
 _ResourceNotFoundException =
     _ServiceError . hasStatus 404 . hasCode "ResourceNotFoundException"
 
 -- | The document encoding is not supported.
+--
+--
 _UnsupportedDocumentEncodingException :: AsError a => Getting (First ServiceError) a ServiceError
 _UnsupportedDocumentEncodingException =
     _ServiceError .
diff --git a/gen/Network/AWS/IoTDataPlane/UpdateThingShadow.hs b/gen/Network/AWS/IoTDataPlane/UpdateThingShadow.hs
--- a/gen/Network/AWS/IoTDataPlane/UpdateThingShadow.hs
+++ b/gen/Network/AWS/IoTDataPlane/UpdateThingShadow.hs
@@ -20,7 +20,9 @@
 --
 -- Updates the thing shadow for the specified thing.
 --
--- For more information, see <http://docs.aws.amazon.com/iot/latest/developerguide/API_UpdateThingShadow.html UpdateThingShadow> in the /AWS IoT Developer Guide/.
+--
+-- For more information, see <http://docs.aws.amazon.com/iot/latest/developerguide/API_UpdateThingShadow.html UpdateThingShadow> in the /AWS IoT Developer Guide/ .
+--
 module Network.AWS.IoTDataPlane.UpdateThingShadow
     (
     -- * Creating a Request
@@ -47,6 +49,8 @@
 
 -- | The input for the UpdateThingShadow operation.
 --
+--
+--
 -- /See:/ 'updateThingShadow' smart constructor.
 data UpdateThingShadow = UpdateThingShadow'
     { _utsThingName :: !Text
@@ -57,9 +61,9 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'utsThingName'
+-- * 'utsThingName' - The name of the thing.
 --
--- * 'utsPayload'
+-- * 'utsPayload' - The state information, in JSON format.
 updateThingShadow
     :: Text -- ^ 'utsThingName'
     -> HashMap Text Value -- ^ 'utsPayload'
@@ -106,6 +110,8 @@
 
 -- | The output from the UpdateThingShadow operation.
 --
+--
+--
 -- /See:/ 'updateThingShadowResponse' smart constructor.
 data UpdateThingShadowResponse = UpdateThingShadowResponse'
     { _utsrsPayload        :: !(Maybe (HashMap Text Value))
@@ -116,9 +122,9 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'utsrsPayload'
+-- * 'utsrsPayload' - The state information, in JSON format.
 --
--- * 'utsrsResponseStatus'
+-- * 'utsrsResponseStatus' - -- | The response status code.
 updateThingShadowResponse
     :: Int -- ^ 'utsrsResponseStatus'
     -> UpdateThingShadowResponse
@@ -132,7 +138,7 @@
 utsrsPayload :: Lens' UpdateThingShadowResponse (Maybe (HashMap Text Value))
 utsrsPayload = lens _utsrsPayload (\ s a -> s{_utsrsPayload = a});
 
--- | The response status code.
+-- | -- | The response status code.
 utsrsResponseStatus :: Lens' UpdateThingShadowResponse Int
 utsrsResponseStatus = lens _utsrsResponseStatus (\ s a -> s{_utsrsResponseStatus = a});
 
