{-# 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.DescribeSpotFleetInstances
-- 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 Spot Fleet.
--
-- This operation returns paginated results.
module Amazonka.EC2.DescribeSpotFleetInstances
  ( -- * Creating a Request
    DescribeSpotFleetInstances (..),
    newDescribeSpotFleetInstances,

    -- * Request Lenses
    describeSpotFleetInstances_dryRun,
    describeSpotFleetInstances_maxResults,
    describeSpotFleetInstances_nextToken,
    describeSpotFleetInstances_spotFleetRequestId,

    -- * Destructuring the Response
    DescribeSpotFleetInstancesResponse (..),
    newDescribeSpotFleetInstancesResponse,

    -- * Response Lenses
    describeSpotFleetInstancesResponse_activeInstances,
    describeSpotFleetInstancesResponse_nextToken,
    describeSpotFleetInstancesResponse_spotFleetRequestId,
    describeSpotFleetInstancesResponse_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

-- | Contains the parameters for DescribeSpotFleetInstances.
--
-- /See:/ 'newDescribeSpotFleetInstances' smart constructor.
data DescribeSpotFleetInstances = DescribeSpotFleetInstances'
  { -- | 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@.
    DescribeSpotFleetInstances -> Maybe Bool
dryRun :: Prelude.Maybe Prelude.Bool,
    -- | 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.
    DescribeSpotFleetInstances -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | The token for the next set of results.
    DescribeSpotFleetInstances -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The ID of the Spot Fleet request.
    DescribeSpotFleetInstances -> Text
spotFleetRequestId :: Prelude.Text
  }
  deriving (DescribeSpotFleetInstances -> DescribeSpotFleetInstances -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeSpotFleetInstances -> DescribeSpotFleetInstances -> Bool
$c/= :: DescribeSpotFleetInstances -> DescribeSpotFleetInstances -> Bool
== :: DescribeSpotFleetInstances -> DescribeSpotFleetInstances -> Bool
$c== :: DescribeSpotFleetInstances -> DescribeSpotFleetInstances -> Bool
Prelude.Eq, ReadPrec [DescribeSpotFleetInstances]
ReadPrec DescribeSpotFleetInstances
Int -> ReadS DescribeSpotFleetInstances
ReadS [DescribeSpotFleetInstances]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeSpotFleetInstances]
$creadListPrec :: ReadPrec [DescribeSpotFleetInstances]
readPrec :: ReadPrec DescribeSpotFleetInstances
$creadPrec :: ReadPrec DescribeSpotFleetInstances
readList :: ReadS [DescribeSpotFleetInstances]
$creadList :: ReadS [DescribeSpotFleetInstances]
readsPrec :: Int -> ReadS DescribeSpotFleetInstances
$creadsPrec :: Int -> ReadS DescribeSpotFleetInstances
Prelude.Read, Int -> DescribeSpotFleetInstances -> ShowS
[DescribeSpotFleetInstances] -> ShowS
DescribeSpotFleetInstances -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeSpotFleetInstances] -> ShowS
$cshowList :: [DescribeSpotFleetInstances] -> ShowS
show :: DescribeSpotFleetInstances -> String
$cshow :: DescribeSpotFleetInstances -> String
showsPrec :: Int -> DescribeSpotFleetInstances -> ShowS
$cshowsPrec :: Int -> DescribeSpotFleetInstances -> ShowS
Prelude.Show, forall x.
Rep DescribeSpotFleetInstances x -> DescribeSpotFleetInstances
forall x.
DescribeSpotFleetInstances -> Rep DescribeSpotFleetInstances x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeSpotFleetInstances x -> DescribeSpotFleetInstances
$cfrom :: forall x.
DescribeSpotFleetInstances -> Rep DescribeSpotFleetInstances x
Prelude.Generic)

-- |
-- Create a value of 'DescribeSpotFleetInstances' 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', 'describeSpotFleetInstances_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@.
--
-- 'maxResults', 'describeSpotFleetInstances_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', 'describeSpotFleetInstances_nextToken' - The token for the next set of results.
--
-- 'spotFleetRequestId', 'describeSpotFleetInstances_spotFleetRequestId' - The ID of the Spot Fleet request.
newDescribeSpotFleetInstances ::
  -- | 'spotFleetRequestId'
  Prelude.Text ->
  DescribeSpotFleetInstances
newDescribeSpotFleetInstances :: Text -> DescribeSpotFleetInstances
newDescribeSpotFleetInstances Text
pSpotFleetRequestId_ =
  DescribeSpotFleetInstances'
    { $sel:dryRun:DescribeSpotFleetInstances' :: Maybe Bool
dryRun =
        forall a. Maybe a
Prelude.Nothing,
      $sel:maxResults:DescribeSpotFleetInstances' :: Maybe Natural
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:DescribeSpotFleetInstances' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:spotFleetRequestId:DescribeSpotFleetInstances' :: Text
spotFleetRequestId = Text
pSpotFleetRequestId_
    }

-- | 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@.
describeSpotFleetInstances_dryRun :: Lens.Lens' DescribeSpotFleetInstances (Prelude.Maybe Prelude.Bool)
describeSpotFleetInstances_dryRun :: Lens' DescribeSpotFleetInstances (Maybe Bool)
describeSpotFleetInstances_dryRun = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeSpotFleetInstances' {Maybe Bool
dryRun :: Maybe Bool
$sel:dryRun:DescribeSpotFleetInstances' :: DescribeSpotFleetInstances -> Maybe Bool
dryRun} -> Maybe Bool
dryRun) (\s :: DescribeSpotFleetInstances
s@DescribeSpotFleetInstances' {} Maybe Bool
a -> DescribeSpotFleetInstances
s {$sel:dryRun:DescribeSpotFleetInstances' :: Maybe Bool
dryRun = Maybe Bool
a} :: DescribeSpotFleetInstances)

-- | 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.
describeSpotFleetInstances_maxResults :: Lens.Lens' DescribeSpotFleetInstances (Prelude.Maybe Prelude.Natural)
describeSpotFleetInstances_maxResults :: Lens' DescribeSpotFleetInstances (Maybe Natural)
describeSpotFleetInstances_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeSpotFleetInstances' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:DescribeSpotFleetInstances' :: DescribeSpotFleetInstances -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: DescribeSpotFleetInstances
s@DescribeSpotFleetInstances' {} Maybe Natural
a -> DescribeSpotFleetInstances
s {$sel:maxResults:DescribeSpotFleetInstances' :: Maybe Natural
maxResults = Maybe Natural
a} :: DescribeSpotFleetInstances)

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

-- | The ID of the Spot Fleet request.
describeSpotFleetInstances_spotFleetRequestId :: Lens.Lens' DescribeSpotFleetInstances Prelude.Text
describeSpotFleetInstances_spotFleetRequestId :: Lens' DescribeSpotFleetInstances Text
describeSpotFleetInstances_spotFleetRequestId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeSpotFleetInstances' {Text
spotFleetRequestId :: Text
$sel:spotFleetRequestId:DescribeSpotFleetInstances' :: DescribeSpotFleetInstances -> Text
spotFleetRequestId} -> Text
spotFleetRequestId) (\s :: DescribeSpotFleetInstances
s@DescribeSpotFleetInstances' {} Text
a -> DescribeSpotFleetInstances
s {$sel:spotFleetRequestId:DescribeSpotFleetInstances' :: Text
spotFleetRequestId = Text
a} :: DescribeSpotFleetInstances)

instance Core.AWSPager DescribeSpotFleetInstances where
  page :: DescribeSpotFleetInstances
-> AWSResponse DescribeSpotFleetInstances
-> Maybe DescribeSpotFleetInstances
page DescribeSpotFleetInstances
rq AWSResponse DescribeSpotFleetInstances
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeSpotFleetInstances
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeSpotFleetInstancesResponse (Maybe Text)
describeSpotFleetInstancesResponse_nextToken
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeSpotFleetInstances
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeSpotFleetInstancesResponse (Maybe [ActiveInstance])
describeSpotFleetInstancesResponse_activeInstances
            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.$ DescribeSpotFleetInstances
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' DescribeSpotFleetInstances (Maybe Text)
describeSpotFleetInstances_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse DescribeSpotFleetInstances
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeSpotFleetInstancesResponse (Maybe Text)
describeSpotFleetInstancesResponse_nextToken
          forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just

instance Core.AWSRequest DescribeSpotFleetInstances where
  type
    AWSResponse DescribeSpotFleetInstances =
      DescribeSpotFleetInstancesResponse
  request :: (Service -> Service)
-> DescribeSpotFleetInstances -> Request DescribeSpotFleetInstances
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 DescribeSpotFleetInstances
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeSpotFleetInstances)))
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
-> DescribeSpotFleetInstancesResponse
DescribeSpotFleetInstancesResponse'
            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
"nextToken")
            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
"spotFleetRequestId")
            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 DescribeSpotFleetInstances where
  hashWithSalt :: Int -> DescribeSpotFleetInstances -> Int
hashWithSalt Int
_salt DescribeSpotFleetInstances' {Maybe Bool
Maybe Natural
Maybe Text
Text
spotFleetRequestId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
dryRun :: Maybe Bool
$sel:spotFleetRequestId:DescribeSpotFleetInstances' :: DescribeSpotFleetInstances -> Text
$sel:nextToken:DescribeSpotFleetInstances' :: DescribeSpotFleetInstances -> Maybe Text
$sel:maxResults:DescribeSpotFleetInstances' :: DescribeSpotFleetInstances -> Maybe Natural
$sel:dryRun:DescribeSpotFleetInstances' :: DescribeSpotFleetInstances -> 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 Natural
maxResults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
spotFleetRequestId

instance Prelude.NFData DescribeSpotFleetInstances where
  rnf :: DescribeSpotFleetInstances -> ()
rnf DescribeSpotFleetInstances' {Maybe Bool
Maybe Natural
Maybe Text
Text
spotFleetRequestId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
dryRun :: Maybe Bool
$sel:spotFleetRequestId:DescribeSpotFleetInstances' :: DescribeSpotFleetInstances -> Text
$sel:nextToken:DescribeSpotFleetInstances' :: DescribeSpotFleetInstances -> Maybe Text
$sel:maxResults:DescribeSpotFleetInstances' :: DescribeSpotFleetInstances -> Maybe Natural
$sel:dryRun:DescribeSpotFleetInstances' :: DescribeSpotFleetInstances -> 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 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
spotFleetRequestId

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

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

instance Data.ToQuery DescribeSpotFleetInstances where
  toQuery :: DescribeSpotFleetInstances -> QueryString
toQuery DescribeSpotFleetInstances' {Maybe Bool
Maybe Natural
Maybe Text
Text
spotFleetRequestId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
dryRun :: Maybe Bool
$sel:spotFleetRequestId:DescribeSpotFleetInstances' :: DescribeSpotFleetInstances -> Text
$sel:nextToken:DescribeSpotFleetInstances' :: DescribeSpotFleetInstances -> Maybe Text
$sel:maxResults:DescribeSpotFleetInstances' :: DescribeSpotFleetInstances -> Maybe Natural
$sel:dryRun:DescribeSpotFleetInstances' :: DescribeSpotFleetInstances -> Maybe Bool
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"DescribeSpotFleetInstances" :: 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,
        ByteString
"MaxResults" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Natural
maxResults,
        ByteString
"NextToken" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
nextToken,
        ByteString
"SpotFleetRequestId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
spotFleetRequestId
      ]

-- | Contains the output of DescribeSpotFleetInstances.
--
-- /See:/ 'newDescribeSpotFleetInstancesResponse' smart constructor.
data DescribeSpotFleetInstancesResponse = DescribeSpotFleetInstancesResponse'
  { -- | The running instances. This list is refreshed periodically and might be
    -- out of date.
    DescribeSpotFleetInstancesResponse -> Maybe [ActiveInstance]
activeInstances :: Prelude.Maybe [ActiveInstance],
    -- | The token required to retrieve the next set of results. This value is
    -- @null@ when there are no more results to return.
    DescribeSpotFleetInstancesResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The ID of the Spot Fleet request.
    DescribeSpotFleetInstancesResponse -> Maybe Text
spotFleetRequestId :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeSpotFleetInstancesResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeSpotFleetInstancesResponse
-> DescribeSpotFleetInstancesResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeSpotFleetInstancesResponse
-> DescribeSpotFleetInstancesResponse -> Bool
$c/= :: DescribeSpotFleetInstancesResponse
-> DescribeSpotFleetInstancesResponse -> Bool
== :: DescribeSpotFleetInstancesResponse
-> DescribeSpotFleetInstancesResponse -> Bool
$c== :: DescribeSpotFleetInstancesResponse
-> DescribeSpotFleetInstancesResponse -> Bool
Prelude.Eq, ReadPrec [DescribeSpotFleetInstancesResponse]
ReadPrec DescribeSpotFleetInstancesResponse
Int -> ReadS DescribeSpotFleetInstancesResponse
ReadS [DescribeSpotFleetInstancesResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeSpotFleetInstancesResponse]
$creadListPrec :: ReadPrec [DescribeSpotFleetInstancesResponse]
readPrec :: ReadPrec DescribeSpotFleetInstancesResponse
$creadPrec :: ReadPrec DescribeSpotFleetInstancesResponse
readList :: ReadS [DescribeSpotFleetInstancesResponse]
$creadList :: ReadS [DescribeSpotFleetInstancesResponse]
readsPrec :: Int -> ReadS DescribeSpotFleetInstancesResponse
$creadsPrec :: Int -> ReadS DescribeSpotFleetInstancesResponse
Prelude.Read, Int -> DescribeSpotFleetInstancesResponse -> ShowS
[DescribeSpotFleetInstancesResponse] -> ShowS
DescribeSpotFleetInstancesResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeSpotFleetInstancesResponse] -> ShowS
$cshowList :: [DescribeSpotFleetInstancesResponse] -> ShowS
show :: DescribeSpotFleetInstancesResponse -> String
$cshow :: DescribeSpotFleetInstancesResponse -> String
showsPrec :: Int -> DescribeSpotFleetInstancesResponse -> ShowS
$cshowsPrec :: Int -> DescribeSpotFleetInstancesResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeSpotFleetInstancesResponse x
-> DescribeSpotFleetInstancesResponse
forall x.
DescribeSpotFleetInstancesResponse
-> Rep DescribeSpotFleetInstancesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeSpotFleetInstancesResponse x
-> DescribeSpotFleetInstancesResponse
$cfrom :: forall x.
DescribeSpotFleetInstancesResponse
-> Rep DescribeSpotFleetInstancesResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeSpotFleetInstancesResponse' 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', 'describeSpotFleetInstancesResponse_activeInstances' - The running instances. This list is refreshed periodically and might be
-- out of date.
--
-- 'nextToken', 'describeSpotFleetInstancesResponse_nextToken' - The token required to retrieve the next set of results. This value is
-- @null@ when there are no more results to return.
--
-- 'spotFleetRequestId', 'describeSpotFleetInstancesResponse_spotFleetRequestId' - The ID of the Spot Fleet request.
--
-- 'httpStatus', 'describeSpotFleetInstancesResponse_httpStatus' - The response's http status code.
newDescribeSpotFleetInstancesResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeSpotFleetInstancesResponse
newDescribeSpotFleetInstancesResponse :: Int -> DescribeSpotFleetInstancesResponse
newDescribeSpotFleetInstancesResponse Int
pHttpStatus_ =
  DescribeSpotFleetInstancesResponse'
    { $sel:activeInstances:DescribeSpotFleetInstancesResponse' :: Maybe [ActiveInstance]
activeInstances =
        forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:DescribeSpotFleetInstancesResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:spotFleetRequestId:DescribeSpotFleetInstancesResponse' :: Maybe Text
spotFleetRequestId = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeSpotFleetInstancesResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The running instances. This list is refreshed periodically and might be
-- out of date.
describeSpotFleetInstancesResponse_activeInstances :: Lens.Lens' DescribeSpotFleetInstancesResponse (Prelude.Maybe [ActiveInstance])
describeSpotFleetInstancesResponse_activeInstances :: Lens' DescribeSpotFleetInstancesResponse (Maybe [ActiveInstance])
describeSpotFleetInstancesResponse_activeInstances = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeSpotFleetInstancesResponse' {Maybe [ActiveInstance]
activeInstances :: Maybe [ActiveInstance]
$sel:activeInstances:DescribeSpotFleetInstancesResponse' :: DescribeSpotFleetInstancesResponse -> Maybe [ActiveInstance]
activeInstances} -> Maybe [ActiveInstance]
activeInstances) (\s :: DescribeSpotFleetInstancesResponse
s@DescribeSpotFleetInstancesResponse' {} Maybe [ActiveInstance]
a -> DescribeSpotFleetInstancesResponse
s {$sel:activeInstances:DescribeSpotFleetInstancesResponse' :: Maybe [ActiveInstance]
activeInstances = Maybe [ActiveInstance]
a} :: DescribeSpotFleetInstancesResponse) 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 token required to retrieve the next set of results. This value is
-- @null@ when there are no more results to return.
describeSpotFleetInstancesResponse_nextToken :: Lens.Lens' DescribeSpotFleetInstancesResponse (Prelude.Maybe Prelude.Text)
describeSpotFleetInstancesResponse_nextToken :: Lens' DescribeSpotFleetInstancesResponse (Maybe Text)
describeSpotFleetInstancesResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeSpotFleetInstancesResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeSpotFleetInstancesResponse' :: DescribeSpotFleetInstancesResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeSpotFleetInstancesResponse
s@DescribeSpotFleetInstancesResponse' {} Maybe Text
a -> DescribeSpotFleetInstancesResponse
s {$sel:nextToken:DescribeSpotFleetInstancesResponse' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeSpotFleetInstancesResponse)

-- | The ID of the Spot Fleet request.
describeSpotFleetInstancesResponse_spotFleetRequestId :: Lens.Lens' DescribeSpotFleetInstancesResponse (Prelude.Maybe Prelude.Text)
describeSpotFleetInstancesResponse_spotFleetRequestId :: Lens' DescribeSpotFleetInstancesResponse (Maybe Text)
describeSpotFleetInstancesResponse_spotFleetRequestId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeSpotFleetInstancesResponse' {Maybe Text
spotFleetRequestId :: Maybe Text
$sel:spotFleetRequestId:DescribeSpotFleetInstancesResponse' :: DescribeSpotFleetInstancesResponse -> Maybe Text
spotFleetRequestId} -> Maybe Text
spotFleetRequestId) (\s :: DescribeSpotFleetInstancesResponse
s@DescribeSpotFleetInstancesResponse' {} Maybe Text
a -> DescribeSpotFleetInstancesResponse
s {$sel:spotFleetRequestId:DescribeSpotFleetInstancesResponse' :: Maybe Text
spotFleetRequestId = Maybe Text
a} :: DescribeSpotFleetInstancesResponse)

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

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