instana-haskell-trace-sdk-0.8.0.0: src/Instana/SDK/Internal/AgentConnection/Json/AnnounceResponse.hs
{-# LANGUAGE DeriveGeneric #-}
{-|
Module : Instana.SDK.Internal.AgentConnection.Json.AnnounceResponse
Description : Aeson type for the agent's announce response
-}
module Instana.SDK.Internal.AgentConnection.Json.AnnounceResponse
( AnnounceResponse(..)
, TracingConfig(..)
) where
import Data.Aeson (FromJSON)
import qualified Data.Aeson as Aeson
import Data.Aeson.Casing as AesonCasing
import Data.Text (Text)
import GHC.Generics
import Instana.SDK.Internal.Secrets (SecretsMatcher)
-- |Holds the agent's response to the announce request.
data AnnounceResponse = AnnounceResponse
{ pid :: Int
, agentUuid :: Text
, tracing :: Maybe TracingConfig
, extraHeaders :: Maybe [String]
, secrets :: SecretsMatcher
} deriving (Eq, Show, Generic)
instance FromJSON AnnounceResponse
data TracingConfig = TracingConfig
{ extraHttpHeaders :: Maybe [String]
} deriving (Eq, Show, Generic)
instance FromJSON TracingConfig where
parseJSON = Aeson.genericParseJSON $
AesonCasing.aesonDrop 0 AesonCasing.trainCase