{-# 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.EFS.DescribeMountTargets
-- 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 descriptions of all the current mount targets, or a specific
-- mount target, for a file system. When requesting all of the current
-- mount targets, the order of mount targets returned in the response is
-- unspecified.
--
-- This operation requires permissions for the
-- @elasticfilesystem:DescribeMountTargets@ action, on either the file
-- system ID that you specify in @FileSystemId@, or on the file system of
-- the mount target that you specify in @MountTargetId@.
--
-- This operation returns paginated results.
module Amazonka.EFS.DescribeMountTargets
  ( -- * Creating a Request
    DescribeMountTargets (..),
    newDescribeMountTargets,

    -- * Request Lenses
    describeMountTargets_accessPointId,
    describeMountTargets_fileSystemId,
    describeMountTargets_marker,
    describeMountTargets_maxItems,
    describeMountTargets_mountTargetId,

    -- * Destructuring the Response
    DescribeMountTargetsResponse (..),
    newDescribeMountTargetsResponse,

    -- * Response Lenses
    describeMountTargetsResponse_marker,
    describeMountTargetsResponse_mountTargets,
    describeMountTargetsResponse_nextMarker,
    describeMountTargetsResponse_httpStatus,
  )
where

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

-- |
--
-- /See:/ 'newDescribeMountTargets' smart constructor.
data DescribeMountTargets = DescribeMountTargets'
  { -- | (Optional) The ID of the access point whose mount targets that you want
    -- to list. It must be included in your request if a @FileSystemId@ or
    -- @MountTargetId@ is not included in your request. Accepts either an
    -- access point ID or ARN as input.
    DescribeMountTargets -> Maybe Text
accessPointId :: Prelude.Maybe Prelude.Text,
    -- | (Optional) ID of the file system whose mount targets you want to list
    -- (String). It must be included in your request if an @AccessPointId@ or
    -- @MountTargetId@ is not included. Accepts either a file system ID or ARN
    -- as input.
    DescribeMountTargets -> Maybe Text
fileSystemId :: Prelude.Maybe Prelude.Text,
    -- | (Optional) Opaque pagination token returned from a previous
    -- @DescribeMountTargets@ operation (String). If present, it specifies to
    -- continue the list from where the previous returning call left off.
    DescribeMountTargets -> Maybe Text
marker :: Prelude.Maybe Prelude.Text,
    -- | (Optional) Maximum number of mount targets to return in the response.
    -- Currently, this number is automatically set to 10, and other values are
    -- ignored. The response is paginated at 100 per page if you have more than
    -- 100 mount targets.
    DescribeMountTargets -> Maybe Natural
maxItems :: Prelude.Maybe Prelude.Natural,
    -- | (Optional) ID of the mount target that you want to have described
    -- (String). It must be included in your request if @FileSystemId@ is not
    -- included. Accepts either a mount target ID or ARN as input.
    DescribeMountTargets -> Maybe Text
mountTargetId :: Prelude.Maybe Prelude.Text
  }
  deriving (DescribeMountTargets -> DescribeMountTargets -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeMountTargets -> DescribeMountTargets -> Bool
$c/= :: DescribeMountTargets -> DescribeMountTargets -> Bool
== :: DescribeMountTargets -> DescribeMountTargets -> Bool
$c== :: DescribeMountTargets -> DescribeMountTargets -> Bool
Prelude.Eq, ReadPrec [DescribeMountTargets]
ReadPrec DescribeMountTargets
Int -> ReadS DescribeMountTargets
ReadS [DescribeMountTargets]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeMountTargets]
$creadListPrec :: ReadPrec [DescribeMountTargets]
readPrec :: ReadPrec DescribeMountTargets
$creadPrec :: ReadPrec DescribeMountTargets
readList :: ReadS [DescribeMountTargets]
$creadList :: ReadS [DescribeMountTargets]
readsPrec :: Int -> ReadS DescribeMountTargets
$creadsPrec :: Int -> ReadS DescribeMountTargets
Prelude.Read, Int -> DescribeMountTargets -> ShowS
[DescribeMountTargets] -> ShowS
DescribeMountTargets -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeMountTargets] -> ShowS
$cshowList :: [DescribeMountTargets] -> ShowS
show :: DescribeMountTargets -> String
$cshow :: DescribeMountTargets -> String
showsPrec :: Int -> DescribeMountTargets -> ShowS
$cshowsPrec :: Int -> DescribeMountTargets -> ShowS
Prelude.Show, forall x. Rep DescribeMountTargets x -> DescribeMountTargets
forall x. DescribeMountTargets -> Rep DescribeMountTargets x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeMountTargets x -> DescribeMountTargets
$cfrom :: forall x. DescribeMountTargets -> Rep DescribeMountTargets x
Prelude.Generic)

-- |
-- Create a value of 'DescribeMountTargets' 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:
--
-- 'accessPointId', 'describeMountTargets_accessPointId' - (Optional) The ID of the access point whose mount targets that you want
-- to list. It must be included in your request if a @FileSystemId@ or
-- @MountTargetId@ is not included in your request. Accepts either an
-- access point ID or ARN as input.
--
-- 'fileSystemId', 'describeMountTargets_fileSystemId' - (Optional) ID of the file system whose mount targets you want to list
-- (String). It must be included in your request if an @AccessPointId@ or
-- @MountTargetId@ is not included. Accepts either a file system ID or ARN
-- as input.
--
-- 'marker', 'describeMountTargets_marker' - (Optional) Opaque pagination token returned from a previous
-- @DescribeMountTargets@ operation (String). If present, it specifies to
-- continue the list from where the previous returning call left off.
--
-- 'maxItems', 'describeMountTargets_maxItems' - (Optional) Maximum number of mount targets to return in the response.
-- Currently, this number is automatically set to 10, and other values are
-- ignored. The response is paginated at 100 per page if you have more than
-- 100 mount targets.
--
-- 'mountTargetId', 'describeMountTargets_mountTargetId' - (Optional) ID of the mount target that you want to have described
-- (String). It must be included in your request if @FileSystemId@ is not
-- included. Accepts either a mount target ID or ARN as input.
newDescribeMountTargets ::
  DescribeMountTargets
newDescribeMountTargets :: DescribeMountTargets
newDescribeMountTargets =
  DescribeMountTargets'
    { $sel:accessPointId:DescribeMountTargets' :: Maybe Text
accessPointId =
        forall a. Maybe a
Prelude.Nothing,
      $sel:fileSystemId:DescribeMountTargets' :: Maybe Text
fileSystemId = forall a. Maybe a
Prelude.Nothing,
      $sel:marker:DescribeMountTargets' :: Maybe Text
marker = forall a. Maybe a
Prelude.Nothing,
      $sel:maxItems:DescribeMountTargets' :: Maybe Natural
maxItems = forall a. Maybe a
Prelude.Nothing,
      $sel:mountTargetId:DescribeMountTargets' :: Maybe Text
mountTargetId = forall a. Maybe a
Prelude.Nothing
    }

-- | (Optional) The ID of the access point whose mount targets that you want
-- to list. It must be included in your request if a @FileSystemId@ or
-- @MountTargetId@ is not included in your request. Accepts either an
-- access point ID or ARN as input.
describeMountTargets_accessPointId :: Lens.Lens' DescribeMountTargets (Prelude.Maybe Prelude.Text)
describeMountTargets_accessPointId :: Lens' DescribeMountTargets (Maybe Text)
describeMountTargets_accessPointId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMountTargets' {Maybe Text
accessPointId :: Maybe Text
$sel:accessPointId:DescribeMountTargets' :: DescribeMountTargets -> Maybe Text
accessPointId} -> Maybe Text
accessPointId) (\s :: DescribeMountTargets
s@DescribeMountTargets' {} Maybe Text
a -> DescribeMountTargets
s {$sel:accessPointId:DescribeMountTargets' :: Maybe Text
accessPointId = Maybe Text
a} :: DescribeMountTargets)

-- | (Optional) ID of the file system whose mount targets you want to list
-- (String). It must be included in your request if an @AccessPointId@ or
-- @MountTargetId@ is not included. Accepts either a file system ID or ARN
-- as input.
describeMountTargets_fileSystemId :: Lens.Lens' DescribeMountTargets (Prelude.Maybe Prelude.Text)
describeMountTargets_fileSystemId :: Lens' DescribeMountTargets (Maybe Text)
describeMountTargets_fileSystemId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMountTargets' {Maybe Text
fileSystemId :: Maybe Text
$sel:fileSystemId:DescribeMountTargets' :: DescribeMountTargets -> Maybe Text
fileSystemId} -> Maybe Text
fileSystemId) (\s :: DescribeMountTargets
s@DescribeMountTargets' {} Maybe Text
a -> DescribeMountTargets
s {$sel:fileSystemId:DescribeMountTargets' :: Maybe Text
fileSystemId = Maybe Text
a} :: DescribeMountTargets)

-- | (Optional) Opaque pagination token returned from a previous
-- @DescribeMountTargets@ operation (String). If present, it specifies to
-- continue the list from where the previous returning call left off.
describeMountTargets_marker :: Lens.Lens' DescribeMountTargets (Prelude.Maybe Prelude.Text)
describeMountTargets_marker :: Lens' DescribeMountTargets (Maybe Text)
describeMountTargets_marker = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMountTargets' {Maybe Text
marker :: Maybe Text
$sel:marker:DescribeMountTargets' :: DescribeMountTargets -> Maybe Text
marker} -> Maybe Text
marker) (\s :: DescribeMountTargets
s@DescribeMountTargets' {} Maybe Text
a -> DescribeMountTargets
s {$sel:marker:DescribeMountTargets' :: Maybe Text
marker = Maybe Text
a} :: DescribeMountTargets)

-- | (Optional) Maximum number of mount targets to return in the response.
-- Currently, this number is automatically set to 10, and other values are
-- ignored. The response is paginated at 100 per page if you have more than
-- 100 mount targets.
describeMountTargets_maxItems :: Lens.Lens' DescribeMountTargets (Prelude.Maybe Prelude.Natural)
describeMountTargets_maxItems :: Lens' DescribeMountTargets (Maybe Natural)
describeMountTargets_maxItems = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMountTargets' {Maybe Natural
maxItems :: Maybe Natural
$sel:maxItems:DescribeMountTargets' :: DescribeMountTargets -> Maybe Natural
maxItems} -> Maybe Natural
maxItems) (\s :: DescribeMountTargets
s@DescribeMountTargets' {} Maybe Natural
a -> DescribeMountTargets
s {$sel:maxItems:DescribeMountTargets' :: Maybe Natural
maxItems = Maybe Natural
a} :: DescribeMountTargets)

-- | (Optional) ID of the mount target that you want to have described
-- (String). It must be included in your request if @FileSystemId@ is not
-- included. Accepts either a mount target ID or ARN as input.
describeMountTargets_mountTargetId :: Lens.Lens' DescribeMountTargets (Prelude.Maybe Prelude.Text)
describeMountTargets_mountTargetId :: Lens' DescribeMountTargets (Maybe Text)
describeMountTargets_mountTargetId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMountTargets' {Maybe Text
mountTargetId :: Maybe Text
$sel:mountTargetId:DescribeMountTargets' :: DescribeMountTargets -> Maybe Text
mountTargetId} -> Maybe Text
mountTargetId) (\s :: DescribeMountTargets
s@DescribeMountTargets' {} Maybe Text
a -> DescribeMountTargets
s {$sel:mountTargetId:DescribeMountTargets' :: Maybe Text
mountTargetId = Maybe Text
a} :: DescribeMountTargets)

instance Core.AWSPager DescribeMountTargets where
  page :: DescribeMountTargets
-> AWSResponse DescribeMountTargets -> Maybe DescribeMountTargets
page DescribeMountTargets
rq AWSResponse DescribeMountTargets
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeMountTargets
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeMountTargetsResponse (Maybe Text)
describeMountTargetsResponse_nextMarker
            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 DescribeMountTargets
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeMountTargetsResponse (Maybe [MountTargetDescription])
describeMountTargetsResponse_mountTargets
            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.$ DescribeMountTargets
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' DescribeMountTargets (Maybe Text)
describeMountTargets_marker
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse DescribeMountTargets
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeMountTargetsResponse (Maybe Text)
describeMountTargetsResponse_nextMarker
          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 DescribeMountTargets where
  type
    AWSResponse DescribeMountTargets =
      DescribeMountTargetsResponse
  request :: (Service -> Service)
-> DescribeMountTargets -> Request DescribeMountTargets
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeMountTargets
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeMountTargets)))
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 Text
-> Maybe [MountTargetDescription]
-> Maybe Text
-> Int
-> DescribeMountTargetsResponse
DescribeMountTargetsResponse'
            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
"Marker")
            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
"MountTargets" 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
"NextMarker")
            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 DescribeMountTargets where
  hashWithSalt :: Int -> DescribeMountTargets -> Int
hashWithSalt Int
_salt DescribeMountTargets' {Maybe Natural
Maybe Text
mountTargetId :: Maybe Text
maxItems :: Maybe Natural
marker :: Maybe Text
fileSystemId :: Maybe Text
accessPointId :: Maybe Text
$sel:mountTargetId:DescribeMountTargets' :: DescribeMountTargets -> Maybe Text
$sel:maxItems:DescribeMountTargets' :: DescribeMountTargets -> Maybe Natural
$sel:marker:DescribeMountTargets' :: DescribeMountTargets -> Maybe Text
$sel:fileSystemId:DescribeMountTargets' :: DescribeMountTargets -> Maybe Text
$sel:accessPointId:DescribeMountTargets' :: DescribeMountTargets -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
accessPointId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
fileSystemId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
marker
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxItems
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
mountTargetId

instance Prelude.NFData DescribeMountTargets where
  rnf :: DescribeMountTargets -> ()
rnf DescribeMountTargets' {Maybe Natural
Maybe Text
mountTargetId :: Maybe Text
maxItems :: Maybe Natural
marker :: Maybe Text
fileSystemId :: Maybe Text
accessPointId :: Maybe Text
$sel:mountTargetId:DescribeMountTargets' :: DescribeMountTargets -> Maybe Text
$sel:maxItems:DescribeMountTargets' :: DescribeMountTargets -> Maybe Natural
$sel:marker:DescribeMountTargets' :: DescribeMountTargets -> Maybe Text
$sel:fileSystemId:DescribeMountTargets' :: DescribeMountTargets -> Maybe Text
$sel:accessPointId:DescribeMountTargets' :: DescribeMountTargets -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
accessPointId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
fileSystemId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
marker
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
maxItems
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
mountTargetId

instance Data.ToHeaders DescribeMountTargets where
  toHeaders :: DescribeMountTargets -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance Data.ToPath DescribeMountTargets where
  toPath :: DescribeMountTargets -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/2015-02-01/mount-targets"

instance Data.ToQuery DescribeMountTargets where
  toQuery :: DescribeMountTargets -> QueryString
toQuery DescribeMountTargets' {Maybe Natural
Maybe Text
mountTargetId :: Maybe Text
maxItems :: Maybe Natural
marker :: Maybe Text
fileSystemId :: Maybe Text
accessPointId :: Maybe Text
$sel:mountTargetId:DescribeMountTargets' :: DescribeMountTargets -> Maybe Text
$sel:maxItems:DescribeMountTargets' :: DescribeMountTargets -> Maybe Natural
$sel:marker:DescribeMountTargets' :: DescribeMountTargets -> Maybe Text
$sel:fileSystemId:DescribeMountTargets' :: DescribeMountTargets -> Maybe Text
$sel:accessPointId:DescribeMountTargets' :: DescribeMountTargets -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"AccessPointId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
accessPointId,
        ByteString
"FileSystemId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
fileSystemId,
        ByteString
"Marker" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
marker,
        ByteString
"MaxItems" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Natural
maxItems,
        ByteString
"MountTargetId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
mountTargetId
      ]

-- |
--
-- /See:/ 'newDescribeMountTargetsResponse' smart constructor.
data DescribeMountTargetsResponse = DescribeMountTargetsResponse'
  { -- | If the request included the @Marker@, the response returns that value in
    -- this field.
    DescribeMountTargetsResponse -> Maybe Text
marker :: Prelude.Maybe Prelude.Text,
    -- | Returns the file system\'s mount targets as an array of
    -- @MountTargetDescription@ objects.
    DescribeMountTargetsResponse -> Maybe [MountTargetDescription]
mountTargets :: Prelude.Maybe [MountTargetDescription],
    -- | If a value is present, there are more mount targets to return. In a
    -- subsequent request, you can provide @Marker@ in your request with this
    -- value to retrieve the next set of mount targets.
    DescribeMountTargetsResponse -> Maybe Text
nextMarker :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeMountTargetsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeMountTargetsResponse
-> DescribeMountTargetsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeMountTargetsResponse
-> DescribeMountTargetsResponse -> Bool
$c/= :: DescribeMountTargetsResponse
-> DescribeMountTargetsResponse -> Bool
== :: DescribeMountTargetsResponse
-> DescribeMountTargetsResponse -> Bool
$c== :: DescribeMountTargetsResponse
-> DescribeMountTargetsResponse -> Bool
Prelude.Eq, ReadPrec [DescribeMountTargetsResponse]
ReadPrec DescribeMountTargetsResponse
Int -> ReadS DescribeMountTargetsResponse
ReadS [DescribeMountTargetsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeMountTargetsResponse]
$creadListPrec :: ReadPrec [DescribeMountTargetsResponse]
readPrec :: ReadPrec DescribeMountTargetsResponse
$creadPrec :: ReadPrec DescribeMountTargetsResponse
readList :: ReadS [DescribeMountTargetsResponse]
$creadList :: ReadS [DescribeMountTargetsResponse]
readsPrec :: Int -> ReadS DescribeMountTargetsResponse
$creadsPrec :: Int -> ReadS DescribeMountTargetsResponse
Prelude.Read, Int -> DescribeMountTargetsResponse -> ShowS
[DescribeMountTargetsResponse] -> ShowS
DescribeMountTargetsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeMountTargetsResponse] -> ShowS
$cshowList :: [DescribeMountTargetsResponse] -> ShowS
show :: DescribeMountTargetsResponse -> String
$cshow :: DescribeMountTargetsResponse -> String
showsPrec :: Int -> DescribeMountTargetsResponse -> ShowS
$cshowsPrec :: Int -> DescribeMountTargetsResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeMountTargetsResponse x -> DescribeMountTargetsResponse
forall x.
DescribeMountTargetsResponse -> Rep DescribeMountTargetsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeMountTargetsResponse x -> DescribeMountTargetsResponse
$cfrom :: forall x.
DescribeMountTargetsResponse -> Rep DescribeMountTargetsResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeMountTargetsResponse' 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:
--
-- 'marker', 'describeMountTargetsResponse_marker' - If the request included the @Marker@, the response returns that value in
-- this field.
--
-- 'mountTargets', 'describeMountTargetsResponse_mountTargets' - Returns the file system\'s mount targets as an array of
-- @MountTargetDescription@ objects.
--
-- 'nextMarker', 'describeMountTargetsResponse_nextMarker' - If a value is present, there are more mount targets to return. In a
-- subsequent request, you can provide @Marker@ in your request with this
-- value to retrieve the next set of mount targets.
--
-- 'httpStatus', 'describeMountTargetsResponse_httpStatus' - The response's http status code.
newDescribeMountTargetsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeMountTargetsResponse
newDescribeMountTargetsResponse :: Int -> DescribeMountTargetsResponse
newDescribeMountTargetsResponse Int
pHttpStatus_ =
  DescribeMountTargetsResponse'
    { $sel:marker:DescribeMountTargetsResponse' :: Maybe Text
marker =
        forall a. Maybe a
Prelude.Nothing,
      $sel:mountTargets:DescribeMountTargetsResponse' :: Maybe [MountTargetDescription]
mountTargets = forall a. Maybe a
Prelude.Nothing,
      $sel:nextMarker:DescribeMountTargetsResponse' :: Maybe Text
nextMarker = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeMountTargetsResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | If the request included the @Marker@, the response returns that value in
-- this field.
describeMountTargetsResponse_marker :: Lens.Lens' DescribeMountTargetsResponse (Prelude.Maybe Prelude.Text)
describeMountTargetsResponse_marker :: Lens' DescribeMountTargetsResponse (Maybe Text)
describeMountTargetsResponse_marker = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMountTargetsResponse' {Maybe Text
marker :: Maybe Text
$sel:marker:DescribeMountTargetsResponse' :: DescribeMountTargetsResponse -> Maybe Text
marker} -> Maybe Text
marker) (\s :: DescribeMountTargetsResponse
s@DescribeMountTargetsResponse' {} Maybe Text
a -> DescribeMountTargetsResponse
s {$sel:marker:DescribeMountTargetsResponse' :: Maybe Text
marker = Maybe Text
a} :: DescribeMountTargetsResponse)

-- | Returns the file system\'s mount targets as an array of
-- @MountTargetDescription@ objects.
describeMountTargetsResponse_mountTargets :: Lens.Lens' DescribeMountTargetsResponse (Prelude.Maybe [MountTargetDescription])
describeMountTargetsResponse_mountTargets :: Lens' DescribeMountTargetsResponse (Maybe [MountTargetDescription])
describeMountTargetsResponse_mountTargets = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMountTargetsResponse' {Maybe [MountTargetDescription]
mountTargets :: Maybe [MountTargetDescription]
$sel:mountTargets:DescribeMountTargetsResponse' :: DescribeMountTargetsResponse -> Maybe [MountTargetDescription]
mountTargets} -> Maybe [MountTargetDescription]
mountTargets) (\s :: DescribeMountTargetsResponse
s@DescribeMountTargetsResponse' {} Maybe [MountTargetDescription]
a -> DescribeMountTargetsResponse
s {$sel:mountTargets:DescribeMountTargetsResponse' :: Maybe [MountTargetDescription]
mountTargets = Maybe [MountTargetDescription]
a} :: DescribeMountTargetsResponse) 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

-- | If a value is present, there are more mount targets to return. In a
-- subsequent request, you can provide @Marker@ in your request with this
-- value to retrieve the next set of mount targets.
describeMountTargetsResponse_nextMarker :: Lens.Lens' DescribeMountTargetsResponse (Prelude.Maybe Prelude.Text)
describeMountTargetsResponse_nextMarker :: Lens' DescribeMountTargetsResponse (Maybe Text)
describeMountTargetsResponse_nextMarker = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMountTargetsResponse' {Maybe Text
nextMarker :: Maybe Text
$sel:nextMarker:DescribeMountTargetsResponse' :: DescribeMountTargetsResponse -> Maybe Text
nextMarker} -> Maybe Text
nextMarker) (\s :: DescribeMountTargetsResponse
s@DescribeMountTargetsResponse' {} Maybe Text
a -> DescribeMountTargetsResponse
s {$sel:nextMarker:DescribeMountTargetsResponse' :: Maybe Text
nextMarker = Maybe Text
a} :: DescribeMountTargetsResponse)

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

instance Prelude.NFData DescribeMountTargetsResponse where
  rnf :: DescribeMountTargetsResponse -> ()
rnf DescribeMountTargetsResponse' {Int
Maybe [MountTargetDescription]
Maybe Text
httpStatus :: Int
nextMarker :: Maybe Text
mountTargets :: Maybe [MountTargetDescription]
marker :: Maybe Text
$sel:httpStatus:DescribeMountTargetsResponse' :: DescribeMountTargetsResponse -> Int
$sel:nextMarker:DescribeMountTargetsResponse' :: DescribeMountTargetsResponse -> Maybe Text
$sel:mountTargets:DescribeMountTargetsResponse' :: DescribeMountTargetsResponse -> Maybe [MountTargetDescription]
$sel:marker:DescribeMountTargetsResponse' :: DescribeMountTargetsResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
marker
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [MountTargetDescription]
mountTargets
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextMarker
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus