{-# 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.AppStream.DescribeDirectoryConfigs
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves a list that describes one or more specified Directory Config
-- objects for AppStream 2.0, if the names for these objects are provided.
-- Otherwise, all Directory Config objects in the account are described.
-- These objects include the configuration information required to join
-- fleets and image builders to Microsoft Active Directory domains.
--
-- Although the response syntax in this topic includes the account
-- password, this password is not returned in the actual response.
--
-- This operation returns paginated results.
module Amazonka.AppStream.DescribeDirectoryConfigs
  ( -- * Creating a Request
    DescribeDirectoryConfigs (..),
    newDescribeDirectoryConfigs,

    -- * Request Lenses
    describeDirectoryConfigs_directoryNames,
    describeDirectoryConfigs_maxResults,
    describeDirectoryConfigs_nextToken,

    -- * Destructuring the Response
    DescribeDirectoryConfigsResponse (..),
    newDescribeDirectoryConfigsResponse,

    -- * Response Lenses
    describeDirectoryConfigsResponse_directoryConfigs,
    describeDirectoryConfigsResponse_nextToken,
    describeDirectoryConfigsResponse_httpStatus,
  )
where

import Amazonka.AppStream.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:/ 'newDescribeDirectoryConfigs' smart constructor.
data DescribeDirectoryConfigs = DescribeDirectoryConfigs'
  { -- | The directory names.
    DescribeDirectoryConfigs -> Maybe [Text]
directoryNames :: Prelude.Maybe [Prelude.Text],
    -- | The maximum size of each page of results.
    DescribeDirectoryConfigs -> Maybe Int
maxResults :: Prelude.Maybe Prelude.Int,
    -- | The pagination token to use to retrieve the next page of results for
    -- this operation. If this value is null, it retrieves the first page.
    DescribeDirectoryConfigs -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text
  }
  deriving (DescribeDirectoryConfigs -> DescribeDirectoryConfigs -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeDirectoryConfigs -> DescribeDirectoryConfigs -> Bool
$c/= :: DescribeDirectoryConfigs -> DescribeDirectoryConfigs -> Bool
== :: DescribeDirectoryConfigs -> DescribeDirectoryConfigs -> Bool
$c== :: DescribeDirectoryConfigs -> DescribeDirectoryConfigs -> Bool
Prelude.Eq, ReadPrec [DescribeDirectoryConfigs]
ReadPrec DescribeDirectoryConfigs
Int -> ReadS DescribeDirectoryConfigs
ReadS [DescribeDirectoryConfigs]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeDirectoryConfigs]
$creadListPrec :: ReadPrec [DescribeDirectoryConfigs]
readPrec :: ReadPrec DescribeDirectoryConfigs
$creadPrec :: ReadPrec DescribeDirectoryConfigs
readList :: ReadS [DescribeDirectoryConfigs]
$creadList :: ReadS [DescribeDirectoryConfigs]
readsPrec :: Int -> ReadS DescribeDirectoryConfigs
$creadsPrec :: Int -> ReadS DescribeDirectoryConfigs
Prelude.Read, Int -> DescribeDirectoryConfigs -> ShowS
[DescribeDirectoryConfigs] -> ShowS
DescribeDirectoryConfigs -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeDirectoryConfigs] -> ShowS
$cshowList :: [DescribeDirectoryConfigs] -> ShowS
show :: DescribeDirectoryConfigs -> String
$cshow :: DescribeDirectoryConfigs -> String
showsPrec :: Int -> DescribeDirectoryConfigs -> ShowS
$cshowsPrec :: Int -> DescribeDirectoryConfigs -> ShowS
Prelude.Show, forall x.
Rep DescribeDirectoryConfigs x -> DescribeDirectoryConfigs
forall x.
DescribeDirectoryConfigs -> Rep DescribeDirectoryConfigs x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeDirectoryConfigs x -> DescribeDirectoryConfigs
$cfrom :: forall x.
DescribeDirectoryConfigs -> Rep DescribeDirectoryConfigs x
Prelude.Generic)

-- |
-- Create a value of 'DescribeDirectoryConfigs' 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:
--
-- 'directoryNames', 'describeDirectoryConfigs_directoryNames' - The directory names.
--
-- 'maxResults', 'describeDirectoryConfigs_maxResults' - The maximum size of each page of results.
--
-- 'nextToken', 'describeDirectoryConfigs_nextToken' - The pagination token to use to retrieve the next page of results for
-- this operation. If this value is null, it retrieves the first page.
newDescribeDirectoryConfigs ::
  DescribeDirectoryConfigs
newDescribeDirectoryConfigs :: DescribeDirectoryConfigs
newDescribeDirectoryConfigs =
  DescribeDirectoryConfigs'
    { $sel:directoryNames:DescribeDirectoryConfigs' :: Maybe [Text]
directoryNames =
        forall a. Maybe a
Prelude.Nothing,
      $sel:maxResults:DescribeDirectoryConfigs' :: Maybe Int
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:DescribeDirectoryConfigs' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing
    }

-- | The directory names.
describeDirectoryConfigs_directoryNames :: Lens.Lens' DescribeDirectoryConfigs (Prelude.Maybe [Prelude.Text])
describeDirectoryConfigs_directoryNames :: Lens' DescribeDirectoryConfigs (Maybe [Text])
describeDirectoryConfigs_directoryNames = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDirectoryConfigs' {Maybe [Text]
directoryNames :: Maybe [Text]
$sel:directoryNames:DescribeDirectoryConfigs' :: DescribeDirectoryConfigs -> Maybe [Text]
directoryNames} -> Maybe [Text]
directoryNames) (\s :: DescribeDirectoryConfigs
s@DescribeDirectoryConfigs' {} Maybe [Text]
a -> DescribeDirectoryConfigs
s {$sel:directoryNames:DescribeDirectoryConfigs' :: Maybe [Text]
directoryNames = Maybe [Text]
a} :: DescribeDirectoryConfigs) 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 maximum size of each page of results.
describeDirectoryConfigs_maxResults :: Lens.Lens' DescribeDirectoryConfigs (Prelude.Maybe Prelude.Int)
describeDirectoryConfigs_maxResults :: Lens' DescribeDirectoryConfigs (Maybe Int)
describeDirectoryConfigs_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDirectoryConfigs' {Maybe Int
maxResults :: Maybe Int
$sel:maxResults:DescribeDirectoryConfigs' :: DescribeDirectoryConfigs -> Maybe Int
maxResults} -> Maybe Int
maxResults) (\s :: DescribeDirectoryConfigs
s@DescribeDirectoryConfigs' {} Maybe Int
a -> DescribeDirectoryConfigs
s {$sel:maxResults:DescribeDirectoryConfigs' :: Maybe Int
maxResults = Maybe Int
a} :: DescribeDirectoryConfigs)

-- | The pagination token to use to retrieve the next page of results for
-- this operation. If this value is null, it retrieves the first page.
describeDirectoryConfigs_nextToken :: Lens.Lens' DescribeDirectoryConfigs (Prelude.Maybe Prelude.Text)
describeDirectoryConfigs_nextToken :: Lens' DescribeDirectoryConfigs (Maybe Text)
describeDirectoryConfigs_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDirectoryConfigs' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeDirectoryConfigs' :: DescribeDirectoryConfigs -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeDirectoryConfigs
s@DescribeDirectoryConfigs' {} Maybe Text
a -> DescribeDirectoryConfigs
s {$sel:nextToken:DescribeDirectoryConfigs' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeDirectoryConfigs)

instance Core.AWSPager DescribeDirectoryConfigs where
  page :: DescribeDirectoryConfigs
-> AWSResponse DescribeDirectoryConfigs
-> Maybe DescribeDirectoryConfigs
page DescribeDirectoryConfigs
rq AWSResponse DescribeDirectoryConfigs
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeDirectoryConfigs
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeDirectoryConfigsResponse (Maybe Text)
describeDirectoryConfigsResponse_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 DescribeDirectoryConfigs
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeDirectoryConfigsResponse (Maybe [DirectoryConfig])
describeDirectoryConfigsResponse_directoryConfigs
            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.$ DescribeDirectoryConfigs
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' DescribeDirectoryConfigs (Maybe Text)
describeDirectoryConfigs_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse DescribeDirectoryConfigs
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeDirectoryConfigsResponse (Maybe Text)
describeDirectoryConfigsResponse_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 DescribeDirectoryConfigs where
  type
    AWSResponse DescribeDirectoryConfigs =
      DescribeDirectoryConfigsResponse
  request :: (Service -> Service)
-> DescribeDirectoryConfigs -> Request DescribeDirectoryConfigs
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 DescribeDirectoryConfigs
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeDirectoryConfigs)))
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 [DirectoryConfig]
-> Maybe Text -> Int -> DescribeDirectoryConfigsResponse
DescribeDirectoryConfigsResponse'
            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
"DirectoryConfigs"
                            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 DescribeDirectoryConfigs where
  hashWithSalt :: Int -> DescribeDirectoryConfigs -> Int
hashWithSalt Int
_salt DescribeDirectoryConfigs' {Maybe Int
Maybe [Text]
Maybe Text
nextToken :: Maybe Text
maxResults :: Maybe Int
directoryNames :: Maybe [Text]
$sel:nextToken:DescribeDirectoryConfigs' :: DescribeDirectoryConfigs -> Maybe Text
$sel:maxResults:DescribeDirectoryConfigs' :: DescribeDirectoryConfigs -> Maybe Int
$sel:directoryNames:DescribeDirectoryConfigs' :: DescribeDirectoryConfigs -> Maybe [Text]
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
directoryNames
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
maxResults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken

instance Prelude.NFData DescribeDirectoryConfigs where
  rnf :: DescribeDirectoryConfigs -> ()
rnf DescribeDirectoryConfigs' {Maybe Int
Maybe [Text]
Maybe Text
nextToken :: Maybe Text
maxResults :: Maybe Int
directoryNames :: Maybe [Text]
$sel:nextToken:DescribeDirectoryConfigs' :: DescribeDirectoryConfigs -> Maybe Text
$sel:maxResults:DescribeDirectoryConfigs' :: DescribeDirectoryConfigs -> Maybe Int
$sel:directoryNames:DescribeDirectoryConfigs' :: DescribeDirectoryConfigs -> Maybe [Text]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
directoryNames
      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

instance Data.ToHeaders DescribeDirectoryConfigs where
  toHeaders :: DescribeDirectoryConfigs -> 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
"PhotonAdminProxyService.DescribeDirectoryConfigs" ::
                          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 DescribeDirectoryConfigs where
  toJSON :: DescribeDirectoryConfigs -> Value
toJSON DescribeDirectoryConfigs' {Maybe Int
Maybe [Text]
Maybe Text
nextToken :: Maybe Text
maxResults :: Maybe Int
directoryNames :: Maybe [Text]
$sel:nextToken:DescribeDirectoryConfigs' :: DescribeDirectoryConfigs -> Maybe Text
$sel:maxResults:DescribeDirectoryConfigs' :: DescribeDirectoryConfigs -> Maybe Int
$sel:directoryNames:DescribeDirectoryConfigs' :: DescribeDirectoryConfigs -> Maybe [Text]
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"DirectoryNames" 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]
directoryNames,
            (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
          ]
      )

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

instance Data.ToQuery DescribeDirectoryConfigs where
  toQuery :: DescribeDirectoryConfigs -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newDescribeDirectoryConfigsResponse' smart constructor.
data DescribeDirectoryConfigsResponse = DescribeDirectoryConfigsResponse'
  { -- | Information about the directory configurations. Note that although the
    -- response syntax in this topic includes the account password, this
    -- password is not returned in the actual response.
    DescribeDirectoryConfigsResponse -> Maybe [DirectoryConfig]
directoryConfigs :: Prelude.Maybe [DirectoryConfig],
    -- | The pagination token to use to retrieve the next page of results for
    -- this operation. If there are no more pages, this value is null.
    DescribeDirectoryConfigsResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeDirectoryConfigsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeDirectoryConfigsResponse
-> DescribeDirectoryConfigsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeDirectoryConfigsResponse
-> DescribeDirectoryConfigsResponse -> Bool
$c/= :: DescribeDirectoryConfigsResponse
-> DescribeDirectoryConfigsResponse -> Bool
== :: DescribeDirectoryConfigsResponse
-> DescribeDirectoryConfigsResponse -> Bool
$c== :: DescribeDirectoryConfigsResponse
-> DescribeDirectoryConfigsResponse -> Bool
Prelude.Eq, Int -> DescribeDirectoryConfigsResponse -> ShowS
[DescribeDirectoryConfigsResponse] -> ShowS
DescribeDirectoryConfigsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeDirectoryConfigsResponse] -> ShowS
$cshowList :: [DescribeDirectoryConfigsResponse] -> ShowS
show :: DescribeDirectoryConfigsResponse -> String
$cshow :: DescribeDirectoryConfigsResponse -> String
showsPrec :: Int -> DescribeDirectoryConfigsResponse -> ShowS
$cshowsPrec :: Int -> DescribeDirectoryConfigsResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeDirectoryConfigsResponse x
-> DescribeDirectoryConfigsResponse
forall x.
DescribeDirectoryConfigsResponse
-> Rep DescribeDirectoryConfigsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeDirectoryConfigsResponse x
-> DescribeDirectoryConfigsResponse
$cfrom :: forall x.
DescribeDirectoryConfigsResponse
-> Rep DescribeDirectoryConfigsResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeDirectoryConfigsResponse' 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:
--
-- 'directoryConfigs', 'describeDirectoryConfigsResponse_directoryConfigs' - Information about the directory configurations. Note that although the
-- response syntax in this topic includes the account password, this
-- password is not returned in the actual response.
--
-- 'nextToken', 'describeDirectoryConfigsResponse_nextToken' - The pagination token to use to retrieve the next page of results for
-- this operation. If there are no more pages, this value is null.
--
-- 'httpStatus', 'describeDirectoryConfigsResponse_httpStatus' - The response's http status code.
newDescribeDirectoryConfigsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeDirectoryConfigsResponse
newDescribeDirectoryConfigsResponse :: Int -> DescribeDirectoryConfigsResponse
newDescribeDirectoryConfigsResponse Int
pHttpStatus_ =
  DescribeDirectoryConfigsResponse'
    { $sel:directoryConfigs:DescribeDirectoryConfigsResponse' :: Maybe [DirectoryConfig]
directoryConfigs =
        forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:DescribeDirectoryConfigsResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeDirectoryConfigsResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Information about the directory configurations. Note that although the
-- response syntax in this topic includes the account password, this
-- password is not returned in the actual response.
describeDirectoryConfigsResponse_directoryConfigs :: Lens.Lens' DescribeDirectoryConfigsResponse (Prelude.Maybe [DirectoryConfig])
describeDirectoryConfigsResponse_directoryConfigs :: Lens' DescribeDirectoryConfigsResponse (Maybe [DirectoryConfig])
describeDirectoryConfigsResponse_directoryConfigs = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDirectoryConfigsResponse' {Maybe [DirectoryConfig]
directoryConfigs :: Maybe [DirectoryConfig]
$sel:directoryConfigs:DescribeDirectoryConfigsResponse' :: DescribeDirectoryConfigsResponse -> Maybe [DirectoryConfig]
directoryConfigs} -> Maybe [DirectoryConfig]
directoryConfigs) (\s :: DescribeDirectoryConfigsResponse
s@DescribeDirectoryConfigsResponse' {} Maybe [DirectoryConfig]
a -> DescribeDirectoryConfigsResponse
s {$sel:directoryConfigs:DescribeDirectoryConfigsResponse' :: Maybe [DirectoryConfig]
directoryConfigs = Maybe [DirectoryConfig]
a} :: DescribeDirectoryConfigsResponse) 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 pagination token to use to retrieve the next page of results for
-- this operation. If there are no more pages, this value is null.
describeDirectoryConfigsResponse_nextToken :: Lens.Lens' DescribeDirectoryConfigsResponse (Prelude.Maybe Prelude.Text)
describeDirectoryConfigsResponse_nextToken :: Lens' DescribeDirectoryConfigsResponse (Maybe Text)
describeDirectoryConfigsResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDirectoryConfigsResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeDirectoryConfigsResponse' :: DescribeDirectoryConfigsResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeDirectoryConfigsResponse
s@DescribeDirectoryConfigsResponse' {} Maybe Text
a -> DescribeDirectoryConfigsResponse
s {$sel:nextToken:DescribeDirectoryConfigsResponse' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeDirectoryConfigsResponse)

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

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