{-# 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.DescribeArchive
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves details about an archive.
module Amazonka.CloudWatchEvents.DescribeArchive
  ( -- * Creating a Request
    DescribeArchive (..),
    newDescribeArchive,

    -- * Request Lenses
    describeArchive_archiveName,

    -- * Destructuring the Response
    DescribeArchiveResponse (..),
    newDescribeArchiveResponse,

    -- * Response Lenses
    describeArchiveResponse_archiveArn,
    describeArchiveResponse_archiveName,
    describeArchiveResponse_creationTime,
    describeArchiveResponse_description,
    describeArchiveResponse_eventCount,
    describeArchiveResponse_eventPattern,
    describeArchiveResponse_eventSourceArn,
    describeArchiveResponse_retentionDays,
    describeArchiveResponse_sizeBytes,
    describeArchiveResponse_state,
    describeArchiveResponse_stateReason,
    describeArchiveResponse_httpStatus,
  )
where

import Amazonka.CloudWatchEvents.Types
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
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

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

-- |
-- Create a value of 'DescribeArchive' 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:
--
-- 'archiveName', 'describeArchive_archiveName' - The name of the archive to retrieve.
newDescribeArchive ::
  -- | 'archiveName'
  Prelude.Text ->
  DescribeArchive
newDescribeArchive :: Text -> DescribeArchive
newDescribeArchive Text
pArchiveName_ =
  DescribeArchive' {$sel:archiveName:DescribeArchive' :: Text
archiveName = Text
pArchiveName_}

-- | The name of the archive to retrieve.
describeArchive_archiveName :: Lens.Lens' DescribeArchive Prelude.Text
describeArchive_archiveName :: Lens' DescribeArchive Text
describeArchive_archiveName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArchive' {Text
archiveName :: Text
$sel:archiveName:DescribeArchive' :: DescribeArchive -> Text
archiveName} -> Text
archiveName) (\s :: DescribeArchive
s@DescribeArchive' {} Text
a -> DescribeArchive
s {$sel:archiveName:DescribeArchive' :: Text
archiveName = Text
a} :: DescribeArchive)

instance Core.AWSRequest DescribeArchive where
  type
    AWSResponse DescribeArchive =
      DescribeArchiveResponse
  request :: (Service -> Service) -> DescribeArchive -> Request DescribeArchive
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeArchive
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeArchive)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe Integer
-> Maybe Text
-> Maybe Text
-> Maybe Natural
-> Maybe Integer
-> Maybe ArchiveState
-> Maybe Text
-> Int
-> DescribeArchiveResponse
DescribeArchiveResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"ArchiveArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"ArchiveName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"CreationTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Description")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"EventCount")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"EventPattern")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"EventSourceArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"RetentionDays")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"SizeBytes")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"State")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"StateReason")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable DescribeArchive where
  hashWithSalt :: Int -> DescribeArchive -> Int
hashWithSalt Int
_salt DescribeArchive' {Text
archiveName :: Text
$sel:archiveName:DescribeArchive' :: DescribeArchive -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
archiveName

instance Prelude.NFData DescribeArchive where
  rnf :: DescribeArchive -> ()
rnf DescribeArchive' {Text
archiveName :: Text
$sel:archiveName:DescribeArchive' :: DescribeArchive -> Text
..} = forall a. NFData a => a -> ()
Prelude.rnf Text
archiveName

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

instance Data.ToJSON DescribeArchive where
  toJSON :: DescribeArchive -> Value
toJSON DescribeArchive' {Text
archiveName :: Text
$sel:archiveName:DescribeArchive' :: DescribeArchive -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [forall a. a -> Maybe a
Prelude.Just (Key
"ArchiveName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
archiveName)]
      )

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

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

-- | /See:/ 'newDescribeArchiveResponse' smart constructor.
data DescribeArchiveResponse = DescribeArchiveResponse'
  { -- | The ARN of the archive.
    DescribeArchiveResponse -> Maybe Text
archiveArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the archive.
    DescribeArchiveResponse -> Maybe Text
archiveName :: Prelude.Maybe Prelude.Text,
    -- | The time at which the archive was created.
    DescribeArchiveResponse -> Maybe POSIX
creationTime :: Prelude.Maybe Data.POSIX,
    -- | The description of the archive.
    DescribeArchiveResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The number of events in the archive.
    DescribeArchiveResponse -> Maybe Integer
eventCount :: Prelude.Maybe Prelude.Integer,
    -- | The event pattern used to filter events sent to the archive.
    DescribeArchiveResponse -> Maybe Text
eventPattern :: Prelude.Maybe Prelude.Text,
    -- | The ARN of the event source associated with the archive.
    DescribeArchiveResponse -> Maybe Text
eventSourceArn :: Prelude.Maybe Prelude.Text,
    -- | The number of days to retain events for in the archive.
    DescribeArchiveResponse -> Maybe Natural
retentionDays :: Prelude.Maybe Prelude.Natural,
    -- | The size of the archive in bytes.
    DescribeArchiveResponse -> Maybe Integer
sizeBytes :: Prelude.Maybe Prelude.Integer,
    -- | The state of the archive.
    DescribeArchiveResponse -> Maybe ArchiveState
state :: Prelude.Maybe ArchiveState,
    -- | The reason that the archive is in the state.
    DescribeArchiveResponse -> Maybe Text
stateReason :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeArchiveResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeArchiveResponse -> DescribeArchiveResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeArchiveResponse -> DescribeArchiveResponse -> Bool
$c/= :: DescribeArchiveResponse -> DescribeArchiveResponse -> Bool
== :: DescribeArchiveResponse -> DescribeArchiveResponse -> Bool
$c== :: DescribeArchiveResponse -> DescribeArchiveResponse -> Bool
Prelude.Eq, ReadPrec [DescribeArchiveResponse]
ReadPrec DescribeArchiveResponse
Int -> ReadS DescribeArchiveResponse
ReadS [DescribeArchiveResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeArchiveResponse]
$creadListPrec :: ReadPrec [DescribeArchiveResponse]
readPrec :: ReadPrec DescribeArchiveResponse
$creadPrec :: ReadPrec DescribeArchiveResponse
readList :: ReadS [DescribeArchiveResponse]
$creadList :: ReadS [DescribeArchiveResponse]
readsPrec :: Int -> ReadS DescribeArchiveResponse
$creadsPrec :: Int -> ReadS DescribeArchiveResponse
Prelude.Read, Int -> DescribeArchiveResponse -> ShowS
[DescribeArchiveResponse] -> ShowS
DescribeArchiveResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeArchiveResponse] -> ShowS
$cshowList :: [DescribeArchiveResponse] -> ShowS
show :: DescribeArchiveResponse -> String
$cshow :: DescribeArchiveResponse -> String
showsPrec :: Int -> DescribeArchiveResponse -> ShowS
$cshowsPrec :: Int -> DescribeArchiveResponse -> ShowS
Prelude.Show, forall x. Rep DescribeArchiveResponse x -> DescribeArchiveResponse
forall x. DescribeArchiveResponse -> Rep DescribeArchiveResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeArchiveResponse x -> DescribeArchiveResponse
$cfrom :: forall x. DescribeArchiveResponse -> Rep DescribeArchiveResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeArchiveResponse' 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:
--
-- 'archiveArn', 'describeArchiveResponse_archiveArn' - The ARN of the archive.
--
-- 'archiveName', 'describeArchiveResponse_archiveName' - The name of the archive.
--
-- 'creationTime', 'describeArchiveResponse_creationTime' - The time at which the archive was created.
--
-- 'description', 'describeArchiveResponse_description' - The description of the archive.
--
-- 'eventCount', 'describeArchiveResponse_eventCount' - The number of events in the archive.
--
-- 'eventPattern', 'describeArchiveResponse_eventPattern' - The event pattern used to filter events sent to the archive.
--
-- 'eventSourceArn', 'describeArchiveResponse_eventSourceArn' - The ARN of the event source associated with the archive.
--
-- 'retentionDays', 'describeArchiveResponse_retentionDays' - The number of days to retain events for in the archive.
--
-- 'sizeBytes', 'describeArchiveResponse_sizeBytes' - The size of the archive in bytes.
--
-- 'state', 'describeArchiveResponse_state' - The state of the archive.
--
-- 'stateReason', 'describeArchiveResponse_stateReason' - The reason that the archive is in the state.
--
-- 'httpStatus', 'describeArchiveResponse_httpStatus' - The response's http status code.
newDescribeArchiveResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeArchiveResponse
newDescribeArchiveResponse :: Int -> DescribeArchiveResponse
newDescribeArchiveResponse Int
pHttpStatus_ =
  DescribeArchiveResponse'
    { $sel:archiveArn:DescribeArchiveResponse' :: Maybe Text
archiveArn =
        forall a. Maybe a
Prelude.Nothing,
      $sel:archiveName:DescribeArchiveResponse' :: Maybe Text
archiveName = forall a. Maybe a
Prelude.Nothing,
      $sel:creationTime:DescribeArchiveResponse' :: Maybe POSIX
creationTime = forall a. Maybe a
Prelude.Nothing,
      $sel:description:DescribeArchiveResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:eventCount:DescribeArchiveResponse' :: Maybe Integer
eventCount = forall a. Maybe a
Prelude.Nothing,
      $sel:eventPattern:DescribeArchiveResponse' :: Maybe Text
eventPattern = forall a. Maybe a
Prelude.Nothing,
      $sel:eventSourceArn:DescribeArchiveResponse' :: Maybe Text
eventSourceArn = forall a. Maybe a
Prelude.Nothing,
      $sel:retentionDays:DescribeArchiveResponse' :: Maybe Natural
retentionDays = forall a. Maybe a
Prelude.Nothing,
      $sel:sizeBytes:DescribeArchiveResponse' :: Maybe Integer
sizeBytes = forall a. Maybe a
Prelude.Nothing,
      $sel:state:DescribeArchiveResponse' :: Maybe ArchiveState
state = forall a. Maybe a
Prelude.Nothing,
      $sel:stateReason:DescribeArchiveResponse' :: Maybe Text
stateReason = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeArchiveResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The ARN of the archive.
describeArchiveResponse_archiveArn :: Lens.Lens' DescribeArchiveResponse (Prelude.Maybe Prelude.Text)
describeArchiveResponse_archiveArn :: Lens' DescribeArchiveResponse (Maybe Text)
describeArchiveResponse_archiveArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArchiveResponse' {Maybe Text
archiveArn :: Maybe Text
$sel:archiveArn:DescribeArchiveResponse' :: DescribeArchiveResponse -> Maybe Text
archiveArn} -> Maybe Text
archiveArn) (\s :: DescribeArchiveResponse
s@DescribeArchiveResponse' {} Maybe Text
a -> DescribeArchiveResponse
s {$sel:archiveArn:DescribeArchiveResponse' :: Maybe Text
archiveArn = Maybe Text
a} :: DescribeArchiveResponse)

-- | The name of the archive.
describeArchiveResponse_archiveName :: Lens.Lens' DescribeArchiveResponse (Prelude.Maybe Prelude.Text)
describeArchiveResponse_archiveName :: Lens' DescribeArchiveResponse (Maybe Text)
describeArchiveResponse_archiveName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArchiveResponse' {Maybe Text
archiveName :: Maybe Text
$sel:archiveName:DescribeArchiveResponse' :: DescribeArchiveResponse -> Maybe Text
archiveName} -> Maybe Text
archiveName) (\s :: DescribeArchiveResponse
s@DescribeArchiveResponse' {} Maybe Text
a -> DescribeArchiveResponse
s {$sel:archiveName:DescribeArchiveResponse' :: Maybe Text
archiveName = Maybe Text
a} :: DescribeArchiveResponse)

-- | The time at which the archive was created.
describeArchiveResponse_creationTime :: Lens.Lens' DescribeArchiveResponse (Prelude.Maybe Prelude.UTCTime)
describeArchiveResponse_creationTime :: Lens' DescribeArchiveResponse (Maybe UTCTime)
describeArchiveResponse_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArchiveResponse' {Maybe POSIX
creationTime :: Maybe POSIX
$sel:creationTime:DescribeArchiveResponse' :: DescribeArchiveResponse -> Maybe POSIX
creationTime} -> Maybe POSIX
creationTime) (\s :: DescribeArchiveResponse
s@DescribeArchiveResponse' {} Maybe POSIX
a -> DescribeArchiveResponse
s {$sel:creationTime:DescribeArchiveResponse' :: Maybe POSIX
creationTime = Maybe POSIX
a} :: DescribeArchiveResponse) 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 description of the archive.
describeArchiveResponse_description :: Lens.Lens' DescribeArchiveResponse (Prelude.Maybe Prelude.Text)
describeArchiveResponse_description :: Lens' DescribeArchiveResponse (Maybe Text)
describeArchiveResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArchiveResponse' {Maybe Text
description :: Maybe Text
$sel:description:DescribeArchiveResponse' :: DescribeArchiveResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: DescribeArchiveResponse
s@DescribeArchiveResponse' {} Maybe Text
a -> DescribeArchiveResponse
s {$sel:description:DescribeArchiveResponse' :: Maybe Text
description = Maybe Text
a} :: DescribeArchiveResponse)

-- | The number of events in the archive.
describeArchiveResponse_eventCount :: Lens.Lens' DescribeArchiveResponse (Prelude.Maybe Prelude.Integer)
describeArchiveResponse_eventCount :: Lens' DescribeArchiveResponse (Maybe Integer)
describeArchiveResponse_eventCount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArchiveResponse' {Maybe Integer
eventCount :: Maybe Integer
$sel:eventCount:DescribeArchiveResponse' :: DescribeArchiveResponse -> Maybe Integer
eventCount} -> Maybe Integer
eventCount) (\s :: DescribeArchiveResponse
s@DescribeArchiveResponse' {} Maybe Integer
a -> DescribeArchiveResponse
s {$sel:eventCount:DescribeArchiveResponse' :: Maybe Integer
eventCount = Maybe Integer
a} :: DescribeArchiveResponse)

-- | The event pattern used to filter events sent to the archive.
describeArchiveResponse_eventPattern :: Lens.Lens' DescribeArchiveResponse (Prelude.Maybe Prelude.Text)
describeArchiveResponse_eventPattern :: Lens' DescribeArchiveResponse (Maybe Text)
describeArchiveResponse_eventPattern = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArchiveResponse' {Maybe Text
eventPattern :: Maybe Text
$sel:eventPattern:DescribeArchiveResponse' :: DescribeArchiveResponse -> Maybe Text
eventPattern} -> Maybe Text
eventPattern) (\s :: DescribeArchiveResponse
s@DescribeArchiveResponse' {} Maybe Text
a -> DescribeArchiveResponse
s {$sel:eventPattern:DescribeArchiveResponse' :: Maybe Text
eventPattern = Maybe Text
a} :: DescribeArchiveResponse)

-- | The ARN of the event source associated with the archive.
describeArchiveResponse_eventSourceArn :: Lens.Lens' DescribeArchiveResponse (Prelude.Maybe Prelude.Text)
describeArchiveResponse_eventSourceArn :: Lens' DescribeArchiveResponse (Maybe Text)
describeArchiveResponse_eventSourceArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArchiveResponse' {Maybe Text
eventSourceArn :: Maybe Text
$sel:eventSourceArn:DescribeArchiveResponse' :: DescribeArchiveResponse -> Maybe Text
eventSourceArn} -> Maybe Text
eventSourceArn) (\s :: DescribeArchiveResponse
s@DescribeArchiveResponse' {} Maybe Text
a -> DescribeArchiveResponse
s {$sel:eventSourceArn:DescribeArchiveResponse' :: Maybe Text
eventSourceArn = Maybe Text
a} :: DescribeArchiveResponse)

-- | The number of days to retain events for in the archive.
describeArchiveResponse_retentionDays :: Lens.Lens' DescribeArchiveResponse (Prelude.Maybe Prelude.Natural)
describeArchiveResponse_retentionDays :: Lens' DescribeArchiveResponse (Maybe Natural)
describeArchiveResponse_retentionDays = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArchiveResponse' {Maybe Natural
retentionDays :: Maybe Natural
$sel:retentionDays:DescribeArchiveResponse' :: DescribeArchiveResponse -> Maybe Natural
retentionDays} -> Maybe Natural
retentionDays) (\s :: DescribeArchiveResponse
s@DescribeArchiveResponse' {} Maybe Natural
a -> DescribeArchiveResponse
s {$sel:retentionDays:DescribeArchiveResponse' :: Maybe Natural
retentionDays = Maybe Natural
a} :: DescribeArchiveResponse)

-- | The size of the archive in bytes.
describeArchiveResponse_sizeBytes :: Lens.Lens' DescribeArchiveResponse (Prelude.Maybe Prelude.Integer)
describeArchiveResponse_sizeBytes :: Lens' DescribeArchiveResponse (Maybe Integer)
describeArchiveResponse_sizeBytes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArchiveResponse' {Maybe Integer
sizeBytes :: Maybe Integer
$sel:sizeBytes:DescribeArchiveResponse' :: DescribeArchiveResponse -> Maybe Integer
sizeBytes} -> Maybe Integer
sizeBytes) (\s :: DescribeArchiveResponse
s@DescribeArchiveResponse' {} Maybe Integer
a -> DescribeArchiveResponse
s {$sel:sizeBytes:DescribeArchiveResponse' :: Maybe Integer
sizeBytes = Maybe Integer
a} :: DescribeArchiveResponse)

-- | The state of the archive.
describeArchiveResponse_state :: Lens.Lens' DescribeArchiveResponse (Prelude.Maybe ArchiveState)
describeArchiveResponse_state :: Lens' DescribeArchiveResponse (Maybe ArchiveState)
describeArchiveResponse_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeArchiveResponse' {Maybe ArchiveState
state :: Maybe ArchiveState
$sel:state:DescribeArchiveResponse' :: DescribeArchiveResponse -> Maybe ArchiveState
state} -> Maybe ArchiveState
state) (\s :: DescribeArchiveResponse
s@DescribeArchiveResponse' {} Maybe ArchiveState
a -> DescribeArchiveResponse
s {$sel:state:DescribeArchiveResponse' :: Maybe ArchiveState
state = Maybe ArchiveState
a} :: DescribeArchiveResponse)

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

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

instance Prelude.NFData DescribeArchiveResponse where
  rnf :: DescribeArchiveResponse -> ()
rnf DescribeArchiveResponse' {Int
Maybe Integer
Maybe Natural
Maybe Text
Maybe POSIX
Maybe ArchiveState
httpStatus :: Int
stateReason :: Maybe Text
state :: Maybe ArchiveState
sizeBytes :: Maybe Integer
retentionDays :: Maybe Natural
eventSourceArn :: Maybe Text
eventPattern :: Maybe Text
eventCount :: Maybe Integer
description :: Maybe Text
creationTime :: Maybe POSIX
archiveName :: Maybe Text
archiveArn :: Maybe Text
$sel:httpStatus:DescribeArchiveResponse' :: DescribeArchiveResponse -> Int
$sel:stateReason:DescribeArchiveResponse' :: DescribeArchiveResponse -> Maybe Text
$sel:state:DescribeArchiveResponse' :: DescribeArchiveResponse -> Maybe ArchiveState
$sel:sizeBytes:DescribeArchiveResponse' :: DescribeArchiveResponse -> Maybe Integer
$sel:retentionDays:DescribeArchiveResponse' :: DescribeArchiveResponse -> Maybe Natural
$sel:eventSourceArn:DescribeArchiveResponse' :: DescribeArchiveResponse -> Maybe Text
$sel:eventPattern:DescribeArchiveResponse' :: DescribeArchiveResponse -> Maybe Text
$sel:eventCount:DescribeArchiveResponse' :: DescribeArchiveResponse -> Maybe Integer
$sel:description:DescribeArchiveResponse' :: DescribeArchiveResponse -> Maybe Text
$sel:creationTime:DescribeArchiveResponse' :: DescribeArchiveResponse -> Maybe POSIX
$sel:archiveName:DescribeArchiveResponse' :: DescribeArchiveResponse -> Maybe Text
$sel:archiveArn:DescribeArchiveResponse' :: DescribeArchiveResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
archiveArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
archiveName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
eventCount
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
eventPattern
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
eventSourceArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
retentionDays
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
sizeBytes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ArchiveState
state
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
stateReason
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus