{-# 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.MigrationHubStrategy.GetServerDetails
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves detailed information about a specified server.
--
-- This operation returns paginated results.
module Amazonka.MigrationHubStrategy.GetServerDetails
  ( -- * Creating a Request
    GetServerDetails (..),
    newGetServerDetails,

    -- * Request Lenses
    getServerDetails_maxResults,
    getServerDetails_nextToken,
    getServerDetails_serverId,

    -- * Destructuring the Response
    GetServerDetailsResponse (..),
    newGetServerDetailsResponse,

    -- * Response Lenses
    getServerDetailsResponse_associatedApplications,
    getServerDetailsResponse_nextToken,
    getServerDetailsResponse_serverDetail,
    getServerDetailsResponse_httpStatus,
  )
where

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

-- | /See:/ 'newGetServerDetails' smart constructor.
data GetServerDetails = GetServerDetails'
  { -- | The maximum number of items to include in the response. The maximum
    -- value is 100.
    GetServerDetails -> Maybe Int
maxResults :: Prelude.Maybe Prelude.Int,
    -- | The token from a previous call that you use to retrieve the next set of
    -- results. For example, if a previous call to this action returned 100
    -- items, but you set @maxResults@ to 10. You\'ll receive a set of 10
    -- results along with a token. You then use the returned token to retrieve
    -- the next set of 10.
    GetServerDetails -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The ID of the server.
    GetServerDetails -> Text
serverId :: Prelude.Text
  }
  deriving (GetServerDetails -> GetServerDetails -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetServerDetails -> GetServerDetails -> Bool
$c/= :: GetServerDetails -> GetServerDetails -> Bool
== :: GetServerDetails -> GetServerDetails -> Bool
$c== :: GetServerDetails -> GetServerDetails -> Bool
Prelude.Eq, ReadPrec [GetServerDetails]
ReadPrec GetServerDetails
Int -> ReadS GetServerDetails
ReadS [GetServerDetails]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetServerDetails]
$creadListPrec :: ReadPrec [GetServerDetails]
readPrec :: ReadPrec GetServerDetails
$creadPrec :: ReadPrec GetServerDetails
readList :: ReadS [GetServerDetails]
$creadList :: ReadS [GetServerDetails]
readsPrec :: Int -> ReadS GetServerDetails
$creadsPrec :: Int -> ReadS GetServerDetails
Prelude.Read, Int -> GetServerDetails -> ShowS
[GetServerDetails] -> ShowS
GetServerDetails -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetServerDetails] -> ShowS
$cshowList :: [GetServerDetails] -> ShowS
show :: GetServerDetails -> String
$cshow :: GetServerDetails -> String
showsPrec :: Int -> GetServerDetails -> ShowS
$cshowsPrec :: Int -> GetServerDetails -> ShowS
Prelude.Show, forall x. Rep GetServerDetails x -> GetServerDetails
forall x. GetServerDetails -> Rep GetServerDetails x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetServerDetails x -> GetServerDetails
$cfrom :: forall x. GetServerDetails -> Rep GetServerDetails x
Prelude.Generic)

-- |
-- Create a value of 'GetServerDetails' 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:
--
-- 'maxResults', 'getServerDetails_maxResults' - The maximum number of items to include in the response. The maximum
-- value is 100.
--
-- 'nextToken', 'getServerDetails_nextToken' - The token from a previous call that you use to retrieve the next set of
-- results. For example, if a previous call to this action returned 100
-- items, but you set @maxResults@ to 10. You\'ll receive a set of 10
-- results along with a token. You then use the returned token to retrieve
-- the next set of 10.
--
-- 'serverId', 'getServerDetails_serverId' - The ID of the server.
newGetServerDetails ::
  -- | 'serverId'
  Prelude.Text ->
  GetServerDetails
newGetServerDetails :: Text -> GetServerDetails
newGetServerDetails Text
pServerId_ =
  GetServerDetails'
    { $sel:maxResults:GetServerDetails' :: Maybe Int
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:GetServerDetails' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:serverId:GetServerDetails' :: Text
serverId = Text
pServerId_
    }

-- | The maximum number of items to include in the response. The maximum
-- value is 100.
getServerDetails_maxResults :: Lens.Lens' GetServerDetails (Prelude.Maybe Prelude.Int)
getServerDetails_maxResults :: Lens' GetServerDetails (Maybe Int)
getServerDetails_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetServerDetails' {Maybe Int
maxResults :: Maybe Int
$sel:maxResults:GetServerDetails' :: GetServerDetails -> Maybe Int
maxResults} -> Maybe Int
maxResults) (\s :: GetServerDetails
s@GetServerDetails' {} Maybe Int
a -> GetServerDetails
s {$sel:maxResults:GetServerDetails' :: Maybe Int
maxResults = Maybe Int
a} :: GetServerDetails)

-- | The token from a previous call that you use to retrieve the next set of
-- results. For example, if a previous call to this action returned 100
-- items, but you set @maxResults@ to 10. You\'ll receive a set of 10
-- results along with a token. You then use the returned token to retrieve
-- the next set of 10.
getServerDetails_nextToken :: Lens.Lens' GetServerDetails (Prelude.Maybe Prelude.Text)
getServerDetails_nextToken :: Lens' GetServerDetails (Maybe Text)
getServerDetails_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetServerDetails' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:GetServerDetails' :: GetServerDetails -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: GetServerDetails
s@GetServerDetails' {} Maybe Text
a -> GetServerDetails
s {$sel:nextToken:GetServerDetails' :: Maybe Text
nextToken = Maybe Text
a} :: GetServerDetails)

-- | The ID of the server.
getServerDetails_serverId :: Lens.Lens' GetServerDetails Prelude.Text
getServerDetails_serverId :: Lens' GetServerDetails Text
getServerDetails_serverId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetServerDetails' {Text
serverId :: Text
$sel:serverId:GetServerDetails' :: GetServerDetails -> Text
serverId} -> Text
serverId) (\s :: GetServerDetails
s@GetServerDetails' {} Text
a -> GetServerDetails
s {$sel:serverId:GetServerDetails' :: Text
serverId = Text
a} :: GetServerDetails)

instance Core.AWSPager GetServerDetails where
  page :: GetServerDetails
-> AWSResponse GetServerDetails -> Maybe GetServerDetails
page GetServerDetails
rq AWSResponse GetServerDetails
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse GetServerDetails
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' GetServerDetailsResponse (Maybe Text)
getServerDetailsResponse_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 GetServerDetails
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' GetServerDetailsResponse (Maybe [AssociatedApplication])
getServerDetailsResponse_associatedApplications
            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.$ GetServerDetails
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' GetServerDetails (Maybe Text)
getServerDetails_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse GetServerDetails
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' GetServerDetailsResponse (Maybe Text)
getServerDetailsResponse_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 GetServerDetails where
  type
    AWSResponse GetServerDetails =
      GetServerDetailsResponse
  request :: (Service -> Service)
-> GetServerDetails -> Request GetServerDetails
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 GetServerDetails
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetServerDetails)))
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 [AssociatedApplication]
-> Maybe Text
-> Maybe ServerDetail
-> Int
-> GetServerDetailsResponse
GetServerDetailsResponse'
            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
"associatedApplications"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"nextToken")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"serverDetail")
            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 GetServerDetails where
  hashWithSalt :: Int -> GetServerDetails -> Int
hashWithSalt Int
_salt GetServerDetails' {Maybe Int
Maybe Text
Text
serverId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Int
$sel:serverId:GetServerDetails' :: GetServerDetails -> Text
$sel:nextToken:GetServerDetails' :: GetServerDetails -> Maybe Text
$sel:maxResults:GetServerDetails' :: GetServerDetails -> Maybe Int
..} =
    Int
_salt
      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
serverId

instance Prelude.NFData GetServerDetails where
  rnf :: GetServerDetails -> ()
rnf GetServerDetails' {Maybe Int
Maybe Text
Text
serverId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Int
$sel:serverId:GetServerDetails' :: GetServerDetails -> Text
$sel:nextToken:GetServerDetails' :: GetServerDetails -> Maybe Text
$sel:maxResults:GetServerDetails' :: GetServerDetails -> Maybe Int
..} =
    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
serverId

instance Data.ToHeaders GetServerDetails where
  toHeaders :: GetServerDetails -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToPath GetServerDetails where
  toPath :: GetServerDetails -> ByteString
toPath GetServerDetails' {Maybe Int
Maybe Text
Text
serverId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Int
$sel:serverId:GetServerDetails' :: GetServerDetails -> Text
$sel:nextToken:GetServerDetails' :: GetServerDetails -> Maybe Text
$sel:maxResults:GetServerDetails' :: GetServerDetails -> Maybe Int
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/get-server-details/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
serverId]

instance Data.ToQuery GetServerDetails where
  toQuery :: GetServerDetails -> QueryString
toQuery GetServerDetails' {Maybe Int
Maybe Text
Text
serverId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Int
$sel:serverId:GetServerDetails' :: GetServerDetails -> Text
$sel:nextToken:GetServerDetails' :: GetServerDetails -> Maybe Text
$sel:maxResults:GetServerDetails' :: GetServerDetails -> Maybe Int
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ 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
      ]

-- | /See:/ 'newGetServerDetailsResponse' smart constructor.
data GetServerDetailsResponse = GetServerDetailsResponse'
  { -- | The associated application group the server belongs to, as defined in
    -- AWS Application Discovery Service.
    GetServerDetailsResponse -> Maybe [AssociatedApplication]
associatedApplications :: Prelude.Maybe [AssociatedApplication],
    -- | The token you use to retrieve the next set of results, or null if there
    -- are no more results.
    GetServerDetailsResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | Detailed information about the server.
    GetServerDetailsResponse -> Maybe ServerDetail
serverDetail :: Prelude.Maybe ServerDetail,
    -- | The response's http status code.
    GetServerDetailsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetServerDetailsResponse -> GetServerDetailsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetServerDetailsResponse -> GetServerDetailsResponse -> Bool
$c/= :: GetServerDetailsResponse -> GetServerDetailsResponse -> Bool
== :: GetServerDetailsResponse -> GetServerDetailsResponse -> Bool
$c== :: GetServerDetailsResponse -> GetServerDetailsResponse -> Bool
Prelude.Eq, ReadPrec [GetServerDetailsResponse]
ReadPrec GetServerDetailsResponse
Int -> ReadS GetServerDetailsResponse
ReadS [GetServerDetailsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetServerDetailsResponse]
$creadListPrec :: ReadPrec [GetServerDetailsResponse]
readPrec :: ReadPrec GetServerDetailsResponse
$creadPrec :: ReadPrec GetServerDetailsResponse
readList :: ReadS [GetServerDetailsResponse]
$creadList :: ReadS [GetServerDetailsResponse]
readsPrec :: Int -> ReadS GetServerDetailsResponse
$creadsPrec :: Int -> ReadS GetServerDetailsResponse
Prelude.Read, Int -> GetServerDetailsResponse -> ShowS
[GetServerDetailsResponse] -> ShowS
GetServerDetailsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetServerDetailsResponse] -> ShowS
$cshowList :: [GetServerDetailsResponse] -> ShowS
show :: GetServerDetailsResponse -> String
$cshow :: GetServerDetailsResponse -> String
showsPrec :: Int -> GetServerDetailsResponse -> ShowS
$cshowsPrec :: Int -> GetServerDetailsResponse -> ShowS
Prelude.Show, forall x.
Rep GetServerDetailsResponse x -> GetServerDetailsResponse
forall x.
GetServerDetailsResponse -> Rep GetServerDetailsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetServerDetailsResponse x -> GetServerDetailsResponse
$cfrom :: forall x.
GetServerDetailsResponse -> Rep GetServerDetailsResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetServerDetailsResponse' 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:
--
-- 'associatedApplications', 'getServerDetailsResponse_associatedApplications' - The associated application group the server belongs to, as defined in
-- AWS Application Discovery Service.
--
-- 'nextToken', 'getServerDetailsResponse_nextToken' - The token you use to retrieve the next set of results, or null if there
-- are no more results.
--
-- 'serverDetail', 'getServerDetailsResponse_serverDetail' - Detailed information about the server.
--
-- 'httpStatus', 'getServerDetailsResponse_httpStatus' - The response's http status code.
newGetServerDetailsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetServerDetailsResponse
newGetServerDetailsResponse :: Int -> GetServerDetailsResponse
newGetServerDetailsResponse Int
pHttpStatus_ =
  GetServerDetailsResponse'
    { $sel:associatedApplications:GetServerDetailsResponse' :: Maybe [AssociatedApplication]
associatedApplications =
        forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:GetServerDetailsResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:serverDetail:GetServerDetailsResponse' :: Maybe ServerDetail
serverDetail = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetServerDetailsResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The associated application group the server belongs to, as defined in
-- AWS Application Discovery Service.
getServerDetailsResponse_associatedApplications :: Lens.Lens' GetServerDetailsResponse (Prelude.Maybe [AssociatedApplication])
getServerDetailsResponse_associatedApplications :: Lens' GetServerDetailsResponse (Maybe [AssociatedApplication])
getServerDetailsResponse_associatedApplications = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetServerDetailsResponse' {Maybe [AssociatedApplication]
associatedApplications :: Maybe [AssociatedApplication]
$sel:associatedApplications:GetServerDetailsResponse' :: GetServerDetailsResponse -> Maybe [AssociatedApplication]
associatedApplications} -> Maybe [AssociatedApplication]
associatedApplications) (\s :: GetServerDetailsResponse
s@GetServerDetailsResponse' {} Maybe [AssociatedApplication]
a -> GetServerDetailsResponse
s {$sel:associatedApplications:GetServerDetailsResponse' :: Maybe [AssociatedApplication]
associatedApplications = Maybe [AssociatedApplication]
a} :: GetServerDetailsResponse) 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 you use to retrieve the next set of results, or null if there
-- are no more results.
getServerDetailsResponse_nextToken :: Lens.Lens' GetServerDetailsResponse (Prelude.Maybe Prelude.Text)
getServerDetailsResponse_nextToken :: Lens' GetServerDetailsResponse (Maybe Text)
getServerDetailsResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetServerDetailsResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:GetServerDetailsResponse' :: GetServerDetailsResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: GetServerDetailsResponse
s@GetServerDetailsResponse' {} Maybe Text
a -> GetServerDetailsResponse
s {$sel:nextToken:GetServerDetailsResponse' :: Maybe Text
nextToken = Maybe Text
a} :: GetServerDetailsResponse)

-- | Detailed information about the server.
getServerDetailsResponse_serverDetail :: Lens.Lens' GetServerDetailsResponse (Prelude.Maybe ServerDetail)
getServerDetailsResponse_serverDetail :: Lens' GetServerDetailsResponse (Maybe ServerDetail)
getServerDetailsResponse_serverDetail = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetServerDetailsResponse' {Maybe ServerDetail
serverDetail :: Maybe ServerDetail
$sel:serverDetail:GetServerDetailsResponse' :: GetServerDetailsResponse -> Maybe ServerDetail
serverDetail} -> Maybe ServerDetail
serverDetail) (\s :: GetServerDetailsResponse
s@GetServerDetailsResponse' {} Maybe ServerDetail
a -> GetServerDetailsResponse
s {$sel:serverDetail:GetServerDetailsResponse' :: Maybe ServerDetail
serverDetail = Maybe ServerDetail
a} :: GetServerDetailsResponse)

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

instance Prelude.NFData GetServerDetailsResponse where
  rnf :: GetServerDetailsResponse -> ()
rnf GetServerDetailsResponse' {Int
Maybe [AssociatedApplication]
Maybe Text
Maybe ServerDetail
httpStatus :: Int
serverDetail :: Maybe ServerDetail
nextToken :: Maybe Text
associatedApplications :: Maybe [AssociatedApplication]
$sel:httpStatus:GetServerDetailsResponse' :: GetServerDetailsResponse -> Int
$sel:serverDetail:GetServerDetailsResponse' :: GetServerDetailsResponse -> Maybe ServerDetail
$sel:nextToken:GetServerDetailsResponse' :: GetServerDetailsResponse -> Maybe Text
$sel:associatedApplications:GetServerDetailsResponse' :: GetServerDetailsResponse -> Maybe [AssociatedApplication]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [AssociatedApplication]
associatedApplications
      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 ServerDetail
serverDetail
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus