{-# 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.ApplicationInsights.Types.Observation
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.ApplicationInsights.Types.Observation where

import Amazonka.ApplicationInsights.Types.CloudWatchEventSource
import Amazonka.ApplicationInsights.Types.LogFilter
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude

-- | Describes an anomaly or error with the application.
--
-- /See:/ 'newObservation' smart constructor.
data Observation = Observation'
  { -- | The detail type of the CloudWatch Event-based observation, for example,
    -- @EC2 Instance State-change Notification@.
    Observation -> Maybe Text
cloudWatchEventDetailType :: Prelude.Maybe Prelude.Text,
    -- | The ID of the CloudWatch Event-based observation related to the detected
    -- problem.
    Observation -> Maybe Text
cloudWatchEventId :: Prelude.Maybe Prelude.Text,
    -- | The source of the CloudWatch Event.
    Observation -> Maybe CloudWatchEventSource
cloudWatchEventSource :: Prelude.Maybe CloudWatchEventSource,
    -- | The CodeDeploy application to which the deployment belongs.
    Observation -> Maybe Text
codeDeployApplication :: Prelude.Maybe Prelude.Text,
    -- | The deployment group to which the CodeDeploy deployment belongs.
    Observation -> Maybe Text
codeDeployDeploymentGroup :: Prelude.Maybe Prelude.Text,
    -- | The deployment ID of the CodeDeploy-based observation related to the
    -- detected problem.
    Observation -> Maybe Text
codeDeployDeploymentId :: Prelude.Maybe Prelude.Text,
    -- | The instance group to which the CodeDeploy instance belongs.
    Observation -> Maybe Text
codeDeployInstanceGroupId :: Prelude.Maybe Prelude.Text,
    -- | The status of the CodeDeploy deployment, for example @SUCCESS@ or
    -- @ FAILURE@.
    Observation -> Maybe Text
codeDeployState :: Prelude.Maybe Prelude.Text,
    -- | The cause of an EBS CloudWatch event.
    Observation -> Maybe Text
ebsCause :: Prelude.Maybe Prelude.Text,
    -- | The type of EBS CloudWatch event, such as @createVolume@, @deleteVolume@
    -- or @attachVolume@.
    Observation -> Maybe Text
ebsEvent :: Prelude.Maybe Prelude.Text,
    -- | The request ID of an EBS CloudWatch event.
    Observation -> Maybe Text
ebsRequestId :: Prelude.Maybe Prelude.Text,
    -- | The result of an EBS CloudWatch event, such as @failed@ or @succeeded@.
    Observation -> Maybe Text
ebsResult :: Prelude.Maybe Prelude.Text,
    -- | The state of the instance, such as @STOPPING@ or @TERMINATING@.
    Observation -> Maybe Text
ec2State :: Prelude.Maybe Prelude.Text,
    -- | The time when the observation ended, in epoch seconds.
    Observation -> Maybe POSIX
endTime :: Prelude.Maybe Data.POSIX,
    -- | The Amazon Resource Name (ARN) of the AWS Health Event-based
    -- observation.
    Observation -> Maybe Text
healthEventArn :: Prelude.Maybe Prelude.Text,
    -- | The description of the AWS Health event provided by the service, such as
    -- Amazon EC2.
    Observation -> Maybe Text
healthEventDescription :: Prelude.Maybe Prelude.Text,
    -- | The category of the AWS Health event, such as @issue@.
    Observation -> Maybe Text
healthEventTypeCategory :: Prelude.Maybe Prelude.Text,
    -- | The type of the AWS Health event, for example,
    -- @AWS_EC2_POWER_CONNECTIVITY_ISSUE@.
    Observation -> Maybe Text
healthEventTypeCode :: Prelude.Maybe Prelude.Text,
    -- | The service to which the AWS Health Event belongs, such as EC2.
    Observation -> Maybe Text
healthService :: Prelude.Maybe Prelude.Text,
    -- | The ID of the observation type.
    Observation -> Maybe Text
id :: Prelude.Maybe Prelude.Text,
    -- | The timestamp in the CloudWatch Logs that specifies when the matched
    -- line occurred.
    Observation -> Maybe POSIX
lineTime :: Prelude.Maybe Data.POSIX,
    -- | The log filter of the observation.
    Observation -> Maybe LogFilter
logFilter :: Prelude.Maybe LogFilter,
    -- | The log group name.
    Observation -> Maybe Text
logGroup :: Prelude.Maybe Prelude.Text,
    -- | The log text of the observation.
    Observation -> Maybe Text
logText :: Prelude.Maybe Prelude.Text,
    -- | The name of the observation metric.
    Observation -> Maybe Text
metricName :: Prelude.Maybe Prelude.Text,
    -- | The namespace of the observation metric.
    Observation -> Maybe Text
metricNamespace :: Prelude.Maybe Prelude.Text,
    -- | The category of an RDS event.
    Observation -> Maybe Text
rdsEventCategories :: Prelude.Maybe Prelude.Text,
    -- | The message of an RDS event.
    Observation -> Maybe Text
rdsEventMessage :: Prelude.Maybe Prelude.Text,
    -- | The name of the S3 CloudWatch Event-based observation.
    Observation -> Maybe Text
s3EventName :: Prelude.Maybe Prelude.Text,
    -- | The source resource ARN of the observation.
    Observation -> Maybe Text
sourceARN :: Prelude.Maybe Prelude.Text,
    -- | The source type of the observation.
    Observation -> Maybe Text
sourceType :: Prelude.Maybe Prelude.Text,
    -- | The time when the observation was first detected, in epoch seconds.
    Observation -> Maybe POSIX
startTime :: Prelude.Maybe Data.POSIX,
    -- | The Amazon Resource Name (ARN) of the step function-based observation.
    Observation -> Maybe Text
statesArn :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the step function execution-based
    -- observation.
    Observation -> Maybe Text
statesExecutionArn :: Prelude.Maybe Prelude.Text,
    -- | The input to the step function-based observation.
    Observation -> Maybe Text
statesInput :: Prelude.Maybe Prelude.Text,
    -- | The status of the step function-related observation.
    Observation -> Maybe Text
statesStatus :: Prelude.Maybe Prelude.Text,
    -- | The unit of the source observation metric.
    Observation -> Maybe Text
unit :: Prelude.Maybe Prelude.Text,
    -- | The value of the source observation metric.
    Observation -> Maybe Double
value :: Prelude.Maybe Prelude.Double,
    -- | The X-Ray request error percentage for this node.
    Observation -> Maybe Int
xRayErrorPercent :: Prelude.Maybe Prelude.Int,
    -- | The X-Ray request fault percentage for this node.
    Observation -> Maybe Int
xRayFaultPercent :: Prelude.Maybe Prelude.Int,
    -- | The name of the X-Ray node.
    Observation -> Maybe Text
xRayNodeName :: Prelude.Maybe Prelude.Text,
    -- | The type of the X-Ray node.
    Observation -> Maybe Text
xRayNodeType :: Prelude.Maybe Prelude.Text,
    -- | The X-Ray node request average latency for this node.
    Observation -> Maybe Integer
xRayRequestAverageLatency :: Prelude.Maybe Prelude.Integer,
    -- | The X-Ray request count for this node.
    Observation -> Maybe Int
xRayRequestCount :: Prelude.Maybe Prelude.Int,
    -- | The X-Ray request throttle percentage for this node.
    Observation -> Maybe Int
xRayThrottlePercent :: Prelude.Maybe Prelude.Int
  }
  deriving (Observation -> Observation -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Observation -> Observation -> Bool
$c/= :: Observation -> Observation -> Bool
== :: Observation -> Observation -> Bool
$c== :: Observation -> Observation -> Bool
Prelude.Eq, ReadPrec [Observation]
ReadPrec Observation
Int -> ReadS Observation
ReadS [Observation]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Observation]
$creadListPrec :: ReadPrec [Observation]
readPrec :: ReadPrec Observation
$creadPrec :: ReadPrec Observation
readList :: ReadS [Observation]
$creadList :: ReadS [Observation]
readsPrec :: Int -> ReadS Observation
$creadsPrec :: Int -> ReadS Observation
Prelude.Read, Int -> Observation -> ShowS
[Observation] -> ShowS
Observation -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Observation] -> ShowS
$cshowList :: [Observation] -> ShowS
show :: Observation -> String
$cshow :: Observation -> String
showsPrec :: Int -> Observation -> ShowS
$cshowsPrec :: Int -> Observation -> ShowS
Prelude.Show, forall x. Rep Observation x -> Observation
forall x. Observation -> Rep Observation x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Observation x -> Observation
$cfrom :: forall x. Observation -> Rep Observation x
Prelude.Generic)

-- |
-- Create a value of 'Observation' 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:
--
-- 'cloudWatchEventDetailType', 'observation_cloudWatchEventDetailType' - The detail type of the CloudWatch Event-based observation, for example,
-- @EC2 Instance State-change Notification@.
--
-- 'cloudWatchEventId', 'observation_cloudWatchEventId' - The ID of the CloudWatch Event-based observation related to the detected
-- problem.
--
-- 'cloudWatchEventSource', 'observation_cloudWatchEventSource' - The source of the CloudWatch Event.
--
-- 'codeDeployApplication', 'observation_codeDeployApplication' - The CodeDeploy application to which the deployment belongs.
--
-- 'codeDeployDeploymentGroup', 'observation_codeDeployDeploymentGroup' - The deployment group to which the CodeDeploy deployment belongs.
--
-- 'codeDeployDeploymentId', 'observation_codeDeployDeploymentId' - The deployment ID of the CodeDeploy-based observation related to the
-- detected problem.
--
-- 'codeDeployInstanceGroupId', 'observation_codeDeployInstanceGroupId' - The instance group to which the CodeDeploy instance belongs.
--
-- 'codeDeployState', 'observation_codeDeployState' - The status of the CodeDeploy deployment, for example @SUCCESS@ or
-- @ FAILURE@.
--
-- 'ebsCause', 'observation_ebsCause' - The cause of an EBS CloudWatch event.
--
-- 'ebsEvent', 'observation_ebsEvent' - The type of EBS CloudWatch event, such as @createVolume@, @deleteVolume@
-- or @attachVolume@.
--
-- 'ebsRequestId', 'observation_ebsRequestId' - The request ID of an EBS CloudWatch event.
--
-- 'ebsResult', 'observation_ebsResult' - The result of an EBS CloudWatch event, such as @failed@ or @succeeded@.
--
-- 'ec2State', 'observation_ec2State' - The state of the instance, such as @STOPPING@ or @TERMINATING@.
--
-- 'endTime', 'observation_endTime' - The time when the observation ended, in epoch seconds.
--
-- 'healthEventArn', 'observation_healthEventArn' - The Amazon Resource Name (ARN) of the AWS Health Event-based
-- observation.
--
-- 'healthEventDescription', 'observation_healthEventDescription' - The description of the AWS Health event provided by the service, such as
-- Amazon EC2.
--
-- 'healthEventTypeCategory', 'observation_healthEventTypeCategory' - The category of the AWS Health event, such as @issue@.
--
-- 'healthEventTypeCode', 'observation_healthEventTypeCode' - The type of the AWS Health event, for example,
-- @AWS_EC2_POWER_CONNECTIVITY_ISSUE@.
--
-- 'healthService', 'observation_healthService' - The service to which the AWS Health Event belongs, such as EC2.
--
-- 'id', 'observation_id' - The ID of the observation type.
--
-- 'lineTime', 'observation_lineTime' - The timestamp in the CloudWatch Logs that specifies when the matched
-- line occurred.
--
-- 'logFilter', 'observation_logFilter' - The log filter of the observation.
--
-- 'logGroup', 'observation_logGroup' - The log group name.
--
-- 'logText', 'observation_logText' - The log text of the observation.
--
-- 'metricName', 'observation_metricName' - The name of the observation metric.
--
-- 'metricNamespace', 'observation_metricNamespace' - The namespace of the observation metric.
--
-- 'rdsEventCategories', 'observation_rdsEventCategories' - The category of an RDS event.
--
-- 'rdsEventMessage', 'observation_rdsEventMessage' - The message of an RDS event.
--
-- 's3EventName', 'observation_s3EventName' - The name of the S3 CloudWatch Event-based observation.
--
-- 'sourceARN', 'observation_sourceARN' - The source resource ARN of the observation.
--
-- 'sourceType', 'observation_sourceType' - The source type of the observation.
--
-- 'startTime', 'observation_startTime' - The time when the observation was first detected, in epoch seconds.
--
-- 'statesArn', 'observation_statesArn' - The Amazon Resource Name (ARN) of the step function-based observation.
--
-- 'statesExecutionArn', 'observation_statesExecutionArn' - The Amazon Resource Name (ARN) of the step function execution-based
-- observation.
--
-- 'statesInput', 'observation_statesInput' - The input to the step function-based observation.
--
-- 'statesStatus', 'observation_statesStatus' - The status of the step function-related observation.
--
-- 'unit', 'observation_unit' - The unit of the source observation metric.
--
-- 'value', 'observation_value' - The value of the source observation metric.
--
-- 'xRayErrorPercent', 'observation_xRayErrorPercent' - The X-Ray request error percentage for this node.
--
-- 'xRayFaultPercent', 'observation_xRayFaultPercent' - The X-Ray request fault percentage for this node.
--
-- 'xRayNodeName', 'observation_xRayNodeName' - The name of the X-Ray node.
--
-- 'xRayNodeType', 'observation_xRayNodeType' - The type of the X-Ray node.
--
-- 'xRayRequestAverageLatency', 'observation_xRayRequestAverageLatency' - The X-Ray node request average latency for this node.
--
-- 'xRayRequestCount', 'observation_xRayRequestCount' - The X-Ray request count for this node.
--
-- 'xRayThrottlePercent', 'observation_xRayThrottlePercent' - The X-Ray request throttle percentage for this node.
newObservation ::
  Observation
newObservation :: Observation
newObservation =
  Observation'
    { $sel:cloudWatchEventDetailType:Observation' :: Maybe Text
cloudWatchEventDetailType =
        forall a. Maybe a
Prelude.Nothing,
      $sel:cloudWatchEventId:Observation' :: Maybe Text
cloudWatchEventId = forall a. Maybe a
Prelude.Nothing,
      $sel:cloudWatchEventSource:Observation' :: Maybe CloudWatchEventSource
cloudWatchEventSource = forall a. Maybe a
Prelude.Nothing,
      $sel:codeDeployApplication:Observation' :: Maybe Text
codeDeployApplication = forall a. Maybe a
Prelude.Nothing,
      $sel:codeDeployDeploymentGroup:Observation' :: Maybe Text
codeDeployDeploymentGroup = forall a. Maybe a
Prelude.Nothing,
      $sel:codeDeployDeploymentId:Observation' :: Maybe Text
codeDeployDeploymentId = forall a. Maybe a
Prelude.Nothing,
      $sel:codeDeployInstanceGroupId:Observation' :: Maybe Text
codeDeployInstanceGroupId = forall a. Maybe a
Prelude.Nothing,
      $sel:codeDeployState:Observation' :: Maybe Text
codeDeployState = forall a. Maybe a
Prelude.Nothing,
      $sel:ebsCause:Observation' :: Maybe Text
ebsCause = forall a. Maybe a
Prelude.Nothing,
      $sel:ebsEvent:Observation' :: Maybe Text
ebsEvent = forall a. Maybe a
Prelude.Nothing,
      $sel:ebsRequestId:Observation' :: Maybe Text
ebsRequestId = forall a. Maybe a
Prelude.Nothing,
      $sel:ebsResult:Observation' :: Maybe Text
ebsResult = forall a. Maybe a
Prelude.Nothing,
      $sel:ec2State:Observation' :: Maybe Text
ec2State = forall a. Maybe a
Prelude.Nothing,
      $sel:endTime:Observation' :: Maybe POSIX
endTime = forall a. Maybe a
Prelude.Nothing,
      $sel:healthEventArn:Observation' :: Maybe Text
healthEventArn = forall a. Maybe a
Prelude.Nothing,
      $sel:healthEventDescription:Observation' :: Maybe Text
healthEventDescription = forall a. Maybe a
Prelude.Nothing,
      $sel:healthEventTypeCategory:Observation' :: Maybe Text
healthEventTypeCategory = forall a. Maybe a
Prelude.Nothing,
      $sel:healthEventTypeCode:Observation' :: Maybe Text
healthEventTypeCode = forall a. Maybe a
Prelude.Nothing,
      $sel:healthService:Observation' :: Maybe Text
healthService = forall a. Maybe a
Prelude.Nothing,
      $sel:id:Observation' :: Maybe Text
id = forall a. Maybe a
Prelude.Nothing,
      $sel:lineTime:Observation' :: Maybe POSIX
lineTime = forall a. Maybe a
Prelude.Nothing,
      $sel:logFilter:Observation' :: Maybe LogFilter
logFilter = forall a. Maybe a
Prelude.Nothing,
      $sel:logGroup:Observation' :: Maybe Text
logGroup = forall a. Maybe a
Prelude.Nothing,
      $sel:logText:Observation' :: Maybe Text
logText = forall a. Maybe a
Prelude.Nothing,
      $sel:metricName:Observation' :: Maybe Text
metricName = forall a. Maybe a
Prelude.Nothing,
      $sel:metricNamespace:Observation' :: Maybe Text
metricNamespace = forall a. Maybe a
Prelude.Nothing,
      $sel:rdsEventCategories:Observation' :: Maybe Text
rdsEventCategories = forall a. Maybe a
Prelude.Nothing,
      $sel:rdsEventMessage:Observation' :: Maybe Text
rdsEventMessage = forall a. Maybe a
Prelude.Nothing,
      $sel:s3EventName:Observation' :: Maybe Text
s3EventName = forall a. Maybe a
Prelude.Nothing,
      $sel:sourceARN:Observation' :: Maybe Text
sourceARN = forall a. Maybe a
Prelude.Nothing,
      $sel:sourceType:Observation' :: Maybe Text
sourceType = forall a. Maybe a
Prelude.Nothing,
      $sel:startTime:Observation' :: Maybe POSIX
startTime = forall a. Maybe a
Prelude.Nothing,
      $sel:statesArn:Observation' :: Maybe Text
statesArn = forall a. Maybe a
Prelude.Nothing,
      $sel:statesExecutionArn:Observation' :: Maybe Text
statesExecutionArn = forall a. Maybe a
Prelude.Nothing,
      $sel:statesInput:Observation' :: Maybe Text
statesInput = forall a. Maybe a
Prelude.Nothing,
      $sel:statesStatus:Observation' :: Maybe Text
statesStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:unit:Observation' :: Maybe Text
unit = forall a. Maybe a
Prelude.Nothing,
      $sel:value:Observation' :: Maybe Double
value = forall a. Maybe a
Prelude.Nothing,
      $sel:xRayErrorPercent:Observation' :: Maybe Int
xRayErrorPercent = forall a. Maybe a
Prelude.Nothing,
      $sel:xRayFaultPercent:Observation' :: Maybe Int
xRayFaultPercent = forall a. Maybe a
Prelude.Nothing,
      $sel:xRayNodeName:Observation' :: Maybe Text
xRayNodeName = forall a. Maybe a
Prelude.Nothing,
      $sel:xRayNodeType:Observation' :: Maybe Text
xRayNodeType = forall a. Maybe a
Prelude.Nothing,
      $sel:xRayRequestAverageLatency:Observation' :: Maybe Integer
xRayRequestAverageLatency = forall a. Maybe a
Prelude.Nothing,
      $sel:xRayRequestCount:Observation' :: Maybe Int
xRayRequestCount = forall a. Maybe a
Prelude.Nothing,
      $sel:xRayThrottlePercent:Observation' :: Maybe Int
xRayThrottlePercent = forall a. Maybe a
Prelude.Nothing
    }

-- | The detail type of the CloudWatch Event-based observation, for example,
-- @EC2 Instance State-change Notification@.
observation_cloudWatchEventDetailType :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_cloudWatchEventDetailType :: Lens' Observation (Maybe Text)
observation_cloudWatchEventDetailType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
cloudWatchEventDetailType :: Maybe Text
$sel:cloudWatchEventDetailType:Observation' :: Observation -> Maybe Text
cloudWatchEventDetailType} -> Maybe Text
cloudWatchEventDetailType) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:cloudWatchEventDetailType:Observation' :: Maybe Text
cloudWatchEventDetailType = Maybe Text
a} :: Observation)

-- | The ID of the CloudWatch Event-based observation related to the detected
-- problem.
observation_cloudWatchEventId :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_cloudWatchEventId :: Lens' Observation (Maybe Text)
observation_cloudWatchEventId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
cloudWatchEventId :: Maybe Text
$sel:cloudWatchEventId:Observation' :: Observation -> Maybe Text
cloudWatchEventId} -> Maybe Text
cloudWatchEventId) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:cloudWatchEventId:Observation' :: Maybe Text
cloudWatchEventId = Maybe Text
a} :: Observation)

-- | The source of the CloudWatch Event.
observation_cloudWatchEventSource :: Lens.Lens' Observation (Prelude.Maybe CloudWatchEventSource)
observation_cloudWatchEventSource :: Lens' Observation (Maybe CloudWatchEventSource)
observation_cloudWatchEventSource = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe CloudWatchEventSource
cloudWatchEventSource :: Maybe CloudWatchEventSource
$sel:cloudWatchEventSource:Observation' :: Observation -> Maybe CloudWatchEventSource
cloudWatchEventSource} -> Maybe CloudWatchEventSource
cloudWatchEventSource) (\s :: Observation
s@Observation' {} Maybe CloudWatchEventSource
a -> Observation
s {$sel:cloudWatchEventSource:Observation' :: Maybe CloudWatchEventSource
cloudWatchEventSource = Maybe CloudWatchEventSource
a} :: Observation)

-- | The CodeDeploy application to which the deployment belongs.
observation_codeDeployApplication :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_codeDeployApplication :: Lens' Observation (Maybe Text)
observation_codeDeployApplication = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
codeDeployApplication :: Maybe Text
$sel:codeDeployApplication:Observation' :: Observation -> Maybe Text
codeDeployApplication} -> Maybe Text
codeDeployApplication) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:codeDeployApplication:Observation' :: Maybe Text
codeDeployApplication = Maybe Text
a} :: Observation)

-- | The deployment group to which the CodeDeploy deployment belongs.
observation_codeDeployDeploymentGroup :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_codeDeployDeploymentGroup :: Lens' Observation (Maybe Text)
observation_codeDeployDeploymentGroup = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
codeDeployDeploymentGroup :: Maybe Text
$sel:codeDeployDeploymentGroup:Observation' :: Observation -> Maybe Text
codeDeployDeploymentGroup} -> Maybe Text
codeDeployDeploymentGroup) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:codeDeployDeploymentGroup:Observation' :: Maybe Text
codeDeployDeploymentGroup = Maybe Text
a} :: Observation)

-- | The deployment ID of the CodeDeploy-based observation related to the
-- detected problem.
observation_codeDeployDeploymentId :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_codeDeployDeploymentId :: Lens' Observation (Maybe Text)
observation_codeDeployDeploymentId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
codeDeployDeploymentId :: Maybe Text
$sel:codeDeployDeploymentId:Observation' :: Observation -> Maybe Text
codeDeployDeploymentId} -> Maybe Text
codeDeployDeploymentId) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:codeDeployDeploymentId:Observation' :: Maybe Text
codeDeployDeploymentId = Maybe Text
a} :: Observation)

-- | The instance group to which the CodeDeploy instance belongs.
observation_codeDeployInstanceGroupId :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_codeDeployInstanceGroupId :: Lens' Observation (Maybe Text)
observation_codeDeployInstanceGroupId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
codeDeployInstanceGroupId :: Maybe Text
$sel:codeDeployInstanceGroupId:Observation' :: Observation -> Maybe Text
codeDeployInstanceGroupId} -> Maybe Text
codeDeployInstanceGroupId) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:codeDeployInstanceGroupId:Observation' :: Maybe Text
codeDeployInstanceGroupId = Maybe Text
a} :: Observation)

-- | The status of the CodeDeploy deployment, for example @SUCCESS@ or
-- @ FAILURE@.
observation_codeDeployState :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_codeDeployState :: Lens' Observation (Maybe Text)
observation_codeDeployState = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
codeDeployState :: Maybe Text
$sel:codeDeployState:Observation' :: Observation -> Maybe Text
codeDeployState} -> Maybe Text
codeDeployState) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:codeDeployState:Observation' :: Maybe Text
codeDeployState = Maybe Text
a} :: Observation)

-- | The cause of an EBS CloudWatch event.
observation_ebsCause :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_ebsCause :: Lens' Observation (Maybe Text)
observation_ebsCause = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
ebsCause :: Maybe Text
$sel:ebsCause:Observation' :: Observation -> Maybe Text
ebsCause} -> Maybe Text
ebsCause) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:ebsCause:Observation' :: Maybe Text
ebsCause = Maybe Text
a} :: Observation)

-- | The type of EBS CloudWatch event, such as @createVolume@, @deleteVolume@
-- or @attachVolume@.
observation_ebsEvent :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_ebsEvent :: Lens' Observation (Maybe Text)
observation_ebsEvent = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
ebsEvent :: Maybe Text
$sel:ebsEvent:Observation' :: Observation -> Maybe Text
ebsEvent} -> Maybe Text
ebsEvent) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:ebsEvent:Observation' :: Maybe Text
ebsEvent = Maybe Text
a} :: Observation)

-- | The request ID of an EBS CloudWatch event.
observation_ebsRequestId :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_ebsRequestId :: Lens' Observation (Maybe Text)
observation_ebsRequestId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
ebsRequestId :: Maybe Text
$sel:ebsRequestId:Observation' :: Observation -> Maybe Text
ebsRequestId} -> Maybe Text
ebsRequestId) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:ebsRequestId:Observation' :: Maybe Text
ebsRequestId = Maybe Text
a} :: Observation)

-- | The result of an EBS CloudWatch event, such as @failed@ or @succeeded@.
observation_ebsResult :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_ebsResult :: Lens' Observation (Maybe Text)
observation_ebsResult = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
ebsResult :: Maybe Text
$sel:ebsResult:Observation' :: Observation -> Maybe Text
ebsResult} -> Maybe Text
ebsResult) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:ebsResult:Observation' :: Maybe Text
ebsResult = Maybe Text
a} :: Observation)

-- | The state of the instance, such as @STOPPING@ or @TERMINATING@.
observation_ec2State :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_ec2State :: Lens' Observation (Maybe Text)
observation_ec2State = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
ec2State :: Maybe Text
$sel:ec2State:Observation' :: Observation -> Maybe Text
ec2State} -> Maybe Text
ec2State) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:ec2State:Observation' :: Maybe Text
ec2State = Maybe Text
a} :: Observation)

-- | The time when the observation ended, in epoch seconds.
observation_endTime :: Lens.Lens' Observation (Prelude.Maybe Prelude.UTCTime)
observation_endTime :: Lens' Observation (Maybe UTCTime)
observation_endTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe POSIX
endTime :: Maybe POSIX
$sel:endTime:Observation' :: Observation -> Maybe POSIX
endTime} -> Maybe POSIX
endTime) (\s :: Observation
s@Observation' {} Maybe POSIX
a -> Observation
s {$sel:endTime:Observation' :: Maybe POSIX
endTime = Maybe POSIX
a} :: Observation) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The Amazon Resource Name (ARN) of the AWS Health Event-based
-- observation.
observation_healthEventArn :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_healthEventArn :: Lens' Observation (Maybe Text)
observation_healthEventArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
healthEventArn :: Maybe Text
$sel:healthEventArn:Observation' :: Observation -> Maybe Text
healthEventArn} -> Maybe Text
healthEventArn) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:healthEventArn:Observation' :: Maybe Text
healthEventArn = Maybe Text
a} :: Observation)

-- | The description of the AWS Health event provided by the service, such as
-- Amazon EC2.
observation_healthEventDescription :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_healthEventDescription :: Lens' Observation (Maybe Text)
observation_healthEventDescription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
healthEventDescription :: Maybe Text
$sel:healthEventDescription:Observation' :: Observation -> Maybe Text
healthEventDescription} -> Maybe Text
healthEventDescription) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:healthEventDescription:Observation' :: Maybe Text
healthEventDescription = Maybe Text
a} :: Observation)

-- | The category of the AWS Health event, such as @issue@.
observation_healthEventTypeCategory :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_healthEventTypeCategory :: Lens' Observation (Maybe Text)
observation_healthEventTypeCategory = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
healthEventTypeCategory :: Maybe Text
$sel:healthEventTypeCategory:Observation' :: Observation -> Maybe Text
healthEventTypeCategory} -> Maybe Text
healthEventTypeCategory) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:healthEventTypeCategory:Observation' :: Maybe Text
healthEventTypeCategory = Maybe Text
a} :: Observation)

-- | The type of the AWS Health event, for example,
-- @AWS_EC2_POWER_CONNECTIVITY_ISSUE@.
observation_healthEventTypeCode :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_healthEventTypeCode :: Lens' Observation (Maybe Text)
observation_healthEventTypeCode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
healthEventTypeCode :: Maybe Text
$sel:healthEventTypeCode:Observation' :: Observation -> Maybe Text
healthEventTypeCode} -> Maybe Text
healthEventTypeCode) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:healthEventTypeCode:Observation' :: Maybe Text
healthEventTypeCode = Maybe Text
a} :: Observation)

-- | The service to which the AWS Health Event belongs, such as EC2.
observation_healthService :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_healthService :: Lens' Observation (Maybe Text)
observation_healthService = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
healthService :: Maybe Text
$sel:healthService:Observation' :: Observation -> Maybe Text
healthService} -> Maybe Text
healthService) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:healthService:Observation' :: Maybe Text
healthService = Maybe Text
a} :: Observation)

-- | The ID of the observation type.
observation_id :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_id :: Lens' Observation (Maybe Text)
observation_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
id :: Maybe Text
$sel:id:Observation' :: Observation -> Maybe Text
id} -> Maybe Text
id) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:id:Observation' :: Maybe Text
id = Maybe Text
a} :: Observation)

-- | The timestamp in the CloudWatch Logs that specifies when the matched
-- line occurred.
observation_lineTime :: Lens.Lens' Observation (Prelude.Maybe Prelude.UTCTime)
observation_lineTime :: Lens' Observation (Maybe UTCTime)
observation_lineTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe POSIX
lineTime :: Maybe POSIX
$sel:lineTime:Observation' :: Observation -> Maybe POSIX
lineTime} -> Maybe POSIX
lineTime) (\s :: Observation
s@Observation' {} Maybe POSIX
a -> Observation
s {$sel:lineTime:Observation' :: Maybe POSIX
lineTime = Maybe POSIX
a} :: Observation) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The log filter of the observation.
observation_logFilter :: Lens.Lens' Observation (Prelude.Maybe LogFilter)
observation_logFilter :: Lens' Observation (Maybe LogFilter)
observation_logFilter = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe LogFilter
logFilter :: Maybe LogFilter
$sel:logFilter:Observation' :: Observation -> Maybe LogFilter
logFilter} -> Maybe LogFilter
logFilter) (\s :: Observation
s@Observation' {} Maybe LogFilter
a -> Observation
s {$sel:logFilter:Observation' :: Maybe LogFilter
logFilter = Maybe LogFilter
a} :: Observation)

-- | The log group name.
observation_logGroup :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_logGroup :: Lens' Observation (Maybe Text)
observation_logGroup = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
logGroup :: Maybe Text
$sel:logGroup:Observation' :: Observation -> Maybe Text
logGroup} -> Maybe Text
logGroup) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:logGroup:Observation' :: Maybe Text
logGroup = Maybe Text
a} :: Observation)

-- | The log text of the observation.
observation_logText :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_logText :: Lens' Observation (Maybe Text)
observation_logText = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
logText :: Maybe Text
$sel:logText:Observation' :: Observation -> Maybe Text
logText} -> Maybe Text
logText) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:logText:Observation' :: Maybe Text
logText = Maybe Text
a} :: Observation)

-- | The name of the observation metric.
observation_metricName :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_metricName :: Lens' Observation (Maybe Text)
observation_metricName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
metricName :: Maybe Text
$sel:metricName:Observation' :: Observation -> Maybe Text
metricName} -> Maybe Text
metricName) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:metricName:Observation' :: Maybe Text
metricName = Maybe Text
a} :: Observation)

-- | The namespace of the observation metric.
observation_metricNamespace :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_metricNamespace :: Lens' Observation (Maybe Text)
observation_metricNamespace = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
metricNamespace :: Maybe Text
$sel:metricNamespace:Observation' :: Observation -> Maybe Text
metricNamespace} -> Maybe Text
metricNamespace) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:metricNamespace:Observation' :: Maybe Text
metricNamespace = Maybe Text
a} :: Observation)

-- | The category of an RDS event.
observation_rdsEventCategories :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_rdsEventCategories :: Lens' Observation (Maybe Text)
observation_rdsEventCategories = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
rdsEventCategories :: Maybe Text
$sel:rdsEventCategories:Observation' :: Observation -> Maybe Text
rdsEventCategories} -> Maybe Text
rdsEventCategories) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:rdsEventCategories:Observation' :: Maybe Text
rdsEventCategories = Maybe Text
a} :: Observation)

-- | The message of an RDS event.
observation_rdsEventMessage :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_rdsEventMessage :: Lens' Observation (Maybe Text)
observation_rdsEventMessage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
rdsEventMessage :: Maybe Text
$sel:rdsEventMessage:Observation' :: Observation -> Maybe Text
rdsEventMessage} -> Maybe Text
rdsEventMessage) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:rdsEventMessage:Observation' :: Maybe Text
rdsEventMessage = Maybe Text
a} :: Observation)

-- | The name of the S3 CloudWatch Event-based observation.
observation_s3EventName :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_s3EventName :: Lens' Observation (Maybe Text)
observation_s3EventName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
s3EventName :: Maybe Text
$sel:s3EventName:Observation' :: Observation -> Maybe Text
s3EventName} -> Maybe Text
s3EventName) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:s3EventName:Observation' :: Maybe Text
s3EventName = Maybe Text
a} :: Observation)

-- | The source resource ARN of the observation.
observation_sourceARN :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_sourceARN :: Lens' Observation (Maybe Text)
observation_sourceARN = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
sourceARN :: Maybe Text
$sel:sourceARN:Observation' :: Observation -> Maybe Text
sourceARN} -> Maybe Text
sourceARN) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:sourceARN:Observation' :: Maybe Text
sourceARN = Maybe Text
a} :: Observation)

-- | The source type of the observation.
observation_sourceType :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_sourceType :: Lens' Observation (Maybe Text)
observation_sourceType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
sourceType :: Maybe Text
$sel:sourceType:Observation' :: Observation -> Maybe Text
sourceType} -> Maybe Text
sourceType) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:sourceType:Observation' :: Maybe Text
sourceType = Maybe Text
a} :: Observation)

-- | The time when the observation was first detected, in epoch seconds.
observation_startTime :: Lens.Lens' Observation (Prelude.Maybe Prelude.UTCTime)
observation_startTime :: Lens' Observation (Maybe UTCTime)
observation_startTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe POSIX
startTime :: Maybe POSIX
$sel:startTime:Observation' :: Observation -> Maybe POSIX
startTime} -> Maybe POSIX
startTime) (\s :: Observation
s@Observation' {} Maybe POSIX
a -> Observation
s {$sel:startTime:Observation' :: Maybe POSIX
startTime = Maybe POSIX
a} :: Observation) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The Amazon Resource Name (ARN) of the step function-based observation.
observation_statesArn :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_statesArn :: Lens' Observation (Maybe Text)
observation_statesArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
statesArn :: Maybe Text
$sel:statesArn:Observation' :: Observation -> Maybe Text
statesArn} -> Maybe Text
statesArn) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:statesArn:Observation' :: Maybe Text
statesArn = Maybe Text
a} :: Observation)

-- | The Amazon Resource Name (ARN) of the step function execution-based
-- observation.
observation_statesExecutionArn :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_statesExecutionArn :: Lens' Observation (Maybe Text)
observation_statesExecutionArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
statesExecutionArn :: Maybe Text
$sel:statesExecutionArn:Observation' :: Observation -> Maybe Text
statesExecutionArn} -> Maybe Text
statesExecutionArn) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:statesExecutionArn:Observation' :: Maybe Text
statesExecutionArn = Maybe Text
a} :: Observation)

-- | The input to the step function-based observation.
observation_statesInput :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_statesInput :: Lens' Observation (Maybe Text)
observation_statesInput = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
statesInput :: Maybe Text
$sel:statesInput:Observation' :: Observation -> Maybe Text
statesInput} -> Maybe Text
statesInput) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:statesInput:Observation' :: Maybe Text
statesInput = Maybe Text
a} :: Observation)

-- | The status of the step function-related observation.
observation_statesStatus :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_statesStatus :: Lens' Observation (Maybe Text)
observation_statesStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
statesStatus :: Maybe Text
$sel:statesStatus:Observation' :: Observation -> Maybe Text
statesStatus} -> Maybe Text
statesStatus) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:statesStatus:Observation' :: Maybe Text
statesStatus = Maybe Text
a} :: Observation)

-- | The unit of the source observation metric.
observation_unit :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_unit :: Lens' Observation (Maybe Text)
observation_unit = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
unit :: Maybe Text
$sel:unit:Observation' :: Observation -> Maybe Text
unit} -> Maybe Text
unit) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:unit:Observation' :: Maybe Text
unit = Maybe Text
a} :: Observation)

-- | The value of the source observation metric.
observation_value :: Lens.Lens' Observation (Prelude.Maybe Prelude.Double)
observation_value :: Lens' Observation (Maybe Double)
observation_value = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Double
value :: Maybe Double
$sel:value:Observation' :: Observation -> Maybe Double
value} -> Maybe Double
value) (\s :: Observation
s@Observation' {} Maybe Double
a -> Observation
s {$sel:value:Observation' :: Maybe Double
value = Maybe Double
a} :: Observation)

-- | The X-Ray request error percentage for this node.
observation_xRayErrorPercent :: Lens.Lens' Observation (Prelude.Maybe Prelude.Int)
observation_xRayErrorPercent :: Lens' Observation (Maybe Int)
observation_xRayErrorPercent = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Int
xRayErrorPercent :: Maybe Int
$sel:xRayErrorPercent:Observation' :: Observation -> Maybe Int
xRayErrorPercent} -> Maybe Int
xRayErrorPercent) (\s :: Observation
s@Observation' {} Maybe Int
a -> Observation
s {$sel:xRayErrorPercent:Observation' :: Maybe Int
xRayErrorPercent = Maybe Int
a} :: Observation)

-- | The X-Ray request fault percentage for this node.
observation_xRayFaultPercent :: Lens.Lens' Observation (Prelude.Maybe Prelude.Int)
observation_xRayFaultPercent :: Lens' Observation (Maybe Int)
observation_xRayFaultPercent = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Int
xRayFaultPercent :: Maybe Int
$sel:xRayFaultPercent:Observation' :: Observation -> Maybe Int
xRayFaultPercent} -> Maybe Int
xRayFaultPercent) (\s :: Observation
s@Observation' {} Maybe Int
a -> Observation
s {$sel:xRayFaultPercent:Observation' :: Maybe Int
xRayFaultPercent = Maybe Int
a} :: Observation)

-- | The name of the X-Ray node.
observation_xRayNodeName :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_xRayNodeName :: Lens' Observation (Maybe Text)
observation_xRayNodeName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
xRayNodeName :: Maybe Text
$sel:xRayNodeName:Observation' :: Observation -> Maybe Text
xRayNodeName} -> Maybe Text
xRayNodeName) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:xRayNodeName:Observation' :: Maybe Text
xRayNodeName = Maybe Text
a} :: Observation)

-- | The type of the X-Ray node.
observation_xRayNodeType :: Lens.Lens' Observation (Prelude.Maybe Prelude.Text)
observation_xRayNodeType :: Lens' Observation (Maybe Text)
observation_xRayNodeType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Text
xRayNodeType :: Maybe Text
$sel:xRayNodeType:Observation' :: Observation -> Maybe Text
xRayNodeType} -> Maybe Text
xRayNodeType) (\s :: Observation
s@Observation' {} Maybe Text
a -> Observation
s {$sel:xRayNodeType:Observation' :: Maybe Text
xRayNodeType = Maybe Text
a} :: Observation)

-- | The X-Ray node request average latency for this node.
observation_xRayRequestAverageLatency :: Lens.Lens' Observation (Prelude.Maybe Prelude.Integer)
observation_xRayRequestAverageLatency :: Lens' Observation (Maybe Integer)
observation_xRayRequestAverageLatency = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Integer
xRayRequestAverageLatency :: Maybe Integer
$sel:xRayRequestAverageLatency:Observation' :: Observation -> Maybe Integer
xRayRequestAverageLatency} -> Maybe Integer
xRayRequestAverageLatency) (\s :: Observation
s@Observation' {} Maybe Integer
a -> Observation
s {$sel:xRayRequestAverageLatency:Observation' :: Maybe Integer
xRayRequestAverageLatency = Maybe Integer
a} :: Observation)

-- | The X-Ray request count for this node.
observation_xRayRequestCount :: Lens.Lens' Observation (Prelude.Maybe Prelude.Int)
observation_xRayRequestCount :: Lens' Observation (Maybe Int)
observation_xRayRequestCount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Int
xRayRequestCount :: Maybe Int
$sel:xRayRequestCount:Observation' :: Observation -> Maybe Int
xRayRequestCount} -> Maybe Int
xRayRequestCount) (\s :: Observation
s@Observation' {} Maybe Int
a -> Observation
s {$sel:xRayRequestCount:Observation' :: Maybe Int
xRayRequestCount = Maybe Int
a} :: Observation)

-- | The X-Ray request throttle percentage for this node.
observation_xRayThrottlePercent :: Lens.Lens' Observation (Prelude.Maybe Prelude.Int)
observation_xRayThrottlePercent :: Lens' Observation (Maybe Int)
observation_xRayThrottlePercent = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Observation' {Maybe Int
xRayThrottlePercent :: Maybe Int
$sel:xRayThrottlePercent:Observation' :: Observation -> Maybe Int
xRayThrottlePercent} -> Maybe Int
xRayThrottlePercent) (\s :: Observation
s@Observation' {} Maybe Int
a -> Observation
s {$sel:xRayThrottlePercent:Observation' :: Maybe Int
xRayThrottlePercent = Maybe Int
a} :: Observation)

instance Data.FromJSON Observation where
  parseJSON :: Value -> Parser Observation
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"Observation"
      ( \Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe CloudWatchEventSource
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe LogFilter
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Double
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe Integer
-> Maybe Int
-> Maybe Int
-> Observation
Observation'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CloudWatchEventDetailType")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CloudWatchEventId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CloudWatchEventSource")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CodeDeployApplication")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CodeDeployDeploymentGroup")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CodeDeployDeploymentId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CodeDeployInstanceGroupId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CodeDeployState")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"EbsCause")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"EbsEvent")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"EbsRequestId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"EbsResult")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Ec2State")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"EndTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"HealthEventArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"HealthEventDescription")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"HealthEventTypeCategory")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"HealthEventTypeCode")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"HealthService")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Id")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"LineTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"LogFilter")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"LogGroup")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"LogText")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"MetricName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"MetricNamespace")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"RdsEventCategories")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"RdsEventMessage")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"S3EventName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SourceARN")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SourceType")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"StartTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"StatesArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"StatesExecutionArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"StatesInput")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"StatesStatus")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Unit")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Value")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"XRayErrorPercent")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"XRayFaultPercent")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"XRayNodeName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"XRayNodeType")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"XRayRequestAverageLatency")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"XRayRequestCount")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"XRayThrottlePercent")
      )

instance Prelude.Hashable Observation where
  hashWithSalt :: Int -> Observation -> Int
hashWithSalt Int
_salt Observation' {Maybe Double
Maybe Int
Maybe Integer
Maybe Text
Maybe POSIX
Maybe CloudWatchEventSource
Maybe LogFilter
xRayThrottlePercent :: Maybe Int
xRayRequestCount :: Maybe Int
xRayRequestAverageLatency :: Maybe Integer
xRayNodeType :: Maybe Text
xRayNodeName :: Maybe Text
xRayFaultPercent :: Maybe Int
xRayErrorPercent :: Maybe Int
value :: Maybe Double
unit :: Maybe Text
statesStatus :: Maybe Text
statesInput :: Maybe Text
statesExecutionArn :: Maybe Text
statesArn :: Maybe Text
startTime :: Maybe POSIX
sourceType :: Maybe Text
sourceARN :: Maybe Text
s3EventName :: Maybe Text
rdsEventMessage :: Maybe Text
rdsEventCategories :: Maybe Text
metricNamespace :: Maybe Text
metricName :: Maybe Text
logText :: Maybe Text
logGroup :: Maybe Text
logFilter :: Maybe LogFilter
lineTime :: Maybe POSIX
id :: Maybe Text
healthService :: Maybe Text
healthEventTypeCode :: Maybe Text
healthEventTypeCategory :: Maybe Text
healthEventDescription :: Maybe Text
healthEventArn :: Maybe Text
endTime :: Maybe POSIX
ec2State :: Maybe Text
ebsResult :: Maybe Text
ebsRequestId :: Maybe Text
ebsEvent :: Maybe Text
ebsCause :: Maybe Text
codeDeployState :: Maybe Text
codeDeployInstanceGroupId :: Maybe Text
codeDeployDeploymentId :: Maybe Text
codeDeployDeploymentGroup :: Maybe Text
codeDeployApplication :: Maybe Text
cloudWatchEventSource :: Maybe CloudWatchEventSource
cloudWatchEventId :: Maybe Text
cloudWatchEventDetailType :: Maybe Text
$sel:xRayThrottlePercent:Observation' :: Observation -> Maybe Int
$sel:xRayRequestCount:Observation' :: Observation -> Maybe Int
$sel:xRayRequestAverageLatency:Observation' :: Observation -> Maybe Integer
$sel:xRayNodeType:Observation' :: Observation -> Maybe Text
$sel:xRayNodeName:Observation' :: Observation -> Maybe Text
$sel:xRayFaultPercent:Observation' :: Observation -> Maybe Int
$sel:xRayErrorPercent:Observation' :: Observation -> Maybe Int
$sel:value:Observation' :: Observation -> Maybe Double
$sel:unit:Observation' :: Observation -> Maybe Text
$sel:statesStatus:Observation' :: Observation -> Maybe Text
$sel:statesInput:Observation' :: Observation -> Maybe Text
$sel:statesExecutionArn:Observation' :: Observation -> Maybe Text
$sel:statesArn:Observation' :: Observation -> Maybe Text
$sel:startTime:Observation' :: Observation -> Maybe POSIX
$sel:sourceType:Observation' :: Observation -> Maybe Text
$sel:sourceARN:Observation' :: Observation -> Maybe Text
$sel:s3EventName:Observation' :: Observation -> Maybe Text
$sel:rdsEventMessage:Observation' :: Observation -> Maybe Text
$sel:rdsEventCategories:Observation' :: Observation -> Maybe Text
$sel:metricNamespace:Observation' :: Observation -> Maybe Text
$sel:metricName:Observation' :: Observation -> Maybe Text
$sel:logText:Observation' :: Observation -> Maybe Text
$sel:logGroup:Observation' :: Observation -> Maybe Text
$sel:logFilter:Observation' :: Observation -> Maybe LogFilter
$sel:lineTime:Observation' :: Observation -> Maybe POSIX
$sel:id:Observation' :: Observation -> Maybe Text
$sel:healthService:Observation' :: Observation -> Maybe Text
$sel:healthEventTypeCode:Observation' :: Observation -> Maybe Text
$sel:healthEventTypeCategory:Observation' :: Observation -> Maybe Text
$sel:healthEventDescription:Observation' :: Observation -> Maybe Text
$sel:healthEventArn:Observation' :: Observation -> Maybe Text
$sel:endTime:Observation' :: Observation -> Maybe POSIX
$sel:ec2State:Observation' :: Observation -> Maybe Text
$sel:ebsResult:Observation' :: Observation -> Maybe Text
$sel:ebsRequestId:Observation' :: Observation -> Maybe Text
$sel:ebsEvent:Observation' :: Observation -> Maybe Text
$sel:ebsCause:Observation' :: Observation -> Maybe Text
$sel:codeDeployState:Observation' :: Observation -> Maybe Text
$sel:codeDeployInstanceGroupId:Observation' :: Observation -> Maybe Text
$sel:codeDeployDeploymentId:Observation' :: Observation -> Maybe Text
$sel:codeDeployDeploymentGroup:Observation' :: Observation -> Maybe Text
$sel:codeDeployApplication:Observation' :: Observation -> Maybe Text
$sel:cloudWatchEventSource:Observation' :: Observation -> Maybe CloudWatchEventSource
$sel:cloudWatchEventId:Observation' :: Observation -> Maybe Text
$sel:cloudWatchEventDetailType:Observation' :: Observation -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
cloudWatchEventDetailType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
cloudWatchEventId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CloudWatchEventSource
cloudWatchEventSource
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
codeDeployApplication
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
codeDeployDeploymentGroup
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
codeDeployDeploymentId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
codeDeployInstanceGroupId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
codeDeployState
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ebsCause
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ebsEvent
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ebsRequestId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ebsResult
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ec2State
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
endTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
healthEventArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
healthEventDescription
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
healthEventTypeCategory
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
healthEventTypeCode
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
healthService
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
id
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lineTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LogFilter
logFilter
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
logGroup
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
logText
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
metricName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
metricNamespace
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
rdsEventCategories
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
rdsEventMessage
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
s3EventName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
sourceARN
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
sourceType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
startTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
statesArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
statesExecutionArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
statesInput
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
statesStatus
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
unit
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Double
value
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
xRayErrorPercent
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
xRayFaultPercent
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
xRayNodeName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
xRayNodeType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
xRayRequestAverageLatency
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
xRayRequestCount
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
xRayThrottlePercent

instance Prelude.NFData Observation where
  rnf :: Observation -> ()
rnf Observation' {Maybe Double
Maybe Int
Maybe Integer
Maybe Text
Maybe POSIX
Maybe CloudWatchEventSource
Maybe LogFilter
xRayThrottlePercent :: Maybe Int
xRayRequestCount :: Maybe Int
xRayRequestAverageLatency :: Maybe Integer
xRayNodeType :: Maybe Text
xRayNodeName :: Maybe Text
xRayFaultPercent :: Maybe Int
xRayErrorPercent :: Maybe Int
value :: Maybe Double
unit :: Maybe Text
statesStatus :: Maybe Text
statesInput :: Maybe Text
statesExecutionArn :: Maybe Text
statesArn :: Maybe Text
startTime :: Maybe POSIX
sourceType :: Maybe Text
sourceARN :: Maybe Text
s3EventName :: Maybe Text
rdsEventMessage :: Maybe Text
rdsEventCategories :: Maybe Text
metricNamespace :: Maybe Text
metricName :: Maybe Text
logText :: Maybe Text
logGroup :: Maybe Text
logFilter :: Maybe LogFilter
lineTime :: Maybe POSIX
id :: Maybe Text
healthService :: Maybe Text
healthEventTypeCode :: Maybe Text
healthEventTypeCategory :: Maybe Text
healthEventDescription :: Maybe Text
healthEventArn :: Maybe Text
endTime :: Maybe POSIX
ec2State :: Maybe Text
ebsResult :: Maybe Text
ebsRequestId :: Maybe Text
ebsEvent :: Maybe Text
ebsCause :: Maybe Text
codeDeployState :: Maybe Text
codeDeployInstanceGroupId :: Maybe Text
codeDeployDeploymentId :: Maybe Text
codeDeployDeploymentGroup :: Maybe Text
codeDeployApplication :: Maybe Text
cloudWatchEventSource :: Maybe CloudWatchEventSource
cloudWatchEventId :: Maybe Text
cloudWatchEventDetailType :: Maybe Text
$sel:xRayThrottlePercent:Observation' :: Observation -> Maybe Int
$sel:xRayRequestCount:Observation' :: Observation -> Maybe Int
$sel:xRayRequestAverageLatency:Observation' :: Observation -> Maybe Integer
$sel:xRayNodeType:Observation' :: Observation -> Maybe Text
$sel:xRayNodeName:Observation' :: Observation -> Maybe Text
$sel:xRayFaultPercent:Observation' :: Observation -> Maybe Int
$sel:xRayErrorPercent:Observation' :: Observation -> Maybe Int
$sel:value:Observation' :: Observation -> Maybe Double
$sel:unit:Observation' :: Observation -> Maybe Text
$sel:statesStatus:Observation' :: Observation -> Maybe Text
$sel:statesInput:Observation' :: Observation -> Maybe Text
$sel:statesExecutionArn:Observation' :: Observation -> Maybe Text
$sel:statesArn:Observation' :: Observation -> Maybe Text
$sel:startTime:Observation' :: Observation -> Maybe POSIX
$sel:sourceType:Observation' :: Observation -> Maybe Text
$sel:sourceARN:Observation' :: Observation -> Maybe Text
$sel:s3EventName:Observation' :: Observation -> Maybe Text
$sel:rdsEventMessage:Observation' :: Observation -> Maybe Text
$sel:rdsEventCategories:Observation' :: Observation -> Maybe Text
$sel:metricNamespace:Observation' :: Observation -> Maybe Text
$sel:metricName:Observation' :: Observation -> Maybe Text
$sel:logText:Observation' :: Observation -> Maybe Text
$sel:logGroup:Observation' :: Observation -> Maybe Text
$sel:logFilter:Observation' :: Observation -> Maybe LogFilter
$sel:lineTime:Observation' :: Observation -> Maybe POSIX
$sel:id:Observation' :: Observation -> Maybe Text
$sel:healthService:Observation' :: Observation -> Maybe Text
$sel:healthEventTypeCode:Observation' :: Observation -> Maybe Text
$sel:healthEventTypeCategory:Observation' :: Observation -> Maybe Text
$sel:healthEventDescription:Observation' :: Observation -> Maybe Text
$sel:healthEventArn:Observation' :: Observation -> Maybe Text
$sel:endTime:Observation' :: Observation -> Maybe POSIX
$sel:ec2State:Observation' :: Observation -> Maybe Text
$sel:ebsResult:Observation' :: Observation -> Maybe Text
$sel:ebsRequestId:Observation' :: Observation -> Maybe Text
$sel:ebsEvent:Observation' :: Observation -> Maybe Text
$sel:ebsCause:Observation' :: Observation -> Maybe Text
$sel:codeDeployState:Observation' :: Observation -> Maybe Text
$sel:codeDeployInstanceGroupId:Observation' :: Observation -> Maybe Text
$sel:codeDeployDeploymentId:Observation' :: Observation -> Maybe Text
$sel:codeDeployDeploymentGroup:Observation' :: Observation -> Maybe Text
$sel:codeDeployApplication:Observation' :: Observation -> Maybe Text
$sel:cloudWatchEventSource:Observation' :: Observation -> Maybe CloudWatchEventSource
$sel:cloudWatchEventId:Observation' :: Observation -> Maybe Text
$sel:cloudWatchEventDetailType:Observation' :: Observation -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
cloudWatchEventDetailType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
cloudWatchEventId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CloudWatchEventSource
cloudWatchEventSource
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
codeDeployApplication
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
codeDeployDeploymentGroup
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
codeDeployDeploymentId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
codeDeployInstanceGroupId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
codeDeployState
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ebsCause
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ebsEvent
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ebsRequestId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ebsResult
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ec2State
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
endTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
healthEventArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
healthEventDescription
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
healthEventTypeCategory
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
healthEventTypeCode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
healthService
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
id
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lineTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LogFilter
logFilter
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
logGroup
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
logText
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
metricName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
metricNamespace
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
rdsEventCategories
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
rdsEventMessage
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
s3EventName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
sourceARN
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
sourceType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe POSIX
startTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
statesArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
statesExecutionArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
statesInput
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
statesStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
unit
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Double
value
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Int
xRayErrorPercent
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Int
xRayFaultPercent
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
xRayNodeName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
xRayNodeType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Integer
xRayRequestAverageLatency
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Int
xRayRequestCount
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Int
xRayThrottlePercent