amazonka-nimble-2.0: gen/Amazonka/Nimble/GetLaunchProfileInitialization.hs
{-# 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.
launchProfileId :: Prelude.Text,
-- | The launch profile protocol versions supported by the client.
launchProfileProtocolVersions :: [Prelude.Text],
-- | The launch purpose.
launchPurpose :: Prelude.Text,
-- | The platform where this Launch Profile will be used, either Windows or
-- Linux.
platform :: Prelude.Text,
-- | The studio ID.
studioId :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, 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
pLaunchProfileId_
pLaunchPurpose_
pPlatform_
pStudioId_ =
GetLaunchProfileInitialization'
{ launchProfileId =
pLaunchProfileId_,
launchProfileProtocolVersions =
Prelude.mempty,
launchPurpose = pLaunchPurpose_,
platform = pPlatform_,
studioId = 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.lens (\GetLaunchProfileInitialization' {launchProfileId} -> launchProfileId) (\s@GetLaunchProfileInitialization' {} a -> s {launchProfileId = a} :: GetLaunchProfileInitialization)
-- | The launch profile protocol versions supported by the client.
getLaunchProfileInitialization_launchProfileProtocolVersions :: Lens.Lens' GetLaunchProfileInitialization [Prelude.Text]
getLaunchProfileInitialization_launchProfileProtocolVersions = Lens.lens (\GetLaunchProfileInitialization' {launchProfileProtocolVersions} -> launchProfileProtocolVersions) (\s@GetLaunchProfileInitialization' {} a -> s {launchProfileProtocolVersions = a} :: GetLaunchProfileInitialization) Prelude.. Lens.coerced
-- | The launch purpose.
getLaunchProfileInitialization_launchPurpose :: Lens.Lens' GetLaunchProfileInitialization Prelude.Text
getLaunchProfileInitialization_launchPurpose = Lens.lens (\GetLaunchProfileInitialization' {launchPurpose} -> launchPurpose) (\s@GetLaunchProfileInitialization' {} a -> s {launchPurpose = 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.lens (\GetLaunchProfileInitialization' {platform} -> platform) (\s@GetLaunchProfileInitialization' {} a -> s {platform = a} :: GetLaunchProfileInitialization)
-- | The studio ID.
getLaunchProfileInitialization_studioId :: Lens.Lens' GetLaunchProfileInitialization Prelude.Text
getLaunchProfileInitialization_studioId = Lens.lens (\GetLaunchProfileInitialization' {studioId} -> studioId) (\s@GetLaunchProfileInitialization' {} a -> s {studioId = a} :: GetLaunchProfileInitialization)
instance
Core.AWSRequest
GetLaunchProfileInitialization
where
type
AWSResponse GetLaunchProfileInitialization =
GetLaunchProfileInitializationResponse
request overrides =
Request.get (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
GetLaunchProfileInitializationResponse'
Prelude.<$> (x Data..?> "launchProfileInitialization")
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
)
instance
Prelude.Hashable
GetLaunchProfileInitialization
where
hashWithSalt
_salt
GetLaunchProfileInitialization' {..} =
_salt
`Prelude.hashWithSalt` launchProfileId
`Prelude.hashWithSalt` launchProfileProtocolVersions
`Prelude.hashWithSalt` launchPurpose
`Prelude.hashWithSalt` platform
`Prelude.hashWithSalt` studioId
instance
Prelude.NFData
GetLaunchProfileInitialization
where
rnf GetLaunchProfileInitialization' {..} =
Prelude.rnf launchProfileId
`Prelude.seq` Prelude.rnf launchProfileProtocolVersions
`Prelude.seq` Prelude.rnf launchPurpose
`Prelude.seq` Prelude.rnf platform
`Prelude.seq` Prelude.rnf studioId
instance
Data.ToHeaders
GetLaunchProfileInitialization
where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToPath GetLaunchProfileInitialization where
toPath GetLaunchProfileInitialization' {..} =
Prelude.mconcat
[ "/2020-08-01/studios/",
Data.toBS studioId,
"/launch-profiles/",
Data.toBS launchProfileId,
"/init"
]
instance Data.ToQuery GetLaunchProfileInitialization where
toQuery GetLaunchProfileInitialization' {..} =
Prelude.mconcat
[ "launchProfileProtocolVersions"
Data.=: Data.toQueryList
"member"
launchProfileProtocolVersions,
"launchPurpose" Data.=: launchPurpose,
"platform" Data.=: platform
]
-- | /See:/ 'newGetLaunchProfileInitializationResponse' smart constructor.
data GetLaunchProfileInitializationResponse = GetLaunchProfileInitializationResponse'
{ -- | The launch profile initialization.
launchProfileInitialization :: Prelude.Maybe LaunchProfileInitialization,
-- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Show, 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
pHttpStatus_ =
GetLaunchProfileInitializationResponse'
{ launchProfileInitialization =
Prelude.Nothing,
httpStatus = pHttpStatus_
}
-- | The launch profile initialization.
getLaunchProfileInitializationResponse_launchProfileInitialization :: Lens.Lens' GetLaunchProfileInitializationResponse (Prelude.Maybe LaunchProfileInitialization)
getLaunchProfileInitializationResponse_launchProfileInitialization = Lens.lens (\GetLaunchProfileInitializationResponse' {launchProfileInitialization} -> launchProfileInitialization) (\s@GetLaunchProfileInitializationResponse' {} a -> s {launchProfileInitialization = a} :: GetLaunchProfileInitializationResponse)
-- | The response's http status code.
getLaunchProfileInitializationResponse_httpStatus :: Lens.Lens' GetLaunchProfileInitializationResponse Prelude.Int
getLaunchProfileInitializationResponse_httpStatus = Lens.lens (\GetLaunchProfileInitializationResponse' {httpStatus} -> httpStatus) (\s@GetLaunchProfileInitializationResponse' {} a -> s {httpStatus = a} :: GetLaunchProfileInitializationResponse)
instance
Prelude.NFData
GetLaunchProfileInitializationResponse
where
rnf GetLaunchProfileInitializationResponse' {..} =
Prelude.rnf launchProfileInitialization
`Prelude.seq` Prelude.rnf httpStatus