{-# 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 #-}
module Amazonka.ChimeSDKMessaging.SearchChannels
(
SearchChannels (..),
newSearchChannels,
searchChannels_chimeBearer,
searchChannels_maxResults,
searchChannels_nextToken,
searchChannels_fields,
SearchChannelsResponse (..),
newSearchChannelsResponse,
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
data SearchChannels = SearchChannels'
{
SearchChannels -> Maybe Text
chimeBearer :: Prelude.Maybe Prelude.Text,
SearchChannels -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
SearchChannels -> Maybe (Sensitive Text)
nextToken :: Prelude.Maybe (Data.Sensitive Prelude.Text),
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)
newSearchChannels ::
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_
}
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)
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)
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
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"
]
data SearchChannelsResponse = SearchChannelsResponse'
{
SearchChannelsResponse -> Maybe [ChannelSummary]
channels :: Prelude.Maybe [ChannelSummary],
SearchChannelsResponse -> Maybe (Sensitive Text)
nextToken :: Prelude.Maybe (Data.Sensitive Prelude.Text),
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)
newSearchChannelsResponse ::
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_
}
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
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
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