{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.MGN.Types.LaunchConfigurationTemplate
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.MGN.Types.LaunchConfigurationTemplate where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.MGN.Types.BootMode
import Amazonka.MGN.Types.LaunchDisposition
import Amazonka.MGN.Types.LaunchTemplateDiskConf
import Amazonka.MGN.Types.Licensing
import Amazonka.MGN.Types.PostLaunchActions
import Amazonka.MGN.Types.TargetInstanceTypeRightSizingMethod
import qualified Amazonka.Prelude as Prelude

-- | /See:/ 'newLaunchConfigurationTemplate' smart constructor.
data LaunchConfigurationTemplate = LaunchConfigurationTemplate'
  { -- | ARN of the Launch Configuration Template.
    LaunchConfigurationTemplate -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | Associate public Ip address.
    LaunchConfigurationTemplate -> Maybe Bool
associatePublicIpAddress :: Prelude.Maybe Prelude.Bool,
    -- | Launch configuration template boot mode.
    LaunchConfigurationTemplate -> Maybe BootMode
bootMode :: Prelude.Maybe BootMode,
    -- | Copy private Ip.
    LaunchConfigurationTemplate -> Maybe Bool
copyPrivateIp :: Prelude.Maybe Prelude.Bool,
    -- | Copy tags.
    LaunchConfigurationTemplate -> Maybe Bool
copyTags :: Prelude.Maybe Prelude.Bool,
    -- | EC2 launch template ID.
    LaunchConfigurationTemplate -> Maybe Text
ec2LaunchTemplateID :: Prelude.Maybe Prelude.Text,
    -- | Enable map auto tagging.
    LaunchConfigurationTemplate -> Maybe Bool
enableMapAutoTagging :: Prelude.Maybe Prelude.Bool,
    -- | Large volume config.
    LaunchConfigurationTemplate -> Maybe LaunchTemplateDiskConf
largeVolumeConf :: Prelude.Maybe LaunchTemplateDiskConf,
    -- | Launch disposition.
    LaunchConfigurationTemplate -> Maybe LaunchDisposition
launchDisposition :: Prelude.Maybe LaunchDisposition,
    LaunchConfigurationTemplate -> Maybe Licensing
licensing :: Prelude.Maybe Licensing,
    -- | Launch configuration template map auto tagging MPE ID.
    LaunchConfigurationTemplate -> Maybe Text
mapAutoTaggingMpeID :: Prelude.Maybe Prelude.Text,
    -- | Post Launch Actions of the Launch Configuration Template.
    LaunchConfigurationTemplate -> Maybe PostLaunchActions
postLaunchActions :: Prelude.Maybe PostLaunchActions,
    -- | Small volume config.
    LaunchConfigurationTemplate -> Maybe LaunchTemplateDiskConf
smallVolumeConf :: Prelude.Maybe LaunchTemplateDiskConf,
    -- | Small volume maximum size.
    LaunchConfigurationTemplate -> Maybe Natural
smallVolumeMaxSize :: Prelude.Maybe Prelude.Natural,
    -- | Tags of the Launch Configuration Template.
    LaunchConfigurationTemplate
-> Maybe (Sensitive (HashMap Text Text))
tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),
    -- | Target instance type right-sizing method.
    LaunchConfigurationTemplate
-> Maybe TargetInstanceTypeRightSizingMethod
targetInstanceTypeRightSizingMethod :: Prelude.Maybe TargetInstanceTypeRightSizingMethod,
    -- | ID of the Launch Configuration Template.
    LaunchConfigurationTemplate -> Text
launchConfigurationTemplateID :: Prelude.Text
  }
  deriving (LaunchConfigurationTemplate -> LaunchConfigurationTemplate -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: LaunchConfigurationTemplate -> LaunchConfigurationTemplate -> Bool
$c/= :: LaunchConfigurationTemplate -> LaunchConfigurationTemplate -> Bool
== :: LaunchConfigurationTemplate -> LaunchConfigurationTemplate -> Bool
$c== :: LaunchConfigurationTemplate -> LaunchConfigurationTemplate -> Bool
Prelude.Eq, Int -> LaunchConfigurationTemplate -> ShowS
[LaunchConfigurationTemplate] -> ShowS
LaunchConfigurationTemplate -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [LaunchConfigurationTemplate] -> ShowS
$cshowList :: [LaunchConfigurationTemplate] -> ShowS
show :: LaunchConfigurationTemplate -> String
$cshow :: LaunchConfigurationTemplate -> String
showsPrec :: Int -> LaunchConfigurationTemplate -> ShowS
$cshowsPrec :: Int -> LaunchConfigurationTemplate -> ShowS
Prelude.Show, forall x.
Rep LaunchConfigurationTemplate x -> LaunchConfigurationTemplate
forall x.
LaunchConfigurationTemplate -> Rep LaunchConfigurationTemplate x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep LaunchConfigurationTemplate x -> LaunchConfigurationTemplate
$cfrom :: forall x.
LaunchConfigurationTemplate -> Rep LaunchConfigurationTemplate x
Prelude.Generic)

-- |
-- Create a value of 'LaunchConfigurationTemplate' 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:
--
-- 'arn', 'launchConfigurationTemplate_arn' - ARN of the Launch Configuration Template.
--
-- 'associatePublicIpAddress', 'launchConfigurationTemplate_associatePublicIpAddress' - Associate public Ip address.
--
-- 'bootMode', 'launchConfigurationTemplate_bootMode' - Launch configuration template boot mode.
--
-- 'copyPrivateIp', 'launchConfigurationTemplate_copyPrivateIp' - Copy private Ip.
--
-- 'copyTags', 'launchConfigurationTemplate_copyTags' - Copy tags.
--
-- 'ec2LaunchTemplateID', 'launchConfigurationTemplate_ec2LaunchTemplateID' - EC2 launch template ID.
--
-- 'enableMapAutoTagging', 'launchConfigurationTemplate_enableMapAutoTagging' - Enable map auto tagging.
--
-- 'largeVolumeConf', 'launchConfigurationTemplate_largeVolumeConf' - Large volume config.
--
-- 'launchDisposition', 'launchConfigurationTemplate_launchDisposition' - Launch disposition.
--
-- 'licensing', 'launchConfigurationTemplate_licensing' - Undocumented member.
--
-- 'mapAutoTaggingMpeID', 'launchConfigurationTemplate_mapAutoTaggingMpeID' - Launch configuration template map auto tagging MPE ID.
--
-- 'postLaunchActions', 'launchConfigurationTemplate_postLaunchActions' - Post Launch Actions of the Launch Configuration Template.
--
-- 'smallVolumeConf', 'launchConfigurationTemplate_smallVolumeConf' - Small volume config.
--
-- 'smallVolumeMaxSize', 'launchConfigurationTemplate_smallVolumeMaxSize' - Small volume maximum size.
--
-- 'tags', 'launchConfigurationTemplate_tags' - Tags of the Launch Configuration Template.
--
-- 'targetInstanceTypeRightSizingMethod', 'launchConfigurationTemplate_targetInstanceTypeRightSizingMethod' - Target instance type right-sizing method.
--
-- 'launchConfigurationTemplateID', 'launchConfigurationTemplate_launchConfigurationTemplateID' - ID of the Launch Configuration Template.
newLaunchConfigurationTemplate ::
  -- | 'launchConfigurationTemplateID'
  Prelude.Text ->
  LaunchConfigurationTemplate
newLaunchConfigurationTemplate :: Text -> LaunchConfigurationTemplate
newLaunchConfigurationTemplate
  Text
pLaunchConfigurationTemplateID_ =
    LaunchConfigurationTemplate'
      { $sel:arn:LaunchConfigurationTemplate' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
        $sel:associatePublicIpAddress:LaunchConfigurationTemplate' :: Maybe Bool
associatePublicIpAddress = forall a. Maybe a
Prelude.Nothing,
        $sel:bootMode:LaunchConfigurationTemplate' :: Maybe BootMode
bootMode = forall a. Maybe a
Prelude.Nothing,
        $sel:copyPrivateIp:LaunchConfigurationTemplate' :: Maybe Bool
copyPrivateIp = forall a. Maybe a
Prelude.Nothing,
        $sel:copyTags:LaunchConfigurationTemplate' :: Maybe Bool
copyTags = forall a. Maybe a
Prelude.Nothing,
        $sel:ec2LaunchTemplateID:LaunchConfigurationTemplate' :: Maybe Text
ec2LaunchTemplateID = forall a. Maybe a
Prelude.Nothing,
        $sel:enableMapAutoTagging:LaunchConfigurationTemplate' :: Maybe Bool
enableMapAutoTagging = forall a. Maybe a
Prelude.Nothing,
        $sel:largeVolumeConf:LaunchConfigurationTemplate' :: Maybe LaunchTemplateDiskConf
largeVolumeConf = forall a. Maybe a
Prelude.Nothing,
        $sel:launchDisposition:LaunchConfigurationTemplate' :: Maybe LaunchDisposition
launchDisposition = forall a. Maybe a
Prelude.Nothing,
        $sel:licensing:LaunchConfigurationTemplate' :: Maybe Licensing
licensing = forall a. Maybe a
Prelude.Nothing,
        $sel:mapAutoTaggingMpeID:LaunchConfigurationTemplate' :: Maybe Text
mapAutoTaggingMpeID = forall a. Maybe a
Prelude.Nothing,
        $sel:postLaunchActions:LaunchConfigurationTemplate' :: Maybe PostLaunchActions
postLaunchActions = forall a. Maybe a
Prelude.Nothing,
        $sel:smallVolumeConf:LaunchConfigurationTemplate' :: Maybe LaunchTemplateDiskConf
smallVolumeConf = forall a. Maybe a
Prelude.Nothing,
        $sel:smallVolumeMaxSize:LaunchConfigurationTemplate' :: Maybe Natural
smallVolumeMaxSize = forall a. Maybe a
Prelude.Nothing,
        $sel:tags:LaunchConfigurationTemplate' :: Maybe (Sensitive (HashMap Text Text))
tags = forall a. Maybe a
Prelude.Nothing,
        $sel:targetInstanceTypeRightSizingMethod:LaunchConfigurationTemplate' :: Maybe TargetInstanceTypeRightSizingMethod
targetInstanceTypeRightSizingMethod =
          forall a. Maybe a
Prelude.Nothing,
        $sel:launchConfigurationTemplateID:LaunchConfigurationTemplate' :: Text
launchConfigurationTemplateID =
          Text
pLaunchConfigurationTemplateID_
      }

-- | ARN of the Launch Configuration Template.
launchConfigurationTemplate_arn :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe Prelude.Text)
launchConfigurationTemplate_arn :: Lens' LaunchConfigurationTemplate (Maybe Text)
launchConfigurationTemplate_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchConfigurationTemplate' {Maybe Text
arn :: Maybe Text
$sel:arn:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Text
arn} -> Maybe Text
arn) (\s :: LaunchConfigurationTemplate
s@LaunchConfigurationTemplate' {} Maybe Text
a -> LaunchConfigurationTemplate
s {$sel:arn:LaunchConfigurationTemplate' :: Maybe Text
arn = Maybe Text
a} :: LaunchConfigurationTemplate)

-- | Associate public Ip address.
launchConfigurationTemplate_associatePublicIpAddress :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe Prelude.Bool)
launchConfigurationTemplate_associatePublicIpAddress :: Lens' LaunchConfigurationTemplate (Maybe Bool)
launchConfigurationTemplate_associatePublicIpAddress = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchConfigurationTemplate' {Maybe Bool
associatePublicIpAddress :: Maybe Bool
$sel:associatePublicIpAddress:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Bool
associatePublicIpAddress} -> Maybe Bool
associatePublicIpAddress) (\s :: LaunchConfigurationTemplate
s@LaunchConfigurationTemplate' {} Maybe Bool
a -> LaunchConfigurationTemplate
s {$sel:associatePublicIpAddress:LaunchConfigurationTemplate' :: Maybe Bool
associatePublicIpAddress = Maybe Bool
a} :: LaunchConfigurationTemplate)

-- | Launch configuration template boot mode.
launchConfigurationTemplate_bootMode :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe BootMode)
launchConfigurationTemplate_bootMode :: Lens' LaunchConfigurationTemplate (Maybe BootMode)
launchConfigurationTemplate_bootMode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchConfigurationTemplate' {Maybe BootMode
bootMode :: Maybe BootMode
$sel:bootMode:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe BootMode
bootMode} -> Maybe BootMode
bootMode) (\s :: LaunchConfigurationTemplate
s@LaunchConfigurationTemplate' {} Maybe BootMode
a -> LaunchConfigurationTemplate
s {$sel:bootMode:LaunchConfigurationTemplate' :: Maybe BootMode
bootMode = Maybe BootMode
a} :: LaunchConfigurationTemplate)

-- | Copy private Ip.
launchConfigurationTemplate_copyPrivateIp :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe Prelude.Bool)
launchConfigurationTemplate_copyPrivateIp :: Lens' LaunchConfigurationTemplate (Maybe Bool)
launchConfigurationTemplate_copyPrivateIp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchConfigurationTemplate' {Maybe Bool
copyPrivateIp :: Maybe Bool
$sel:copyPrivateIp:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Bool
copyPrivateIp} -> Maybe Bool
copyPrivateIp) (\s :: LaunchConfigurationTemplate
s@LaunchConfigurationTemplate' {} Maybe Bool
a -> LaunchConfigurationTemplate
s {$sel:copyPrivateIp:LaunchConfigurationTemplate' :: Maybe Bool
copyPrivateIp = Maybe Bool
a} :: LaunchConfigurationTemplate)

-- | Copy tags.
launchConfigurationTemplate_copyTags :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe Prelude.Bool)
launchConfigurationTemplate_copyTags :: Lens' LaunchConfigurationTemplate (Maybe Bool)
launchConfigurationTemplate_copyTags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchConfigurationTemplate' {Maybe Bool
copyTags :: Maybe Bool
$sel:copyTags:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Bool
copyTags} -> Maybe Bool
copyTags) (\s :: LaunchConfigurationTemplate
s@LaunchConfigurationTemplate' {} Maybe Bool
a -> LaunchConfigurationTemplate
s {$sel:copyTags:LaunchConfigurationTemplate' :: Maybe Bool
copyTags = Maybe Bool
a} :: LaunchConfigurationTemplate)

-- | EC2 launch template ID.
launchConfigurationTemplate_ec2LaunchTemplateID :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe Prelude.Text)
launchConfigurationTemplate_ec2LaunchTemplateID :: Lens' LaunchConfigurationTemplate (Maybe Text)
launchConfigurationTemplate_ec2LaunchTemplateID = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchConfigurationTemplate' {Maybe Text
ec2LaunchTemplateID :: Maybe Text
$sel:ec2LaunchTemplateID:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Text
ec2LaunchTemplateID} -> Maybe Text
ec2LaunchTemplateID) (\s :: LaunchConfigurationTemplate
s@LaunchConfigurationTemplate' {} Maybe Text
a -> LaunchConfigurationTemplate
s {$sel:ec2LaunchTemplateID:LaunchConfigurationTemplate' :: Maybe Text
ec2LaunchTemplateID = Maybe Text
a} :: LaunchConfigurationTemplate)

-- | Enable map auto tagging.
launchConfigurationTemplate_enableMapAutoTagging :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe Prelude.Bool)
launchConfigurationTemplate_enableMapAutoTagging :: Lens' LaunchConfigurationTemplate (Maybe Bool)
launchConfigurationTemplate_enableMapAutoTagging = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchConfigurationTemplate' {Maybe Bool
enableMapAutoTagging :: Maybe Bool
$sel:enableMapAutoTagging:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Bool
enableMapAutoTagging} -> Maybe Bool
enableMapAutoTagging) (\s :: LaunchConfigurationTemplate
s@LaunchConfigurationTemplate' {} Maybe Bool
a -> LaunchConfigurationTemplate
s {$sel:enableMapAutoTagging:LaunchConfigurationTemplate' :: Maybe Bool
enableMapAutoTagging = Maybe Bool
a} :: LaunchConfigurationTemplate)

-- | Large volume config.
launchConfigurationTemplate_largeVolumeConf :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe LaunchTemplateDiskConf)
launchConfigurationTemplate_largeVolumeConf :: Lens' LaunchConfigurationTemplate (Maybe LaunchTemplateDiskConf)
launchConfigurationTemplate_largeVolumeConf = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchConfigurationTemplate' {Maybe LaunchTemplateDiskConf
largeVolumeConf :: Maybe LaunchTemplateDiskConf
$sel:largeVolumeConf:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe LaunchTemplateDiskConf
largeVolumeConf} -> Maybe LaunchTemplateDiskConf
largeVolumeConf) (\s :: LaunchConfigurationTemplate
s@LaunchConfigurationTemplate' {} Maybe LaunchTemplateDiskConf
a -> LaunchConfigurationTemplate
s {$sel:largeVolumeConf:LaunchConfigurationTemplate' :: Maybe LaunchTemplateDiskConf
largeVolumeConf = Maybe LaunchTemplateDiskConf
a} :: LaunchConfigurationTemplate)

-- | Launch disposition.
launchConfigurationTemplate_launchDisposition :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe LaunchDisposition)
launchConfigurationTemplate_launchDisposition :: Lens' LaunchConfigurationTemplate (Maybe LaunchDisposition)
launchConfigurationTemplate_launchDisposition = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchConfigurationTemplate' {Maybe LaunchDisposition
launchDisposition :: Maybe LaunchDisposition
$sel:launchDisposition:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe LaunchDisposition
launchDisposition} -> Maybe LaunchDisposition
launchDisposition) (\s :: LaunchConfigurationTemplate
s@LaunchConfigurationTemplate' {} Maybe LaunchDisposition
a -> LaunchConfigurationTemplate
s {$sel:launchDisposition:LaunchConfigurationTemplate' :: Maybe LaunchDisposition
launchDisposition = Maybe LaunchDisposition
a} :: LaunchConfigurationTemplate)

-- | Undocumented member.
launchConfigurationTemplate_licensing :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe Licensing)
launchConfigurationTemplate_licensing :: Lens' LaunchConfigurationTemplate (Maybe Licensing)
launchConfigurationTemplate_licensing = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchConfigurationTemplate' {Maybe Licensing
licensing :: Maybe Licensing
$sel:licensing:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Licensing
licensing} -> Maybe Licensing
licensing) (\s :: LaunchConfigurationTemplate
s@LaunchConfigurationTemplate' {} Maybe Licensing
a -> LaunchConfigurationTemplate
s {$sel:licensing:LaunchConfigurationTemplate' :: Maybe Licensing
licensing = Maybe Licensing
a} :: LaunchConfigurationTemplate)

-- | Launch configuration template map auto tagging MPE ID.
launchConfigurationTemplate_mapAutoTaggingMpeID :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe Prelude.Text)
launchConfigurationTemplate_mapAutoTaggingMpeID :: Lens' LaunchConfigurationTemplate (Maybe Text)
launchConfigurationTemplate_mapAutoTaggingMpeID = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchConfigurationTemplate' {Maybe Text
mapAutoTaggingMpeID :: Maybe Text
$sel:mapAutoTaggingMpeID:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Text
mapAutoTaggingMpeID} -> Maybe Text
mapAutoTaggingMpeID) (\s :: LaunchConfigurationTemplate
s@LaunchConfigurationTemplate' {} Maybe Text
a -> LaunchConfigurationTemplate
s {$sel:mapAutoTaggingMpeID:LaunchConfigurationTemplate' :: Maybe Text
mapAutoTaggingMpeID = Maybe Text
a} :: LaunchConfigurationTemplate)

-- | Post Launch Actions of the Launch Configuration Template.
launchConfigurationTemplate_postLaunchActions :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe PostLaunchActions)
launchConfigurationTemplate_postLaunchActions :: Lens' LaunchConfigurationTemplate (Maybe PostLaunchActions)
launchConfigurationTemplate_postLaunchActions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchConfigurationTemplate' {Maybe PostLaunchActions
postLaunchActions :: Maybe PostLaunchActions
$sel:postLaunchActions:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe PostLaunchActions
postLaunchActions} -> Maybe PostLaunchActions
postLaunchActions) (\s :: LaunchConfigurationTemplate
s@LaunchConfigurationTemplate' {} Maybe PostLaunchActions
a -> LaunchConfigurationTemplate
s {$sel:postLaunchActions:LaunchConfigurationTemplate' :: Maybe PostLaunchActions
postLaunchActions = Maybe PostLaunchActions
a} :: LaunchConfigurationTemplate)

-- | Small volume config.
launchConfigurationTemplate_smallVolumeConf :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe LaunchTemplateDiskConf)
launchConfigurationTemplate_smallVolumeConf :: Lens' LaunchConfigurationTemplate (Maybe LaunchTemplateDiskConf)
launchConfigurationTemplate_smallVolumeConf = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchConfigurationTemplate' {Maybe LaunchTemplateDiskConf
smallVolumeConf :: Maybe LaunchTemplateDiskConf
$sel:smallVolumeConf:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe LaunchTemplateDiskConf
smallVolumeConf} -> Maybe LaunchTemplateDiskConf
smallVolumeConf) (\s :: LaunchConfigurationTemplate
s@LaunchConfigurationTemplate' {} Maybe LaunchTemplateDiskConf
a -> LaunchConfigurationTemplate
s {$sel:smallVolumeConf:LaunchConfigurationTemplate' :: Maybe LaunchTemplateDiskConf
smallVolumeConf = Maybe LaunchTemplateDiskConf
a} :: LaunchConfigurationTemplate)

-- | Small volume maximum size.
launchConfigurationTemplate_smallVolumeMaxSize :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe Prelude.Natural)
launchConfigurationTemplate_smallVolumeMaxSize :: Lens' LaunchConfigurationTemplate (Maybe Natural)
launchConfigurationTemplate_smallVolumeMaxSize = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchConfigurationTemplate' {Maybe Natural
smallVolumeMaxSize :: Maybe Natural
$sel:smallVolumeMaxSize:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Natural
smallVolumeMaxSize} -> Maybe Natural
smallVolumeMaxSize) (\s :: LaunchConfigurationTemplate
s@LaunchConfigurationTemplate' {} Maybe Natural
a -> LaunchConfigurationTemplate
s {$sel:smallVolumeMaxSize:LaunchConfigurationTemplate' :: Maybe Natural
smallVolumeMaxSize = Maybe Natural
a} :: LaunchConfigurationTemplate)

-- | Tags of the Launch Configuration Template.
launchConfigurationTemplate_tags :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
launchConfigurationTemplate_tags :: Lens' LaunchConfigurationTemplate (Maybe (HashMap Text Text))
launchConfigurationTemplate_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchConfigurationTemplate' {Maybe (Sensitive (HashMap Text Text))
tags :: Maybe (Sensitive (HashMap Text Text))
$sel:tags:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate
-> Maybe (Sensitive (HashMap Text Text))
tags} -> Maybe (Sensitive (HashMap Text Text))
tags) (\s :: LaunchConfigurationTemplate
s@LaunchConfigurationTemplate' {} Maybe (Sensitive (HashMap Text Text))
a -> LaunchConfigurationTemplate
s {$sel:tags:LaunchConfigurationTemplate' :: Maybe (Sensitive (HashMap Text Text))
tags = Maybe (Sensitive (HashMap Text Text))
a} :: LaunchConfigurationTemplate) 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. Iso' (Sensitive a) a
Data._Sensitive 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)

-- | Target instance type right-sizing method.
launchConfigurationTemplate_targetInstanceTypeRightSizingMethod :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe TargetInstanceTypeRightSizingMethod)
launchConfigurationTemplate_targetInstanceTypeRightSizingMethod :: Lens'
  LaunchConfigurationTemplate
  (Maybe TargetInstanceTypeRightSizingMethod)
launchConfigurationTemplate_targetInstanceTypeRightSizingMethod = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchConfigurationTemplate' {Maybe TargetInstanceTypeRightSizingMethod
targetInstanceTypeRightSizingMethod :: Maybe TargetInstanceTypeRightSizingMethod
$sel:targetInstanceTypeRightSizingMethod:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate
-> Maybe TargetInstanceTypeRightSizingMethod
targetInstanceTypeRightSizingMethod} -> Maybe TargetInstanceTypeRightSizingMethod
targetInstanceTypeRightSizingMethod) (\s :: LaunchConfigurationTemplate
s@LaunchConfigurationTemplate' {} Maybe TargetInstanceTypeRightSizingMethod
a -> LaunchConfigurationTemplate
s {$sel:targetInstanceTypeRightSizingMethod:LaunchConfigurationTemplate' :: Maybe TargetInstanceTypeRightSizingMethod
targetInstanceTypeRightSizingMethod = Maybe TargetInstanceTypeRightSizingMethod
a} :: LaunchConfigurationTemplate)

-- | ID of the Launch Configuration Template.
launchConfigurationTemplate_launchConfigurationTemplateID :: Lens.Lens' LaunchConfigurationTemplate Prelude.Text
launchConfigurationTemplate_launchConfigurationTemplateID :: Lens' LaunchConfigurationTemplate Text
launchConfigurationTemplate_launchConfigurationTemplateID = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchConfigurationTemplate' {Text
launchConfigurationTemplateID :: Text
$sel:launchConfigurationTemplateID:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Text
launchConfigurationTemplateID} -> Text
launchConfigurationTemplateID) (\s :: LaunchConfigurationTemplate
s@LaunchConfigurationTemplate' {} Text
a -> LaunchConfigurationTemplate
s {$sel:launchConfigurationTemplateID:LaunchConfigurationTemplate' :: Text
launchConfigurationTemplateID = Text
a} :: LaunchConfigurationTemplate)

instance Data.FromJSON LaunchConfigurationTemplate where
  parseJSON :: Value -> Parser LaunchConfigurationTemplate
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"LaunchConfigurationTemplate"
      ( \Object
x ->
          Maybe Text
-> Maybe Bool
-> Maybe BootMode
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe LaunchTemplateDiskConf
-> Maybe LaunchDisposition
-> Maybe Licensing
-> Maybe Text
-> Maybe PostLaunchActions
-> Maybe LaunchTemplateDiskConf
-> Maybe Natural
-> Maybe (Sensitive (HashMap Text Text))
-> Maybe TargetInstanceTypeRightSizingMethod
-> Text
-> LaunchConfigurationTemplate
LaunchConfigurationTemplate'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"arn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"associatePublicIpAddress")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"bootMode")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"copyPrivateIp")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"copyTags")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ec2LaunchTemplateID")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"enableMapAutoTagging")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"largeVolumeConf")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"launchDisposition")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"licensing")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"mapAutoTaggingMpeID")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"postLaunchActions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"smallVolumeConf")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"smallVolumeMaxSize")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"tags" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= 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 -> Parser (Maybe a)
Data..:? Key
"targetInstanceTypeRightSizingMethod")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"launchConfigurationTemplateID")
      )

instance Prelude.Hashable LaunchConfigurationTemplate where
  hashWithSalt :: Int -> LaunchConfigurationTemplate -> Int
hashWithSalt Int
_salt LaunchConfigurationTemplate' {Maybe Bool
Maybe Natural
Maybe Text
Maybe (Sensitive (HashMap Text Text))
Maybe BootMode
Maybe LaunchDisposition
Maybe Licensing
Maybe PostLaunchActions
Maybe TargetInstanceTypeRightSizingMethod
Maybe LaunchTemplateDiskConf
Text
launchConfigurationTemplateID :: Text
targetInstanceTypeRightSizingMethod :: Maybe TargetInstanceTypeRightSizingMethod
tags :: Maybe (Sensitive (HashMap Text Text))
smallVolumeMaxSize :: Maybe Natural
smallVolumeConf :: Maybe LaunchTemplateDiskConf
postLaunchActions :: Maybe PostLaunchActions
mapAutoTaggingMpeID :: Maybe Text
licensing :: Maybe Licensing
launchDisposition :: Maybe LaunchDisposition
largeVolumeConf :: Maybe LaunchTemplateDiskConf
enableMapAutoTagging :: Maybe Bool
ec2LaunchTemplateID :: Maybe Text
copyTags :: Maybe Bool
copyPrivateIp :: Maybe Bool
bootMode :: Maybe BootMode
associatePublicIpAddress :: Maybe Bool
arn :: Maybe Text
$sel:launchConfigurationTemplateID:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Text
$sel:targetInstanceTypeRightSizingMethod:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate
-> Maybe TargetInstanceTypeRightSizingMethod
$sel:tags:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate
-> Maybe (Sensitive (HashMap Text Text))
$sel:smallVolumeMaxSize:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Natural
$sel:smallVolumeConf:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe LaunchTemplateDiskConf
$sel:postLaunchActions:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe PostLaunchActions
$sel:mapAutoTaggingMpeID:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Text
$sel:licensing:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Licensing
$sel:launchDisposition:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe LaunchDisposition
$sel:largeVolumeConf:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe LaunchTemplateDiskConf
$sel:enableMapAutoTagging:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Bool
$sel:ec2LaunchTemplateID:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Text
$sel:copyTags:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Bool
$sel:copyPrivateIp:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Bool
$sel:bootMode:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe BootMode
$sel:associatePublicIpAddress:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Bool
$sel:arn:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
arn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
associatePublicIpAddress
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BootMode
bootMode
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
copyPrivateIp
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
copyTags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ec2LaunchTemplateID
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
enableMapAutoTagging
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LaunchTemplateDiskConf
largeVolumeConf
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LaunchDisposition
launchDisposition
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Licensing
licensing
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
mapAutoTaggingMpeID
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PostLaunchActions
postLaunchActions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LaunchTemplateDiskConf
smallVolumeConf
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
smallVolumeMaxSize
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive (HashMap Text Text))
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TargetInstanceTypeRightSizingMethod
targetInstanceTypeRightSizingMethod
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
launchConfigurationTemplateID

instance Prelude.NFData LaunchConfigurationTemplate where
  rnf :: LaunchConfigurationTemplate -> ()
rnf LaunchConfigurationTemplate' {Maybe Bool
Maybe Natural
Maybe Text
Maybe (Sensitive (HashMap Text Text))
Maybe BootMode
Maybe LaunchDisposition
Maybe Licensing
Maybe PostLaunchActions
Maybe TargetInstanceTypeRightSizingMethod
Maybe LaunchTemplateDiskConf
Text
launchConfigurationTemplateID :: Text
targetInstanceTypeRightSizingMethod :: Maybe TargetInstanceTypeRightSizingMethod
tags :: Maybe (Sensitive (HashMap Text Text))
smallVolumeMaxSize :: Maybe Natural
smallVolumeConf :: Maybe LaunchTemplateDiskConf
postLaunchActions :: Maybe PostLaunchActions
mapAutoTaggingMpeID :: Maybe Text
licensing :: Maybe Licensing
launchDisposition :: Maybe LaunchDisposition
largeVolumeConf :: Maybe LaunchTemplateDiskConf
enableMapAutoTagging :: Maybe Bool
ec2LaunchTemplateID :: Maybe Text
copyTags :: Maybe Bool
copyPrivateIp :: Maybe Bool
bootMode :: Maybe BootMode
associatePublicIpAddress :: Maybe Bool
arn :: Maybe Text
$sel:launchConfigurationTemplateID:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Text
$sel:targetInstanceTypeRightSizingMethod:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate
-> Maybe TargetInstanceTypeRightSizingMethod
$sel:tags:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate
-> Maybe (Sensitive (HashMap Text Text))
$sel:smallVolumeMaxSize:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Natural
$sel:smallVolumeConf:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe LaunchTemplateDiskConf
$sel:postLaunchActions:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe PostLaunchActions
$sel:mapAutoTaggingMpeID:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Text
$sel:licensing:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Licensing
$sel:launchDisposition:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe LaunchDisposition
$sel:largeVolumeConf:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe LaunchTemplateDiskConf
$sel:enableMapAutoTagging:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Bool
$sel:ec2LaunchTemplateID:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Text
$sel:copyTags:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Bool
$sel:copyPrivateIp:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Bool
$sel:bootMode:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe BootMode
$sel:associatePublicIpAddress:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Bool
$sel:arn:LaunchConfigurationTemplate' :: LaunchConfigurationTemplate -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
associatePublicIpAddress
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe BootMode
bootMode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
copyPrivateIp
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
copyTags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ec2LaunchTemplateID
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
enableMapAutoTagging
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LaunchTemplateDiskConf
largeVolumeConf
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LaunchDisposition
launchDisposition
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Licensing
licensing
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
mapAutoTaggingMpeID
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PostLaunchActions
postLaunchActions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LaunchTemplateDiskConf
smallVolumeConf
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
smallVolumeMaxSize
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive (HashMap Text Text))
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe TargetInstanceTypeRightSizingMethod
targetInstanceTypeRightSizingMethod
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Text
launchConfigurationTemplateID