{-# 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.GetLaunchProfileDetails
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Launch profile details include the launch profile resource and summary
-- information of resources that are used by, or available to, the launch
-- profile. This includes the name and description of all studio components
-- used by the launch profiles, and the name and description of streaming
-- images that can be used with this launch profile.
module Amazonka.Nimble.GetLaunchProfileDetails
  ( -- * Creating a Request
    GetLaunchProfileDetails (..),
    newGetLaunchProfileDetails,

    -- * Request Lenses
    getLaunchProfileDetails_studioId,
    getLaunchProfileDetails_launchProfileId,

    -- * Destructuring the Response
    GetLaunchProfileDetailsResponse (..),
    newGetLaunchProfileDetailsResponse,

    -- * Response Lenses
    getLaunchProfileDetailsResponse_streamingImages,
    getLaunchProfileDetailsResponse_launchProfile,
    getLaunchProfileDetailsResponse_studioComponentSummaries,
    getLaunchProfileDetailsResponse_httpStatus,
  )
where

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

-- | /See:/ 'newGetLaunchProfileDetails' smart constructor.
data GetLaunchProfileDetails = GetLaunchProfileDetails'
  { -- | The studio ID.
    GetLaunchProfileDetails -> Text
studioId :: Prelude.Text,
    -- | The launch profile ID.
    GetLaunchProfileDetails -> Text
launchProfileId :: Prelude.Text
  }
  deriving (GetLaunchProfileDetails -> GetLaunchProfileDetails -> Bool
(GetLaunchProfileDetails -> GetLaunchProfileDetails -> Bool)
-> (GetLaunchProfileDetails -> GetLaunchProfileDetails -> Bool)
-> Eq GetLaunchProfileDetails
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetLaunchProfileDetails -> GetLaunchProfileDetails -> Bool
$c/= :: GetLaunchProfileDetails -> GetLaunchProfileDetails -> Bool
== :: GetLaunchProfileDetails -> GetLaunchProfileDetails -> Bool
$c== :: GetLaunchProfileDetails -> GetLaunchProfileDetails -> Bool
Prelude.Eq, ReadPrec [GetLaunchProfileDetails]
ReadPrec GetLaunchProfileDetails
Int -> ReadS GetLaunchProfileDetails
ReadS [GetLaunchProfileDetails]
(Int -> ReadS GetLaunchProfileDetails)
-> ReadS [GetLaunchProfileDetails]
-> ReadPrec GetLaunchProfileDetails
-> ReadPrec [GetLaunchProfileDetails]
-> Read GetLaunchProfileDetails
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetLaunchProfileDetails]
$creadListPrec :: ReadPrec [GetLaunchProfileDetails]
readPrec :: ReadPrec GetLaunchProfileDetails
$creadPrec :: ReadPrec GetLaunchProfileDetails
readList :: ReadS [GetLaunchProfileDetails]
$creadList :: ReadS [GetLaunchProfileDetails]
readsPrec :: Int -> ReadS GetLaunchProfileDetails
$creadsPrec :: Int -> ReadS GetLaunchProfileDetails
Prelude.Read, Int -> GetLaunchProfileDetails -> ShowS
[GetLaunchProfileDetails] -> ShowS
GetLaunchProfileDetails -> String
(Int -> GetLaunchProfileDetails -> ShowS)
-> (GetLaunchProfileDetails -> String)
-> ([GetLaunchProfileDetails] -> ShowS)
-> Show GetLaunchProfileDetails
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetLaunchProfileDetails] -> ShowS
$cshowList :: [GetLaunchProfileDetails] -> ShowS
show :: GetLaunchProfileDetails -> String
$cshow :: GetLaunchProfileDetails -> String
showsPrec :: Int -> GetLaunchProfileDetails -> ShowS
$cshowsPrec :: Int -> GetLaunchProfileDetails -> ShowS
Prelude.Show, (forall x.
 GetLaunchProfileDetails -> Rep GetLaunchProfileDetails x)
-> (forall x.
    Rep GetLaunchProfileDetails x -> GetLaunchProfileDetails)
-> Generic GetLaunchProfileDetails
forall x. Rep GetLaunchProfileDetails x -> GetLaunchProfileDetails
forall x. GetLaunchProfileDetails -> Rep GetLaunchProfileDetails x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetLaunchProfileDetails x -> GetLaunchProfileDetails
$cfrom :: forall x. GetLaunchProfileDetails -> Rep GetLaunchProfileDetails x
Prelude.Generic)

-- |
-- Create a value of 'GetLaunchProfileDetails' 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:
--
-- 'studioId', 'getLaunchProfileDetails_studioId' - The studio ID.
--
-- 'launchProfileId', 'getLaunchProfileDetails_launchProfileId' - The launch profile ID.
newGetLaunchProfileDetails ::
  -- | 'studioId'
  Prelude.Text ->
  -- | 'launchProfileId'
  Prelude.Text ->
  GetLaunchProfileDetails
newGetLaunchProfileDetails :: Text -> Text -> GetLaunchProfileDetails
newGetLaunchProfileDetails
  Text
pStudioId_
  Text
pLaunchProfileId_ =
    GetLaunchProfileDetails' :: Text -> Text -> GetLaunchProfileDetails
GetLaunchProfileDetails'
      { $sel:studioId:GetLaunchProfileDetails' :: Text
studioId = Text
pStudioId_,
        $sel:launchProfileId:GetLaunchProfileDetails' :: Text
launchProfileId = Text
pLaunchProfileId_
      }

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

-- | The launch profile ID.
getLaunchProfileDetails_launchProfileId :: Lens.Lens' GetLaunchProfileDetails Prelude.Text
getLaunchProfileDetails_launchProfileId :: (Text -> f Text)
-> GetLaunchProfileDetails -> f GetLaunchProfileDetails
getLaunchProfileDetails_launchProfileId = (GetLaunchProfileDetails -> Text)
-> (GetLaunchProfileDetails -> Text -> GetLaunchProfileDetails)
-> Lens GetLaunchProfileDetails GetLaunchProfileDetails Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLaunchProfileDetails' {Text
launchProfileId :: Text
$sel:launchProfileId:GetLaunchProfileDetails' :: GetLaunchProfileDetails -> Text
launchProfileId} -> Text
launchProfileId) (\s :: GetLaunchProfileDetails
s@GetLaunchProfileDetails' {} Text
a -> GetLaunchProfileDetails
s {$sel:launchProfileId:GetLaunchProfileDetails' :: Text
launchProfileId = Text
a} :: GetLaunchProfileDetails)

instance Core.AWSRequest GetLaunchProfileDetails where
  type
    AWSResponse GetLaunchProfileDetails =
      GetLaunchProfileDetailsResponse
  request :: GetLaunchProfileDetails -> Request GetLaunchProfileDetails
request = Service
-> GetLaunchProfileDetails -> Request GetLaunchProfileDetails
forall a. ToRequest a => Service -> a -> Request a
Request.get Service
defaultService
  response :: Logger
-> Service
-> Proxy GetLaunchProfileDetails
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetLaunchProfileDetails)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse GetLaunchProfileDetails))
-> Logger
-> Service
-> Proxy GetLaunchProfileDetails
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetLaunchProfileDetails)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe [StreamingImage]
-> Maybe LaunchProfile
-> Maybe [StudioComponentSummary]
-> Int
-> GetLaunchProfileDetailsResponse
GetLaunchProfileDetailsResponse'
            (Maybe [StreamingImage]
 -> Maybe LaunchProfile
 -> Maybe [StudioComponentSummary]
 -> Int
 -> GetLaunchProfileDetailsResponse)
-> Either String (Maybe [StreamingImage])
-> Either
     String
     (Maybe LaunchProfile
      -> Maybe [StudioComponentSummary]
      -> Int
      -> GetLaunchProfileDetailsResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ( Object
x Object -> Text -> Either String (Maybe (Maybe [StreamingImage]))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"streamingImages"
                            Either String (Maybe (Maybe [StreamingImage]))
-> Maybe [StreamingImage] -> Either String (Maybe [StreamingImage])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [StreamingImage]
forall a. Monoid a => a
Prelude.mempty
                        )
            Either
  String
  (Maybe LaunchProfile
   -> Maybe [StudioComponentSummary]
   -> Int
   -> GetLaunchProfileDetailsResponse)
-> Either String (Maybe LaunchProfile)
-> Either
     String
     (Maybe [StudioComponentSummary]
      -> Int -> GetLaunchProfileDetailsResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe LaunchProfile)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"launchProfile")
            Either
  String
  (Maybe [StudioComponentSummary]
   -> Int -> GetLaunchProfileDetailsResponse)
-> Either String (Maybe [StudioComponentSummary])
-> Either String (Int -> GetLaunchProfileDetailsResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Text -> Either String (Maybe (Maybe [StudioComponentSummary]))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"studioComponentSummaries"
                            Either String (Maybe (Maybe [StudioComponentSummary]))
-> Maybe [StudioComponentSummary]
-> Either String (Maybe [StudioComponentSummary])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [StudioComponentSummary]
forall a. Monoid a => a
Prelude.mempty
                        )
            Either String (Int -> GetLaunchProfileDetailsResponse)
-> Either String Int
-> Either String GetLaunchProfileDetailsResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable GetLaunchProfileDetails

instance Prelude.NFData GetLaunchProfileDetails

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

instance Core.ToPath GetLaunchProfileDetails where
  toPath :: GetLaunchProfileDetails -> ByteString
toPath GetLaunchProfileDetails' {Text
launchProfileId :: Text
studioId :: Text
$sel:launchProfileId:GetLaunchProfileDetails' :: GetLaunchProfileDetails -> Text
$sel:studioId:GetLaunchProfileDetails' :: GetLaunchProfileDetails -> Text
..} =
    [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/2020-08-01/studios/",
        Text -> ByteString
forall a. ToByteString a => a -> ByteString
Core.toBS Text
studioId,
        ByteString
"/launch-profiles/",
        Text -> ByteString
forall a. ToByteString a => a -> ByteString
Core.toBS Text
launchProfileId,
        ByteString
"/details"
      ]

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

-- | /See:/ 'newGetLaunchProfileDetailsResponse' smart constructor.
data GetLaunchProfileDetailsResponse = GetLaunchProfileDetailsResponse'
  { -- | A collection of streaming images.
    GetLaunchProfileDetailsResponse -> Maybe [StreamingImage]
streamingImages :: Prelude.Maybe [StreamingImage],
    -- | The launch profile.
    GetLaunchProfileDetailsResponse -> Maybe LaunchProfile
launchProfile :: Prelude.Maybe LaunchProfile,
    -- | A collection of studio component summaries.
    GetLaunchProfileDetailsResponse -> Maybe [StudioComponentSummary]
studioComponentSummaries :: Prelude.Maybe [StudioComponentSummary],
    -- | The response's http status code.
    GetLaunchProfileDetailsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetLaunchProfileDetailsResponse
-> GetLaunchProfileDetailsResponse -> Bool
(GetLaunchProfileDetailsResponse
 -> GetLaunchProfileDetailsResponse -> Bool)
-> (GetLaunchProfileDetailsResponse
    -> GetLaunchProfileDetailsResponse -> Bool)
-> Eq GetLaunchProfileDetailsResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetLaunchProfileDetailsResponse
-> GetLaunchProfileDetailsResponse -> Bool
$c/= :: GetLaunchProfileDetailsResponse
-> GetLaunchProfileDetailsResponse -> Bool
== :: GetLaunchProfileDetailsResponse
-> GetLaunchProfileDetailsResponse -> Bool
$c== :: GetLaunchProfileDetailsResponse
-> GetLaunchProfileDetailsResponse -> Bool
Prelude.Eq, ReadPrec [GetLaunchProfileDetailsResponse]
ReadPrec GetLaunchProfileDetailsResponse
Int -> ReadS GetLaunchProfileDetailsResponse
ReadS [GetLaunchProfileDetailsResponse]
(Int -> ReadS GetLaunchProfileDetailsResponse)
-> ReadS [GetLaunchProfileDetailsResponse]
-> ReadPrec GetLaunchProfileDetailsResponse
-> ReadPrec [GetLaunchProfileDetailsResponse]
-> Read GetLaunchProfileDetailsResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetLaunchProfileDetailsResponse]
$creadListPrec :: ReadPrec [GetLaunchProfileDetailsResponse]
readPrec :: ReadPrec GetLaunchProfileDetailsResponse
$creadPrec :: ReadPrec GetLaunchProfileDetailsResponse
readList :: ReadS [GetLaunchProfileDetailsResponse]
$creadList :: ReadS [GetLaunchProfileDetailsResponse]
readsPrec :: Int -> ReadS GetLaunchProfileDetailsResponse
$creadsPrec :: Int -> ReadS GetLaunchProfileDetailsResponse
Prelude.Read, Int -> GetLaunchProfileDetailsResponse -> ShowS
[GetLaunchProfileDetailsResponse] -> ShowS
GetLaunchProfileDetailsResponse -> String
(Int -> GetLaunchProfileDetailsResponse -> ShowS)
-> (GetLaunchProfileDetailsResponse -> String)
-> ([GetLaunchProfileDetailsResponse] -> ShowS)
-> Show GetLaunchProfileDetailsResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetLaunchProfileDetailsResponse] -> ShowS
$cshowList :: [GetLaunchProfileDetailsResponse] -> ShowS
show :: GetLaunchProfileDetailsResponse -> String
$cshow :: GetLaunchProfileDetailsResponse -> String
showsPrec :: Int -> GetLaunchProfileDetailsResponse -> ShowS
$cshowsPrec :: Int -> GetLaunchProfileDetailsResponse -> ShowS
Prelude.Show, (forall x.
 GetLaunchProfileDetailsResponse
 -> Rep GetLaunchProfileDetailsResponse x)
-> (forall x.
    Rep GetLaunchProfileDetailsResponse x
    -> GetLaunchProfileDetailsResponse)
-> Generic GetLaunchProfileDetailsResponse
forall x.
Rep GetLaunchProfileDetailsResponse x
-> GetLaunchProfileDetailsResponse
forall x.
GetLaunchProfileDetailsResponse
-> Rep GetLaunchProfileDetailsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetLaunchProfileDetailsResponse x
-> GetLaunchProfileDetailsResponse
$cfrom :: forall x.
GetLaunchProfileDetailsResponse
-> Rep GetLaunchProfileDetailsResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetLaunchProfileDetailsResponse' 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:
--
-- 'streamingImages', 'getLaunchProfileDetailsResponse_streamingImages' - A collection of streaming images.
--
-- 'launchProfile', 'getLaunchProfileDetailsResponse_launchProfile' - The launch profile.
--
-- 'studioComponentSummaries', 'getLaunchProfileDetailsResponse_studioComponentSummaries' - A collection of studio component summaries.
--
-- 'httpStatus', 'getLaunchProfileDetailsResponse_httpStatus' - The response's http status code.
newGetLaunchProfileDetailsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetLaunchProfileDetailsResponse
newGetLaunchProfileDetailsResponse :: Int -> GetLaunchProfileDetailsResponse
newGetLaunchProfileDetailsResponse Int
pHttpStatus_ =
  GetLaunchProfileDetailsResponse' :: Maybe [StreamingImage]
-> Maybe LaunchProfile
-> Maybe [StudioComponentSummary]
-> Int
-> GetLaunchProfileDetailsResponse
GetLaunchProfileDetailsResponse'
    { $sel:streamingImages:GetLaunchProfileDetailsResponse' :: Maybe [StreamingImage]
streamingImages =
        Maybe [StreamingImage]
forall a. Maybe a
Prelude.Nothing,
      $sel:launchProfile:GetLaunchProfileDetailsResponse' :: Maybe LaunchProfile
launchProfile = Maybe LaunchProfile
forall a. Maybe a
Prelude.Nothing,
      $sel:studioComponentSummaries:GetLaunchProfileDetailsResponse' :: Maybe [StudioComponentSummary]
studioComponentSummaries = Maybe [StudioComponentSummary]
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetLaunchProfileDetailsResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | A collection of streaming images.
getLaunchProfileDetailsResponse_streamingImages :: Lens.Lens' GetLaunchProfileDetailsResponse (Prelude.Maybe [StreamingImage])
getLaunchProfileDetailsResponse_streamingImages :: (Maybe [StreamingImage] -> f (Maybe [StreamingImage]))
-> GetLaunchProfileDetailsResponse
-> f GetLaunchProfileDetailsResponse
getLaunchProfileDetailsResponse_streamingImages = (GetLaunchProfileDetailsResponse -> Maybe [StreamingImage])
-> (GetLaunchProfileDetailsResponse
    -> Maybe [StreamingImage] -> GetLaunchProfileDetailsResponse)
-> Lens
     GetLaunchProfileDetailsResponse
     GetLaunchProfileDetailsResponse
     (Maybe [StreamingImage])
     (Maybe [StreamingImage])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLaunchProfileDetailsResponse' {Maybe [StreamingImage]
streamingImages :: Maybe [StreamingImage]
$sel:streamingImages:GetLaunchProfileDetailsResponse' :: GetLaunchProfileDetailsResponse -> Maybe [StreamingImage]
streamingImages} -> Maybe [StreamingImage]
streamingImages) (\s :: GetLaunchProfileDetailsResponse
s@GetLaunchProfileDetailsResponse' {} Maybe [StreamingImage]
a -> GetLaunchProfileDetailsResponse
s {$sel:streamingImages:GetLaunchProfileDetailsResponse' :: Maybe [StreamingImage]
streamingImages = Maybe [StreamingImage]
a} :: GetLaunchProfileDetailsResponse) ((Maybe [StreamingImage] -> f (Maybe [StreamingImage]))
 -> GetLaunchProfileDetailsResponse
 -> f GetLaunchProfileDetailsResponse)
-> ((Maybe [StreamingImage] -> f (Maybe [StreamingImage]))
    -> Maybe [StreamingImage] -> f (Maybe [StreamingImage]))
-> (Maybe [StreamingImage] -> f (Maybe [StreamingImage]))
-> GetLaunchProfileDetailsResponse
-> f GetLaunchProfileDetailsResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [StreamingImage] [StreamingImage] [StreamingImage] [StreamingImage]
-> Iso
     (Maybe [StreamingImage])
     (Maybe [StreamingImage])
     (Maybe [StreamingImage])
     (Maybe [StreamingImage])
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 AnIso
  [StreamingImage] [StreamingImage] [StreamingImage] [StreamingImage]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The launch profile.
getLaunchProfileDetailsResponse_launchProfile :: Lens.Lens' GetLaunchProfileDetailsResponse (Prelude.Maybe LaunchProfile)
getLaunchProfileDetailsResponse_launchProfile :: (Maybe LaunchProfile -> f (Maybe LaunchProfile))
-> GetLaunchProfileDetailsResponse
-> f GetLaunchProfileDetailsResponse
getLaunchProfileDetailsResponse_launchProfile = (GetLaunchProfileDetailsResponse -> Maybe LaunchProfile)
-> (GetLaunchProfileDetailsResponse
    -> Maybe LaunchProfile -> GetLaunchProfileDetailsResponse)
-> Lens
     GetLaunchProfileDetailsResponse
     GetLaunchProfileDetailsResponse
     (Maybe LaunchProfile)
     (Maybe LaunchProfile)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLaunchProfileDetailsResponse' {Maybe LaunchProfile
launchProfile :: Maybe LaunchProfile
$sel:launchProfile:GetLaunchProfileDetailsResponse' :: GetLaunchProfileDetailsResponse -> Maybe LaunchProfile
launchProfile} -> Maybe LaunchProfile
launchProfile) (\s :: GetLaunchProfileDetailsResponse
s@GetLaunchProfileDetailsResponse' {} Maybe LaunchProfile
a -> GetLaunchProfileDetailsResponse
s {$sel:launchProfile:GetLaunchProfileDetailsResponse' :: Maybe LaunchProfile
launchProfile = Maybe LaunchProfile
a} :: GetLaunchProfileDetailsResponse)

-- | A collection of studio component summaries.
getLaunchProfileDetailsResponse_studioComponentSummaries :: Lens.Lens' GetLaunchProfileDetailsResponse (Prelude.Maybe [StudioComponentSummary])
getLaunchProfileDetailsResponse_studioComponentSummaries :: (Maybe [StudioComponentSummary]
 -> f (Maybe [StudioComponentSummary]))
-> GetLaunchProfileDetailsResponse
-> f GetLaunchProfileDetailsResponse
getLaunchProfileDetailsResponse_studioComponentSummaries = (GetLaunchProfileDetailsResponse -> Maybe [StudioComponentSummary])
-> (GetLaunchProfileDetailsResponse
    -> Maybe [StudioComponentSummary]
    -> GetLaunchProfileDetailsResponse)
-> Lens
     GetLaunchProfileDetailsResponse
     GetLaunchProfileDetailsResponse
     (Maybe [StudioComponentSummary])
     (Maybe [StudioComponentSummary])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLaunchProfileDetailsResponse' {Maybe [StudioComponentSummary]
studioComponentSummaries :: Maybe [StudioComponentSummary]
$sel:studioComponentSummaries:GetLaunchProfileDetailsResponse' :: GetLaunchProfileDetailsResponse -> Maybe [StudioComponentSummary]
studioComponentSummaries} -> Maybe [StudioComponentSummary]
studioComponentSummaries) (\s :: GetLaunchProfileDetailsResponse
s@GetLaunchProfileDetailsResponse' {} Maybe [StudioComponentSummary]
a -> GetLaunchProfileDetailsResponse
s {$sel:studioComponentSummaries:GetLaunchProfileDetailsResponse' :: Maybe [StudioComponentSummary]
studioComponentSummaries = Maybe [StudioComponentSummary]
a} :: GetLaunchProfileDetailsResponse) ((Maybe [StudioComponentSummary]
  -> f (Maybe [StudioComponentSummary]))
 -> GetLaunchProfileDetailsResponse
 -> f GetLaunchProfileDetailsResponse)
-> ((Maybe [StudioComponentSummary]
     -> f (Maybe [StudioComponentSummary]))
    -> Maybe [StudioComponentSummary]
    -> f (Maybe [StudioComponentSummary]))
-> (Maybe [StudioComponentSummary]
    -> f (Maybe [StudioComponentSummary]))
-> GetLaunchProfileDetailsResponse
-> f GetLaunchProfileDetailsResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [StudioComponentSummary]
  [StudioComponentSummary]
  [StudioComponentSummary]
  [StudioComponentSummary]
-> Iso
     (Maybe [StudioComponentSummary])
     (Maybe [StudioComponentSummary])
     (Maybe [StudioComponentSummary])
     (Maybe [StudioComponentSummary])
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 AnIso
  [StudioComponentSummary]
  [StudioComponentSummary]
  [StudioComponentSummary]
  [StudioComponentSummary]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

instance
  Prelude.NFData
    GetLaunchProfileDetailsResponse