{-# 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.FSx.DescribeFileSystemAliases
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns the DNS aliases that are associated with the specified Amazon
-- FSx for Windows File Server file system. A history of all DNS aliases
-- that have been associated with and disassociated from the file system is
-- available in the list of AdministrativeAction provided in the
-- DescribeFileSystems operation response.
module Amazonka.FSx.DescribeFileSystemAliases
  ( -- * Creating a Request
    DescribeFileSystemAliases (..),
    newDescribeFileSystemAliases,

    -- * Request Lenses
    describeFileSystemAliases_clientRequestToken,
    describeFileSystemAliases_maxResults,
    describeFileSystemAliases_nextToken,
    describeFileSystemAliases_fileSystemId,

    -- * Destructuring the Response
    DescribeFileSystemAliasesResponse (..),
    newDescribeFileSystemAliasesResponse,

    -- * Response Lenses
    describeFileSystemAliasesResponse_aliases,
    describeFileSystemAliasesResponse_nextToken,
    describeFileSystemAliasesResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.FSx.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | The request object for @DescribeFileSystemAliases@ operation.
--
-- /See:/ 'newDescribeFileSystemAliases' smart constructor.
data DescribeFileSystemAliases = DescribeFileSystemAliases'
  { DescribeFileSystemAliases -> Maybe Text
clientRequestToken :: Prelude.Maybe Prelude.Text,
    -- | Maximum number of DNS aliases to return in the response (integer). This
    -- parameter value must be greater than 0. The number of items that Amazon
    -- FSx returns is the minimum of the @MaxResults@ parameter specified in
    -- the request and the service\'s internal maximum number of items per
    -- page.
    DescribeFileSystemAliases -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | Opaque pagination token returned from a previous
    -- @DescribeFileSystemAliases@ operation (String). If a token is included
    -- in the request, the action continues the list from where the previous
    -- returning call left off.
    DescribeFileSystemAliases -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The ID of the file system to return the associated DNS aliases for
    -- (String).
    DescribeFileSystemAliases -> Text
fileSystemId :: Prelude.Text
  }
  deriving (DescribeFileSystemAliases -> DescribeFileSystemAliases -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeFileSystemAliases -> DescribeFileSystemAliases -> Bool
$c/= :: DescribeFileSystemAliases -> DescribeFileSystemAliases -> Bool
== :: DescribeFileSystemAliases -> DescribeFileSystemAliases -> Bool
$c== :: DescribeFileSystemAliases -> DescribeFileSystemAliases -> Bool
Prelude.Eq, ReadPrec [DescribeFileSystemAliases]
ReadPrec DescribeFileSystemAliases
Int -> ReadS DescribeFileSystemAliases
ReadS [DescribeFileSystemAliases]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeFileSystemAliases]
$creadListPrec :: ReadPrec [DescribeFileSystemAliases]
readPrec :: ReadPrec DescribeFileSystemAliases
$creadPrec :: ReadPrec DescribeFileSystemAliases
readList :: ReadS [DescribeFileSystemAliases]
$creadList :: ReadS [DescribeFileSystemAliases]
readsPrec :: Int -> ReadS DescribeFileSystemAliases
$creadsPrec :: Int -> ReadS DescribeFileSystemAliases
Prelude.Read, Int -> DescribeFileSystemAliases -> ShowS
[DescribeFileSystemAliases] -> ShowS
DescribeFileSystemAliases -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeFileSystemAliases] -> ShowS
$cshowList :: [DescribeFileSystemAliases] -> ShowS
show :: DescribeFileSystemAliases -> String
$cshow :: DescribeFileSystemAliases -> String
showsPrec :: Int -> DescribeFileSystemAliases -> ShowS
$cshowsPrec :: Int -> DescribeFileSystemAliases -> ShowS
Prelude.Show, forall x.
Rep DescribeFileSystemAliases x -> DescribeFileSystemAliases
forall x.
DescribeFileSystemAliases -> Rep DescribeFileSystemAliases x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeFileSystemAliases x -> DescribeFileSystemAliases
$cfrom :: forall x.
DescribeFileSystemAliases -> Rep DescribeFileSystemAliases x
Prelude.Generic)

-- |
-- Create a value of 'DescribeFileSystemAliases' 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:
--
-- 'clientRequestToken', 'describeFileSystemAliases_clientRequestToken' - Undocumented member.
--
-- 'maxResults', 'describeFileSystemAliases_maxResults' - Maximum number of DNS aliases to return in the response (integer). This
-- parameter value must be greater than 0. The number of items that Amazon
-- FSx returns is the minimum of the @MaxResults@ parameter specified in
-- the request and the service\'s internal maximum number of items per
-- page.
--
-- 'nextToken', 'describeFileSystemAliases_nextToken' - Opaque pagination token returned from a previous
-- @DescribeFileSystemAliases@ operation (String). If a token is included
-- in the request, the action continues the list from where the previous
-- returning call left off.
--
-- 'fileSystemId', 'describeFileSystemAliases_fileSystemId' - The ID of the file system to return the associated DNS aliases for
-- (String).
newDescribeFileSystemAliases ::
  -- | 'fileSystemId'
  Prelude.Text ->
  DescribeFileSystemAliases
newDescribeFileSystemAliases :: Text -> DescribeFileSystemAliases
newDescribeFileSystemAliases Text
pFileSystemId_ =
  DescribeFileSystemAliases'
    { $sel:clientRequestToken:DescribeFileSystemAliases' :: Maybe Text
clientRequestToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:maxResults:DescribeFileSystemAliases' :: Maybe Natural
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:DescribeFileSystemAliases' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:fileSystemId:DescribeFileSystemAliases' :: Text
fileSystemId = Text
pFileSystemId_
    }

-- | Undocumented member.
describeFileSystemAliases_clientRequestToken :: Lens.Lens' DescribeFileSystemAliases (Prelude.Maybe Prelude.Text)
describeFileSystemAliases_clientRequestToken :: Lens' DescribeFileSystemAliases (Maybe Text)
describeFileSystemAliases_clientRequestToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFileSystemAliases' {Maybe Text
clientRequestToken :: Maybe Text
$sel:clientRequestToken:DescribeFileSystemAliases' :: DescribeFileSystemAliases -> Maybe Text
clientRequestToken} -> Maybe Text
clientRequestToken) (\s :: DescribeFileSystemAliases
s@DescribeFileSystemAliases' {} Maybe Text
a -> DescribeFileSystemAliases
s {$sel:clientRequestToken:DescribeFileSystemAliases' :: Maybe Text
clientRequestToken = Maybe Text
a} :: DescribeFileSystemAliases)

-- | Maximum number of DNS aliases to return in the response (integer). This
-- parameter value must be greater than 0. The number of items that Amazon
-- FSx returns is the minimum of the @MaxResults@ parameter specified in
-- the request and the service\'s internal maximum number of items per
-- page.
describeFileSystemAliases_maxResults :: Lens.Lens' DescribeFileSystemAliases (Prelude.Maybe Prelude.Natural)
describeFileSystemAliases_maxResults :: Lens' DescribeFileSystemAliases (Maybe Natural)
describeFileSystemAliases_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFileSystemAliases' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:DescribeFileSystemAliases' :: DescribeFileSystemAliases -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: DescribeFileSystemAliases
s@DescribeFileSystemAliases' {} Maybe Natural
a -> DescribeFileSystemAliases
s {$sel:maxResults:DescribeFileSystemAliases' :: Maybe Natural
maxResults = Maybe Natural
a} :: DescribeFileSystemAliases)

-- | Opaque pagination token returned from a previous
-- @DescribeFileSystemAliases@ operation (String). If a token is included
-- in the request, the action continues the list from where the previous
-- returning call left off.
describeFileSystemAliases_nextToken :: Lens.Lens' DescribeFileSystemAliases (Prelude.Maybe Prelude.Text)
describeFileSystemAliases_nextToken :: Lens' DescribeFileSystemAliases (Maybe Text)
describeFileSystemAliases_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFileSystemAliases' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeFileSystemAliases' :: DescribeFileSystemAliases -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeFileSystemAliases
s@DescribeFileSystemAliases' {} Maybe Text
a -> DescribeFileSystemAliases
s {$sel:nextToken:DescribeFileSystemAliases' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeFileSystemAliases)

-- | The ID of the file system to return the associated DNS aliases for
-- (String).
describeFileSystemAliases_fileSystemId :: Lens.Lens' DescribeFileSystemAliases Prelude.Text
describeFileSystemAliases_fileSystemId :: Lens' DescribeFileSystemAliases Text
describeFileSystemAliases_fileSystemId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFileSystemAliases' {Text
fileSystemId :: Text
$sel:fileSystemId:DescribeFileSystemAliases' :: DescribeFileSystemAliases -> Text
fileSystemId} -> Text
fileSystemId) (\s :: DescribeFileSystemAliases
s@DescribeFileSystemAliases' {} Text
a -> DescribeFileSystemAliases
s {$sel:fileSystemId:DescribeFileSystemAliases' :: Text
fileSystemId = Text
a} :: DescribeFileSystemAliases)

instance Core.AWSRequest DescribeFileSystemAliases where
  type
    AWSResponse DescribeFileSystemAliases =
      DescribeFileSystemAliasesResponse
  request :: (Service -> Service)
-> DescribeFileSystemAliases -> Request DescribeFileSystemAliases
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 DescribeFileSystemAliases
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeFileSystemAliases)))
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 [Alias]
-> Maybe Text -> Int -> DescribeFileSystemAliasesResponse
DescribeFileSystemAliasesResponse'
            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
"Aliases" 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 DescribeFileSystemAliases where
  hashWithSalt :: Int -> DescribeFileSystemAliases -> Int
hashWithSalt Int
_salt DescribeFileSystemAliases' {Maybe Natural
Maybe Text
Text
fileSystemId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
clientRequestToken :: Maybe Text
$sel:fileSystemId:DescribeFileSystemAliases' :: DescribeFileSystemAliases -> Text
$sel:nextToken:DescribeFileSystemAliases' :: DescribeFileSystemAliases -> Maybe Text
$sel:maxResults:DescribeFileSystemAliases' :: DescribeFileSystemAliases -> Maybe Natural
$sel:clientRequestToken:DescribeFileSystemAliases' :: DescribeFileSystemAliases -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clientRequestToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxResults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
fileSystemId

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

instance Data.ToHeaders DescribeFileSystemAliases where
  toHeaders :: DescribeFileSystemAliases -> 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
"AWSSimbaAPIService_v20180301.DescribeFileSystemAliases" ::
                          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 DescribeFileSystemAliases where
  toJSON :: DescribeFileSystemAliases -> Value
toJSON DescribeFileSystemAliases' {Maybe Natural
Maybe Text
Text
fileSystemId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
clientRequestToken :: Maybe Text
$sel:fileSystemId:DescribeFileSystemAliases' :: DescribeFileSystemAliases -> Text
$sel:nextToken:DescribeFileSystemAliases' :: DescribeFileSystemAliases -> Maybe Text
$sel:maxResults:DescribeFileSystemAliases' :: DescribeFileSystemAliases -> Maybe Natural
$sel:clientRequestToken:DescribeFileSystemAliases' :: DescribeFileSystemAliases -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"ClientRequestToken" 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
clientRequestToken,
            (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 Natural
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,
            forall a. a -> Maybe a
Prelude.Just (Key
"FileSystemId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
fileSystemId)
          ]
      )

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

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

-- | The response object for @DescribeFileSystemAliases@ operation.
--
-- /See:/ 'newDescribeFileSystemAliasesResponse' smart constructor.
data DescribeFileSystemAliasesResponse = DescribeFileSystemAliasesResponse'
  { -- | An array of one or more DNS aliases currently associated with the
    -- specified file system.
    DescribeFileSystemAliasesResponse -> Maybe [Alias]
aliases :: Prelude.Maybe [Alias],
    -- | Present if there are more DNS aliases than returned in the response
    -- (String). You can use the @NextToken@ value in a later request to fetch
    -- additional descriptions.
    DescribeFileSystemAliasesResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeFileSystemAliasesResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeFileSystemAliasesResponse
-> DescribeFileSystemAliasesResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeFileSystemAliasesResponse
-> DescribeFileSystemAliasesResponse -> Bool
$c/= :: DescribeFileSystemAliasesResponse
-> DescribeFileSystemAliasesResponse -> Bool
== :: DescribeFileSystemAliasesResponse
-> DescribeFileSystemAliasesResponse -> Bool
$c== :: DescribeFileSystemAliasesResponse
-> DescribeFileSystemAliasesResponse -> Bool
Prelude.Eq, ReadPrec [DescribeFileSystemAliasesResponse]
ReadPrec DescribeFileSystemAliasesResponse
Int -> ReadS DescribeFileSystemAliasesResponse
ReadS [DescribeFileSystemAliasesResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeFileSystemAliasesResponse]
$creadListPrec :: ReadPrec [DescribeFileSystemAliasesResponse]
readPrec :: ReadPrec DescribeFileSystemAliasesResponse
$creadPrec :: ReadPrec DescribeFileSystemAliasesResponse
readList :: ReadS [DescribeFileSystemAliasesResponse]
$creadList :: ReadS [DescribeFileSystemAliasesResponse]
readsPrec :: Int -> ReadS DescribeFileSystemAliasesResponse
$creadsPrec :: Int -> ReadS DescribeFileSystemAliasesResponse
Prelude.Read, Int -> DescribeFileSystemAliasesResponse -> ShowS
[DescribeFileSystemAliasesResponse] -> ShowS
DescribeFileSystemAliasesResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeFileSystemAliasesResponse] -> ShowS
$cshowList :: [DescribeFileSystemAliasesResponse] -> ShowS
show :: DescribeFileSystemAliasesResponse -> String
$cshow :: DescribeFileSystemAliasesResponse -> String
showsPrec :: Int -> DescribeFileSystemAliasesResponse -> ShowS
$cshowsPrec :: Int -> DescribeFileSystemAliasesResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeFileSystemAliasesResponse x
-> DescribeFileSystemAliasesResponse
forall x.
DescribeFileSystemAliasesResponse
-> Rep DescribeFileSystemAliasesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeFileSystemAliasesResponse x
-> DescribeFileSystemAliasesResponse
$cfrom :: forall x.
DescribeFileSystemAliasesResponse
-> Rep DescribeFileSystemAliasesResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeFileSystemAliasesResponse' 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:
--
-- 'aliases', 'describeFileSystemAliasesResponse_aliases' - An array of one or more DNS aliases currently associated with the
-- specified file system.
--
-- 'nextToken', 'describeFileSystemAliasesResponse_nextToken' - Present if there are more DNS aliases than returned in the response
-- (String). You can use the @NextToken@ value in a later request to fetch
-- additional descriptions.
--
-- 'httpStatus', 'describeFileSystemAliasesResponse_httpStatus' - The response's http status code.
newDescribeFileSystemAliasesResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeFileSystemAliasesResponse
newDescribeFileSystemAliasesResponse :: Int -> DescribeFileSystemAliasesResponse
newDescribeFileSystemAliasesResponse Int
pHttpStatus_ =
  DescribeFileSystemAliasesResponse'
    { $sel:aliases:DescribeFileSystemAliasesResponse' :: Maybe [Alias]
aliases =
        forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:DescribeFileSystemAliasesResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeFileSystemAliasesResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | An array of one or more DNS aliases currently associated with the
-- specified file system.
describeFileSystemAliasesResponse_aliases :: Lens.Lens' DescribeFileSystemAliasesResponse (Prelude.Maybe [Alias])
describeFileSystemAliasesResponse_aliases :: Lens' DescribeFileSystemAliasesResponse (Maybe [Alias])
describeFileSystemAliasesResponse_aliases = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFileSystemAliasesResponse' {Maybe [Alias]
aliases :: Maybe [Alias]
$sel:aliases:DescribeFileSystemAliasesResponse' :: DescribeFileSystemAliasesResponse -> Maybe [Alias]
aliases} -> Maybe [Alias]
aliases) (\s :: DescribeFileSystemAliasesResponse
s@DescribeFileSystemAliasesResponse' {} Maybe [Alias]
a -> DescribeFileSystemAliasesResponse
s {$sel:aliases:DescribeFileSystemAliasesResponse' :: Maybe [Alias]
aliases = Maybe [Alias]
a} :: DescribeFileSystemAliasesResponse) 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

-- | Present if there are more DNS aliases than returned in the response
-- (String). You can use the @NextToken@ value in a later request to fetch
-- additional descriptions.
describeFileSystemAliasesResponse_nextToken :: Lens.Lens' DescribeFileSystemAliasesResponse (Prelude.Maybe Prelude.Text)
describeFileSystemAliasesResponse_nextToken :: Lens' DescribeFileSystemAliasesResponse (Maybe Text)
describeFileSystemAliasesResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFileSystemAliasesResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeFileSystemAliasesResponse' :: DescribeFileSystemAliasesResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeFileSystemAliasesResponse
s@DescribeFileSystemAliasesResponse' {} Maybe Text
a -> DescribeFileSystemAliasesResponse
s {$sel:nextToken:DescribeFileSystemAliasesResponse' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeFileSystemAliasesResponse)

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

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