{-# 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.Nimble.GetLaunchProfileInitialization
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Get a launch profile initialization.
module Amazonka.Nimble.GetLaunchProfileInitialization
  ( -- * Creating a Request
    GetLaunchProfileInitialization (..),
    newGetLaunchProfileInitialization,

    -- * Request Lenses
    getLaunchProfileInitialization_launchProfileId,
    getLaunchProfileInitialization_launchProfileProtocolVersions,
    getLaunchProfileInitialization_launchPurpose,
    getLaunchProfileInitialization_platform,
    getLaunchProfileInitialization_studioId,

    -- * Destructuring the Response
    GetLaunchProfileInitializationResponse (..),
    newGetLaunchProfileInitializationResponse,

    -- * Response Lenses
    getLaunchProfileInitializationResponse_launchProfileInitialization,
    getLaunchProfileInitializationResponse_httpStatus,
  )
where

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

-- | /See:/ 'newGetLaunchProfileInitialization' smart constructor.
data GetLaunchProfileInitialization = GetLaunchProfileInitialization'
  { -- | The ID of the launch profile used to control access from the streaming
    -- session.
    GetLaunchProfileInitialization -> Text
launchProfileId :: Prelude.Text,
    -- | The launch profile protocol versions supported by the client.
    GetLaunchProfileInitialization -> [Text]
launchProfileProtocolVersions :: [Prelude.Text],
    -- | The launch purpose.
    GetLaunchProfileInitialization -> Text
launchPurpose :: Prelude.Text,
    -- | The platform where this Launch Profile will be used, either Windows or
    -- Linux.
    GetLaunchProfileInitialization -> Text
platform :: Prelude.Text,
    -- | The studio ID.
    GetLaunchProfileInitialization -> Text
studioId :: Prelude.Text
  }
  deriving (GetLaunchProfileInitialization
-> GetLaunchProfileInitialization -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetLaunchProfileInitialization
-> GetLaunchProfileInitialization -> Bool
$c/= :: GetLaunchProfileInitialization
-> GetLaunchProfileInitialization -> Bool
== :: GetLaunchProfileInitialization
-> GetLaunchProfileInitialization -> Bool
$c== :: GetLaunchProfileInitialization
-> GetLaunchProfileInitialization -> Bool
Prelude.Eq, ReadPrec [GetLaunchProfileInitialization]
ReadPrec GetLaunchProfileInitialization
Int -> ReadS GetLaunchProfileInitialization
ReadS [GetLaunchProfileInitialization]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetLaunchProfileInitialization]
$creadListPrec :: ReadPrec [GetLaunchProfileInitialization]
readPrec :: ReadPrec GetLaunchProfileInitialization
$creadPrec :: ReadPrec GetLaunchProfileInitialization
readList :: ReadS [GetLaunchProfileInitialization]
$creadList :: ReadS [GetLaunchProfileInitialization]
readsPrec :: Int -> ReadS GetLaunchProfileInitialization
$creadsPrec :: Int -> ReadS GetLaunchProfileInitialization
Prelude.Read, Int -> GetLaunchProfileInitialization -> ShowS
[GetLaunchProfileInitialization] -> ShowS
GetLaunchProfileInitialization -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetLaunchProfileInitialization] -> ShowS
$cshowList :: [GetLaunchProfileInitialization] -> ShowS
show :: GetLaunchProfileInitialization -> String
$cshow :: GetLaunchProfileInitialization -> String
showsPrec :: Int -> GetLaunchProfileInitialization -> ShowS
$cshowsPrec :: Int -> GetLaunchProfileInitialization -> ShowS
Prelude.Show, forall x.
Rep GetLaunchProfileInitialization x
-> GetLaunchProfileInitialization
forall x.
GetLaunchProfileInitialization
-> Rep GetLaunchProfileInitialization x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetLaunchProfileInitialization x
-> GetLaunchProfileInitialization
$cfrom :: forall x.
GetLaunchProfileInitialization
-> Rep GetLaunchProfileInitialization x
Prelude.Generic)

-- |
-- Create a value of 'GetLaunchProfileInitialization' 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:
--
-- 'launchProfileId', 'getLaunchProfileInitialization_launchProfileId' - The ID of the launch profile used to control access from the streaming
-- session.
--
-- 'launchProfileProtocolVersions', 'getLaunchProfileInitialization_launchProfileProtocolVersions' - The launch profile protocol versions supported by the client.
--
-- 'launchPurpose', 'getLaunchProfileInitialization_launchPurpose' - The launch purpose.
--
-- 'platform', 'getLaunchProfileInitialization_platform' - The platform where this Launch Profile will be used, either Windows or
-- Linux.
--
-- 'studioId', 'getLaunchProfileInitialization_studioId' - The studio ID.
newGetLaunchProfileInitialization ::
  -- | 'launchProfileId'
  Prelude.Text ->
  -- | 'launchPurpose'
  Prelude.Text ->
  -- | 'platform'
  Prelude.Text ->
  -- | 'studioId'
  Prelude.Text ->
  GetLaunchProfileInitialization
newGetLaunchProfileInitialization :: Text -> Text -> Text -> Text -> GetLaunchProfileInitialization
newGetLaunchProfileInitialization
  Text
pLaunchProfileId_
  Text
pLaunchPurpose_
  Text
pPlatform_
  Text
pStudioId_ =
    GetLaunchProfileInitialization'
      { $sel:launchProfileId:GetLaunchProfileInitialization' :: Text
launchProfileId =
          Text
pLaunchProfileId_,
        $sel:launchProfileProtocolVersions:GetLaunchProfileInitialization' :: [Text]
launchProfileProtocolVersions =
          forall a. Monoid a => a
Prelude.mempty,
        $sel:launchPurpose:GetLaunchProfileInitialization' :: Text
launchPurpose = Text
pLaunchPurpose_,
        $sel:platform:GetLaunchProfileInitialization' :: Text
platform = Text
pPlatform_,
        $sel:studioId:GetLaunchProfileInitialization' :: Text
studioId = Text
pStudioId_
      }

-- | The ID of the launch profile used to control access from the streaming
-- session.
getLaunchProfileInitialization_launchProfileId :: Lens.Lens' GetLaunchProfileInitialization Prelude.Text
getLaunchProfileInitialization_launchProfileId :: Lens' GetLaunchProfileInitialization Text
getLaunchProfileInitialization_launchProfileId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLaunchProfileInitialization' {Text
launchProfileId :: Text
$sel:launchProfileId:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> Text
launchProfileId} -> Text
launchProfileId) (\s :: GetLaunchProfileInitialization
s@GetLaunchProfileInitialization' {} Text
a -> GetLaunchProfileInitialization
s {$sel:launchProfileId:GetLaunchProfileInitialization' :: Text
launchProfileId = Text
a} :: GetLaunchProfileInitialization)

-- | The launch profile protocol versions supported by the client.
getLaunchProfileInitialization_launchProfileProtocolVersions :: Lens.Lens' GetLaunchProfileInitialization [Prelude.Text]
getLaunchProfileInitialization_launchProfileProtocolVersions :: Lens' GetLaunchProfileInitialization [Text]
getLaunchProfileInitialization_launchProfileProtocolVersions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLaunchProfileInitialization' {[Text]
launchProfileProtocolVersions :: [Text]
$sel:launchProfileProtocolVersions:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> [Text]
launchProfileProtocolVersions} -> [Text]
launchProfileProtocolVersions) (\s :: GetLaunchProfileInitialization
s@GetLaunchProfileInitialization' {} [Text]
a -> GetLaunchProfileInitialization
s {$sel:launchProfileProtocolVersions:GetLaunchProfileInitialization' :: [Text]
launchProfileProtocolVersions = [Text]
a} :: GetLaunchProfileInitialization) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The launch purpose.
getLaunchProfileInitialization_launchPurpose :: Lens.Lens' GetLaunchProfileInitialization Prelude.Text
getLaunchProfileInitialization_launchPurpose :: Lens' GetLaunchProfileInitialization Text
getLaunchProfileInitialization_launchPurpose = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLaunchProfileInitialization' {Text
launchPurpose :: Text
$sel:launchPurpose:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> Text
launchPurpose} -> Text
launchPurpose) (\s :: GetLaunchProfileInitialization
s@GetLaunchProfileInitialization' {} Text
a -> GetLaunchProfileInitialization
s {$sel:launchPurpose:GetLaunchProfileInitialization' :: Text
launchPurpose = Text
a} :: GetLaunchProfileInitialization)

-- | The platform where this Launch Profile will be used, either Windows or
-- Linux.
getLaunchProfileInitialization_platform :: Lens.Lens' GetLaunchProfileInitialization Prelude.Text
getLaunchProfileInitialization_platform :: Lens' GetLaunchProfileInitialization Text
getLaunchProfileInitialization_platform = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLaunchProfileInitialization' {Text
platform :: Text
$sel:platform:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> Text
platform} -> Text
platform) (\s :: GetLaunchProfileInitialization
s@GetLaunchProfileInitialization' {} Text
a -> GetLaunchProfileInitialization
s {$sel:platform:GetLaunchProfileInitialization' :: Text
platform = Text
a} :: GetLaunchProfileInitialization)

-- | The studio ID.
getLaunchProfileInitialization_studioId :: Lens.Lens' GetLaunchProfileInitialization Prelude.Text
getLaunchProfileInitialization_studioId :: Lens' GetLaunchProfileInitialization Text
getLaunchProfileInitialization_studioId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLaunchProfileInitialization' {Text
studioId :: Text
$sel:studioId:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> Text
studioId} -> Text
studioId) (\s :: GetLaunchProfileInitialization
s@GetLaunchProfileInitialization' {} Text
a -> GetLaunchProfileInitialization
s {$sel:studioId:GetLaunchProfileInitialization' :: Text
studioId = Text
a} :: GetLaunchProfileInitialization)

instance
  Core.AWSRequest
    GetLaunchProfileInitialization
  where
  type
    AWSResponse GetLaunchProfileInitialization =
      GetLaunchProfileInitializationResponse
  request :: (Service -> Service)
-> GetLaunchProfileInitialization
-> Request GetLaunchProfileInitialization
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 GetLaunchProfileInitialization
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse GetLaunchProfileInitialization)))
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 LaunchProfileInitialization
-> Int -> GetLaunchProfileInitializationResponse
GetLaunchProfileInitializationResponse'
            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
"launchProfileInitialization")
            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
    GetLaunchProfileInitialization
  where
  hashWithSalt :: Int -> GetLaunchProfileInitialization -> Int
hashWithSalt
    Int
_salt
    GetLaunchProfileInitialization' {[Text]
Text
studioId :: Text
platform :: Text
launchPurpose :: Text
launchProfileProtocolVersions :: [Text]
launchProfileId :: Text
$sel:studioId:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> Text
$sel:platform:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> Text
$sel:launchPurpose:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> Text
$sel:launchProfileProtocolVersions:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> [Text]
$sel:launchProfileId:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
launchProfileId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` [Text]
launchProfileProtocolVersions
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
launchPurpose
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
platform
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
studioId

instance
  Prelude.NFData
    GetLaunchProfileInitialization
  where
  rnf :: GetLaunchProfileInitialization -> ()
rnf GetLaunchProfileInitialization' {[Text]
Text
studioId :: Text
platform :: Text
launchPurpose :: Text
launchProfileProtocolVersions :: [Text]
launchProfileId :: Text
$sel:studioId:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> Text
$sel:platform:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> Text
$sel:launchPurpose:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> Text
$sel:launchProfileProtocolVersions:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> [Text]
$sel:launchProfileId:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
launchProfileId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf [Text]
launchProfileProtocolVersions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
launchPurpose
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
platform
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
studioId

instance
  Data.ToHeaders
    GetLaunchProfileInitialization
  where
  toHeaders :: GetLaunchProfileInitialization -> 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 GetLaunchProfileInitialization where
  toPath :: GetLaunchProfileInitialization -> ByteString
toPath GetLaunchProfileInitialization' {[Text]
Text
studioId :: Text
platform :: Text
launchPurpose :: Text
launchProfileProtocolVersions :: [Text]
launchProfileId :: Text
$sel:studioId:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> Text
$sel:platform:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> Text
$sel:launchPurpose:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> Text
$sel:launchProfileProtocolVersions:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> [Text]
$sel:launchProfileId:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/2020-08-01/studios/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
studioId,
        ByteString
"/launch-profiles/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
launchProfileId,
        ByteString
"/init"
      ]

instance Data.ToQuery GetLaunchProfileInitialization where
  toQuery :: GetLaunchProfileInitialization -> QueryString
toQuery GetLaunchProfileInitialization' {[Text]
Text
studioId :: Text
platform :: Text
launchPurpose :: Text
launchProfileProtocolVersions :: [Text]
launchProfileId :: Text
$sel:studioId:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> Text
$sel:platform:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> Text
$sel:launchPurpose:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> Text
$sel:launchProfileProtocolVersions:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> [Text]
$sel:launchProfileId:GetLaunchProfileInitialization' :: GetLaunchProfileInitialization -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"launchProfileProtocolVersions"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList
            ByteString
"member"
            [Text]
launchProfileProtocolVersions,
        ByteString
"launchPurpose" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
launchPurpose,
        ByteString
"platform" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
platform
      ]

-- | /See:/ 'newGetLaunchProfileInitializationResponse' smart constructor.
data GetLaunchProfileInitializationResponse = GetLaunchProfileInitializationResponse'
  { -- | The launch profile initialization.
    GetLaunchProfileInitializationResponse
-> Maybe LaunchProfileInitialization
launchProfileInitialization :: Prelude.Maybe LaunchProfileInitialization,
    -- | The response's http status code.
    GetLaunchProfileInitializationResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetLaunchProfileInitializationResponse
-> GetLaunchProfileInitializationResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetLaunchProfileInitializationResponse
-> GetLaunchProfileInitializationResponse -> Bool
$c/= :: GetLaunchProfileInitializationResponse
-> GetLaunchProfileInitializationResponse -> Bool
== :: GetLaunchProfileInitializationResponse
-> GetLaunchProfileInitializationResponse -> Bool
$c== :: GetLaunchProfileInitializationResponse
-> GetLaunchProfileInitializationResponse -> Bool
Prelude.Eq, Int -> GetLaunchProfileInitializationResponse -> ShowS
[GetLaunchProfileInitializationResponse] -> ShowS
GetLaunchProfileInitializationResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetLaunchProfileInitializationResponse] -> ShowS
$cshowList :: [GetLaunchProfileInitializationResponse] -> ShowS
show :: GetLaunchProfileInitializationResponse -> String
$cshow :: GetLaunchProfileInitializationResponse -> String
showsPrec :: Int -> GetLaunchProfileInitializationResponse -> ShowS
$cshowsPrec :: Int -> GetLaunchProfileInitializationResponse -> ShowS
Prelude.Show, forall x.
Rep GetLaunchProfileInitializationResponse x
-> GetLaunchProfileInitializationResponse
forall x.
GetLaunchProfileInitializationResponse
-> Rep GetLaunchProfileInitializationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetLaunchProfileInitializationResponse x
-> GetLaunchProfileInitializationResponse
$cfrom :: forall x.
GetLaunchProfileInitializationResponse
-> Rep GetLaunchProfileInitializationResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetLaunchProfileInitializationResponse' 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:
--
-- 'launchProfileInitialization', 'getLaunchProfileInitializationResponse_launchProfileInitialization' - The launch profile initialization.
--
-- 'httpStatus', 'getLaunchProfileInitializationResponse_httpStatus' - The response's http status code.
newGetLaunchProfileInitializationResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetLaunchProfileInitializationResponse
newGetLaunchProfileInitializationResponse :: Int -> GetLaunchProfileInitializationResponse
newGetLaunchProfileInitializationResponse
  Int
pHttpStatus_ =
    GetLaunchProfileInitializationResponse'
      { $sel:launchProfileInitialization:GetLaunchProfileInitializationResponse' :: Maybe LaunchProfileInitialization
launchProfileInitialization =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:GetLaunchProfileInitializationResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | The launch profile initialization.
getLaunchProfileInitializationResponse_launchProfileInitialization :: Lens.Lens' GetLaunchProfileInitializationResponse (Prelude.Maybe LaunchProfileInitialization)
getLaunchProfileInitializationResponse_launchProfileInitialization :: Lens'
  GetLaunchProfileInitializationResponse
  (Maybe LaunchProfileInitialization)
getLaunchProfileInitializationResponse_launchProfileInitialization = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLaunchProfileInitializationResponse' {Maybe LaunchProfileInitialization
launchProfileInitialization :: Maybe LaunchProfileInitialization
$sel:launchProfileInitialization:GetLaunchProfileInitializationResponse' :: GetLaunchProfileInitializationResponse
-> Maybe LaunchProfileInitialization
launchProfileInitialization} -> Maybe LaunchProfileInitialization
launchProfileInitialization) (\s :: GetLaunchProfileInitializationResponse
s@GetLaunchProfileInitializationResponse' {} Maybe LaunchProfileInitialization
a -> GetLaunchProfileInitializationResponse
s {$sel:launchProfileInitialization:GetLaunchProfileInitializationResponse' :: Maybe LaunchProfileInitialization
launchProfileInitialization = Maybe LaunchProfileInitialization
a} :: GetLaunchProfileInitializationResponse)

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

instance
  Prelude.NFData
    GetLaunchProfileInitializationResponse
  where
  rnf :: GetLaunchProfileInitializationResponse -> ()
rnf GetLaunchProfileInitializationResponse' {Int
Maybe LaunchProfileInitialization
httpStatus :: Int
launchProfileInitialization :: Maybe LaunchProfileInitialization
$sel:httpStatus:GetLaunchProfileInitializationResponse' :: GetLaunchProfileInitializationResponse -> Int
$sel:launchProfileInitialization:GetLaunchProfileInitializationResponse' :: GetLaunchProfileInitializationResponse
-> Maybe LaunchProfileInitialization
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe LaunchProfileInitialization
launchProfileInitialization
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus