{-# 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.Schemas.ListDiscoverers
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- List the discoverers.
--
-- This operation returns paginated results.
module Amazonka.Schemas.ListDiscoverers
  ( -- * Creating a Request
    ListDiscoverers (..),
    newListDiscoverers,

    -- * Request Lenses
    listDiscoverers_discovererIdPrefix,
    listDiscoverers_limit,
    listDiscoverers_nextToken,
    listDiscoverers_sourceArnPrefix,

    -- * Destructuring the Response
    ListDiscoverersResponse (..),
    newListDiscoverersResponse,

    -- * Response Lenses
    listDiscoverersResponse_discoverers,
    listDiscoverersResponse_nextToken,
    listDiscoverersResponse_httpStatus,
  )
where

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
import Amazonka.Schemas.Types

-- | /See:/ 'newListDiscoverers' smart constructor.
data ListDiscoverers = ListDiscoverers'
  { -- | Specifying this limits the results to only those discoverer IDs that
    -- start with the specified prefix.
    ListDiscoverers -> Maybe Text
discovererIdPrefix :: Prelude.Maybe Prelude.Text,
    ListDiscoverers -> Maybe Int
limit :: Prelude.Maybe Prelude.Int,
    -- | The token that specifies the next page of results to return. To request
    -- the first page, leave NextToken empty. The token will expire in 24
    -- hours, and cannot be shared with other accounts.
    ListDiscoverers -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | Specifying this limits the results to only those ARNs that start with
    -- the specified prefix.
    ListDiscoverers -> Maybe Text
sourceArnPrefix :: Prelude.Maybe Prelude.Text
  }
  deriving (ListDiscoverers -> ListDiscoverers -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListDiscoverers -> ListDiscoverers -> Bool
$c/= :: ListDiscoverers -> ListDiscoverers -> Bool
== :: ListDiscoverers -> ListDiscoverers -> Bool
$c== :: ListDiscoverers -> ListDiscoverers -> Bool
Prelude.Eq, ReadPrec [ListDiscoverers]
ReadPrec ListDiscoverers
Int -> ReadS ListDiscoverers
ReadS [ListDiscoverers]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListDiscoverers]
$creadListPrec :: ReadPrec [ListDiscoverers]
readPrec :: ReadPrec ListDiscoverers
$creadPrec :: ReadPrec ListDiscoverers
readList :: ReadS [ListDiscoverers]
$creadList :: ReadS [ListDiscoverers]
readsPrec :: Int -> ReadS ListDiscoverers
$creadsPrec :: Int -> ReadS ListDiscoverers
Prelude.Read, Int -> ListDiscoverers -> ShowS
[ListDiscoverers] -> ShowS
ListDiscoverers -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListDiscoverers] -> ShowS
$cshowList :: [ListDiscoverers] -> ShowS
show :: ListDiscoverers -> String
$cshow :: ListDiscoverers -> String
showsPrec :: Int -> ListDiscoverers -> ShowS
$cshowsPrec :: Int -> ListDiscoverers -> ShowS
Prelude.Show, forall x. Rep ListDiscoverers x -> ListDiscoverers
forall x. ListDiscoverers -> Rep ListDiscoverers x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListDiscoverers x -> ListDiscoverers
$cfrom :: forall x. ListDiscoverers -> Rep ListDiscoverers x
Prelude.Generic)

-- |
-- Create a value of 'ListDiscoverers' 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:
--
-- 'discovererIdPrefix', 'listDiscoverers_discovererIdPrefix' - Specifying this limits the results to only those discoverer IDs that
-- start with the specified prefix.
--
-- 'limit', 'listDiscoverers_limit' - Undocumented member.
--
-- 'nextToken', 'listDiscoverers_nextToken' - The token that specifies the next page of results to return. To request
-- the first page, leave NextToken empty. The token will expire in 24
-- hours, and cannot be shared with other accounts.
--
-- 'sourceArnPrefix', 'listDiscoverers_sourceArnPrefix' - Specifying this limits the results to only those ARNs that start with
-- the specified prefix.
newListDiscoverers ::
  ListDiscoverers
newListDiscoverers :: ListDiscoverers
newListDiscoverers =
  ListDiscoverers'
    { $sel:discovererIdPrefix:ListDiscoverers' :: Maybe Text
discovererIdPrefix =
        forall a. Maybe a
Prelude.Nothing,
      $sel:limit:ListDiscoverers' :: Maybe Int
limit = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListDiscoverers' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:sourceArnPrefix:ListDiscoverers' :: Maybe Text
sourceArnPrefix = forall a. Maybe a
Prelude.Nothing
    }

-- | Specifying this limits the results to only those discoverer IDs that
-- start with the specified prefix.
listDiscoverers_discovererIdPrefix :: Lens.Lens' ListDiscoverers (Prelude.Maybe Prelude.Text)
listDiscoverers_discovererIdPrefix :: Lens' ListDiscoverers (Maybe Text)
listDiscoverers_discovererIdPrefix = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListDiscoverers' {Maybe Text
discovererIdPrefix :: Maybe Text
$sel:discovererIdPrefix:ListDiscoverers' :: ListDiscoverers -> Maybe Text
discovererIdPrefix} -> Maybe Text
discovererIdPrefix) (\s :: ListDiscoverers
s@ListDiscoverers' {} Maybe Text
a -> ListDiscoverers
s {$sel:discovererIdPrefix:ListDiscoverers' :: Maybe Text
discovererIdPrefix = Maybe Text
a} :: ListDiscoverers)

-- | Undocumented member.
listDiscoverers_limit :: Lens.Lens' ListDiscoverers (Prelude.Maybe Prelude.Int)
listDiscoverers_limit :: Lens' ListDiscoverers (Maybe Int)
listDiscoverers_limit = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListDiscoverers' {Maybe Int
limit :: Maybe Int
$sel:limit:ListDiscoverers' :: ListDiscoverers -> Maybe Int
limit} -> Maybe Int
limit) (\s :: ListDiscoverers
s@ListDiscoverers' {} Maybe Int
a -> ListDiscoverers
s {$sel:limit:ListDiscoverers' :: Maybe Int
limit = Maybe Int
a} :: ListDiscoverers)

-- | The token that specifies the next page of results to return. To request
-- the first page, leave NextToken empty. The token will expire in 24
-- hours, and cannot be shared with other accounts.
listDiscoverers_nextToken :: Lens.Lens' ListDiscoverers (Prelude.Maybe Prelude.Text)
listDiscoverers_nextToken :: Lens' ListDiscoverers (Maybe Text)
listDiscoverers_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListDiscoverers' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListDiscoverers' :: ListDiscoverers -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListDiscoverers
s@ListDiscoverers' {} Maybe Text
a -> ListDiscoverers
s {$sel:nextToken:ListDiscoverers' :: Maybe Text
nextToken = Maybe Text
a} :: ListDiscoverers)

-- | Specifying this limits the results to only those ARNs that start with
-- the specified prefix.
listDiscoverers_sourceArnPrefix :: Lens.Lens' ListDiscoverers (Prelude.Maybe Prelude.Text)
listDiscoverers_sourceArnPrefix :: Lens' ListDiscoverers (Maybe Text)
listDiscoverers_sourceArnPrefix = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListDiscoverers' {Maybe Text
sourceArnPrefix :: Maybe Text
$sel:sourceArnPrefix:ListDiscoverers' :: ListDiscoverers -> Maybe Text
sourceArnPrefix} -> Maybe Text
sourceArnPrefix) (\s :: ListDiscoverers
s@ListDiscoverers' {} Maybe Text
a -> ListDiscoverers
s {$sel:sourceArnPrefix:ListDiscoverers' :: Maybe Text
sourceArnPrefix = Maybe Text
a} :: ListDiscoverers)

instance Core.AWSPager ListDiscoverers where
  page :: ListDiscoverers
-> AWSResponse ListDiscoverers -> Maybe ListDiscoverers
page ListDiscoverers
rq AWSResponse ListDiscoverers
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListDiscoverers
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListDiscoverersResponse (Maybe Text)
listDiscoverersResponse_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 ListDiscoverers
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListDiscoverersResponse (Maybe [DiscovererSummary])
listDiscoverersResponse_discoverers
            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.$ ListDiscoverers
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' ListDiscoverers (Maybe Text)
listDiscoverers_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse ListDiscoverers
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListDiscoverersResponse (Maybe Text)
listDiscoverersResponse_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 ListDiscoverers where
  type
    AWSResponse ListDiscoverers =
      ListDiscoverersResponse
  request :: (Service -> Service) -> ListDiscoverers -> Request ListDiscoverers
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy ListDiscoverers
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse ListDiscoverers)))
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 [DiscovererSummary]
-> Maybe Text -> Int -> ListDiscoverersResponse
ListDiscoverersResponse'
            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
"Discoverers" 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 ListDiscoverers where
  hashWithSalt :: Int -> ListDiscoverers -> Int
hashWithSalt Int
_salt ListDiscoverers' {Maybe Int
Maybe Text
sourceArnPrefix :: Maybe Text
nextToken :: Maybe Text
limit :: Maybe Int
discovererIdPrefix :: Maybe Text
$sel:sourceArnPrefix:ListDiscoverers' :: ListDiscoverers -> Maybe Text
$sel:nextToken:ListDiscoverers' :: ListDiscoverers -> Maybe Text
$sel:limit:ListDiscoverers' :: ListDiscoverers -> Maybe Int
$sel:discovererIdPrefix:ListDiscoverers' :: ListDiscoverers -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
discovererIdPrefix
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
limit
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
sourceArnPrefix

instance Prelude.NFData ListDiscoverers where
  rnf :: ListDiscoverers -> ()
rnf ListDiscoverers' {Maybe Int
Maybe Text
sourceArnPrefix :: Maybe Text
nextToken :: Maybe Text
limit :: Maybe Int
discovererIdPrefix :: Maybe Text
$sel:sourceArnPrefix:ListDiscoverers' :: ListDiscoverers -> Maybe Text
$sel:nextToken:ListDiscoverers' :: ListDiscoverers -> Maybe Text
$sel:limit:ListDiscoverers' :: ListDiscoverers -> Maybe Int
$sel:discovererIdPrefix:ListDiscoverers' :: ListDiscoverers -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
discovererIdPrefix
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
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 Text
sourceArnPrefix

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

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

instance Data.ToQuery ListDiscoverers where
  toQuery :: ListDiscoverers -> QueryString
toQuery ListDiscoverers' {Maybe Int
Maybe Text
sourceArnPrefix :: Maybe Text
nextToken :: Maybe Text
limit :: Maybe Int
discovererIdPrefix :: Maybe Text
$sel:sourceArnPrefix:ListDiscoverers' :: ListDiscoverers -> Maybe Text
$sel:nextToken:ListDiscoverers' :: ListDiscoverers -> Maybe Text
$sel:limit:ListDiscoverers' :: ListDiscoverers -> Maybe Int
$sel:discovererIdPrefix:ListDiscoverers' :: ListDiscoverers -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"discovererIdPrefix" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
discovererIdPrefix,
        ByteString
"limit" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
limit,
        ByteString
"nextToken" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
nextToken,
        ByteString
"sourceArnPrefix" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
sourceArnPrefix
      ]

-- | /See:/ 'newListDiscoverersResponse' smart constructor.
data ListDiscoverersResponse = ListDiscoverersResponse'
  { -- | An array of DiscovererSummary information.
    ListDiscoverersResponse -> Maybe [DiscovererSummary]
discoverers :: Prelude.Maybe [DiscovererSummary],
    -- | The token that specifies the next page of results to return. To request
    -- the first page, leave NextToken empty. The token will expire in 24
    -- hours, and cannot be shared with other accounts.
    ListDiscoverersResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    ListDiscoverersResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ListDiscoverersResponse -> ListDiscoverersResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListDiscoverersResponse -> ListDiscoverersResponse -> Bool
$c/= :: ListDiscoverersResponse -> ListDiscoverersResponse -> Bool
== :: ListDiscoverersResponse -> ListDiscoverersResponse -> Bool
$c== :: ListDiscoverersResponse -> ListDiscoverersResponse -> Bool
Prelude.Eq, ReadPrec [ListDiscoverersResponse]
ReadPrec ListDiscoverersResponse
Int -> ReadS ListDiscoverersResponse
ReadS [ListDiscoverersResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListDiscoverersResponse]
$creadListPrec :: ReadPrec [ListDiscoverersResponse]
readPrec :: ReadPrec ListDiscoverersResponse
$creadPrec :: ReadPrec ListDiscoverersResponse
readList :: ReadS [ListDiscoverersResponse]
$creadList :: ReadS [ListDiscoverersResponse]
readsPrec :: Int -> ReadS ListDiscoverersResponse
$creadsPrec :: Int -> ReadS ListDiscoverersResponse
Prelude.Read, Int -> ListDiscoverersResponse -> ShowS
[ListDiscoverersResponse] -> ShowS
ListDiscoverersResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListDiscoverersResponse] -> ShowS
$cshowList :: [ListDiscoverersResponse] -> ShowS
show :: ListDiscoverersResponse -> String
$cshow :: ListDiscoverersResponse -> String
showsPrec :: Int -> ListDiscoverersResponse -> ShowS
$cshowsPrec :: Int -> ListDiscoverersResponse -> ShowS
Prelude.Show, forall x. Rep ListDiscoverersResponse x -> ListDiscoverersResponse
forall x. ListDiscoverersResponse -> Rep ListDiscoverersResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListDiscoverersResponse x -> ListDiscoverersResponse
$cfrom :: forall x. ListDiscoverersResponse -> Rep ListDiscoverersResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListDiscoverersResponse' 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:
--
-- 'discoverers', 'listDiscoverersResponse_discoverers' - An array of DiscovererSummary information.
--
-- 'nextToken', 'listDiscoverersResponse_nextToken' - The token that specifies the next page of results to return. To request
-- the first page, leave NextToken empty. The token will expire in 24
-- hours, and cannot be shared with other accounts.
--
-- 'httpStatus', 'listDiscoverersResponse_httpStatus' - The response's http status code.
newListDiscoverersResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListDiscoverersResponse
newListDiscoverersResponse :: Int -> ListDiscoverersResponse
newListDiscoverersResponse Int
pHttpStatus_ =
  ListDiscoverersResponse'
    { $sel:discoverers:ListDiscoverersResponse' :: Maybe [DiscovererSummary]
discoverers =
        forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListDiscoverersResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListDiscoverersResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | An array of DiscovererSummary information.
listDiscoverersResponse_discoverers :: Lens.Lens' ListDiscoverersResponse (Prelude.Maybe [DiscovererSummary])
listDiscoverersResponse_discoverers :: Lens' ListDiscoverersResponse (Maybe [DiscovererSummary])
listDiscoverersResponse_discoverers = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListDiscoverersResponse' {Maybe [DiscovererSummary]
discoverers :: Maybe [DiscovererSummary]
$sel:discoverers:ListDiscoverersResponse' :: ListDiscoverersResponse -> Maybe [DiscovererSummary]
discoverers} -> Maybe [DiscovererSummary]
discoverers) (\s :: ListDiscoverersResponse
s@ListDiscoverersResponse' {} Maybe [DiscovererSummary]
a -> ListDiscoverersResponse
s {$sel:discoverers:ListDiscoverersResponse' :: Maybe [DiscovererSummary]
discoverers = Maybe [DiscovererSummary]
a} :: ListDiscoverersResponse) 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 token that specifies the next page of results to return. To request
-- the first page, leave NextToken empty. The token will expire in 24
-- hours, and cannot be shared with other accounts.
listDiscoverersResponse_nextToken :: Lens.Lens' ListDiscoverersResponse (Prelude.Maybe Prelude.Text)
listDiscoverersResponse_nextToken :: Lens' ListDiscoverersResponse (Maybe Text)
listDiscoverersResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListDiscoverersResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListDiscoverersResponse' :: ListDiscoverersResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListDiscoverersResponse
s@ListDiscoverersResponse' {} Maybe Text
a -> ListDiscoverersResponse
s {$sel:nextToken:ListDiscoverersResponse' :: Maybe Text
nextToken = Maybe Text
a} :: ListDiscoverersResponse)

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

instance Prelude.NFData ListDiscoverersResponse where
  rnf :: ListDiscoverersResponse -> ()
rnf ListDiscoverersResponse' {Int
Maybe [DiscovererSummary]
Maybe Text
httpStatus :: Int
nextToken :: Maybe Text
discoverers :: Maybe [DiscovererSummary]
$sel:httpStatus:ListDiscoverersResponse' :: ListDiscoverersResponse -> Int
$sel:nextToken:ListDiscoverersResponse' :: ListDiscoverersResponse -> Maybe Text
$sel:discoverers:ListDiscoverersResponse' :: ListDiscoverersResponse -> Maybe [DiscovererSummary]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [DiscovererSummary]
discoverers
      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