{-# 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.DescribeFleets
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves a list that describes one or more specified fleets, if the
-- fleet names are provided. Otherwise, all fleets in the account are
-- described.
--
-- This operation returns paginated results.
module Amazonka.AppStream.DescribeFleets
  ( -- * Creating a Request
    DescribeFleets (..),
    newDescribeFleets,

    -- * Request Lenses
    describeFleets_nextToken,
    describeFleets_names,

    -- * Destructuring the Response
    DescribeFleetsResponse (..),
    newDescribeFleetsResponse,

    -- * Response Lenses
    describeFleetsResponse_nextToken,
    describeFleetsResponse_fleets,
    describeFleetsResponse_httpStatus,
  )
where

import Amazonka.AppStream.Types
import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newDescribeFleets' smart constructor.
data DescribeFleets = DescribeFleets'
  { -- | 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.
    DescribeFleets -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The names of the fleets to describe.
    DescribeFleets -> Maybe [Text]
names :: Prelude.Maybe [Prelude.Text]
  }
  deriving (DescribeFleets -> DescribeFleets -> Bool
(DescribeFleets -> DescribeFleets -> Bool)
-> (DescribeFleets -> DescribeFleets -> Bool) -> Eq DescribeFleets
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeFleets -> DescribeFleets -> Bool
$c/= :: DescribeFleets -> DescribeFleets -> Bool
== :: DescribeFleets -> DescribeFleets -> Bool
$c== :: DescribeFleets -> DescribeFleets -> Bool
Prelude.Eq, ReadPrec [DescribeFleets]
ReadPrec DescribeFleets
Int -> ReadS DescribeFleets
ReadS [DescribeFleets]
(Int -> ReadS DescribeFleets)
-> ReadS [DescribeFleets]
-> ReadPrec DescribeFleets
-> ReadPrec [DescribeFleets]
-> Read DescribeFleets
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeFleets]
$creadListPrec :: ReadPrec [DescribeFleets]
readPrec :: ReadPrec DescribeFleets
$creadPrec :: ReadPrec DescribeFleets
readList :: ReadS [DescribeFleets]
$creadList :: ReadS [DescribeFleets]
readsPrec :: Int -> ReadS DescribeFleets
$creadsPrec :: Int -> ReadS DescribeFleets
Prelude.Read, Int -> DescribeFleets -> ShowS
[DescribeFleets] -> ShowS
DescribeFleets -> String
(Int -> DescribeFleets -> ShowS)
-> (DescribeFleets -> String)
-> ([DescribeFleets] -> ShowS)
-> Show DescribeFleets
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeFleets] -> ShowS
$cshowList :: [DescribeFleets] -> ShowS
show :: DescribeFleets -> String
$cshow :: DescribeFleets -> String
showsPrec :: Int -> DescribeFleets -> ShowS
$cshowsPrec :: Int -> DescribeFleets -> ShowS
Prelude.Show, (forall x. DescribeFleets -> Rep DescribeFleets x)
-> (forall x. Rep DescribeFleets x -> DescribeFleets)
-> Generic DescribeFleets
forall x. Rep DescribeFleets x -> DescribeFleets
forall x. DescribeFleets -> Rep DescribeFleets x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeFleets x -> DescribeFleets
$cfrom :: forall x. DescribeFleets -> Rep DescribeFleets x
Prelude.Generic)

-- |
-- Create a value of 'DescribeFleets' 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:
--
-- 'nextToken', 'describeFleets_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.
--
-- 'names', 'describeFleets_names' - The names of the fleets to describe.
newDescribeFleets ::
  DescribeFleets
newDescribeFleets :: DescribeFleets
newDescribeFleets =
  DescribeFleets' :: Maybe Text -> Maybe [Text] -> DescribeFleets
DescribeFleets'
    { $sel:nextToken:DescribeFleets' :: Maybe Text
nextToken = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:names:DescribeFleets' :: Maybe [Text]
names = Maybe [Text]
forall a. Maybe a
Prelude.Nothing
    }

-- | 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.
describeFleets_nextToken :: Lens.Lens' DescribeFleets (Prelude.Maybe Prelude.Text)
describeFleets_nextToken :: (Maybe Text -> f (Maybe Text))
-> DescribeFleets -> f DescribeFleets
describeFleets_nextToken = (DescribeFleets -> Maybe Text)
-> (DescribeFleets -> Maybe Text -> DescribeFleets)
-> Lens DescribeFleets DescribeFleets (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFleets' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeFleets' :: DescribeFleets -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeFleets
s@DescribeFleets' {} Maybe Text
a -> DescribeFleets
s {$sel:nextToken:DescribeFleets' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeFleets)

-- | The names of the fleets to describe.
describeFleets_names :: Lens.Lens' DescribeFleets (Prelude.Maybe [Prelude.Text])
describeFleets_names :: (Maybe [Text] -> f (Maybe [Text]))
-> DescribeFleets -> f DescribeFleets
describeFleets_names = (DescribeFleets -> Maybe [Text])
-> (DescribeFleets -> Maybe [Text] -> DescribeFleets)
-> Lens DescribeFleets DescribeFleets (Maybe [Text]) (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFleets' {Maybe [Text]
names :: Maybe [Text]
$sel:names:DescribeFleets' :: DescribeFleets -> Maybe [Text]
names} -> Maybe [Text]
names) (\s :: DescribeFleets
s@DescribeFleets' {} Maybe [Text]
a -> DescribeFleets
s {$sel:names:DescribeFleets' :: Maybe [Text]
names = Maybe [Text]
a} :: DescribeFleets) ((Maybe [Text] -> f (Maybe [Text]))
 -> DescribeFleets -> f DescribeFleets)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> DescribeFleets
-> f DescribeFleets
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Text] [Text] [Text] [Text]
-> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text])
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 AnIso [Text] [Text] [Text] [Text]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance Core.AWSPager DescribeFleets where
  page :: DescribeFleets
-> AWSResponse DescribeFleets -> Maybe DescribeFleets
page DescribeFleets
rq AWSResponse DescribeFleets
rs
    | Maybe Text -> Bool
forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeFleets
DescribeFleetsResponse
rs
            DescribeFleetsResponse
-> Getting (First Text) DescribeFleetsResponse Text -> Maybe Text
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? (Maybe Text -> Const (First Text) (Maybe Text))
-> DescribeFleetsResponse
-> Const (First Text) DescribeFleetsResponse
Lens' DescribeFleetsResponse (Maybe Text)
describeFleetsResponse_nextToken
              ((Maybe Text -> Const (First Text) (Maybe Text))
 -> DescribeFleetsResponse
 -> Const (First Text) DescribeFleetsResponse)
-> ((Text -> Const (First Text) Text)
    -> Maybe Text -> Const (First Text) (Maybe Text))
-> Getting (First Text) DescribeFleetsResponse Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. (Text -> Const (First Text) Text)
-> Maybe Text -> Const (First Text) (Maybe Text)
forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
      Maybe DescribeFleets
forall a. Maybe a
Prelude.Nothing
    | Maybe [Fleet] -> Bool
forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeFleets
DescribeFleetsResponse
rs
            DescribeFleetsResponse
-> Getting (First [Fleet]) DescribeFleetsResponse [Fleet]
-> Maybe [Fleet]
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? (Maybe [Fleet] -> Const (First [Fleet]) (Maybe [Fleet]))
-> DescribeFleetsResponse
-> Const (First [Fleet]) DescribeFleetsResponse
Lens' DescribeFleetsResponse (Maybe [Fleet])
describeFleetsResponse_fleets ((Maybe [Fleet] -> Const (First [Fleet]) (Maybe [Fleet]))
 -> DescribeFleetsResponse
 -> Const (First [Fleet]) DescribeFleetsResponse)
-> (([Fleet] -> Const (First [Fleet]) [Fleet])
    -> Maybe [Fleet] -> Const (First [Fleet]) (Maybe [Fleet]))
-> Getting (First [Fleet]) DescribeFleetsResponse [Fleet]
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. ([Fleet] -> Const (First [Fleet]) [Fleet])
-> Maybe [Fleet] -> Const (First [Fleet]) (Maybe [Fleet])
forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
      Maybe DescribeFleets
forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
      DescribeFleets -> Maybe DescribeFleets
forall a. a -> Maybe a
Prelude.Just (DescribeFleets -> Maybe DescribeFleets)
-> DescribeFleets -> Maybe DescribeFleets
forall a b. (a -> b) -> a -> b
Prelude.$
        DescribeFleets
rq
          DescribeFleets
-> (DescribeFleets -> DescribeFleets) -> DescribeFleets
forall a b. a -> (a -> b) -> b
Prelude.& (Maybe Text -> Identity (Maybe Text))
-> DescribeFleets -> Identity DescribeFleets
Lens DescribeFleets DescribeFleets (Maybe Text) (Maybe Text)
describeFleets_nextToken
          ((Maybe Text -> Identity (Maybe Text))
 -> DescribeFleets -> Identity DescribeFleets)
-> Maybe Text -> DescribeFleets -> DescribeFleets
forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse DescribeFleets
DescribeFleetsResponse
rs
          DescribeFleetsResponse
-> Getting (First Text) DescribeFleetsResponse Text -> Maybe Text
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? (Maybe Text -> Const (First Text) (Maybe Text))
-> DescribeFleetsResponse
-> Const (First Text) DescribeFleetsResponse
Lens' DescribeFleetsResponse (Maybe Text)
describeFleetsResponse_nextToken ((Maybe Text -> Const (First Text) (Maybe Text))
 -> DescribeFleetsResponse
 -> Const (First Text) DescribeFleetsResponse)
-> ((Text -> Const (First Text) Text)
    -> Maybe Text -> Const (First Text) (Maybe Text))
-> Getting (First Text) DescribeFleetsResponse Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. (Text -> Const (First Text) Text)
-> Maybe Text -> Const (First Text) (Maybe Text)
forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just

instance Core.AWSRequest DescribeFleets where
  type
    AWSResponse DescribeFleets =
      DescribeFleetsResponse
  request :: DescribeFleets -> Request DescribeFleets
request = Service -> DescribeFleets -> Request DescribeFleets
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON Service
defaultService
  response :: Logger
-> Service
-> Proxy DescribeFleets
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeFleets)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse DescribeFleets))
-> Logger
-> Service
-> Proxy DescribeFleets
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeFleets)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text -> Maybe [Fleet] -> Int -> DescribeFleetsResponse
DescribeFleetsResponse'
            (Maybe Text -> Maybe [Fleet] -> Int -> DescribeFleetsResponse)
-> Either String (Maybe Text)
-> Either String (Maybe [Fleet] -> Int -> DescribeFleetsResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"NextToken")
            Either String (Maybe [Fleet] -> Int -> DescribeFleetsResponse)
-> Either String (Maybe [Fleet])
-> Either String (Int -> DescribeFleetsResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe (Maybe [Fleet]))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"Fleets" Either String (Maybe (Maybe [Fleet]))
-> Maybe [Fleet] -> Either String (Maybe [Fleet])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [Fleet]
forall a. Monoid a => a
Prelude.mempty)
            Either String (Int -> DescribeFleetsResponse)
-> Either String Int -> Either String DescribeFleetsResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable DescribeFleets

instance Prelude.NFData DescribeFleets

instance Core.ToHeaders DescribeFleets where
  toHeaders :: DescribeFleets -> ResponseHeaders
toHeaders =
    ResponseHeaders -> DescribeFleets -> ResponseHeaders
forall a b. a -> b -> a
Prelude.const
      ( [ResponseHeaders] -> ResponseHeaders
forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"PhotonAdminProxyService.DescribeFleets" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Core.ToJSON DescribeFleets where
  toJSON :: DescribeFleets -> Value
toJSON DescribeFleets' {Maybe [Text]
Maybe Text
names :: Maybe [Text]
nextToken :: Maybe Text
$sel:names:DescribeFleets' :: DescribeFleets -> Maybe [Text]
$sel:nextToken:DescribeFleets' :: DescribeFleets -> Maybe Text
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"NextToken" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
nextToken,
            (Text
"Names" Text -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) ([Text] -> Pair) -> Maybe [Text] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
names
          ]
      )

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

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

-- | /See:/ 'newDescribeFleetsResponse' smart constructor.
data DescribeFleetsResponse = DescribeFleetsResponse'
  { -- | 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.
    DescribeFleetsResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | Information about the fleets.
    DescribeFleetsResponse -> Maybe [Fleet]
fleets :: Prelude.Maybe [Fleet],
    -- | The response's http status code.
    DescribeFleetsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeFleetsResponse -> DescribeFleetsResponse -> Bool
(DescribeFleetsResponse -> DescribeFleetsResponse -> Bool)
-> (DescribeFleetsResponse -> DescribeFleetsResponse -> Bool)
-> Eq DescribeFleetsResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeFleetsResponse -> DescribeFleetsResponse -> Bool
$c/= :: DescribeFleetsResponse -> DescribeFleetsResponse -> Bool
== :: DescribeFleetsResponse -> DescribeFleetsResponse -> Bool
$c== :: DescribeFleetsResponse -> DescribeFleetsResponse -> Bool
Prelude.Eq, ReadPrec [DescribeFleetsResponse]
ReadPrec DescribeFleetsResponse
Int -> ReadS DescribeFleetsResponse
ReadS [DescribeFleetsResponse]
(Int -> ReadS DescribeFleetsResponse)
-> ReadS [DescribeFleetsResponse]
-> ReadPrec DescribeFleetsResponse
-> ReadPrec [DescribeFleetsResponse]
-> Read DescribeFleetsResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeFleetsResponse]
$creadListPrec :: ReadPrec [DescribeFleetsResponse]
readPrec :: ReadPrec DescribeFleetsResponse
$creadPrec :: ReadPrec DescribeFleetsResponse
readList :: ReadS [DescribeFleetsResponse]
$creadList :: ReadS [DescribeFleetsResponse]
readsPrec :: Int -> ReadS DescribeFleetsResponse
$creadsPrec :: Int -> ReadS DescribeFleetsResponse
Prelude.Read, Int -> DescribeFleetsResponse -> ShowS
[DescribeFleetsResponse] -> ShowS
DescribeFleetsResponse -> String
(Int -> DescribeFleetsResponse -> ShowS)
-> (DescribeFleetsResponse -> String)
-> ([DescribeFleetsResponse] -> ShowS)
-> Show DescribeFleetsResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeFleetsResponse] -> ShowS
$cshowList :: [DescribeFleetsResponse] -> ShowS
show :: DescribeFleetsResponse -> String
$cshow :: DescribeFleetsResponse -> String
showsPrec :: Int -> DescribeFleetsResponse -> ShowS
$cshowsPrec :: Int -> DescribeFleetsResponse -> ShowS
Prelude.Show, (forall x. DescribeFleetsResponse -> Rep DescribeFleetsResponse x)
-> (forall x.
    Rep DescribeFleetsResponse x -> DescribeFleetsResponse)
-> Generic DescribeFleetsResponse
forall x. Rep DescribeFleetsResponse x -> DescribeFleetsResponse
forall x. DescribeFleetsResponse -> Rep DescribeFleetsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeFleetsResponse x -> DescribeFleetsResponse
$cfrom :: forall x. DescribeFleetsResponse -> Rep DescribeFleetsResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeFleetsResponse' 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:
--
-- 'nextToken', 'describeFleetsResponse_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.
--
-- 'fleets', 'describeFleetsResponse_fleets' - Information about the fleets.
--
-- 'httpStatus', 'describeFleetsResponse_httpStatus' - The response's http status code.
newDescribeFleetsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeFleetsResponse
newDescribeFleetsResponse :: Int -> DescribeFleetsResponse
newDescribeFleetsResponse Int
pHttpStatus_ =
  DescribeFleetsResponse' :: Maybe Text -> Maybe [Fleet] -> Int -> DescribeFleetsResponse
DescribeFleetsResponse'
    { $sel:nextToken:DescribeFleetsResponse' :: Maybe Text
nextToken =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:fleets:DescribeFleetsResponse' :: Maybe [Fleet]
fleets = Maybe [Fleet]
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeFleetsResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | 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.
describeFleetsResponse_nextToken :: Lens.Lens' DescribeFleetsResponse (Prelude.Maybe Prelude.Text)
describeFleetsResponse_nextToken :: (Maybe Text -> f (Maybe Text))
-> DescribeFleetsResponse -> f DescribeFleetsResponse
describeFleetsResponse_nextToken = (DescribeFleetsResponse -> Maybe Text)
-> (DescribeFleetsResponse -> Maybe Text -> DescribeFleetsResponse)
-> Lens' DescribeFleetsResponse (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFleetsResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeFleetsResponse' :: DescribeFleetsResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeFleetsResponse
s@DescribeFleetsResponse' {} Maybe Text
a -> DescribeFleetsResponse
s {$sel:nextToken:DescribeFleetsResponse' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeFleetsResponse)

-- | Information about the fleets.
describeFleetsResponse_fleets :: Lens.Lens' DescribeFleetsResponse (Prelude.Maybe [Fleet])
describeFleetsResponse_fleets :: (Maybe [Fleet] -> f (Maybe [Fleet]))
-> DescribeFleetsResponse -> f DescribeFleetsResponse
describeFleetsResponse_fleets = (DescribeFleetsResponse -> Maybe [Fleet])
-> (DescribeFleetsResponse
    -> Maybe [Fleet] -> DescribeFleetsResponse)
-> Lens' DescribeFleetsResponse (Maybe [Fleet])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFleetsResponse' {Maybe [Fleet]
fleets :: Maybe [Fleet]
$sel:fleets:DescribeFleetsResponse' :: DescribeFleetsResponse -> Maybe [Fleet]
fleets} -> Maybe [Fleet]
fleets) (\s :: DescribeFleetsResponse
s@DescribeFleetsResponse' {} Maybe [Fleet]
a -> DescribeFleetsResponse
s {$sel:fleets:DescribeFleetsResponse' :: Maybe [Fleet]
fleets = Maybe [Fleet]
a} :: DescribeFleetsResponse) ((Maybe [Fleet] -> f (Maybe [Fleet]))
 -> DescribeFleetsResponse -> f DescribeFleetsResponse)
-> ((Maybe [Fleet] -> f (Maybe [Fleet]))
    -> Maybe [Fleet] -> f (Maybe [Fleet]))
-> (Maybe [Fleet] -> f (Maybe [Fleet]))
-> DescribeFleetsResponse
-> f DescribeFleetsResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Fleet] [Fleet] [Fleet] [Fleet]
-> Iso
     (Maybe [Fleet]) (Maybe [Fleet]) (Maybe [Fleet]) (Maybe [Fleet])
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 AnIso [Fleet] [Fleet] [Fleet] [Fleet]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

instance Prelude.NFData DescribeFleetsResponse