{-# 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.GameLift.GetComputeAuthToken
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Requests an authorization token from GameLift. The authorization token
-- is used by your game server to authenticate with GameLift. Each
-- authentication token has an expiration token. To continue using the
-- compute resource to host your game server, regularly retrieve a new
-- authorization token.
module Amazonka.GameLift.GetComputeAuthToken
  ( -- * Creating a Request
    GetComputeAuthToken (..),
    newGetComputeAuthToken,

    -- * Request Lenses
    getComputeAuthToken_fleetId,
    getComputeAuthToken_computeName,

    -- * Destructuring the Response
    GetComputeAuthTokenResponse (..),
    newGetComputeAuthTokenResponse,

    -- * Response Lenses
    getComputeAuthTokenResponse_authToken,
    getComputeAuthTokenResponse_computeArn,
    getComputeAuthTokenResponse_computeName,
    getComputeAuthTokenResponse_expirationTimestamp,
    getComputeAuthTokenResponse_fleetArn,
    getComputeAuthTokenResponse_fleetId,
    getComputeAuthTokenResponse_httpStatus,
  )
where

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

-- | /See:/ 'newGetComputeAuthToken' smart constructor.
data GetComputeAuthToken = GetComputeAuthToken'
  { -- | A unique identifier for the fleet that the compute is registered to.
    GetComputeAuthToken -> Text
fleetId :: Prelude.Text,
    -- | The name of the compute resource you are requesting the authorization
    -- token for.
    GetComputeAuthToken -> Text
computeName :: Prelude.Text
  }
  deriving (GetComputeAuthToken -> GetComputeAuthToken -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetComputeAuthToken -> GetComputeAuthToken -> Bool
$c/= :: GetComputeAuthToken -> GetComputeAuthToken -> Bool
== :: GetComputeAuthToken -> GetComputeAuthToken -> Bool
$c== :: GetComputeAuthToken -> GetComputeAuthToken -> Bool
Prelude.Eq, ReadPrec [GetComputeAuthToken]
ReadPrec GetComputeAuthToken
Int -> ReadS GetComputeAuthToken
ReadS [GetComputeAuthToken]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetComputeAuthToken]
$creadListPrec :: ReadPrec [GetComputeAuthToken]
readPrec :: ReadPrec GetComputeAuthToken
$creadPrec :: ReadPrec GetComputeAuthToken
readList :: ReadS [GetComputeAuthToken]
$creadList :: ReadS [GetComputeAuthToken]
readsPrec :: Int -> ReadS GetComputeAuthToken
$creadsPrec :: Int -> ReadS GetComputeAuthToken
Prelude.Read, Int -> GetComputeAuthToken -> ShowS
[GetComputeAuthToken] -> ShowS
GetComputeAuthToken -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetComputeAuthToken] -> ShowS
$cshowList :: [GetComputeAuthToken] -> ShowS
show :: GetComputeAuthToken -> String
$cshow :: GetComputeAuthToken -> String
showsPrec :: Int -> GetComputeAuthToken -> ShowS
$cshowsPrec :: Int -> GetComputeAuthToken -> ShowS
Prelude.Show, forall x. Rep GetComputeAuthToken x -> GetComputeAuthToken
forall x. GetComputeAuthToken -> Rep GetComputeAuthToken x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetComputeAuthToken x -> GetComputeAuthToken
$cfrom :: forall x. GetComputeAuthToken -> Rep GetComputeAuthToken x
Prelude.Generic)

-- |
-- Create a value of 'GetComputeAuthToken' 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:
--
-- 'fleetId', 'getComputeAuthToken_fleetId' - A unique identifier for the fleet that the compute is registered to.
--
-- 'computeName', 'getComputeAuthToken_computeName' - The name of the compute resource you are requesting the authorization
-- token for.
newGetComputeAuthToken ::
  -- | 'fleetId'
  Prelude.Text ->
  -- | 'computeName'
  Prelude.Text ->
  GetComputeAuthToken
newGetComputeAuthToken :: Text -> Text -> GetComputeAuthToken
newGetComputeAuthToken Text
pFleetId_ Text
pComputeName_ =
  GetComputeAuthToken'
    { $sel:fleetId:GetComputeAuthToken' :: Text
fleetId = Text
pFleetId_,
      $sel:computeName:GetComputeAuthToken' :: Text
computeName = Text
pComputeName_
    }

-- | A unique identifier for the fleet that the compute is registered to.
getComputeAuthToken_fleetId :: Lens.Lens' GetComputeAuthToken Prelude.Text
getComputeAuthToken_fleetId :: Lens' GetComputeAuthToken Text
getComputeAuthToken_fleetId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetComputeAuthToken' {Text
fleetId :: Text
$sel:fleetId:GetComputeAuthToken' :: GetComputeAuthToken -> Text
fleetId} -> Text
fleetId) (\s :: GetComputeAuthToken
s@GetComputeAuthToken' {} Text
a -> GetComputeAuthToken
s {$sel:fleetId:GetComputeAuthToken' :: Text
fleetId = Text
a} :: GetComputeAuthToken)

-- | The name of the compute resource you are requesting the authorization
-- token for.
getComputeAuthToken_computeName :: Lens.Lens' GetComputeAuthToken Prelude.Text
getComputeAuthToken_computeName :: Lens' GetComputeAuthToken Text
getComputeAuthToken_computeName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetComputeAuthToken' {Text
computeName :: Text
$sel:computeName:GetComputeAuthToken' :: GetComputeAuthToken -> Text
computeName} -> Text
computeName) (\s :: GetComputeAuthToken
s@GetComputeAuthToken' {} Text
a -> GetComputeAuthToken
s {$sel:computeName:GetComputeAuthToken' :: Text
computeName = Text
a} :: GetComputeAuthToken)

instance Core.AWSRequest GetComputeAuthToken where
  type
    AWSResponse GetComputeAuthToken =
      GetComputeAuthTokenResponse
  request :: (Service -> Service)
-> GetComputeAuthToken -> Request GetComputeAuthToken
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GetComputeAuthToken
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetComputeAuthToken)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Int
-> GetComputeAuthTokenResponse
GetComputeAuthTokenResponse'
            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
"AuthToken")
            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
"ComputeArn")
            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
"ComputeName")
            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
"ExpirationTimestamp")
            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
"FleetArn")
            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
"FleetId")
            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 GetComputeAuthToken where
  hashWithSalt :: Int -> GetComputeAuthToken -> Int
hashWithSalt Int
_salt GetComputeAuthToken' {Text
computeName :: Text
fleetId :: Text
$sel:computeName:GetComputeAuthToken' :: GetComputeAuthToken -> Text
$sel:fleetId:GetComputeAuthToken' :: GetComputeAuthToken -> Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
fleetId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
computeName

instance Prelude.NFData GetComputeAuthToken where
  rnf :: GetComputeAuthToken -> ()
rnf GetComputeAuthToken' {Text
computeName :: Text
fleetId :: Text
$sel:computeName:GetComputeAuthToken' :: GetComputeAuthToken -> Text
$sel:fleetId:GetComputeAuthToken' :: GetComputeAuthToken -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
fleetId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
computeName

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

instance Data.ToJSON GetComputeAuthToken where
  toJSON :: GetComputeAuthToken -> Value
toJSON GetComputeAuthToken' {Text
computeName :: Text
fleetId :: Text
$sel:computeName:GetComputeAuthToken' :: GetComputeAuthToken -> Text
$sel:fleetId:GetComputeAuthToken' :: GetComputeAuthToken -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ forall a. a -> Maybe a
Prelude.Just (Key
"FleetId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
fleetId),
            forall a. a -> Maybe a
Prelude.Just (Key
"ComputeName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
computeName)
          ]
      )

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

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

-- | /See:/ 'newGetComputeAuthTokenResponse' smart constructor.
data GetComputeAuthTokenResponse = GetComputeAuthTokenResponse'
  { -- | The authorization token that your game server uses to authenticate with
    -- GameLift.
    GetComputeAuthTokenResponse -> Maybe Text
authToken :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name
    -- (<https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html ARN>)
    -- that is assigned to a GameLift compute resource and uniquely identifies
    -- it. ARNs are unique across all Regions. Format is
    -- @arn:aws:gamelift:\<region>::compute\/compute-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912@
    GetComputeAuthTokenResponse -> Maybe Text
computeArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the compute resource you are requesting the authorization
    -- token for.
    GetComputeAuthTokenResponse -> Maybe Text
computeName :: Prelude.Maybe Prelude.Text,
    -- | The amount of time until the authorization token is no longer valid. To
    -- continue using the compute resource for game server hosting, renew the
    -- authorization token by using this operation again.
    GetComputeAuthTokenResponse -> Maybe POSIX
expirationTimestamp :: Prelude.Maybe Data.POSIX,
    -- | The Amazon Resource Name
    -- (<https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html ARN>)
    -- that is assigned to a GameLift fleet resource and uniquely identifies
    -- it. ARNs are unique across all Regions. Format is
    -- @arn:aws:gamelift:\<region>::fleet\/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912@.
    GetComputeAuthTokenResponse -> Maybe Text
fleetArn :: Prelude.Maybe Prelude.Text,
    -- | A unique identifier for the fleet that the compute is registered to.
    GetComputeAuthTokenResponse -> Maybe Text
fleetId :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    GetComputeAuthTokenResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetComputeAuthTokenResponse -> GetComputeAuthTokenResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetComputeAuthTokenResponse -> GetComputeAuthTokenResponse -> Bool
$c/= :: GetComputeAuthTokenResponse -> GetComputeAuthTokenResponse -> Bool
== :: GetComputeAuthTokenResponse -> GetComputeAuthTokenResponse -> Bool
$c== :: GetComputeAuthTokenResponse -> GetComputeAuthTokenResponse -> Bool
Prelude.Eq, ReadPrec [GetComputeAuthTokenResponse]
ReadPrec GetComputeAuthTokenResponse
Int -> ReadS GetComputeAuthTokenResponse
ReadS [GetComputeAuthTokenResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetComputeAuthTokenResponse]
$creadListPrec :: ReadPrec [GetComputeAuthTokenResponse]
readPrec :: ReadPrec GetComputeAuthTokenResponse
$creadPrec :: ReadPrec GetComputeAuthTokenResponse
readList :: ReadS [GetComputeAuthTokenResponse]
$creadList :: ReadS [GetComputeAuthTokenResponse]
readsPrec :: Int -> ReadS GetComputeAuthTokenResponse
$creadsPrec :: Int -> ReadS GetComputeAuthTokenResponse
Prelude.Read, Int -> GetComputeAuthTokenResponse -> ShowS
[GetComputeAuthTokenResponse] -> ShowS
GetComputeAuthTokenResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetComputeAuthTokenResponse] -> ShowS
$cshowList :: [GetComputeAuthTokenResponse] -> ShowS
show :: GetComputeAuthTokenResponse -> String
$cshow :: GetComputeAuthTokenResponse -> String
showsPrec :: Int -> GetComputeAuthTokenResponse -> ShowS
$cshowsPrec :: Int -> GetComputeAuthTokenResponse -> ShowS
Prelude.Show, forall x.
Rep GetComputeAuthTokenResponse x -> GetComputeAuthTokenResponse
forall x.
GetComputeAuthTokenResponse -> Rep GetComputeAuthTokenResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetComputeAuthTokenResponse x -> GetComputeAuthTokenResponse
$cfrom :: forall x.
GetComputeAuthTokenResponse -> Rep GetComputeAuthTokenResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetComputeAuthTokenResponse' 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:
--
-- 'authToken', 'getComputeAuthTokenResponse_authToken' - The authorization token that your game server uses to authenticate with
-- GameLift.
--
-- 'computeArn', 'getComputeAuthTokenResponse_computeArn' - The Amazon Resource Name
-- (<https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html ARN>)
-- that is assigned to a GameLift compute resource and uniquely identifies
-- it. ARNs are unique across all Regions. Format is
-- @arn:aws:gamelift:\<region>::compute\/compute-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912@
--
-- 'computeName', 'getComputeAuthTokenResponse_computeName' - The name of the compute resource you are requesting the authorization
-- token for.
--
-- 'expirationTimestamp', 'getComputeAuthTokenResponse_expirationTimestamp' - The amount of time until the authorization token is no longer valid. To
-- continue using the compute resource for game server hosting, renew the
-- authorization token by using this operation again.
--
-- 'fleetArn', 'getComputeAuthTokenResponse_fleetArn' - The Amazon Resource Name
-- (<https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html ARN>)
-- that is assigned to a GameLift fleet resource and uniquely identifies
-- it. ARNs are unique across all Regions. Format is
-- @arn:aws:gamelift:\<region>::fleet\/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912@.
--
-- 'fleetId', 'getComputeAuthTokenResponse_fleetId' - A unique identifier for the fleet that the compute is registered to.
--
-- 'httpStatus', 'getComputeAuthTokenResponse_httpStatus' - The response's http status code.
newGetComputeAuthTokenResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetComputeAuthTokenResponse
newGetComputeAuthTokenResponse :: Int -> GetComputeAuthTokenResponse
newGetComputeAuthTokenResponse Int
pHttpStatus_ =
  GetComputeAuthTokenResponse'
    { $sel:authToken:GetComputeAuthTokenResponse' :: Maybe Text
authToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:computeArn:GetComputeAuthTokenResponse' :: Maybe Text
computeArn = forall a. Maybe a
Prelude.Nothing,
      $sel:computeName:GetComputeAuthTokenResponse' :: Maybe Text
computeName = forall a. Maybe a
Prelude.Nothing,
      $sel:expirationTimestamp:GetComputeAuthTokenResponse' :: Maybe POSIX
expirationTimestamp = forall a. Maybe a
Prelude.Nothing,
      $sel:fleetArn:GetComputeAuthTokenResponse' :: Maybe Text
fleetArn = forall a. Maybe a
Prelude.Nothing,
      $sel:fleetId:GetComputeAuthTokenResponse' :: Maybe Text
fleetId = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetComputeAuthTokenResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The authorization token that your game server uses to authenticate with
-- GameLift.
getComputeAuthTokenResponse_authToken :: Lens.Lens' GetComputeAuthTokenResponse (Prelude.Maybe Prelude.Text)
getComputeAuthTokenResponse_authToken :: Lens' GetComputeAuthTokenResponse (Maybe Text)
getComputeAuthTokenResponse_authToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetComputeAuthTokenResponse' {Maybe Text
authToken :: Maybe Text
$sel:authToken:GetComputeAuthTokenResponse' :: GetComputeAuthTokenResponse -> Maybe Text
authToken} -> Maybe Text
authToken) (\s :: GetComputeAuthTokenResponse
s@GetComputeAuthTokenResponse' {} Maybe Text
a -> GetComputeAuthTokenResponse
s {$sel:authToken:GetComputeAuthTokenResponse' :: Maybe Text
authToken = Maybe Text
a} :: GetComputeAuthTokenResponse)

-- | The Amazon Resource Name
-- (<https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html ARN>)
-- that is assigned to a GameLift compute resource and uniquely identifies
-- it. ARNs are unique across all Regions. Format is
-- @arn:aws:gamelift:\<region>::compute\/compute-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912@
getComputeAuthTokenResponse_computeArn :: Lens.Lens' GetComputeAuthTokenResponse (Prelude.Maybe Prelude.Text)
getComputeAuthTokenResponse_computeArn :: Lens' GetComputeAuthTokenResponse (Maybe Text)
getComputeAuthTokenResponse_computeArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetComputeAuthTokenResponse' {Maybe Text
computeArn :: Maybe Text
$sel:computeArn:GetComputeAuthTokenResponse' :: GetComputeAuthTokenResponse -> Maybe Text
computeArn} -> Maybe Text
computeArn) (\s :: GetComputeAuthTokenResponse
s@GetComputeAuthTokenResponse' {} Maybe Text
a -> GetComputeAuthTokenResponse
s {$sel:computeArn:GetComputeAuthTokenResponse' :: Maybe Text
computeArn = Maybe Text
a} :: GetComputeAuthTokenResponse)

-- | The name of the compute resource you are requesting the authorization
-- token for.
getComputeAuthTokenResponse_computeName :: Lens.Lens' GetComputeAuthTokenResponse (Prelude.Maybe Prelude.Text)
getComputeAuthTokenResponse_computeName :: Lens' GetComputeAuthTokenResponse (Maybe Text)
getComputeAuthTokenResponse_computeName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetComputeAuthTokenResponse' {Maybe Text
computeName :: Maybe Text
$sel:computeName:GetComputeAuthTokenResponse' :: GetComputeAuthTokenResponse -> Maybe Text
computeName} -> Maybe Text
computeName) (\s :: GetComputeAuthTokenResponse
s@GetComputeAuthTokenResponse' {} Maybe Text
a -> GetComputeAuthTokenResponse
s {$sel:computeName:GetComputeAuthTokenResponse' :: Maybe Text
computeName = Maybe Text
a} :: GetComputeAuthTokenResponse)

-- | The amount of time until the authorization token is no longer valid. To
-- continue using the compute resource for game server hosting, renew the
-- authorization token by using this operation again.
getComputeAuthTokenResponse_expirationTimestamp :: Lens.Lens' GetComputeAuthTokenResponse (Prelude.Maybe Prelude.UTCTime)
getComputeAuthTokenResponse_expirationTimestamp :: Lens' GetComputeAuthTokenResponse (Maybe UTCTime)
getComputeAuthTokenResponse_expirationTimestamp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetComputeAuthTokenResponse' {Maybe POSIX
expirationTimestamp :: Maybe POSIX
$sel:expirationTimestamp:GetComputeAuthTokenResponse' :: GetComputeAuthTokenResponse -> Maybe POSIX
expirationTimestamp} -> Maybe POSIX
expirationTimestamp) (\s :: GetComputeAuthTokenResponse
s@GetComputeAuthTokenResponse' {} Maybe POSIX
a -> GetComputeAuthTokenResponse
s {$sel:expirationTimestamp:GetComputeAuthTokenResponse' :: Maybe POSIX
expirationTimestamp = Maybe POSIX
a} :: GetComputeAuthTokenResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The Amazon Resource Name
-- (<https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html ARN>)
-- that is assigned to a GameLift fleet resource and uniquely identifies
-- it. ARNs are unique across all Regions. Format is
-- @arn:aws:gamelift:\<region>::fleet\/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912@.
getComputeAuthTokenResponse_fleetArn :: Lens.Lens' GetComputeAuthTokenResponse (Prelude.Maybe Prelude.Text)
getComputeAuthTokenResponse_fleetArn :: Lens' GetComputeAuthTokenResponse (Maybe Text)
getComputeAuthTokenResponse_fleetArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetComputeAuthTokenResponse' {Maybe Text
fleetArn :: Maybe Text
$sel:fleetArn:GetComputeAuthTokenResponse' :: GetComputeAuthTokenResponse -> Maybe Text
fleetArn} -> Maybe Text
fleetArn) (\s :: GetComputeAuthTokenResponse
s@GetComputeAuthTokenResponse' {} Maybe Text
a -> GetComputeAuthTokenResponse
s {$sel:fleetArn:GetComputeAuthTokenResponse' :: Maybe Text
fleetArn = Maybe Text
a} :: GetComputeAuthTokenResponse)

-- | A unique identifier for the fleet that the compute is registered to.
getComputeAuthTokenResponse_fleetId :: Lens.Lens' GetComputeAuthTokenResponse (Prelude.Maybe Prelude.Text)
getComputeAuthTokenResponse_fleetId :: Lens' GetComputeAuthTokenResponse (Maybe Text)
getComputeAuthTokenResponse_fleetId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetComputeAuthTokenResponse' {Maybe Text
fleetId :: Maybe Text
$sel:fleetId:GetComputeAuthTokenResponse' :: GetComputeAuthTokenResponse -> Maybe Text
fleetId} -> Maybe Text
fleetId) (\s :: GetComputeAuthTokenResponse
s@GetComputeAuthTokenResponse' {} Maybe Text
a -> GetComputeAuthTokenResponse
s {$sel:fleetId:GetComputeAuthTokenResponse' :: Maybe Text
fleetId = Maybe Text
a} :: GetComputeAuthTokenResponse)

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

instance Prelude.NFData GetComputeAuthTokenResponse where
  rnf :: GetComputeAuthTokenResponse -> ()
rnf GetComputeAuthTokenResponse' {Int
Maybe Text
Maybe POSIX
httpStatus :: Int
fleetId :: Maybe Text
fleetArn :: Maybe Text
expirationTimestamp :: Maybe POSIX
computeName :: Maybe Text
computeArn :: Maybe Text
authToken :: Maybe Text
$sel:httpStatus:GetComputeAuthTokenResponse' :: GetComputeAuthTokenResponse -> Int
$sel:fleetId:GetComputeAuthTokenResponse' :: GetComputeAuthTokenResponse -> Maybe Text
$sel:fleetArn:GetComputeAuthTokenResponse' :: GetComputeAuthTokenResponse -> Maybe Text
$sel:expirationTimestamp:GetComputeAuthTokenResponse' :: GetComputeAuthTokenResponse -> Maybe POSIX
$sel:computeName:GetComputeAuthTokenResponse' :: GetComputeAuthTokenResponse -> Maybe Text
$sel:computeArn:GetComputeAuthTokenResponse' :: GetComputeAuthTokenResponse -> Maybe Text
$sel:authToken:GetComputeAuthTokenResponse' :: GetComputeAuthTokenResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
authToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
computeArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
computeName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
expirationTimestamp
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
fleetArn
      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 Int
httpStatus