{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.XRay.Types.TraceSummary
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.XRay.Types.TraceSummary where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import Amazonka.XRay.Types.AvailabilityZoneDetail
import Amazonka.XRay.Types.ErrorRootCause
import Amazonka.XRay.Types.FaultRootCause
import Amazonka.XRay.Types.Http
import Amazonka.XRay.Types.InstanceIdDetail
import Amazonka.XRay.Types.ResourceARNDetail
import Amazonka.XRay.Types.ResponseTimeRootCause
import Amazonka.XRay.Types.ServiceId
import Amazonka.XRay.Types.TraceUser
import Amazonka.XRay.Types.ValueWithServiceIds

-- | Metadata generated from the segment documents in a trace.
--
-- /See:/ 'newTraceSummary' smart constructor.
data TraceSummary = TraceSummary'
  { -- | Annotations from the trace\'s segment documents.
    TraceSummary -> Maybe (HashMap Text [ValueWithServiceIds])
annotations :: Prelude.Maybe (Prelude.HashMap Prelude.Text [ValueWithServiceIds]),
    -- | One or more of the segment documents has a 429 throttling error.
    TraceSummary -> Maybe Bool
hasThrottle :: Prelude.Maybe Prelude.Bool,
    -- | Users from the trace\'s segment documents.
    TraceSummary -> Maybe [TraceUser]
users :: Prelude.Maybe [TraceUser],
    -- | The root of a trace.
    TraceSummary -> Maybe ServiceId
entryPoint :: Prelude.Maybe ServiceId,
    -- | The root segment document has a 500 series error.
    TraceSummary -> Maybe Bool
hasFault :: Prelude.Maybe Prelude.Bool,
    -- | Service IDs from the trace\'s segment documents.
    TraceSummary -> Maybe [ServiceId]
serviceIds :: Prelude.Maybe [ServiceId],
    -- | The matched time stamp of a defined event.
    TraceSummary -> Maybe POSIX
matchedEventTime :: Prelude.Maybe Core.POSIX,
    -- | One or more of the segment documents is in progress.
    TraceSummary -> Maybe Bool
isPartial :: Prelude.Maybe Prelude.Bool,
    -- | A collection of ErrorRootCause structures corresponding to the trace
    -- segments.
    TraceSummary -> Maybe [ErrorRootCause]
errorRootCauses :: Prelude.Maybe [ErrorRootCause],
    -- | A list of resource ARNs for any resource corresponding to the trace
    -- segments.
    TraceSummary -> Maybe [ResourceARNDetail]
resourceARNs :: Prelude.Maybe [ResourceARNDetail],
    -- | A list of Availability Zones for any zone corresponding to the trace
    -- segments.
    TraceSummary -> Maybe [AvailabilityZoneDetail]
availabilityZones :: Prelude.Maybe [AvailabilityZoneDetail],
    -- | A list of EC2 instance IDs for any instance corresponding to the trace
    -- segments.
    TraceSummary -> Maybe [InstanceIdDetail]
instanceIds :: Prelude.Maybe [InstanceIdDetail],
    -- | A collection of ResponseTimeRootCause structures corresponding to the
    -- trace segments.
    TraceSummary -> Maybe [ResponseTimeRootCause]
responseTimeRootCauses :: Prelude.Maybe [ResponseTimeRootCause],
    -- | The root segment document has a 400 series error.
    TraceSummary -> Maybe Bool
hasError :: Prelude.Maybe Prelude.Bool,
    -- | The unique identifier for the request that generated the trace\'s
    -- segments and subsegments.
    TraceSummary -> Maybe Text
id :: Prelude.Maybe Prelude.Text,
    -- | Information about the HTTP request served by the trace.
    TraceSummary -> Maybe Http
http :: Prelude.Maybe Http,
    -- | The revision number of a trace.
    TraceSummary -> Maybe Int
revision :: Prelude.Maybe Prelude.Int,
    -- | The length of time in seconds between the start time of the root segment
    -- and the end time of the last segment that completed.
    TraceSummary -> Maybe Double
duration :: Prelude.Maybe Prelude.Double,
    -- | A collection of FaultRootCause structures corresponding to the trace
    -- segments.
    TraceSummary -> Maybe [FaultRootCause]
faultRootCauses :: Prelude.Maybe [FaultRootCause],
    -- | The length of time in seconds between the start and end times of the
    -- root segment. If the service performs work asynchronously, the response
    -- time measures the time before the response is sent to the user, while
    -- the duration measures the amount of time before the last traced activity
    -- completes.
    TraceSummary -> Maybe Double
responseTime :: Prelude.Maybe Prelude.Double
  }
  deriving (TraceSummary -> TraceSummary -> Bool
(TraceSummary -> TraceSummary -> Bool)
-> (TraceSummary -> TraceSummary -> Bool) -> Eq TraceSummary
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TraceSummary -> TraceSummary -> Bool
$c/= :: TraceSummary -> TraceSummary -> Bool
== :: TraceSummary -> TraceSummary -> Bool
$c== :: TraceSummary -> TraceSummary -> Bool
Prelude.Eq, ReadPrec [TraceSummary]
ReadPrec TraceSummary
Int -> ReadS TraceSummary
ReadS [TraceSummary]
(Int -> ReadS TraceSummary)
-> ReadS [TraceSummary]
-> ReadPrec TraceSummary
-> ReadPrec [TraceSummary]
-> Read TraceSummary
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [TraceSummary]
$creadListPrec :: ReadPrec [TraceSummary]
readPrec :: ReadPrec TraceSummary
$creadPrec :: ReadPrec TraceSummary
readList :: ReadS [TraceSummary]
$creadList :: ReadS [TraceSummary]
readsPrec :: Int -> ReadS TraceSummary
$creadsPrec :: Int -> ReadS TraceSummary
Prelude.Read, Int -> TraceSummary -> ShowS
[TraceSummary] -> ShowS
TraceSummary -> String
(Int -> TraceSummary -> ShowS)
-> (TraceSummary -> String)
-> ([TraceSummary] -> ShowS)
-> Show TraceSummary
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TraceSummary] -> ShowS
$cshowList :: [TraceSummary] -> ShowS
show :: TraceSummary -> String
$cshow :: TraceSummary -> String
showsPrec :: Int -> TraceSummary -> ShowS
$cshowsPrec :: Int -> TraceSummary -> ShowS
Prelude.Show, (forall x. TraceSummary -> Rep TraceSummary x)
-> (forall x. Rep TraceSummary x -> TraceSummary)
-> Generic TraceSummary
forall x. Rep TraceSummary x -> TraceSummary
forall x. TraceSummary -> Rep TraceSummary x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep TraceSummary x -> TraceSummary
$cfrom :: forall x. TraceSummary -> Rep TraceSummary x
Prelude.Generic)

-- |
-- Create a value of 'TraceSummary' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'annotations', 'traceSummary_annotations' - Annotations from the trace\'s segment documents.
--
-- 'hasThrottle', 'traceSummary_hasThrottle' - One or more of the segment documents has a 429 throttling error.
--
-- 'users', 'traceSummary_users' - Users from the trace\'s segment documents.
--
-- 'entryPoint', 'traceSummary_entryPoint' - The root of a trace.
--
-- 'hasFault', 'traceSummary_hasFault' - The root segment document has a 500 series error.
--
-- 'serviceIds', 'traceSummary_serviceIds' - Service IDs from the trace\'s segment documents.
--
-- 'matchedEventTime', 'traceSummary_matchedEventTime' - The matched time stamp of a defined event.
--
-- 'isPartial', 'traceSummary_isPartial' - One or more of the segment documents is in progress.
--
-- 'errorRootCauses', 'traceSummary_errorRootCauses' - A collection of ErrorRootCause structures corresponding to the trace
-- segments.
--
-- 'resourceARNs', 'traceSummary_resourceARNs' - A list of resource ARNs for any resource corresponding to the trace
-- segments.
--
-- 'availabilityZones', 'traceSummary_availabilityZones' - A list of Availability Zones for any zone corresponding to the trace
-- segments.
--
-- 'instanceIds', 'traceSummary_instanceIds' - A list of EC2 instance IDs for any instance corresponding to the trace
-- segments.
--
-- 'responseTimeRootCauses', 'traceSummary_responseTimeRootCauses' - A collection of ResponseTimeRootCause structures corresponding to the
-- trace segments.
--
-- 'hasError', 'traceSummary_hasError' - The root segment document has a 400 series error.
--
-- 'id', 'traceSummary_id' - The unique identifier for the request that generated the trace\'s
-- segments and subsegments.
--
-- 'http', 'traceSummary_http' - Information about the HTTP request served by the trace.
--
-- 'revision', 'traceSummary_revision' - The revision number of a trace.
--
-- 'duration', 'traceSummary_duration' - The length of time in seconds between the start time of the root segment
-- and the end time of the last segment that completed.
--
-- 'faultRootCauses', 'traceSummary_faultRootCauses' - A collection of FaultRootCause structures corresponding to the trace
-- segments.
--
-- 'responseTime', 'traceSummary_responseTime' - The length of time in seconds between the start and end times of the
-- root segment. If the service performs work asynchronously, the response
-- time measures the time before the response is sent to the user, while
-- the duration measures the amount of time before the last traced activity
-- completes.
newTraceSummary ::
  TraceSummary
newTraceSummary :: TraceSummary
newTraceSummary =
  TraceSummary' :: Maybe (HashMap Text [ValueWithServiceIds])
-> Maybe Bool
-> Maybe [TraceUser]
-> Maybe ServiceId
-> Maybe Bool
-> Maybe [ServiceId]
-> Maybe POSIX
-> Maybe Bool
-> Maybe [ErrorRootCause]
-> Maybe [ResourceARNDetail]
-> Maybe [AvailabilityZoneDetail]
-> Maybe [InstanceIdDetail]
-> Maybe [ResponseTimeRootCause]
-> Maybe Bool
-> Maybe Text
-> Maybe Http
-> Maybe Int
-> Maybe Double
-> Maybe [FaultRootCause]
-> Maybe Double
-> TraceSummary
TraceSummary'
    { $sel:annotations:TraceSummary' :: Maybe (HashMap Text [ValueWithServiceIds])
annotations = Maybe (HashMap Text [ValueWithServiceIds])
forall a. Maybe a
Prelude.Nothing,
      $sel:hasThrottle:TraceSummary' :: Maybe Bool
hasThrottle = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:users:TraceSummary' :: Maybe [TraceUser]
users = Maybe [TraceUser]
forall a. Maybe a
Prelude.Nothing,
      $sel:entryPoint:TraceSummary' :: Maybe ServiceId
entryPoint = Maybe ServiceId
forall a. Maybe a
Prelude.Nothing,
      $sel:hasFault:TraceSummary' :: Maybe Bool
hasFault = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:serviceIds:TraceSummary' :: Maybe [ServiceId]
serviceIds = Maybe [ServiceId]
forall a. Maybe a
Prelude.Nothing,
      $sel:matchedEventTime:TraceSummary' :: Maybe POSIX
matchedEventTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:isPartial:TraceSummary' :: Maybe Bool
isPartial = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:errorRootCauses:TraceSummary' :: Maybe [ErrorRootCause]
errorRootCauses = Maybe [ErrorRootCause]
forall a. Maybe a
Prelude.Nothing,
      $sel:resourceARNs:TraceSummary' :: Maybe [ResourceARNDetail]
resourceARNs = Maybe [ResourceARNDetail]
forall a. Maybe a
Prelude.Nothing,
      $sel:availabilityZones:TraceSummary' :: Maybe [AvailabilityZoneDetail]
availabilityZones = Maybe [AvailabilityZoneDetail]
forall a. Maybe a
Prelude.Nothing,
      $sel:instanceIds:TraceSummary' :: Maybe [InstanceIdDetail]
instanceIds = Maybe [InstanceIdDetail]
forall a. Maybe a
Prelude.Nothing,
      $sel:responseTimeRootCauses:TraceSummary' :: Maybe [ResponseTimeRootCause]
responseTimeRootCauses = Maybe [ResponseTimeRootCause]
forall a. Maybe a
Prelude.Nothing,
      $sel:hasError:TraceSummary' :: Maybe Bool
hasError = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:id:TraceSummary' :: Maybe Text
id = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:http:TraceSummary' :: Maybe Http
http = Maybe Http
forall a. Maybe a
Prelude.Nothing,
      $sel:revision:TraceSummary' :: Maybe Int
revision = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:duration:TraceSummary' :: Maybe Double
duration = Maybe Double
forall a. Maybe a
Prelude.Nothing,
      $sel:faultRootCauses:TraceSummary' :: Maybe [FaultRootCause]
faultRootCauses = Maybe [FaultRootCause]
forall a. Maybe a
Prelude.Nothing,
      $sel:responseTime:TraceSummary' :: Maybe Double
responseTime = Maybe Double
forall a. Maybe a
Prelude.Nothing
    }

-- | Annotations from the trace\'s segment documents.
traceSummary_annotations :: Lens.Lens' TraceSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text [ValueWithServiceIds]))
traceSummary_annotations :: (Maybe (HashMap Text [ValueWithServiceIds])
 -> f (Maybe (HashMap Text [ValueWithServiceIds])))
-> TraceSummary -> f TraceSummary
traceSummary_annotations = (TraceSummary -> Maybe (HashMap Text [ValueWithServiceIds]))
-> (TraceSummary
    -> Maybe (HashMap Text [ValueWithServiceIds]) -> TraceSummary)
-> Lens
     TraceSummary
     TraceSummary
     (Maybe (HashMap Text [ValueWithServiceIds]))
     (Maybe (HashMap Text [ValueWithServiceIds]))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TraceSummary' {Maybe (HashMap Text [ValueWithServiceIds])
annotations :: Maybe (HashMap Text [ValueWithServiceIds])
$sel:annotations:TraceSummary' :: TraceSummary -> Maybe (HashMap Text [ValueWithServiceIds])
annotations} -> Maybe (HashMap Text [ValueWithServiceIds])
annotations) (\s :: TraceSummary
s@TraceSummary' {} Maybe (HashMap Text [ValueWithServiceIds])
a -> TraceSummary
s {$sel:annotations:TraceSummary' :: Maybe (HashMap Text [ValueWithServiceIds])
annotations = Maybe (HashMap Text [ValueWithServiceIds])
a} :: TraceSummary) ((Maybe (HashMap Text [ValueWithServiceIds])
  -> f (Maybe (HashMap Text [ValueWithServiceIds])))
 -> TraceSummary -> f TraceSummary)
-> ((Maybe (HashMap Text [ValueWithServiceIds])
     -> f (Maybe (HashMap Text [ValueWithServiceIds])))
    -> Maybe (HashMap Text [ValueWithServiceIds])
    -> f (Maybe (HashMap Text [ValueWithServiceIds])))
-> (Maybe (HashMap Text [ValueWithServiceIds])
    -> f (Maybe (HashMap Text [ValueWithServiceIds])))
-> TraceSummary
-> f TraceSummary
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (HashMap Text [ValueWithServiceIds])
  (HashMap Text [ValueWithServiceIds])
  (HashMap Text [ValueWithServiceIds])
  (HashMap Text [ValueWithServiceIds])
-> Iso
     (Maybe (HashMap Text [ValueWithServiceIds]))
     (Maybe (HashMap Text [ValueWithServiceIds]))
     (Maybe (HashMap Text [ValueWithServiceIds]))
     (Maybe (HashMap Text [ValueWithServiceIds]))
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
  (HashMap Text [ValueWithServiceIds])
  (HashMap Text [ValueWithServiceIds])
  (HashMap Text [ValueWithServiceIds])
  (HashMap Text [ValueWithServiceIds])
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | One or more of the segment documents has a 429 throttling error.
traceSummary_hasThrottle :: Lens.Lens' TraceSummary (Prelude.Maybe Prelude.Bool)
traceSummary_hasThrottle :: (Maybe Bool -> f (Maybe Bool)) -> TraceSummary -> f TraceSummary
traceSummary_hasThrottle = (TraceSummary -> Maybe Bool)
-> (TraceSummary -> Maybe Bool -> TraceSummary)
-> Lens TraceSummary TraceSummary (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TraceSummary' {Maybe Bool
hasThrottle :: Maybe Bool
$sel:hasThrottle:TraceSummary' :: TraceSummary -> Maybe Bool
hasThrottle} -> Maybe Bool
hasThrottle) (\s :: TraceSummary
s@TraceSummary' {} Maybe Bool
a -> TraceSummary
s {$sel:hasThrottle:TraceSummary' :: Maybe Bool
hasThrottle = Maybe Bool
a} :: TraceSummary)

-- | Users from the trace\'s segment documents.
traceSummary_users :: Lens.Lens' TraceSummary (Prelude.Maybe [TraceUser])
traceSummary_users :: (Maybe [TraceUser] -> f (Maybe [TraceUser]))
-> TraceSummary -> f TraceSummary
traceSummary_users = (TraceSummary -> Maybe [TraceUser])
-> (TraceSummary -> Maybe [TraceUser] -> TraceSummary)
-> Lens
     TraceSummary TraceSummary (Maybe [TraceUser]) (Maybe [TraceUser])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TraceSummary' {Maybe [TraceUser]
users :: Maybe [TraceUser]
$sel:users:TraceSummary' :: TraceSummary -> Maybe [TraceUser]
users} -> Maybe [TraceUser]
users) (\s :: TraceSummary
s@TraceSummary' {} Maybe [TraceUser]
a -> TraceSummary
s {$sel:users:TraceSummary' :: Maybe [TraceUser]
users = Maybe [TraceUser]
a} :: TraceSummary) ((Maybe [TraceUser] -> f (Maybe [TraceUser]))
 -> TraceSummary -> f TraceSummary)
-> ((Maybe [TraceUser] -> f (Maybe [TraceUser]))
    -> Maybe [TraceUser] -> f (Maybe [TraceUser]))
-> (Maybe [TraceUser] -> f (Maybe [TraceUser]))
-> TraceSummary
-> f TraceSummary
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [TraceUser] [TraceUser] [TraceUser] [TraceUser]
-> Iso
     (Maybe [TraceUser])
     (Maybe [TraceUser])
     (Maybe [TraceUser])
     (Maybe [TraceUser])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso [TraceUser] [TraceUser] [TraceUser] [TraceUser]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The root of a trace.
traceSummary_entryPoint :: Lens.Lens' TraceSummary (Prelude.Maybe ServiceId)
traceSummary_entryPoint :: (Maybe ServiceId -> f (Maybe ServiceId))
-> TraceSummary -> f TraceSummary
traceSummary_entryPoint = (TraceSummary -> Maybe ServiceId)
-> (TraceSummary -> Maybe ServiceId -> TraceSummary)
-> Lens
     TraceSummary TraceSummary (Maybe ServiceId) (Maybe ServiceId)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TraceSummary' {Maybe ServiceId
entryPoint :: Maybe ServiceId
$sel:entryPoint:TraceSummary' :: TraceSummary -> Maybe ServiceId
entryPoint} -> Maybe ServiceId
entryPoint) (\s :: TraceSummary
s@TraceSummary' {} Maybe ServiceId
a -> TraceSummary
s {$sel:entryPoint:TraceSummary' :: Maybe ServiceId
entryPoint = Maybe ServiceId
a} :: TraceSummary)

-- | The root segment document has a 500 series error.
traceSummary_hasFault :: Lens.Lens' TraceSummary (Prelude.Maybe Prelude.Bool)
traceSummary_hasFault :: (Maybe Bool -> f (Maybe Bool)) -> TraceSummary -> f TraceSummary
traceSummary_hasFault = (TraceSummary -> Maybe Bool)
-> (TraceSummary -> Maybe Bool -> TraceSummary)
-> Lens TraceSummary TraceSummary (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TraceSummary' {Maybe Bool
hasFault :: Maybe Bool
$sel:hasFault:TraceSummary' :: TraceSummary -> Maybe Bool
hasFault} -> Maybe Bool
hasFault) (\s :: TraceSummary
s@TraceSummary' {} Maybe Bool
a -> TraceSummary
s {$sel:hasFault:TraceSummary' :: Maybe Bool
hasFault = Maybe Bool
a} :: TraceSummary)

-- | Service IDs from the trace\'s segment documents.
traceSummary_serviceIds :: Lens.Lens' TraceSummary (Prelude.Maybe [ServiceId])
traceSummary_serviceIds :: (Maybe [ServiceId] -> f (Maybe [ServiceId]))
-> TraceSummary -> f TraceSummary
traceSummary_serviceIds = (TraceSummary -> Maybe [ServiceId])
-> (TraceSummary -> Maybe [ServiceId] -> TraceSummary)
-> Lens
     TraceSummary TraceSummary (Maybe [ServiceId]) (Maybe [ServiceId])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TraceSummary' {Maybe [ServiceId]
serviceIds :: Maybe [ServiceId]
$sel:serviceIds:TraceSummary' :: TraceSummary -> Maybe [ServiceId]
serviceIds} -> Maybe [ServiceId]
serviceIds) (\s :: TraceSummary
s@TraceSummary' {} Maybe [ServiceId]
a -> TraceSummary
s {$sel:serviceIds:TraceSummary' :: Maybe [ServiceId]
serviceIds = Maybe [ServiceId]
a} :: TraceSummary) ((Maybe [ServiceId] -> f (Maybe [ServiceId]))
 -> TraceSummary -> f TraceSummary)
-> ((Maybe [ServiceId] -> f (Maybe [ServiceId]))
    -> Maybe [ServiceId] -> f (Maybe [ServiceId]))
-> (Maybe [ServiceId] -> f (Maybe [ServiceId]))
-> TraceSummary
-> f TraceSummary
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [ServiceId] [ServiceId] [ServiceId] [ServiceId]
-> Iso
     (Maybe [ServiceId])
     (Maybe [ServiceId])
     (Maybe [ServiceId])
     (Maybe [ServiceId])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso [ServiceId] [ServiceId] [ServiceId] [ServiceId]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The matched time stamp of a defined event.
traceSummary_matchedEventTime :: Lens.Lens' TraceSummary (Prelude.Maybe Prelude.UTCTime)
traceSummary_matchedEventTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> TraceSummary -> f TraceSummary
traceSummary_matchedEventTime = (TraceSummary -> Maybe POSIX)
-> (TraceSummary -> Maybe POSIX -> TraceSummary)
-> Lens TraceSummary TraceSummary (Maybe POSIX) (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TraceSummary' {Maybe POSIX
matchedEventTime :: Maybe POSIX
$sel:matchedEventTime:TraceSummary' :: TraceSummary -> Maybe POSIX
matchedEventTime} -> Maybe POSIX
matchedEventTime) (\s :: TraceSummary
s@TraceSummary' {} Maybe POSIX
a -> TraceSummary
s {$sel:matchedEventTime:TraceSummary' :: Maybe POSIX
matchedEventTime = Maybe POSIX
a} :: TraceSummary) ((Maybe POSIX -> f (Maybe POSIX))
 -> TraceSummary -> f TraceSummary)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> TraceSummary
-> f TraceSummary
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | One or more of the segment documents is in progress.
traceSummary_isPartial :: Lens.Lens' TraceSummary (Prelude.Maybe Prelude.Bool)
traceSummary_isPartial :: (Maybe Bool -> f (Maybe Bool)) -> TraceSummary -> f TraceSummary
traceSummary_isPartial = (TraceSummary -> Maybe Bool)
-> (TraceSummary -> Maybe Bool -> TraceSummary)
-> Lens TraceSummary TraceSummary (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TraceSummary' {Maybe Bool
isPartial :: Maybe Bool
$sel:isPartial:TraceSummary' :: TraceSummary -> Maybe Bool
isPartial} -> Maybe Bool
isPartial) (\s :: TraceSummary
s@TraceSummary' {} Maybe Bool
a -> TraceSummary
s {$sel:isPartial:TraceSummary' :: Maybe Bool
isPartial = Maybe Bool
a} :: TraceSummary)

-- | A collection of ErrorRootCause structures corresponding to the trace
-- segments.
traceSummary_errorRootCauses :: Lens.Lens' TraceSummary (Prelude.Maybe [ErrorRootCause])
traceSummary_errorRootCauses :: (Maybe [ErrorRootCause] -> f (Maybe [ErrorRootCause]))
-> TraceSummary -> f TraceSummary
traceSummary_errorRootCauses = (TraceSummary -> Maybe [ErrorRootCause])
-> (TraceSummary -> Maybe [ErrorRootCause] -> TraceSummary)
-> Lens
     TraceSummary
     TraceSummary
     (Maybe [ErrorRootCause])
     (Maybe [ErrorRootCause])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TraceSummary' {Maybe [ErrorRootCause]
errorRootCauses :: Maybe [ErrorRootCause]
$sel:errorRootCauses:TraceSummary' :: TraceSummary -> Maybe [ErrorRootCause]
errorRootCauses} -> Maybe [ErrorRootCause]
errorRootCauses) (\s :: TraceSummary
s@TraceSummary' {} Maybe [ErrorRootCause]
a -> TraceSummary
s {$sel:errorRootCauses:TraceSummary' :: Maybe [ErrorRootCause]
errorRootCauses = Maybe [ErrorRootCause]
a} :: TraceSummary) ((Maybe [ErrorRootCause] -> f (Maybe [ErrorRootCause]))
 -> TraceSummary -> f TraceSummary)
-> ((Maybe [ErrorRootCause] -> f (Maybe [ErrorRootCause]))
    -> Maybe [ErrorRootCause] -> f (Maybe [ErrorRootCause]))
-> (Maybe [ErrorRootCause] -> f (Maybe [ErrorRootCause]))
-> TraceSummary
-> f TraceSummary
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [ErrorRootCause] [ErrorRootCause] [ErrorRootCause] [ErrorRootCause]
-> Iso
     (Maybe [ErrorRootCause])
     (Maybe [ErrorRootCause])
     (Maybe [ErrorRootCause])
     (Maybe [ErrorRootCause])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
  [ErrorRootCause] [ErrorRootCause] [ErrorRootCause] [ErrorRootCause]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A list of resource ARNs for any resource corresponding to the trace
-- segments.
traceSummary_resourceARNs :: Lens.Lens' TraceSummary (Prelude.Maybe [ResourceARNDetail])
traceSummary_resourceARNs :: (Maybe [ResourceARNDetail] -> f (Maybe [ResourceARNDetail]))
-> TraceSummary -> f TraceSummary
traceSummary_resourceARNs = (TraceSummary -> Maybe [ResourceARNDetail])
-> (TraceSummary -> Maybe [ResourceARNDetail] -> TraceSummary)
-> Lens
     TraceSummary
     TraceSummary
     (Maybe [ResourceARNDetail])
     (Maybe [ResourceARNDetail])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TraceSummary' {Maybe [ResourceARNDetail]
resourceARNs :: Maybe [ResourceARNDetail]
$sel:resourceARNs:TraceSummary' :: TraceSummary -> Maybe [ResourceARNDetail]
resourceARNs} -> Maybe [ResourceARNDetail]
resourceARNs) (\s :: TraceSummary
s@TraceSummary' {} Maybe [ResourceARNDetail]
a -> TraceSummary
s {$sel:resourceARNs:TraceSummary' :: Maybe [ResourceARNDetail]
resourceARNs = Maybe [ResourceARNDetail]
a} :: TraceSummary) ((Maybe [ResourceARNDetail] -> f (Maybe [ResourceARNDetail]))
 -> TraceSummary -> f TraceSummary)
-> ((Maybe [ResourceARNDetail] -> f (Maybe [ResourceARNDetail]))
    -> Maybe [ResourceARNDetail] -> f (Maybe [ResourceARNDetail]))
-> (Maybe [ResourceARNDetail] -> f (Maybe [ResourceARNDetail]))
-> TraceSummary
-> f TraceSummary
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [ResourceARNDetail]
  [ResourceARNDetail]
  [ResourceARNDetail]
  [ResourceARNDetail]
-> Iso
     (Maybe [ResourceARNDetail])
     (Maybe [ResourceARNDetail])
     (Maybe [ResourceARNDetail])
     (Maybe [ResourceARNDetail])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
  [ResourceARNDetail]
  [ResourceARNDetail]
  [ResourceARNDetail]
  [ResourceARNDetail]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A list of Availability Zones for any zone corresponding to the trace
-- segments.
traceSummary_availabilityZones :: Lens.Lens' TraceSummary (Prelude.Maybe [AvailabilityZoneDetail])
traceSummary_availabilityZones :: (Maybe [AvailabilityZoneDetail]
 -> f (Maybe [AvailabilityZoneDetail]))
-> TraceSummary -> f TraceSummary
traceSummary_availabilityZones = (TraceSummary -> Maybe [AvailabilityZoneDetail])
-> (TraceSummary -> Maybe [AvailabilityZoneDetail] -> TraceSummary)
-> Lens
     TraceSummary
     TraceSummary
     (Maybe [AvailabilityZoneDetail])
     (Maybe [AvailabilityZoneDetail])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TraceSummary' {Maybe [AvailabilityZoneDetail]
availabilityZones :: Maybe [AvailabilityZoneDetail]
$sel:availabilityZones:TraceSummary' :: TraceSummary -> Maybe [AvailabilityZoneDetail]
availabilityZones} -> Maybe [AvailabilityZoneDetail]
availabilityZones) (\s :: TraceSummary
s@TraceSummary' {} Maybe [AvailabilityZoneDetail]
a -> TraceSummary
s {$sel:availabilityZones:TraceSummary' :: Maybe [AvailabilityZoneDetail]
availabilityZones = Maybe [AvailabilityZoneDetail]
a} :: TraceSummary) ((Maybe [AvailabilityZoneDetail]
  -> f (Maybe [AvailabilityZoneDetail]))
 -> TraceSummary -> f TraceSummary)
-> ((Maybe [AvailabilityZoneDetail]
     -> f (Maybe [AvailabilityZoneDetail]))
    -> Maybe [AvailabilityZoneDetail]
    -> f (Maybe [AvailabilityZoneDetail]))
-> (Maybe [AvailabilityZoneDetail]
    -> f (Maybe [AvailabilityZoneDetail]))
-> TraceSummary
-> f TraceSummary
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [AvailabilityZoneDetail]
  [AvailabilityZoneDetail]
  [AvailabilityZoneDetail]
  [AvailabilityZoneDetail]
-> Iso
     (Maybe [AvailabilityZoneDetail])
     (Maybe [AvailabilityZoneDetail])
     (Maybe [AvailabilityZoneDetail])
     (Maybe [AvailabilityZoneDetail])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
  [AvailabilityZoneDetail]
  [AvailabilityZoneDetail]
  [AvailabilityZoneDetail]
  [AvailabilityZoneDetail]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A list of EC2 instance IDs for any instance corresponding to the trace
-- segments.
traceSummary_instanceIds :: Lens.Lens' TraceSummary (Prelude.Maybe [InstanceIdDetail])
traceSummary_instanceIds :: (Maybe [InstanceIdDetail] -> f (Maybe [InstanceIdDetail]))
-> TraceSummary -> f TraceSummary
traceSummary_instanceIds = (TraceSummary -> Maybe [InstanceIdDetail])
-> (TraceSummary -> Maybe [InstanceIdDetail] -> TraceSummary)
-> Lens
     TraceSummary
     TraceSummary
     (Maybe [InstanceIdDetail])
     (Maybe [InstanceIdDetail])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TraceSummary' {Maybe [InstanceIdDetail]
instanceIds :: Maybe [InstanceIdDetail]
$sel:instanceIds:TraceSummary' :: TraceSummary -> Maybe [InstanceIdDetail]
instanceIds} -> Maybe [InstanceIdDetail]
instanceIds) (\s :: TraceSummary
s@TraceSummary' {} Maybe [InstanceIdDetail]
a -> TraceSummary
s {$sel:instanceIds:TraceSummary' :: Maybe [InstanceIdDetail]
instanceIds = Maybe [InstanceIdDetail]
a} :: TraceSummary) ((Maybe [InstanceIdDetail] -> f (Maybe [InstanceIdDetail]))
 -> TraceSummary -> f TraceSummary)
-> ((Maybe [InstanceIdDetail] -> f (Maybe [InstanceIdDetail]))
    -> Maybe [InstanceIdDetail] -> f (Maybe [InstanceIdDetail]))
-> (Maybe [InstanceIdDetail] -> f (Maybe [InstanceIdDetail]))
-> TraceSummary
-> f TraceSummary
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [InstanceIdDetail]
  [InstanceIdDetail]
  [InstanceIdDetail]
  [InstanceIdDetail]
-> Iso
     (Maybe [InstanceIdDetail])
     (Maybe [InstanceIdDetail])
     (Maybe [InstanceIdDetail])
     (Maybe [InstanceIdDetail])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
  [InstanceIdDetail]
  [InstanceIdDetail]
  [InstanceIdDetail]
  [InstanceIdDetail]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A collection of ResponseTimeRootCause structures corresponding to the
-- trace segments.
traceSummary_responseTimeRootCauses :: Lens.Lens' TraceSummary (Prelude.Maybe [ResponseTimeRootCause])
traceSummary_responseTimeRootCauses :: (Maybe [ResponseTimeRootCause]
 -> f (Maybe [ResponseTimeRootCause]))
-> TraceSummary -> f TraceSummary
traceSummary_responseTimeRootCauses = (TraceSummary -> Maybe [ResponseTimeRootCause])
-> (TraceSummary -> Maybe [ResponseTimeRootCause] -> TraceSummary)
-> Lens
     TraceSummary
     TraceSummary
     (Maybe [ResponseTimeRootCause])
     (Maybe [ResponseTimeRootCause])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TraceSummary' {Maybe [ResponseTimeRootCause]
responseTimeRootCauses :: Maybe [ResponseTimeRootCause]
$sel:responseTimeRootCauses:TraceSummary' :: TraceSummary -> Maybe [ResponseTimeRootCause]
responseTimeRootCauses} -> Maybe [ResponseTimeRootCause]
responseTimeRootCauses) (\s :: TraceSummary
s@TraceSummary' {} Maybe [ResponseTimeRootCause]
a -> TraceSummary
s {$sel:responseTimeRootCauses:TraceSummary' :: Maybe [ResponseTimeRootCause]
responseTimeRootCauses = Maybe [ResponseTimeRootCause]
a} :: TraceSummary) ((Maybe [ResponseTimeRootCause]
  -> f (Maybe [ResponseTimeRootCause]))
 -> TraceSummary -> f TraceSummary)
-> ((Maybe [ResponseTimeRootCause]
     -> f (Maybe [ResponseTimeRootCause]))
    -> Maybe [ResponseTimeRootCause]
    -> f (Maybe [ResponseTimeRootCause]))
-> (Maybe [ResponseTimeRootCause]
    -> f (Maybe [ResponseTimeRootCause]))
-> TraceSummary
-> f TraceSummary
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [ResponseTimeRootCause]
  [ResponseTimeRootCause]
  [ResponseTimeRootCause]
  [ResponseTimeRootCause]
-> Iso
     (Maybe [ResponseTimeRootCause])
     (Maybe [ResponseTimeRootCause])
     (Maybe [ResponseTimeRootCause])
     (Maybe [ResponseTimeRootCause])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
  [ResponseTimeRootCause]
  [ResponseTimeRootCause]
  [ResponseTimeRootCause]
  [ResponseTimeRootCause]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The root segment document has a 400 series error.
traceSummary_hasError :: Lens.Lens' TraceSummary (Prelude.Maybe Prelude.Bool)
traceSummary_hasError :: (Maybe Bool -> f (Maybe Bool)) -> TraceSummary -> f TraceSummary
traceSummary_hasError = (TraceSummary -> Maybe Bool)
-> (TraceSummary -> Maybe Bool -> TraceSummary)
-> Lens TraceSummary TraceSummary (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TraceSummary' {Maybe Bool
hasError :: Maybe Bool
$sel:hasError:TraceSummary' :: TraceSummary -> Maybe Bool
hasError} -> Maybe Bool
hasError) (\s :: TraceSummary
s@TraceSummary' {} Maybe Bool
a -> TraceSummary
s {$sel:hasError:TraceSummary' :: Maybe Bool
hasError = Maybe Bool
a} :: TraceSummary)

-- | The unique identifier for the request that generated the trace\'s
-- segments and subsegments.
traceSummary_id :: Lens.Lens' TraceSummary (Prelude.Maybe Prelude.Text)
traceSummary_id :: (Maybe Text -> f (Maybe Text)) -> TraceSummary -> f TraceSummary
traceSummary_id = (TraceSummary -> Maybe Text)
-> (TraceSummary -> Maybe Text -> TraceSummary)
-> Lens TraceSummary TraceSummary (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TraceSummary' {Maybe Text
id :: Maybe Text
$sel:id:TraceSummary' :: TraceSummary -> Maybe Text
id} -> Maybe Text
id) (\s :: TraceSummary
s@TraceSummary' {} Maybe Text
a -> TraceSummary
s {$sel:id:TraceSummary' :: Maybe Text
id = Maybe Text
a} :: TraceSummary)

-- | Information about the HTTP request served by the trace.
traceSummary_http :: Lens.Lens' TraceSummary (Prelude.Maybe Http)
traceSummary_http :: (Maybe Http -> f (Maybe Http)) -> TraceSummary -> f TraceSummary
traceSummary_http = (TraceSummary -> Maybe Http)
-> (TraceSummary -> Maybe Http -> TraceSummary)
-> Lens TraceSummary TraceSummary (Maybe Http) (Maybe Http)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TraceSummary' {Maybe Http
http :: Maybe Http
$sel:http:TraceSummary' :: TraceSummary -> Maybe Http
http} -> Maybe Http
http) (\s :: TraceSummary
s@TraceSummary' {} Maybe Http
a -> TraceSummary
s {$sel:http:TraceSummary' :: Maybe Http
http = Maybe Http
a} :: TraceSummary)

-- | The revision number of a trace.
traceSummary_revision :: Lens.Lens' TraceSummary (Prelude.Maybe Prelude.Int)
traceSummary_revision :: (Maybe Int -> f (Maybe Int)) -> TraceSummary -> f TraceSummary
traceSummary_revision = (TraceSummary -> Maybe Int)
-> (TraceSummary -> Maybe Int -> TraceSummary)
-> Lens TraceSummary TraceSummary (Maybe Int) (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TraceSummary' {Maybe Int
revision :: Maybe Int
$sel:revision:TraceSummary' :: TraceSummary -> Maybe Int
revision} -> Maybe Int
revision) (\s :: TraceSummary
s@TraceSummary' {} Maybe Int
a -> TraceSummary
s {$sel:revision:TraceSummary' :: Maybe Int
revision = Maybe Int
a} :: TraceSummary)

-- | The length of time in seconds between the start time of the root segment
-- and the end time of the last segment that completed.
traceSummary_duration :: Lens.Lens' TraceSummary (Prelude.Maybe Prelude.Double)
traceSummary_duration :: (Maybe Double -> f (Maybe Double))
-> TraceSummary -> f TraceSummary
traceSummary_duration = (TraceSummary -> Maybe Double)
-> (TraceSummary -> Maybe Double -> TraceSummary)
-> Lens TraceSummary TraceSummary (Maybe Double) (Maybe Double)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TraceSummary' {Maybe Double
duration :: Maybe Double
$sel:duration:TraceSummary' :: TraceSummary -> Maybe Double
duration} -> Maybe Double
duration) (\s :: TraceSummary
s@TraceSummary' {} Maybe Double
a -> TraceSummary
s {$sel:duration:TraceSummary' :: Maybe Double
duration = Maybe Double
a} :: TraceSummary)

-- | A collection of FaultRootCause structures corresponding to the trace
-- segments.
traceSummary_faultRootCauses :: Lens.Lens' TraceSummary (Prelude.Maybe [FaultRootCause])
traceSummary_faultRootCauses :: (Maybe [FaultRootCause] -> f (Maybe [FaultRootCause]))
-> TraceSummary -> f TraceSummary
traceSummary_faultRootCauses = (TraceSummary -> Maybe [FaultRootCause])
-> (TraceSummary -> Maybe [FaultRootCause] -> TraceSummary)
-> Lens
     TraceSummary
     TraceSummary
     (Maybe [FaultRootCause])
     (Maybe [FaultRootCause])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TraceSummary' {Maybe [FaultRootCause]
faultRootCauses :: Maybe [FaultRootCause]
$sel:faultRootCauses:TraceSummary' :: TraceSummary -> Maybe [FaultRootCause]
faultRootCauses} -> Maybe [FaultRootCause]
faultRootCauses) (\s :: TraceSummary
s@TraceSummary' {} Maybe [FaultRootCause]
a -> TraceSummary
s {$sel:faultRootCauses:TraceSummary' :: Maybe [FaultRootCause]
faultRootCauses = Maybe [FaultRootCause]
a} :: TraceSummary) ((Maybe [FaultRootCause] -> f (Maybe [FaultRootCause]))
 -> TraceSummary -> f TraceSummary)
-> ((Maybe [FaultRootCause] -> f (Maybe [FaultRootCause]))
    -> Maybe [FaultRootCause] -> f (Maybe [FaultRootCause]))
-> (Maybe [FaultRootCause] -> f (Maybe [FaultRootCause]))
-> TraceSummary
-> f TraceSummary
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [FaultRootCause] [FaultRootCause] [FaultRootCause] [FaultRootCause]
-> Iso
     (Maybe [FaultRootCause])
     (Maybe [FaultRootCause])
     (Maybe [FaultRootCause])
     (Maybe [FaultRootCause])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
  [FaultRootCause] [FaultRootCause] [FaultRootCause] [FaultRootCause]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The length of time in seconds between the start and end times of the
-- root segment. If the service performs work asynchronously, the response
-- time measures the time before the response is sent to the user, while
-- the duration measures the amount of time before the last traced activity
-- completes.
traceSummary_responseTime :: Lens.Lens' TraceSummary (Prelude.Maybe Prelude.Double)
traceSummary_responseTime :: (Maybe Double -> f (Maybe Double))
-> TraceSummary -> f TraceSummary
traceSummary_responseTime = (TraceSummary -> Maybe Double)
-> (TraceSummary -> Maybe Double -> TraceSummary)
-> Lens TraceSummary TraceSummary (Maybe Double) (Maybe Double)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TraceSummary' {Maybe Double
responseTime :: Maybe Double
$sel:responseTime:TraceSummary' :: TraceSummary -> Maybe Double
responseTime} -> Maybe Double
responseTime) (\s :: TraceSummary
s@TraceSummary' {} Maybe Double
a -> TraceSummary
s {$sel:responseTime:TraceSummary' :: Maybe Double
responseTime = Maybe Double
a} :: TraceSummary)

instance Core.FromJSON TraceSummary where
  parseJSON :: Value -> Parser TraceSummary
parseJSON =
    String
-> (Object -> Parser TraceSummary) -> Value -> Parser TraceSummary
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"TraceSummary"
      ( \Object
x ->
          Maybe (HashMap Text [ValueWithServiceIds])
-> Maybe Bool
-> Maybe [TraceUser]
-> Maybe ServiceId
-> Maybe Bool
-> Maybe [ServiceId]
-> Maybe POSIX
-> Maybe Bool
-> Maybe [ErrorRootCause]
-> Maybe [ResourceARNDetail]
-> Maybe [AvailabilityZoneDetail]
-> Maybe [InstanceIdDetail]
-> Maybe [ResponseTimeRootCause]
-> Maybe Bool
-> Maybe Text
-> Maybe Http
-> Maybe Int
-> Maybe Double
-> Maybe [FaultRootCause]
-> Maybe Double
-> TraceSummary
TraceSummary'
            (Maybe (HashMap Text [ValueWithServiceIds])
 -> Maybe Bool
 -> Maybe [TraceUser]
 -> Maybe ServiceId
 -> Maybe Bool
 -> Maybe [ServiceId]
 -> Maybe POSIX
 -> Maybe Bool
 -> Maybe [ErrorRootCause]
 -> Maybe [ResourceARNDetail]
 -> Maybe [AvailabilityZoneDetail]
 -> Maybe [InstanceIdDetail]
 -> Maybe [ResponseTimeRootCause]
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Http
 -> Maybe Int
 -> Maybe Double
 -> Maybe [FaultRootCause]
 -> Maybe Double
 -> TraceSummary)
-> Parser (Maybe (HashMap Text [ValueWithServiceIds]))
-> Parser
     (Maybe Bool
      -> Maybe [TraceUser]
      -> Maybe ServiceId
      -> Maybe Bool
      -> Maybe [ServiceId]
      -> Maybe POSIX
      -> Maybe Bool
      -> Maybe [ErrorRootCause]
      -> Maybe [ResourceARNDetail]
      -> Maybe [AvailabilityZoneDetail]
      -> Maybe [InstanceIdDetail]
      -> Maybe [ResponseTimeRootCause]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Http
      -> Maybe Int
      -> Maybe Double
      -> Maybe [FaultRootCause]
      -> Maybe Double
      -> TraceSummary)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object
-> Text
-> Parser (Maybe (Maybe (HashMap Text [ValueWithServiceIds])))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Annotations" Parser (Maybe (Maybe (HashMap Text [ValueWithServiceIds])))
-> Maybe (HashMap Text [ValueWithServiceIds])
-> Parser (Maybe (HashMap Text [ValueWithServiceIds]))
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe (HashMap Text [ValueWithServiceIds])
forall a. Monoid a => a
Prelude.mempty)
            Parser
  (Maybe Bool
   -> Maybe [TraceUser]
   -> Maybe ServiceId
   -> Maybe Bool
   -> Maybe [ServiceId]
   -> Maybe POSIX
   -> Maybe Bool
   -> Maybe [ErrorRootCause]
   -> Maybe [ResourceARNDetail]
   -> Maybe [AvailabilityZoneDetail]
   -> Maybe [InstanceIdDetail]
   -> Maybe [ResponseTimeRootCause]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Http
   -> Maybe Int
   -> Maybe Double
   -> Maybe [FaultRootCause]
   -> Maybe Double
   -> TraceSummary)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [TraceUser]
      -> Maybe ServiceId
      -> Maybe Bool
      -> Maybe [ServiceId]
      -> Maybe POSIX
      -> Maybe Bool
      -> Maybe [ErrorRootCause]
      -> Maybe [ResourceARNDetail]
      -> Maybe [AvailabilityZoneDetail]
      -> Maybe [InstanceIdDetail]
      -> Maybe [ResponseTimeRootCause]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Http
      -> Maybe Int
      -> Maybe Double
      -> Maybe [FaultRootCause]
      -> Maybe Double
      -> TraceSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"HasThrottle")
            Parser
  (Maybe [TraceUser]
   -> Maybe ServiceId
   -> Maybe Bool
   -> Maybe [ServiceId]
   -> Maybe POSIX
   -> Maybe Bool
   -> Maybe [ErrorRootCause]
   -> Maybe [ResourceARNDetail]
   -> Maybe [AvailabilityZoneDetail]
   -> Maybe [InstanceIdDetail]
   -> Maybe [ResponseTimeRootCause]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Http
   -> Maybe Int
   -> Maybe Double
   -> Maybe [FaultRootCause]
   -> Maybe Double
   -> TraceSummary)
-> Parser (Maybe [TraceUser])
-> Parser
     (Maybe ServiceId
      -> Maybe Bool
      -> Maybe [ServiceId]
      -> Maybe POSIX
      -> Maybe Bool
      -> Maybe [ErrorRootCause]
      -> Maybe [ResourceARNDetail]
      -> Maybe [AvailabilityZoneDetail]
      -> Maybe [InstanceIdDetail]
      -> Maybe [ResponseTimeRootCause]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Http
      -> Maybe Int
      -> Maybe Double
      -> Maybe [FaultRootCause]
      -> Maybe Double
      -> TraceSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe (Maybe [TraceUser]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Users" Parser (Maybe (Maybe [TraceUser]))
-> Maybe [TraceUser] -> Parser (Maybe [TraceUser])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [TraceUser]
forall a. Monoid a => a
Prelude.mempty)
            Parser
  (Maybe ServiceId
   -> Maybe Bool
   -> Maybe [ServiceId]
   -> Maybe POSIX
   -> Maybe Bool
   -> Maybe [ErrorRootCause]
   -> Maybe [ResourceARNDetail]
   -> Maybe [AvailabilityZoneDetail]
   -> Maybe [InstanceIdDetail]
   -> Maybe [ResponseTimeRootCause]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Http
   -> Maybe Int
   -> Maybe Double
   -> Maybe [FaultRootCause]
   -> Maybe Double
   -> TraceSummary)
-> Parser (Maybe ServiceId)
-> Parser
     (Maybe Bool
      -> Maybe [ServiceId]
      -> Maybe POSIX
      -> Maybe Bool
      -> Maybe [ErrorRootCause]
      -> Maybe [ResourceARNDetail]
      -> Maybe [AvailabilityZoneDetail]
      -> Maybe [InstanceIdDetail]
      -> Maybe [ResponseTimeRootCause]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Http
      -> Maybe Int
      -> Maybe Double
      -> Maybe [FaultRootCause]
      -> Maybe Double
      -> TraceSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ServiceId)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"EntryPoint")
            Parser
  (Maybe Bool
   -> Maybe [ServiceId]
   -> Maybe POSIX
   -> Maybe Bool
   -> Maybe [ErrorRootCause]
   -> Maybe [ResourceARNDetail]
   -> Maybe [AvailabilityZoneDetail]
   -> Maybe [InstanceIdDetail]
   -> Maybe [ResponseTimeRootCause]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Http
   -> Maybe Int
   -> Maybe Double
   -> Maybe [FaultRootCause]
   -> Maybe Double
   -> TraceSummary)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [ServiceId]
      -> Maybe POSIX
      -> Maybe Bool
      -> Maybe [ErrorRootCause]
      -> Maybe [ResourceARNDetail]
      -> Maybe [AvailabilityZoneDetail]
      -> Maybe [InstanceIdDetail]
      -> Maybe [ResponseTimeRootCause]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Http
      -> Maybe Int
      -> Maybe Double
      -> Maybe [FaultRootCause]
      -> Maybe Double
      -> TraceSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"HasFault")
            Parser
  (Maybe [ServiceId]
   -> Maybe POSIX
   -> Maybe Bool
   -> Maybe [ErrorRootCause]
   -> Maybe [ResourceARNDetail]
   -> Maybe [AvailabilityZoneDetail]
   -> Maybe [InstanceIdDetail]
   -> Maybe [ResponseTimeRootCause]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Http
   -> Maybe Int
   -> Maybe Double
   -> Maybe [FaultRootCause]
   -> Maybe Double
   -> TraceSummary)
-> Parser (Maybe [ServiceId])
-> Parser
     (Maybe POSIX
      -> Maybe Bool
      -> Maybe [ErrorRootCause]
      -> Maybe [ResourceARNDetail]
      -> Maybe [AvailabilityZoneDetail]
      -> Maybe [InstanceIdDetail]
      -> Maybe [ResponseTimeRootCause]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Http
      -> Maybe Int
      -> Maybe Double
      -> Maybe [FaultRootCause]
      -> Maybe Double
      -> TraceSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe (Maybe [ServiceId]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ServiceIds" Parser (Maybe (Maybe [ServiceId]))
-> Maybe [ServiceId] -> Parser (Maybe [ServiceId])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [ServiceId]
forall a. Monoid a => a
Prelude.mempty)
            Parser
  (Maybe POSIX
   -> Maybe Bool
   -> Maybe [ErrorRootCause]
   -> Maybe [ResourceARNDetail]
   -> Maybe [AvailabilityZoneDetail]
   -> Maybe [InstanceIdDetail]
   -> Maybe [ResponseTimeRootCause]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Http
   -> Maybe Int
   -> Maybe Double
   -> Maybe [FaultRootCause]
   -> Maybe Double
   -> TraceSummary)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe Bool
      -> Maybe [ErrorRootCause]
      -> Maybe [ResourceARNDetail]
      -> Maybe [AvailabilityZoneDetail]
      -> Maybe [InstanceIdDetail]
      -> Maybe [ResponseTimeRootCause]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Http
      -> Maybe Int
      -> Maybe Double
      -> Maybe [FaultRootCause]
      -> Maybe Double
      -> TraceSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"MatchedEventTime")
            Parser
  (Maybe Bool
   -> Maybe [ErrorRootCause]
   -> Maybe [ResourceARNDetail]
   -> Maybe [AvailabilityZoneDetail]
   -> Maybe [InstanceIdDetail]
   -> Maybe [ResponseTimeRootCause]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Http
   -> Maybe Int
   -> Maybe Double
   -> Maybe [FaultRootCause]
   -> Maybe Double
   -> TraceSummary)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [ErrorRootCause]
      -> Maybe [ResourceARNDetail]
      -> Maybe [AvailabilityZoneDetail]
      -> Maybe [InstanceIdDetail]
      -> Maybe [ResponseTimeRootCause]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Http
      -> Maybe Int
      -> Maybe Double
      -> Maybe [FaultRootCause]
      -> Maybe Double
      -> TraceSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"IsPartial")
            Parser
  (Maybe [ErrorRootCause]
   -> Maybe [ResourceARNDetail]
   -> Maybe [AvailabilityZoneDetail]
   -> Maybe [InstanceIdDetail]
   -> Maybe [ResponseTimeRootCause]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Http
   -> Maybe Int
   -> Maybe Double
   -> Maybe [FaultRootCause]
   -> Maybe Double
   -> TraceSummary)
-> Parser (Maybe [ErrorRootCause])
-> Parser
     (Maybe [ResourceARNDetail]
      -> Maybe [AvailabilityZoneDetail]
      -> Maybe [InstanceIdDetail]
      -> Maybe [ResponseTimeRootCause]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Http
      -> Maybe Int
      -> Maybe Double
      -> Maybe [FaultRootCause]
      -> Maybe Double
      -> TraceSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Parser (Maybe (Maybe [ErrorRootCause]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ErrorRootCauses"
                            Parser (Maybe (Maybe [ErrorRootCause]))
-> Maybe [ErrorRootCause] -> Parser (Maybe [ErrorRootCause])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [ErrorRootCause]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe [ResourceARNDetail]
   -> Maybe [AvailabilityZoneDetail]
   -> Maybe [InstanceIdDetail]
   -> Maybe [ResponseTimeRootCause]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Http
   -> Maybe Int
   -> Maybe Double
   -> Maybe [FaultRootCause]
   -> Maybe Double
   -> TraceSummary)
-> Parser (Maybe [ResourceARNDetail])
-> Parser
     (Maybe [AvailabilityZoneDetail]
      -> Maybe [InstanceIdDetail]
      -> Maybe [ResponseTimeRootCause]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Http
      -> Maybe Int
      -> Maybe Double
      -> Maybe [FaultRootCause]
      -> Maybe Double
      -> TraceSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe (Maybe [ResourceARNDetail]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ResourceARNs" Parser (Maybe (Maybe [ResourceARNDetail]))
-> Maybe [ResourceARNDetail] -> Parser (Maybe [ResourceARNDetail])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [ResourceARNDetail]
forall a. Monoid a => a
Prelude.mempty)
            Parser
  (Maybe [AvailabilityZoneDetail]
   -> Maybe [InstanceIdDetail]
   -> Maybe [ResponseTimeRootCause]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Http
   -> Maybe Int
   -> Maybe Double
   -> Maybe [FaultRootCause]
   -> Maybe Double
   -> TraceSummary)
-> Parser (Maybe [AvailabilityZoneDetail])
-> Parser
     (Maybe [InstanceIdDetail]
      -> Maybe [ResponseTimeRootCause]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Http
      -> Maybe Int
      -> Maybe Double
      -> Maybe [FaultRootCause]
      -> Maybe Double
      -> TraceSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Parser (Maybe (Maybe [AvailabilityZoneDetail]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"AvailabilityZones"
                            Parser (Maybe (Maybe [AvailabilityZoneDetail]))
-> Maybe [AvailabilityZoneDetail]
-> Parser (Maybe [AvailabilityZoneDetail])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [AvailabilityZoneDetail]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe [InstanceIdDetail]
   -> Maybe [ResponseTimeRootCause]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Http
   -> Maybe Int
   -> Maybe Double
   -> Maybe [FaultRootCause]
   -> Maybe Double
   -> TraceSummary)
-> Parser (Maybe [InstanceIdDetail])
-> Parser
     (Maybe [ResponseTimeRootCause]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Http
      -> Maybe Int
      -> Maybe Double
      -> Maybe [FaultRootCause]
      -> Maybe Double
      -> TraceSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe (Maybe [InstanceIdDetail]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"InstanceIds" Parser (Maybe (Maybe [InstanceIdDetail]))
-> Maybe [InstanceIdDetail] -> Parser (Maybe [InstanceIdDetail])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [InstanceIdDetail]
forall a. Monoid a => a
Prelude.mempty)
            Parser
  (Maybe [ResponseTimeRootCause]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Http
   -> Maybe Int
   -> Maybe Double
   -> Maybe [FaultRootCause]
   -> Maybe Double
   -> TraceSummary)
-> Parser (Maybe [ResponseTimeRootCause])
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Http
      -> Maybe Int
      -> Maybe Double
      -> Maybe [FaultRootCause]
      -> Maybe Double
      -> TraceSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Parser (Maybe (Maybe [ResponseTimeRootCause]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ResponseTimeRootCauses"
                            Parser (Maybe (Maybe [ResponseTimeRootCause]))
-> Maybe [ResponseTimeRootCause]
-> Parser (Maybe [ResponseTimeRootCause])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [ResponseTimeRootCause]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Http
   -> Maybe Int
   -> Maybe Double
   -> Maybe [FaultRootCause]
   -> Maybe Double
   -> TraceSummary)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Http
      -> Maybe Int
      -> Maybe Double
      -> Maybe [FaultRootCause]
      -> Maybe Double
      -> TraceSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"HasError")
            Parser
  (Maybe Text
   -> Maybe Http
   -> Maybe Int
   -> Maybe Double
   -> Maybe [FaultRootCause]
   -> Maybe Double
   -> TraceSummary)
-> Parser (Maybe Text)
-> Parser
     (Maybe Http
      -> Maybe Int
      -> Maybe Double
      -> Maybe [FaultRootCause]
      -> Maybe Double
      -> TraceSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Id")
            Parser
  (Maybe Http
   -> Maybe Int
   -> Maybe Double
   -> Maybe [FaultRootCause]
   -> Maybe Double
   -> TraceSummary)
-> Parser (Maybe Http)
-> Parser
     (Maybe Int
      -> Maybe Double
      -> Maybe [FaultRootCause]
      -> Maybe Double
      -> TraceSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Http)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Http")
            Parser
  (Maybe Int
   -> Maybe Double
   -> Maybe [FaultRootCause]
   -> Maybe Double
   -> TraceSummary)
-> Parser (Maybe Int)
-> Parser
     (Maybe Double
      -> Maybe [FaultRootCause] -> Maybe Double -> TraceSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Revision")
            Parser
  (Maybe Double
   -> Maybe [FaultRootCause] -> Maybe Double -> TraceSummary)
-> Parser (Maybe Double)
-> Parser (Maybe [FaultRootCause] -> Maybe Double -> TraceSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Duration")
            Parser (Maybe [FaultRootCause] -> Maybe Double -> TraceSummary)
-> Parser (Maybe [FaultRootCause])
-> Parser (Maybe Double -> TraceSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Parser (Maybe (Maybe [FaultRootCause]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"FaultRootCauses"
                            Parser (Maybe (Maybe [FaultRootCause]))
-> Maybe [FaultRootCause] -> Parser (Maybe [FaultRootCause])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [FaultRootCause]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser (Maybe Double -> TraceSummary)
-> Parser (Maybe Double) -> Parser TraceSummary
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ResponseTime")
      )

instance Prelude.Hashable TraceSummary

instance Prelude.NFData TraceSummary