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

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

-- |
-- Module      : Amazonka.CloudWatchEvents.DescribeReplay
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves details about a replay. Use @DescribeReplay@ to determine the
-- progress of a running replay. A replay processes events to replay based
-- on the time in the event, and replays them using 1 minute intervals. If
-- you use @StartReplay@ and specify an @EventStartTime@ and an
-- @EventEndTime@ that covers a 20 minute time range, the events are
-- replayed from the first minute of that 20 minute range first. Then the
-- events from the second minute are replayed. You can use @DescribeReplay@
-- to determine the progress of a replay. The value returned for
-- @EventLastReplayedTime@ indicates the time within the specified time
-- range associated with the last event replayed.
module Amazonka.CloudWatchEvents.DescribeReplay
  ( -- * Creating a Request
    DescribeReplay (..),
    newDescribeReplay,

    -- * Request Lenses
    describeReplay_replayName,

    -- * Destructuring the Response
    DescribeReplayResponse (..),
    newDescribeReplayResponse,

    -- * Response Lenses
    describeReplayResponse_eventSourceArn,
    describeReplayResponse_destination,
    describeReplayResponse_state,
    describeReplayResponse_eventEndTime,
    describeReplayResponse_replayStartTime,
    describeReplayResponse_replayArn,
    describeReplayResponse_replayEndTime,
    describeReplayResponse_eventLastReplayedTime,
    describeReplayResponse_eventStartTime,
    describeReplayResponse_replayName,
    describeReplayResponse_stateReason,
    describeReplayResponse_description,
    describeReplayResponse_httpStatus,
  )
where

import Amazonka.CloudWatchEvents.Types
import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newDescribeReplay' smart constructor.
data DescribeReplay = DescribeReplay'
  { -- | The name of the replay to retrieve.
    DescribeReplay -> Text
replayName :: Prelude.Text
  }
  deriving (DescribeReplay -> DescribeReplay -> Bool
(DescribeReplay -> DescribeReplay -> Bool)
-> (DescribeReplay -> DescribeReplay -> Bool) -> Eq DescribeReplay
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeReplay -> DescribeReplay -> Bool
$c/= :: DescribeReplay -> DescribeReplay -> Bool
== :: DescribeReplay -> DescribeReplay -> Bool
$c== :: DescribeReplay -> DescribeReplay -> Bool
Prelude.Eq, ReadPrec [DescribeReplay]
ReadPrec DescribeReplay
Int -> ReadS DescribeReplay
ReadS [DescribeReplay]
(Int -> ReadS DescribeReplay)
-> ReadS [DescribeReplay]
-> ReadPrec DescribeReplay
-> ReadPrec [DescribeReplay]
-> Read DescribeReplay
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeReplay]
$creadListPrec :: ReadPrec [DescribeReplay]
readPrec :: ReadPrec DescribeReplay
$creadPrec :: ReadPrec DescribeReplay
readList :: ReadS [DescribeReplay]
$creadList :: ReadS [DescribeReplay]
readsPrec :: Int -> ReadS DescribeReplay
$creadsPrec :: Int -> ReadS DescribeReplay
Prelude.Read, Int -> DescribeReplay -> ShowS
[DescribeReplay] -> ShowS
DescribeReplay -> String
(Int -> DescribeReplay -> ShowS)
-> (DescribeReplay -> String)
-> ([DescribeReplay] -> ShowS)
-> Show DescribeReplay
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeReplay] -> ShowS
$cshowList :: [DescribeReplay] -> ShowS
show :: DescribeReplay -> String
$cshow :: DescribeReplay -> String
showsPrec :: Int -> DescribeReplay -> ShowS
$cshowsPrec :: Int -> DescribeReplay -> ShowS
Prelude.Show, (forall x. DescribeReplay -> Rep DescribeReplay x)
-> (forall x. Rep DescribeReplay x -> DescribeReplay)
-> Generic DescribeReplay
forall x. Rep DescribeReplay x -> DescribeReplay
forall x. DescribeReplay -> Rep DescribeReplay x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeReplay x -> DescribeReplay
$cfrom :: forall x. DescribeReplay -> Rep DescribeReplay x
Prelude.Generic)

-- |
-- Create a value of 'DescribeReplay' 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:
--
-- 'replayName', 'describeReplay_replayName' - The name of the replay to retrieve.
newDescribeReplay ::
  -- | 'replayName'
  Prelude.Text ->
  DescribeReplay
newDescribeReplay :: Text -> DescribeReplay
newDescribeReplay Text
pReplayName_ =
  DescribeReplay' :: Text -> DescribeReplay
DescribeReplay' {$sel:replayName:DescribeReplay' :: Text
replayName = Text
pReplayName_}

-- | The name of the replay to retrieve.
describeReplay_replayName :: Lens.Lens' DescribeReplay Prelude.Text
describeReplay_replayName :: (Text -> f Text) -> DescribeReplay -> f DescribeReplay
describeReplay_replayName = (DescribeReplay -> Text)
-> (DescribeReplay -> Text -> DescribeReplay)
-> Lens DescribeReplay DescribeReplay Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeReplay' {Text
replayName :: Text
$sel:replayName:DescribeReplay' :: DescribeReplay -> Text
replayName} -> Text
replayName) (\s :: DescribeReplay
s@DescribeReplay' {} Text
a -> DescribeReplay
s {$sel:replayName:DescribeReplay' :: Text
replayName = Text
a} :: DescribeReplay)

instance Core.AWSRequest DescribeReplay where
  type
    AWSResponse DescribeReplay =
      DescribeReplayResponse
  request :: DescribeReplay -> Request DescribeReplay
request = Service -> DescribeReplay -> Request DescribeReplay
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON Service
defaultService
  response :: Logger
-> Service
-> Proxy DescribeReplay
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeReplay)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse DescribeReplay))
-> Logger
-> Service
-> Proxy DescribeReplay
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeReplay)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe ReplayDestination
-> Maybe ReplayState
-> Maybe POSIX
-> Maybe POSIX
-> Maybe Text
-> Maybe POSIX
-> Maybe POSIX
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Int
-> DescribeReplayResponse
DescribeReplayResponse'
            (Maybe Text
 -> Maybe ReplayDestination
 -> Maybe ReplayState
 -> Maybe POSIX
 -> Maybe POSIX
 -> Maybe Text
 -> Maybe POSIX
 -> Maybe POSIX
 -> Maybe POSIX
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Int
 -> DescribeReplayResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe ReplayDestination
      -> Maybe ReplayState
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeReplayResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"EventSourceArn")
            Either
  String
  (Maybe ReplayDestination
   -> Maybe ReplayState
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeReplayResponse)
-> Either String (Maybe ReplayDestination)
-> Either
     String
     (Maybe ReplayState
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeReplayResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe ReplayDestination)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"Destination")
            Either
  String
  (Maybe ReplayState
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeReplayResponse)
-> Either String (Maybe ReplayState)
-> Either
     String
     (Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeReplayResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe ReplayState)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"State")
            Either
  String
  (Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeReplayResponse)
-> Either String (Maybe POSIX)
-> Either
     String
     (Maybe POSIX
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeReplayResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"EventEndTime")
            Either
  String
  (Maybe POSIX
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeReplayResponse)
-> Either String (Maybe POSIX)
-> Either
     String
     (Maybe Text
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeReplayResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"ReplayStartTime")
            Either
  String
  (Maybe Text
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeReplayResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe POSIX
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeReplayResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"ReplayArn")
            Either
  String
  (Maybe POSIX
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeReplayResponse)
-> Either String (Maybe POSIX)
-> Either
     String
     (Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeReplayResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"ReplayEndTime")
            Either
  String
  (Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeReplayResponse)
-> Either String (Maybe POSIX)
-> Either
     String
     (Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeReplayResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"EventLastReplayedTime")
            Either
  String
  (Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeReplayResponse)
-> Either String (Maybe POSIX)
-> Either
     String
     (Maybe Text
      -> Maybe Text -> Maybe Text -> Int -> DescribeReplayResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"EventStartTime")
            Either
  String
  (Maybe Text
   -> Maybe Text -> Maybe Text -> Int -> DescribeReplayResponse)
-> Either String (Maybe Text)
-> Either
     String (Maybe Text -> Maybe Text -> Int -> DescribeReplayResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"ReplayName")
            Either
  String (Maybe Text -> Maybe Text -> Int -> DescribeReplayResponse)
-> Either String (Maybe Text)
-> Either String (Maybe Text -> Int -> DescribeReplayResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"StateReason")
            Either String (Maybe Text -> Int -> DescribeReplayResponse)
-> Either String (Maybe Text)
-> Either String (Int -> DescribeReplayResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"Description")
            Either String (Int -> DescribeReplayResponse)
-> Either String Int -> Either String DescribeReplayResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable DescribeReplay

instance Prelude.NFData DescribeReplay

instance Core.ToHeaders DescribeReplay where
  toHeaders :: DescribeReplay -> ResponseHeaders
toHeaders =
    ResponseHeaders -> DescribeReplay -> ResponseHeaders
forall a b. a -> b -> a
Prelude.const
      ( [ResponseHeaders] -> ResponseHeaders
forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# (ByteString
"AWSEvents.DescribeReplay" :: Prelude.ByteString),
            HeaderName
"Content-Type"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Core.ToJSON DescribeReplay where
  toJSON :: DescribeReplay -> Value
toJSON DescribeReplay' {Text
replayName :: Text
$sel:replayName:DescribeReplay' :: DescribeReplay -> Text
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Text
"ReplayName" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
replayName)]
      )

instance Core.ToPath DescribeReplay where
  toPath :: DescribeReplay -> ByteString
toPath = ByteString -> DescribeReplay -> ByteString
forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Core.ToQuery DescribeReplay where
  toQuery :: DescribeReplay -> QueryString
toQuery = QueryString -> DescribeReplay -> QueryString
forall a b. a -> b -> a
Prelude.const QueryString
forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newDescribeReplayResponse' smart constructor.
data DescribeReplayResponse = DescribeReplayResponse'
  { -- | The ARN of the archive events were replayed from.
    DescribeReplayResponse -> Maybe Text
eventSourceArn :: Prelude.Maybe Prelude.Text,
    -- | A @ReplayDestination@ object that contains details about the replay.
    DescribeReplayResponse -> Maybe ReplayDestination
destination :: Prelude.Maybe ReplayDestination,
    -- | The current state of the replay.
    DescribeReplayResponse -> Maybe ReplayState
state :: Prelude.Maybe ReplayState,
    -- | The time stamp for the last event that was replayed from the archive.
    DescribeReplayResponse -> Maybe POSIX
eventEndTime :: Prelude.Maybe Core.POSIX,
    -- | A time stamp for the time that the replay started.
    DescribeReplayResponse -> Maybe POSIX
replayStartTime :: Prelude.Maybe Core.POSIX,
    -- | The ARN of the replay.
    DescribeReplayResponse -> Maybe Text
replayArn :: Prelude.Maybe Prelude.Text,
    -- | A time stamp for the time that the replay stopped.
    DescribeReplayResponse -> Maybe POSIX
replayEndTime :: Prelude.Maybe Core.POSIX,
    -- | The time that the event was last replayed.
    DescribeReplayResponse -> Maybe POSIX
eventLastReplayedTime :: Prelude.Maybe Core.POSIX,
    -- | The time stamp of the first event that was last replayed from the
    -- archive.
    DescribeReplayResponse -> Maybe POSIX
eventStartTime :: Prelude.Maybe Core.POSIX,
    -- | The name of the replay.
    DescribeReplayResponse -> Maybe Text
replayName :: Prelude.Maybe Prelude.Text,
    -- | The reason that the replay is in the current state.
    DescribeReplayResponse -> Maybe Text
stateReason :: Prelude.Maybe Prelude.Text,
    -- | The description of the replay.
    DescribeReplayResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeReplayResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeReplayResponse -> DescribeReplayResponse -> Bool
(DescribeReplayResponse -> DescribeReplayResponse -> Bool)
-> (DescribeReplayResponse -> DescribeReplayResponse -> Bool)
-> Eq DescribeReplayResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeReplayResponse -> DescribeReplayResponse -> Bool
$c/= :: DescribeReplayResponse -> DescribeReplayResponse -> Bool
== :: DescribeReplayResponse -> DescribeReplayResponse -> Bool
$c== :: DescribeReplayResponse -> DescribeReplayResponse -> Bool
Prelude.Eq, ReadPrec [DescribeReplayResponse]
ReadPrec DescribeReplayResponse
Int -> ReadS DescribeReplayResponse
ReadS [DescribeReplayResponse]
(Int -> ReadS DescribeReplayResponse)
-> ReadS [DescribeReplayResponse]
-> ReadPrec DescribeReplayResponse
-> ReadPrec [DescribeReplayResponse]
-> Read DescribeReplayResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeReplayResponse]
$creadListPrec :: ReadPrec [DescribeReplayResponse]
readPrec :: ReadPrec DescribeReplayResponse
$creadPrec :: ReadPrec DescribeReplayResponse
readList :: ReadS [DescribeReplayResponse]
$creadList :: ReadS [DescribeReplayResponse]
readsPrec :: Int -> ReadS DescribeReplayResponse
$creadsPrec :: Int -> ReadS DescribeReplayResponse
Prelude.Read, Int -> DescribeReplayResponse -> ShowS
[DescribeReplayResponse] -> ShowS
DescribeReplayResponse -> String
(Int -> DescribeReplayResponse -> ShowS)
-> (DescribeReplayResponse -> String)
-> ([DescribeReplayResponse] -> ShowS)
-> Show DescribeReplayResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeReplayResponse] -> ShowS
$cshowList :: [DescribeReplayResponse] -> ShowS
show :: DescribeReplayResponse -> String
$cshow :: DescribeReplayResponse -> String
showsPrec :: Int -> DescribeReplayResponse -> ShowS
$cshowsPrec :: Int -> DescribeReplayResponse -> ShowS
Prelude.Show, (forall x. DescribeReplayResponse -> Rep DescribeReplayResponse x)
-> (forall x.
    Rep DescribeReplayResponse x -> DescribeReplayResponse)
-> Generic DescribeReplayResponse
forall x. Rep DescribeReplayResponse x -> DescribeReplayResponse
forall x. DescribeReplayResponse -> Rep DescribeReplayResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeReplayResponse x -> DescribeReplayResponse
$cfrom :: forall x. DescribeReplayResponse -> Rep DescribeReplayResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeReplayResponse' 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:
--
-- 'eventSourceArn', 'describeReplayResponse_eventSourceArn' - The ARN of the archive events were replayed from.
--
-- 'destination', 'describeReplayResponse_destination' - A @ReplayDestination@ object that contains details about the replay.
--
-- 'state', 'describeReplayResponse_state' - The current state of the replay.
--
-- 'eventEndTime', 'describeReplayResponse_eventEndTime' - The time stamp for the last event that was replayed from the archive.
--
-- 'replayStartTime', 'describeReplayResponse_replayStartTime' - A time stamp for the time that the replay started.
--
-- 'replayArn', 'describeReplayResponse_replayArn' - The ARN of the replay.
--
-- 'replayEndTime', 'describeReplayResponse_replayEndTime' - A time stamp for the time that the replay stopped.
--
-- 'eventLastReplayedTime', 'describeReplayResponse_eventLastReplayedTime' - The time that the event was last replayed.
--
-- 'eventStartTime', 'describeReplayResponse_eventStartTime' - The time stamp of the first event that was last replayed from the
-- archive.
--
-- 'replayName', 'describeReplayResponse_replayName' - The name of the replay.
--
-- 'stateReason', 'describeReplayResponse_stateReason' - The reason that the replay is in the current state.
--
-- 'description', 'describeReplayResponse_description' - The description of the replay.
--
-- 'httpStatus', 'describeReplayResponse_httpStatus' - The response's http status code.
newDescribeReplayResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeReplayResponse
newDescribeReplayResponse :: Int -> DescribeReplayResponse
newDescribeReplayResponse Int
pHttpStatus_ =
  DescribeReplayResponse' :: Maybe Text
-> Maybe ReplayDestination
-> Maybe ReplayState
-> Maybe POSIX
-> Maybe POSIX
-> Maybe Text
-> Maybe POSIX
-> Maybe POSIX
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Int
-> DescribeReplayResponse
DescribeReplayResponse'
    { $sel:eventSourceArn:DescribeReplayResponse' :: Maybe Text
eventSourceArn =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:destination:DescribeReplayResponse' :: Maybe ReplayDestination
destination = Maybe ReplayDestination
forall a. Maybe a
Prelude.Nothing,
      $sel:state:DescribeReplayResponse' :: Maybe ReplayState
state = Maybe ReplayState
forall a. Maybe a
Prelude.Nothing,
      $sel:eventEndTime:DescribeReplayResponse' :: Maybe POSIX
eventEndTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:replayStartTime:DescribeReplayResponse' :: Maybe POSIX
replayStartTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:replayArn:DescribeReplayResponse' :: Maybe Text
replayArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:replayEndTime:DescribeReplayResponse' :: Maybe POSIX
replayEndTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:eventLastReplayedTime:DescribeReplayResponse' :: Maybe POSIX
eventLastReplayedTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:eventStartTime:DescribeReplayResponse' :: Maybe POSIX
eventStartTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:replayName:DescribeReplayResponse' :: Maybe Text
replayName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:stateReason:DescribeReplayResponse' :: Maybe Text
stateReason = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:description:DescribeReplayResponse' :: Maybe Text
description = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeReplayResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The ARN of the archive events were replayed from.
describeReplayResponse_eventSourceArn :: Lens.Lens' DescribeReplayResponse (Prelude.Maybe Prelude.Text)
describeReplayResponse_eventSourceArn :: (Maybe Text -> f (Maybe Text))
-> DescribeReplayResponse -> f DescribeReplayResponse
describeReplayResponse_eventSourceArn = (DescribeReplayResponse -> Maybe Text)
-> (DescribeReplayResponse -> Maybe Text -> DescribeReplayResponse)
-> Lens
     DescribeReplayResponse
     DescribeReplayResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeReplayResponse' {Maybe Text
eventSourceArn :: Maybe Text
$sel:eventSourceArn:DescribeReplayResponse' :: DescribeReplayResponse -> Maybe Text
eventSourceArn} -> Maybe Text
eventSourceArn) (\s :: DescribeReplayResponse
s@DescribeReplayResponse' {} Maybe Text
a -> DescribeReplayResponse
s {$sel:eventSourceArn:DescribeReplayResponse' :: Maybe Text
eventSourceArn = Maybe Text
a} :: DescribeReplayResponse)

-- | A @ReplayDestination@ object that contains details about the replay.
describeReplayResponse_destination :: Lens.Lens' DescribeReplayResponse (Prelude.Maybe ReplayDestination)
describeReplayResponse_destination :: (Maybe ReplayDestination -> f (Maybe ReplayDestination))
-> DescribeReplayResponse -> f DescribeReplayResponse
describeReplayResponse_destination = (DescribeReplayResponse -> Maybe ReplayDestination)
-> (DescribeReplayResponse
    -> Maybe ReplayDestination -> DescribeReplayResponse)
-> Lens
     DescribeReplayResponse
     DescribeReplayResponse
     (Maybe ReplayDestination)
     (Maybe ReplayDestination)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeReplayResponse' {Maybe ReplayDestination
destination :: Maybe ReplayDestination
$sel:destination:DescribeReplayResponse' :: DescribeReplayResponse -> Maybe ReplayDestination
destination} -> Maybe ReplayDestination
destination) (\s :: DescribeReplayResponse
s@DescribeReplayResponse' {} Maybe ReplayDestination
a -> DescribeReplayResponse
s {$sel:destination:DescribeReplayResponse' :: Maybe ReplayDestination
destination = Maybe ReplayDestination
a} :: DescribeReplayResponse)

-- | The current state of the replay.
describeReplayResponse_state :: Lens.Lens' DescribeReplayResponse (Prelude.Maybe ReplayState)
describeReplayResponse_state :: (Maybe ReplayState -> f (Maybe ReplayState))
-> DescribeReplayResponse -> f DescribeReplayResponse
describeReplayResponse_state = (DescribeReplayResponse -> Maybe ReplayState)
-> (DescribeReplayResponse
    -> Maybe ReplayState -> DescribeReplayResponse)
-> Lens
     DescribeReplayResponse
     DescribeReplayResponse
     (Maybe ReplayState)
     (Maybe ReplayState)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeReplayResponse' {Maybe ReplayState
state :: Maybe ReplayState
$sel:state:DescribeReplayResponse' :: DescribeReplayResponse -> Maybe ReplayState
state} -> Maybe ReplayState
state) (\s :: DescribeReplayResponse
s@DescribeReplayResponse' {} Maybe ReplayState
a -> DescribeReplayResponse
s {$sel:state:DescribeReplayResponse' :: Maybe ReplayState
state = Maybe ReplayState
a} :: DescribeReplayResponse)

-- | The time stamp for the last event that was replayed from the archive.
describeReplayResponse_eventEndTime :: Lens.Lens' DescribeReplayResponse (Prelude.Maybe Prelude.UTCTime)
describeReplayResponse_eventEndTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeReplayResponse -> f DescribeReplayResponse
describeReplayResponse_eventEndTime = (DescribeReplayResponse -> Maybe POSIX)
-> (DescribeReplayResponse
    -> Maybe POSIX -> DescribeReplayResponse)
-> Lens
     DescribeReplayResponse
     DescribeReplayResponse
     (Maybe POSIX)
     (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeReplayResponse' {Maybe POSIX
eventEndTime :: Maybe POSIX
$sel:eventEndTime:DescribeReplayResponse' :: DescribeReplayResponse -> Maybe POSIX
eventEndTime} -> Maybe POSIX
eventEndTime) (\s :: DescribeReplayResponse
s@DescribeReplayResponse' {} Maybe POSIX
a -> DescribeReplayResponse
s {$sel:eventEndTime:DescribeReplayResponse' :: Maybe POSIX
eventEndTime = Maybe POSIX
a} :: DescribeReplayResponse) ((Maybe POSIX -> f (Maybe POSIX))
 -> DescribeReplayResponse -> f DescribeReplayResponse)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeReplayResponse
-> f DescribeReplayResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | A time stamp for the time that the replay started.
describeReplayResponse_replayStartTime :: Lens.Lens' DescribeReplayResponse (Prelude.Maybe Prelude.UTCTime)
describeReplayResponse_replayStartTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeReplayResponse -> f DescribeReplayResponse
describeReplayResponse_replayStartTime = (DescribeReplayResponse -> Maybe POSIX)
-> (DescribeReplayResponse
    -> Maybe POSIX -> DescribeReplayResponse)
-> Lens
     DescribeReplayResponse
     DescribeReplayResponse
     (Maybe POSIX)
     (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeReplayResponse' {Maybe POSIX
replayStartTime :: Maybe POSIX
$sel:replayStartTime:DescribeReplayResponse' :: DescribeReplayResponse -> Maybe POSIX
replayStartTime} -> Maybe POSIX
replayStartTime) (\s :: DescribeReplayResponse
s@DescribeReplayResponse' {} Maybe POSIX
a -> DescribeReplayResponse
s {$sel:replayStartTime:DescribeReplayResponse' :: Maybe POSIX
replayStartTime = Maybe POSIX
a} :: DescribeReplayResponse) ((Maybe POSIX -> f (Maybe POSIX))
 -> DescribeReplayResponse -> f DescribeReplayResponse)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeReplayResponse
-> f DescribeReplayResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The ARN of the replay.
describeReplayResponse_replayArn :: Lens.Lens' DescribeReplayResponse (Prelude.Maybe Prelude.Text)
describeReplayResponse_replayArn :: (Maybe Text -> f (Maybe Text))
-> DescribeReplayResponse -> f DescribeReplayResponse
describeReplayResponse_replayArn = (DescribeReplayResponse -> Maybe Text)
-> (DescribeReplayResponse -> Maybe Text -> DescribeReplayResponse)
-> Lens
     DescribeReplayResponse
     DescribeReplayResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeReplayResponse' {Maybe Text
replayArn :: Maybe Text
$sel:replayArn:DescribeReplayResponse' :: DescribeReplayResponse -> Maybe Text
replayArn} -> Maybe Text
replayArn) (\s :: DescribeReplayResponse
s@DescribeReplayResponse' {} Maybe Text
a -> DescribeReplayResponse
s {$sel:replayArn:DescribeReplayResponse' :: Maybe Text
replayArn = Maybe Text
a} :: DescribeReplayResponse)

-- | A time stamp for the time that the replay stopped.
describeReplayResponse_replayEndTime :: Lens.Lens' DescribeReplayResponse (Prelude.Maybe Prelude.UTCTime)
describeReplayResponse_replayEndTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeReplayResponse -> f DescribeReplayResponse
describeReplayResponse_replayEndTime = (DescribeReplayResponse -> Maybe POSIX)
-> (DescribeReplayResponse
    -> Maybe POSIX -> DescribeReplayResponse)
-> Lens
     DescribeReplayResponse
     DescribeReplayResponse
     (Maybe POSIX)
     (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeReplayResponse' {Maybe POSIX
replayEndTime :: Maybe POSIX
$sel:replayEndTime:DescribeReplayResponse' :: DescribeReplayResponse -> Maybe POSIX
replayEndTime} -> Maybe POSIX
replayEndTime) (\s :: DescribeReplayResponse
s@DescribeReplayResponse' {} Maybe POSIX
a -> DescribeReplayResponse
s {$sel:replayEndTime:DescribeReplayResponse' :: Maybe POSIX
replayEndTime = Maybe POSIX
a} :: DescribeReplayResponse) ((Maybe POSIX -> f (Maybe POSIX))
 -> DescribeReplayResponse -> f DescribeReplayResponse)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeReplayResponse
-> f DescribeReplayResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The time that the event was last replayed.
describeReplayResponse_eventLastReplayedTime :: Lens.Lens' DescribeReplayResponse (Prelude.Maybe Prelude.UTCTime)
describeReplayResponse_eventLastReplayedTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeReplayResponse -> f DescribeReplayResponse
describeReplayResponse_eventLastReplayedTime = (DescribeReplayResponse -> Maybe POSIX)
-> (DescribeReplayResponse
    -> Maybe POSIX -> DescribeReplayResponse)
-> Lens
     DescribeReplayResponse
     DescribeReplayResponse
     (Maybe POSIX)
     (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeReplayResponse' {Maybe POSIX
eventLastReplayedTime :: Maybe POSIX
$sel:eventLastReplayedTime:DescribeReplayResponse' :: DescribeReplayResponse -> Maybe POSIX
eventLastReplayedTime} -> Maybe POSIX
eventLastReplayedTime) (\s :: DescribeReplayResponse
s@DescribeReplayResponse' {} Maybe POSIX
a -> DescribeReplayResponse
s {$sel:eventLastReplayedTime:DescribeReplayResponse' :: Maybe POSIX
eventLastReplayedTime = Maybe POSIX
a} :: DescribeReplayResponse) ((Maybe POSIX -> f (Maybe POSIX))
 -> DescribeReplayResponse -> f DescribeReplayResponse)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeReplayResponse
-> f DescribeReplayResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The time stamp of the first event that was last replayed from the
-- archive.
describeReplayResponse_eventStartTime :: Lens.Lens' DescribeReplayResponse (Prelude.Maybe Prelude.UTCTime)
describeReplayResponse_eventStartTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeReplayResponse -> f DescribeReplayResponse
describeReplayResponse_eventStartTime = (DescribeReplayResponse -> Maybe POSIX)
-> (DescribeReplayResponse
    -> Maybe POSIX -> DescribeReplayResponse)
-> Lens
     DescribeReplayResponse
     DescribeReplayResponse
     (Maybe POSIX)
     (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeReplayResponse' {Maybe POSIX
eventStartTime :: Maybe POSIX
$sel:eventStartTime:DescribeReplayResponse' :: DescribeReplayResponse -> Maybe POSIX
eventStartTime} -> Maybe POSIX
eventStartTime) (\s :: DescribeReplayResponse
s@DescribeReplayResponse' {} Maybe POSIX
a -> DescribeReplayResponse
s {$sel:eventStartTime:DescribeReplayResponse' :: Maybe POSIX
eventStartTime = Maybe POSIX
a} :: DescribeReplayResponse) ((Maybe POSIX -> f (Maybe POSIX))
 -> DescribeReplayResponse -> f DescribeReplayResponse)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeReplayResponse
-> f DescribeReplayResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The name of the replay.
describeReplayResponse_replayName :: Lens.Lens' DescribeReplayResponse (Prelude.Maybe Prelude.Text)
describeReplayResponse_replayName :: (Maybe Text -> f (Maybe Text))
-> DescribeReplayResponse -> f DescribeReplayResponse
describeReplayResponse_replayName = (DescribeReplayResponse -> Maybe Text)
-> (DescribeReplayResponse -> Maybe Text -> DescribeReplayResponse)
-> Lens
     DescribeReplayResponse
     DescribeReplayResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeReplayResponse' {Maybe Text
replayName :: Maybe Text
$sel:replayName:DescribeReplayResponse' :: DescribeReplayResponse -> Maybe Text
replayName} -> Maybe Text
replayName) (\s :: DescribeReplayResponse
s@DescribeReplayResponse' {} Maybe Text
a -> DescribeReplayResponse
s {$sel:replayName:DescribeReplayResponse' :: Maybe Text
replayName = Maybe Text
a} :: DescribeReplayResponse)

-- | The reason that the replay is in the current state.
describeReplayResponse_stateReason :: Lens.Lens' DescribeReplayResponse (Prelude.Maybe Prelude.Text)
describeReplayResponse_stateReason :: (Maybe Text -> f (Maybe Text))
-> DescribeReplayResponse -> f DescribeReplayResponse
describeReplayResponse_stateReason = (DescribeReplayResponse -> Maybe Text)
-> (DescribeReplayResponse -> Maybe Text -> DescribeReplayResponse)
-> Lens
     DescribeReplayResponse
     DescribeReplayResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeReplayResponse' {Maybe Text
stateReason :: Maybe Text
$sel:stateReason:DescribeReplayResponse' :: DescribeReplayResponse -> Maybe Text
stateReason} -> Maybe Text
stateReason) (\s :: DescribeReplayResponse
s@DescribeReplayResponse' {} Maybe Text
a -> DescribeReplayResponse
s {$sel:stateReason:DescribeReplayResponse' :: Maybe Text
stateReason = Maybe Text
a} :: DescribeReplayResponse)

-- | The description of the replay.
describeReplayResponse_description :: Lens.Lens' DescribeReplayResponse (Prelude.Maybe Prelude.Text)
describeReplayResponse_description :: (Maybe Text -> f (Maybe Text))
-> DescribeReplayResponse -> f DescribeReplayResponse
describeReplayResponse_description = (DescribeReplayResponse -> Maybe Text)
-> (DescribeReplayResponse -> Maybe Text -> DescribeReplayResponse)
-> Lens
     DescribeReplayResponse
     DescribeReplayResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeReplayResponse' {Maybe Text
description :: Maybe Text
$sel:description:DescribeReplayResponse' :: DescribeReplayResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: DescribeReplayResponse
s@DescribeReplayResponse' {} Maybe Text
a -> DescribeReplayResponse
s {$sel:description:DescribeReplayResponse' :: Maybe Text
description = Maybe Text
a} :: DescribeReplayResponse)

-- | The response's http status code.
describeReplayResponse_httpStatus :: Lens.Lens' DescribeReplayResponse Prelude.Int
describeReplayResponse_httpStatus :: (Int -> f Int)
-> DescribeReplayResponse -> f DescribeReplayResponse
describeReplayResponse_httpStatus = (DescribeReplayResponse -> Int)
-> (DescribeReplayResponse -> Int -> DescribeReplayResponse)
-> Lens DescribeReplayResponse DescribeReplayResponse Int Int
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeReplayResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeReplayResponse' :: DescribeReplayResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeReplayResponse
s@DescribeReplayResponse' {} Int
a -> DescribeReplayResponse
s {$sel:httpStatus:DescribeReplayResponse' :: Int
httpStatus = Int
a} :: DescribeReplayResponse)

instance Prelude.NFData DescribeReplayResponse