{-# 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.ChimeSDKMessaging.SearchChannels
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Allows @ChimeBearer@ to search channels by channel members.
-- AppInstanceUsers can search across the channels that they belong to.
-- AppInstanceAdmins can search across all channels.
module Amazonka.ChimeSDKMessaging.SearchChannels
  ( -- * Creating a Request
    SearchChannels (..),
    newSearchChannels,

    -- * Request Lenses
    searchChannels_chimeBearer,
    searchChannels_maxResults,
    searchChannels_nextToken,
    searchChannels_fields,

    -- * Destructuring the Response
    SearchChannelsResponse (..),
    newSearchChannelsResponse,

    -- * Response Lenses
    searchChannelsResponse_channels,
    searchChannelsResponse_nextToken,
    searchChannelsResponse_httpStatus,
  )
where

import Amazonka.ChimeSDKMessaging.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:/ 'newSearchChannels' smart constructor.
data SearchChannels = SearchChannels'
  { -- | The @AppInstanceUserArn@ of the user making the API call.
    SearchChannels -> Maybe Text
chimeBearer :: Prelude.Maybe Prelude.Text,
    -- | The maximum number of channels that you want returned.
    SearchChannels -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | The token returned from previous API requests until the number of
    -- channels is reached.
    SearchChannels -> Maybe (Sensitive Text)
nextToken :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | A list of the @Field@ objects in the channel being searched.
    SearchChannels -> NonEmpty SearchField
fields :: Prelude.NonEmpty SearchField
  }
  deriving (SearchChannels -> SearchChannels -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SearchChannels -> SearchChannels -> Bool
$c/= :: SearchChannels -> SearchChannels -> Bool
== :: SearchChannels -> SearchChannels -> Bool
$c== :: SearchChannels -> SearchChannels -> Bool
Prelude.Eq, Int -> SearchChannels -> ShowS
[SearchChannels] -> ShowS
SearchChannels -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SearchChannels] -> ShowS
$cshowList :: [SearchChannels] -> ShowS
show :: SearchChannels -> String
$cshow :: SearchChannels -> String
showsPrec :: Int -> SearchChannels -> ShowS
$cshowsPrec :: Int -> SearchChannels -> ShowS
Prelude.Show, forall x. Rep SearchChannels x -> SearchChannels
forall x. SearchChannels -> Rep SearchChannels x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep SearchChannels x -> SearchChannels
$cfrom :: forall x. SearchChannels -> Rep SearchChannels x
Prelude.Generic)

-- |
-- Create a value of 'SearchChannels' 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:
--
-- 'chimeBearer', 'searchChannels_chimeBearer' - The @AppInstanceUserArn@ of the user making the API call.
--
-- 'maxResults', 'searchChannels_maxResults' - The maximum number of channels that you want returned.
--
-- 'nextToken', 'searchChannels_nextToken' - The token returned from previous API requests until the number of
-- channels is reached.
--
-- 'fields', 'searchChannels_fields' - A list of the @Field@ objects in the channel being searched.
newSearchChannels ::
  -- | 'fields'
  Prelude.NonEmpty SearchField ->
  SearchChannels
newSearchChannels :: NonEmpty SearchField -> SearchChannels
newSearchChannels NonEmpty SearchField
pFields_ =
  SearchChannels'
    { $sel:chimeBearer:SearchChannels' :: Maybe Text
chimeBearer = forall a. Maybe a
Prelude.Nothing,
      $sel:maxResults:SearchChannels' :: Maybe Natural
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:SearchChannels' :: Maybe (Sensitive Text)
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:fields:SearchChannels' :: NonEmpty SearchField
fields = forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced forall t b. AReview t b -> b -> t
Lens.# NonEmpty SearchField
pFields_
    }

-- | The @AppInstanceUserArn@ of the user making the API call.
searchChannels_chimeBearer :: Lens.Lens' SearchChannels (Prelude.Maybe Prelude.Text)
searchChannels_chimeBearer :: Lens' SearchChannels (Maybe Text)
searchChannels_chimeBearer = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SearchChannels' {Maybe Text
chimeBearer :: Maybe Text
$sel:chimeBearer:SearchChannels' :: SearchChannels -> Maybe Text
chimeBearer} -> Maybe Text
chimeBearer) (\s :: SearchChannels
s@SearchChannels' {} Maybe Text
a -> SearchChannels
s {$sel:chimeBearer:SearchChannels' :: Maybe Text
chimeBearer = Maybe Text
a} :: SearchChannels)

-- | The maximum number of channels that you want returned.
searchChannels_maxResults :: Lens.Lens' SearchChannels (Prelude.Maybe Prelude.Natural)
searchChannels_maxResults :: Lens' SearchChannels (Maybe Natural)
searchChannels_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SearchChannels' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:SearchChannels' :: SearchChannels -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: SearchChannels
s@SearchChannels' {} Maybe Natural
a -> SearchChannels
s {$sel:maxResults:SearchChannels' :: Maybe Natural
maxResults = Maybe Natural
a} :: SearchChannels)

-- | The token returned from previous API requests until the number of
-- channels is reached.
searchChannels_nextToken :: Lens.Lens' SearchChannels (Prelude.Maybe Prelude.Text)
searchChannels_nextToken :: Lens' SearchChannels (Maybe Text)
searchChannels_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SearchChannels' {Maybe (Sensitive Text)
nextToken :: Maybe (Sensitive Text)
$sel:nextToken:SearchChannels' :: SearchChannels -> Maybe (Sensitive Text)
nextToken} -> Maybe (Sensitive Text)
nextToken) (\s :: SearchChannels
s@SearchChannels' {} Maybe (Sensitive Text)
a -> SearchChannels
s {$sel:nextToken:SearchChannels' :: Maybe (Sensitive Text)
nextToken = Maybe (Sensitive Text)
a} :: SearchChannels) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall a. Iso' (Sensitive a) a
Data._Sensitive

-- | A list of the @Field@ objects in the channel being searched.
searchChannels_fields :: Lens.Lens' SearchChannels (Prelude.NonEmpty SearchField)
searchChannels_fields :: Lens' SearchChannels (NonEmpty SearchField)
searchChannels_fields = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SearchChannels' {NonEmpty SearchField
fields :: NonEmpty SearchField
$sel:fields:SearchChannels' :: SearchChannels -> NonEmpty SearchField
fields} -> NonEmpty SearchField
fields) (\s :: SearchChannels
s@SearchChannels' {} NonEmpty SearchField
a -> SearchChannels
s {$sel:fields:SearchChannels' :: NonEmpty SearchField
fields = NonEmpty SearchField
a} :: SearchChannels) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance Core.AWSRequest SearchChannels where
  type
    AWSResponse SearchChannels =
      SearchChannelsResponse
  request :: (Service -> Service) -> SearchChannels -> Request SearchChannels
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 SearchChannels
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse SearchChannels)))
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 [ChannelSummary]
-> Maybe (Sensitive Text) -> Int -> SearchChannelsResponse
SearchChannelsResponse'
            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
"Channels" 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 SearchChannels where
  hashWithSalt :: Int -> SearchChannels -> Int
hashWithSalt Int
_salt SearchChannels' {Maybe Natural
Maybe Text
Maybe (Sensitive Text)
NonEmpty SearchField
fields :: NonEmpty SearchField
nextToken :: Maybe (Sensitive Text)
maxResults :: Maybe Natural
chimeBearer :: Maybe Text
$sel:fields:SearchChannels' :: SearchChannels -> NonEmpty SearchField
$sel:nextToken:SearchChannels' :: SearchChannels -> Maybe (Sensitive Text)
$sel:maxResults:SearchChannels' :: SearchChannels -> Maybe Natural
$sel:chimeBearer:SearchChannels' :: SearchChannels -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
chimeBearer
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxResults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` NonEmpty SearchField
fields

instance Prelude.NFData SearchChannels where
  rnf :: SearchChannels -> ()
rnf SearchChannels' {Maybe Natural
Maybe Text
Maybe (Sensitive Text)
NonEmpty SearchField
fields :: NonEmpty SearchField
nextToken :: Maybe (Sensitive Text)
maxResults :: Maybe Natural
chimeBearer :: Maybe Text
$sel:fields:SearchChannels' :: SearchChannels -> NonEmpty SearchField
$sel:nextToken:SearchChannels' :: SearchChannels -> Maybe (Sensitive Text)
$sel:maxResults:SearchChannels' :: SearchChannels -> Maybe Natural
$sel:chimeBearer:SearchChannels' :: SearchChannels -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
chimeBearer
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
maxResults
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf NonEmpty SearchField
fields

instance Data.ToHeaders SearchChannels where
  toHeaders :: SearchChannels -> ResponseHeaders
toHeaders SearchChannels' {Maybe Natural
Maybe Text
Maybe (Sensitive Text)
NonEmpty SearchField
fields :: NonEmpty SearchField
nextToken :: Maybe (Sensitive Text)
maxResults :: Maybe Natural
chimeBearer :: Maybe Text
$sel:fields:SearchChannels' :: SearchChannels -> NonEmpty SearchField
$sel:nextToken:SearchChannels' :: SearchChannels -> Maybe (Sensitive Text)
$sel:maxResults:SearchChannels' :: SearchChannels -> Maybe Natural
$sel:chimeBearer:SearchChannels' :: SearchChannels -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [HeaderName
"x-amz-chime-bearer" forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# Maybe Text
chimeBearer]

instance Data.ToJSON SearchChannels where
  toJSON :: SearchChannels -> Value
toJSON SearchChannels' {Maybe Natural
Maybe Text
Maybe (Sensitive Text)
NonEmpty SearchField
fields :: NonEmpty SearchField
nextToken :: Maybe (Sensitive Text)
maxResults :: Maybe Natural
chimeBearer :: Maybe Text
$sel:fields:SearchChannels' :: SearchChannels -> NonEmpty SearchField
$sel:nextToken:SearchChannels' :: SearchChannels -> Maybe (Sensitive Text)
$sel:maxResults:SearchChannels' :: SearchChannels -> Maybe Natural
$sel:chimeBearer:SearchChannels' :: SearchChannels -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [forall a. a -> Maybe a
Prelude.Just (Key
"Fields" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= NonEmpty SearchField
fields)]
      )

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

instance Data.ToQuery SearchChannels where
  toQuery :: SearchChannels -> QueryString
toQuery SearchChannels' {Maybe Natural
Maybe Text
Maybe (Sensitive Text)
NonEmpty SearchField
fields :: NonEmpty SearchField
nextToken :: Maybe (Sensitive Text)
maxResults :: Maybe Natural
chimeBearer :: Maybe Text
$sel:fields:SearchChannels' :: SearchChannels -> NonEmpty SearchField
$sel:nextToken:SearchChannels' :: SearchChannels -> Maybe (Sensitive Text)
$sel:maxResults:SearchChannels' :: SearchChannels -> Maybe Natural
$sel:chimeBearer:SearchChannels' :: SearchChannels -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"max-results" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Natural
maxResults,
        ByteString
"next-token" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe (Sensitive Text)
nextToken,
        QueryString
"operation=search"
      ]

-- | /See:/ 'newSearchChannelsResponse' smart constructor.
data SearchChannelsResponse = SearchChannelsResponse'
  { -- | A list of the channels in the request.
    SearchChannelsResponse -> Maybe [ChannelSummary]
channels :: Prelude.Maybe [ChannelSummary],
    -- | The token returned from previous API responses until the number of
    -- channels is reached.
    SearchChannelsResponse -> Maybe (Sensitive Text)
nextToken :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | The response's http status code.
    SearchChannelsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (SearchChannelsResponse -> SearchChannelsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SearchChannelsResponse -> SearchChannelsResponse -> Bool
$c/= :: SearchChannelsResponse -> SearchChannelsResponse -> Bool
== :: SearchChannelsResponse -> SearchChannelsResponse -> Bool
$c== :: SearchChannelsResponse -> SearchChannelsResponse -> Bool
Prelude.Eq, Int -> SearchChannelsResponse -> ShowS
[SearchChannelsResponse] -> ShowS
SearchChannelsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SearchChannelsResponse] -> ShowS
$cshowList :: [SearchChannelsResponse] -> ShowS
show :: SearchChannelsResponse -> String
$cshow :: SearchChannelsResponse -> String
showsPrec :: Int -> SearchChannelsResponse -> ShowS
$cshowsPrec :: Int -> SearchChannelsResponse -> ShowS
Prelude.Show, forall x. Rep SearchChannelsResponse x -> SearchChannelsResponse
forall x. SearchChannelsResponse -> Rep SearchChannelsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep SearchChannelsResponse x -> SearchChannelsResponse
$cfrom :: forall x. SearchChannelsResponse -> Rep SearchChannelsResponse x
Prelude.Generic)

-- |
-- Create a value of 'SearchChannelsResponse' 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:
--
-- 'channels', 'searchChannelsResponse_channels' - A list of the channels in the request.
--
-- 'nextToken', 'searchChannelsResponse_nextToken' - The token returned from previous API responses until the number of
-- channels is reached.
--
-- 'httpStatus', 'searchChannelsResponse_httpStatus' - The response's http status code.
newSearchChannelsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  SearchChannelsResponse
newSearchChannelsResponse :: Int -> SearchChannelsResponse
newSearchChannelsResponse Int
pHttpStatus_ =
  SearchChannelsResponse'
    { $sel:channels:SearchChannelsResponse' :: Maybe [ChannelSummary]
channels = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:SearchChannelsResponse' :: Maybe (Sensitive Text)
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:SearchChannelsResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | A list of the channels in the request.
searchChannelsResponse_channels :: Lens.Lens' SearchChannelsResponse (Prelude.Maybe [ChannelSummary])
searchChannelsResponse_channels :: Lens' SearchChannelsResponse (Maybe [ChannelSummary])
searchChannelsResponse_channels = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SearchChannelsResponse' {Maybe [ChannelSummary]
channels :: Maybe [ChannelSummary]
$sel:channels:SearchChannelsResponse' :: SearchChannelsResponse -> Maybe [ChannelSummary]
channels} -> Maybe [ChannelSummary]
channels) (\s :: SearchChannelsResponse
s@SearchChannelsResponse' {} Maybe [ChannelSummary]
a -> SearchChannelsResponse
s {$sel:channels:SearchChannelsResponse' :: Maybe [ChannelSummary]
channels = Maybe [ChannelSummary]
a} :: SearchChannelsResponse) 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 returned from previous API responses until the number of
-- channels is reached.
searchChannelsResponse_nextToken :: Lens.Lens' SearchChannelsResponse (Prelude.Maybe Prelude.Text)
searchChannelsResponse_nextToken :: Lens' SearchChannelsResponse (Maybe Text)
searchChannelsResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SearchChannelsResponse' {Maybe (Sensitive Text)
nextToken :: Maybe (Sensitive Text)
$sel:nextToken:SearchChannelsResponse' :: SearchChannelsResponse -> Maybe (Sensitive Text)
nextToken} -> Maybe (Sensitive Text)
nextToken) (\s :: SearchChannelsResponse
s@SearchChannelsResponse' {} Maybe (Sensitive Text)
a -> SearchChannelsResponse
s {$sel:nextToken:SearchChannelsResponse' :: Maybe (Sensitive Text)
nextToken = Maybe (Sensitive Text)
a} :: SearchChannelsResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall a. Iso' (Sensitive a) a
Data._Sensitive

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

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