{-# 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.MacieV2.SearchResources
(
SearchResources (..),
newSearchResources,
searchResources_bucketCriteria,
searchResources_maxResults,
searchResources_nextToken,
searchResources_sortCriteria,
SearchResourcesResponse (..),
newSearchResourcesResponse,
searchResourcesResponse_matchingResources,
searchResourcesResponse_nextToken,
searchResourcesResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.MacieV2.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data SearchResources = SearchResources'
{
SearchResources -> Maybe SearchResourcesBucketCriteria
bucketCriteria :: Prelude.Maybe SearchResourcesBucketCriteria,
SearchResources -> Maybe Int
maxResults :: Prelude.Maybe Prelude.Int,
SearchResources -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
SearchResources -> Maybe SearchResourcesSortCriteria
sortCriteria :: Prelude.Maybe SearchResourcesSortCriteria
}
deriving (SearchResources -> SearchResources -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SearchResources -> SearchResources -> Bool
$c/= :: SearchResources -> SearchResources -> Bool
== :: SearchResources -> SearchResources -> Bool
$c== :: SearchResources -> SearchResources -> Bool
Prelude.Eq, ReadPrec [SearchResources]
ReadPrec SearchResources
Int -> ReadS SearchResources
ReadS [SearchResources]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SearchResources]
$creadListPrec :: ReadPrec [SearchResources]
readPrec :: ReadPrec SearchResources
$creadPrec :: ReadPrec SearchResources
readList :: ReadS [SearchResources]
$creadList :: ReadS [SearchResources]
readsPrec :: Int -> ReadS SearchResources
$creadsPrec :: Int -> ReadS SearchResources
Prelude.Read, Int -> SearchResources -> ShowS
[SearchResources] -> ShowS
SearchResources -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SearchResources] -> ShowS
$cshowList :: [SearchResources] -> ShowS
show :: SearchResources -> String
$cshow :: SearchResources -> String
showsPrec :: Int -> SearchResources -> ShowS
$cshowsPrec :: Int -> SearchResources -> ShowS
Prelude.Show, forall x. Rep SearchResources x -> SearchResources
forall x. SearchResources -> Rep SearchResources x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep SearchResources x -> SearchResources
$cfrom :: forall x. SearchResources -> Rep SearchResources x
Prelude.Generic)
newSearchResources ::
SearchResources
newSearchResources :: SearchResources
newSearchResources =
SearchResources'
{ $sel:bucketCriteria:SearchResources' :: Maybe SearchResourcesBucketCriteria
bucketCriteria = forall a. Maybe a
Prelude.Nothing,
$sel:maxResults:SearchResources' :: Maybe Int
maxResults = forall a. Maybe a
Prelude.Nothing,
$sel:nextToken:SearchResources' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
$sel:sortCriteria:SearchResources' :: Maybe SearchResourcesSortCriteria
sortCriteria = forall a. Maybe a
Prelude.Nothing
}
searchResources_bucketCriteria :: Lens.Lens' SearchResources (Prelude.Maybe SearchResourcesBucketCriteria)
searchResources_bucketCriteria :: Lens' SearchResources (Maybe SearchResourcesBucketCriteria)
searchResources_bucketCriteria = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SearchResources' {Maybe SearchResourcesBucketCriteria
bucketCriteria :: Maybe SearchResourcesBucketCriteria
$sel:bucketCriteria:SearchResources' :: SearchResources -> Maybe SearchResourcesBucketCriteria
bucketCriteria} -> Maybe SearchResourcesBucketCriteria
bucketCriteria) (\s :: SearchResources
s@SearchResources' {} Maybe SearchResourcesBucketCriteria
a -> SearchResources
s {$sel:bucketCriteria:SearchResources' :: Maybe SearchResourcesBucketCriteria
bucketCriteria = Maybe SearchResourcesBucketCriteria
a} :: SearchResources)
searchResources_maxResults :: Lens.Lens' SearchResources (Prelude.Maybe Prelude.Int)
searchResources_maxResults :: Lens' SearchResources (Maybe Int)
searchResources_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SearchResources' {Maybe Int
maxResults :: Maybe Int
$sel:maxResults:SearchResources' :: SearchResources -> Maybe Int
maxResults} -> Maybe Int
maxResults) (\s :: SearchResources
s@SearchResources' {} Maybe Int
a -> SearchResources
s {$sel:maxResults:SearchResources' :: Maybe Int
maxResults = Maybe Int
a} :: SearchResources)
searchResources_nextToken :: Lens.Lens' SearchResources (Prelude.Maybe Prelude.Text)
searchResources_nextToken :: Lens' SearchResources (Maybe Text)
searchResources_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SearchResources' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:SearchResources' :: SearchResources -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: SearchResources
s@SearchResources' {} Maybe Text
a -> SearchResources
s {$sel:nextToken:SearchResources' :: Maybe Text
nextToken = Maybe Text
a} :: SearchResources)
searchResources_sortCriteria :: Lens.Lens' SearchResources (Prelude.Maybe SearchResourcesSortCriteria)
searchResources_sortCriteria :: Lens' SearchResources (Maybe SearchResourcesSortCriteria)
searchResources_sortCriteria = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SearchResources' {Maybe SearchResourcesSortCriteria
sortCriteria :: Maybe SearchResourcesSortCriteria
$sel:sortCriteria:SearchResources' :: SearchResources -> Maybe SearchResourcesSortCriteria
sortCriteria} -> Maybe SearchResourcesSortCriteria
sortCriteria) (\s :: SearchResources
s@SearchResources' {} Maybe SearchResourcesSortCriteria
a -> SearchResources
s {$sel:sortCriteria:SearchResources' :: Maybe SearchResourcesSortCriteria
sortCriteria = Maybe SearchResourcesSortCriteria
a} :: SearchResources)
instance Core.AWSPager SearchResources where
page :: SearchResources
-> AWSResponse SearchResources -> Maybe SearchResources
page SearchResources
rq AWSResponse SearchResources
rs
| forall a. AWSTruncated a => a -> Bool
Core.stop
( AWSResponse SearchResources
rs
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' SearchResourcesResponse (Maybe Text)
searchResourcesResponse_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 SearchResources
rs
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' SearchResourcesResponse (Maybe [MatchingResource])
searchResourcesResponse_matchingResources
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.$ SearchResources
rq
forall a b. a -> (a -> b) -> b
Prelude.& Lens' SearchResources (Maybe Text)
searchResources_nextToken
forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse SearchResources
rs
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' SearchResourcesResponse (Maybe Text)
searchResourcesResponse_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 SearchResources where
type
AWSResponse SearchResources =
SearchResourcesResponse
request :: (Service -> Service) -> SearchResources -> Request SearchResources
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 SearchResources
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse SearchResources)))
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 [MatchingResource]
-> Maybe Text -> Int -> SearchResourcesResponse
SearchResourcesResponse'
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
"matchingResources"
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 SearchResources where
hashWithSalt :: Int -> SearchResources -> Int
hashWithSalt Int
_salt SearchResources' {Maybe Int
Maybe Text
Maybe SearchResourcesSortCriteria
Maybe SearchResourcesBucketCriteria
sortCriteria :: Maybe SearchResourcesSortCriteria
nextToken :: Maybe Text
maxResults :: Maybe Int
bucketCriteria :: Maybe SearchResourcesBucketCriteria
$sel:sortCriteria:SearchResources' :: SearchResources -> Maybe SearchResourcesSortCriteria
$sel:nextToken:SearchResources' :: SearchResources -> Maybe Text
$sel:maxResults:SearchResources' :: SearchResources -> Maybe Int
$sel:bucketCriteria:SearchResources' :: SearchResources -> Maybe SearchResourcesBucketCriteria
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SearchResourcesBucketCriteria
bucketCriteria
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
maxResults
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SearchResourcesSortCriteria
sortCriteria
instance Prelude.NFData SearchResources where
rnf :: SearchResources -> ()
rnf SearchResources' {Maybe Int
Maybe Text
Maybe SearchResourcesSortCriteria
Maybe SearchResourcesBucketCriteria
sortCriteria :: Maybe SearchResourcesSortCriteria
nextToken :: Maybe Text
maxResults :: Maybe Int
bucketCriteria :: Maybe SearchResourcesBucketCriteria
$sel:sortCriteria:SearchResources' :: SearchResources -> Maybe SearchResourcesSortCriteria
$sel:nextToken:SearchResources' :: SearchResources -> Maybe Text
$sel:maxResults:SearchResources' :: SearchResources -> Maybe Int
$sel:bucketCriteria:SearchResources' :: SearchResources -> Maybe SearchResourcesBucketCriteria
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe SearchResourcesBucketCriteria
bucketCriteria
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
maxResults
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 SearchResourcesSortCriteria
sortCriteria
instance Data.ToHeaders SearchResources where
toHeaders :: SearchResources -> 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.ToJSON SearchResources where
toJSON :: SearchResources -> Value
toJSON SearchResources' {Maybe Int
Maybe Text
Maybe SearchResourcesSortCriteria
Maybe SearchResourcesBucketCriteria
sortCriteria :: Maybe SearchResourcesSortCriteria
nextToken :: Maybe Text
maxResults :: Maybe Int
bucketCriteria :: Maybe SearchResourcesBucketCriteria
$sel:sortCriteria:SearchResources' :: SearchResources -> Maybe SearchResourcesSortCriteria
$sel:nextToken:SearchResources' :: SearchResources -> Maybe Text
$sel:maxResults:SearchResources' :: SearchResources -> Maybe Int
$sel:bucketCriteria:SearchResources' :: SearchResources -> Maybe SearchResourcesBucketCriteria
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"bucketCriteria" 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 SearchResourcesBucketCriteria
bucketCriteria,
(Key
"maxResults" 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 Int
maxResults,
(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
"sortCriteria" 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 SearchResourcesSortCriteria
sortCriteria
]
)
instance Data.ToPath SearchResources where
toPath :: SearchResources -> ByteString
toPath =
forall a b. a -> b -> a
Prelude.const ByteString
"/datasources/search-resources"
instance Data.ToQuery SearchResources where
toQuery :: SearchResources -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data SearchResourcesResponse = SearchResourcesResponse'
{
SearchResourcesResponse -> Maybe [MatchingResource]
matchingResources :: Prelude.Maybe [MatchingResource],
SearchResourcesResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
SearchResourcesResponse -> Int
httpStatus :: Prelude.Int
}
deriving (SearchResourcesResponse -> SearchResourcesResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SearchResourcesResponse -> SearchResourcesResponse -> Bool
$c/= :: SearchResourcesResponse -> SearchResourcesResponse -> Bool
== :: SearchResourcesResponse -> SearchResourcesResponse -> Bool
$c== :: SearchResourcesResponse -> SearchResourcesResponse -> Bool
Prelude.Eq, ReadPrec [SearchResourcesResponse]
ReadPrec SearchResourcesResponse
Int -> ReadS SearchResourcesResponse
ReadS [SearchResourcesResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SearchResourcesResponse]
$creadListPrec :: ReadPrec [SearchResourcesResponse]
readPrec :: ReadPrec SearchResourcesResponse
$creadPrec :: ReadPrec SearchResourcesResponse
readList :: ReadS [SearchResourcesResponse]
$creadList :: ReadS [SearchResourcesResponse]
readsPrec :: Int -> ReadS SearchResourcesResponse
$creadsPrec :: Int -> ReadS SearchResourcesResponse
Prelude.Read, Int -> SearchResourcesResponse -> ShowS
[SearchResourcesResponse] -> ShowS
SearchResourcesResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SearchResourcesResponse] -> ShowS
$cshowList :: [SearchResourcesResponse] -> ShowS
show :: SearchResourcesResponse -> String
$cshow :: SearchResourcesResponse -> String
showsPrec :: Int -> SearchResourcesResponse -> ShowS
$cshowsPrec :: Int -> SearchResourcesResponse -> ShowS
Prelude.Show, forall x. Rep SearchResourcesResponse x -> SearchResourcesResponse
forall x. SearchResourcesResponse -> Rep SearchResourcesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep SearchResourcesResponse x -> SearchResourcesResponse
$cfrom :: forall x. SearchResourcesResponse -> Rep SearchResourcesResponse x
Prelude.Generic)
newSearchResourcesResponse ::
Prelude.Int ->
SearchResourcesResponse
newSearchResourcesResponse :: Int -> SearchResourcesResponse
newSearchResourcesResponse Int
pHttpStatus_ =
SearchResourcesResponse'
{ $sel:matchingResources:SearchResourcesResponse' :: Maybe [MatchingResource]
matchingResources =
forall a. Maybe a
Prelude.Nothing,
$sel:nextToken:SearchResourcesResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:SearchResourcesResponse' :: Int
httpStatus = Int
pHttpStatus_
}
searchResourcesResponse_matchingResources :: Lens.Lens' SearchResourcesResponse (Prelude.Maybe [MatchingResource])
searchResourcesResponse_matchingResources :: Lens' SearchResourcesResponse (Maybe [MatchingResource])
searchResourcesResponse_matchingResources = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SearchResourcesResponse' {Maybe [MatchingResource]
matchingResources :: Maybe [MatchingResource]
$sel:matchingResources:SearchResourcesResponse' :: SearchResourcesResponse -> Maybe [MatchingResource]
matchingResources} -> Maybe [MatchingResource]
matchingResources) (\s :: SearchResourcesResponse
s@SearchResourcesResponse' {} Maybe [MatchingResource]
a -> SearchResourcesResponse
s {$sel:matchingResources:SearchResourcesResponse' :: Maybe [MatchingResource]
matchingResources = Maybe [MatchingResource]
a} :: SearchResourcesResponse) 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
searchResourcesResponse_nextToken :: Lens.Lens' SearchResourcesResponse (Prelude.Maybe Prelude.Text)
searchResourcesResponse_nextToken :: Lens' SearchResourcesResponse (Maybe Text)
searchResourcesResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SearchResourcesResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:SearchResourcesResponse' :: SearchResourcesResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: SearchResourcesResponse
s@SearchResourcesResponse' {} Maybe Text
a -> SearchResourcesResponse
s {$sel:nextToken:SearchResourcesResponse' :: Maybe Text
nextToken = Maybe Text
a} :: SearchResourcesResponse)
searchResourcesResponse_httpStatus :: Lens.Lens' SearchResourcesResponse Prelude.Int
searchResourcesResponse_httpStatus :: Lens' SearchResourcesResponse Int
searchResourcesResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SearchResourcesResponse' {Int
httpStatus :: Int
$sel:httpStatus:SearchResourcesResponse' :: SearchResourcesResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: SearchResourcesResponse
s@SearchResourcesResponse' {} Int
a -> SearchResourcesResponse
s {$sel:httpStatus:SearchResourcesResponse' :: Int
httpStatus = Int
a} :: SearchResourcesResponse)
instance Prelude.NFData SearchResourcesResponse where
rnf :: SearchResourcesResponse -> ()
rnf SearchResourcesResponse' {Int
Maybe [MatchingResource]
Maybe Text
httpStatus :: Int
nextToken :: Maybe Text
matchingResources :: Maybe [MatchingResource]
$sel:httpStatus:SearchResourcesResponse' :: SearchResourcesResponse -> Int
$sel:nextToken:SearchResourcesResponse' :: SearchResourcesResponse -> Maybe Text
$sel:matchingResources:SearchResourcesResponse' :: SearchResourcesResponse -> Maybe [MatchingResource]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [MatchingResource]
matchingResources
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