{-# 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.DirectoryService.DescribeDirectories
(
DescribeDirectories (..),
newDescribeDirectories,
describeDirectories_directoryIds,
describeDirectories_limit,
describeDirectories_nextToken,
DescribeDirectoriesResponse (..),
newDescribeDirectoriesResponse,
describeDirectoriesResponse_directoryDescriptions,
describeDirectoriesResponse_nextToken,
describeDirectoriesResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.DirectoryService.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data DescribeDirectories = DescribeDirectories'
{
DescribeDirectories -> Maybe [Text]
directoryIds :: Prelude.Maybe [Prelude.Text],
DescribeDirectories -> Maybe Natural
limit :: Prelude.Maybe Prelude.Natural,
DescribeDirectories -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text
}
deriving (DescribeDirectories -> DescribeDirectories -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeDirectories -> DescribeDirectories -> Bool
$c/= :: DescribeDirectories -> DescribeDirectories -> Bool
== :: DescribeDirectories -> DescribeDirectories -> Bool
$c== :: DescribeDirectories -> DescribeDirectories -> Bool
Prelude.Eq, ReadPrec [DescribeDirectories]
ReadPrec DescribeDirectories
Int -> ReadS DescribeDirectories
ReadS [DescribeDirectories]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeDirectories]
$creadListPrec :: ReadPrec [DescribeDirectories]
readPrec :: ReadPrec DescribeDirectories
$creadPrec :: ReadPrec DescribeDirectories
readList :: ReadS [DescribeDirectories]
$creadList :: ReadS [DescribeDirectories]
readsPrec :: Int -> ReadS DescribeDirectories
$creadsPrec :: Int -> ReadS DescribeDirectories
Prelude.Read, Int -> DescribeDirectories -> ShowS
[DescribeDirectories] -> ShowS
DescribeDirectories -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeDirectories] -> ShowS
$cshowList :: [DescribeDirectories] -> ShowS
show :: DescribeDirectories -> String
$cshow :: DescribeDirectories -> String
showsPrec :: Int -> DescribeDirectories -> ShowS
$cshowsPrec :: Int -> DescribeDirectories -> ShowS
Prelude.Show, forall x. Rep DescribeDirectories x -> DescribeDirectories
forall x. DescribeDirectories -> Rep DescribeDirectories x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeDirectories x -> DescribeDirectories
$cfrom :: forall x. DescribeDirectories -> Rep DescribeDirectories x
Prelude.Generic)
newDescribeDirectories ::
DescribeDirectories
newDescribeDirectories :: DescribeDirectories
newDescribeDirectories =
DescribeDirectories'
{ $sel:directoryIds:DescribeDirectories' :: Maybe [Text]
directoryIds =
forall a. Maybe a
Prelude.Nothing,
$sel:limit:DescribeDirectories' :: Maybe Natural
limit = forall a. Maybe a
Prelude.Nothing,
$sel:nextToken:DescribeDirectories' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing
}
describeDirectories_directoryIds :: Lens.Lens' DescribeDirectories (Prelude.Maybe [Prelude.Text])
describeDirectories_directoryIds :: Lens' DescribeDirectories (Maybe [Text])
describeDirectories_directoryIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDirectories' {Maybe [Text]
directoryIds :: Maybe [Text]
$sel:directoryIds:DescribeDirectories' :: DescribeDirectories -> Maybe [Text]
directoryIds} -> Maybe [Text]
directoryIds) (\s :: DescribeDirectories
s@DescribeDirectories' {} Maybe [Text]
a -> DescribeDirectories
s {$sel:directoryIds:DescribeDirectories' :: Maybe [Text]
directoryIds = Maybe [Text]
a} :: DescribeDirectories) 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
describeDirectories_limit :: Lens.Lens' DescribeDirectories (Prelude.Maybe Prelude.Natural)
describeDirectories_limit :: Lens' DescribeDirectories (Maybe Natural)
describeDirectories_limit = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDirectories' {Maybe Natural
limit :: Maybe Natural
$sel:limit:DescribeDirectories' :: DescribeDirectories -> Maybe Natural
limit} -> Maybe Natural
limit) (\s :: DescribeDirectories
s@DescribeDirectories' {} Maybe Natural
a -> DescribeDirectories
s {$sel:limit:DescribeDirectories' :: Maybe Natural
limit = Maybe Natural
a} :: DescribeDirectories)
describeDirectories_nextToken :: Lens.Lens' DescribeDirectories (Prelude.Maybe Prelude.Text)
describeDirectories_nextToken :: Lens' DescribeDirectories (Maybe Text)
describeDirectories_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDirectories' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeDirectories' :: DescribeDirectories -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeDirectories
s@DescribeDirectories' {} Maybe Text
a -> DescribeDirectories
s {$sel:nextToken:DescribeDirectories' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeDirectories)
instance Core.AWSPager DescribeDirectories where
page :: DescribeDirectories
-> AWSResponse DescribeDirectories -> Maybe DescribeDirectories
page DescribeDirectories
rq AWSResponse DescribeDirectories
rs
| forall a. AWSTruncated a => a -> Bool
Core.stop
( AWSResponse DescribeDirectories
rs
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeDirectoriesResponse (Maybe Text)
describeDirectoriesResponse_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 DescribeDirectories
rs
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeDirectoriesResponse (Maybe [DirectoryDescription])
describeDirectoriesResponse_directoryDescriptions
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.$ DescribeDirectories
rq
forall a b. a -> (a -> b) -> b
Prelude.& Lens' DescribeDirectories (Maybe Text)
describeDirectories_nextToken
forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse DescribeDirectories
rs
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeDirectoriesResponse (Maybe Text)
describeDirectoriesResponse_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 DescribeDirectories where
type
AWSResponse DescribeDirectories =
DescribeDirectoriesResponse
request :: (Service -> Service)
-> DescribeDirectories -> Request DescribeDirectories
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 DescribeDirectories
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse DescribeDirectories)))
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 [DirectoryDescription]
-> Maybe Text -> Int -> DescribeDirectoriesResponse
DescribeDirectoriesResponse'
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
"DirectoryDescriptions"
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 DescribeDirectories where
hashWithSalt :: Int -> DescribeDirectories -> Int
hashWithSalt Int
_salt DescribeDirectories' {Maybe Natural
Maybe [Text]
Maybe Text
nextToken :: Maybe Text
limit :: Maybe Natural
directoryIds :: Maybe [Text]
$sel:nextToken:DescribeDirectories' :: DescribeDirectories -> Maybe Text
$sel:limit:DescribeDirectories' :: DescribeDirectories -> Maybe Natural
$sel:directoryIds:DescribeDirectories' :: DescribeDirectories -> Maybe [Text]
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
directoryIds
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
limit
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
instance Prelude.NFData DescribeDirectories where
rnf :: DescribeDirectories -> ()
rnf DescribeDirectories' {Maybe Natural
Maybe [Text]
Maybe Text
nextToken :: Maybe Text
limit :: Maybe Natural
directoryIds :: Maybe [Text]
$sel:nextToken:DescribeDirectories' :: DescribeDirectories -> Maybe Text
$sel:limit:DescribeDirectories' :: DescribeDirectories -> Maybe Natural
$sel:directoryIds:DescribeDirectories' :: DescribeDirectories -> Maybe [Text]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
directoryIds
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
limit
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
instance Data.ToHeaders DescribeDirectories where
toHeaders :: DescribeDirectories -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Target"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"DirectoryService_20150416.DescribeDirectories" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON DescribeDirectories where
toJSON :: DescribeDirectories -> Value
toJSON DescribeDirectories' {Maybe Natural
Maybe [Text]
Maybe Text
nextToken :: Maybe Text
limit :: Maybe Natural
directoryIds :: Maybe [Text]
$sel:nextToken:DescribeDirectories' :: DescribeDirectories -> Maybe Text
$sel:limit:DescribeDirectories' :: DescribeDirectories -> Maybe Natural
$sel:directoryIds:DescribeDirectories' :: DescribeDirectories -> Maybe [Text]
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"DirectoryIds" 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]
directoryIds,
(Key
"Limit" 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 Natural
limit,
(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
]
)
instance Data.ToPath DescribeDirectories where
toPath :: DescribeDirectories -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery DescribeDirectories where
toQuery :: DescribeDirectories -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data DescribeDirectoriesResponse = DescribeDirectoriesResponse'
{
DescribeDirectoriesResponse -> Maybe [DirectoryDescription]
directoryDescriptions :: Prelude.Maybe [DirectoryDescription],
DescribeDirectoriesResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
DescribeDirectoriesResponse -> Int
httpStatus :: Prelude.Int
}
deriving (DescribeDirectoriesResponse -> DescribeDirectoriesResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeDirectoriesResponse -> DescribeDirectoriesResponse -> Bool
$c/= :: DescribeDirectoriesResponse -> DescribeDirectoriesResponse -> Bool
== :: DescribeDirectoriesResponse -> DescribeDirectoriesResponse -> Bool
$c== :: DescribeDirectoriesResponse -> DescribeDirectoriesResponse -> Bool
Prelude.Eq, Int -> DescribeDirectoriesResponse -> ShowS
[DescribeDirectoriesResponse] -> ShowS
DescribeDirectoriesResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeDirectoriesResponse] -> ShowS
$cshowList :: [DescribeDirectoriesResponse] -> ShowS
show :: DescribeDirectoriesResponse -> String
$cshow :: DescribeDirectoriesResponse -> String
showsPrec :: Int -> DescribeDirectoriesResponse -> ShowS
$cshowsPrec :: Int -> DescribeDirectoriesResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeDirectoriesResponse x -> DescribeDirectoriesResponse
forall x.
DescribeDirectoriesResponse -> Rep DescribeDirectoriesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeDirectoriesResponse x -> DescribeDirectoriesResponse
$cfrom :: forall x.
DescribeDirectoriesResponse -> Rep DescribeDirectoriesResponse x
Prelude.Generic)
newDescribeDirectoriesResponse ::
Prelude.Int ->
DescribeDirectoriesResponse
newDescribeDirectoriesResponse :: Int -> DescribeDirectoriesResponse
newDescribeDirectoriesResponse Int
pHttpStatus_ =
DescribeDirectoriesResponse'
{ $sel:directoryDescriptions:DescribeDirectoriesResponse' :: Maybe [DirectoryDescription]
directoryDescriptions =
forall a. Maybe a
Prelude.Nothing,
$sel:nextToken:DescribeDirectoriesResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:DescribeDirectoriesResponse' :: Int
httpStatus = Int
pHttpStatus_
}
describeDirectoriesResponse_directoryDescriptions :: Lens.Lens' DescribeDirectoriesResponse (Prelude.Maybe [DirectoryDescription])
describeDirectoriesResponse_directoryDescriptions :: Lens' DescribeDirectoriesResponse (Maybe [DirectoryDescription])
describeDirectoriesResponse_directoryDescriptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDirectoriesResponse' {Maybe [DirectoryDescription]
directoryDescriptions :: Maybe [DirectoryDescription]
$sel:directoryDescriptions:DescribeDirectoriesResponse' :: DescribeDirectoriesResponse -> Maybe [DirectoryDescription]
directoryDescriptions} -> Maybe [DirectoryDescription]
directoryDescriptions) (\s :: DescribeDirectoriesResponse
s@DescribeDirectoriesResponse' {} Maybe [DirectoryDescription]
a -> DescribeDirectoriesResponse
s {$sel:directoryDescriptions:DescribeDirectoriesResponse' :: Maybe [DirectoryDescription]
directoryDescriptions = Maybe [DirectoryDescription]
a} :: DescribeDirectoriesResponse) 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
describeDirectoriesResponse_nextToken :: Lens.Lens' DescribeDirectoriesResponse (Prelude.Maybe Prelude.Text)
describeDirectoriesResponse_nextToken :: Lens' DescribeDirectoriesResponse (Maybe Text)
describeDirectoriesResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDirectoriesResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeDirectoriesResponse' :: DescribeDirectoriesResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeDirectoriesResponse
s@DescribeDirectoriesResponse' {} Maybe Text
a -> DescribeDirectoriesResponse
s {$sel:nextToken:DescribeDirectoriesResponse' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeDirectoriesResponse)
describeDirectoriesResponse_httpStatus :: Lens.Lens' DescribeDirectoriesResponse Prelude.Int
describeDirectoriesResponse_httpStatus :: Lens' DescribeDirectoriesResponse Int
describeDirectoriesResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDirectoriesResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeDirectoriesResponse' :: DescribeDirectoriesResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeDirectoriesResponse
s@DescribeDirectoriesResponse' {} Int
a -> DescribeDirectoriesResponse
s {$sel:httpStatus:DescribeDirectoriesResponse' :: Int
httpStatus = Int
a} :: DescribeDirectoriesResponse)
instance Prelude.NFData DescribeDirectoriesResponse where
rnf :: DescribeDirectoriesResponse -> ()
rnf DescribeDirectoriesResponse' {Int
Maybe [DirectoryDescription]
Maybe Text
httpStatus :: Int
nextToken :: Maybe Text
directoryDescriptions :: Maybe [DirectoryDescription]
$sel:httpStatus:DescribeDirectoriesResponse' :: DescribeDirectoriesResponse -> Int
$sel:nextToken:DescribeDirectoriesResponse' :: DescribeDirectoriesResponse -> Maybe Text
$sel:directoryDescriptions:DescribeDirectoriesResponse' :: DescribeDirectoriesResponse -> Maybe [DirectoryDescription]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [DirectoryDescription]
directoryDescriptions
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