{-# 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.EC2.DescribeFleetInstances
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Describes the running instances for the specified EC2 Fleet.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#monitor-ec2-fleet Monitor your EC2 Fleet>
-- in the /Amazon EC2 User Guide/.
module Amazonka.EC2.DescribeFleetInstances
  ( -- * Creating a Request
    DescribeFleetInstances (..),
    newDescribeFleetInstances,

    -- * Request Lenses
    describeFleetInstances_dryRun,
    describeFleetInstances_filters,
    describeFleetInstances_maxResults,
    describeFleetInstances_nextToken,
    describeFleetInstances_fleetId,

    -- * Destructuring the Response
    DescribeFleetInstancesResponse (..),
    newDescribeFleetInstancesResponse,

    -- * Response Lenses
    describeFleetInstancesResponse_activeInstances,
    describeFleetInstancesResponse_fleetId,
    describeFleetInstancesResponse_nextToken,
    describeFleetInstancesResponse_httpStatus,
  )
where

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

-- | /See:/ 'newDescribeFleetInstances' smart constructor.
data DescribeFleetInstances = DescribeFleetInstances'
  { -- | Checks whether you have the required permissions for the action, without
    -- actually making the request, and provides an error response. If you have
    -- the required permissions, the error response is @DryRunOperation@.
    -- Otherwise, it is @UnauthorizedOperation@.
    DescribeFleetInstances -> Maybe Bool
dryRun :: Prelude.Maybe Prelude.Bool,
    -- | The filters.
    --
    -- -   @instance-type@ - The instance type.
    DescribeFleetInstances -> Maybe [Filter]
filters :: Prelude.Maybe [Filter],
    -- | The maximum number of results to return in a single call. Specify a
    -- value between 1 and 1000. The default value is 1000. To retrieve the
    -- remaining results, make another call with the returned @NextToken@
    -- value.
    DescribeFleetInstances -> Maybe Int
maxResults :: Prelude.Maybe Prelude.Int,
    -- | The token for the next set of results.
    DescribeFleetInstances -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The ID of the EC2 Fleet.
    DescribeFleetInstances -> Text
fleetId :: Prelude.Text
  }
  deriving (DescribeFleetInstances -> DescribeFleetInstances -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeFleetInstances -> DescribeFleetInstances -> Bool
$c/= :: DescribeFleetInstances -> DescribeFleetInstances -> Bool
== :: DescribeFleetInstances -> DescribeFleetInstances -> Bool
$c== :: DescribeFleetInstances -> DescribeFleetInstances -> Bool
Prelude.Eq, ReadPrec [DescribeFleetInstances]
ReadPrec DescribeFleetInstances
Int -> ReadS DescribeFleetInstances
ReadS [DescribeFleetInstances]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeFleetInstances]
$creadListPrec :: ReadPrec [DescribeFleetInstances]
readPrec :: ReadPrec DescribeFleetInstances
$creadPrec :: ReadPrec DescribeFleetInstances
readList :: ReadS [DescribeFleetInstances]
$creadList :: ReadS [DescribeFleetInstances]
readsPrec :: Int -> ReadS DescribeFleetInstances
$creadsPrec :: Int -> ReadS DescribeFleetInstances
Prelude.Read, Int -> DescribeFleetInstances -> ShowS
[DescribeFleetInstances] -> ShowS
DescribeFleetInstances -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeFleetInstances] -> ShowS
$cshowList :: [DescribeFleetInstances] -> ShowS
show :: DescribeFleetInstances -> String
$cshow :: DescribeFleetInstances -> String
showsPrec :: Int -> DescribeFleetInstances -> ShowS
$cshowsPrec :: Int -> DescribeFleetInstances -> ShowS
Prelude.Show, forall x. Rep DescribeFleetInstances x -> DescribeFleetInstances
forall x. DescribeFleetInstances -> Rep DescribeFleetInstances x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeFleetInstances x -> DescribeFleetInstances
$cfrom :: forall x. DescribeFleetInstances -> Rep DescribeFleetInstances x
Prelude.Generic)

-- |
-- Create a value of 'DescribeFleetInstances' 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:
--
-- 'dryRun', 'describeFleetInstances_dryRun' - Checks whether you have the required permissions for the action, without
-- actually making the request, and provides an error response. If you have
-- the required permissions, the error response is @DryRunOperation@.
-- Otherwise, it is @UnauthorizedOperation@.
--
-- 'filters', 'describeFleetInstances_filters' - The filters.
--
-- -   @instance-type@ - The instance type.
--
-- 'maxResults', 'describeFleetInstances_maxResults' - The maximum number of results to return in a single call. Specify a
-- value between 1 and 1000. The default value is 1000. To retrieve the
-- remaining results, make another call with the returned @NextToken@
-- value.
--
-- 'nextToken', 'describeFleetInstances_nextToken' - The token for the next set of results.
--
-- 'fleetId', 'describeFleetInstances_fleetId' - The ID of the EC2 Fleet.
newDescribeFleetInstances ::
  -- | 'fleetId'
  Prelude.Text ->
  DescribeFleetInstances
newDescribeFleetInstances :: Text -> DescribeFleetInstances
newDescribeFleetInstances Text
pFleetId_ =
  DescribeFleetInstances'
    { $sel:dryRun:DescribeFleetInstances' :: Maybe Bool
dryRun = forall a. Maybe a
Prelude.Nothing,
      $sel:filters:DescribeFleetInstances' :: Maybe [Filter]
filters = forall a. Maybe a
Prelude.Nothing,
      $sel:maxResults:DescribeFleetInstances' :: Maybe Int
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:DescribeFleetInstances' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:fleetId:DescribeFleetInstances' :: Text
fleetId = Text
pFleetId_
    }

-- | Checks whether you have the required permissions for the action, without
-- actually making the request, and provides an error response. If you have
-- the required permissions, the error response is @DryRunOperation@.
-- Otherwise, it is @UnauthorizedOperation@.
describeFleetInstances_dryRun :: Lens.Lens' DescribeFleetInstances (Prelude.Maybe Prelude.Bool)
describeFleetInstances_dryRun :: Lens' DescribeFleetInstances (Maybe Bool)
describeFleetInstances_dryRun = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFleetInstances' {Maybe Bool
dryRun :: Maybe Bool
$sel:dryRun:DescribeFleetInstances' :: DescribeFleetInstances -> Maybe Bool
dryRun} -> Maybe Bool
dryRun) (\s :: DescribeFleetInstances
s@DescribeFleetInstances' {} Maybe Bool
a -> DescribeFleetInstances
s {$sel:dryRun:DescribeFleetInstances' :: Maybe Bool
dryRun = Maybe Bool
a} :: DescribeFleetInstances)

-- | The filters.
--
-- -   @instance-type@ - The instance type.
describeFleetInstances_filters :: Lens.Lens' DescribeFleetInstances (Prelude.Maybe [Filter])
describeFleetInstances_filters :: Lens' DescribeFleetInstances (Maybe [Filter])
describeFleetInstances_filters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFleetInstances' {Maybe [Filter]
filters :: Maybe [Filter]
$sel:filters:DescribeFleetInstances' :: DescribeFleetInstances -> Maybe [Filter]
filters} -> Maybe [Filter]
filters) (\s :: DescribeFleetInstances
s@DescribeFleetInstances' {} Maybe [Filter]
a -> DescribeFleetInstances
s {$sel:filters:DescribeFleetInstances' :: Maybe [Filter]
filters = Maybe [Filter]
a} :: DescribeFleetInstances) 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 number of results to return in a single call. Specify a
-- value between 1 and 1000. The default value is 1000. To retrieve the
-- remaining results, make another call with the returned @NextToken@
-- value.
describeFleetInstances_maxResults :: Lens.Lens' DescribeFleetInstances (Prelude.Maybe Prelude.Int)
describeFleetInstances_maxResults :: Lens' DescribeFleetInstances (Maybe Int)
describeFleetInstances_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFleetInstances' {Maybe Int
maxResults :: Maybe Int
$sel:maxResults:DescribeFleetInstances' :: DescribeFleetInstances -> Maybe Int
maxResults} -> Maybe Int
maxResults) (\s :: DescribeFleetInstances
s@DescribeFleetInstances' {} Maybe Int
a -> DescribeFleetInstances
s {$sel:maxResults:DescribeFleetInstances' :: Maybe Int
maxResults = Maybe Int
a} :: DescribeFleetInstances)

-- | The token for the next set of results.
describeFleetInstances_nextToken :: Lens.Lens' DescribeFleetInstances (Prelude.Maybe Prelude.Text)
describeFleetInstances_nextToken :: Lens' DescribeFleetInstances (Maybe Text)
describeFleetInstances_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFleetInstances' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeFleetInstances' :: DescribeFleetInstances -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeFleetInstances
s@DescribeFleetInstances' {} Maybe Text
a -> DescribeFleetInstances
s {$sel:nextToken:DescribeFleetInstances' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeFleetInstances)

-- | The ID of the EC2 Fleet.
describeFleetInstances_fleetId :: Lens.Lens' DescribeFleetInstances Prelude.Text
describeFleetInstances_fleetId :: Lens' DescribeFleetInstances Text
describeFleetInstances_fleetId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFleetInstances' {Text
fleetId :: Text
$sel:fleetId:DescribeFleetInstances' :: DescribeFleetInstances -> Text
fleetId} -> Text
fleetId) (\s :: DescribeFleetInstances
s@DescribeFleetInstances' {} Text
a -> DescribeFleetInstances
s {$sel:fleetId:DescribeFleetInstances' :: Text
fleetId = Text
a} :: DescribeFleetInstances)

instance Core.AWSRequest DescribeFleetInstances where
  type
    AWSResponse DescribeFleetInstances =
      DescribeFleetInstancesResponse
  request :: (Service -> Service)
-> DescribeFleetInstances -> Request DescribeFleetInstances
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeFleetInstances
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeFleetInstances)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXML
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe [ActiveInstance]
-> Maybe Text
-> Maybe Text
-> Int
-> DescribeFleetInstancesResponse
DescribeFleetInstancesResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ( [Node]
x
                            forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"activeInstanceSet"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                            forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"fleetId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"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 DescribeFleetInstances where
  hashWithSalt :: Int -> DescribeFleetInstances -> Int
hashWithSalt Int
_salt DescribeFleetInstances' {Maybe Bool
Maybe Int
Maybe [Filter]
Maybe Text
Text
fleetId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Int
filters :: Maybe [Filter]
dryRun :: Maybe Bool
$sel:fleetId:DescribeFleetInstances' :: DescribeFleetInstances -> Text
$sel:nextToken:DescribeFleetInstances' :: DescribeFleetInstances -> Maybe Text
$sel:maxResults:DescribeFleetInstances' :: DescribeFleetInstances -> Maybe Int
$sel:filters:DescribeFleetInstances' :: DescribeFleetInstances -> Maybe [Filter]
$sel:dryRun:DescribeFleetInstances' :: DescribeFleetInstances -> Maybe Bool
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
dryRun
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Filter]
filters
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
maxResults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
fleetId

instance Prelude.NFData DescribeFleetInstances where
  rnf :: DescribeFleetInstances -> ()
rnf DescribeFleetInstances' {Maybe Bool
Maybe Int
Maybe [Filter]
Maybe Text
Text
fleetId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Int
filters :: Maybe [Filter]
dryRun :: Maybe Bool
$sel:fleetId:DescribeFleetInstances' :: DescribeFleetInstances -> Text
$sel:nextToken:DescribeFleetInstances' :: DescribeFleetInstances -> Maybe Text
$sel:maxResults:DescribeFleetInstances' :: DescribeFleetInstances -> Maybe Int
$sel:filters:DescribeFleetInstances' :: DescribeFleetInstances -> Maybe [Filter]
$sel:dryRun:DescribeFleetInstances' :: DescribeFleetInstances -> Maybe Bool
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
dryRun
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Filter]
filters
      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
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
fleetId

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

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

instance Data.ToQuery DescribeFleetInstances where
  toQuery :: DescribeFleetInstances -> QueryString
toQuery DescribeFleetInstances' {Maybe Bool
Maybe Int
Maybe [Filter]
Maybe Text
Text
fleetId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Int
filters :: Maybe [Filter]
dryRun :: Maybe Bool
$sel:fleetId:DescribeFleetInstances' :: DescribeFleetInstances -> Text
$sel:nextToken:DescribeFleetInstances' :: DescribeFleetInstances -> Maybe Text
$sel:maxResults:DescribeFleetInstances' :: DescribeFleetInstances -> Maybe Int
$sel:filters:DescribeFleetInstances' :: DescribeFleetInstances -> Maybe [Filter]
$sel:dryRun:DescribeFleetInstances' :: DescribeFleetInstances -> Maybe Bool
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"DescribeFleetInstances" :: Prelude.ByteString),
        ByteString
"Version"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2016-11-15" :: Prelude.ByteString),
        ByteString
"DryRun" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
dryRun,
        forall a. ToQuery a => a -> QueryString
Data.toQuery
          (forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"Filter" forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Filter]
filters),
        ByteString
"MaxResults" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
maxResults,
        ByteString
"NextToken" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
nextToken,
        ByteString
"FleetId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
fleetId
      ]

-- | /See:/ 'newDescribeFleetInstancesResponse' smart constructor.
data DescribeFleetInstancesResponse = DescribeFleetInstancesResponse'
  { -- | The running instances. This list is refreshed periodically and might be
    -- out of date.
    DescribeFleetInstancesResponse -> Maybe [ActiveInstance]
activeInstances :: Prelude.Maybe [ActiveInstance],
    -- | The ID of the EC2 Fleet.
    DescribeFleetInstancesResponse -> Maybe Text
fleetId :: Prelude.Maybe Prelude.Text,
    -- | The token for the next set of results.
    DescribeFleetInstancesResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeFleetInstancesResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeFleetInstancesResponse
-> DescribeFleetInstancesResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeFleetInstancesResponse
-> DescribeFleetInstancesResponse -> Bool
$c/= :: DescribeFleetInstancesResponse
-> DescribeFleetInstancesResponse -> Bool
== :: DescribeFleetInstancesResponse
-> DescribeFleetInstancesResponse -> Bool
$c== :: DescribeFleetInstancesResponse
-> DescribeFleetInstancesResponse -> Bool
Prelude.Eq, ReadPrec [DescribeFleetInstancesResponse]
ReadPrec DescribeFleetInstancesResponse
Int -> ReadS DescribeFleetInstancesResponse
ReadS [DescribeFleetInstancesResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeFleetInstancesResponse]
$creadListPrec :: ReadPrec [DescribeFleetInstancesResponse]
readPrec :: ReadPrec DescribeFleetInstancesResponse
$creadPrec :: ReadPrec DescribeFleetInstancesResponse
readList :: ReadS [DescribeFleetInstancesResponse]
$creadList :: ReadS [DescribeFleetInstancesResponse]
readsPrec :: Int -> ReadS DescribeFleetInstancesResponse
$creadsPrec :: Int -> ReadS DescribeFleetInstancesResponse
Prelude.Read, Int -> DescribeFleetInstancesResponse -> ShowS
[DescribeFleetInstancesResponse] -> ShowS
DescribeFleetInstancesResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeFleetInstancesResponse] -> ShowS
$cshowList :: [DescribeFleetInstancesResponse] -> ShowS
show :: DescribeFleetInstancesResponse -> String
$cshow :: DescribeFleetInstancesResponse -> String
showsPrec :: Int -> DescribeFleetInstancesResponse -> ShowS
$cshowsPrec :: Int -> DescribeFleetInstancesResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeFleetInstancesResponse x
-> DescribeFleetInstancesResponse
forall x.
DescribeFleetInstancesResponse
-> Rep DescribeFleetInstancesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeFleetInstancesResponse x
-> DescribeFleetInstancesResponse
$cfrom :: forall x.
DescribeFleetInstancesResponse
-> Rep DescribeFleetInstancesResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeFleetInstancesResponse' 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:
--
-- 'activeInstances', 'describeFleetInstancesResponse_activeInstances' - The running instances. This list is refreshed periodically and might be
-- out of date.
--
-- 'fleetId', 'describeFleetInstancesResponse_fleetId' - The ID of the EC2 Fleet.
--
-- 'nextToken', 'describeFleetInstancesResponse_nextToken' - The token for the next set of results.
--
-- 'httpStatus', 'describeFleetInstancesResponse_httpStatus' - The response's http status code.
newDescribeFleetInstancesResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeFleetInstancesResponse
newDescribeFleetInstancesResponse :: Int -> DescribeFleetInstancesResponse
newDescribeFleetInstancesResponse Int
pHttpStatus_ =
  DescribeFleetInstancesResponse'
    { $sel:activeInstances:DescribeFleetInstancesResponse' :: Maybe [ActiveInstance]
activeInstances =
        forall a. Maybe a
Prelude.Nothing,
      $sel:fleetId:DescribeFleetInstancesResponse' :: Maybe Text
fleetId = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:DescribeFleetInstancesResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeFleetInstancesResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The running instances. This list is refreshed periodically and might be
-- out of date.
describeFleetInstancesResponse_activeInstances :: Lens.Lens' DescribeFleetInstancesResponse (Prelude.Maybe [ActiveInstance])
describeFleetInstancesResponse_activeInstances :: Lens' DescribeFleetInstancesResponse (Maybe [ActiveInstance])
describeFleetInstancesResponse_activeInstances = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFleetInstancesResponse' {Maybe [ActiveInstance]
activeInstances :: Maybe [ActiveInstance]
$sel:activeInstances:DescribeFleetInstancesResponse' :: DescribeFleetInstancesResponse -> Maybe [ActiveInstance]
activeInstances} -> Maybe [ActiveInstance]
activeInstances) (\s :: DescribeFleetInstancesResponse
s@DescribeFleetInstancesResponse' {} Maybe [ActiveInstance]
a -> DescribeFleetInstancesResponse
s {$sel:activeInstances:DescribeFleetInstancesResponse' :: Maybe [ActiveInstance]
activeInstances = Maybe [ActiveInstance]
a} :: DescribeFleetInstancesResponse) 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 ID of the EC2 Fleet.
describeFleetInstancesResponse_fleetId :: Lens.Lens' DescribeFleetInstancesResponse (Prelude.Maybe Prelude.Text)
describeFleetInstancesResponse_fleetId :: Lens' DescribeFleetInstancesResponse (Maybe Text)
describeFleetInstancesResponse_fleetId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFleetInstancesResponse' {Maybe Text
fleetId :: Maybe Text
$sel:fleetId:DescribeFleetInstancesResponse' :: DescribeFleetInstancesResponse -> Maybe Text
fleetId} -> Maybe Text
fleetId) (\s :: DescribeFleetInstancesResponse
s@DescribeFleetInstancesResponse' {} Maybe Text
a -> DescribeFleetInstancesResponse
s {$sel:fleetId:DescribeFleetInstancesResponse' :: Maybe Text
fleetId = Maybe Text
a} :: DescribeFleetInstancesResponse)

-- | The token for the next set of results.
describeFleetInstancesResponse_nextToken :: Lens.Lens' DescribeFleetInstancesResponse (Prelude.Maybe Prelude.Text)
describeFleetInstancesResponse_nextToken :: Lens' DescribeFleetInstancesResponse (Maybe Text)
describeFleetInstancesResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFleetInstancesResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeFleetInstancesResponse' :: DescribeFleetInstancesResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeFleetInstancesResponse
s@DescribeFleetInstancesResponse' {} Maybe Text
a -> DescribeFleetInstancesResponse
s {$sel:nextToken:DescribeFleetInstancesResponse' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeFleetInstancesResponse)

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

instance
  Prelude.NFData
    DescribeFleetInstancesResponse
  where
  rnf :: DescribeFleetInstancesResponse -> ()
rnf DescribeFleetInstancesResponse' {Int
Maybe [ActiveInstance]
Maybe Text
httpStatus :: Int
nextToken :: Maybe Text
fleetId :: Maybe Text
activeInstances :: Maybe [ActiveInstance]
$sel:httpStatus:DescribeFleetInstancesResponse' :: DescribeFleetInstancesResponse -> Int
$sel:nextToken:DescribeFleetInstancesResponse' :: DescribeFleetInstancesResponse -> Maybe Text
$sel:fleetId:DescribeFleetInstancesResponse' :: DescribeFleetInstancesResponse -> Maybe Text
$sel:activeInstances:DescribeFleetInstancesResponse' :: DescribeFleetInstancesResponse -> Maybe [ActiveInstance]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [ActiveInstance]
activeInstances
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
fleetId
      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