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-xray.cabal b/amazonka-xray.cabal
--- a/amazonka-xray.cabal
+++ b/amazonka-xray.cabal
@@ -1,13 +1,13 @@
 name:                  amazonka-xray
-version:               1.4.5
+version:               1.5.0
 synopsis:              Amazon X-Ray 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,14 +29,19 @@
     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-xray
 
 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.XRay
@@ -54,7 +59,7 @@
         , Network.AWS.XRay.Types.Sum
 
     build-depends:
-          amazonka-core == 1.4.5.*
+          amazonka-core == 1.5.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-xray-test
@@ -74,9 +79,9 @@
         , Test.AWS.XRay.Internal
 
     build-depends:
-          amazonka-core == 1.4.5.*
-        , amazonka-test == 1.4.5.*
-        , amazonka-xray == 1.4.5.*
+          amazonka-core == 1.5.0.*
+        , amazonka-test == 1.5.0.*
+        , amazonka-xray
         , base
         , bytestring
         , tasty
diff --git a/gen/Network/AWS/XRay.hs b/gen/Network/AWS/XRay.hs
--- a/gen/Network/AWS/XRay.hs
+++ b/gen/Network/AWS/XRay.hs
@@ -5,9 +5,9 @@
 
 -- |
 -- Module      : Network.AWS.XRay
--- 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)
 --
@@ -145,6 +145,7 @@
     , sState
     , sStartTime
     , sRoot
+    , sResponseTimeHistogram
     , sDurationHistogram
     , sReferenceId
     , sAccountId
@@ -216,14 +217,14 @@
     , vwsiAnnotationValue
     ) where
 
-import           Network.AWS.XRay.BatchGetTraces
-import           Network.AWS.XRay.GetServiceGraph
-import           Network.AWS.XRay.GetTraceGraph
-import           Network.AWS.XRay.GetTraceSummaries
-import           Network.AWS.XRay.PutTelemetryRecords
-import           Network.AWS.XRay.PutTraceSegments
-import           Network.AWS.XRay.Types
-import           Network.AWS.XRay.Waiters
+import Network.AWS.XRay.BatchGetTraces
+import Network.AWS.XRay.GetServiceGraph
+import Network.AWS.XRay.GetTraceGraph
+import Network.AWS.XRay.GetTraceSummaries
+import Network.AWS.XRay.PutTelemetryRecords
+import Network.AWS.XRay.PutTraceSegments
+import Network.AWS.XRay.Types
+import Network.AWS.XRay.Waiters
 
 {- $errors
 Error matchers are designed for use with the functions provided by
diff --git a/gen/Network/AWS/XRay/BatchGetTraces.hs b/gen/Network/AWS/XRay/BatchGetTraces.hs
--- a/gen/Network/AWS/XRay/BatchGetTraces.hs
+++ b/gen/Network/AWS/XRay/BatchGetTraces.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.XRay.BatchGetTraces
--- 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)
 --
@@ -40,19 +40,20 @@
     , bgtrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.XRay.Types
-import           Network.AWS.XRay.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.XRay.Types
+import Network.AWS.XRay.Types.Product
 
 -- | /See:/ 'batchGetTraces' smart constructor.
 data BatchGetTraces = BatchGetTraces'
-    { _bgtNextToken :: !(Maybe Text)
-    , _bgtTraceIds  :: ![Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _bgtNextToken :: !(Maybe Text)
+  , _bgtTraceIds  :: ![Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'BatchGetTraces' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -63,11 +64,9 @@
 batchGetTraces
     :: BatchGetTraces
 batchGetTraces =
-    BatchGetTraces'
-    { _bgtNextToken = Nothing
-    , _bgtTraceIds = mempty
-    }
+  BatchGetTraces' {_bgtNextToken = Nothing, _bgtTraceIds = mempty}
 
+
 -- | Pagination token. Not used.
 bgtNextToken :: Lens' BatchGetTraces (Maybe Text)
 bgtNextToken = lens _bgtNextToken (\ s a -> s{_bgtNextToken = a});
@@ -87,9 +86,9 @@
                      <*> (x .?> "UnprocessedTraceIds" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
-instance Hashable BatchGetTraces
+instance Hashable BatchGetTraces where
 
-instance NFData BatchGetTraces
+instance NFData BatchGetTraces where
 
 instance ToHeaders BatchGetTraces where
         toHeaders = const mempty
@@ -109,12 +108,13 @@
 
 -- | /See:/ 'batchGetTracesResponse' smart constructor.
 data BatchGetTracesResponse = BatchGetTracesResponse'
-    { _bgtrsNextToken           :: !(Maybe Text)
-    , _bgtrsTraces              :: !(Maybe [Trace])
-    , _bgtrsUnprocessedTraceIds :: !(Maybe [Text])
-    , _bgtrsResponseStatus      :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _bgtrsNextToken           :: !(Maybe Text)
+  , _bgtrsTraces              :: !(Maybe [Trace])
+  , _bgtrsUnprocessedTraceIds :: !(Maybe [Text])
+  , _bgtrsResponseStatus      :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'BatchGetTracesResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -130,13 +130,14 @@
     :: Int -- ^ 'bgtrsResponseStatus'
     -> BatchGetTracesResponse
 batchGetTracesResponse pResponseStatus_ =
-    BatchGetTracesResponse'
-    { _bgtrsNextToken = Nothing
-    , _bgtrsTraces = Nothing
-    , _bgtrsUnprocessedTraceIds = Nothing
-    , _bgtrsResponseStatus = pResponseStatus_
-    }
+  BatchGetTracesResponse'
+  { _bgtrsNextToken = Nothing
+  , _bgtrsTraces = Nothing
+  , _bgtrsUnprocessedTraceIds = Nothing
+  , _bgtrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Pagination token. Not used.
 bgtrsNextToken :: Lens' BatchGetTracesResponse (Maybe Text)
 bgtrsNextToken = lens _bgtrsNextToken (\ s a -> s{_bgtrsNextToken = a});
@@ -153,4 +154,4 @@
 bgtrsResponseStatus :: Lens' BatchGetTracesResponse Int
 bgtrsResponseStatus = lens _bgtrsResponseStatus (\ s a -> s{_bgtrsResponseStatus = a});
 
-instance NFData BatchGetTracesResponse
+instance NFData BatchGetTracesResponse where
diff --git a/gen/Network/AWS/XRay/GetServiceGraph.hs b/gen/Network/AWS/XRay/GetServiceGraph.hs
--- a/gen/Network/AWS/XRay/GetServiceGraph.hs
+++ b/gen/Network/AWS/XRay/GetServiceGraph.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.XRay.GetServiceGraph
--- 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,20 +42,21 @@
     , gsgrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.XRay.Types
-import           Network.AWS.XRay.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.XRay.Types
+import Network.AWS.XRay.Types.Product
 
 -- | /See:/ 'getServiceGraph' smart constructor.
 data GetServiceGraph = GetServiceGraph'
-    { _gsgNextToken :: !(Maybe Text)
-    , _gsgStartTime :: !POSIX
-    , _gsgEndTime   :: !POSIX
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gsgNextToken :: !(Maybe Text)
+  , _gsgStartTime :: !POSIX
+  , _gsgEndTime   :: !POSIX
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetServiceGraph' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -70,12 +71,13 @@
     -> UTCTime -- ^ 'gsgEndTime'
     -> GetServiceGraph
 getServiceGraph pStartTime_ pEndTime_ =
-    GetServiceGraph'
-    { _gsgNextToken = Nothing
-    , _gsgStartTime = _Time # pStartTime_
-    , _gsgEndTime = _Time # pEndTime_
-    }
+  GetServiceGraph'
+  { _gsgNextToken = Nothing
+  , _gsgStartTime = _Time # pStartTime_
+  , _gsgEndTime = _Time # pEndTime_
+  }
 
+
 -- | Pagination token. Not used.
 gsgNextToken :: Lens' GetServiceGraph (Maybe Text)
 gsgNextToken = lens _gsgNextToken (\ s a -> s{_gsgNextToken = a});
@@ -100,9 +102,9 @@
                      <*> (x .?> "Services" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
-instance Hashable GetServiceGraph
+instance Hashable GetServiceGraph where
 
-instance NFData GetServiceGraph
+instance NFData GetServiceGraph where
 
 instance ToHeaders GetServiceGraph where
         toHeaders = const mempty
@@ -123,13 +125,14 @@
 
 -- | /See:/ 'getServiceGraphResponse' smart constructor.
 data GetServiceGraphResponse = GetServiceGraphResponse'
-    { _gsgrsStartTime      :: !(Maybe POSIX)
-    , _gsgrsNextToken      :: !(Maybe Text)
-    , _gsgrsEndTime        :: !(Maybe POSIX)
-    , _gsgrsServices       :: !(Maybe [ServiceInfo])
-    , _gsgrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gsgrsStartTime      :: !(Maybe POSIX)
+  , _gsgrsNextToken      :: !(Maybe Text)
+  , _gsgrsEndTime        :: !(Maybe POSIX)
+  , _gsgrsServices       :: !(Maybe [ServiceInfo])
+  , _gsgrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetServiceGraphResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -147,14 +150,15 @@
     :: Int -- ^ 'gsgrsResponseStatus'
     -> GetServiceGraphResponse
 getServiceGraphResponse pResponseStatus_ =
-    GetServiceGraphResponse'
-    { _gsgrsStartTime = Nothing
-    , _gsgrsNextToken = Nothing
-    , _gsgrsEndTime = Nothing
-    , _gsgrsServices = Nothing
-    , _gsgrsResponseStatus = pResponseStatus_
-    }
+  GetServiceGraphResponse'
+  { _gsgrsStartTime = Nothing
+  , _gsgrsNextToken = Nothing
+  , _gsgrsEndTime = Nothing
+  , _gsgrsServices = Nothing
+  , _gsgrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | The start of the time frame for which the graph was generated.
 gsgrsStartTime :: Lens' GetServiceGraphResponse (Maybe UTCTime)
 gsgrsStartTime = lens _gsgrsStartTime (\ s a -> s{_gsgrsStartTime = a}) . mapping _Time;
@@ -175,4 +179,4 @@
 gsgrsResponseStatus :: Lens' GetServiceGraphResponse Int
 gsgrsResponseStatus = lens _gsgrsResponseStatus (\ s a -> s{_gsgrsResponseStatus = a});
 
-instance NFData GetServiceGraphResponse
+instance NFData GetServiceGraphResponse where
diff --git a/gen/Network/AWS/XRay/GetTraceGraph.hs b/gen/Network/AWS/XRay/GetTraceGraph.hs
--- a/gen/Network/AWS/XRay/GetTraceGraph.hs
+++ b/gen/Network/AWS/XRay/GetTraceGraph.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.XRay.GetTraceGraph
--- 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)
 --
@@ -39,19 +39,20 @@
     , gtgrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.XRay.Types
-import           Network.AWS.XRay.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.XRay.Types
+import Network.AWS.XRay.Types.Product
 
 -- | /See:/ 'getTraceGraph' smart constructor.
 data GetTraceGraph = GetTraceGraph'
-    { _gtgNextToken :: !(Maybe Text)
-    , _gtgTraceIds  :: ![Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gtgNextToken :: !(Maybe Text)
+  , _gtgTraceIds  :: ![Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetTraceGraph' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -61,12 +62,9 @@
 -- * 'gtgTraceIds' - Trace IDs of requests for which to generate a service graph.
 getTraceGraph
     :: GetTraceGraph
-getTraceGraph =
-    GetTraceGraph'
-    { _gtgNextToken = Nothing
-    , _gtgTraceIds = mempty
-    }
+getTraceGraph = GetTraceGraph' {_gtgNextToken = Nothing, _gtgTraceIds = mempty}
 
+
 -- | Pagination token. Not used.
 gtgNextToken :: Lens' GetTraceGraph (Maybe Text)
 gtgNextToken = lens _gtgNextToken (\ s a -> s{_gtgNextToken = a});
@@ -85,9 +83,9 @@
                    (x .?> "NextToken") <*> (x .?> "Services" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
-instance Hashable GetTraceGraph
+instance Hashable GetTraceGraph where
 
-instance NFData GetTraceGraph
+instance NFData GetTraceGraph where
 
 instance ToHeaders GetTraceGraph where
         toHeaders = const mempty
@@ -107,11 +105,12 @@
 
 -- | /See:/ 'getTraceGraphResponse' smart constructor.
 data GetTraceGraphResponse = GetTraceGraphResponse'
-    { _gtgrsNextToken      :: !(Maybe Text)
-    , _gtgrsServices       :: !(Maybe [ServiceInfo])
-    , _gtgrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gtgrsNextToken      :: !(Maybe Text)
+  , _gtgrsServices       :: !(Maybe [ServiceInfo])
+  , _gtgrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetTraceGraphResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -125,12 +124,13 @@
     :: Int -- ^ 'gtgrsResponseStatus'
     -> GetTraceGraphResponse
 getTraceGraphResponse pResponseStatus_ =
-    GetTraceGraphResponse'
-    { _gtgrsNextToken = Nothing
-    , _gtgrsServices = Nothing
-    , _gtgrsResponseStatus = pResponseStatus_
-    }
+  GetTraceGraphResponse'
+  { _gtgrsNextToken = Nothing
+  , _gtgrsServices = Nothing
+  , _gtgrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Pagination token. Not used.
 gtgrsNextToken :: Lens' GetTraceGraphResponse (Maybe Text)
 gtgrsNextToken = lens _gtgrsNextToken (\ s a -> s{_gtgrsNextToken = a});
@@ -143,4 +143,4 @@
 gtgrsResponseStatus :: Lens' GetTraceGraphResponse Int
 gtgrsResponseStatus = lens _gtgrsResponseStatus (\ s a -> s{_gtgrsResponseStatus = a});
 
-instance NFData GetTraceGraphResponse
+instance NFData GetTraceGraphResponse where
diff --git a/gen/Network/AWS/XRay/GetTraceSummaries.hs b/gen/Network/AWS/XRay/GetTraceSummaries.hs
--- a/gen/Network/AWS/XRay/GetTraceSummaries.hs
+++ b/gen/Network/AWS/XRay/GetTraceSummaries.hs
@@ -12,15 +12,25 @@
 
 -- |
 -- Module      : Network.AWS.XRay.GetTraceSummaries
--- 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)
 --
 -- Retrieves IDs and metadata for traces available for a specified time frame using an optional filter. To get the full traces, pass the trace IDs to @BatchGetTraces@ .
 --
 --
+-- A filter expression can target traced requests that hit specific service nodes or edges, have errors, or come from a known user. For example, the following filter expression targets traces that pass through @api.example.com@ :
+--
+-- @service("api.example.com")@
+--
+-- This filter expression finds traces that have an annotation named @account@ with the value @12345@ :
+--
+-- @annotation.account = "12345"@
+--
+-- For a full list of indexed fields and keywords that you can use in filter expressions, see <http://docs.aws.amazon.com/xray/latest/devguide/xray-console-filters.html Using Filter Expressions> in the /AWS X-Ray Developer Guide/ .
+--
 module Network.AWS.XRay.GetTraceSummaries
     (
     -- * Creating a Request
@@ -44,22 +54,23 @@
     , gtsrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.XRay.Types
-import           Network.AWS.XRay.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.XRay.Types
+import Network.AWS.XRay.Types.Product
 
 -- | /See:/ 'getTraceSummaries' smart constructor.
 data GetTraceSummaries = GetTraceSummaries'
-    { _gtsFilterExpression :: !(Maybe Text)
-    , _gtsNextToken        :: !(Maybe Text)
-    , _gtsSampling         :: !(Maybe Bool)
-    , _gtsStartTime        :: !POSIX
-    , _gtsEndTime          :: !POSIX
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gtsFilterExpression :: !(Maybe Text)
+  , _gtsNextToken        :: !(Maybe Text)
+  , _gtsSampling         :: !(Maybe Bool)
+  , _gtsStartTime        :: !POSIX
+  , _gtsEndTime          :: !POSIX
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetTraceSummaries' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -78,14 +89,15 @@
     -> UTCTime -- ^ 'gtsEndTime'
     -> GetTraceSummaries
 getTraceSummaries pStartTime_ pEndTime_ =
-    GetTraceSummaries'
-    { _gtsFilterExpression = Nothing
-    , _gtsNextToken = Nothing
-    , _gtsSampling = Nothing
-    , _gtsStartTime = _Time # pStartTime_
-    , _gtsEndTime = _Time # pEndTime_
-    }
+  GetTraceSummaries'
+  { _gtsFilterExpression = Nothing
+  , _gtsNextToken = Nothing
+  , _gtsSampling = Nothing
+  , _gtsStartTime = _Time # pStartTime_
+  , _gtsEndTime = _Time # pEndTime_
+  }
 
+
 -- | Specify a filter expression to retrieve trace summaries for services or requests that meet certain requirements.
 gtsFilterExpression :: Lens' GetTraceSummaries (Maybe Text)
 gtsFilterExpression = lens _gtsFilterExpression (\ s a -> s{_gtsFilterExpression = a});
@@ -119,9 +131,9 @@
                      <*> (x .?> "TraceSummaries" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
-instance Hashable GetTraceSummaries
+instance Hashable GetTraceSummaries where
 
-instance NFData GetTraceSummaries
+instance NFData GetTraceSummaries where
 
 instance ToHeaders GetTraceSummaries where
         toHeaders = const mempty
@@ -144,13 +156,14 @@
 
 -- | /See:/ 'getTraceSummariesResponse' smart constructor.
 data GetTraceSummariesResponse = GetTraceSummariesResponse'
-    { _gtsrsTracesProcessedCount :: !(Maybe Integer)
-    , _gtsrsNextToken            :: !(Maybe Text)
-    , _gtsrsApproximateTime      :: !(Maybe POSIX)
-    , _gtsrsTraceSummaries       :: !(Maybe [TraceSummary])
-    , _gtsrsResponseStatus       :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gtsrsTracesProcessedCount :: !(Maybe Integer)
+  , _gtsrsNextToken            :: !(Maybe Text)
+  , _gtsrsApproximateTime      :: !(Maybe POSIX)
+  , _gtsrsTraceSummaries       :: !(Maybe [TraceSummary])
+  , _gtsrsResponseStatus       :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetTraceSummariesResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -168,14 +181,15 @@
     :: Int -- ^ 'gtsrsResponseStatus'
     -> GetTraceSummariesResponse
 getTraceSummariesResponse pResponseStatus_ =
-    GetTraceSummariesResponse'
-    { _gtsrsTracesProcessedCount = Nothing
-    , _gtsrsNextToken = Nothing
-    , _gtsrsApproximateTime = Nothing
-    , _gtsrsTraceSummaries = Nothing
-    , _gtsrsResponseStatus = pResponseStatus_
-    }
+  GetTraceSummariesResponse'
+  { _gtsrsTracesProcessedCount = Nothing
+  , _gtsrsNextToken = Nothing
+  , _gtsrsApproximateTime = Nothing
+  , _gtsrsTraceSummaries = Nothing
+  , _gtsrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | The number of traces that were processed to get this set of summaries.
 gtsrsTracesProcessedCount :: Lens' GetTraceSummariesResponse (Maybe Integer)
 gtsrsTracesProcessedCount = lens _gtsrsTracesProcessedCount (\ s a -> s{_gtsrsTracesProcessedCount = a});
@@ -196,4 +210,4 @@
 gtsrsResponseStatus :: Lens' GetTraceSummariesResponse Int
 gtsrsResponseStatus = lens _gtsrsResponseStatus (\ s a -> s{_gtsrsResponseStatus = a});
 
-instance NFData GetTraceSummariesResponse
+instance NFData GetTraceSummariesResponse where
diff --git a/gen/Network/AWS/XRay/PutTelemetryRecords.hs b/gen/Network/AWS/XRay/PutTelemetryRecords.hs
--- a/gen/Network/AWS/XRay/PutTelemetryRecords.hs
+++ b/gen/Network/AWS/XRay/PutTelemetryRecords.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.XRay.PutTelemetryRecords
--- 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)
 --
@@ -39,21 +39,22 @@
     , ptrrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.XRay.Types
-import           Network.AWS.XRay.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.XRay.Types
+import Network.AWS.XRay.Types.Product
 
 -- | /See:/ 'putTelemetryRecords' smart constructor.
 data PutTelemetryRecords = PutTelemetryRecords'
-    { _ptrHostname         :: !(Maybe Text)
-    , _ptrEC2InstanceId    :: !(Maybe Text)
-    , _ptrResourceARN      :: !(Maybe Text)
-    , _ptrTelemetryRecords :: ![TelemetryRecord]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ptrHostname         :: !(Maybe Text)
+  , _ptrEC2InstanceId    :: !(Maybe Text)
+  , _ptrResourceARN      :: !(Maybe Text)
+  , _ptrTelemetryRecords :: ![TelemetryRecord]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'PutTelemetryRecords' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -68,13 +69,14 @@
 putTelemetryRecords
     :: PutTelemetryRecords
 putTelemetryRecords =
-    PutTelemetryRecords'
-    { _ptrHostname = Nothing
-    , _ptrEC2InstanceId = Nothing
-    , _ptrResourceARN = Nothing
-    , _ptrTelemetryRecords = mempty
-    }
+  PutTelemetryRecords'
+  { _ptrHostname = Nothing
+  , _ptrEC2InstanceId = Nothing
+  , _ptrResourceARN = Nothing
+  , _ptrTelemetryRecords = mempty
+  }
 
+
 -- |
 ptrHostname :: Lens' PutTelemetryRecords (Maybe Text)
 ptrHostname = lens _ptrHostname (\ s a -> s{_ptrHostname = a});
@@ -100,9 +102,9 @@
               (\ s h x ->
                  PutTelemetryRecordsResponse' <$> (pure (fromEnum s)))
 
-instance Hashable PutTelemetryRecords
+instance Hashable PutTelemetryRecords where
 
-instance NFData PutTelemetryRecords
+instance NFData PutTelemetryRecords where
 
 instance ToHeaders PutTelemetryRecords where
         toHeaders = const mempty
@@ -124,9 +126,10 @@
 
 -- | /See:/ 'putTelemetryRecordsResponse' smart constructor.
 newtype PutTelemetryRecordsResponse = PutTelemetryRecordsResponse'
-    { _ptrrsResponseStatus :: Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ptrrsResponseStatus :: Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'PutTelemetryRecordsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -136,12 +139,11 @@
     :: Int -- ^ 'ptrrsResponseStatus'
     -> PutTelemetryRecordsResponse
 putTelemetryRecordsResponse pResponseStatus_ =
-    PutTelemetryRecordsResponse'
-    { _ptrrsResponseStatus = pResponseStatus_
-    }
+  PutTelemetryRecordsResponse' {_ptrrsResponseStatus = pResponseStatus_}
 
+
 -- | -- | The response status code.
 ptrrsResponseStatus :: Lens' PutTelemetryRecordsResponse Int
 ptrrsResponseStatus = lens _ptrrsResponseStatus (\ s a -> s{_ptrrsResponseStatus = a});
 
-instance NFData PutTelemetryRecordsResponse
+instance NFData PutTelemetryRecordsResponse where
diff --git a/gen/Network/AWS/XRay/PutTraceSegments.hs b/gen/Network/AWS/XRay/PutTraceSegments.hs
--- a/gen/Network/AWS/XRay/PutTraceSegments.hs
+++ b/gen/Network/AWS/XRay/PutTraceSegments.hs
@@ -12,15 +12,45 @@
 
 -- |
 -- Module      : Network.AWS.XRay.PutTraceSegments
--- 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)
 --
 -- Uploads segment documents to AWS X-Ray. The X-Ray SDK generates segment documents and sends them to the X-Ray daemon, which uploads them in batches. A segment document can be a completed segment, an in-progress segment, or an array of subsegments.
 --
 --
+-- Segments must include the following fields. For the full segment document schema, see <http://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html AWS X-Ray Segment Documents> in the /AWS X-Ray Developer Guide/ .
+--
+-- __Required Segment Document Fields__
+--
+--     * @name@ - The name of the service that handled the request.
+--
+--     * @id@ - A 64-bit identifier for the segment, unique among segments in the same trace, in 16 hexadecimal digits.
+--
+--     * @trace_id@ - A unique identifier that connects all segments and subsegments originating from a single client request.
+--
+--     * @start_time@ - Time the segment or subsegment was created, in floating point seconds in epoch time, accurate to milliseconds. For example, @1480615200.010@ or @1.480615200010E9@ .
+--
+--     * @end_time@ - Time the segment or subsegment was closed. For example, @1480615200.090@ or @1.480615200090E9@ . Specify either an @end_time@ or @in_progress@ .
+--
+--     * @in_progress@ - Set to @true@ instead of specifying an @end_time@ to record that a segment has been started, but is not complete. Send an in progress segment when your application receives a request that will take a long time to serve, to trace the fact that the request was received. When the response is sent, send the complete segment to overwrite the in-progress segment.
+--
+--
+--
+-- A @trace_id@ consists of three numbers separated by hyphens. For example, 1-58406520-a006649127e371903a2de979. This includes:
+--
+-- __Trace ID Format__
+--
+--     * The version number, i.e. @1@ .
+--
+--     * The time of the original request, in Unix epoch time, in 8 hexadecimal digits. For example, 10:00AM December 2nd, 2016 PST in epoch time is @1480615200@ seconds, or @58406520@ in hexadecimal.
+--
+--     * A 96-bit identifier for the trace, globally unique, in 24 hexadecimal digits.
+--
+--
+--
 module Network.AWS.XRay.PutTraceSegments
     (
     -- * Creating a Request
@@ -37,31 +67,30 @@
     , ptsrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.XRay.Types
-import           Network.AWS.XRay.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.XRay.Types
+import Network.AWS.XRay.Types.Product
 
 -- | /See:/ 'putTraceSegments' smart constructor.
 newtype PutTraceSegments = PutTraceSegments'
-    { _ptsTraceSegmentDocuments :: [Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ptsTraceSegmentDocuments :: [Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'PutTraceSegments' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ptsTraceSegmentDocuments' - A JSON document defining one or more segments or subsegments. Segments must include the following fields. __Required Segment Document Fields__      * @name@ - The name of the service that handled the request.     * @id@ - A 64-bit identifier for the segment, unique among segments in the same trace, in 16 hexadecimal digits.     * @trace_id@ - A unique identifier that connects all segments and subsegments originating from a single client request.     * @start_time@ - Time the segment or subsegment was created, in floating point seconds in epoch time, accurate to milliseconds. For example, @1480615200.010@ or @1.480615200010E9@ .     * @end_time@ - Time the segment or subsegment was closed. For example, @1480615200.090@ or @1.480615200090E9@ . Specify either an @end_time@ or @in_progress@ .     * @in_progress@ - Set to @true@ instead of specifying an @end_time@ to record that a segment has been started, but is not complete. Send an in progress segment when your application receives a request that will take a long time to serve, to trace the fact that the request was received. When the response is sent, send the complete segment to overwrite the in-progress segment. A @trace_id@ consists of three numbers separated by hyphens. For example, 1-58406520-a006649127e371903a2de979. This includes: __Trace ID Format__      * The version number, i.e. @1@ .     * The time of the original request, in Unix epoch time, in 8 hexadecimal digits. For example, 10:00AM December 2nd, 2016 PST in epoch time is @1480615200@ seconds, or @58406520@ in hexadecimal.     * A 96-bit identifier for the trace, globally unique, in 24 hexadecimal digits.
+-- * 'ptsTraceSegmentDocuments' - A string containing a JSON document defining one or more segments or subsegments.
 putTraceSegments
     :: PutTraceSegments
-putTraceSegments =
-    PutTraceSegments'
-    { _ptsTraceSegmentDocuments = mempty
-    }
+putTraceSegments = PutTraceSegments' {_ptsTraceSegmentDocuments = mempty}
 
--- | A JSON document defining one or more segments or subsegments. Segments must include the following fields. __Required Segment Document Fields__      * @name@ - The name of the service that handled the request.     * @id@ - A 64-bit identifier for the segment, unique among segments in the same trace, in 16 hexadecimal digits.     * @trace_id@ - A unique identifier that connects all segments and subsegments originating from a single client request.     * @start_time@ - Time the segment or subsegment was created, in floating point seconds in epoch time, accurate to milliseconds. For example, @1480615200.010@ or @1.480615200010E9@ .     * @end_time@ - Time the segment or subsegment was closed. For example, @1480615200.090@ or @1.480615200090E9@ . Specify either an @end_time@ or @in_progress@ .     * @in_progress@ - Set to @true@ instead of specifying an @end_time@ to record that a segment has been started, but is not complete. Send an in progress segment when your application receives a request that will take a long time to serve, to trace the fact that the request was received. When the response is sent, send the complete segment to overwrite the in-progress segment. A @trace_id@ consists of three numbers separated by hyphens. For example, 1-58406520-a006649127e371903a2de979. This includes: __Trace ID Format__      * The version number, i.e. @1@ .     * The time of the original request, in Unix epoch time, in 8 hexadecimal digits. For example, 10:00AM December 2nd, 2016 PST in epoch time is @1480615200@ seconds, or @58406520@ in hexadecimal.     * A 96-bit identifier for the trace, globally unique, in 24 hexadecimal digits.
+
+-- | A string containing a JSON document defining one or more segments or subsegments.
 ptsTraceSegmentDocuments :: Lens' PutTraceSegments [Text]
 ptsTraceSegmentDocuments = lens _ptsTraceSegmentDocuments (\ s a -> s{_ptsTraceSegmentDocuments = a}) . _Coerce;
 
@@ -75,9 +104,9 @@
                    (x .?> "UnprocessedTraceSegments" .!@ mempty) <*>
                      (pure (fromEnum s)))
 
-instance Hashable PutTraceSegments
+instance Hashable PutTraceSegments where
 
-instance NFData PutTraceSegments
+instance NFData PutTraceSegments where
 
 instance ToHeaders PutTraceSegments where
         toHeaders = const mempty
@@ -98,10 +127,11 @@
 
 -- | /See:/ 'putTraceSegmentsResponse' smart constructor.
 data PutTraceSegmentsResponse = PutTraceSegmentsResponse'
-    { _ptsrsUnprocessedTraceSegments :: !(Maybe [UnprocessedTraceSegment])
-    , _ptsrsResponseStatus           :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ptsrsUnprocessedTraceSegments :: !(Maybe [UnprocessedTraceSegment])
+  , _ptsrsResponseStatus           :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'PutTraceSegmentsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -113,11 +143,12 @@
     :: Int -- ^ 'ptsrsResponseStatus'
     -> PutTraceSegmentsResponse
 putTraceSegmentsResponse pResponseStatus_ =
-    PutTraceSegmentsResponse'
-    { _ptsrsUnprocessedTraceSegments = Nothing
-    , _ptsrsResponseStatus = pResponseStatus_
-    }
+  PutTraceSegmentsResponse'
+  { _ptsrsUnprocessedTraceSegments = Nothing
+  , _ptsrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Segments that failed processing.
 ptsrsUnprocessedTraceSegments :: Lens' PutTraceSegmentsResponse [UnprocessedTraceSegment]
 ptsrsUnprocessedTraceSegments = lens _ptsrsUnprocessedTraceSegments (\ s a -> s{_ptsrsUnprocessedTraceSegments = a}) . _Default . _Coerce;
@@ -126,4 +157,4 @@
 ptsrsResponseStatus :: Lens' PutTraceSegmentsResponse Int
 ptsrsResponseStatus = lens _ptsrsResponseStatus (\ s a -> s{_ptsrsResponseStatus = a});
 
-instance NFData PutTraceSegmentsResponse
+instance NFData PutTraceSegmentsResponse where
diff --git a/gen/Network/AWS/XRay/Types.hs b/gen/Network/AWS/XRay/Types.hs
--- a/gen/Network/AWS/XRay/Types.hs
+++ b/gen/Network/AWS/XRay/Types.hs
@@ -4,9 +4,9 @@
 
 -- |
 -- Module      : Network.AWS.XRay.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)
 --
@@ -110,6 +110,7 @@
     , sState
     , sStartTime
     , sRoot
+    , sResponseTimeHistogram
     , sDurationHistogram
     , sReferenceId
     , sAccountId
@@ -181,38 +182,40 @@
     , vwsiAnnotationValue
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Sign.V4
-import           Network.AWS.XRay.Types.Product
-import           Network.AWS.XRay.Types.Sum
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Sign.V4
+import Network.AWS.XRay.Types.Product
+import Network.AWS.XRay.Types.Sum
 
 -- | API version @2016-04-12@ of the Amazon X-Ray SDK configuration.
 xRay :: Service
 xRay =
-    Service
-    { _svcAbbrev = "XRay"
-    , _svcSigner = v4
-    , _svcPrefix = "xray"
-    , _svcVersion = "2016-04-12"
-    , _svcEndpoint = defaultEndpoint xRay
-    , _svcTimeout = Just 70
-    , _svcCheck = statusSuccess
-    , _svcError = parseJSONError "XRay"
-    , _svcRetry = retry
-    }
+  Service
+  { _svcAbbrev = "XRay"
+  , _svcSigner = v4
+  , _svcPrefix = "xray"
+  , _svcVersion = "2016-04-12"
+  , _svcEndpoint = defaultEndpoint xRay
+  , _svcTimeout = Just 70
+  , _svcCheck = statusSuccess
+  , _svcError = parseJSONError "XRay"
+  , _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"
@@ -221,15 +224,18 @@
       | has (hasStatus 509) e = Just "limit_exceeded"
       | otherwise = Nothing
 
+
 -- | The request is missing required parameters or has invalid parameters.
 --
 --
 _InvalidRequestException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidRequestException = _ServiceError . hasCode "InvalidRequestException"
+_InvalidRequestException = _MatchServiceError xRay "InvalidRequestException"
 
+
 -- | The request exceeds the maximum number of requests per second.
 --
 --
 _ThrottledException :: AsError a => Getting (First ServiceError) a ServiceError
 _ThrottledException =
-    _ServiceError . hasStatus 429 . hasCode "ThrottledException"
+  _MatchServiceError xRay "ThrottledException" . hasStatus 429
+
diff --git a/gen/Network/AWS/XRay/Types/Product.hs b/gen/Network/AWS/XRay/Types/Product.hs
--- a/gen/Network/AWS/XRay/Types/Product.hs
+++ b/gen/Network/AWS/XRay/Types/Product.hs
@@ -9,17 +9,17 @@
 
 -- |
 -- Module      : Network.AWS.XRay.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.XRay.Types.Product where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.XRay.Types.Sum
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.XRay.Types.Sum
 
 -- | An alias for an edge.
 --
@@ -27,11 +27,12 @@
 --
 -- /See:/ 'alias' smart constructor.
 data Alias = Alias'
-    { _aNames :: !(Maybe [Text])
-    , _aName  :: !(Maybe Text)
-    , _aType  :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _aNames :: !(Maybe [Text])
+  , _aName  :: !(Maybe Text)
+  , _aType  :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Alias' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -43,13 +44,9 @@
 -- * 'aType' - The type of the alias.
 alias
     :: Alias
-alias =
-    Alias'
-    { _aNames = Nothing
-    , _aName = Nothing
-    , _aType = Nothing
-    }
+alias = Alias' {_aNames = Nothing, _aName = Nothing, _aType = Nothing}
 
+
 -- | A list of names for the alias, including the canonical name.
 aNames :: Lens' Alias [Text]
 aNames = lens _aNames (\ s a -> s{_aNames = a}) . _Default . _Coerce;
@@ -70,9 +67,9 @@
                    (x .:? "Names" .!= mempty) <*> (x .:? "Name") <*>
                      (x .:? "Type"))
 
-instance Hashable Alias
+instance Hashable Alias where
 
-instance NFData Alias
+instance NFData Alias where
 
 -- | Value of a segment annotation. Has one of three value types: Number, Boolean or String.
 --
@@ -80,11 +77,12 @@
 --
 -- /See:/ 'annotationValue' smart constructor.
 data AnnotationValue = AnnotationValue'
-    { _avNumberValue  :: !(Maybe Double)
-    , _avStringValue  :: !(Maybe Text)
-    , _avBooleanValue :: !(Maybe Bool)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _avNumberValue  :: !(Maybe Double)
+  , _avStringValue  :: !(Maybe Text)
+  , _avBooleanValue :: !(Maybe Bool)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'AnnotationValue' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -97,12 +95,13 @@
 annotationValue
     :: AnnotationValue
 annotationValue =
-    AnnotationValue'
-    { _avNumberValue = Nothing
-    , _avStringValue = Nothing
-    , _avBooleanValue = Nothing
-    }
+  AnnotationValue'
+  { _avNumberValue = Nothing
+  , _avStringValue = Nothing
+  , _avBooleanValue = Nothing
+  }
 
+
 -- | Value for a Number annotation.
 avNumberValue :: Lens' AnnotationValue (Maybe Double)
 avNumberValue = lens _avNumberValue (\ s a -> s{_avNumberValue = a});
@@ -123,9 +122,9 @@
                    (x .:? "NumberValue") <*> (x .:? "StringValue") <*>
                      (x .:? "BooleanValue"))
 
-instance Hashable AnnotationValue
+instance Hashable AnnotationValue where
 
-instance NFData AnnotationValue
+instance NFData AnnotationValue where
 
 -- |
 --
@@ -133,14 +132,15 @@
 --
 -- /See:/ 'backendConnectionErrors' smart constructor.
 data BackendConnectionErrors = BackendConnectionErrors'
-    { _bceOtherCount             :: !(Maybe Int)
-    , _bceTimeoutCount           :: !(Maybe Int)
-    , _bceHTTPCode5XXCount       :: !(Maybe Int)
-    , _bceConnectionRefusedCount :: !(Maybe Int)
-    , _bceHTTPCode4XXCount       :: !(Maybe Int)
-    , _bceUnknownHostCount       :: !(Maybe Int)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _bceOtherCount             :: !(Maybe Int)
+  , _bceTimeoutCount           :: !(Maybe Int)
+  , _bceHTTPCode5XXCount       :: !(Maybe Int)
+  , _bceConnectionRefusedCount :: !(Maybe Int)
+  , _bceHTTPCode4XXCount       :: !(Maybe Int)
+  , _bceUnknownHostCount       :: !(Maybe Int)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'BackendConnectionErrors' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -159,15 +159,16 @@
 backendConnectionErrors
     :: BackendConnectionErrors
 backendConnectionErrors =
-    BackendConnectionErrors'
-    { _bceOtherCount = Nothing
-    , _bceTimeoutCount = Nothing
-    , _bceHTTPCode5XXCount = Nothing
-    , _bceConnectionRefusedCount = Nothing
-    , _bceHTTPCode4XXCount = Nothing
-    , _bceUnknownHostCount = Nothing
-    }
+  BackendConnectionErrors'
+  { _bceOtherCount = Nothing
+  , _bceTimeoutCount = Nothing
+  , _bceHTTPCode5XXCount = Nothing
+  , _bceConnectionRefusedCount = Nothing
+  , _bceHTTPCode4XXCount = Nothing
+  , _bceUnknownHostCount = Nothing
+  }
 
+
 -- |
 bceOtherCount :: Lens' BackendConnectionErrors (Maybe Int)
 bceOtherCount = lens _bceOtherCount (\ s a -> s{_bceOtherCount = a});
@@ -192,9 +193,9 @@
 bceUnknownHostCount :: Lens' BackendConnectionErrors (Maybe Int)
 bceUnknownHostCount = lens _bceUnknownHostCount (\ s a -> s{_bceUnknownHostCount = a});
 
-instance Hashable BackendConnectionErrors
+instance Hashable BackendConnectionErrors where
 
-instance NFData BackendConnectionErrors
+instance NFData BackendConnectionErrors where
 
 instance ToJSON BackendConnectionErrors where
         toJSON BackendConnectionErrors'{..}
@@ -214,14 +215,15 @@
 --
 -- /See:/ 'edge' smart constructor.
 data Edge = Edge'
-    { _eStartTime             :: !(Maybe POSIX)
-    , _eAliases               :: !(Maybe [Alias])
-    , _eResponseTimeHistogram :: !(Maybe [HistogramEntry])
-    , _eReferenceId           :: !(Maybe Int)
-    , _eEndTime               :: !(Maybe POSIX)
-    , _eSummaryStatistics     :: !(Maybe EdgeStatistics)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _eStartTime             :: !(Maybe POSIX)
+  , _eAliases               :: !(Maybe [Alias])
+  , _eResponseTimeHistogram :: !(Maybe [HistogramEntry])
+  , _eReferenceId           :: !(Maybe Int)
+  , _eEndTime               :: !(Maybe POSIX)
+  , _eSummaryStatistics     :: !(Maybe EdgeStatistics)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Edge' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -230,7 +232,7 @@
 --
 -- * 'eAliases' - Aliases for the edge.
 --
--- * 'eResponseTimeHistogram' - Histogram describing the prominence of response times on the edge.
+-- * 'eResponseTimeHistogram' - A histogram that maps the spread of client response times on an edge.
 --
 -- * 'eReferenceId' - Identifier of the edge. Unique within a service map.
 --
@@ -240,15 +242,16 @@
 edge
     :: Edge
 edge =
-    Edge'
-    { _eStartTime = Nothing
-    , _eAliases = Nothing
-    , _eResponseTimeHistogram = Nothing
-    , _eReferenceId = Nothing
-    , _eEndTime = Nothing
-    , _eSummaryStatistics = Nothing
-    }
+  Edge'
+  { _eStartTime = Nothing
+  , _eAliases = Nothing
+  , _eResponseTimeHistogram = Nothing
+  , _eReferenceId = Nothing
+  , _eEndTime = Nothing
+  , _eSummaryStatistics = Nothing
+  }
 
+
 -- | The start time of the first segment on the edge.
 eStartTime :: Lens' Edge (Maybe UTCTime)
 eStartTime = lens _eStartTime (\ s a -> s{_eStartTime = a}) . mapping _Time;
@@ -257,7 +260,7 @@
 eAliases :: Lens' Edge [Alias]
 eAliases = lens _eAliases (\ s a -> s{_eAliases = a}) . _Default . _Coerce;
 
--- | Histogram describing the prominence of response times on the edge.
+-- | A histogram that maps the spread of client response times on an edge.
 eResponseTimeHistogram :: Lens' Edge [HistogramEntry]
 eResponseTimeHistogram = lens _eResponseTimeHistogram (\ s a -> s{_eResponseTimeHistogram = a}) . _Default . _Coerce;
 
@@ -284,9 +287,9 @@
                      <*> (x .:? "EndTime")
                      <*> (x .:? "SummaryStatistics"))
 
-instance Hashable Edge
+instance Hashable Edge where
 
-instance NFData Edge
+instance NFData Edge where
 
 -- | Response statistics for an edge.
 --
@@ -294,13 +297,14 @@
 --
 -- /See:/ 'edgeStatistics' smart constructor.
 data EdgeStatistics = EdgeStatistics'
-    { _esFaultStatistics   :: !(Maybe FaultStatistics)
-    , _esOKCount           :: !(Maybe Integer)
-    , _esTotalResponseTime :: !(Maybe Double)
-    , _esErrorStatistics   :: !(Maybe ErrorStatistics)
-    , _esTotalCount        :: !(Maybe Integer)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _esFaultStatistics   :: !(Maybe FaultStatistics)
+  , _esOKCount           :: !(Maybe Integer)
+  , _esTotalResponseTime :: !(Maybe Double)
+  , _esErrorStatistics   :: !(Maybe ErrorStatistics)
+  , _esTotalCount        :: !(Maybe Integer)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'EdgeStatistics' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -317,14 +321,15 @@
 edgeStatistics
     :: EdgeStatistics
 edgeStatistics =
-    EdgeStatistics'
-    { _esFaultStatistics = Nothing
-    , _esOKCount = Nothing
-    , _esTotalResponseTime = Nothing
-    , _esErrorStatistics = Nothing
-    , _esTotalCount = Nothing
-    }
+  EdgeStatistics'
+  { _esFaultStatistics = Nothing
+  , _esOKCount = Nothing
+  , _esTotalResponseTime = Nothing
+  , _esErrorStatistics = Nothing
+  , _esTotalCount = Nothing
+  }
 
+
 -- | Information about requests that failed with a 5xx Server Error status code.
 esFaultStatistics :: Lens' EdgeStatistics (Maybe FaultStatistics)
 esFaultStatistics = lens _esFaultStatistics (\ s a -> s{_esFaultStatistics = a});
@@ -355,9 +360,9 @@
                      <*> (x .:? "ErrorStatistics")
                      <*> (x .:? "TotalCount"))
 
-instance Hashable EdgeStatistics
+instance Hashable EdgeStatistics where
 
-instance NFData EdgeStatistics
+instance NFData EdgeStatistics where
 
 -- | Information about requests that failed with a 4xx Client Error status code.
 --
@@ -365,11 +370,12 @@
 --
 -- /See:/ 'errorStatistics' smart constructor.
 data ErrorStatistics = ErrorStatistics'
-    { _eOtherCount    :: !(Maybe Integer)
-    , _eThrottleCount :: !(Maybe Integer)
-    , _eTotalCount    :: !(Maybe Integer)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _eOtherCount    :: !(Maybe Integer)
+  , _eThrottleCount :: !(Maybe Integer)
+  , _eTotalCount    :: !(Maybe Integer)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ErrorStatistics' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -382,12 +388,10 @@
 errorStatistics
     :: ErrorStatistics
 errorStatistics =
-    ErrorStatistics'
-    { _eOtherCount = Nothing
-    , _eThrottleCount = Nothing
-    , _eTotalCount = Nothing
-    }
+  ErrorStatistics'
+  {_eOtherCount = Nothing, _eThrottleCount = Nothing, _eTotalCount = Nothing}
 
+
 -- | The number of requests that failed with untracked 4xx Client Error status codes.
 eOtherCount :: Lens' ErrorStatistics (Maybe Integer)
 eOtherCount = lens _eOtherCount (\ s a -> s{_eOtherCount = a});
@@ -408,9 +412,9 @@
                    (x .:? "OtherCount") <*> (x .:? "ThrottleCount") <*>
                      (x .:? "TotalCount"))
 
-instance Hashable ErrorStatistics
+instance Hashable ErrorStatistics where
 
-instance NFData ErrorStatistics
+instance NFData ErrorStatistics where
 
 -- | Information about requests that failed with a 5xx Server Error status code.
 --
@@ -418,10 +422,11 @@
 --
 -- /See:/ 'faultStatistics' smart constructor.
 data FaultStatistics = FaultStatistics'
-    { _fsOtherCount :: !(Maybe Integer)
-    , _fsTotalCount :: !(Maybe Integer)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _fsOtherCount :: !(Maybe Integer)
+  , _fsTotalCount :: !(Maybe Integer)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'FaultStatistics' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -432,11 +437,9 @@
 faultStatistics
     :: FaultStatistics
 faultStatistics =
-    FaultStatistics'
-    { _fsOtherCount = Nothing
-    , _fsTotalCount = Nothing
-    }
+  FaultStatistics' {_fsOtherCount = Nothing, _fsTotalCount = Nothing}
 
+
 -- | The number of requests that failed with untracked 5xx Server Error status codes.
 fsOtherCount :: Lens' FaultStatistics (Maybe Integer)
 fsOtherCount = lens _fsOtherCount (\ s a -> s{_fsOtherCount = a});
@@ -452,9 +455,9 @@
                  FaultStatistics' <$>
                    (x .:? "OtherCount") <*> (x .:? "TotalCount"))
 
-instance Hashable FaultStatistics
+instance Hashable FaultStatistics where
 
-instance NFData FaultStatistics
+instance NFData FaultStatistics where
 
 -- | Information about an HTTP request.
 --
@@ -462,13 +465,14 @@
 --
 -- /See:/ 'hTTP' smart constructor.
 data HTTP = HTTP'
-    { _httpHTTPMethod :: !(Maybe Text)
-    , _httpHTTPStatus :: !(Maybe Int)
-    , _httpClientIP   :: !(Maybe Text)
-    , _httpUserAgent  :: !(Maybe Text)
-    , _httpHTTPURL    :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _httpHTTPMethod :: !(Maybe Text)
+  , _httpHTTPStatus :: !(Maybe Int)
+  , _httpClientIP   :: !(Maybe Text)
+  , _httpUserAgent  :: !(Maybe Text)
+  , _httpHTTPURL    :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'HTTP' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -485,14 +489,15 @@
 hTTP
     :: HTTP
 hTTP =
-    HTTP'
-    { _httpHTTPMethod = Nothing
-    , _httpHTTPStatus = Nothing
-    , _httpClientIP = Nothing
-    , _httpUserAgent = Nothing
-    , _httpHTTPURL = Nothing
-    }
+  HTTP'
+  { _httpHTTPMethod = Nothing
+  , _httpHTTPStatus = Nothing
+  , _httpClientIP = Nothing
+  , _httpUserAgent = Nothing
+  , _httpHTTPURL = Nothing
+  }
 
+
 -- | The request method.
 httpHTTPMethod :: Lens' HTTP (Maybe Text)
 httpHTTPMethod = lens _httpHTTPMethod (\ s a -> s{_httpHTTPMethod = a});
@@ -523,9 +528,9 @@
                      <*> (x .:? "UserAgent")
                      <*> (x .:? "HttpURL"))
 
-instance Hashable HTTP
+instance Hashable HTTP where
 
-instance NFData HTTP
+instance NFData HTTP where
 
 -- | An entry in a histogram for a statistic. A histogram maps the range of observed values on the X axis, and the prevalence of each value on the Y axis.
 --
@@ -533,10 +538,11 @@
 --
 -- /See:/ 'histogramEntry' smart constructor.
 data HistogramEntry = HistogramEntry'
-    { _heCount :: !(Maybe Int)
-    , _heValue :: !(Maybe Double)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _heCount :: !(Maybe Int)
+  , _heValue :: !(Maybe Double)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'HistogramEntry' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -546,12 +552,9 @@
 -- * 'heValue' - The value of the entry.
 histogramEntry
     :: HistogramEntry
-histogramEntry =
-    HistogramEntry'
-    { _heCount = Nothing
-    , _heValue = Nothing
-    }
+histogramEntry = HistogramEntry' {_heCount = Nothing, _heValue = Nothing}
 
+
 -- | The prevalence of the entry.
 heCount :: Lens' HistogramEntry (Maybe Int)
 heCount = lens _heCount (\ s a -> s{_heCount = a});
@@ -567,36 +570,34 @@
                  HistogramEntry' <$>
                    (x .:? "Count") <*> (x .:? "Value"))
 
-instance Hashable HistogramEntry
+instance Hashable HistogramEntry where
 
-instance NFData HistogramEntry
+instance NFData HistogramEntry where
 
--- | Information about a segment
+-- | A segment from a trace that has been ingested by the X-Ray service. The segment can be compiled from documents uploaded with 'PutTraceSegments' , or an @inferred@ segment for a downstream service, generated from a subsegment sent by the service that called it.
 --
 --
 --
 -- /See:/ 'segment' smart constructor.
 data Segment = Segment'
-    { _sDocument :: !(Maybe Text)
-    , _sId       :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _sDocument :: !(Maybe Text)
+  , _sId       :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Segment' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'sDocument' - The segment document.
+-- * 'sDocument' - The segment document
 --
 -- * 'sId' - The segment's ID.
 segment
     :: Segment
-segment =
-    Segment'
-    { _sDocument = Nothing
-    , _sId = Nothing
-    }
+segment = Segment' {_sDocument = Nothing, _sId = Nothing}
 
--- | The segment document.
+
+-- | The segment document
 sDocument :: Lens' Segment (Maybe Text)
 sDocument = lens _sDocument (\ s a -> s{_sDocument = a});
 
@@ -610,9 +611,9 @@
               (\ x ->
                  Segment' <$> (x .:? "Document") <*> (x .:? "Id"))
 
-instance Hashable Segment
+instance Hashable Segment where
 
-instance NFData Segment
+instance NFData Segment where
 
 -- |
 --
@@ -620,12 +621,13 @@
 --
 -- /See:/ 'serviceId' smart constructor.
 data ServiceId = ServiceId'
-    { _siAccountId :: !(Maybe Text)
-    , _siNames     :: !(Maybe [Text])
-    , _siName      :: !(Maybe Text)
-    , _siType      :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _siAccountId :: !(Maybe Text)
+  , _siNames     :: !(Maybe [Text])
+  , _siName      :: !(Maybe Text)
+  , _siType      :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ServiceId' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -640,13 +642,14 @@
 serviceId
     :: ServiceId
 serviceId =
-    ServiceId'
-    { _siAccountId = Nothing
-    , _siNames = Nothing
-    , _siName = Nothing
-    , _siType = Nothing
-    }
+  ServiceId'
+  { _siAccountId = Nothing
+  , _siNames = Nothing
+  , _siName = Nothing
+  , _siType = Nothing
+  }
 
+
 -- |
 siAccountId :: Lens' ServiceId (Maybe Text)
 siAccountId = lens _siAccountId (\ s a -> s{_siAccountId = a});
@@ -672,9 +675,9 @@
                      <*> (x .:? "Name")
                      <*> (x .:? "Type"))
 
-instance Hashable ServiceId
+instance Hashable ServiceId where
 
-instance NFData ServiceId
+instance NFData ServiceId where
 
 -- | Information about an application that processed requests, users that made requests, or downstream services, resources and applications that an application used.
 --
@@ -682,20 +685,22 @@
 --
 -- /See:/ 'serviceInfo' smart constructor.
 data ServiceInfo = ServiceInfo'
-    { _sState             :: !(Maybe Text)
-    , _sStartTime         :: !(Maybe POSIX)
-    , _sRoot              :: !(Maybe Bool)
-    , _sDurationHistogram :: !(Maybe [HistogramEntry])
-    , _sReferenceId       :: !(Maybe Int)
-    , _sAccountId         :: !(Maybe Text)
-    , _sNames             :: !(Maybe [Text])
-    , _sName              :: !(Maybe Text)
-    , _sEndTime           :: !(Maybe POSIX)
-    , _sType              :: !(Maybe Text)
-    , _sEdges             :: !(Maybe [Edge])
-    , _sSummaryStatistics :: !(Maybe ServiceStatistics)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _sState                 :: !(Maybe Text)
+  , _sStartTime             :: !(Maybe POSIX)
+  , _sRoot                  :: !(Maybe Bool)
+  , _sResponseTimeHistogram :: !(Maybe [HistogramEntry])
+  , _sDurationHistogram     :: !(Maybe [HistogramEntry])
+  , _sReferenceId           :: !(Maybe Int)
+  , _sAccountId             :: !(Maybe Text)
+  , _sNames                 :: !(Maybe [Text])
+  , _sName                  :: !(Maybe Text)
+  , _sEndTime               :: !(Maybe POSIX)
+  , _sType                  :: !(Maybe Text)
+  , _sEdges                 :: !(Maybe [Edge])
+  , _sSummaryStatistics     :: !(Maybe ServiceStatistics)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ServiceInfo' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -706,8 +711,10 @@
 --
 -- * 'sRoot' - Indicates that the service was the first service to process a request.
 --
--- * 'sDurationHistogram' - Histogram mapping the spread of trace durations
+-- * 'sResponseTimeHistogram' - A histogram that maps the spread of service response times.
 --
+-- * 'sDurationHistogram' - A histogram that maps the spread of service durations.
+--
 -- * 'sReferenceId' - Identifier for the service. Unique within the service map.
 --
 -- * 'sAccountId' - Identifier of the AWS account in which the service runs.
@@ -726,21 +733,23 @@
 serviceInfo
     :: ServiceInfo
 serviceInfo =
-    ServiceInfo'
-    { _sState = Nothing
-    , _sStartTime = Nothing
-    , _sRoot = Nothing
-    , _sDurationHistogram = Nothing
-    , _sReferenceId = Nothing
-    , _sAccountId = Nothing
-    , _sNames = Nothing
-    , _sName = Nothing
-    , _sEndTime = Nothing
-    , _sType = Nothing
-    , _sEdges = Nothing
-    , _sSummaryStatistics = Nothing
-    }
+  ServiceInfo'
+  { _sState = Nothing
+  , _sStartTime = Nothing
+  , _sRoot = Nothing
+  , _sResponseTimeHistogram = Nothing
+  , _sDurationHistogram = Nothing
+  , _sReferenceId = Nothing
+  , _sAccountId = Nothing
+  , _sNames = Nothing
+  , _sName = Nothing
+  , _sEndTime = Nothing
+  , _sType = Nothing
+  , _sEdges = Nothing
+  , _sSummaryStatistics = Nothing
+  }
 
+
 -- | The service's state.
 sState :: Lens' ServiceInfo (Maybe Text)
 sState = lens _sState (\ s a -> s{_sState = a});
@@ -753,7 +762,11 @@
 sRoot :: Lens' ServiceInfo (Maybe Bool)
 sRoot = lens _sRoot (\ s a -> s{_sRoot = a});
 
--- | Histogram mapping the spread of trace durations
+-- | A histogram that maps the spread of service response times.
+sResponseTimeHistogram :: Lens' ServiceInfo [HistogramEntry]
+sResponseTimeHistogram = lens _sResponseTimeHistogram (\ s a -> s{_sResponseTimeHistogram = a}) . _Default . _Coerce;
+
+-- | A histogram that maps the spread of service durations.
 sDurationHistogram :: Lens' ServiceInfo [HistogramEntry]
 sDurationHistogram = lens _sDurationHistogram (\ s a -> s{_sDurationHistogram = a}) . _Default . _Coerce;
 
@@ -796,6 +809,7 @@
                  ServiceInfo' <$>
                    (x .:? "State") <*> (x .:? "StartTime") <*>
                      (x .:? "Root")
+                     <*> (x .:? "ResponseTimeHistogram" .!= mempty)
                      <*> (x .:? "DurationHistogram" .!= mempty)
                      <*> (x .:? "ReferenceId")
                      <*> (x .:? "AccountId")
@@ -806,9 +820,9 @@
                      <*> (x .:? "Edges" .!= mempty)
                      <*> (x .:? "SummaryStatistics"))
 
-instance Hashable ServiceInfo
+instance Hashable ServiceInfo where
 
-instance NFData ServiceInfo
+instance NFData ServiceInfo where
 
 -- | Response statistics for a service.
 --
@@ -816,13 +830,14 @@
 --
 -- /See:/ 'serviceStatistics' smart constructor.
 data ServiceStatistics = ServiceStatistics'
-    { _ssFaultStatistics   :: !(Maybe FaultStatistics)
-    , _ssOKCount           :: !(Maybe Integer)
-    , _ssTotalResponseTime :: !(Maybe Double)
-    , _ssErrorStatistics   :: !(Maybe ErrorStatistics)
-    , _ssTotalCount        :: !(Maybe Integer)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ssFaultStatistics   :: !(Maybe FaultStatistics)
+  , _ssOKCount           :: !(Maybe Integer)
+  , _ssTotalResponseTime :: !(Maybe Double)
+  , _ssErrorStatistics   :: !(Maybe ErrorStatistics)
+  , _ssTotalCount        :: !(Maybe Integer)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ServiceStatistics' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -839,14 +854,15 @@
 serviceStatistics
     :: ServiceStatistics
 serviceStatistics =
-    ServiceStatistics'
-    { _ssFaultStatistics = Nothing
-    , _ssOKCount = Nothing
-    , _ssTotalResponseTime = Nothing
-    , _ssErrorStatistics = Nothing
-    , _ssTotalCount = Nothing
-    }
+  ServiceStatistics'
+  { _ssFaultStatistics = Nothing
+  , _ssOKCount = Nothing
+  , _ssTotalResponseTime = Nothing
+  , _ssErrorStatistics = Nothing
+  , _ssTotalCount = Nothing
+  }
 
+
 -- | Information about requests that failed with a 5xx Server Error status code.
 ssFaultStatistics :: Lens' ServiceStatistics (Maybe FaultStatistics)
 ssFaultStatistics = lens _ssFaultStatistics (\ s a -> s{_ssFaultStatistics = a});
@@ -877,9 +893,9 @@
                      <*> (x .:? "ErrorStatistics")
                      <*> (x .:? "TotalCount"))
 
-instance Hashable ServiceStatistics
+instance Hashable ServiceStatistics where
 
-instance NFData ServiceStatistics
+instance NFData ServiceStatistics where
 
 -- |
 --
@@ -887,14 +903,15 @@
 --
 -- /See:/ 'telemetryRecord' smart constructor.
 data TelemetryRecord = TelemetryRecord'
-    { _trSegmentsReceivedCount   :: !(Maybe Int)
-    , _trSegmentsSentCount       :: !(Maybe Int)
-    , _trSegmentsSpilloverCount  :: !(Maybe Int)
-    , _trSegmentsRejectedCount   :: !(Maybe Int)
-    , _trTimestamp               :: !(Maybe POSIX)
-    , _trBackendConnectionErrors :: !(Maybe BackendConnectionErrors)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _trSegmentsReceivedCount   :: !(Maybe Int)
+  , _trSegmentsSentCount       :: !(Maybe Int)
+  , _trSegmentsSpilloverCount  :: !(Maybe Int)
+  , _trSegmentsRejectedCount   :: !(Maybe Int)
+  , _trTimestamp               :: !(Maybe POSIX)
+  , _trBackendConnectionErrors :: !(Maybe BackendConnectionErrors)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'TelemetryRecord' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -913,15 +930,16 @@
 telemetryRecord
     :: TelemetryRecord
 telemetryRecord =
-    TelemetryRecord'
-    { _trSegmentsReceivedCount = Nothing
-    , _trSegmentsSentCount = Nothing
-    , _trSegmentsSpilloverCount = Nothing
-    , _trSegmentsRejectedCount = Nothing
-    , _trTimestamp = Nothing
-    , _trBackendConnectionErrors = Nothing
-    }
+  TelemetryRecord'
+  { _trSegmentsReceivedCount = Nothing
+  , _trSegmentsSentCount = Nothing
+  , _trSegmentsSpilloverCount = Nothing
+  , _trSegmentsRejectedCount = Nothing
+  , _trTimestamp = Nothing
+  , _trBackendConnectionErrors = Nothing
+  }
 
+
 -- |
 trSegmentsReceivedCount :: Lens' TelemetryRecord (Maybe Int)
 trSegmentsReceivedCount = lens _trSegmentsReceivedCount (\ s a -> s{_trSegmentsReceivedCount = a});
@@ -946,9 +964,9 @@
 trBackendConnectionErrors :: Lens' TelemetryRecord (Maybe BackendConnectionErrors)
 trBackendConnectionErrors = lens _trBackendConnectionErrors (\ s a -> s{_trBackendConnectionErrors = a});
 
-instance Hashable TelemetryRecord
+instance Hashable TelemetryRecord where
 
-instance NFData TelemetryRecord
+instance NFData TelemetryRecord where
 
 instance ToJSON TelemetryRecord where
         toJSON TelemetryRecord'{..}
@@ -971,11 +989,12 @@
 --
 -- /See:/ 'trace' smart constructor.
 data Trace = Trace'
-    { _tId       :: !(Maybe Text)
-    , _tSegments :: !(Maybe [Segment])
-    , _tDuration :: !(Maybe Double)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _tId       :: !(Maybe Text)
+  , _tSegments :: !(Maybe [Segment])
+  , _tDuration :: !(Maybe Double)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Trace' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -987,13 +1006,9 @@
 -- * 'tDuration' - The length of time in seconds between the start time of the root segment and the end time of the last segment that completed.
 trace
     :: Trace
-trace =
-    Trace'
-    { _tId = Nothing
-    , _tSegments = Nothing
-    , _tDuration = Nothing
-    }
+trace = Trace' {_tId = Nothing, _tSegments = Nothing, _tDuration = Nothing}
 
+
 -- | The unique identifier for the request that generated the trace's segments and subsegments.
 tId :: Lens' Trace (Maybe Text)
 tId = lens _tId (\ s a -> s{_tId = a});
@@ -1014,9 +1029,9 @@
                    (x .:? "Id") <*> (x .:? "Segments" .!= mempty) <*>
                      (x .:? "Duration"))
 
-instance Hashable Trace
+instance Hashable Trace where
 
-instance NFData Trace
+instance NFData Trace where
 
 -- | Metadata generated from the segment documents in a trace.
 --
@@ -1024,19 +1039,20 @@
 --
 -- /See:/ 'traceSummary' smart constructor.
 data TraceSummary = TraceSummary'
-    { _tsAnnotations  :: !(Maybe (Map Text [ValueWithServiceIds]))
-    , _tsHasThrottle  :: !(Maybe Bool)
-    , _tsUsers        :: !(Maybe [TraceUser])
-    , _tsHasFault     :: !(Maybe Bool)
-    , _tsServiceIds   :: !(Maybe [ServiceId])
-    , _tsIsPartial    :: !(Maybe Bool)
-    , _tsHasError     :: !(Maybe Bool)
-    , _tsId           :: !(Maybe Text)
-    , _tsHTTP         :: !(Maybe HTTP)
-    , _tsDuration     :: !(Maybe Double)
-    , _tsResponseTime :: !(Maybe Double)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _tsAnnotations  :: !(Maybe (Map Text [ValueWithServiceIds]))
+  , _tsHasThrottle  :: !(Maybe Bool)
+  , _tsUsers        :: !(Maybe [TraceUser])
+  , _tsHasFault     :: !(Maybe Bool)
+  , _tsServiceIds   :: !(Maybe [ServiceId])
+  , _tsIsPartial    :: !(Maybe Bool)
+  , _tsHasError     :: !(Maybe Bool)
+  , _tsId           :: !(Maybe Text)
+  , _tsHTTP         :: !(Maybe HTTP)
+  , _tsDuration     :: !(Maybe Double)
+  , _tsResponseTime :: !(Maybe Double)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'TraceSummary' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -1065,20 +1081,21 @@
 traceSummary
     :: TraceSummary
 traceSummary =
-    TraceSummary'
-    { _tsAnnotations = Nothing
-    , _tsHasThrottle = Nothing
-    , _tsUsers = Nothing
-    , _tsHasFault = Nothing
-    , _tsServiceIds = Nothing
-    , _tsIsPartial = Nothing
-    , _tsHasError = Nothing
-    , _tsId = Nothing
-    , _tsHTTP = Nothing
-    , _tsDuration = Nothing
-    , _tsResponseTime = Nothing
-    }
+  TraceSummary'
+  { _tsAnnotations = Nothing
+  , _tsHasThrottle = Nothing
+  , _tsUsers = Nothing
+  , _tsHasFault = Nothing
+  , _tsServiceIds = Nothing
+  , _tsIsPartial = Nothing
+  , _tsHasError = Nothing
+  , _tsId = Nothing
+  , _tsHTTP = Nothing
+  , _tsDuration = Nothing
+  , _tsResponseTime = Nothing
+  }
 
+
 -- | Annotations from the trace's segment documents.
 tsAnnotations :: Lens' TraceSummary (HashMap Text [ValueWithServiceIds])
 tsAnnotations = lens _tsAnnotations (\ s a -> s{_tsAnnotations = a}) . _Default . _Map;
@@ -1140,9 +1157,9 @@
                      <*> (x .:? "Duration")
                      <*> (x .:? "ResponseTime"))
 
-instance Hashable TraceSummary
+instance Hashable TraceSummary where
 
-instance NFData TraceSummary
+instance NFData TraceSummary where
 
 -- | Information about a user recorded in segment documents.
 --
@@ -1150,10 +1167,11 @@
 --
 -- /See:/ 'traceUser' smart constructor.
 data TraceUser = TraceUser'
-    { _tuServiceIds :: !(Maybe [ServiceId])
-    , _tuUserName   :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _tuServiceIds :: !(Maybe [ServiceId])
+  , _tuUserName   :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'TraceUser' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -1163,12 +1181,9 @@
 -- * 'tuUserName' - The user's name.
 traceUser
     :: TraceUser
-traceUser =
-    TraceUser'
-    { _tuServiceIds = Nothing
-    , _tuUserName = Nothing
-    }
+traceUser = TraceUser' {_tuServiceIds = Nothing, _tuUserName = Nothing}
 
+
 -- | Services that the user's request hit.
 tuServiceIds :: Lens' TraceUser [ServiceId]
 tuServiceIds = lens _tuServiceIds (\ s a -> s{_tuServiceIds = a}) . _Default . _Coerce;
@@ -1185,9 +1200,9 @@
                    (x .:? "ServiceIds" .!= mempty) <*>
                      (x .:? "UserName"))
 
-instance Hashable TraceUser
+instance Hashable TraceUser where
 
-instance NFData TraceUser
+instance NFData TraceUser where
 
 -- | Information about a segment that failed processing.
 --
@@ -1195,11 +1210,12 @@
 --
 -- /See:/ 'unprocessedTraceSegment' smart constructor.
 data UnprocessedTraceSegment = UnprocessedTraceSegment'
-    { _utsErrorCode :: !(Maybe Text)
-    , _utsId        :: !(Maybe Text)
-    , _utsMessage   :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _utsErrorCode :: !(Maybe Text)
+  , _utsId        :: !(Maybe Text)
+  , _utsMessage   :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UnprocessedTraceSegment' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -1212,12 +1228,10 @@
 unprocessedTraceSegment
     :: UnprocessedTraceSegment
 unprocessedTraceSegment =
-    UnprocessedTraceSegment'
-    { _utsErrorCode = Nothing
-    , _utsId = Nothing
-    , _utsMessage = Nothing
-    }
+  UnprocessedTraceSegment'
+  {_utsErrorCode = Nothing, _utsId = Nothing, _utsMessage = Nothing}
 
+
 -- | The error that caused processing to fail.
 utsErrorCode :: Lens' UnprocessedTraceSegment (Maybe Text)
 utsErrorCode = lens _utsErrorCode (\ s a -> s{_utsErrorCode = a});
@@ -1238,9 +1252,9 @@
                    (x .:? "ErrorCode") <*> (x .:? "Id") <*>
                      (x .:? "Message"))
 
-instance Hashable UnprocessedTraceSegment
+instance Hashable UnprocessedTraceSegment where
 
-instance NFData UnprocessedTraceSegment
+instance NFData UnprocessedTraceSegment where
 
 -- | Information about a segment annotation.
 --
@@ -1248,10 +1262,11 @@
 --
 -- /See:/ 'valueWithServiceIds' smart constructor.
 data ValueWithServiceIds = ValueWithServiceIds'
-    { _vwsiServiceIds      :: !(Maybe [ServiceId])
-    , _vwsiAnnotationValue :: !(Maybe AnnotationValue)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _vwsiServiceIds      :: !(Maybe [ServiceId])
+  , _vwsiAnnotationValue :: !(Maybe AnnotationValue)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ValueWithServiceIds' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -1262,11 +1277,10 @@
 valueWithServiceIds
     :: ValueWithServiceIds
 valueWithServiceIds =
-    ValueWithServiceIds'
-    { _vwsiServiceIds = Nothing
-    , _vwsiAnnotationValue = Nothing
-    }
+  ValueWithServiceIds'
+  {_vwsiServiceIds = Nothing, _vwsiAnnotationValue = Nothing}
 
+
 -- | Services to which the annotation applies.
 vwsiServiceIds :: Lens' ValueWithServiceIds [ServiceId]
 vwsiServiceIds = lens _vwsiServiceIds (\ s a -> s{_vwsiServiceIds = a}) . _Default . _Coerce;
@@ -1283,6 +1297,6 @@
                    (x .:? "ServiceIds" .!= mempty) <*>
                      (x .:? "AnnotationValue"))
 
-instance Hashable ValueWithServiceIds
+instance Hashable ValueWithServiceIds where
 
-instance NFData ValueWithServiceIds
+instance NFData ValueWithServiceIds where
diff --git a/gen/Network/AWS/XRay/Types/Sum.hs b/gen/Network/AWS/XRay/Types/Sum.hs
--- a/gen/Network/AWS/XRay/Types/Sum.hs
+++ b/gen/Network/AWS/XRay/Types/Sum.hs
@@ -9,12 +9,12 @@
 
 -- |
 -- Module      : Network.AWS.XRay.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.XRay.Types.Sum where
 
-import           Network.AWS.Prelude
+import Network.AWS.Prelude
diff --git a/gen/Network/AWS/XRay/Waiters.hs b/gen/Network/AWS/XRay/Waiters.hs
--- a/gen/Network/AWS/XRay/Waiters.hs
+++ b/gen/Network/AWS/XRay/Waiters.hs
@@ -7,15 +7,15 @@
 
 -- |
 -- Module      : Network.AWS.XRay.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.XRay.Waiters where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Waiter
-import           Network.AWS.XRay.Types
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Waiter
+import Network.AWS.XRay.Types
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/XRay.hs b/test/Test/AWS/Gen/XRay.hs
--- a/test/Test/AWS/Gen/XRay.hs
+++ b/test/Test/AWS/Gen/XRay.hs
@@ -5,20 +5,20 @@
 
 -- |
 -- Module      : Test.AWS.Gen.XRay
--- 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.XRay where
 
 import Data.Proxy
+import Network.AWS.XRay
 import Test.AWS.Fixture
 import Test.AWS.Prelude
-import Test.Tasty
-import Network.AWS.XRay
 import Test.AWS.XRay.Internal
+import Test.Tasty
 
 -- Auto-generated: the actual test selection needs to be manually placed into
 -- the top-level so that real test data can be incrementally added.
