{-# 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.AWSHealth.DescribeEventDetails
-- 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)
--
-- Returns detailed information about one or more specified events.
-- Information includes standard event data (AWS Region, service, and so
-- on, as returned by
-- <https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeEvents.html DescribeEvents>),
-- a detailed event description, and possible additional metadata that
-- depends upon the nature of the event. Affected entities are not
-- included. To retrieve the entities, use the
-- <https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeAffectedEntities.html DescribeAffectedEntities>
-- operation.
--
-- If a specified event can\'t be retrieved, an error message is returned
-- for that event.
--
-- This operation supports resource-level permissions. You can use this
-- operation to allow or deny access to specific AWS Health events. For
-- more information, see
-- <https://docs.aws.amazon.com/health/latest/ug/security_iam_id-based-policy-examples.html#resource-action-based-conditions Resource- and action-based conditions>
-- in the /AWS Health User Guide/.
module Amazonka.AWSHealth.DescribeEventDetails
  ( -- * Creating a Request
    DescribeEventDetails (..),
    newDescribeEventDetails,

    -- * Request Lenses
    describeEventDetails_locale,
    describeEventDetails_eventArns,

    -- * Destructuring the Response
    DescribeEventDetailsResponse (..),
    newDescribeEventDetailsResponse,

    -- * Response Lenses
    describeEventDetailsResponse_successfulSet,
    describeEventDetailsResponse_failedSet,
    describeEventDetailsResponse_httpStatus,
  )
where

import Amazonka.AWSHealth.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:/ 'newDescribeEventDetails' smart constructor.
data DescribeEventDetails = DescribeEventDetails'
  { -- | The locale (language) to return information in. English (en) is the
    -- default and the only supported value at this time.
    DescribeEventDetails -> Maybe Text
locale :: Prelude.Maybe Prelude.Text,
    -- | A list of event ARNs (unique identifiers). For example:
    -- @\"arn:aws:health:us-east-1::event\/EC2\/EC2_INSTANCE_RETIREMENT_SCHEDULED\/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-CDE456\", \"arn:aws:health:us-west-1::event\/EBS\/AWS_EBS_LOST_VOLUME\/AWS_EBS_LOST_VOLUME_CHI789_JKL101\"@
    DescribeEventDetails -> NonEmpty Text
eventArns :: Prelude.NonEmpty Prelude.Text
  }
  deriving (DescribeEventDetails -> DescribeEventDetails -> Bool
(DescribeEventDetails -> DescribeEventDetails -> Bool)
-> (DescribeEventDetails -> DescribeEventDetails -> Bool)
-> Eq DescribeEventDetails
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeEventDetails -> DescribeEventDetails -> Bool
$c/= :: DescribeEventDetails -> DescribeEventDetails -> Bool
== :: DescribeEventDetails -> DescribeEventDetails -> Bool
$c== :: DescribeEventDetails -> DescribeEventDetails -> Bool
Prelude.Eq, ReadPrec [DescribeEventDetails]
ReadPrec DescribeEventDetails
Int -> ReadS DescribeEventDetails
ReadS [DescribeEventDetails]
(Int -> ReadS DescribeEventDetails)
-> ReadS [DescribeEventDetails]
-> ReadPrec DescribeEventDetails
-> ReadPrec [DescribeEventDetails]
-> Read DescribeEventDetails
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeEventDetails]
$creadListPrec :: ReadPrec [DescribeEventDetails]
readPrec :: ReadPrec DescribeEventDetails
$creadPrec :: ReadPrec DescribeEventDetails
readList :: ReadS [DescribeEventDetails]
$creadList :: ReadS [DescribeEventDetails]
readsPrec :: Int -> ReadS DescribeEventDetails
$creadsPrec :: Int -> ReadS DescribeEventDetails
Prelude.Read, Int -> DescribeEventDetails -> ShowS
[DescribeEventDetails] -> ShowS
DescribeEventDetails -> String
(Int -> DescribeEventDetails -> ShowS)
-> (DescribeEventDetails -> String)
-> ([DescribeEventDetails] -> ShowS)
-> Show DescribeEventDetails
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeEventDetails] -> ShowS
$cshowList :: [DescribeEventDetails] -> ShowS
show :: DescribeEventDetails -> String
$cshow :: DescribeEventDetails -> String
showsPrec :: Int -> DescribeEventDetails -> ShowS
$cshowsPrec :: Int -> DescribeEventDetails -> ShowS
Prelude.Show, (forall x. DescribeEventDetails -> Rep DescribeEventDetails x)
-> (forall x. Rep DescribeEventDetails x -> DescribeEventDetails)
-> Generic DescribeEventDetails
forall x. Rep DescribeEventDetails x -> DescribeEventDetails
forall x. DescribeEventDetails -> Rep DescribeEventDetails x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeEventDetails x -> DescribeEventDetails
$cfrom :: forall x. DescribeEventDetails -> Rep DescribeEventDetails x
Prelude.Generic)

-- |
-- Create a value of 'DescribeEventDetails' 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:
--
-- 'locale', 'describeEventDetails_locale' - The locale (language) to return information in. English (en) is the
-- default and the only supported value at this time.
--
-- 'eventArns', 'describeEventDetails_eventArns' - A list of event ARNs (unique identifiers). For example:
-- @\"arn:aws:health:us-east-1::event\/EC2\/EC2_INSTANCE_RETIREMENT_SCHEDULED\/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-CDE456\", \"arn:aws:health:us-west-1::event\/EBS\/AWS_EBS_LOST_VOLUME\/AWS_EBS_LOST_VOLUME_CHI789_JKL101\"@
newDescribeEventDetails ::
  -- | 'eventArns'
  Prelude.NonEmpty Prelude.Text ->
  DescribeEventDetails
newDescribeEventDetails :: NonEmpty Text -> DescribeEventDetails
newDescribeEventDetails NonEmpty Text
pEventArns_ =
  DescribeEventDetails' :: Maybe Text -> NonEmpty Text -> DescribeEventDetails
DescribeEventDetails'
    { $sel:locale:DescribeEventDetails' :: Maybe Text
locale = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:eventArns:DescribeEventDetails' :: NonEmpty Text
eventArns = Tagged (NonEmpty Text) (Identity (NonEmpty Text))
-> Tagged (NonEmpty Text) (Identity (NonEmpty Text))
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced (Tagged (NonEmpty Text) (Identity (NonEmpty Text))
 -> Tagged (NonEmpty Text) (Identity (NonEmpty Text)))
-> NonEmpty Text -> NonEmpty Text
forall t b. AReview t b -> b -> t
Lens.# NonEmpty Text
pEventArns_
    }

-- | The locale (language) to return information in. English (en) is the
-- default and the only supported value at this time.
describeEventDetails_locale :: Lens.Lens' DescribeEventDetails (Prelude.Maybe Prelude.Text)
describeEventDetails_locale :: (Maybe Text -> f (Maybe Text))
-> DescribeEventDetails -> f DescribeEventDetails
describeEventDetails_locale = (DescribeEventDetails -> Maybe Text)
-> (DescribeEventDetails -> Maybe Text -> DescribeEventDetails)
-> Lens
     DescribeEventDetails DescribeEventDetails (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEventDetails' {Maybe Text
locale :: Maybe Text
$sel:locale:DescribeEventDetails' :: DescribeEventDetails -> Maybe Text
locale} -> Maybe Text
locale) (\s :: DescribeEventDetails
s@DescribeEventDetails' {} Maybe Text
a -> DescribeEventDetails
s {$sel:locale:DescribeEventDetails' :: Maybe Text
locale = Maybe Text
a} :: DescribeEventDetails)

-- | A list of event ARNs (unique identifiers). For example:
-- @\"arn:aws:health:us-east-1::event\/EC2\/EC2_INSTANCE_RETIREMENT_SCHEDULED\/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-CDE456\", \"arn:aws:health:us-west-1::event\/EBS\/AWS_EBS_LOST_VOLUME\/AWS_EBS_LOST_VOLUME_CHI789_JKL101\"@
describeEventDetails_eventArns :: Lens.Lens' DescribeEventDetails (Prelude.NonEmpty Prelude.Text)
describeEventDetails_eventArns :: (NonEmpty Text -> f (NonEmpty Text))
-> DescribeEventDetails -> f DescribeEventDetails
describeEventDetails_eventArns = (DescribeEventDetails -> NonEmpty Text)
-> (DescribeEventDetails -> NonEmpty Text -> DescribeEventDetails)
-> Lens
     DescribeEventDetails
     DescribeEventDetails
     (NonEmpty Text)
     (NonEmpty Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEventDetails' {NonEmpty Text
eventArns :: NonEmpty Text
$sel:eventArns:DescribeEventDetails' :: DescribeEventDetails -> NonEmpty Text
eventArns} -> NonEmpty Text
eventArns) (\s :: DescribeEventDetails
s@DescribeEventDetails' {} NonEmpty Text
a -> DescribeEventDetails
s {$sel:eventArns:DescribeEventDetails' :: NonEmpty Text
eventArns = NonEmpty Text
a} :: DescribeEventDetails) ((NonEmpty Text -> f (NonEmpty Text))
 -> DescribeEventDetails -> f DescribeEventDetails)
-> ((NonEmpty Text -> f (NonEmpty Text))
    -> NonEmpty Text -> f (NonEmpty Text))
-> (NonEmpty Text -> f (NonEmpty Text))
-> DescribeEventDetails
-> f DescribeEventDetails
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. (NonEmpty Text -> f (NonEmpty Text))
-> NonEmpty Text -> f (NonEmpty Text)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance Core.AWSRequest DescribeEventDetails where
  type
    AWSResponse DescribeEventDetails =
      DescribeEventDetailsResponse
  request :: DescribeEventDetails -> Request DescribeEventDetails
request = Service -> DescribeEventDetails -> Request DescribeEventDetails
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON Service
defaultService
  response :: Logger
-> Service
-> Proxy DescribeEventDetails
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeEventDetails)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse DescribeEventDetails))
-> Logger
-> Service
-> Proxy DescribeEventDetails
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeEventDetails)))
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 [EventDetails]
-> Maybe [EventDetailsErrorItem]
-> Int
-> DescribeEventDetailsResponse
DescribeEventDetailsResponse'
            (Maybe [EventDetails]
 -> Maybe [EventDetailsErrorItem]
 -> Int
 -> DescribeEventDetailsResponse)
-> Either String (Maybe [EventDetails])
-> Either
     String
     (Maybe [EventDetailsErrorItem]
      -> Int -> DescribeEventDetailsResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Either String (Maybe (Maybe [EventDetails]))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"successfulSet" Either String (Maybe (Maybe [EventDetails]))
-> Maybe [EventDetails] -> Either String (Maybe [EventDetails])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [EventDetails]
forall a. Monoid a => a
Prelude.mempty)
            Either
  String
  (Maybe [EventDetailsErrorItem]
   -> Int -> DescribeEventDetailsResponse)
-> Either String (Maybe [EventDetailsErrorItem])
-> Either String (Int -> DescribeEventDetailsResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object
-> Text -> Either String (Maybe (Maybe [EventDetailsErrorItem]))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"failedSet" Either String (Maybe (Maybe [EventDetailsErrorItem]))
-> Maybe [EventDetailsErrorItem]
-> Either String (Maybe [EventDetailsErrorItem])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [EventDetailsErrorItem]
forall a. Monoid a => a
Prelude.mempty)
            Either String (Int -> DescribeEventDetailsResponse)
-> Either String Int -> Either String DescribeEventDetailsResponse
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 DescribeEventDetails

instance Prelude.NFData DescribeEventDetails

instance Core.ToHeaders DescribeEventDetails where
  toHeaders :: DescribeEventDetails -> ResponseHeaders
toHeaders =
    ResponseHeaders -> DescribeEventDetails -> 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
"AWSHealth_20160804.DescribeEventDetails" ::
                          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 DescribeEventDetails where
  toJSON :: DescribeEventDetails -> Value
toJSON DescribeEventDetails' {Maybe Text
NonEmpty Text
eventArns :: NonEmpty Text
locale :: Maybe Text
$sel:eventArns:DescribeEventDetails' :: DescribeEventDetails -> NonEmpty Text
$sel:locale:DescribeEventDetails' :: DescribeEventDetails -> Maybe Text
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"locale" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
locale,
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Text
"eventArns" Text -> NonEmpty Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= NonEmpty Text
eventArns)
          ]
      )

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

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

-- | /See:/ 'newDescribeEventDetailsResponse' smart constructor.
data DescribeEventDetailsResponse = DescribeEventDetailsResponse'
  { -- | Information about the events that could be retrieved.
    DescribeEventDetailsResponse -> Maybe [EventDetails]
successfulSet :: Prelude.Maybe [EventDetails],
    -- | Error messages for any events that could not be retrieved.
    DescribeEventDetailsResponse -> Maybe [EventDetailsErrorItem]
failedSet :: Prelude.Maybe [EventDetailsErrorItem],
    -- | The response's http status code.
    DescribeEventDetailsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeEventDetailsResponse
-> DescribeEventDetailsResponse -> Bool
(DescribeEventDetailsResponse
 -> DescribeEventDetailsResponse -> Bool)
-> (DescribeEventDetailsResponse
    -> DescribeEventDetailsResponse -> Bool)
-> Eq DescribeEventDetailsResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeEventDetailsResponse
-> DescribeEventDetailsResponse -> Bool
$c/= :: DescribeEventDetailsResponse
-> DescribeEventDetailsResponse -> Bool
== :: DescribeEventDetailsResponse
-> DescribeEventDetailsResponse -> Bool
$c== :: DescribeEventDetailsResponse
-> DescribeEventDetailsResponse -> Bool
Prelude.Eq, ReadPrec [DescribeEventDetailsResponse]
ReadPrec DescribeEventDetailsResponse
Int -> ReadS DescribeEventDetailsResponse
ReadS [DescribeEventDetailsResponse]
(Int -> ReadS DescribeEventDetailsResponse)
-> ReadS [DescribeEventDetailsResponse]
-> ReadPrec DescribeEventDetailsResponse
-> ReadPrec [DescribeEventDetailsResponse]
-> Read DescribeEventDetailsResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeEventDetailsResponse]
$creadListPrec :: ReadPrec [DescribeEventDetailsResponse]
readPrec :: ReadPrec DescribeEventDetailsResponse
$creadPrec :: ReadPrec DescribeEventDetailsResponse
readList :: ReadS [DescribeEventDetailsResponse]
$creadList :: ReadS [DescribeEventDetailsResponse]
readsPrec :: Int -> ReadS DescribeEventDetailsResponse
$creadsPrec :: Int -> ReadS DescribeEventDetailsResponse
Prelude.Read, Int -> DescribeEventDetailsResponse -> ShowS
[DescribeEventDetailsResponse] -> ShowS
DescribeEventDetailsResponse -> String
(Int -> DescribeEventDetailsResponse -> ShowS)
-> (DescribeEventDetailsResponse -> String)
-> ([DescribeEventDetailsResponse] -> ShowS)
-> Show DescribeEventDetailsResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeEventDetailsResponse] -> ShowS
$cshowList :: [DescribeEventDetailsResponse] -> ShowS
show :: DescribeEventDetailsResponse -> String
$cshow :: DescribeEventDetailsResponse -> String
showsPrec :: Int -> DescribeEventDetailsResponse -> ShowS
$cshowsPrec :: Int -> DescribeEventDetailsResponse -> ShowS
Prelude.Show, (forall x.
 DescribeEventDetailsResponse -> Rep DescribeEventDetailsResponse x)
-> (forall x.
    Rep DescribeEventDetailsResponse x -> DescribeEventDetailsResponse)
-> Generic DescribeEventDetailsResponse
forall x.
Rep DescribeEventDetailsResponse x -> DescribeEventDetailsResponse
forall x.
DescribeEventDetailsResponse -> Rep DescribeEventDetailsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeEventDetailsResponse x -> DescribeEventDetailsResponse
$cfrom :: forall x.
DescribeEventDetailsResponse -> Rep DescribeEventDetailsResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeEventDetailsResponse' 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:
--
-- 'successfulSet', 'describeEventDetailsResponse_successfulSet' - Information about the events that could be retrieved.
--
-- 'failedSet', 'describeEventDetailsResponse_failedSet' - Error messages for any events that could not be retrieved.
--
-- 'httpStatus', 'describeEventDetailsResponse_httpStatus' - The response's http status code.
newDescribeEventDetailsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeEventDetailsResponse
newDescribeEventDetailsResponse :: Int -> DescribeEventDetailsResponse
newDescribeEventDetailsResponse Int
pHttpStatus_ =
  DescribeEventDetailsResponse' :: Maybe [EventDetails]
-> Maybe [EventDetailsErrorItem]
-> Int
-> DescribeEventDetailsResponse
DescribeEventDetailsResponse'
    { $sel:successfulSet:DescribeEventDetailsResponse' :: Maybe [EventDetails]
successfulSet =
        Maybe [EventDetails]
forall a. Maybe a
Prelude.Nothing,
      $sel:failedSet:DescribeEventDetailsResponse' :: Maybe [EventDetailsErrorItem]
failedSet = Maybe [EventDetailsErrorItem]
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeEventDetailsResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Information about the events that could be retrieved.
describeEventDetailsResponse_successfulSet :: Lens.Lens' DescribeEventDetailsResponse (Prelude.Maybe [EventDetails])
describeEventDetailsResponse_successfulSet :: (Maybe [EventDetails] -> f (Maybe [EventDetails]))
-> DescribeEventDetailsResponse -> f DescribeEventDetailsResponse
describeEventDetailsResponse_successfulSet = (DescribeEventDetailsResponse -> Maybe [EventDetails])
-> (DescribeEventDetailsResponse
    -> Maybe [EventDetails] -> DescribeEventDetailsResponse)
-> Lens
     DescribeEventDetailsResponse
     DescribeEventDetailsResponse
     (Maybe [EventDetails])
     (Maybe [EventDetails])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEventDetailsResponse' {Maybe [EventDetails]
successfulSet :: Maybe [EventDetails]
$sel:successfulSet:DescribeEventDetailsResponse' :: DescribeEventDetailsResponse -> Maybe [EventDetails]
successfulSet} -> Maybe [EventDetails]
successfulSet) (\s :: DescribeEventDetailsResponse
s@DescribeEventDetailsResponse' {} Maybe [EventDetails]
a -> DescribeEventDetailsResponse
s {$sel:successfulSet:DescribeEventDetailsResponse' :: Maybe [EventDetails]
successfulSet = Maybe [EventDetails]
a} :: DescribeEventDetailsResponse) ((Maybe [EventDetails] -> f (Maybe [EventDetails]))
 -> DescribeEventDetailsResponse -> f DescribeEventDetailsResponse)
-> ((Maybe [EventDetails] -> f (Maybe [EventDetails]))
    -> Maybe [EventDetails] -> f (Maybe [EventDetails]))
-> (Maybe [EventDetails] -> f (Maybe [EventDetails]))
-> DescribeEventDetailsResponse
-> f DescribeEventDetailsResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [EventDetails] [EventDetails] [EventDetails] [EventDetails]
-> Iso
     (Maybe [EventDetails])
     (Maybe [EventDetails])
     (Maybe [EventDetails])
     (Maybe [EventDetails])
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 [EventDetails] [EventDetails] [EventDetails] [EventDetails]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Error messages for any events that could not be retrieved.
describeEventDetailsResponse_failedSet :: Lens.Lens' DescribeEventDetailsResponse (Prelude.Maybe [EventDetailsErrorItem])
describeEventDetailsResponse_failedSet :: (Maybe [EventDetailsErrorItem]
 -> f (Maybe [EventDetailsErrorItem]))
-> DescribeEventDetailsResponse -> f DescribeEventDetailsResponse
describeEventDetailsResponse_failedSet = (DescribeEventDetailsResponse -> Maybe [EventDetailsErrorItem])
-> (DescribeEventDetailsResponse
    -> Maybe [EventDetailsErrorItem] -> DescribeEventDetailsResponse)
-> Lens
     DescribeEventDetailsResponse
     DescribeEventDetailsResponse
     (Maybe [EventDetailsErrorItem])
     (Maybe [EventDetailsErrorItem])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEventDetailsResponse' {Maybe [EventDetailsErrorItem]
failedSet :: Maybe [EventDetailsErrorItem]
$sel:failedSet:DescribeEventDetailsResponse' :: DescribeEventDetailsResponse -> Maybe [EventDetailsErrorItem]
failedSet} -> Maybe [EventDetailsErrorItem]
failedSet) (\s :: DescribeEventDetailsResponse
s@DescribeEventDetailsResponse' {} Maybe [EventDetailsErrorItem]
a -> DescribeEventDetailsResponse
s {$sel:failedSet:DescribeEventDetailsResponse' :: Maybe [EventDetailsErrorItem]
failedSet = Maybe [EventDetailsErrorItem]
a} :: DescribeEventDetailsResponse) ((Maybe [EventDetailsErrorItem]
  -> f (Maybe [EventDetailsErrorItem]))
 -> DescribeEventDetailsResponse -> f DescribeEventDetailsResponse)
-> ((Maybe [EventDetailsErrorItem]
     -> f (Maybe [EventDetailsErrorItem]))
    -> Maybe [EventDetailsErrorItem]
    -> f (Maybe [EventDetailsErrorItem]))
-> (Maybe [EventDetailsErrorItem]
    -> f (Maybe [EventDetailsErrorItem]))
-> DescribeEventDetailsResponse
-> f DescribeEventDetailsResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [EventDetailsErrorItem]
  [EventDetailsErrorItem]
  [EventDetailsErrorItem]
  [EventDetailsErrorItem]
-> Iso
     (Maybe [EventDetailsErrorItem])
     (Maybe [EventDetailsErrorItem])
     (Maybe [EventDetailsErrorItem])
     (Maybe [EventDetailsErrorItem])
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
  [EventDetailsErrorItem]
  [EventDetailsErrorItem]
  [EventDetailsErrorItem]
  [EventDetailsErrorItem]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

instance Prelude.NFData DescribeEventDetailsResponse