{-# LANGUAGE OverloadedStrings, RecordWildCards, TupleSections #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE TypeFamilies #-}


{- |
= Tracing

-}


module CDP.Domains.Tracing (module CDP.Domains.Tracing) where

import           Control.Applicative  ((<$>))
import           Control.Monad
import           Control.Monad.Loops
import           Control.Monad.Trans  (liftIO)
import qualified Data.Map             as M
import           Data.Maybe          
import Data.Functor.Identity
import Data.String
import qualified Data.Text as T
import qualified Data.List as List
import qualified Data.Text.IO         as TI
import qualified Data.Vector          as V
import Data.Aeson.Types (Parser(..))
import           Data.Aeson           (FromJSON (..), ToJSON (..), (.:), (.:?), (.=), (.!=), (.:!))
import qualified Data.Aeson           as A
import qualified Network.HTTP.Simple as Http
import qualified Network.URI          as Uri
import qualified Network.WebSockets as WS
import Control.Concurrent
import qualified Data.ByteString.Lazy as BS
import qualified Data.Map as Map
import Data.Proxy
import System.Random
import GHC.Generics
import Data.Char
import Data.Default

import CDP.Internal.Utils


import CDP.Domains.IO as IO


-- | Type 'Tracing.MemoryDumpConfig'.
--   Configuration for memory dump. Used only when "memory-infra" category is enabled.
type TracingMemoryDumpConfig = [(T.Text, T.Text)]

-- | Type 'Tracing.TraceConfig'.
data TracingTraceConfigRecordMode = TracingTraceConfigRecordModeRecordUntilFull | TracingTraceConfigRecordModeRecordContinuously | TracingTraceConfigRecordModeRecordAsMuchAsPossible | TracingTraceConfigRecordModeEchoToConsole
  deriving (Eq TracingTraceConfigRecordMode
Eq TracingTraceConfigRecordMode
-> (TracingTraceConfigRecordMode
    -> TracingTraceConfigRecordMode -> Ordering)
-> (TracingTraceConfigRecordMode
    -> TracingTraceConfigRecordMode -> Bool)
-> (TracingTraceConfigRecordMode
    -> TracingTraceConfigRecordMode -> Bool)
-> (TracingTraceConfigRecordMode
    -> TracingTraceConfigRecordMode -> Bool)
-> (TracingTraceConfigRecordMode
    -> TracingTraceConfigRecordMode -> Bool)
-> (TracingTraceConfigRecordMode
    -> TracingTraceConfigRecordMode -> TracingTraceConfigRecordMode)
-> (TracingTraceConfigRecordMode
    -> TracingTraceConfigRecordMode -> TracingTraceConfigRecordMode)
-> Ord TracingTraceConfigRecordMode
TracingTraceConfigRecordMode
-> TracingTraceConfigRecordMode -> Bool
TracingTraceConfigRecordMode
-> TracingTraceConfigRecordMode -> Ordering
TracingTraceConfigRecordMode
-> TracingTraceConfigRecordMode -> TracingTraceConfigRecordMode
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: TracingTraceConfigRecordMode
-> TracingTraceConfigRecordMode -> TracingTraceConfigRecordMode
$cmin :: TracingTraceConfigRecordMode
-> TracingTraceConfigRecordMode -> TracingTraceConfigRecordMode
max :: TracingTraceConfigRecordMode
-> TracingTraceConfigRecordMode -> TracingTraceConfigRecordMode
$cmax :: TracingTraceConfigRecordMode
-> TracingTraceConfigRecordMode -> TracingTraceConfigRecordMode
>= :: TracingTraceConfigRecordMode
-> TracingTraceConfigRecordMode -> Bool
$c>= :: TracingTraceConfigRecordMode
-> TracingTraceConfigRecordMode -> Bool
> :: TracingTraceConfigRecordMode
-> TracingTraceConfigRecordMode -> Bool
$c> :: TracingTraceConfigRecordMode
-> TracingTraceConfigRecordMode -> Bool
<= :: TracingTraceConfigRecordMode
-> TracingTraceConfigRecordMode -> Bool
$c<= :: TracingTraceConfigRecordMode
-> TracingTraceConfigRecordMode -> Bool
< :: TracingTraceConfigRecordMode
-> TracingTraceConfigRecordMode -> Bool
$c< :: TracingTraceConfigRecordMode
-> TracingTraceConfigRecordMode -> Bool
compare :: TracingTraceConfigRecordMode
-> TracingTraceConfigRecordMode -> Ordering
$ccompare :: TracingTraceConfigRecordMode
-> TracingTraceConfigRecordMode -> Ordering
$cp1Ord :: Eq TracingTraceConfigRecordMode
Ord, TracingTraceConfigRecordMode
-> TracingTraceConfigRecordMode -> Bool
(TracingTraceConfigRecordMode
 -> TracingTraceConfigRecordMode -> Bool)
-> (TracingTraceConfigRecordMode
    -> TracingTraceConfigRecordMode -> Bool)
-> Eq TracingTraceConfigRecordMode
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TracingTraceConfigRecordMode
-> TracingTraceConfigRecordMode -> Bool
$c/= :: TracingTraceConfigRecordMode
-> TracingTraceConfigRecordMode -> Bool
== :: TracingTraceConfigRecordMode
-> TracingTraceConfigRecordMode -> Bool
$c== :: TracingTraceConfigRecordMode
-> TracingTraceConfigRecordMode -> Bool
Eq, Int -> TracingTraceConfigRecordMode -> ShowS
[TracingTraceConfigRecordMode] -> ShowS
TracingTraceConfigRecordMode -> String
(Int -> TracingTraceConfigRecordMode -> ShowS)
-> (TracingTraceConfigRecordMode -> String)
-> ([TracingTraceConfigRecordMode] -> ShowS)
-> Show TracingTraceConfigRecordMode
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TracingTraceConfigRecordMode] -> ShowS
$cshowList :: [TracingTraceConfigRecordMode] -> ShowS
show :: TracingTraceConfigRecordMode -> String
$cshow :: TracingTraceConfigRecordMode -> String
showsPrec :: Int -> TracingTraceConfigRecordMode -> ShowS
$cshowsPrec :: Int -> TracingTraceConfigRecordMode -> ShowS
Show, ReadPrec [TracingTraceConfigRecordMode]
ReadPrec TracingTraceConfigRecordMode
Int -> ReadS TracingTraceConfigRecordMode
ReadS [TracingTraceConfigRecordMode]
(Int -> ReadS TracingTraceConfigRecordMode)
-> ReadS [TracingTraceConfigRecordMode]
-> ReadPrec TracingTraceConfigRecordMode
-> ReadPrec [TracingTraceConfigRecordMode]
-> Read TracingTraceConfigRecordMode
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [TracingTraceConfigRecordMode]
$creadListPrec :: ReadPrec [TracingTraceConfigRecordMode]
readPrec :: ReadPrec TracingTraceConfigRecordMode
$creadPrec :: ReadPrec TracingTraceConfigRecordMode
readList :: ReadS [TracingTraceConfigRecordMode]
$creadList :: ReadS [TracingTraceConfigRecordMode]
readsPrec :: Int -> ReadS TracingTraceConfigRecordMode
$creadsPrec :: Int -> ReadS TracingTraceConfigRecordMode
Read)
instance FromJSON TracingTraceConfigRecordMode where
  parseJSON :: Value -> Parser TracingTraceConfigRecordMode
parseJSON = String
-> (Text -> Parser TracingTraceConfigRecordMode)
-> Value
-> Parser TracingTraceConfigRecordMode
forall a. String -> (Text -> Parser a) -> Value -> Parser a
A.withText String
"TracingTraceConfigRecordMode" ((Text -> Parser TracingTraceConfigRecordMode)
 -> Value -> Parser TracingTraceConfigRecordMode)
-> (Text -> Parser TracingTraceConfigRecordMode)
-> Value
-> Parser TracingTraceConfigRecordMode
forall a b. (a -> b) -> a -> b
$ \Text
v -> case Text
v of
    Text
"recordUntilFull" -> TracingTraceConfigRecordMode -> Parser TracingTraceConfigRecordMode
forall (f :: * -> *) a. Applicative f => a -> f a
pure TracingTraceConfigRecordMode
TracingTraceConfigRecordModeRecordUntilFull
    Text
"recordContinuously" -> TracingTraceConfigRecordMode -> Parser TracingTraceConfigRecordMode
forall (f :: * -> *) a. Applicative f => a -> f a
pure TracingTraceConfigRecordMode
TracingTraceConfigRecordModeRecordContinuously
    Text
"recordAsMuchAsPossible" -> TracingTraceConfigRecordMode -> Parser TracingTraceConfigRecordMode
forall (f :: * -> *) a. Applicative f => a -> f a
pure TracingTraceConfigRecordMode
TracingTraceConfigRecordModeRecordAsMuchAsPossible
    Text
"echoToConsole" -> TracingTraceConfigRecordMode -> Parser TracingTraceConfigRecordMode
forall (f :: * -> *) a. Applicative f => a -> f a
pure TracingTraceConfigRecordMode
TracingTraceConfigRecordModeEchoToConsole
    Text
"_" -> String -> Parser TracingTraceConfigRecordMode
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"failed to parse TracingTraceConfigRecordMode"
instance ToJSON TracingTraceConfigRecordMode where
  toJSON :: TracingTraceConfigRecordMode -> Value
toJSON TracingTraceConfigRecordMode
v = Text -> Value
A.String (Text -> Value) -> Text -> Value
forall a b. (a -> b) -> a -> b
$ case TracingTraceConfigRecordMode
v of
    TracingTraceConfigRecordMode
TracingTraceConfigRecordModeRecordUntilFull -> Text
"recordUntilFull"
    TracingTraceConfigRecordMode
TracingTraceConfigRecordModeRecordContinuously -> Text
"recordContinuously"
    TracingTraceConfigRecordMode
TracingTraceConfigRecordModeRecordAsMuchAsPossible -> Text
"recordAsMuchAsPossible"
    TracingTraceConfigRecordMode
TracingTraceConfigRecordModeEchoToConsole -> Text
"echoToConsole"
data TracingTraceConfig = TracingTraceConfig
  {
    -- | Controls how the trace buffer stores data.
    TracingTraceConfig -> Maybe TracingTraceConfigRecordMode
tracingTraceConfigRecordMode :: Maybe TracingTraceConfigRecordMode,
    -- | Size of the trace buffer in kilobytes. If not specified or zero is passed, a default value
    --   of 200 MB would be used.
    TracingTraceConfig -> Maybe Double
tracingTraceConfigTraceBufferSizeInKb :: Maybe Double,
    -- | Turns on JavaScript stack sampling.
    TracingTraceConfig -> Maybe Bool
tracingTraceConfigEnableSampling :: Maybe Bool,
    -- | Turns on system tracing.
    TracingTraceConfig -> Maybe Bool
tracingTraceConfigEnableSystrace :: Maybe Bool,
    -- | Turns on argument filter.
    TracingTraceConfig -> Maybe Bool
tracingTraceConfigEnableArgumentFilter :: Maybe Bool,
    -- | Included category filters.
    TracingTraceConfig -> Maybe [Text]
tracingTraceConfigIncludedCategories :: Maybe [T.Text],
    -- | Excluded category filters.
    TracingTraceConfig -> Maybe [Text]
tracingTraceConfigExcludedCategories :: Maybe [T.Text],
    -- | Configuration to synthesize the delays in tracing.
    TracingTraceConfig -> Maybe [Text]
tracingTraceConfigSyntheticDelays :: Maybe [T.Text],
    -- | Configuration for memory dump triggers. Used only when "memory-infra" category is enabled.
    TracingTraceConfig -> Maybe TracingMemoryDumpConfig
tracingTraceConfigMemoryDumpConfig :: Maybe TracingMemoryDumpConfig
  }
  deriving (TracingTraceConfig -> TracingTraceConfig -> Bool
(TracingTraceConfig -> TracingTraceConfig -> Bool)
-> (TracingTraceConfig -> TracingTraceConfig -> Bool)
-> Eq TracingTraceConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TracingTraceConfig -> TracingTraceConfig -> Bool
$c/= :: TracingTraceConfig -> TracingTraceConfig -> Bool
== :: TracingTraceConfig -> TracingTraceConfig -> Bool
$c== :: TracingTraceConfig -> TracingTraceConfig -> Bool
Eq, Int -> TracingTraceConfig -> ShowS
[TracingTraceConfig] -> ShowS
TracingTraceConfig -> String
(Int -> TracingTraceConfig -> ShowS)
-> (TracingTraceConfig -> String)
-> ([TracingTraceConfig] -> ShowS)
-> Show TracingTraceConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TracingTraceConfig] -> ShowS
$cshowList :: [TracingTraceConfig] -> ShowS
show :: TracingTraceConfig -> String
$cshow :: TracingTraceConfig -> String
showsPrec :: Int -> TracingTraceConfig -> ShowS
$cshowsPrec :: Int -> TracingTraceConfig -> ShowS
Show)
instance FromJSON TracingTraceConfig where
  parseJSON :: Value -> Parser TracingTraceConfig
parseJSON = String
-> (Object -> Parser TracingTraceConfig)
-> Value
-> Parser TracingTraceConfig
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"TracingTraceConfig" ((Object -> Parser TracingTraceConfig)
 -> Value -> Parser TracingTraceConfig)
-> (Object -> Parser TracingTraceConfig)
-> Value
-> Parser TracingTraceConfig
forall a b. (a -> b) -> a -> b
$ \Object
o -> Maybe TracingTraceConfigRecordMode
-> Maybe Double
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe TracingMemoryDumpConfig
-> TracingTraceConfig
TracingTraceConfig
    (Maybe TracingTraceConfigRecordMode
 -> Maybe Double
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe [Text]
 -> Maybe [Text]
 -> Maybe [Text]
 -> Maybe TracingMemoryDumpConfig
 -> TracingTraceConfig)
-> Parser (Maybe TracingTraceConfigRecordMode)
-> Parser
     (Maybe Double
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe TracingMemoryDumpConfig
      -> TracingTraceConfig)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Text -> Parser (Maybe TracingTraceConfigRecordMode)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
A..:? Text
"recordMode"
    Parser
  (Maybe Double
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe TracingMemoryDumpConfig
   -> TracingTraceConfig)
-> Parser (Maybe Double)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe TracingMemoryDumpConfig
      -> TracingTraceConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Text -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
A..:? Text
"traceBufferSizeInKb"
    Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe TracingMemoryDumpConfig
   -> TracingTraceConfig)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe TracingMemoryDumpConfig
      -> TracingTraceConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
A..:? Text
"enableSampling"
    Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe TracingMemoryDumpConfig
   -> TracingTraceConfig)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe TracingMemoryDumpConfig
      -> TracingTraceConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
A..:? Text
"enableSystrace"
    Parser
  (Maybe Bool
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe TracingMemoryDumpConfig
   -> TracingTraceConfig)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe TracingMemoryDumpConfig
      -> TracingTraceConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
A..:? Text
"enableArgumentFilter"
    Parser
  (Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe TracingMemoryDumpConfig
   -> TracingTraceConfig)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [Text]
      -> Maybe [Text]
      -> Maybe TracingMemoryDumpConfig
      -> TracingTraceConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
A..:? Text
"includedCategories"
    Parser
  (Maybe [Text]
   -> Maybe [Text]
   -> Maybe TracingMemoryDumpConfig
   -> TracingTraceConfig)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [Text]
      -> Maybe TracingMemoryDumpConfig -> TracingTraceConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
A..:? Text
"excludedCategories"
    Parser
  (Maybe [Text]
   -> Maybe TracingMemoryDumpConfig -> TracingTraceConfig)
-> Parser (Maybe [Text])
-> Parser (Maybe TracingMemoryDumpConfig -> TracingTraceConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
A..:? Text
"syntheticDelays"
    Parser (Maybe TracingMemoryDumpConfig -> TracingTraceConfig)
-> Parser (Maybe TracingMemoryDumpConfig)
-> Parser TracingTraceConfig
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Text -> Parser (Maybe TracingMemoryDumpConfig)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
A..:? Text
"memoryDumpConfig"
instance ToJSON TracingTraceConfig where
  toJSON :: TracingTraceConfig -> Value
toJSON TracingTraceConfig
p = [Pair] -> Value
A.object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$ [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
catMaybes [
    (Text
"recordMode" Text -> TracingTraceConfigRecordMode -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
A..=) (TracingTraceConfigRecordMode -> Pair)
-> Maybe TracingTraceConfigRecordMode -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (TracingTraceConfig -> Maybe TracingTraceConfigRecordMode
tracingTraceConfigRecordMode TracingTraceConfig
p),
    (Text
"traceBufferSizeInKb" Text -> Double -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
A..=) (Double -> Pair) -> Maybe Double -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (TracingTraceConfig -> Maybe Double
tracingTraceConfigTraceBufferSizeInKb TracingTraceConfig
p),
    (Text
"enableSampling" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
A..=) (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (TracingTraceConfig -> Maybe Bool
tracingTraceConfigEnableSampling TracingTraceConfig
p),
    (Text
"enableSystrace" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
A..=) (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (TracingTraceConfig -> Maybe Bool
tracingTraceConfigEnableSystrace TracingTraceConfig
p),
    (Text
"enableArgumentFilter" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
A..=) (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (TracingTraceConfig -> Maybe Bool
tracingTraceConfigEnableArgumentFilter TracingTraceConfig
p),
    (Text
"includedCategories" Text -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
A..=) ([Text] -> Pair) -> Maybe [Text] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (TracingTraceConfig -> Maybe [Text]
tracingTraceConfigIncludedCategories TracingTraceConfig
p),
    (Text
"excludedCategories" Text -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
A..=) ([Text] -> Pair) -> Maybe [Text] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (TracingTraceConfig -> Maybe [Text]
tracingTraceConfigExcludedCategories TracingTraceConfig
p),
    (Text
"syntheticDelays" Text -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
A..=) ([Text] -> Pair) -> Maybe [Text] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (TracingTraceConfig -> Maybe [Text]
tracingTraceConfigSyntheticDelays TracingTraceConfig
p),
    (Text
"memoryDumpConfig" Text -> TracingMemoryDumpConfig -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
A..=) (TracingMemoryDumpConfig -> Pair)
-> Maybe TracingMemoryDumpConfig -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (TracingTraceConfig -> Maybe TracingMemoryDumpConfig
tracingTraceConfigMemoryDumpConfig TracingTraceConfig
p)
    ]

-- | Type 'Tracing.StreamFormat'.
--   Data format of a trace. Can be either the legacy JSON format or the
--   protocol buffer format. Note that the JSON format will be deprecated soon.
data TracingStreamFormat = TracingStreamFormatJson | TracingStreamFormatProto
  deriving (Eq TracingStreamFormat
Eq TracingStreamFormat
-> (TracingStreamFormat -> TracingStreamFormat -> Ordering)
-> (TracingStreamFormat -> TracingStreamFormat -> Bool)
-> (TracingStreamFormat -> TracingStreamFormat -> Bool)
-> (TracingStreamFormat -> TracingStreamFormat -> Bool)
-> (TracingStreamFormat -> TracingStreamFormat -> Bool)
-> (TracingStreamFormat
    -> TracingStreamFormat -> TracingStreamFormat)
-> (TracingStreamFormat
    -> TracingStreamFormat -> TracingStreamFormat)
-> Ord TracingStreamFormat
TracingStreamFormat -> TracingStreamFormat -> Bool
TracingStreamFormat -> TracingStreamFormat -> Ordering
TracingStreamFormat -> TracingStreamFormat -> TracingStreamFormat
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: TracingStreamFormat -> TracingStreamFormat -> TracingStreamFormat
$cmin :: TracingStreamFormat -> TracingStreamFormat -> TracingStreamFormat
max :: TracingStreamFormat -> TracingStreamFormat -> TracingStreamFormat
$cmax :: TracingStreamFormat -> TracingStreamFormat -> TracingStreamFormat
>= :: TracingStreamFormat -> TracingStreamFormat -> Bool
$c>= :: TracingStreamFormat -> TracingStreamFormat -> Bool
> :: TracingStreamFormat -> TracingStreamFormat -> Bool
$c> :: TracingStreamFormat -> TracingStreamFormat -> Bool
<= :: TracingStreamFormat -> TracingStreamFormat -> Bool
$c<= :: TracingStreamFormat -> TracingStreamFormat -> Bool
< :: TracingStreamFormat -> TracingStreamFormat -> Bool
$c< :: TracingStreamFormat -> TracingStreamFormat -> Bool
compare :: TracingStreamFormat -> TracingStreamFormat -> Ordering
$ccompare :: TracingStreamFormat -> TracingStreamFormat -> Ordering
$cp1Ord :: Eq TracingStreamFormat
Ord, TracingStreamFormat -> TracingStreamFormat -> Bool
(TracingStreamFormat -> TracingStreamFormat -> Bool)
-> (TracingStreamFormat -> TracingStreamFormat -> Bool)
-> Eq TracingStreamFormat
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TracingStreamFormat -> TracingStreamFormat -> Bool
$c/= :: TracingStreamFormat -> TracingStreamFormat -> Bool
== :: TracingStreamFormat -> TracingStreamFormat -> Bool
$c== :: TracingStreamFormat -> TracingStreamFormat -> Bool
Eq, Int -> TracingStreamFormat -> ShowS
[TracingStreamFormat] -> ShowS
TracingStreamFormat -> String
(Int -> TracingStreamFormat -> ShowS)
-> (TracingStreamFormat -> String)
-> ([TracingStreamFormat] -> ShowS)
-> Show TracingStreamFormat
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TracingStreamFormat] -> ShowS
$cshowList :: [TracingStreamFormat] -> ShowS
show :: TracingStreamFormat -> String
$cshow :: TracingStreamFormat -> String
showsPrec :: Int -> TracingStreamFormat -> ShowS
$cshowsPrec :: Int -> TracingStreamFormat -> ShowS
Show, ReadPrec [TracingStreamFormat]
ReadPrec TracingStreamFormat
Int -> ReadS TracingStreamFormat
ReadS [TracingStreamFormat]
(Int -> ReadS TracingStreamFormat)
-> ReadS [TracingStreamFormat]
-> ReadPrec TracingStreamFormat
-> ReadPrec [TracingStreamFormat]
-> Read TracingStreamFormat
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [TracingStreamFormat]
$creadListPrec :: ReadPrec [TracingStreamFormat]
readPrec :: ReadPrec TracingStreamFormat
$creadPrec :: ReadPrec TracingStreamFormat
readList :: ReadS [TracingStreamFormat]
$creadList :: ReadS [TracingStreamFormat]
readsPrec :: Int -> ReadS TracingStreamFormat
$creadsPrec :: Int -> ReadS TracingStreamFormat
Read)
instance FromJSON TracingStreamFormat where
  parseJSON :: Value -> Parser TracingStreamFormat
parseJSON = String
-> (Text -> Parser TracingStreamFormat)
-> Value
-> Parser TracingStreamFormat
forall a. String -> (Text -> Parser a) -> Value -> Parser a
A.withText String
"TracingStreamFormat" ((Text -> Parser TracingStreamFormat)
 -> Value -> Parser TracingStreamFormat)
-> (Text -> Parser TracingStreamFormat)
-> Value
-> Parser TracingStreamFormat
forall a b. (a -> b) -> a -> b
$ \Text
v -> case Text
v of
    Text
"json" -> TracingStreamFormat -> Parser TracingStreamFormat
forall (f :: * -> *) a. Applicative f => a -> f a
pure TracingStreamFormat
TracingStreamFormatJson
    Text
"proto" -> TracingStreamFormat -> Parser TracingStreamFormat
forall (f :: * -> *) a. Applicative f => a -> f a
pure TracingStreamFormat
TracingStreamFormatProto
    Text
"_" -> String -> Parser TracingStreamFormat
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"failed to parse TracingStreamFormat"
instance ToJSON TracingStreamFormat where
  toJSON :: TracingStreamFormat -> Value
toJSON TracingStreamFormat
v = Text -> Value
A.String (Text -> Value) -> Text -> Value
forall a b. (a -> b) -> a -> b
$ case TracingStreamFormat
v of
    TracingStreamFormat
TracingStreamFormatJson -> Text
"json"
    TracingStreamFormat
TracingStreamFormatProto -> Text
"proto"

-- | Type 'Tracing.StreamCompression'.
--   Compression type to use for traces returned via streams.
data TracingStreamCompression = TracingStreamCompressionNone | TracingStreamCompressionGzip
  deriving (Eq TracingStreamCompression
Eq TracingStreamCompression
-> (TracingStreamCompression
    -> TracingStreamCompression -> Ordering)
-> (TracingStreamCompression -> TracingStreamCompression -> Bool)
-> (TracingStreamCompression -> TracingStreamCompression -> Bool)
-> (TracingStreamCompression -> TracingStreamCompression -> Bool)
-> (TracingStreamCompression -> TracingStreamCompression -> Bool)
-> (TracingStreamCompression
    -> TracingStreamCompression -> TracingStreamCompression)
-> (TracingStreamCompression
    -> TracingStreamCompression -> TracingStreamCompression)
-> Ord TracingStreamCompression
TracingStreamCompression -> TracingStreamCompression -> Bool
TracingStreamCompression -> TracingStreamCompression -> Ordering
TracingStreamCompression
-> TracingStreamCompression -> TracingStreamCompression
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: TracingStreamCompression
-> TracingStreamCompression -> TracingStreamCompression
$cmin :: TracingStreamCompression
-> TracingStreamCompression -> TracingStreamCompression
max :: TracingStreamCompression
-> TracingStreamCompression -> TracingStreamCompression
$cmax :: TracingStreamCompression
-> TracingStreamCompression -> TracingStreamCompression
>= :: TracingStreamCompression -> TracingStreamCompression -> Bool
$c>= :: TracingStreamCompression -> TracingStreamCompression -> Bool
> :: TracingStreamCompression -> TracingStreamCompression -> Bool
$c> :: TracingStreamCompression -> TracingStreamCompression -> Bool
<= :: TracingStreamCompression -> TracingStreamCompression -> Bool
$c<= :: TracingStreamCompression -> TracingStreamCompression -> Bool
< :: TracingStreamCompression -> TracingStreamCompression -> Bool
$c< :: TracingStreamCompression -> TracingStreamCompression -> Bool
compare :: TracingStreamCompression -> TracingStreamCompression -> Ordering
$ccompare :: TracingStreamCompression -> TracingStreamCompression -> Ordering
$cp1Ord :: Eq TracingStreamCompression
Ord, TracingStreamCompression -> TracingStreamCompression -> Bool
(TracingStreamCompression -> TracingStreamCompression -> Bool)
-> (TracingStreamCompression -> TracingStreamCompression -> Bool)
-> Eq TracingStreamCompression
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TracingStreamCompression -> TracingStreamCompression -> Bool
$c/= :: TracingStreamCompression -> TracingStreamCompression -> Bool
== :: TracingStreamCompression -> TracingStreamCompression -> Bool
$c== :: TracingStreamCompression -> TracingStreamCompression -> Bool
Eq, Int -> TracingStreamCompression -> ShowS
[TracingStreamCompression] -> ShowS
TracingStreamCompression -> String
(Int -> TracingStreamCompression -> ShowS)
-> (TracingStreamCompression -> String)
-> ([TracingStreamCompression] -> ShowS)
-> Show TracingStreamCompression
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TracingStreamCompression] -> ShowS
$cshowList :: [TracingStreamCompression] -> ShowS
show :: TracingStreamCompression -> String
$cshow :: TracingStreamCompression -> String
showsPrec :: Int -> TracingStreamCompression -> ShowS
$cshowsPrec :: Int -> TracingStreamCompression -> ShowS
Show, ReadPrec [TracingStreamCompression]
ReadPrec TracingStreamCompression
Int -> ReadS TracingStreamCompression
ReadS [TracingStreamCompression]
(Int -> ReadS TracingStreamCompression)
-> ReadS [TracingStreamCompression]
-> ReadPrec TracingStreamCompression
-> ReadPrec [TracingStreamCompression]
-> Read TracingStreamCompression
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [TracingStreamCompression]
$creadListPrec :: ReadPrec [TracingStreamCompression]
readPrec :: ReadPrec TracingStreamCompression
$creadPrec :: ReadPrec TracingStreamCompression
readList :: ReadS [TracingStreamCompression]
$creadList :: ReadS [TracingStreamCompression]
readsPrec :: Int -> ReadS TracingStreamCompression
$creadsPrec :: Int -> ReadS TracingStreamCompression
Read)
instance FromJSON TracingStreamCompression where
  parseJSON :: Value -> Parser TracingStreamCompression
parseJSON = String
-> (Text -> Parser TracingStreamCompression)
-> Value
-> Parser TracingStreamCompression
forall a. String -> (Text -> Parser a) -> Value -> Parser a
A.withText String
"TracingStreamCompression" ((Text -> Parser TracingStreamCompression)
 -> Value -> Parser TracingStreamCompression)
-> (Text -> Parser TracingStreamCompression)
-> Value
-> Parser TracingStreamCompression
forall a b. (a -> b) -> a -> b
$ \Text
v -> case Text
v of
    Text
"none" -> TracingStreamCompression -> Parser TracingStreamCompression
forall (f :: * -> *) a. Applicative f => a -> f a
pure TracingStreamCompression
TracingStreamCompressionNone
    Text
"gzip" -> TracingStreamCompression -> Parser TracingStreamCompression
forall (f :: * -> *) a. Applicative f => a -> f a
pure TracingStreamCompression
TracingStreamCompressionGzip
    Text
"_" -> String -> Parser TracingStreamCompression
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"failed to parse TracingStreamCompression"
instance ToJSON TracingStreamCompression where
  toJSON :: TracingStreamCompression -> Value
toJSON TracingStreamCompression
v = Text -> Value
A.String (Text -> Value) -> Text -> Value
forall a b. (a -> b) -> a -> b
$ case TracingStreamCompression
v of
    TracingStreamCompression
TracingStreamCompressionNone -> Text
"none"
    TracingStreamCompression
TracingStreamCompressionGzip -> Text
"gzip"

-- | Type 'Tracing.MemoryDumpLevelOfDetail'.
--   Details exposed when memory request explicitly declared.
--   Keep consistent with memory_dump_request_args.h and
--   memory_instrumentation.mojom
data TracingMemoryDumpLevelOfDetail = TracingMemoryDumpLevelOfDetailBackground | TracingMemoryDumpLevelOfDetailLight | TracingMemoryDumpLevelOfDetailDetailed
  deriving (Eq TracingMemoryDumpLevelOfDetail
Eq TracingMemoryDumpLevelOfDetail
-> (TracingMemoryDumpLevelOfDetail
    -> TracingMemoryDumpLevelOfDetail -> Ordering)
-> (TracingMemoryDumpLevelOfDetail
    -> TracingMemoryDumpLevelOfDetail -> Bool)
-> (TracingMemoryDumpLevelOfDetail
    -> TracingMemoryDumpLevelOfDetail -> Bool)
-> (TracingMemoryDumpLevelOfDetail
    -> TracingMemoryDumpLevelOfDetail -> Bool)
-> (TracingMemoryDumpLevelOfDetail
    -> TracingMemoryDumpLevelOfDetail -> Bool)
-> (TracingMemoryDumpLevelOfDetail
    -> TracingMemoryDumpLevelOfDetail
    -> TracingMemoryDumpLevelOfDetail)
-> (TracingMemoryDumpLevelOfDetail
    -> TracingMemoryDumpLevelOfDetail
    -> TracingMemoryDumpLevelOfDetail)
-> Ord TracingMemoryDumpLevelOfDetail
TracingMemoryDumpLevelOfDetail
-> TracingMemoryDumpLevelOfDetail -> Bool
TracingMemoryDumpLevelOfDetail
-> TracingMemoryDumpLevelOfDetail -> Ordering
TracingMemoryDumpLevelOfDetail
-> TracingMemoryDumpLevelOfDetail -> TracingMemoryDumpLevelOfDetail
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: TracingMemoryDumpLevelOfDetail
-> TracingMemoryDumpLevelOfDetail -> TracingMemoryDumpLevelOfDetail
$cmin :: TracingMemoryDumpLevelOfDetail
-> TracingMemoryDumpLevelOfDetail -> TracingMemoryDumpLevelOfDetail
max :: TracingMemoryDumpLevelOfDetail
-> TracingMemoryDumpLevelOfDetail -> TracingMemoryDumpLevelOfDetail
$cmax :: TracingMemoryDumpLevelOfDetail
-> TracingMemoryDumpLevelOfDetail -> TracingMemoryDumpLevelOfDetail
>= :: TracingMemoryDumpLevelOfDetail
-> TracingMemoryDumpLevelOfDetail -> Bool
$c>= :: TracingMemoryDumpLevelOfDetail
-> TracingMemoryDumpLevelOfDetail -> Bool
> :: TracingMemoryDumpLevelOfDetail
-> TracingMemoryDumpLevelOfDetail -> Bool
$c> :: TracingMemoryDumpLevelOfDetail
-> TracingMemoryDumpLevelOfDetail -> Bool
<= :: TracingMemoryDumpLevelOfDetail
-> TracingMemoryDumpLevelOfDetail -> Bool
$c<= :: TracingMemoryDumpLevelOfDetail
-> TracingMemoryDumpLevelOfDetail -> Bool
< :: TracingMemoryDumpLevelOfDetail
-> TracingMemoryDumpLevelOfDetail -> Bool
$c< :: TracingMemoryDumpLevelOfDetail
-> TracingMemoryDumpLevelOfDetail -> Bool
compare :: TracingMemoryDumpLevelOfDetail
-> TracingMemoryDumpLevelOfDetail -> Ordering
$ccompare :: TracingMemoryDumpLevelOfDetail
-> TracingMemoryDumpLevelOfDetail -> Ordering
$cp1Ord :: Eq TracingMemoryDumpLevelOfDetail
Ord, TracingMemoryDumpLevelOfDetail
-> TracingMemoryDumpLevelOfDetail -> Bool
(TracingMemoryDumpLevelOfDetail
 -> TracingMemoryDumpLevelOfDetail -> Bool)
-> (TracingMemoryDumpLevelOfDetail
    -> TracingMemoryDumpLevelOfDetail -> Bool)
-> Eq TracingMemoryDumpLevelOfDetail
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TracingMemoryDumpLevelOfDetail
-> TracingMemoryDumpLevelOfDetail -> Bool
$c/= :: TracingMemoryDumpLevelOfDetail
-> TracingMemoryDumpLevelOfDetail -> Bool
== :: TracingMemoryDumpLevelOfDetail
-> TracingMemoryDumpLevelOfDetail -> Bool
$c== :: TracingMemoryDumpLevelOfDetail
-> TracingMemoryDumpLevelOfDetail -> Bool
Eq, Int -> TracingMemoryDumpLevelOfDetail -> ShowS
[TracingMemoryDumpLevelOfDetail] -> ShowS
TracingMemoryDumpLevelOfDetail -> String
(Int -> TracingMemoryDumpLevelOfDetail -> ShowS)
-> (TracingMemoryDumpLevelOfDetail -> String)
-> ([TracingMemoryDumpLevelOfDetail] -> ShowS)
-> Show TracingMemoryDumpLevelOfDetail
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TracingMemoryDumpLevelOfDetail] -> ShowS
$cshowList :: [TracingMemoryDumpLevelOfDetail] -> ShowS
show :: TracingMemoryDumpLevelOfDetail -> String
$cshow :: TracingMemoryDumpLevelOfDetail -> String
showsPrec :: Int -> TracingMemoryDumpLevelOfDetail -> ShowS
$cshowsPrec :: Int -> TracingMemoryDumpLevelOfDetail -> ShowS
Show, ReadPrec [TracingMemoryDumpLevelOfDetail]
ReadPrec TracingMemoryDumpLevelOfDetail
Int -> ReadS TracingMemoryDumpLevelOfDetail
ReadS [TracingMemoryDumpLevelOfDetail]
(Int -> ReadS TracingMemoryDumpLevelOfDetail)
-> ReadS [TracingMemoryDumpLevelOfDetail]
-> ReadPrec TracingMemoryDumpLevelOfDetail
-> ReadPrec [TracingMemoryDumpLevelOfDetail]
-> Read TracingMemoryDumpLevelOfDetail
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [TracingMemoryDumpLevelOfDetail]
$creadListPrec :: ReadPrec [TracingMemoryDumpLevelOfDetail]
readPrec :: ReadPrec TracingMemoryDumpLevelOfDetail
$creadPrec :: ReadPrec TracingMemoryDumpLevelOfDetail
readList :: ReadS [TracingMemoryDumpLevelOfDetail]
$creadList :: ReadS [TracingMemoryDumpLevelOfDetail]
readsPrec :: Int -> ReadS TracingMemoryDumpLevelOfDetail
$creadsPrec :: Int -> ReadS TracingMemoryDumpLevelOfDetail
Read)
instance FromJSON TracingMemoryDumpLevelOfDetail where
  parseJSON :: Value -> Parser TracingMemoryDumpLevelOfDetail
parseJSON = String
-> (Text -> Parser TracingMemoryDumpLevelOfDetail)
-> Value
-> Parser TracingMemoryDumpLevelOfDetail
forall a. String -> (Text -> Parser a) -> Value -> Parser a
A.withText String
"TracingMemoryDumpLevelOfDetail" ((Text -> Parser TracingMemoryDumpLevelOfDetail)
 -> Value -> Parser TracingMemoryDumpLevelOfDetail)
-> (Text -> Parser TracingMemoryDumpLevelOfDetail)
-> Value
-> Parser TracingMemoryDumpLevelOfDetail
forall a b. (a -> b) -> a -> b
$ \Text
v -> case Text
v of
    Text
"background" -> TracingMemoryDumpLevelOfDetail
-> Parser TracingMemoryDumpLevelOfDetail
forall (f :: * -> *) a. Applicative f => a -> f a
pure TracingMemoryDumpLevelOfDetail
TracingMemoryDumpLevelOfDetailBackground
    Text
"light" -> TracingMemoryDumpLevelOfDetail
-> Parser TracingMemoryDumpLevelOfDetail
forall (f :: * -> *) a. Applicative f => a -> f a
pure TracingMemoryDumpLevelOfDetail
TracingMemoryDumpLevelOfDetailLight
    Text
"detailed" -> TracingMemoryDumpLevelOfDetail
-> Parser TracingMemoryDumpLevelOfDetail
forall (f :: * -> *) a. Applicative f => a -> f a
pure TracingMemoryDumpLevelOfDetail
TracingMemoryDumpLevelOfDetailDetailed
    Text
"_" -> String -> Parser TracingMemoryDumpLevelOfDetail
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"failed to parse TracingMemoryDumpLevelOfDetail"
instance ToJSON TracingMemoryDumpLevelOfDetail where
  toJSON :: TracingMemoryDumpLevelOfDetail -> Value
toJSON TracingMemoryDumpLevelOfDetail
v = Text -> Value
A.String (Text -> Value) -> Text -> Value
forall a b. (a -> b) -> a -> b
$ case TracingMemoryDumpLevelOfDetail
v of
    TracingMemoryDumpLevelOfDetail
TracingMemoryDumpLevelOfDetailBackground -> Text
"background"
    TracingMemoryDumpLevelOfDetail
TracingMemoryDumpLevelOfDetailLight -> Text
"light"
    TracingMemoryDumpLevelOfDetail
TracingMemoryDumpLevelOfDetailDetailed -> Text
"detailed"

-- | Type 'Tracing.TracingBackend'.
--   Backend type to use for tracing. `chrome` uses the Chrome-integrated
--   tracing service and is supported on all platforms. `system` is only
--   supported on Chrome OS and uses the Perfetto system tracing service.
--   `auto` chooses `system` when the perfettoConfig provided to Tracing.start
--   specifies at least one non-Chrome data source; otherwise uses `chrome`.
data TracingTracingBackend = TracingTracingBackendAuto | TracingTracingBackendChrome | TracingTracingBackendSystem
  deriving (Eq TracingTracingBackend
Eq TracingTracingBackend
-> (TracingTracingBackend -> TracingTracingBackend -> Ordering)
-> (TracingTracingBackend -> TracingTracingBackend -> Bool)
-> (TracingTracingBackend -> TracingTracingBackend -> Bool)
-> (TracingTracingBackend -> TracingTracingBackend -> Bool)
-> (TracingTracingBackend -> TracingTracingBackend -> Bool)
-> (TracingTracingBackend
    -> TracingTracingBackend -> TracingTracingBackend)
-> (TracingTracingBackend
    -> TracingTracingBackend -> TracingTracingBackend)
-> Ord TracingTracingBackend
TracingTracingBackend -> TracingTracingBackend -> Bool
TracingTracingBackend -> TracingTracingBackend -> Ordering
TracingTracingBackend
-> TracingTracingBackend -> TracingTracingBackend
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: TracingTracingBackend
-> TracingTracingBackend -> TracingTracingBackend
$cmin :: TracingTracingBackend
-> TracingTracingBackend -> TracingTracingBackend
max :: TracingTracingBackend
-> TracingTracingBackend -> TracingTracingBackend
$cmax :: TracingTracingBackend
-> TracingTracingBackend -> TracingTracingBackend
>= :: TracingTracingBackend -> TracingTracingBackend -> Bool
$c>= :: TracingTracingBackend -> TracingTracingBackend -> Bool
> :: TracingTracingBackend -> TracingTracingBackend -> Bool
$c> :: TracingTracingBackend -> TracingTracingBackend -> Bool
<= :: TracingTracingBackend -> TracingTracingBackend -> Bool
$c<= :: TracingTracingBackend -> TracingTracingBackend -> Bool
< :: TracingTracingBackend -> TracingTracingBackend -> Bool
$c< :: TracingTracingBackend -> TracingTracingBackend -> Bool
compare :: TracingTracingBackend -> TracingTracingBackend -> Ordering
$ccompare :: TracingTracingBackend -> TracingTracingBackend -> Ordering
$cp1Ord :: Eq TracingTracingBackend
Ord, TracingTracingBackend -> TracingTracingBackend -> Bool
(TracingTracingBackend -> TracingTracingBackend -> Bool)
-> (TracingTracingBackend -> TracingTracingBackend -> Bool)
-> Eq TracingTracingBackend
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TracingTracingBackend -> TracingTracingBackend -> Bool
$c/= :: TracingTracingBackend -> TracingTracingBackend -> Bool
== :: TracingTracingBackend -> TracingTracingBackend -> Bool
$c== :: TracingTracingBackend -> TracingTracingBackend -> Bool
Eq, Int -> TracingTracingBackend -> ShowS
[TracingTracingBackend] -> ShowS
TracingTracingBackend -> String
(Int -> TracingTracingBackend -> ShowS)
-> (TracingTracingBackend -> String)
-> ([TracingTracingBackend] -> ShowS)
-> Show TracingTracingBackend
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TracingTracingBackend] -> ShowS
$cshowList :: [TracingTracingBackend] -> ShowS
show :: TracingTracingBackend -> String
$cshow :: TracingTracingBackend -> String
showsPrec :: Int -> TracingTracingBackend -> ShowS
$cshowsPrec :: Int -> TracingTracingBackend -> ShowS
Show, ReadPrec [TracingTracingBackend]
ReadPrec TracingTracingBackend
Int -> ReadS TracingTracingBackend
ReadS [TracingTracingBackend]
(Int -> ReadS TracingTracingBackend)
-> ReadS [TracingTracingBackend]
-> ReadPrec TracingTracingBackend
-> ReadPrec [TracingTracingBackend]
-> Read TracingTracingBackend
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [TracingTracingBackend]
$creadListPrec :: ReadPrec [TracingTracingBackend]
readPrec :: ReadPrec TracingTracingBackend
$creadPrec :: ReadPrec TracingTracingBackend
readList :: ReadS [TracingTracingBackend]
$creadList :: ReadS [TracingTracingBackend]
readsPrec :: Int -> ReadS TracingTracingBackend
$creadsPrec :: Int -> ReadS TracingTracingBackend
Read)
instance FromJSON TracingTracingBackend where
  parseJSON :: Value -> Parser TracingTracingBackend
parseJSON = String
-> (Text -> Parser TracingTracingBackend)
-> Value
-> Parser TracingTracingBackend
forall a. String -> (Text -> Parser a) -> Value -> Parser a
A.withText String
"TracingTracingBackend" ((Text -> Parser TracingTracingBackend)
 -> Value -> Parser TracingTracingBackend)
-> (Text -> Parser TracingTracingBackend)
-> Value
-> Parser TracingTracingBackend
forall a b. (a -> b) -> a -> b
$ \Text
v -> case Text
v of
    Text
"auto" -> TracingTracingBackend -> Parser TracingTracingBackend
forall (f :: * -> *) a. Applicative f => a -> f a
pure TracingTracingBackend
TracingTracingBackendAuto
    Text
"chrome" -> TracingTracingBackend -> Parser TracingTracingBackend
forall (f :: * -> *) a. Applicative f => a -> f a
pure TracingTracingBackend
TracingTracingBackendChrome
    Text
"system" -> TracingTracingBackend -> Parser TracingTracingBackend
forall (f :: * -> *) a. Applicative f => a -> f a
pure TracingTracingBackend
TracingTracingBackendSystem
    Text
"_" -> String -> Parser TracingTracingBackend
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"failed to parse TracingTracingBackend"
instance ToJSON TracingTracingBackend where
  toJSON :: TracingTracingBackend -> Value
toJSON TracingTracingBackend
v = Text -> Value
A.String (Text -> Value) -> Text -> Value
forall a b. (a -> b) -> a -> b
$ case TracingTracingBackend
v of
    TracingTracingBackend
TracingTracingBackendAuto -> Text
"auto"
    TracingTracingBackend
TracingTracingBackendChrome -> Text
"chrome"
    TracingTracingBackend
TracingTracingBackendSystem -> Text
"system"

-- | Type of the 'Tracing.bufferUsage' event.
data TracingBufferUsage = TracingBufferUsage
  {
    -- | A number in range [0..1] that indicates the used size of event buffer as a fraction of its
    --   total size.
    TracingBufferUsage -> Maybe Double
tracingBufferUsagePercentFull :: Maybe Double,
    -- | An approximate number of events in the trace log.
    TracingBufferUsage -> Maybe Double
tracingBufferUsageEventCount :: Maybe Double,
    -- | A number in range [0..1] that indicates the used size of event buffer as a fraction of its
    --   total size.
    TracingBufferUsage -> Maybe Double
tracingBufferUsageValue :: Maybe Double
  }
  deriving (TracingBufferUsage -> TracingBufferUsage -> Bool
(TracingBufferUsage -> TracingBufferUsage -> Bool)
-> (TracingBufferUsage -> TracingBufferUsage -> Bool)
-> Eq TracingBufferUsage
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TracingBufferUsage -> TracingBufferUsage -> Bool
$c/= :: TracingBufferUsage -> TracingBufferUsage -> Bool
== :: TracingBufferUsage -> TracingBufferUsage -> Bool
$c== :: TracingBufferUsage -> TracingBufferUsage -> Bool
Eq, Int -> TracingBufferUsage -> ShowS
[TracingBufferUsage] -> ShowS
TracingBufferUsage -> String
(Int -> TracingBufferUsage -> ShowS)
-> (TracingBufferUsage -> String)
-> ([TracingBufferUsage] -> ShowS)
-> Show TracingBufferUsage
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TracingBufferUsage] -> ShowS
$cshowList :: [TracingBufferUsage] -> ShowS
show :: TracingBufferUsage -> String
$cshow :: TracingBufferUsage -> String
showsPrec :: Int -> TracingBufferUsage -> ShowS
$cshowsPrec :: Int -> TracingBufferUsage -> ShowS
Show)
instance FromJSON TracingBufferUsage where
  parseJSON :: Value -> Parser TracingBufferUsage
parseJSON = String
-> (Object -> Parser TracingBufferUsage)
-> Value
-> Parser TracingBufferUsage
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"TracingBufferUsage" ((Object -> Parser TracingBufferUsage)
 -> Value -> Parser TracingBufferUsage)
-> (Object -> Parser TracingBufferUsage)
-> Value
-> Parser TracingBufferUsage
forall a b. (a -> b) -> a -> b
$ \Object
o -> Maybe Double -> Maybe Double -> Maybe Double -> TracingBufferUsage
TracingBufferUsage
    (Maybe Double
 -> Maybe Double -> Maybe Double -> TracingBufferUsage)
-> Parser (Maybe Double)
-> Parser (Maybe Double -> Maybe Double -> TracingBufferUsage)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Text -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
A..:? Text
"percentFull"
    Parser (Maybe Double -> Maybe Double -> TracingBufferUsage)
-> Parser (Maybe Double)
-> Parser (Maybe Double -> TracingBufferUsage)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Text -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
A..:? Text
"eventCount"
    Parser (Maybe Double -> TracingBufferUsage)
-> Parser (Maybe Double) -> Parser TracingBufferUsage
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Text -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
A..:? Text
"value"
instance Event TracingBufferUsage where
  eventName :: Proxy TracingBufferUsage -> String
eventName Proxy TracingBufferUsage
_ = String
"Tracing.bufferUsage"

-- | Type of the 'Tracing.dataCollected' event.
data TracingDataCollected = TracingDataCollected
  {
    TracingDataCollected -> [TracingMemoryDumpConfig]
tracingDataCollectedValue :: [[(T.Text, T.Text)]]
  }
  deriving (TracingDataCollected -> TracingDataCollected -> Bool
(TracingDataCollected -> TracingDataCollected -> Bool)
-> (TracingDataCollected -> TracingDataCollected -> Bool)
-> Eq TracingDataCollected
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TracingDataCollected -> TracingDataCollected -> Bool
$c/= :: TracingDataCollected -> TracingDataCollected -> Bool
== :: TracingDataCollected -> TracingDataCollected -> Bool
$c== :: TracingDataCollected -> TracingDataCollected -> Bool
Eq, Int -> TracingDataCollected -> ShowS
[TracingDataCollected] -> ShowS
TracingDataCollected -> String
(Int -> TracingDataCollected -> ShowS)
-> (TracingDataCollected -> String)
-> ([TracingDataCollected] -> ShowS)
-> Show TracingDataCollected
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TracingDataCollected] -> ShowS
$cshowList :: [TracingDataCollected] -> ShowS
show :: TracingDataCollected -> String
$cshow :: TracingDataCollected -> String
showsPrec :: Int -> TracingDataCollected -> ShowS
$cshowsPrec :: Int -> TracingDataCollected -> ShowS
Show)
instance FromJSON TracingDataCollected where
  parseJSON :: Value -> Parser TracingDataCollected
parseJSON = String
-> (Object -> Parser TracingDataCollected)
-> Value
-> Parser TracingDataCollected
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"TracingDataCollected" ((Object -> Parser TracingDataCollected)
 -> Value -> Parser TracingDataCollected)
-> (Object -> Parser TracingDataCollected)
-> Value
-> Parser TracingDataCollected
forall a b. (a -> b) -> a -> b
$ \Object
o -> [TracingMemoryDumpConfig] -> TracingDataCollected
TracingDataCollected
    ([TracingMemoryDumpConfig] -> TracingDataCollected)
-> Parser [TracingMemoryDumpConfig] -> Parser TracingDataCollected
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Text -> Parser [TracingMemoryDumpConfig]
forall a. FromJSON a => Object -> Text -> Parser a
A..: Text
"value"
instance Event TracingDataCollected where
  eventName :: Proxy TracingDataCollected -> String
eventName Proxy TracingDataCollected
_ = String
"Tracing.dataCollected"

-- | Type of the 'Tracing.tracingComplete' event.
data TracingTracingComplete = TracingTracingComplete
  {
    -- | Indicates whether some trace data is known to have been lost, e.g. because the trace ring
    --   buffer wrapped around.
    TracingTracingComplete -> Bool
tracingTracingCompleteDataLossOccurred :: Bool,
    -- | A handle of the stream that holds resulting trace data.
    TracingTracingComplete -> Maybe Text
tracingTracingCompleteStream :: Maybe IO.IOStreamHandle,
    -- | Trace data format of returned stream.
    TracingTracingComplete -> Maybe TracingStreamFormat
tracingTracingCompleteTraceFormat :: Maybe TracingStreamFormat,
    -- | Compression format of returned stream.
    TracingTracingComplete -> Maybe TracingStreamCompression
tracingTracingCompleteStreamCompression :: Maybe TracingStreamCompression
  }
  deriving (TracingTracingComplete -> TracingTracingComplete -> Bool
(TracingTracingComplete -> TracingTracingComplete -> Bool)
-> (TracingTracingComplete -> TracingTracingComplete -> Bool)
-> Eq TracingTracingComplete
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TracingTracingComplete -> TracingTracingComplete -> Bool
$c/= :: TracingTracingComplete -> TracingTracingComplete -> Bool
== :: TracingTracingComplete -> TracingTracingComplete -> Bool
$c== :: TracingTracingComplete -> TracingTracingComplete -> Bool
Eq, Int -> TracingTracingComplete -> ShowS
[TracingTracingComplete] -> ShowS
TracingTracingComplete -> String
(Int -> TracingTracingComplete -> ShowS)
-> (TracingTracingComplete -> String)
-> ([TracingTracingComplete] -> ShowS)
-> Show TracingTracingComplete
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TracingTracingComplete] -> ShowS
$cshowList :: [TracingTracingComplete] -> ShowS
show :: TracingTracingComplete -> String
$cshow :: TracingTracingComplete -> String
showsPrec :: Int -> TracingTracingComplete -> ShowS
$cshowsPrec :: Int -> TracingTracingComplete -> ShowS
Show)
instance FromJSON TracingTracingComplete where
  parseJSON :: Value -> Parser TracingTracingComplete
parseJSON = String
-> (Object -> Parser TracingTracingComplete)
-> Value
-> Parser TracingTracingComplete
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"TracingTracingComplete" ((Object -> Parser TracingTracingComplete)
 -> Value -> Parser TracingTracingComplete)
-> (Object -> Parser TracingTracingComplete)
-> Value
-> Parser TracingTracingComplete
forall a b. (a -> b) -> a -> b
$ \Object
o -> Bool
-> Maybe Text
-> Maybe TracingStreamFormat
-> Maybe TracingStreamCompression
-> TracingTracingComplete
TracingTracingComplete
    (Bool
 -> Maybe Text
 -> Maybe TracingStreamFormat
 -> Maybe TracingStreamCompression
 -> TracingTracingComplete)
-> Parser Bool
-> Parser
     (Maybe Text
      -> Maybe TracingStreamFormat
      -> Maybe TracingStreamCompression
      -> TracingTracingComplete)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
A..: Text
"dataLossOccurred"
    Parser
  (Maybe Text
   -> Maybe TracingStreamFormat
   -> Maybe TracingStreamCompression
   -> TracingTracingComplete)
-> Parser (Maybe Text)
-> Parser
     (Maybe TracingStreamFormat
      -> Maybe TracingStreamCompression -> TracingTracingComplete)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
A..:? Text
"stream"
    Parser
  (Maybe TracingStreamFormat
   -> Maybe TracingStreamCompression -> TracingTracingComplete)
-> Parser (Maybe TracingStreamFormat)
-> Parser
     (Maybe TracingStreamCompression -> TracingTracingComplete)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Text -> Parser (Maybe TracingStreamFormat)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
A..:? Text
"traceFormat"
    Parser (Maybe TracingStreamCompression -> TracingTracingComplete)
-> Parser (Maybe TracingStreamCompression)
-> Parser TracingTracingComplete
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Text -> Parser (Maybe TracingStreamCompression)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
A..:? Text
"streamCompression"
instance Event TracingTracingComplete where
  eventName :: Proxy TracingTracingComplete -> String
eventName Proxy TracingTracingComplete
_ = String
"Tracing.tracingComplete"

-- | Stop trace events collection.

-- | Parameters of the 'Tracing.end' command.
data PTracingEnd = PTracingEnd
  deriving (PTracingEnd -> PTracingEnd -> Bool
(PTracingEnd -> PTracingEnd -> Bool)
-> (PTracingEnd -> PTracingEnd -> Bool) -> Eq PTracingEnd
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PTracingEnd -> PTracingEnd -> Bool
$c/= :: PTracingEnd -> PTracingEnd -> Bool
== :: PTracingEnd -> PTracingEnd -> Bool
$c== :: PTracingEnd -> PTracingEnd -> Bool
Eq, Int -> PTracingEnd -> ShowS
[PTracingEnd] -> ShowS
PTracingEnd -> String
(Int -> PTracingEnd -> ShowS)
-> (PTracingEnd -> String)
-> ([PTracingEnd] -> ShowS)
-> Show PTracingEnd
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PTracingEnd] -> ShowS
$cshowList :: [PTracingEnd] -> ShowS
show :: PTracingEnd -> String
$cshow :: PTracingEnd -> String
showsPrec :: Int -> PTracingEnd -> ShowS
$cshowsPrec :: Int -> PTracingEnd -> ShowS
Show)
pTracingEnd
  :: PTracingEnd
pTracingEnd :: PTracingEnd
pTracingEnd
  = PTracingEnd
PTracingEnd
instance ToJSON PTracingEnd where
  toJSON :: PTracingEnd -> Value
toJSON PTracingEnd
_ = Value
A.Null
instance Command PTracingEnd where
  type CommandResponse PTracingEnd = ()
  commandName :: Proxy PTracingEnd -> String
commandName Proxy PTracingEnd
_ = String
"Tracing.end"
  fromJSON :: Proxy PTracingEnd -> Value -> Result (CommandResponse PTracingEnd)
fromJSON = Result () -> Value -> Result ()
forall a b. a -> b -> a
const (Result () -> Value -> Result ())
-> (Proxy PTracingEnd -> Result ())
-> Proxy PTracingEnd
-> Value
-> Result ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. () -> Result ()
forall a. a -> Result a
A.Success (() -> Result ())
-> (Proxy PTracingEnd -> ()) -> Proxy PTracingEnd -> Result ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. () -> Proxy PTracingEnd -> ()
forall a b. a -> b -> a
const ()

-- | Gets supported tracing categories.

-- | Parameters of the 'Tracing.getCategories' command.
data PTracingGetCategories = PTracingGetCategories
  deriving (PTracingGetCategories -> PTracingGetCategories -> Bool
(PTracingGetCategories -> PTracingGetCategories -> Bool)
-> (PTracingGetCategories -> PTracingGetCategories -> Bool)
-> Eq PTracingGetCategories
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PTracingGetCategories -> PTracingGetCategories -> Bool
$c/= :: PTracingGetCategories -> PTracingGetCategories -> Bool
== :: PTracingGetCategories -> PTracingGetCategories -> Bool
$c== :: PTracingGetCategories -> PTracingGetCategories -> Bool
Eq, Int -> PTracingGetCategories -> ShowS
[PTracingGetCategories] -> ShowS
PTracingGetCategories -> String
(Int -> PTracingGetCategories -> ShowS)
-> (PTracingGetCategories -> String)
-> ([PTracingGetCategories] -> ShowS)
-> Show PTracingGetCategories
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PTracingGetCategories] -> ShowS
$cshowList :: [PTracingGetCategories] -> ShowS
show :: PTracingGetCategories -> String
$cshow :: PTracingGetCategories -> String
showsPrec :: Int -> PTracingGetCategories -> ShowS
$cshowsPrec :: Int -> PTracingGetCategories -> ShowS
Show)
pTracingGetCategories
  :: PTracingGetCategories
pTracingGetCategories :: PTracingGetCategories
pTracingGetCategories
  = PTracingGetCategories
PTracingGetCategories
instance ToJSON PTracingGetCategories where
  toJSON :: PTracingGetCategories -> Value
toJSON PTracingGetCategories
_ = Value
A.Null
data TracingGetCategories = TracingGetCategories
  {
    -- | A list of supported tracing categories.
    TracingGetCategories -> [Text]
tracingGetCategoriesCategories :: [T.Text]
  }
  deriving (TracingGetCategories -> TracingGetCategories -> Bool
(TracingGetCategories -> TracingGetCategories -> Bool)
-> (TracingGetCategories -> TracingGetCategories -> Bool)
-> Eq TracingGetCategories
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TracingGetCategories -> TracingGetCategories -> Bool
$c/= :: TracingGetCategories -> TracingGetCategories -> Bool
== :: TracingGetCategories -> TracingGetCategories -> Bool
$c== :: TracingGetCategories -> TracingGetCategories -> Bool
Eq, Int -> TracingGetCategories -> ShowS
[TracingGetCategories] -> ShowS
TracingGetCategories -> String
(Int -> TracingGetCategories -> ShowS)
-> (TracingGetCategories -> String)
-> ([TracingGetCategories] -> ShowS)
-> Show TracingGetCategories
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TracingGetCategories] -> ShowS
$cshowList :: [TracingGetCategories] -> ShowS
show :: TracingGetCategories -> String
$cshow :: TracingGetCategories -> String
showsPrec :: Int -> TracingGetCategories -> ShowS
$cshowsPrec :: Int -> TracingGetCategories -> ShowS
Show)
instance FromJSON TracingGetCategories where
  parseJSON :: Value -> Parser TracingGetCategories
parseJSON = String
-> (Object -> Parser TracingGetCategories)
-> Value
-> Parser TracingGetCategories
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"TracingGetCategories" ((Object -> Parser TracingGetCategories)
 -> Value -> Parser TracingGetCategories)
-> (Object -> Parser TracingGetCategories)
-> Value
-> Parser TracingGetCategories
forall a b. (a -> b) -> a -> b
$ \Object
o -> [Text] -> TracingGetCategories
TracingGetCategories
    ([Text] -> TracingGetCategories)
-> Parser [Text] -> Parser TracingGetCategories
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
A..: Text
"categories"
instance Command PTracingGetCategories where
  type CommandResponse PTracingGetCategories = TracingGetCategories
  commandName :: Proxy PTracingGetCategories -> String
commandName Proxy PTracingGetCategories
_ = String
"Tracing.getCategories"

-- | Record a clock sync marker in the trace.

-- | Parameters of the 'Tracing.recordClockSyncMarker' command.
data PTracingRecordClockSyncMarker = PTracingRecordClockSyncMarker
  {
    -- | The ID of this clock sync marker
    PTracingRecordClockSyncMarker -> Text
pTracingRecordClockSyncMarkerSyncId :: T.Text
  }
  deriving (PTracingRecordClockSyncMarker
-> PTracingRecordClockSyncMarker -> Bool
(PTracingRecordClockSyncMarker
 -> PTracingRecordClockSyncMarker -> Bool)
-> (PTracingRecordClockSyncMarker
    -> PTracingRecordClockSyncMarker -> Bool)
-> Eq PTracingRecordClockSyncMarker
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PTracingRecordClockSyncMarker
-> PTracingRecordClockSyncMarker -> Bool
$c/= :: PTracingRecordClockSyncMarker
-> PTracingRecordClockSyncMarker -> Bool
== :: PTracingRecordClockSyncMarker
-> PTracingRecordClockSyncMarker -> Bool
$c== :: PTracingRecordClockSyncMarker
-> PTracingRecordClockSyncMarker -> Bool
Eq, Int -> PTracingRecordClockSyncMarker -> ShowS
[PTracingRecordClockSyncMarker] -> ShowS
PTracingRecordClockSyncMarker -> String
(Int -> PTracingRecordClockSyncMarker -> ShowS)
-> (PTracingRecordClockSyncMarker -> String)
-> ([PTracingRecordClockSyncMarker] -> ShowS)
-> Show PTracingRecordClockSyncMarker
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PTracingRecordClockSyncMarker] -> ShowS
$cshowList :: [PTracingRecordClockSyncMarker] -> ShowS
show :: PTracingRecordClockSyncMarker -> String
$cshow :: PTracingRecordClockSyncMarker -> String
showsPrec :: Int -> PTracingRecordClockSyncMarker -> ShowS
$cshowsPrec :: Int -> PTracingRecordClockSyncMarker -> ShowS
Show)
pTracingRecordClockSyncMarker
  {-
  -- | The ID of this clock sync marker
  -}
  :: T.Text
  -> PTracingRecordClockSyncMarker
pTracingRecordClockSyncMarker :: Text -> PTracingRecordClockSyncMarker
pTracingRecordClockSyncMarker
  Text
arg_pTracingRecordClockSyncMarkerSyncId
  = Text -> PTracingRecordClockSyncMarker
PTracingRecordClockSyncMarker
    Text
arg_pTracingRecordClockSyncMarkerSyncId
instance ToJSON PTracingRecordClockSyncMarker where
  toJSON :: PTracingRecordClockSyncMarker -> Value
toJSON PTracingRecordClockSyncMarker
p = [Pair] -> Value
A.object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$ [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
catMaybes [
    (Text
"syncId" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
A..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Text -> Maybe Text
forall a. a -> Maybe a
Just (PTracingRecordClockSyncMarker -> Text
pTracingRecordClockSyncMarkerSyncId PTracingRecordClockSyncMarker
p)
    ]
instance Command PTracingRecordClockSyncMarker where
  type CommandResponse PTracingRecordClockSyncMarker = ()
  commandName :: Proxy PTracingRecordClockSyncMarker -> String
commandName Proxy PTracingRecordClockSyncMarker
_ = String
"Tracing.recordClockSyncMarker"
  fromJSON :: Proxy PTracingRecordClockSyncMarker
-> Value -> Result (CommandResponse PTracingRecordClockSyncMarker)
fromJSON = Result () -> Value -> Result ()
forall a b. a -> b -> a
const (Result () -> Value -> Result ())
-> (Proxy PTracingRecordClockSyncMarker -> Result ())
-> Proxy PTracingRecordClockSyncMarker
-> Value
-> Result ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. () -> Result ()
forall a. a -> Result a
A.Success (() -> Result ())
-> (Proxy PTracingRecordClockSyncMarker -> ())
-> Proxy PTracingRecordClockSyncMarker
-> Result ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. () -> Proxy PTracingRecordClockSyncMarker -> ()
forall a b. a -> b -> a
const ()

-- | Request a global memory dump.

-- | Parameters of the 'Tracing.requestMemoryDump' command.
data PTracingRequestMemoryDump = PTracingRequestMemoryDump
  {
    -- | Enables more deterministic results by forcing garbage collection
    PTracingRequestMemoryDump -> Maybe Bool
pTracingRequestMemoryDumpDeterministic :: Maybe Bool,
    -- | Specifies level of details in memory dump. Defaults to "detailed".
    PTracingRequestMemoryDump -> Maybe TracingMemoryDumpLevelOfDetail
pTracingRequestMemoryDumpLevelOfDetail :: Maybe TracingMemoryDumpLevelOfDetail
  }
  deriving (PTracingRequestMemoryDump -> PTracingRequestMemoryDump -> Bool
(PTracingRequestMemoryDump -> PTracingRequestMemoryDump -> Bool)
-> (PTracingRequestMemoryDump -> PTracingRequestMemoryDump -> Bool)
-> Eq PTracingRequestMemoryDump
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PTracingRequestMemoryDump -> PTracingRequestMemoryDump -> Bool
$c/= :: PTracingRequestMemoryDump -> PTracingRequestMemoryDump -> Bool
== :: PTracingRequestMemoryDump -> PTracingRequestMemoryDump -> Bool
$c== :: PTracingRequestMemoryDump -> PTracingRequestMemoryDump -> Bool
Eq, Int -> PTracingRequestMemoryDump -> ShowS
[PTracingRequestMemoryDump] -> ShowS
PTracingRequestMemoryDump -> String
(Int -> PTracingRequestMemoryDump -> ShowS)
-> (PTracingRequestMemoryDump -> String)
-> ([PTracingRequestMemoryDump] -> ShowS)
-> Show PTracingRequestMemoryDump
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PTracingRequestMemoryDump] -> ShowS
$cshowList :: [PTracingRequestMemoryDump] -> ShowS
show :: PTracingRequestMemoryDump -> String
$cshow :: PTracingRequestMemoryDump -> String
showsPrec :: Int -> PTracingRequestMemoryDump -> ShowS
$cshowsPrec :: Int -> PTracingRequestMemoryDump -> ShowS
Show)
pTracingRequestMemoryDump
  :: PTracingRequestMemoryDump
pTracingRequestMemoryDump :: PTracingRequestMemoryDump
pTracingRequestMemoryDump
  = Maybe Bool
-> Maybe TracingMemoryDumpLevelOfDetail
-> PTracingRequestMemoryDump
PTracingRequestMemoryDump
    Maybe Bool
forall a. Maybe a
Nothing
    Maybe TracingMemoryDumpLevelOfDetail
forall a. Maybe a
Nothing
instance ToJSON PTracingRequestMemoryDump where
  toJSON :: PTracingRequestMemoryDump -> Value
toJSON PTracingRequestMemoryDump
p = [Pair] -> Value
A.object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$ [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
catMaybes [
    (Text
"deterministic" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
A..=) (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (PTracingRequestMemoryDump -> Maybe Bool
pTracingRequestMemoryDumpDeterministic PTracingRequestMemoryDump
p),
    (Text
"levelOfDetail" Text -> TracingMemoryDumpLevelOfDetail -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
A..=) (TracingMemoryDumpLevelOfDetail -> Pair)
-> Maybe TracingMemoryDumpLevelOfDetail -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (PTracingRequestMemoryDump -> Maybe TracingMemoryDumpLevelOfDetail
pTracingRequestMemoryDumpLevelOfDetail PTracingRequestMemoryDump
p)
    ]
data TracingRequestMemoryDump = TracingRequestMemoryDump
  {
    -- | GUID of the resulting global memory dump.
    TracingRequestMemoryDump -> Text
tracingRequestMemoryDumpDumpGuid :: T.Text,
    -- | True iff the global memory dump succeeded.
    TracingRequestMemoryDump -> Bool
tracingRequestMemoryDumpSuccess :: Bool
  }
  deriving (TracingRequestMemoryDump -> TracingRequestMemoryDump -> Bool
(TracingRequestMemoryDump -> TracingRequestMemoryDump -> Bool)
-> (TracingRequestMemoryDump -> TracingRequestMemoryDump -> Bool)
-> Eq TracingRequestMemoryDump
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TracingRequestMemoryDump -> TracingRequestMemoryDump -> Bool
$c/= :: TracingRequestMemoryDump -> TracingRequestMemoryDump -> Bool
== :: TracingRequestMemoryDump -> TracingRequestMemoryDump -> Bool
$c== :: TracingRequestMemoryDump -> TracingRequestMemoryDump -> Bool
Eq, Int -> TracingRequestMemoryDump -> ShowS
[TracingRequestMemoryDump] -> ShowS
TracingRequestMemoryDump -> String
(Int -> TracingRequestMemoryDump -> ShowS)
-> (TracingRequestMemoryDump -> String)
-> ([TracingRequestMemoryDump] -> ShowS)
-> Show TracingRequestMemoryDump
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TracingRequestMemoryDump] -> ShowS
$cshowList :: [TracingRequestMemoryDump] -> ShowS
show :: TracingRequestMemoryDump -> String
$cshow :: TracingRequestMemoryDump -> String
showsPrec :: Int -> TracingRequestMemoryDump -> ShowS
$cshowsPrec :: Int -> TracingRequestMemoryDump -> ShowS
Show)
instance FromJSON TracingRequestMemoryDump where
  parseJSON :: Value -> Parser TracingRequestMemoryDump
parseJSON = String
-> (Object -> Parser TracingRequestMemoryDump)
-> Value
-> Parser TracingRequestMemoryDump
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"TracingRequestMemoryDump" ((Object -> Parser TracingRequestMemoryDump)
 -> Value -> Parser TracingRequestMemoryDump)
-> (Object -> Parser TracingRequestMemoryDump)
-> Value
-> Parser TracingRequestMemoryDump
forall a b. (a -> b) -> a -> b
$ \Object
o -> Text -> Bool -> TracingRequestMemoryDump
TracingRequestMemoryDump
    (Text -> Bool -> TracingRequestMemoryDump)
-> Parser Text -> Parser (Bool -> TracingRequestMemoryDump)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
A..: Text
"dumpGuid"
    Parser (Bool -> TracingRequestMemoryDump)
-> Parser Bool -> Parser TracingRequestMemoryDump
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
A..: Text
"success"
instance Command PTracingRequestMemoryDump where
  type CommandResponse PTracingRequestMemoryDump = TracingRequestMemoryDump
  commandName :: Proxy PTracingRequestMemoryDump -> String
commandName Proxy PTracingRequestMemoryDump
_ = String
"Tracing.requestMemoryDump"

-- | Start trace events collection.

-- | Parameters of the 'Tracing.start' command.
data PTracingStartTransferMode = PTracingStartTransferModeReportEvents | PTracingStartTransferModeReturnAsStream
  deriving (Eq PTracingStartTransferMode
Eq PTracingStartTransferMode
-> (PTracingStartTransferMode
    -> PTracingStartTransferMode -> Ordering)
-> (PTracingStartTransferMode -> PTracingStartTransferMode -> Bool)
-> (PTracingStartTransferMode -> PTracingStartTransferMode -> Bool)
-> (PTracingStartTransferMode -> PTracingStartTransferMode -> Bool)
-> (PTracingStartTransferMode -> PTracingStartTransferMode -> Bool)
-> (PTracingStartTransferMode
    -> PTracingStartTransferMode -> PTracingStartTransferMode)
-> (PTracingStartTransferMode
    -> PTracingStartTransferMode -> PTracingStartTransferMode)
-> Ord PTracingStartTransferMode
PTracingStartTransferMode -> PTracingStartTransferMode -> Bool
PTracingStartTransferMode -> PTracingStartTransferMode -> Ordering
PTracingStartTransferMode
-> PTracingStartTransferMode -> PTracingStartTransferMode
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: PTracingStartTransferMode
-> PTracingStartTransferMode -> PTracingStartTransferMode
$cmin :: PTracingStartTransferMode
-> PTracingStartTransferMode -> PTracingStartTransferMode
max :: PTracingStartTransferMode
-> PTracingStartTransferMode -> PTracingStartTransferMode
$cmax :: PTracingStartTransferMode
-> PTracingStartTransferMode -> PTracingStartTransferMode
>= :: PTracingStartTransferMode -> PTracingStartTransferMode -> Bool
$c>= :: PTracingStartTransferMode -> PTracingStartTransferMode -> Bool
> :: PTracingStartTransferMode -> PTracingStartTransferMode -> Bool
$c> :: PTracingStartTransferMode -> PTracingStartTransferMode -> Bool
<= :: PTracingStartTransferMode -> PTracingStartTransferMode -> Bool
$c<= :: PTracingStartTransferMode -> PTracingStartTransferMode -> Bool
< :: PTracingStartTransferMode -> PTracingStartTransferMode -> Bool
$c< :: PTracingStartTransferMode -> PTracingStartTransferMode -> Bool
compare :: PTracingStartTransferMode -> PTracingStartTransferMode -> Ordering
$ccompare :: PTracingStartTransferMode -> PTracingStartTransferMode -> Ordering
$cp1Ord :: Eq PTracingStartTransferMode
Ord, PTracingStartTransferMode -> PTracingStartTransferMode -> Bool
(PTracingStartTransferMode -> PTracingStartTransferMode -> Bool)
-> (PTracingStartTransferMode -> PTracingStartTransferMode -> Bool)
-> Eq PTracingStartTransferMode
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PTracingStartTransferMode -> PTracingStartTransferMode -> Bool
$c/= :: PTracingStartTransferMode -> PTracingStartTransferMode -> Bool
== :: PTracingStartTransferMode -> PTracingStartTransferMode -> Bool
$c== :: PTracingStartTransferMode -> PTracingStartTransferMode -> Bool
Eq, Int -> PTracingStartTransferMode -> ShowS
[PTracingStartTransferMode] -> ShowS
PTracingStartTransferMode -> String
(Int -> PTracingStartTransferMode -> ShowS)
-> (PTracingStartTransferMode -> String)
-> ([PTracingStartTransferMode] -> ShowS)
-> Show PTracingStartTransferMode
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PTracingStartTransferMode] -> ShowS
$cshowList :: [PTracingStartTransferMode] -> ShowS
show :: PTracingStartTransferMode -> String
$cshow :: PTracingStartTransferMode -> String
showsPrec :: Int -> PTracingStartTransferMode -> ShowS
$cshowsPrec :: Int -> PTracingStartTransferMode -> ShowS
Show, ReadPrec [PTracingStartTransferMode]
ReadPrec PTracingStartTransferMode
Int -> ReadS PTracingStartTransferMode
ReadS [PTracingStartTransferMode]
(Int -> ReadS PTracingStartTransferMode)
-> ReadS [PTracingStartTransferMode]
-> ReadPrec PTracingStartTransferMode
-> ReadPrec [PTracingStartTransferMode]
-> Read PTracingStartTransferMode
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PTracingStartTransferMode]
$creadListPrec :: ReadPrec [PTracingStartTransferMode]
readPrec :: ReadPrec PTracingStartTransferMode
$creadPrec :: ReadPrec PTracingStartTransferMode
readList :: ReadS [PTracingStartTransferMode]
$creadList :: ReadS [PTracingStartTransferMode]
readsPrec :: Int -> ReadS PTracingStartTransferMode
$creadsPrec :: Int -> ReadS PTracingStartTransferMode
Read)
instance FromJSON PTracingStartTransferMode where
  parseJSON :: Value -> Parser PTracingStartTransferMode
parseJSON = String
-> (Text -> Parser PTracingStartTransferMode)
-> Value
-> Parser PTracingStartTransferMode
forall a. String -> (Text -> Parser a) -> Value -> Parser a
A.withText String
"PTracingStartTransferMode" ((Text -> Parser PTracingStartTransferMode)
 -> Value -> Parser PTracingStartTransferMode)
-> (Text -> Parser PTracingStartTransferMode)
-> Value
-> Parser PTracingStartTransferMode
forall a b. (a -> b) -> a -> b
$ \Text
v -> case Text
v of
    Text
"ReportEvents" -> PTracingStartTransferMode -> Parser PTracingStartTransferMode
forall (f :: * -> *) a. Applicative f => a -> f a
pure PTracingStartTransferMode
PTracingStartTransferModeReportEvents
    Text
"ReturnAsStream" -> PTracingStartTransferMode -> Parser PTracingStartTransferMode
forall (f :: * -> *) a. Applicative f => a -> f a
pure PTracingStartTransferMode
PTracingStartTransferModeReturnAsStream
    Text
"_" -> String -> Parser PTracingStartTransferMode
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"failed to parse PTracingStartTransferMode"
instance ToJSON PTracingStartTransferMode where
  toJSON :: PTracingStartTransferMode -> Value
toJSON PTracingStartTransferMode
v = Text -> Value
A.String (Text -> Value) -> Text -> Value
forall a b. (a -> b) -> a -> b
$ case PTracingStartTransferMode
v of
    PTracingStartTransferMode
PTracingStartTransferModeReportEvents -> Text
"ReportEvents"
    PTracingStartTransferMode
PTracingStartTransferModeReturnAsStream -> Text
"ReturnAsStream"
data PTracingStart = PTracingStart
  {
    -- | If set, the agent will issue bufferUsage events at this interval, specified in milliseconds
    PTracingStart -> Maybe Double
pTracingStartBufferUsageReportingInterval :: Maybe Double,
    -- | Whether to report trace events as series of dataCollected events or to save trace to a
    --   stream (defaults to `ReportEvents`).
    PTracingStart -> Maybe PTracingStartTransferMode
pTracingStartTransferMode :: Maybe PTracingStartTransferMode,
    -- | Trace data format to use. This only applies when using `ReturnAsStream`
    --   transfer mode (defaults to `json`).
    PTracingStart -> Maybe TracingStreamFormat
pTracingStartStreamFormat :: Maybe TracingStreamFormat,
    -- | Compression format to use. This only applies when using `ReturnAsStream`
    --   transfer mode (defaults to `none`)
    PTracingStart -> Maybe TracingStreamCompression
pTracingStartStreamCompression :: Maybe TracingStreamCompression,
    PTracingStart -> Maybe TracingTraceConfig
pTracingStartTraceConfig :: Maybe TracingTraceConfig,
    -- | Base64-encoded serialized perfetto.protos.TraceConfig protobuf message
    --   When specified, the parameters `categories`, `options`, `traceConfig`
    --   are ignored. (Encoded as a base64 string when passed over JSON)
    PTracingStart -> Maybe Text
pTracingStartPerfettoConfig :: Maybe T.Text,
    -- | Backend type (defaults to `auto`)
    PTracingStart -> Maybe TracingTracingBackend
pTracingStartTracingBackend :: Maybe TracingTracingBackend
  }
  deriving (PTracingStart -> PTracingStart -> Bool
(PTracingStart -> PTracingStart -> Bool)
-> (PTracingStart -> PTracingStart -> Bool) -> Eq PTracingStart
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PTracingStart -> PTracingStart -> Bool
$c/= :: PTracingStart -> PTracingStart -> Bool
== :: PTracingStart -> PTracingStart -> Bool
$c== :: PTracingStart -> PTracingStart -> Bool
Eq, Int -> PTracingStart -> ShowS
[PTracingStart] -> ShowS
PTracingStart -> String
(Int -> PTracingStart -> ShowS)
-> (PTracingStart -> String)
-> ([PTracingStart] -> ShowS)
-> Show PTracingStart
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PTracingStart] -> ShowS
$cshowList :: [PTracingStart] -> ShowS
show :: PTracingStart -> String
$cshow :: PTracingStart -> String
showsPrec :: Int -> PTracingStart -> ShowS
$cshowsPrec :: Int -> PTracingStart -> ShowS
Show)
pTracingStart
  :: PTracingStart
pTracingStart :: PTracingStart
pTracingStart
  = Maybe Double
-> Maybe PTracingStartTransferMode
-> Maybe TracingStreamFormat
-> Maybe TracingStreamCompression
-> Maybe TracingTraceConfig
-> Maybe Text
-> Maybe TracingTracingBackend
-> PTracingStart
PTracingStart
    Maybe Double
forall a. Maybe a
Nothing
    Maybe PTracingStartTransferMode
forall a. Maybe a
Nothing
    Maybe TracingStreamFormat
forall a. Maybe a
Nothing
    Maybe TracingStreamCompression
forall a. Maybe a
Nothing
    Maybe TracingTraceConfig
forall a. Maybe a
Nothing
    Maybe Text
forall a. Maybe a
Nothing
    Maybe TracingTracingBackend
forall a. Maybe a
Nothing
instance ToJSON PTracingStart where
  toJSON :: PTracingStart -> Value
toJSON PTracingStart
p = [Pair] -> Value
A.object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$ [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
catMaybes [
    (Text
"bufferUsageReportingInterval" Text -> Double -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
A..=) (Double -> Pair) -> Maybe Double -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (PTracingStart -> Maybe Double
pTracingStartBufferUsageReportingInterval PTracingStart
p),
    (Text
"transferMode" Text -> PTracingStartTransferMode -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
A..=) (PTracingStartTransferMode -> Pair)
-> Maybe PTracingStartTransferMode -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (PTracingStart -> Maybe PTracingStartTransferMode
pTracingStartTransferMode PTracingStart
p),
    (Text
"streamFormat" Text -> TracingStreamFormat -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
A..=) (TracingStreamFormat -> Pair)
-> Maybe TracingStreamFormat -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (PTracingStart -> Maybe TracingStreamFormat
pTracingStartStreamFormat PTracingStart
p),
    (Text
"streamCompression" Text -> TracingStreamCompression -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
A..=) (TracingStreamCompression -> Pair)
-> Maybe TracingStreamCompression -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (PTracingStart -> Maybe TracingStreamCompression
pTracingStartStreamCompression PTracingStart
p),
    (Text
"traceConfig" Text -> TracingTraceConfig -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
A..=) (TracingTraceConfig -> Pair)
-> Maybe TracingTraceConfig -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (PTracingStart -> Maybe TracingTraceConfig
pTracingStartTraceConfig PTracingStart
p),
    (Text
"perfettoConfig" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
A..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (PTracingStart -> Maybe Text
pTracingStartPerfettoConfig PTracingStart
p),
    (Text
"tracingBackend" Text -> TracingTracingBackend -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
A..=) (TracingTracingBackend -> Pair)
-> Maybe TracingTracingBackend -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (PTracingStart -> Maybe TracingTracingBackend
pTracingStartTracingBackend PTracingStart
p)
    ]
instance Command PTracingStart where
  type CommandResponse PTracingStart = ()
  commandName :: Proxy PTracingStart -> String
commandName Proxy PTracingStart
_ = String
"Tracing.start"
  fromJSON :: Proxy PTracingStart
-> Value -> Result (CommandResponse PTracingStart)
fromJSON = Result () -> Value -> Result ()
forall a b. a -> b -> a
const (Result () -> Value -> Result ())
-> (Proxy PTracingStart -> Result ())
-> Proxy PTracingStart
-> Value
-> Result ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. () -> Result ()
forall a. a -> Result a
A.Success (() -> Result ())
-> (Proxy PTracingStart -> ()) -> Proxy PTracingStart -> Result ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. () -> Proxy PTracingStart -> ()
forall a b. a -> b -> a
const ()