{-# 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.Config.DescribeConfigurationAggregatorSourcesStatus
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns status information for sources within an aggregator. The status
-- includes information about the last time Config verified authorization
-- between the source account and an aggregator account. In case of a
-- failure, the status contains the related error code or message.
--
-- This operation returns paginated results.
module Amazonka.Config.DescribeConfigurationAggregatorSourcesStatus
  ( -- * Creating a Request
    DescribeConfigurationAggregatorSourcesStatus (..),
    newDescribeConfigurationAggregatorSourcesStatus,

    -- * Request Lenses
    describeConfigurationAggregatorSourcesStatus_limit,
    describeConfigurationAggregatorSourcesStatus_nextToken,
    describeConfigurationAggregatorSourcesStatus_updateStatus,
    describeConfigurationAggregatorSourcesStatus_configurationAggregatorName,

    -- * Destructuring the Response
    DescribeConfigurationAggregatorSourcesStatusResponse (..),
    newDescribeConfigurationAggregatorSourcesStatusResponse,

    -- * Response Lenses
    describeConfigurationAggregatorSourcesStatusResponse_aggregatedSourceStatusList,
    describeConfigurationAggregatorSourcesStatusResponse_nextToken,
    describeConfigurationAggregatorSourcesStatusResponse_httpStatus,
  )
where

import Amazonka.Config.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:/ 'newDescribeConfigurationAggregatorSourcesStatus' smart constructor.
data DescribeConfigurationAggregatorSourcesStatus = DescribeConfigurationAggregatorSourcesStatus'
  { -- | The maximum number of AggregatorSourceStatus returned on each page. The
    -- default is maximum. If you specify 0, Config uses the default.
    DescribeConfigurationAggregatorSourcesStatus -> Maybe Natural
limit :: Prelude.Maybe Prelude.Natural,
    -- | The @nextToken@ string returned on a previous page that you use to get
    -- the next page of results in a paginated response.
    DescribeConfigurationAggregatorSourcesStatus -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | Filters the status type.
    --
    -- -   Valid value FAILED indicates errors while moving data.
    --
    -- -   Valid value SUCCEEDED indicates the data was successfully moved.
    --
    -- -   Valid value OUTDATED indicates the data is not the most recent.
    DescribeConfigurationAggregatorSourcesStatus
-> Maybe (NonEmpty AggregatedSourceStatusType)
updateStatus :: Prelude.Maybe (Prelude.NonEmpty AggregatedSourceStatusType),
    -- | The name of the configuration aggregator.
    DescribeConfigurationAggregatorSourcesStatus -> Text
configurationAggregatorName :: Prelude.Text
  }
  deriving (DescribeConfigurationAggregatorSourcesStatus
-> DescribeConfigurationAggregatorSourcesStatus -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeConfigurationAggregatorSourcesStatus
-> DescribeConfigurationAggregatorSourcesStatus -> Bool
$c/= :: DescribeConfigurationAggregatorSourcesStatus
-> DescribeConfigurationAggregatorSourcesStatus -> Bool
== :: DescribeConfigurationAggregatorSourcesStatus
-> DescribeConfigurationAggregatorSourcesStatus -> Bool
$c== :: DescribeConfigurationAggregatorSourcesStatus
-> DescribeConfigurationAggregatorSourcesStatus -> Bool
Prelude.Eq, ReadPrec [DescribeConfigurationAggregatorSourcesStatus]
ReadPrec DescribeConfigurationAggregatorSourcesStatus
Int -> ReadS DescribeConfigurationAggregatorSourcesStatus
ReadS [DescribeConfigurationAggregatorSourcesStatus]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeConfigurationAggregatorSourcesStatus]
$creadListPrec :: ReadPrec [DescribeConfigurationAggregatorSourcesStatus]
readPrec :: ReadPrec DescribeConfigurationAggregatorSourcesStatus
$creadPrec :: ReadPrec DescribeConfigurationAggregatorSourcesStatus
readList :: ReadS [DescribeConfigurationAggregatorSourcesStatus]
$creadList :: ReadS [DescribeConfigurationAggregatorSourcesStatus]
readsPrec :: Int -> ReadS DescribeConfigurationAggregatorSourcesStatus
$creadsPrec :: Int -> ReadS DescribeConfigurationAggregatorSourcesStatus
Prelude.Read, Int -> DescribeConfigurationAggregatorSourcesStatus -> ShowS
[DescribeConfigurationAggregatorSourcesStatus] -> ShowS
DescribeConfigurationAggregatorSourcesStatus -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeConfigurationAggregatorSourcesStatus] -> ShowS
$cshowList :: [DescribeConfigurationAggregatorSourcesStatus] -> ShowS
show :: DescribeConfigurationAggregatorSourcesStatus -> String
$cshow :: DescribeConfigurationAggregatorSourcesStatus -> String
showsPrec :: Int -> DescribeConfigurationAggregatorSourcesStatus -> ShowS
$cshowsPrec :: Int -> DescribeConfigurationAggregatorSourcesStatus -> ShowS
Prelude.Show, forall x.
Rep DescribeConfigurationAggregatorSourcesStatus x
-> DescribeConfigurationAggregatorSourcesStatus
forall x.
DescribeConfigurationAggregatorSourcesStatus
-> Rep DescribeConfigurationAggregatorSourcesStatus x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeConfigurationAggregatorSourcesStatus x
-> DescribeConfigurationAggregatorSourcesStatus
$cfrom :: forall x.
DescribeConfigurationAggregatorSourcesStatus
-> Rep DescribeConfigurationAggregatorSourcesStatus x
Prelude.Generic)

-- |
-- Create a value of 'DescribeConfigurationAggregatorSourcesStatus' 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:
--
-- 'limit', 'describeConfigurationAggregatorSourcesStatus_limit' - The maximum number of AggregatorSourceStatus returned on each page. The
-- default is maximum. If you specify 0, Config uses the default.
--
-- 'nextToken', 'describeConfigurationAggregatorSourcesStatus_nextToken' - The @nextToken@ string returned on a previous page that you use to get
-- the next page of results in a paginated response.
--
-- 'updateStatus', 'describeConfigurationAggregatorSourcesStatus_updateStatus' - Filters the status type.
--
-- -   Valid value FAILED indicates errors while moving data.
--
-- -   Valid value SUCCEEDED indicates the data was successfully moved.
--
-- -   Valid value OUTDATED indicates the data is not the most recent.
--
-- 'configurationAggregatorName', 'describeConfigurationAggregatorSourcesStatus_configurationAggregatorName' - The name of the configuration aggregator.
newDescribeConfigurationAggregatorSourcesStatus ::
  -- | 'configurationAggregatorName'
  Prelude.Text ->
  DescribeConfigurationAggregatorSourcesStatus
newDescribeConfigurationAggregatorSourcesStatus :: Text -> DescribeConfigurationAggregatorSourcesStatus
newDescribeConfigurationAggregatorSourcesStatus
  Text
pConfigurationAggregatorName_ =
    DescribeConfigurationAggregatorSourcesStatus'
      { $sel:limit:DescribeConfigurationAggregatorSourcesStatus' :: Maybe Natural
limit =
          forall a. Maybe a
Prelude.Nothing,
        $sel:nextToken:DescribeConfigurationAggregatorSourcesStatus' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
        $sel:updateStatus:DescribeConfigurationAggregatorSourcesStatus' :: Maybe (NonEmpty AggregatedSourceStatusType)
updateStatus =
          forall a. Maybe a
Prelude.Nothing,
        $sel:configurationAggregatorName:DescribeConfigurationAggregatorSourcesStatus' :: Text
configurationAggregatorName =
          Text
pConfigurationAggregatorName_
      }

-- | The maximum number of AggregatorSourceStatus returned on each page. The
-- default is maximum. If you specify 0, Config uses the default.
describeConfigurationAggregatorSourcesStatus_limit :: Lens.Lens' DescribeConfigurationAggregatorSourcesStatus (Prelude.Maybe Prelude.Natural)
describeConfigurationAggregatorSourcesStatus_limit :: Lens' DescribeConfigurationAggregatorSourcesStatus (Maybe Natural)
describeConfigurationAggregatorSourcesStatus_limit = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeConfigurationAggregatorSourcesStatus' {Maybe Natural
limit :: Maybe Natural
$sel:limit:DescribeConfigurationAggregatorSourcesStatus' :: DescribeConfigurationAggregatorSourcesStatus -> Maybe Natural
limit} -> Maybe Natural
limit) (\s :: DescribeConfigurationAggregatorSourcesStatus
s@DescribeConfigurationAggregatorSourcesStatus' {} Maybe Natural
a -> DescribeConfigurationAggregatorSourcesStatus
s {$sel:limit:DescribeConfigurationAggregatorSourcesStatus' :: Maybe Natural
limit = Maybe Natural
a} :: DescribeConfigurationAggregatorSourcesStatus)

-- | The @nextToken@ string returned on a previous page that you use to get
-- the next page of results in a paginated response.
describeConfigurationAggregatorSourcesStatus_nextToken :: Lens.Lens' DescribeConfigurationAggregatorSourcesStatus (Prelude.Maybe Prelude.Text)
describeConfigurationAggregatorSourcesStatus_nextToken :: Lens' DescribeConfigurationAggregatorSourcesStatus (Maybe Text)
describeConfigurationAggregatorSourcesStatus_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeConfigurationAggregatorSourcesStatus' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeConfigurationAggregatorSourcesStatus' :: DescribeConfigurationAggregatorSourcesStatus -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeConfigurationAggregatorSourcesStatus
s@DescribeConfigurationAggregatorSourcesStatus' {} Maybe Text
a -> DescribeConfigurationAggregatorSourcesStatus
s {$sel:nextToken:DescribeConfigurationAggregatorSourcesStatus' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeConfigurationAggregatorSourcesStatus)

-- | Filters the status type.
--
-- -   Valid value FAILED indicates errors while moving data.
--
-- -   Valid value SUCCEEDED indicates the data was successfully moved.
--
-- -   Valid value OUTDATED indicates the data is not the most recent.
describeConfigurationAggregatorSourcesStatus_updateStatus :: Lens.Lens' DescribeConfigurationAggregatorSourcesStatus (Prelude.Maybe (Prelude.NonEmpty AggregatedSourceStatusType))
describeConfigurationAggregatorSourcesStatus_updateStatus :: Lens'
  DescribeConfigurationAggregatorSourcesStatus
  (Maybe (NonEmpty AggregatedSourceStatusType))
describeConfigurationAggregatorSourcesStatus_updateStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeConfigurationAggregatorSourcesStatus' {Maybe (NonEmpty AggregatedSourceStatusType)
updateStatus :: Maybe (NonEmpty AggregatedSourceStatusType)
$sel:updateStatus:DescribeConfigurationAggregatorSourcesStatus' :: DescribeConfigurationAggregatorSourcesStatus
-> Maybe (NonEmpty AggregatedSourceStatusType)
updateStatus} -> Maybe (NonEmpty AggregatedSourceStatusType)
updateStatus) (\s :: DescribeConfigurationAggregatorSourcesStatus
s@DescribeConfigurationAggregatorSourcesStatus' {} Maybe (NonEmpty AggregatedSourceStatusType)
a -> DescribeConfigurationAggregatorSourcesStatus
s {$sel:updateStatus:DescribeConfigurationAggregatorSourcesStatus' :: Maybe (NonEmpty AggregatedSourceStatusType)
updateStatus = Maybe (NonEmpty AggregatedSourceStatusType)
a} :: DescribeConfigurationAggregatorSourcesStatus) 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 s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The name of the configuration aggregator.
describeConfigurationAggregatorSourcesStatus_configurationAggregatorName :: Lens.Lens' DescribeConfigurationAggregatorSourcesStatus Prelude.Text
describeConfigurationAggregatorSourcesStatus_configurationAggregatorName :: Lens' DescribeConfigurationAggregatorSourcesStatus Text
describeConfigurationAggregatorSourcesStatus_configurationAggregatorName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeConfigurationAggregatorSourcesStatus' {Text
configurationAggregatorName :: Text
$sel:configurationAggregatorName:DescribeConfigurationAggregatorSourcesStatus' :: DescribeConfigurationAggregatorSourcesStatus -> Text
configurationAggregatorName} -> Text
configurationAggregatorName) (\s :: DescribeConfigurationAggregatorSourcesStatus
s@DescribeConfigurationAggregatorSourcesStatus' {} Text
a -> DescribeConfigurationAggregatorSourcesStatus
s {$sel:configurationAggregatorName:DescribeConfigurationAggregatorSourcesStatus' :: Text
configurationAggregatorName = Text
a} :: DescribeConfigurationAggregatorSourcesStatus)

instance
  Core.AWSPager
    DescribeConfigurationAggregatorSourcesStatus
  where
  page :: DescribeConfigurationAggregatorSourcesStatus
-> AWSResponse DescribeConfigurationAggregatorSourcesStatus
-> Maybe DescribeConfigurationAggregatorSourcesStatus
page DescribeConfigurationAggregatorSourcesStatus
rq AWSResponse DescribeConfigurationAggregatorSourcesStatus
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeConfigurationAggregatorSourcesStatus
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens'
  DescribeConfigurationAggregatorSourcesStatusResponse (Maybe Text)
describeConfigurationAggregatorSourcesStatusResponse_nextToken
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeConfigurationAggregatorSourcesStatus
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens'
  DescribeConfigurationAggregatorSourcesStatusResponse
  (Maybe [AggregatedSourceStatus])
describeConfigurationAggregatorSourcesStatusResponse_aggregatedSourceStatusList
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        forall a. a -> Maybe a
Prelude.Just
          forall a b. (a -> b) -> a -> b
Prelude.$ DescribeConfigurationAggregatorSourcesStatus
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' DescribeConfigurationAggregatorSourcesStatus (Maybe Text)
describeConfigurationAggregatorSourcesStatus_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse DescribeConfigurationAggregatorSourcesStatus
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens'
  DescribeConfigurationAggregatorSourcesStatusResponse (Maybe Text)
describeConfigurationAggregatorSourcesStatusResponse_nextToken
          forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just

instance
  Core.AWSRequest
    DescribeConfigurationAggregatorSourcesStatus
  where
  type
    AWSResponse
      DescribeConfigurationAggregatorSourcesStatus =
      DescribeConfigurationAggregatorSourcesStatusResponse
  request :: (Service -> Service)
-> DescribeConfigurationAggregatorSourcesStatus
-> Request DescribeConfigurationAggregatorSourcesStatus
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 DescribeConfigurationAggregatorSourcesStatus
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse
           (AWSResponse DescribeConfigurationAggregatorSourcesStatus)))
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 [AggregatedSourceStatus]
-> Maybe Text
-> Int
-> DescribeConfigurationAggregatorSourcesStatusResponse
DescribeConfigurationAggregatorSourcesStatusResponse'
            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
"AggregatedSourceStatusList"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                        )
            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
"NextToken")
            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
    DescribeConfigurationAggregatorSourcesStatus
  where
  hashWithSalt :: Int -> DescribeConfigurationAggregatorSourcesStatus -> Int
hashWithSalt
    Int
_salt
    DescribeConfigurationAggregatorSourcesStatus' {Maybe Natural
Maybe (NonEmpty AggregatedSourceStatusType)
Maybe Text
Text
configurationAggregatorName :: Text
updateStatus :: Maybe (NonEmpty AggregatedSourceStatusType)
nextToken :: Maybe Text
limit :: Maybe Natural
$sel:configurationAggregatorName:DescribeConfigurationAggregatorSourcesStatus' :: DescribeConfigurationAggregatorSourcesStatus -> Text
$sel:updateStatus:DescribeConfigurationAggregatorSourcesStatus' :: DescribeConfigurationAggregatorSourcesStatus
-> Maybe (NonEmpty AggregatedSourceStatusType)
$sel:nextToken:DescribeConfigurationAggregatorSourcesStatus' :: DescribeConfigurationAggregatorSourcesStatus -> Maybe Text
$sel:limit:DescribeConfigurationAggregatorSourcesStatus' :: DescribeConfigurationAggregatorSourcesStatus -> Maybe Natural
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
limit
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty AggregatedSourceStatusType)
updateStatus
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
configurationAggregatorName

instance
  Prelude.NFData
    DescribeConfigurationAggregatorSourcesStatus
  where
  rnf :: DescribeConfigurationAggregatorSourcesStatus -> ()
rnf DescribeConfigurationAggregatorSourcesStatus' {Maybe Natural
Maybe (NonEmpty AggregatedSourceStatusType)
Maybe Text
Text
configurationAggregatorName :: Text
updateStatus :: Maybe (NonEmpty AggregatedSourceStatusType)
nextToken :: Maybe Text
limit :: Maybe Natural
$sel:configurationAggregatorName:DescribeConfigurationAggregatorSourcesStatus' :: DescribeConfigurationAggregatorSourcesStatus -> Text
$sel:updateStatus:DescribeConfigurationAggregatorSourcesStatus' :: DescribeConfigurationAggregatorSourcesStatus
-> Maybe (NonEmpty AggregatedSourceStatusType)
$sel:nextToken:DescribeConfigurationAggregatorSourcesStatus' :: DescribeConfigurationAggregatorSourcesStatus -> Maybe Text
$sel:limit:DescribeConfigurationAggregatorSourcesStatus' :: DescribeConfigurationAggregatorSourcesStatus -> Maybe Natural
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
limit
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty AggregatedSourceStatusType)
updateStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
configurationAggregatorName

instance
  Data.ToHeaders
    DescribeConfigurationAggregatorSourcesStatus
  where
  toHeaders :: DescribeConfigurationAggregatorSourcesStatus -> 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
"StarlingDoveService.DescribeConfigurationAggregatorSourcesStatus" ::
                          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
    DescribeConfigurationAggregatorSourcesStatus
  where
  toJSON :: DescribeConfigurationAggregatorSourcesStatus -> Value
toJSON
    DescribeConfigurationAggregatorSourcesStatus' {Maybe Natural
Maybe (NonEmpty AggregatedSourceStatusType)
Maybe Text
Text
configurationAggregatorName :: Text
updateStatus :: Maybe (NonEmpty AggregatedSourceStatusType)
nextToken :: Maybe Text
limit :: Maybe Natural
$sel:configurationAggregatorName:DescribeConfigurationAggregatorSourcesStatus' :: DescribeConfigurationAggregatorSourcesStatus -> Text
$sel:updateStatus:DescribeConfigurationAggregatorSourcesStatus' :: DescribeConfigurationAggregatorSourcesStatus
-> Maybe (NonEmpty AggregatedSourceStatusType)
$sel:nextToken:DescribeConfigurationAggregatorSourcesStatus' :: DescribeConfigurationAggregatorSourcesStatus -> Maybe Text
$sel:limit:DescribeConfigurationAggregatorSourcesStatus' :: DescribeConfigurationAggregatorSourcesStatus -> Maybe Natural
..} =
      [Pair] -> Value
Data.object
        ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
            [ (Key
"Limit" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
limit,
              (Key
"NextToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
nextToken,
              (Key
"UpdateStatus" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (NonEmpty AggregatedSourceStatusType)
updateStatus,
              forall a. a -> Maybe a
Prelude.Just
                ( Key
"ConfigurationAggregatorName"
                    forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
configurationAggregatorName
                )
            ]
        )

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

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

-- | /See:/ 'newDescribeConfigurationAggregatorSourcesStatusResponse' smart constructor.
data DescribeConfigurationAggregatorSourcesStatusResponse = DescribeConfigurationAggregatorSourcesStatusResponse'
  { -- | Returns an AggregatedSourceStatus object.
    DescribeConfigurationAggregatorSourcesStatusResponse
-> Maybe [AggregatedSourceStatus]
aggregatedSourceStatusList :: Prelude.Maybe [AggregatedSourceStatus],
    -- | The @nextToken@ string returned on a previous page that you use to get
    -- the next page of results in a paginated response.
    DescribeConfigurationAggregatorSourcesStatusResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeConfigurationAggregatorSourcesStatusResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeConfigurationAggregatorSourcesStatusResponse
-> DescribeConfigurationAggregatorSourcesStatusResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeConfigurationAggregatorSourcesStatusResponse
-> DescribeConfigurationAggregatorSourcesStatusResponse -> Bool
$c/= :: DescribeConfigurationAggregatorSourcesStatusResponse
-> DescribeConfigurationAggregatorSourcesStatusResponse -> Bool
== :: DescribeConfigurationAggregatorSourcesStatusResponse
-> DescribeConfigurationAggregatorSourcesStatusResponse -> Bool
$c== :: DescribeConfigurationAggregatorSourcesStatusResponse
-> DescribeConfigurationAggregatorSourcesStatusResponse -> Bool
Prelude.Eq, ReadPrec [DescribeConfigurationAggregatorSourcesStatusResponse]
ReadPrec DescribeConfigurationAggregatorSourcesStatusResponse
Int -> ReadS DescribeConfigurationAggregatorSourcesStatusResponse
ReadS [DescribeConfigurationAggregatorSourcesStatusResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeConfigurationAggregatorSourcesStatusResponse]
$creadListPrec :: ReadPrec [DescribeConfigurationAggregatorSourcesStatusResponse]
readPrec :: ReadPrec DescribeConfigurationAggregatorSourcesStatusResponse
$creadPrec :: ReadPrec DescribeConfigurationAggregatorSourcesStatusResponse
readList :: ReadS [DescribeConfigurationAggregatorSourcesStatusResponse]
$creadList :: ReadS [DescribeConfigurationAggregatorSourcesStatusResponse]
readsPrec :: Int -> ReadS DescribeConfigurationAggregatorSourcesStatusResponse
$creadsPrec :: Int -> ReadS DescribeConfigurationAggregatorSourcesStatusResponse
Prelude.Read, Int
-> DescribeConfigurationAggregatorSourcesStatusResponse -> ShowS
[DescribeConfigurationAggregatorSourcesStatusResponse] -> ShowS
DescribeConfigurationAggregatorSourcesStatusResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeConfigurationAggregatorSourcesStatusResponse] -> ShowS
$cshowList :: [DescribeConfigurationAggregatorSourcesStatusResponse] -> ShowS
show :: DescribeConfigurationAggregatorSourcesStatusResponse -> String
$cshow :: DescribeConfigurationAggregatorSourcesStatusResponse -> String
showsPrec :: Int
-> DescribeConfigurationAggregatorSourcesStatusResponse -> ShowS
$cshowsPrec :: Int
-> DescribeConfigurationAggregatorSourcesStatusResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeConfigurationAggregatorSourcesStatusResponse x
-> DescribeConfigurationAggregatorSourcesStatusResponse
forall x.
DescribeConfigurationAggregatorSourcesStatusResponse
-> Rep DescribeConfigurationAggregatorSourcesStatusResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeConfigurationAggregatorSourcesStatusResponse x
-> DescribeConfigurationAggregatorSourcesStatusResponse
$cfrom :: forall x.
DescribeConfigurationAggregatorSourcesStatusResponse
-> Rep DescribeConfigurationAggregatorSourcesStatusResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeConfigurationAggregatorSourcesStatusResponse' 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:
--
-- 'aggregatedSourceStatusList', 'describeConfigurationAggregatorSourcesStatusResponse_aggregatedSourceStatusList' - Returns an AggregatedSourceStatus object.
--
-- 'nextToken', 'describeConfigurationAggregatorSourcesStatusResponse_nextToken' - The @nextToken@ string returned on a previous page that you use to get
-- the next page of results in a paginated response.
--
-- 'httpStatus', 'describeConfigurationAggregatorSourcesStatusResponse_httpStatus' - The response's http status code.
newDescribeConfigurationAggregatorSourcesStatusResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeConfigurationAggregatorSourcesStatusResponse
newDescribeConfigurationAggregatorSourcesStatusResponse :: Int -> DescribeConfigurationAggregatorSourcesStatusResponse
newDescribeConfigurationAggregatorSourcesStatusResponse
  Int
pHttpStatus_ =
    DescribeConfigurationAggregatorSourcesStatusResponse'
      { $sel:aggregatedSourceStatusList:DescribeConfigurationAggregatorSourcesStatusResponse' :: Maybe [AggregatedSourceStatus]
aggregatedSourceStatusList =
          forall a. Maybe a
Prelude.Nothing,
        $sel:nextToken:DescribeConfigurationAggregatorSourcesStatusResponse' :: Maybe Text
nextToken =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribeConfigurationAggregatorSourcesStatusResponse' :: Int
httpStatus =
          Int
pHttpStatus_
      }

-- | Returns an AggregatedSourceStatus object.
describeConfigurationAggregatorSourcesStatusResponse_aggregatedSourceStatusList :: Lens.Lens' DescribeConfigurationAggregatorSourcesStatusResponse (Prelude.Maybe [AggregatedSourceStatus])
describeConfigurationAggregatorSourcesStatusResponse_aggregatedSourceStatusList :: Lens'
  DescribeConfigurationAggregatorSourcesStatusResponse
  (Maybe [AggregatedSourceStatus])
describeConfigurationAggregatorSourcesStatusResponse_aggregatedSourceStatusList = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeConfigurationAggregatorSourcesStatusResponse' {Maybe [AggregatedSourceStatus]
aggregatedSourceStatusList :: Maybe [AggregatedSourceStatus]
$sel:aggregatedSourceStatusList:DescribeConfigurationAggregatorSourcesStatusResponse' :: DescribeConfigurationAggregatorSourcesStatusResponse
-> Maybe [AggregatedSourceStatus]
aggregatedSourceStatusList} -> Maybe [AggregatedSourceStatus]
aggregatedSourceStatusList) (\s :: DescribeConfigurationAggregatorSourcesStatusResponse
s@DescribeConfigurationAggregatorSourcesStatusResponse' {} Maybe [AggregatedSourceStatus]
a -> DescribeConfigurationAggregatorSourcesStatusResponse
s {$sel:aggregatedSourceStatusList:DescribeConfigurationAggregatorSourcesStatusResponse' :: Maybe [AggregatedSourceStatus]
aggregatedSourceStatusList = Maybe [AggregatedSourceStatus]
a} :: DescribeConfigurationAggregatorSourcesStatusResponse) 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 s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The @nextToken@ string returned on a previous page that you use to get
-- the next page of results in a paginated response.
describeConfigurationAggregatorSourcesStatusResponse_nextToken :: Lens.Lens' DescribeConfigurationAggregatorSourcesStatusResponse (Prelude.Maybe Prelude.Text)
describeConfigurationAggregatorSourcesStatusResponse_nextToken :: Lens'
  DescribeConfigurationAggregatorSourcesStatusResponse (Maybe Text)
describeConfigurationAggregatorSourcesStatusResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeConfigurationAggregatorSourcesStatusResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeConfigurationAggregatorSourcesStatusResponse' :: DescribeConfigurationAggregatorSourcesStatusResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeConfigurationAggregatorSourcesStatusResponse
s@DescribeConfigurationAggregatorSourcesStatusResponse' {} Maybe Text
a -> DescribeConfigurationAggregatorSourcesStatusResponse
s {$sel:nextToken:DescribeConfigurationAggregatorSourcesStatusResponse' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeConfigurationAggregatorSourcesStatusResponse)

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

instance
  Prelude.NFData
    DescribeConfigurationAggregatorSourcesStatusResponse
  where
  rnf :: DescribeConfigurationAggregatorSourcesStatusResponse -> ()
rnf
    DescribeConfigurationAggregatorSourcesStatusResponse' {Int
Maybe [AggregatedSourceStatus]
Maybe Text
httpStatus :: Int
nextToken :: Maybe Text
aggregatedSourceStatusList :: Maybe [AggregatedSourceStatus]
$sel:httpStatus:DescribeConfigurationAggregatorSourcesStatusResponse' :: DescribeConfigurationAggregatorSourcesStatusResponse -> Int
$sel:nextToken:DescribeConfigurationAggregatorSourcesStatusResponse' :: DescribeConfigurationAggregatorSourcesStatusResponse -> Maybe Text
$sel:aggregatedSourceStatusList:DescribeConfigurationAggregatorSourcesStatusResponse' :: DescribeConfigurationAggregatorSourcesStatusResponse
-> Maybe [AggregatedSourceStatus]
..} =
      forall a. NFData a => a -> ()
Prelude.rnf Maybe [AggregatedSourceStatus]
aggregatedSourceStatusList
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus