{-# 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.Chime.ListChannelsModeratedByAppInstanceUser
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- A list of the channels moderated by an @AppInstanceUser@.
--
-- The @x-amz-chime-bearer@ request header is mandatory. Use the
-- @AppInstanceUserArn@ of the user that makes the API call as the value in
-- the header.
module Amazonka.Chime.ListChannelsModeratedByAppInstanceUser
  ( -- * Creating a Request
    ListChannelsModeratedByAppInstanceUser (..),
    newListChannelsModeratedByAppInstanceUser,

    -- * Request Lenses
    listChannelsModeratedByAppInstanceUser_appInstanceUserArn,
    listChannelsModeratedByAppInstanceUser_chimeBearer,
    listChannelsModeratedByAppInstanceUser_maxResults,
    listChannelsModeratedByAppInstanceUser_nextToken,

    -- * Destructuring the Response
    ListChannelsModeratedByAppInstanceUserResponse (..),
    newListChannelsModeratedByAppInstanceUserResponse,

    -- * Response Lenses
    listChannelsModeratedByAppInstanceUserResponse_channels,
    listChannelsModeratedByAppInstanceUserResponse_nextToken,
    listChannelsModeratedByAppInstanceUserResponse_httpStatus,
  )
where

import Amazonka.Chime.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:/ 'newListChannelsModeratedByAppInstanceUser' smart constructor.
data ListChannelsModeratedByAppInstanceUser = ListChannelsModeratedByAppInstanceUser'
  { -- | The ARN of the user in the moderated channel.
    ListChannelsModeratedByAppInstanceUser -> Maybe Text
appInstanceUserArn :: Prelude.Maybe Prelude.Text,
    -- | The @AppInstanceUserArn@ of the user that makes the API call.
    ListChannelsModeratedByAppInstanceUser -> Maybe Text
chimeBearer :: Prelude.Maybe Prelude.Text,
    -- | The maximum number of channels in the request.
    ListChannelsModeratedByAppInstanceUser -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | The token returned from previous API requests until the number of
    -- channels moderated by the user is reached.
    ListChannelsModeratedByAppInstanceUser -> Maybe (Sensitive Text)
nextToken :: Prelude.Maybe (Data.Sensitive Prelude.Text)
  }
  deriving (ListChannelsModeratedByAppInstanceUser
-> ListChannelsModeratedByAppInstanceUser -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListChannelsModeratedByAppInstanceUser
-> ListChannelsModeratedByAppInstanceUser -> Bool
$c/= :: ListChannelsModeratedByAppInstanceUser
-> ListChannelsModeratedByAppInstanceUser -> Bool
== :: ListChannelsModeratedByAppInstanceUser
-> ListChannelsModeratedByAppInstanceUser -> Bool
$c== :: ListChannelsModeratedByAppInstanceUser
-> ListChannelsModeratedByAppInstanceUser -> Bool
Prelude.Eq, Int -> ListChannelsModeratedByAppInstanceUser -> ShowS
[ListChannelsModeratedByAppInstanceUser] -> ShowS
ListChannelsModeratedByAppInstanceUser -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListChannelsModeratedByAppInstanceUser] -> ShowS
$cshowList :: [ListChannelsModeratedByAppInstanceUser] -> ShowS
show :: ListChannelsModeratedByAppInstanceUser -> String
$cshow :: ListChannelsModeratedByAppInstanceUser -> String
showsPrec :: Int -> ListChannelsModeratedByAppInstanceUser -> ShowS
$cshowsPrec :: Int -> ListChannelsModeratedByAppInstanceUser -> ShowS
Prelude.Show, forall x.
Rep ListChannelsModeratedByAppInstanceUser x
-> ListChannelsModeratedByAppInstanceUser
forall x.
ListChannelsModeratedByAppInstanceUser
-> Rep ListChannelsModeratedByAppInstanceUser x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListChannelsModeratedByAppInstanceUser x
-> ListChannelsModeratedByAppInstanceUser
$cfrom :: forall x.
ListChannelsModeratedByAppInstanceUser
-> Rep ListChannelsModeratedByAppInstanceUser x
Prelude.Generic)

-- |
-- Create a value of 'ListChannelsModeratedByAppInstanceUser' 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:
--
-- 'appInstanceUserArn', 'listChannelsModeratedByAppInstanceUser_appInstanceUserArn' - The ARN of the user in the moderated channel.
--
-- 'chimeBearer', 'listChannelsModeratedByAppInstanceUser_chimeBearer' - The @AppInstanceUserArn@ of the user that makes the API call.
--
-- 'maxResults', 'listChannelsModeratedByAppInstanceUser_maxResults' - The maximum number of channels in the request.
--
-- 'nextToken', 'listChannelsModeratedByAppInstanceUser_nextToken' - The token returned from previous API requests until the number of
-- channels moderated by the user is reached.
newListChannelsModeratedByAppInstanceUser ::
  ListChannelsModeratedByAppInstanceUser
newListChannelsModeratedByAppInstanceUser :: ListChannelsModeratedByAppInstanceUser
newListChannelsModeratedByAppInstanceUser =
  ListChannelsModeratedByAppInstanceUser'
    { $sel:appInstanceUserArn:ListChannelsModeratedByAppInstanceUser' :: Maybe Text
appInstanceUserArn =
        forall a. Maybe a
Prelude.Nothing,
      $sel:chimeBearer:ListChannelsModeratedByAppInstanceUser' :: Maybe Text
chimeBearer = forall a. Maybe a
Prelude.Nothing,
      $sel:maxResults:ListChannelsModeratedByAppInstanceUser' :: Maybe Natural
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListChannelsModeratedByAppInstanceUser' :: Maybe (Sensitive Text)
nextToken = forall a. Maybe a
Prelude.Nothing
    }

-- | The ARN of the user in the moderated channel.
listChannelsModeratedByAppInstanceUser_appInstanceUserArn :: Lens.Lens' ListChannelsModeratedByAppInstanceUser (Prelude.Maybe Prelude.Text)
listChannelsModeratedByAppInstanceUser_appInstanceUserArn :: Lens' ListChannelsModeratedByAppInstanceUser (Maybe Text)
listChannelsModeratedByAppInstanceUser_appInstanceUserArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListChannelsModeratedByAppInstanceUser' {Maybe Text
appInstanceUserArn :: Maybe Text
$sel:appInstanceUserArn:ListChannelsModeratedByAppInstanceUser' :: ListChannelsModeratedByAppInstanceUser -> Maybe Text
appInstanceUserArn} -> Maybe Text
appInstanceUserArn) (\s :: ListChannelsModeratedByAppInstanceUser
s@ListChannelsModeratedByAppInstanceUser' {} Maybe Text
a -> ListChannelsModeratedByAppInstanceUser
s {$sel:appInstanceUserArn:ListChannelsModeratedByAppInstanceUser' :: Maybe Text
appInstanceUserArn = Maybe Text
a} :: ListChannelsModeratedByAppInstanceUser)

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

-- | The maximum number of channels in the request.
listChannelsModeratedByAppInstanceUser_maxResults :: Lens.Lens' ListChannelsModeratedByAppInstanceUser (Prelude.Maybe Prelude.Natural)
listChannelsModeratedByAppInstanceUser_maxResults :: Lens' ListChannelsModeratedByAppInstanceUser (Maybe Natural)
listChannelsModeratedByAppInstanceUser_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListChannelsModeratedByAppInstanceUser' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:ListChannelsModeratedByAppInstanceUser' :: ListChannelsModeratedByAppInstanceUser -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: ListChannelsModeratedByAppInstanceUser
s@ListChannelsModeratedByAppInstanceUser' {} Maybe Natural
a -> ListChannelsModeratedByAppInstanceUser
s {$sel:maxResults:ListChannelsModeratedByAppInstanceUser' :: Maybe Natural
maxResults = Maybe Natural
a} :: ListChannelsModeratedByAppInstanceUser)

-- | The token returned from previous API requests until the number of
-- channels moderated by the user is reached.
listChannelsModeratedByAppInstanceUser_nextToken :: Lens.Lens' ListChannelsModeratedByAppInstanceUser (Prelude.Maybe Prelude.Text)
listChannelsModeratedByAppInstanceUser_nextToken :: Lens' ListChannelsModeratedByAppInstanceUser (Maybe Text)
listChannelsModeratedByAppInstanceUser_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListChannelsModeratedByAppInstanceUser' {Maybe (Sensitive Text)
nextToken :: Maybe (Sensitive Text)
$sel:nextToken:ListChannelsModeratedByAppInstanceUser' :: ListChannelsModeratedByAppInstanceUser -> Maybe (Sensitive Text)
nextToken} -> Maybe (Sensitive Text)
nextToken) (\s :: ListChannelsModeratedByAppInstanceUser
s@ListChannelsModeratedByAppInstanceUser' {} Maybe (Sensitive Text)
a -> ListChannelsModeratedByAppInstanceUser
s {$sel:nextToken:ListChannelsModeratedByAppInstanceUser' :: Maybe (Sensitive Text)
nextToken = Maybe (Sensitive Text)
a} :: ListChannelsModeratedByAppInstanceUser) 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

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

instance
  Prelude.NFData
    ListChannelsModeratedByAppInstanceUser
  where
  rnf :: ListChannelsModeratedByAppInstanceUser -> ()
rnf ListChannelsModeratedByAppInstanceUser' {Maybe Natural
Maybe Text
Maybe (Sensitive Text)
nextToken :: Maybe (Sensitive Text)
maxResults :: Maybe Natural
chimeBearer :: Maybe Text
appInstanceUserArn :: Maybe Text
$sel:nextToken:ListChannelsModeratedByAppInstanceUser' :: ListChannelsModeratedByAppInstanceUser -> Maybe (Sensitive Text)
$sel:maxResults:ListChannelsModeratedByAppInstanceUser' :: ListChannelsModeratedByAppInstanceUser -> Maybe Natural
$sel:chimeBearer:ListChannelsModeratedByAppInstanceUser' :: ListChannelsModeratedByAppInstanceUser -> Maybe Text
$sel:appInstanceUserArn:ListChannelsModeratedByAppInstanceUser' :: ListChannelsModeratedByAppInstanceUser -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
appInstanceUserArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` 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

instance
  Data.ToHeaders
    ListChannelsModeratedByAppInstanceUser
  where
  toHeaders :: ListChannelsModeratedByAppInstanceUser -> ResponseHeaders
toHeaders ListChannelsModeratedByAppInstanceUser' {Maybe Natural
Maybe Text
Maybe (Sensitive Text)
nextToken :: Maybe (Sensitive Text)
maxResults :: Maybe Natural
chimeBearer :: Maybe Text
appInstanceUserArn :: Maybe Text
$sel:nextToken:ListChannelsModeratedByAppInstanceUser' :: ListChannelsModeratedByAppInstanceUser -> Maybe (Sensitive Text)
$sel:maxResults:ListChannelsModeratedByAppInstanceUser' :: ListChannelsModeratedByAppInstanceUser -> Maybe Natural
$sel:chimeBearer:ListChannelsModeratedByAppInstanceUser' :: ListChannelsModeratedByAppInstanceUser -> Maybe Text
$sel:appInstanceUserArn:ListChannelsModeratedByAppInstanceUser' :: ListChannelsModeratedByAppInstanceUser -> 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.ToPath
    ListChannelsModeratedByAppInstanceUser
  where
  toPath :: ListChannelsModeratedByAppInstanceUser -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/channels"

instance
  Data.ToQuery
    ListChannelsModeratedByAppInstanceUser
  where
  toQuery :: ListChannelsModeratedByAppInstanceUser -> QueryString
toQuery ListChannelsModeratedByAppInstanceUser' {Maybe Natural
Maybe Text
Maybe (Sensitive Text)
nextToken :: Maybe (Sensitive Text)
maxResults :: Maybe Natural
chimeBearer :: Maybe Text
appInstanceUserArn :: Maybe Text
$sel:nextToken:ListChannelsModeratedByAppInstanceUser' :: ListChannelsModeratedByAppInstanceUser -> Maybe (Sensitive Text)
$sel:maxResults:ListChannelsModeratedByAppInstanceUser' :: ListChannelsModeratedByAppInstanceUser -> Maybe Natural
$sel:chimeBearer:ListChannelsModeratedByAppInstanceUser' :: ListChannelsModeratedByAppInstanceUser -> Maybe Text
$sel:appInstanceUserArn:ListChannelsModeratedByAppInstanceUser' :: ListChannelsModeratedByAppInstanceUser -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"app-instance-user-arn" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
appInstanceUserArn,
        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
"scope=app-instance-user-moderated-channels"
      ]

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

-- |
-- Create a value of 'ListChannelsModeratedByAppInstanceUserResponse' 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', 'listChannelsModeratedByAppInstanceUserResponse_channels' - The moderated channels in the request.
--
-- 'nextToken', 'listChannelsModeratedByAppInstanceUserResponse_nextToken' - The token returned from previous API requests until the number of
-- channels moderated by the user is reached.
--
-- 'httpStatus', 'listChannelsModeratedByAppInstanceUserResponse_httpStatus' - The response's http status code.
newListChannelsModeratedByAppInstanceUserResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListChannelsModeratedByAppInstanceUserResponse
newListChannelsModeratedByAppInstanceUserResponse :: Int -> ListChannelsModeratedByAppInstanceUserResponse
newListChannelsModeratedByAppInstanceUserResponse
  Int
pHttpStatus_ =
    ListChannelsModeratedByAppInstanceUserResponse'
      { $sel:channels:ListChannelsModeratedByAppInstanceUserResponse' :: Maybe [ChannelModeratedByAppInstanceUserSummary]
channels =
          forall a. Maybe a
Prelude.Nothing,
        $sel:nextToken:ListChannelsModeratedByAppInstanceUserResponse' :: Maybe (Sensitive Text)
nextToken = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:ListChannelsModeratedByAppInstanceUserResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | The moderated channels in the request.
listChannelsModeratedByAppInstanceUserResponse_channels :: Lens.Lens' ListChannelsModeratedByAppInstanceUserResponse (Prelude.Maybe [ChannelModeratedByAppInstanceUserSummary])
listChannelsModeratedByAppInstanceUserResponse_channels :: Lens'
  ListChannelsModeratedByAppInstanceUserResponse
  (Maybe [ChannelModeratedByAppInstanceUserSummary])
listChannelsModeratedByAppInstanceUserResponse_channels = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListChannelsModeratedByAppInstanceUserResponse' {Maybe [ChannelModeratedByAppInstanceUserSummary]
channels :: Maybe [ChannelModeratedByAppInstanceUserSummary]
$sel:channels:ListChannelsModeratedByAppInstanceUserResponse' :: ListChannelsModeratedByAppInstanceUserResponse
-> Maybe [ChannelModeratedByAppInstanceUserSummary]
channels} -> Maybe [ChannelModeratedByAppInstanceUserSummary]
channels) (\s :: ListChannelsModeratedByAppInstanceUserResponse
s@ListChannelsModeratedByAppInstanceUserResponse' {} Maybe [ChannelModeratedByAppInstanceUserSummary]
a -> ListChannelsModeratedByAppInstanceUserResponse
s {$sel:channels:ListChannelsModeratedByAppInstanceUserResponse' :: Maybe [ChannelModeratedByAppInstanceUserSummary]
channels = Maybe [ChannelModeratedByAppInstanceUserSummary]
a} :: ListChannelsModeratedByAppInstanceUserResponse) 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 requests until the number of
-- channels moderated by the user is reached.
listChannelsModeratedByAppInstanceUserResponse_nextToken :: Lens.Lens' ListChannelsModeratedByAppInstanceUserResponse (Prelude.Maybe Prelude.Text)
listChannelsModeratedByAppInstanceUserResponse_nextToken :: Lens' ListChannelsModeratedByAppInstanceUserResponse (Maybe Text)
listChannelsModeratedByAppInstanceUserResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListChannelsModeratedByAppInstanceUserResponse' {Maybe (Sensitive Text)
nextToken :: Maybe (Sensitive Text)
$sel:nextToken:ListChannelsModeratedByAppInstanceUserResponse' :: ListChannelsModeratedByAppInstanceUserResponse
-> Maybe (Sensitive Text)
nextToken} -> Maybe (Sensitive Text)
nextToken) (\s :: ListChannelsModeratedByAppInstanceUserResponse
s@ListChannelsModeratedByAppInstanceUserResponse' {} Maybe (Sensitive Text)
a -> ListChannelsModeratedByAppInstanceUserResponse
s {$sel:nextToken:ListChannelsModeratedByAppInstanceUserResponse' :: Maybe (Sensitive Text)
nextToken = Maybe (Sensitive Text)
a} :: ListChannelsModeratedByAppInstanceUserResponse) 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.
listChannelsModeratedByAppInstanceUserResponse_httpStatus :: Lens.Lens' ListChannelsModeratedByAppInstanceUserResponse Prelude.Int
listChannelsModeratedByAppInstanceUserResponse_httpStatus :: Lens' ListChannelsModeratedByAppInstanceUserResponse Int
listChannelsModeratedByAppInstanceUserResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListChannelsModeratedByAppInstanceUserResponse' {Int
httpStatus :: Int
$sel:httpStatus:ListChannelsModeratedByAppInstanceUserResponse' :: ListChannelsModeratedByAppInstanceUserResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: ListChannelsModeratedByAppInstanceUserResponse
s@ListChannelsModeratedByAppInstanceUserResponse' {} Int
a -> ListChannelsModeratedByAppInstanceUserResponse
s {$sel:httpStatus:ListChannelsModeratedByAppInstanceUserResponse' :: Int
httpStatus = Int
a} :: ListChannelsModeratedByAppInstanceUserResponse)

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