{-# 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.ElastiCache.DescribeUpdateActions
-- 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 details of the update actions
--
-- This operation returns paginated results.
module Amazonka.ElastiCache.DescribeUpdateActions
  ( -- * Creating a Request
    DescribeUpdateActions (..),
    newDescribeUpdateActions,

    -- * Request Lenses
    describeUpdateActions_cacheClusterIds,
    describeUpdateActions_serviceUpdateName,
    describeUpdateActions_updateActionStatus,
    describeUpdateActions_engine,
    describeUpdateActions_serviceUpdateTimeRange,
    describeUpdateActions_marker,
    describeUpdateActions_maxRecords,
    describeUpdateActions_replicationGroupIds,
    describeUpdateActions_showNodeLevelUpdateStatus,
    describeUpdateActions_serviceUpdateStatus,

    -- * Destructuring the Response
    DescribeUpdateActionsResponse (..),
    newDescribeUpdateActionsResponse,

    -- * Response Lenses
    describeUpdateActionsResponse_updateActions,
    describeUpdateActionsResponse_marker,
    describeUpdateActionsResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import Amazonka.ElastiCache.Types
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:/ 'newDescribeUpdateActions' smart constructor.
data DescribeUpdateActions = DescribeUpdateActions'
  { -- | The cache cluster IDs
    DescribeUpdateActions -> Maybe [Text]
cacheClusterIds :: Prelude.Maybe [Prelude.Text],
    -- | The unique ID of the service update
    DescribeUpdateActions -> Maybe Text
serviceUpdateName :: Prelude.Maybe Prelude.Text,
    -- | The status of the update action.
    DescribeUpdateActions -> Maybe [UpdateActionStatus]
updateActionStatus :: Prelude.Maybe [UpdateActionStatus],
    -- | The Elasticache engine to which the update applies. Either Redis or
    -- Memcached
    DescribeUpdateActions -> Maybe Text
engine :: Prelude.Maybe Prelude.Text,
    -- | The range of time specified to search for service updates that are in
    -- available status
    DescribeUpdateActions -> Maybe TimeRangeFilter
serviceUpdateTimeRange :: Prelude.Maybe TimeRangeFilter,
    -- | An optional marker returned from a prior request. Use this marker for
    -- pagination of results from this operation. If this parameter is
    -- specified, the response includes only records beyond the marker, up to
    -- the value specified by @MaxRecords@.
    DescribeUpdateActions -> Maybe Text
marker :: Prelude.Maybe Prelude.Text,
    -- | The maximum number of records to include in the response
    DescribeUpdateActions -> Maybe Int
maxRecords :: Prelude.Maybe Prelude.Int,
    -- | The replication group IDs
    DescribeUpdateActions -> Maybe [Text]
replicationGroupIds :: Prelude.Maybe [Prelude.Text],
    -- | Dictates whether to include node level update status in the response
    DescribeUpdateActions -> Maybe Bool
showNodeLevelUpdateStatus :: Prelude.Maybe Prelude.Bool,
    -- | The status of the service update
    DescribeUpdateActions -> Maybe [ServiceUpdateStatus]
serviceUpdateStatus :: Prelude.Maybe [ServiceUpdateStatus]
  }
  deriving (DescribeUpdateActions -> DescribeUpdateActions -> Bool
(DescribeUpdateActions -> DescribeUpdateActions -> Bool)
-> (DescribeUpdateActions -> DescribeUpdateActions -> Bool)
-> Eq DescribeUpdateActions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeUpdateActions -> DescribeUpdateActions -> Bool
$c/= :: DescribeUpdateActions -> DescribeUpdateActions -> Bool
== :: DescribeUpdateActions -> DescribeUpdateActions -> Bool
$c== :: DescribeUpdateActions -> DescribeUpdateActions -> Bool
Prelude.Eq, ReadPrec [DescribeUpdateActions]
ReadPrec DescribeUpdateActions
Int -> ReadS DescribeUpdateActions
ReadS [DescribeUpdateActions]
(Int -> ReadS DescribeUpdateActions)
-> ReadS [DescribeUpdateActions]
-> ReadPrec DescribeUpdateActions
-> ReadPrec [DescribeUpdateActions]
-> Read DescribeUpdateActions
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeUpdateActions]
$creadListPrec :: ReadPrec [DescribeUpdateActions]
readPrec :: ReadPrec DescribeUpdateActions
$creadPrec :: ReadPrec DescribeUpdateActions
readList :: ReadS [DescribeUpdateActions]
$creadList :: ReadS [DescribeUpdateActions]
readsPrec :: Int -> ReadS DescribeUpdateActions
$creadsPrec :: Int -> ReadS DescribeUpdateActions
Prelude.Read, Int -> DescribeUpdateActions -> ShowS
[DescribeUpdateActions] -> ShowS
DescribeUpdateActions -> String
(Int -> DescribeUpdateActions -> ShowS)
-> (DescribeUpdateActions -> String)
-> ([DescribeUpdateActions] -> ShowS)
-> Show DescribeUpdateActions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeUpdateActions] -> ShowS
$cshowList :: [DescribeUpdateActions] -> ShowS
show :: DescribeUpdateActions -> String
$cshow :: DescribeUpdateActions -> String
showsPrec :: Int -> DescribeUpdateActions -> ShowS
$cshowsPrec :: Int -> DescribeUpdateActions -> ShowS
Prelude.Show, (forall x. DescribeUpdateActions -> Rep DescribeUpdateActions x)
-> (forall x. Rep DescribeUpdateActions x -> DescribeUpdateActions)
-> Generic DescribeUpdateActions
forall x. Rep DescribeUpdateActions x -> DescribeUpdateActions
forall x. DescribeUpdateActions -> Rep DescribeUpdateActions x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeUpdateActions x -> DescribeUpdateActions
$cfrom :: forall x. DescribeUpdateActions -> Rep DescribeUpdateActions x
Prelude.Generic)

-- |
-- Create a value of 'DescribeUpdateActions' 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:
--
-- 'cacheClusterIds', 'describeUpdateActions_cacheClusterIds' - The cache cluster IDs
--
-- 'serviceUpdateName', 'describeUpdateActions_serviceUpdateName' - The unique ID of the service update
--
-- 'updateActionStatus', 'describeUpdateActions_updateActionStatus' - The status of the update action.
--
-- 'engine', 'describeUpdateActions_engine' - The Elasticache engine to which the update applies. Either Redis or
-- Memcached
--
-- 'serviceUpdateTimeRange', 'describeUpdateActions_serviceUpdateTimeRange' - The range of time specified to search for service updates that are in
-- available status
--
-- 'marker', 'describeUpdateActions_marker' - An optional marker returned from a prior request. Use this marker for
-- pagination of results from this operation. If this parameter is
-- specified, the response includes only records beyond the marker, up to
-- the value specified by @MaxRecords@.
--
-- 'maxRecords', 'describeUpdateActions_maxRecords' - The maximum number of records to include in the response
--
-- 'replicationGroupIds', 'describeUpdateActions_replicationGroupIds' - The replication group IDs
--
-- 'showNodeLevelUpdateStatus', 'describeUpdateActions_showNodeLevelUpdateStatus' - Dictates whether to include node level update status in the response
--
-- 'serviceUpdateStatus', 'describeUpdateActions_serviceUpdateStatus' - The status of the service update
newDescribeUpdateActions ::
  DescribeUpdateActions
newDescribeUpdateActions :: DescribeUpdateActions
newDescribeUpdateActions =
  DescribeUpdateActions' :: Maybe [Text]
-> Maybe Text
-> Maybe [UpdateActionStatus]
-> Maybe Text
-> Maybe TimeRangeFilter
-> Maybe Text
-> Maybe Int
-> Maybe [Text]
-> Maybe Bool
-> Maybe [ServiceUpdateStatus]
-> DescribeUpdateActions
DescribeUpdateActions'
    { $sel:cacheClusterIds:DescribeUpdateActions' :: Maybe [Text]
cacheClusterIds =
        Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:serviceUpdateName:DescribeUpdateActions' :: Maybe Text
serviceUpdateName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:updateActionStatus:DescribeUpdateActions' :: Maybe [UpdateActionStatus]
updateActionStatus = Maybe [UpdateActionStatus]
forall a. Maybe a
Prelude.Nothing,
      $sel:engine:DescribeUpdateActions' :: Maybe Text
engine = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:serviceUpdateTimeRange:DescribeUpdateActions' :: Maybe TimeRangeFilter
serviceUpdateTimeRange = Maybe TimeRangeFilter
forall a. Maybe a
Prelude.Nothing,
      $sel:marker:DescribeUpdateActions' :: Maybe Text
marker = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:maxRecords:DescribeUpdateActions' :: Maybe Int
maxRecords = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:replicationGroupIds:DescribeUpdateActions' :: Maybe [Text]
replicationGroupIds = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:showNodeLevelUpdateStatus:DescribeUpdateActions' :: Maybe Bool
showNodeLevelUpdateStatus = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:serviceUpdateStatus:DescribeUpdateActions' :: Maybe [ServiceUpdateStatus]
serviceUpdateStatus = Maybe [ServiceUpdateStatus]
forall a. Maybe a
Prelude.Nothing
    }

-- | The cache cluster IDs
describeUpdateActions_cacheClusterIds :: Lens.Lens' DescribeUpdateActions (Prelude.Maybe [Prelude.Text])
describeUpdateActions_cacheClusterIds :: (Maybe [Text] -> f (Maybe [Text]))
-> DescribeUpdateActions -> f DescribeUpdateActions
describeUpdateActions_cacheClusterIds = (DescribeUpdateActions -> Maybe [Text])
-> (DescribeUpdateActions -> Maybe [Text] -> DescribeUpdateActions)
-> Lens
     DescribeUpdateActions
     DescribeUpdateActions
     (Maybe [Text])
     (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeUpdateActions' {Maybe [Text]
cacheClusterIds :: Maybe [Text]
$sel:cacheClusterIds:DescribeUpdateActions' :: DescribeUpdateActions -> Maybe [Text]
cacheClusterIds} -> Maybe [Text]
cacheClusterIds) (\s :: DescribeUpdateActions
s@DescribeUpdateActions' {} Maybe [Text]
a -> DescribeUpdateActions
s {$sel:cacheClusterIds:DescribeUpdateActions' :: Maybe [Text]
cacheClusterIds = Maybe [Text]
a} :: DescribeUpdateActions) ((Maybe [Text] -> f (Maybe [Text]))
 -> DescribeUpdateActions -> f DescribeUpdateActions)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> DescribeUpdateActions
-> f DescribeUpdateActions
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Text] [Text] [Text] [Text]
-> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text])
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 [Text] [Text] [Text] [Text]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The unique ID of the service update
describeUpdateActions_serviceUpdateName :: Lens.Lens' DescribeUpdateActions (Prelude.Maybe Prelude.Text)
describeUpdateActions_serviceUpdateName :: (Maybe Text -> f (Maybe Text))
-> DescribeUpdateActions -> f DescribeUpdateActions
describeUpdateActions_serviceUpdateName = (DescribeUpdateActions -> Maybe Text)
-> (DescribeUpdateActions -> Maybe Text -> DescribeUpdateActions)
-> Lens
     DescribeUpdateActions
     DescribeUpdateActions
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeUpdateActions' {Maybe Text
serviceUpdateName :: Maybe Text
$sel:serviceUpdateName:DescribeUpdateActions' :: DescribeUpdateActions -> Maybe Text
serviceUpdateName} -> Maybe Text
serviceUpdateName) (\s :: DescribeUpdateActions
s@DescribeUpdateActions' {} Maybe Text
a -> DescribeUpdateActions
s {$sel:serviceUpdateName:DescribeUpdateActions' :: Maybe Text
serviceUpdateName = Maybe Text
a} :: DescribeUpdateActions)

-- | The status of the update action.
describeUpdateActions_updateActionStatus :: Lens.Lens' DescribeUpdateActions (Prelude.Maybe [UpdateActionStatus])
describeUpdateActions_updateActionStatus :: (Maybe [UpdateActionStatus] -> f (Maybe [UpdateActionStatus]))
-> DescribeUpdateActions -> f DescribeUpdateActions
describeUpdateActions_updateActionStatus = (DescribeUpdateActions -> Maybe [UpdateActionStatus])
-> (DescribeUpdateActions
    -> Maybe [UpdateActionStatus] -> DescribeUpdateActions)
-> Lens
     DescribeUpdateActions
     DescribeUpdateActions
     (Maybe [UpdateActionStatus])
     (Maybe [UpdateActionStatus])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeUpdateActions' {Maybe [UpdateActionStatus]
updateActionStatus :: Maybe [UpdateActionStatus]
$sel:updateActionStatus:DescribeUpdateActions' :: DescribeUpdateActions -> Maybe [UpdateActionStatus]
updateActionStatus} -> Maybe [UpdateActionStatus]
updateActionStatus) (\s :: DescribeUpdateActions
s@DescribeUpdateActions' {} Maybe [UpdateActionStatus]
a -> DescribeUpdateActions
s {$sel:updateActionStatus:DescribeUpdateActions' :: Maybe [UpdateActionStatus]
updateActionStatus = Maybe [UpdateActionStatus]
a} :: DescribeUpdateActions) ((Maybe [UpdateActionStatus] -> f (Maybe [UpdateActionStatus]))
 -> DescribeUpdateActions -> f DescribeUpdateActions)
-> ((Maybe [UpdateActionStatus] -> f (Maybe [UpdateActionStatus]))
    -> Maybe [UpdateActionStatus] -> f (Maybe [UpdateActionStatus]))
-> (Maybe [UpdateActionStatus] -> f (Maybe [UpdateActionStatus]))
-> DescribeUpdateActions
-> f DescribeUpdateActions
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [UpdateActionStatus]
  [UpdateActionStatus]
  [UpdateActionStatus]
  [UpdateActionStatus]
-> Iso
     (Maybe [UpdateActionStatus])
     (Maybe [UpdateActionStatus])
     (Maybe [UpdateActionStatus])
     (Maybe [UpdateActionStatus])
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
  [UpdateActionStatus]
  [UpdateActionStatus]
  [UpdateActionStatus]
  [UpdateActionStatus]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The Elasticache engine to which the update applies. Either Redis or
-- Memcached
describeUpdateActions_engine :: Lens.Lens' DescribeUpdateActions (Prelude.Maybe Prelude.Text)
describeUpdateActions_engine :: (Maybe Text -> f (Maybe Text))
-> DescribeUpdateActions -> f DescribeUpdateActions
describeUpdateActions_engine = (DescribeUpdateActions -> Maybe Text)
-> (DescribeUpdateActions -> Maybe Text -> DescribeUpdateActions)
-> Lens
     DescribeUpdateActions
     DescribeUpdateActions
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeUpdateActions' {Maybe Text
engine :: Maybe Text
$sel:engine:DescribeUpdateActions' :: DescribeUpdateActions -> Maybe Text
engine} -> Maybe Text
engine) (\s :: DescribeUpdateActions
s@DescribeUpdateActions' {} Maybe Text
a -> DescribeUpdateActions
s {$sel:engine:DescribeUpdateActions' :: Maybe Text
engine = Maybe Text
a} :: DescribeUpdateActions)

-- | The range of time specified to search for service updates that are in
-- available status
describeUpdateActions_serviceUpdateTimeRange :: Lens.Lens' DescribeUpdateActions (Prelude.Maybe TimeRangeFilter)
describeUpdateActions_serviceUpdateTimeRange :: (Maybe TimeRangeFilter -> f (Maybe TimeRangeFilter))
-> DescribeUpdateActions -> f DescribeUpdateActions
describeUpdateActions_serviceUpdateTimeRange = (DescribeUpdateActions -> Maybe TimeRangeFilter)
-> (DescribeUpdateActions
    -> Maybe TimeRangeFilter -> DescribeUpdateActions)
-> Lens
     DescribeUpdateActions
     DescribeUpdateActions
     (Maybe TimeRangeFilter)
     (Maybe TimeRangeFilter)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeUpdateActions' {Maybe TimeRangeFilter
serviceUpdateTimeRange :: Maybe TimeRangeFilter
$sel:serviceUpdateTimeRange:DescribeUpdateActions' :: DescribeUpdateActions -> Maybe TimeRangeFilter
serviceUpdateTimeRange} -> Maybe TimeRangeFilter
serviceUpdateTimeRange) (\s :: DescribeUpdateActions
s@DescribeUpdateActions' {} Maybe TimeRangeFilter
a -> DescribeUpdateActions
s {$sel:serviceUpdateTimeRange:DescribeUpdateActions' :: Maybe TimeRangeFilter
serviceUpdateTimeRange = Maybe TimeRangeFilter
a} :: DescribeUpdateActions)

-- | An optional marker returned from a prior request. Use this marker for
-- pagination of results from this operation. If this parameter is
-- specified, the response includes only records beyond the marker, up to
-- the value specified by @MaxRecords@.
describeUpdateActions_marker :: Lens.Lens' DescribeUpdateActions (Prelude.Maybe Prelude.Text)
describeUpdateActions_marker :: (Maybe Text -> f (Maybe Text))
-> DescribeUpdateActions -> f DescribeUpdateActions
describeUpdateActions_marker = (DescribeUpdateActions -> Maybe Text)
-> (DescribeUpdateActions -> Maybe Text -> DescribeUpdateActions)
-> Lens
     DescribeUpdateActions
     DescribeUpdateActions
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeUpdateActions' {Maybe Text
marker :: Maybe Text
$sel:marker:DescribeUpdateActions' :: DescribeUpdateActions -> Maybe Text
marker} -> Maybe Text
marker) (\s :: DescribeUpdateActions
s@DescribeUpdateActions' {} Maybe Text
a -> DescribeUpdateActions
s {$sel:marker:DescribeUpdateActions' :: Maybe Text
marker = Maybe Text
a} :: DescribeUpdateActions)

-- | The maximum number of records to include in the response
describeUpdateActions_maxRecords :: Lens.Lens' DescribeUpdateActions (Prelude.Maybe Prelude.Int)
describeUpdateActions_maxRecords :: (Maybe Int -> f (Maybe Int))
-> DescribeUpdateActions -> f DescribeUpdateActions
describeUpdateActions_maxRecords = (DescribeUpdateActions -> Maybe Int)
-> (DescribeUpdateActions -> Maybe Int -> DescribeUpdateActions)
-> Lens
     DescribeUpdateActions DescribeUpdateActions (Maybe Int) (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeUpdateActions' {Maybe Int
maxRecords :: Maybe Int
$sel:maxRecords:DescribeUpdateActions' :: DescribeUpdateActions -> Maybe Int
maxRecords} -> Maybe Int
maxRecords) (\s :: DescribeUpdateActions
s@DescribeUpdateActions' {} Maybe Int
a -> DescribeUpdateActions
s {$sel:maxRecords:DescribeUpdateActions' :: Maybe Int
maxRecords = Maybe Int
a} :: DescribeUpdateActions)

-- | The replication group IDs
describeUpdateActions_replicationGroupIds :: Lens.Lens' DescribeUpdateActions (Prelude.Maybe [Prelude.Text])
describeUpdateActions_replicationGroupIds :: (Maybe [Text] -> f (Maybe [Text]))
-> DescribeUpdateActions -> f DescribeUpdateActions
describeUpdateActions_replicationGroupIds = (DescribeUpdateActions -> Maybe [Text])
-> (DescribeUpdateActions -> Maybe [Text] -> DescribeUpdateActions)
-> Lens
     DescribeUpdateActions
     DescribeUpdateActions
     (Maybe [Text])
     (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeUpdateActions' {Maybe [Text]
replicationGroupIds :: Maybe [Text]
$sel:replicationGroupIds:DescribeUpdateActions' :: DescribeUpdateActions -> Maybe [Text]
replicationGroupIds} -> Maybe [Text]
replicationGroupIds) (\s :: DescribeUpdateActions
s@DescribeUpdateActions' {} Maybe [Text]
a -> DescribeUpdateActions
s {$sel:replicationGroupIds:DescribeUpdateActions' :: Maybe [Text]
replicationGroupIds = Maybe [Text]
a} :: DescribeUpdateActions) ((Maybe [Text] -> f (Maybe [Text]))
 -> DescribeUpdateActions -> f DescribeUpdateActions)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> DescribeUpdateActions
-> f DescribeUpdateActions
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Text] [Text] [Text] [Text]
-> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text])
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 [Text] [Text] [Text] [Text]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Dictates whether to include node level update status in the response
describeUpdateActions_showNodeLevelUpdateStatus :: Lens.Lens' DescribeUpdateActions (Prelude.Maybe Prelude.Bool)
describeUpdateActions_showNodeLevelUpdateStatus :: (Maybe Bool -> f (Maybe Bool))
-> DescribeUpdateActions -> f DescribeUpdateActions
describeUpdateActions_showNodeLevelUpdateStatus = (DescribeUpdateActions -> Maybe Bool)
-> (DescribeUpdateActions -> Maybe Bool -> DescribeUpdateActions)
-> Lens
     DescribeUpdateActions
     DescribeUpdateActions
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeUpdateActions' {Maybe Bool
showNodeLevelUpdateStatus :: Maybe Bool
$sel:showNodeLevelUpdateStatus:DescribeUpdateActions' :: DescribeUpdateActions -> Maybe Bool
showNodeLevelUpdateStatus} -> Maybe Bool
showNodeLevelUpdateStatus) (\s :: DescribeUpdateActions
s@DescribeUpdateActions' {} Maybe Bool
a -> DescribeUpdateActions
s {$sel:showNodeLevelUpdateStatus:DescribeUpdateActions' :: Maybe Bool
showNodeLevelUpdateStatus = Maybe Bool
a} :: DescribeUpdateActions)

-- | The status of the service update
describeUpdateActions_serviceUpdateStatus :: Lens.Lens' DescribeUpdateActions (Prelude.Maybe [ServiceUpdateStatus])
describeUpdateActions_serviceUpdateStatus :: (Maybe [ServiceUpdateStatus] -> f (Maybe [ServiceUpdateStatus]))
-> DescribeUpdateActions -> f DescribeUpdateActions
describeUpdateActions_serviceUpdateStatus = (DescribeUpdateActions -> Maybe [ServiceUpdateStatus])
-> (DescribeUpdateActions
    -> Maybe [ServiceUpdateStatus] -> DescribeUpdateActions)
-> Lens
     DescribeUpdateActions
     DescribeUpdateActions
     (Maybe [ServiceUpdateStatus])
     (Maybe [ServiceUpdateStatus])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeUpdateActions' {Maybe [ServiceUpdateStatus]
serviceUpdateStatus :: Maybe [ServiceUpdateStatus]
$sel:serviceUpdateStatus:DescribeUpdateActions' :: DescribeUpdateActions -> Maybe [ServiceUpdateStatus]
serviceUpdateStatus} -> Maybe [ServiceUpdateStatus]
serviceUpdateStatus) (\s :: DescribeUpdateActions
s@DescribeUpdateActions' {} Maybe [ServiceUpdateStatus]
a -> DescribeUpdateActions
s {$sel:serviceUpdateStatus:DescribeUpdateActions' :: Maybe [ServiceUpdateStatus]
serviceUpdateStatus = Maybe [ServiceUpdateStatus]
a} :: DescribeUpdateActions) ((Maybe [ServiceUpdateStatus] -> f (Maybe [ServiceUpdateStatus]))
 -> DescribeUpdateActions -> f DescribeUpdateActions)
-> ((Maybe [ServiceUpdateStatus]
     -> f (Maybe [ServiceUpdateStatus]))
    -> Maybe [ServiceUpdateStatus] -> f (Maybe [ServiceUpdateStatus]))
-> (Maybe [ServiceUpdateStatus] -> f (Maybe [ServiceUpdateStatus]))
-> DescribeUpdateActions
-> f DescribeUpdateActions
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [ServiceUpdateStatus]
  [ServiceUpdateStatus]
  [ServiceUpdateStatus]
  [ServiceUpdateStatus]
-> Iso
     (Maybe [ServiceUpdateStatus])
     (Maybe [ServiceUpdateStatus])
     (Maybe [ServiceUpdateStatus])
     (Maybe [ServiceUpdateStatus])
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
  [ServiceUpdateStatus]
  [ServiceUpdateStatus]
  [ServiceUpdateStatus]
  [ServiceUpdateStatus]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance Core.AWSPager DescribeUpdateActions where
  page :: DescribeUpdateActions
-> AWSResponse DescribeUpdateActions -> Maybe DescribeUpdateActions
page DescribeUpdateActions
rq AWSResponse DescribeUpdateActions
rs
    | Maybe Text -> Bool
forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeUpdateActions
DescribeUpdateActionsResponse
rs
            DescribeUpdateActionsResponse
-> Getting (First Text) DescribeUpdateActionsResponse Text
-> Maybe Text
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? (Maybe Text -> Const (First Text) (Maybe Text))
-> DescribeUpdateActionsResponse
-> Const (First Text) DescribeUpdateActionsResponse
Lens' DescribeUpdateActionsResponse (Maybe Text)
describeUpdateActionsResponse_marker
              ((Maybe Text -> Const (First Text) (Maybe Text))
 -> DescribeUpdateActionsResponse
 -> Const (First Text) DescribeUpdateActionsResponse)
-> ((Text -> Const (First Text) Text)
    -> Maybe Text -> Const (First Text) (Maybe Text))
-> Getting (First Text) DescribeUpdateActionsResponse Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. (Text -> Const (First Text) Text)
-> Maybe Text -> Const (First Text) (Maybe Text)
forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
      Maybe DescribeUpdateActions
forall a. Maybe a
Prelude.Nothing
    | Maybe [UpdateAction] -> Bool
forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeUpdateActions
DescribeUpdateActionsResponse
rs
            DescribeUpdateActionsResponse
-> Getting
     (First [UpdateAction]) DescribeUpdateActionsResponse [UpdateAction]
-> Maybe [UpdateAction]
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? (Maybe [UpdateAction]
 -> Const (First [UpdateAction]) (Maybe [UpdateAction]))
-> DescribeUpdateActionsResponse
-> Const (First [UpdateAction]) DescribeUpdateActionsResponse
Lens' DescribeUpdateActionsResponse (Maybe [UpdateAction])
describeUpdateActionsResponse_updateActions
              ((Maybe [UpdateAction]
  -> Const (First [UpdateAction]) (Maybe [UpdateAction]))
 -> DescribeUpdateActionsResponse
 -> Const (First [UpdateAction]) DescribeUpdateActionsResponse)
-> (([UpdateAction] -> Const (First [UpdateAction]) [UpdateAction])
    -> Maybe [UpdateAction]
    -> Const (First [UpdateAction]) (Maybe [UpdateAction]))
-> Getting
     (First [UpdateAction]) DescribeUpdateActionsResponse [UpdateAction]
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. ([UpdateAction] -> Const (First [UpdateAction]) [UpdateAction])
-> Maybe [UpdateAction]
-> Const (First [UpdateAction]) (Maybe [UpdateAction])
forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
      Maybe DescribeUpdateActions
forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
      DescribeUpdateActions -> Maybe DescribeUpdateActions
forall a. a -> Maybe a
Prelude.Just (DescribeUpdateActions -> Maybe DescribeUpdateActions)
-> DescribeUpdateActions -> Maybe DescribeUpdateActions
forall a b. (a -> b) -> a -> b
Prelude.$
        DescribeUpdateActions
rq
          DescribeUpdateActions
-> (DescribeUpdateActions -> DescribeUpdateActions)
-> DescribeUpdateActions
forall a b. a -> (a -> b) -> b
Prelude.& (Maybe Text -> Identity (Maybe Text))
-> DescribeUpdateActions -> Identity DescribeUpdateActions
Lens
  DescribeUpdateActions
  DescribeUpdateActions
  (Maybe Text)
  (Maybe Text)
describeUpdateActions_marker
          ((Maybe Text -> Identity (Maybe Text))
 -> DescribeUpdateActions -> Identity DescribeUpdateActions)
-> Maybe Text -> DescribeUpdateActions -> DescribeUpdateActions
forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse DescribeUpdateActions
DescribeUpdateActionsResponse
rs
          DescribeUpdateActionsResponse
-> Getting (First Text) DescribeUpdateActionsResponse Text
-> Maybe Text
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? (Maybe Text -> Const (First Text) (Maybe Text))
-> DescribeUpdateActionsResponse
-> Const (First Text) DescribeUpdateActionsResponse
Lens' DescribeUpdateActionsResponse (Maybe Text)
describeUpdateActionsResponse_marker
            ((Maybe Text -> Const (First Text) (Maybe Text))
 -> DescribeUpdateActionsResponse
 -> Const (First Text) DescribeUpdateActionsResponse)
-> ((Text -> Const (First Text) Text)
    -> Maybe Text -> Const (First Text) (Maybe Text))
-> Getting (First Text) DescribeUpdateActionsResponse Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. (Text -> Const (First Text) Text)
-> Maybe Text -> Const (First Text) (Maybe Text)
forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just

instance Core.AWSRequest DescribeUpdateActions where
  type
    AWSResponse DescribeUpdateActions =
      DescribeUpdateActionsResponse
  request :: DescribeUpdateActions -> Request DescribeUpdateActions
request = Service -> DescribeUpdateActions -> Request DescribeUpdateActions
forall a. ToRequest a => Service -> a -> Request a
Request.postQuery Service
defaultService
  response :: Logger
-> Service
-> Proxy DescribeUpdateActions
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeUpdateActions)))
response =
    Text
-> (Int
    -> ResponseHeaders
    -> [Node]
    -> Either String (AWSResponse DescribeUpdateActions))
-> Logger
-> Service
-> Proxy DescribeUpdateActions
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeUpdateActions)))
forall (m :: * -> *) a.
MonadResource m =>
Text
-> (Int
    -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXMLWrapper
      Text
"DescribeUpdateActionsResult"
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe [UpdateAction]
-> Maybe Text -> Int -> DescribeUpdateActionsResponse
DescribeUpdateActionsResponse'
            (Maybe [UpdateAction]
 -> Maybe Text -> Int -> DescribeUpdateActionsResponse)
-> Either String (Maybe [UpdateAction])
-> Either
     String (Maybe Text -> Int -> DescribeUpdateActionsResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ( [Node]
x [Node] -> Text -> Either String (Maybe [Node])
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"UpdateActions" Either String (Maybe [Node]) -> [Node] -> Either String [Node]
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ [Node]
forall a. Monoid a => a
Prelude.mempty
                            Either String [Node]
-> ([Node] -> Either String (Maybe [UpdateAction]))
-> Either String (Maybe [UpdateAction])
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= ([Node] -> Either String [UpdateAction])
-> [Node] -> Either String (Maybe [UpdateAction])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (Text -> [Node] -> Either String [UpdateAction]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Core.parseXMLList Text
"UpdateAction")
                        )
            Either String (Maybe Text -> Int -> DescribeUpdateActionsResponse)
-> Either String (Maybe Text)
-> Either String (Int -> DescribeUpdateActionsResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"Marker")
            Either String (Int -> DescribeUpdateActionsResponse)
-> Either String Int -> Either String DescribeUpdateActionsResponse
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 DescribeUpdateActions

instance Prelude.NFData DescribeUpdateActions

instance Core.ToHeaders DescribeUpdateActions where
  toHeaders :: DescribeUpdateActions -> ResponseHeaders
toHeaders = ResponseHeaders -> DescribeUpdateActions -> ResponseHeaders
forall a b. a -> b -> a
Prelude.const ResponseHeaders
forall a. Monoid a => a
Prelude.mempty

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

instance Core.ToQuery DescribeUpdateActions where
  toQuery :: DescribeUpdateActions -> QueryString
toQuery DescribeUpdateActions' {Maybe Bool
Maybe Int
Maybe [Text]
Maybe [ServiceUpdateStatus]
Maybe [UpdateActionStatus]
Maybe Text
Maybe TimeRangeFilter
serviceUpdateStatus :: Maybe [ServiceUpdateStatus]
showNodeLevelUpdateStatus :: Maybe Bool
replicationGroupIds :: Maybe [Text]
maxRecords :: Maybe Int
marker :: Maybe Text
serviceUpdateTimeRange :: Maybe TimeRangeFilter
engine :: Maybe Text
updateActionStatus :: Maybe [UpdateActionStatus]
serviceUpdateName :: Maybe Text
cacheClusterIds :: Maybe [Text]
$sel:serviceUpdateStatus:DescribeUpdateActions' :: DescribeUpdateActions -> Maybe [ServiceUpdateStatus]
$sel:showNodeLevelUpdateStatus:DescribeUpdateActions' :: DescribeUpdateActions -> Maybe Bool
$sel:replicationGroupIds:DescribeUpdateActions' :: DescribeUpdateActions -> Maybe [Text]
$sel:maxRecords:DescribeUpdateActions' :: DescribeUpdateActions -> Maybe Int
$sel:marker:DescribeUpdateActions' :: DescribeUpdateActions -> Maybe Text
$sel:serviceUpdateTimeRange:DescribeUpdateActions' :: DescribeUpdateActions -> Maybe TimeRangeFilter
$sel:engine:DescribeUpdateActions' :: DescribeUpdateActions -> Maybe Text
$sel:updateActionStatus:DescribeUpdateActions' :: DescribeUpdateActions -> Maybe [UpdateActionStatus]
$sel:serviceUpdateName:DescribeUpdateActions' :: DescribeUpdateActions -> Maybe Text
$sel:cacheClusterIds:DescribeUpdateActions' :: DescribeUpdateActions -> Maybe [Text]
..} =
    [QueryString] -> QueryString
forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          ByteString -> ByteString -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: (ByteString
"DescribeUpdateActions" :: Prelude.ByteString),
        ByteString
"Version"
          ByteString -> ByteString -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: (ByteString
"2015-02-02" :: Prelude.ByteString),
        ByteString
"CacheClusterIds"
          ByteString -> QueryString -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: Maybe QueryString -> QueryString
forall a. ToQuery a => a -> QueryString
Core.toQuery
            ( ByteString -> [Text] -> QueryString
forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Core.toQueryList ByteString
"member"
                ([Text] -> QueryString) -> Maybe [Text] -> Maybe QueryString
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
cacheClusterIds
            ),
        ByteString
"ServiceUpdateName" ByteString -> Maybe Text -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: Maybe Text
serviceUpdateName,
        ByteString
"UpdateActionStatus"
          ByteString -> QueryString -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: Maybe QueryString -> QueryString
forall a. ToQuery a => a -> QueryString
Core.toQuery
            ( ByteString -> [UpdateActionStatus] -> QueryString
forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Core.toQueryList ByteString
"member"
                ([UpdateActionStatus] -> QueryString)
-> Maybe [UpdateActionStatus] -> Maybe QueryString
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [UpdateActionStatus]
updateActionStatus
            ),
        ByteString
"Engine" ByteString -> Maybe Text -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: Maybe Text
engine,
        ByteString
"ServiceUpdateTimeRange"
          ByteString -> Maybe TimeRangeFilter -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: Maybe TimeRangeFilter
serviceUpdateTimeRange,
        ByteString
"Marker" ByteString -> Maybe Text -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: Maybe Text
marker,
        ByteString
"MaxRecords" ByteString -> Maybe Int -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: Maybe Int
maxRecords,
        ByteString
"ReplicationGroupIds"
          ByteString -> QueryString -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: Maybe QueryString -> QueryString
forall a. ToQuery a => a -> QueryString
Core.toQuery
            ( ByteString -> [Text] -> QueryString
forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Core.toQueryList ByteString
"member"
                ([Text] -> QueryString) -> Maybe [Text] -> Maybe QueryString
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
replicationGroupIds
            ),
        ByteString
"ShowNodeLevelUpdateStatus"
          ByteString -> Maybe Bool -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: Maybe Bool
showNodeLevelUpdateStatus,
        ByteString
"ServiceUpdateStatus"
          ByteString -> QueryString -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: Maybe QueryString -> QueryString
forall a. ToQuery a => a -> QueryString
Core.toQuery
            ( ByteString -> [ServiceUpdateStatus] -> QueryString
forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Core.toQueryList ByteString
"member"
                ([ServiceUpdateStatus] -> QueryString)
-> Maybe [ServiceUpdateStatus] -> Maybe QueryString
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [ServiceUpdateStatus]
serviceUpdateStatus
            )
      ]

-- | /See:/ 'newDescribeUpdateActionsResponse' smart constructor.
data DescribeUpdateActionsResponse = DescribeUpdateActionsResponse'
  { -- | Returns a list of update actions
    DescribeUpdateActionsResponse -> Maybe [UpdateAction]
updateActions :: Prelude.Maybe [UpdateAction],
    -- | An optional marker returned from a prior request. Use this marker for
    -- pagination of results from this operation. If this parameter is
    -- specified, the response includes only records beyond the marker, up to
    -- the value specified by @MaxRecords@.
    DescribeUpdateActionsResponse -> Maybe Text
marker :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeUpdateActionsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeUpdateActionsResponse
-> DescribeUpdateActionsResponse -> Bool
(DescribeUpdateActionsResponse
 -> DescribeUpdateActionsResponse -> Bool)
-> (DescribeUpdateActionsResponse
    -> DescribeUpdateActionsResponse -> Bool)
-> Eq DescribeUpdateActionsResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeUpdateActionsResponse
-> DescribeUpdateActionsResponse -> Bool
$c/= :: DescribeUpdateActionsResponse
-> DescribeUpdateActionsResponse -> Bool
== :: DescribeUpdateActionsResponse
-> DescribeUpdateActionsResponse -> Bool
$c== :: DescribeUpdateActionsResponse
-> DescribeUpdateActionsResponse -> Bool
Prelude.Eq, ReadPrec [DescribeUpdateActionsResponse]
ReadPrec DescribeUpdateActionsResponse
Int -> ReadS DescribeUpdateActionsResponse
ReadS [DescribeUpdateActionsResponse]
(Int -> ReadS DescribeUpdateActionsResponse)
-> ReadS [DescribeUpdateActionsResponse]
-> ReadPrec DescribeUpdateActionsResponse
-> ReadPrec [DescribeUpdateActionsResponse]
-> Read DescribeUpdateActionsResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeUpdateActionsResponse]
$creadListPrec :: ReadPrec [DescribeUpdateActionsResponse]
readPrec :: ReadPrec DescribeUpdateActionsResponse
$creadPrec :: ReadPrec DescribeUpdateActionsResponse
readList :: ReadS [DescribeUpdateActionsResponse]
$creadList :: ReadS [DescribeUpdateActionsResponse]
readsPrec :: Int -> ReadS DescribeUpdateActionsResponse
$creadsPrec :: Int -> ReadS DescribeUpdateActionsResponse
Prelude.Read, Int -> DescribeUpdateActionsResponse -> ShowS
[DescribeUpdateActionsResponse] -> ShowS
DescribeUpdateActionsResponse -> String
(Int -> DescribeUpdateActionsResponse -> ShowS)
-> (DescribeUpdateActionsResponse -> String)
-> ([DescribeUpdateActionsResponse] -> ShowS)
-> Show DescribeUpdateActionsResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeUpdateActionsResponse] -> ShowS
$cshowList :: [DescribeUpdateActionsResponse] -> ShowS
show :: DescribeUpdateActionsResponse -> String
$cshow :: DescribeUpdateActionsResponse -> String
showsPrec :: Int -> DescribeUpdateActionsResponse -> ShowS
$cshowsPrec :: Int -> DescribeUpdateActionsResponse -> ShowS
Prelude.Show, (forall x.
 DescribeUpdateActionsResponse
 -> Rep DescribeUpdateActionsResponse x)
-> (forall x.
    Rep DescribeUpdateActionsResponse x
    -> DescribeUpdateActionsResponse)
-> Generic DescribeUpdateActionsResponse
forall x.
Rep DescribeUpdateActionsResponse x
-> DescribeUpdateActionsResponse
forall x.
DescribeUpdateActionsResponse
-> Rep DescribeUpdateActionsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeUpdateActionsResponse x
-> DescribeUpdateActionsResponse
$cfrom :: forall x.
DescribeUpdateActionsResponse
-> Rep DescribeUpdateActionsResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeUpdateActionsResponse' 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:
--
-- 'updateActions', 'describeUpdateActionsResponse_updateActions' - Returns a list of update actions
--
-- 'marker', 'describeUpdateActionsResponse_marker' - An optional marker returned from a prior request. Use this marker for
-- pagination of results from this operation. If this parameter is
-- specified, the response includes only records beyond the marker, up to
-- the value specified by @MaxRecords@.
--
-- 'httpStatus', 'describeUpdateActionsResponse_httpStatus' - The response's http status code.
newDescribeUpdateActionsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeUpdateActionsResponse
newDescribeUpdateActionsResponse :: Int -> DescribeUpdateActionsResponse
newDescribeUpdateActionsResponse Int
pHttpStatus_ =
  DescribeUpdateActionsResponse' :: Maybe [UpdateAction]
-> Maybe Text -> Int -> DescribeUpdateActionsResponse
DescribeUpdateActionsResponse'
    { $sel:updateActions:DescribeUpdateActionsResponse' :: Maybe [UpdateAction]
updateActions =
        Maybe [UpdateAction]
forall a. Maybe a
Prelude.Nothing,
      $sel:marker:DescribeUpdateActionsResponse' :: Maybe Text
marker = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeUpdateActionsResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Returns a list of update actions
describeUpdateActionsResponse_updateActions :: Lens.Lens' DescribeUpdateActionsResponse (Prelude.Maybe [UpdateAction])
describeUpdateActionsResponse_updateActions :: (Maybe [UpdateAction] -> f (Maybe [UpdateAction]))
-> DescribeUpdateActionsResponse -> f DescribeUpdateActionsResponse
describeUpdateActionsResponse_updateActions = (DescribeUpdateActionsResponse -> Maybe [UpdateAction])
-> (DescribeUpdateActionsResponse
    -> Maybe [UpdateAction] -> DescribeUpdateActionsResponse)
-> Lens' DescribeUpdateActionsResponse (Maybe [UpdateAction])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeUpdateActionsResponse' {Maybe [UpdateAction]
updateActions :: Maybe [UpdateAction]
$sel:updateActions:DescribeUpdateActionsResponse' :: DescribeUpdateActionsResponse -> Maybe [UpdateAction]
updateActions} -> Maybe [UpdateAction]
updateActions) (\s :: DescribeUpdateActionsResponse
s@DescribeUpdateActionsResponse' {} Maybe [UpdateAction]
a -> DescribeUpdateActionsResponse
s {$sel:updateActions:DescribeUpdateActionsResponse' :: Maybe [UpdateAction]
updateActions = Maybe [UpdateAction]
a} :: DescribeUpdateActionsResponse) ((Maybe [UpdateAction] -> f (Maybe [UpdateAction]))
 -> DescribeUpdateActionsResponse
 -> f DescribeUpdateActionsResponse)
-> ((Maybe [UpdateAction] -> f (Maybe [UpdateAction]))
    -> Maybe [UpdateAction] -> f (Maybe [UpdateAction]))
-> (Maybe [UpdateAction] -> f (Maybe [UpdateAction]))
-> DescribeUpdateActionsResponse
-> f DescribeUpdateActionsResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [UpdateAction] [UpdateAction] [UpdateAction] [UpdateAction]
-> Iso
     (Maybe [UpdateAction])
     (Maybe [UpdateAction])
     (Maybe [UpdateAction])
     (Maybe [UpdateAction])
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 [UpdateAction] [UpdateAction] [UpdateAction] [UpdateAction]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | An optional marker returned from a prior request. Use this marker for
-- pagination of results from this operation. If this parameter is
-- specified, the response includes only records beyond the marker, up to
-- the value specified by @MaxRecords@.
describeUpdateActionsResponse_marker :: Lens.Lens' DescribeUpdateActionsResponse (Prelude.Maybe Prelude.Text)
describeUpdateActionsResponse_marker :: (Maybe Text -> f (Maybe Text))
-> DescribeUpdateActionsResponse -> f DescribeUpdateActionsResponse
describeUpdateActionsResponse_marker = (DescribeUpdateActionsResponse -> Maybe Text)
-> (DescribeUpdateActionsResponse
    -> Maybe Text -> DescribeUpdateActionsResponse)
-> Lens' DescribeUpdateActionsResponse (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeUpdateActionsResponse' {Maybe Text
marker :: Maybe Text
$sel:marker:DescribeUpdateActionsResponse' :: DescribeUpdateActionsResponse -> Maybe Text
marker} -> Maybe Text
marker) (\s :: DescribeUpdateActionsResponse
s@DescribeUpdateActionsResponse' {} Maybe Text
a -> DescribeUpdateActionsResponse
s {$sel:marker:DescribeUpdateActionsResponse' :: Maybe Text
marker = Maybe Text
a} :: DescribeUpdateActionsResponse)

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

instance Prelude.NFData DescribeUpdateActionsResponse