{-# 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.EC2.Types.ResponseLaunchTemplateData
-- 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.EC2.Types.ResponseLaunchTemplateData where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.EC2.Internal
import Amazonka.EC2.Types.CreditSpecification
import Amazonka.EC2.Types.ElasticGpuSpecificationResponse
import Amazonka.EC2.Types.InstanceRequirements
import Amazonka.EC2.Types.InstanceType
import Amazonka.EC2.Types.LaunchTemplateBlockDeviceMapping
import Amazonka.EC2.Types.LaunchTemplateCapacityReservationSpecificationResponse
import Amazonka.EC2.Types.LaunchTemplateCpuOptions
import Amazonka.EC2.Types.LaunchTemplateElasticInferenceAcceleratorResponse
import Amazonka.EC2.Types.LaunchTemplateEnclaveOptions
import Amazonka.EC2.Types.LaunchTemplateHibernationOptions
import Amazonka.EC2.Types.LaunchTemplateIamInstanceProfileSpecification
import Amazonka.EC2.Types.LaunchTemplateInstanceMaintenanceOptions
import Amazonka.EC2.Types.LaunchTemplateInstanceMarketOptions
import Amazonka.EC2.Types.LaunchTemplateInstanceMetadataOptions
import Amazonka.EC2.Types.LaunchTemplateInstanceNetworkInterfaceSpecification
import Amazonka.EC2.Types.LaunchTemplateLicenseConfiguration
import Amazonka.EC2.Types.LaunchTemplatePlacement
import Amazonka.EC2.Types.LaunchTemplatePrivateDnsNameOptions
import Amazonka.EC2.Types.LaunchTemplateTagSpecification
import Amazonka.EC2.Types.LaunchTemplatesMonitoring
import Amazonka.EC2.Types.ShutdownBehavior
import qualified Amazonka.Prelude as Prelude

-- | The information for a launch template.
--
-- /See:/ 'newResponseLaunchTemplateData' smart constructor.
data ResponseLaunchTemplateData = ResponseLaunchTemplateData'
  { -- | The block device mappings.
    ResponseLaunchTemplateData
-> Maybe [LaunchTemplateBlockDeviceMapping]
blockDeviceMappings :: Prelude.Maybe [LaunchTemplateBlockDeviceMapping],
    -- | Information about the Capacity Reservation targeting option.
    ResponseLaunchTemplateData
-> Maybe LaunchTemplateCapacityReservationSpecificationResponse
capacityReservationSpecification :: Prelude.Maybe LaunchTemplateCapacityReservationSpecificationResponse,
    -- | The CPU options for the instance. For more information, see
    -- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html Optimizing CPU options>
    -- in the /Amazon Elastic Compute Cloud User Guide/.
    ResponseLaunchTemplateData -> Maybe LaunchTemplateCpuOptions
cpuOptions :: Prelude.Maybe LaunchTemplateCpuOptions,
    -- | The credit option for CPU usage of the instance.
    ResponseLaunchTemplateData -> Maybe CreditSpecification
creditSpecification :: Prelude.Maybe CreditSpecification,
    -- | Indicates whether the instance is enabled for stop protection. For more
    -- information, see
    -- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection Stop Protection>.
    ResponseLaunchTemplateData -> Maybe Bool
disableApiStop :: Prelude.Maybe Prelude.Bool,
    -- | If set to @true@, indicates that the instance cannot be terminated using
    -- the Amazon EC2 console, command line tool, or API.
    ResponseLaunchTemplateData -> Maybe Bool
disableApiTermination :: Prelude.Maybe Prelude.Bool,
    -- | Indicates whether the instance is optimized for Amazon EBS I\/O.
    ResponseLaunchTemplateData -> Maybe Bool
ebsOptimized :: Prelude.Maybe Prelude.Bool,
    -- | The elastic GPU specification.
    ResponseLaunchTemplateData
-> Maybe [ElasticGpuSpecificationResponse]
elasticGpuSpecifications :: Prelude.Maybe [ElasticGpuSpecificationResponse],
    -- | The elastic inference accelerator for the instance.
    ResponseLaunchTemplateData
-> Maybe [LaunchTemplateElasticInferenceAcceleratorResponse]
elasticInferenceAccelerators :: Prelude.Maybe [LaunchTemplateElasticInferenceAcceleratorResponse],
    -- | Indicates whether the instance is enabled for Amazon Web Services Nitro
    -- Enclaves.
    ResponseLaunchTemplateData -> Maybe LaunchTemplateEnclaveOptions
enclaveOptions :: Prelude.Maybe LaunchTemplateEnclaveOptions,
    -- | Indicates whether an instance is configured for hibernation. For more
    -- information, see
    -- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html Hibernate your instance>
    -- in the /Amazon Elastic Compute Cloud User Guide/.
    ResponseLaunchTemplateData
-> Maybe LaunchTemplateHibernationOptions
hibernationOptions :: Prelude.Maybe LaunchTemplateHibernationOptions,
    -- | The IAM instance profile.
    ResponseLaunchTemplateData
-> Maybe LaunchTemplateIamInstanceProfileSpecification
iamInstanceProfile :: Prelude.Maybe LaunchTemplateIamInstanceProfileSpecification,
    -- | The ID of the AMI that was used to launch the instance.
    ResponseLaunchTemplateData -> Maybe Text
imageId :: Prelude.Maybe Prelude.Text,
    -- | Indicates whether an instance stops or terminates when you initiate
    -- shutdown from the instance (using the operating system command for
    -- system shutdown).
    ResponseLaunchTemplateData -> Maybe ShutdownBehavior
instanceInitiatedShutdownBehavior :: Prelude.Maybe ShutdownBehavior,
    -- | The market (purchasing) option for the instances.
    ResponseLaunchTemplateData
-> Maybe LaunchTemplateInstanceMarketOptions
instanceMarketOptions :: Prelude.Maybe LaunchTemplateInstanceMarketOptions,
    -- | The attributes for the instance types. When you specify instance
    -- attributes, Amazon EC2 will identify instance types with these
    -- attributes.
    --
    -- If you specify @InstanceRequirements@, you can\'t specify
    -- @InstanceTypes@.
    ResponseLaunchTemplateData -> Maybe InstanceRequirements
instanceRequirements :: Prelude.Maybe InstanceRequirements,
    -- | The instance type.
    ResponseLaunchTemplateData -> Maybe InstanceType
instanceType :: Prelude.Maybe InstanceType,
    -- | The ID of the kernel, if applicable.
    ResponseLaunchTemplateData -> Maybe Text
kernelId :: Prelude.Maybe Prelude.Text,
    -- | The name of the key pair.
    ResponseLaunchTemplateData -> Maybe Text
keyName :: Prelude.Maybe Prelude.Text,
    -- | The license configurations.
    ResponseLaunchTemplateData
-> Maybe [LaunchTemplateLicenseConfiguration]
licenseSpecifications :: Prelude.Maybe [LaunchTemplateLicenseConfiguration],
    -- | The maintenance options for your instance.
    ResponseLaunchTemplateData
-> Maybe LaunchTemplateInstanceMaintenanceOptions
maintenanceOptions :: Prelude.Maybe LaunchTemplateInstanceMaintenanceOptions,
    -- | The metadata options for the instance. For more information, see
    -- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html Instance metadata and user data>
    -- in the /Amazon Elastic Compute Cloud User Guide/.
    ResponseLaunchTemplateData
-> Maybe LaunchTemplateInstanceMetadataOptions
metadataOptions :: Prelude.Maybe LaunchTemplateInstanceMetadataOptions,
    -- | The monitoring for the instance.
    ResponseLaunchTemplateData -> Maybe LaunchTemplatesMonitoring
monitoring :: Prelude.Maybe LaunchTemplatesMonitoring,
    -- | The network interfaces.
    ResponseLaunchTemplateData
-> Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification]
networkInterfaces :: Prelude.Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification],
    -- | The placement of the instance.
    ResponseLaunchTemplateData -> Maybe LaunchTemplatePlacement
placement :: Prelude.Maybe LaunchTemplatePlacement,
    -- | The options for the instance hostname.
    ResponseLaunchTemplateData
-> Maybe LaunchTemplatePrivateDnsNameOptions
privateDnsNameOptions :: Prelude.Maybe LaunchTemplatePrivateDnsNameOptions,
    -- | The ID of the RAM disk, if applicable.
    ResponseLaunchTemplateData -> Maybe Text
ramDiskId :: Prelude.Maybe Prelude.Text,
    -- | The security group IDs.
    ResponseLaunchTemplateData -> Maybe [Text]
securityGroupIds :: Prelude.Maybe [Prelude.Text],
    -- | The security group names.
    ResponseLaunchTemplateData -> Maybe [Text]
securityGroups :: Prelude.Maybe [Prelude.Text],
    -- | The tags that are applied to the resources that are created during
    -- instance launch.
    ResponseLaunchTemplateData
-> Maybe [LaunchTemplateTagSpecification]
tagSpecifications :: Prelude.Maybe [LaunchTemplateTagSpecification],
    -- | The user data for the instance.
    ResponseLaunchTemplateData -> Maybe Text
userData :: Prelude.Maybe Prelude.Text
  }
  deriving (ResponseLaunchTemplateData -> ResponseLaunchTemplateData -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ResponseLaunchTemplateData -> ResponseLaunchTemplateData -> Bool
$c/= :: ResponseLaunchTemplateData -> ResponseLaunchTemplateData -> Bool
== :: ResponseLaunchTemplateData -> ResponseLaunchTemplateData -> Bool
$c== :: ResponseLaunchTemplateData -> ResponseLaunchTemplateData -> Bool
Prelude.Eq, ReadPrec [ResponseLaunchTemplateData]
ReadPrec ResponseLaunchTemplateData
Int -> ReadS ResponseLaunchTemplateData
ReadS [ResponseLaunchTemplateData]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ResponseLaunchTemplateData]
$creadListPrec :: ReadPrec [ResponseLaunchTemplateData]
readPrec :: ReadPrec ResponseLaunchTemplateData
$creadPrec :: ReadPrec ResponseLaunchTemplateData
readList :: ReadS [ResponseLaunchTemplateData]
$creadList :: ReadS [ResponseLaunchTemplateData]
readsPrec :: Int -> ReadS ResponseLaunchTemplateData
$creadsPrec :: Int -> ReadS ResponseLaunchTemplateData
Prelude.Read, Int -> ResponseLaunchTemplateData -> ShowS
[ResponseLaunchTemplateData] -> ShowS
ResponseLaunchTemplateData -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ResponseLaunchTemplateData] -> ShowS
$cshowList :: [ResponseLaunchTemplateData] -> ShowS
show :: ResponseLaunchTemplateData -> String
$cshow :: ResponseLaunchTemplateData -> String
showsPrec :: Int -> ResponseLaunchTemplateData -> ShowS
$cshowsPrec :: Int -> ResponseLaunchTemplateData -> ShowS
Prelude.Show, forall x.
Rep ResponseLaunchTemplateData x -> ResponseLaunchTemplateData
forall x.
ResponseLaunchTemplateData -> Rep ResponseLaunchTemplateData x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ResponseLaunchTemplateData x -> ResponseLaunchTemplateData
$cfrom :: forall x.
ResponseLaunchTemplateData -> Rep ResponseLaunchTemplateData x
Prelude.Generic)

-- |
-- Create a value of 'ResponseLaunchTemplateData' 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:
--
-- 'blockDeviceMappings', 'responseLaunchTemplateData_blockDeviceMappings' - The block device mappings.
--
-- 'capacityReservationSpecification', 'responseLaunchTemplateData_capacityReservationSpecification' - Information about the Capacity Reservation targeting option.
--
-- 'cpuOptions', 'responseLaunchTemplateData_cpuOptions' - The CPU options for the instance. For more information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html Optimizing CPU options>
-- in the /Amazon Elastic Compute Cloud User Guide/.
--
-- 'creditSpecification', 'responseLaunchTemplateData_creditSpecification' - The credit option for CPU usage of the instance.
--
-- 'disableApiStop', 'responseLaunchTemplateData_disableApiStop' - Indicates whether the instance is enabled for stop protection. For more
-- information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection Stop Protection>.
--
-- 'disableApiTermination', 'responseLaunchTemplateData_disableApiTermination' - If set to @true@, indicates that the instance cannot be terminated using
-- the Amazon EC2 console, command line tool, or API.
--
-- 'ebsOptimized', 'responseLaunchTemplateData_ebsOptimized' - Indicates whether the instance is optimized for Amazon EBS I\/O.
--
-- 'elasticGpuSpecifications', 'responseLaunchTemplateData_elasticGpuSpecifications' - The elastic GPU specification.
--
-- 'elasticInferenceAccelerators', 'responseLaunchTemplateData_elasticInferenceAccelerators' - The elastic inference accelerator for the instance.
--
-- 'enclaveOptions', 'responseLaunchTemplateData_enclaveOptions' - Indicates whether the instance is enabled for Amazon Web Services Nitro
-- Enclaves.
--
-- 'hibernationOptions', 'responseLaunchTemplateData_hibernationOptions' - Indicates whether an instance is configured for hibernation. For more
-- information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html Hibernate your instance>
-- in the /Amazon Elastic Compute Cloud User Guide/.
--
-- 'iamInstanceProfile', 'responseLaunchTemplateData_iamInstanceProfile' - The IAM instance profile.
--
-- 'imageId', 'responseLaunchTemplateData_imageId' - The ID of the AMI that was used to launch the instance.
--
-- 'instanceInitiatedShutdownBehavior', 'responseLaunchTemplateData_instanceInitiatedShutdownBehavior' - Indicates whether an instance stops or terminates when you initiate
-- shutdown from the instance (using the operating system command for
-- system shutdown).
--
-- 'instanceMarketOptions', 'responseLaunchTemplateData_instanceMarketOptions' - The market (purchasing) option for the instances.
--
-- 'instanceRequirements', 'responseLaunchTemplateData_instanceRequirements' - The attributes for the instance types. When you specify instance
-- attributes, Amazon EC2 will identify instance types with these
-- attributes.
--
-- If you specify @InstanceRequirements@, you can\'t specify
-- @InstanceTypes@.
--
-- 'instanceType', 'responseLaunchTemplateData_instanceType' - The instance type.
--
-- 'kernelId', 'responseLaunchTemplateData_kernelId' - The ID of the kernel, if applicable.
--
-- 'keyName', 'responseLaunchTemplateData_keyName' - The name of the key pair.
--
-- 'licenseSpecifications', 'responseLaunchTemplateData_licenseSpecifications' - The license configurations.
--
-- 'maintenanceOptions', 'responseLaunchTemplateData_maintenanceOptions' - The maintenance options for your instance.
--
-- 'metadataOptions', 'responseLaunchTemplateData_metadataOptions' - The metadata options for the instance. For more information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html Instance metadata and user data>
-- in the /Amazon Elastic Compute Cloud User Guide/.
--
-- 'monitoring', 'responseLaunchTemplateData_monitoring' - The monitoring for the instance.
--
-- 'networkInterfaces', 'responseLaunchTemplateData_networkInterfaces' - The network interfaces.
--
-- 'placement', 'responseLaunchTemplateData_placement' - The placement of the instance.
--
-- 'privateDnsNameOptions', 'responseLaunchTemplateData_privateDnsNameOptions' - The options for the instance hostname.
--
-- 'ramDiskId', 'responseLaunchTemplateData_ramDiskId' - The ID of the RAM disk, if applicable.
--
-- 'securityGroupIds', 'responseLaunchTemplateData_securityGroupIds' - The security group IDs.
--
-- 'securityGroups', 'responseLaunchTemplateData_securityGroups' - The security group names.
--
-- 'tagSpecifications', 'responseLaunchTemplateData_tagSpecifications' - The tags that are applied to the resources that are created during
-- instance launch.
--
-- 'userData', 'responseLaunchTemplateData_userData' - The user data for the instance.
newResponseLaunchTemplateData ::
  ResponseLaunchTemplateData
newResponseLaunchTemplateData :: ResponseLaunchTemplateData
newResponseLaunchTemplateData =
  ResponseLaunchTemplateData'
    { $sel:blockDeviceMappings:ResponseLaunchTemplateData' :: Maybe [LaunchTemplateBlockDeviceMapping]
blockDeviceMappings =
        forall a. Maybe a
Prelude.Nothing,
      $sel:capacityReservationSpecification:ResponseLaunchTemplateData' :: Maybe LaunchTemplateCapacityReservationSpecificationResponse
capacityReservationSpecification =
        forall a. Maybe a
Prelude.Nothing,
      $sel:cpuOptions:ResponseLaunchTemplateData' :: Maybe LaunchTemplateCpuOptions
cpuOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:creditSpecification:ResponseLaunchTemplateData' :: Maybe CreditSpecification
creditSpecification = forall a. Maybe a
Prelude.Nothing,
      $sel:disableApiStop:ResponseLaunchTemplateData' :: Maybe Bool
disableApiStop = forall a. Maybe a
Prelude.Nothing,
      $sel:disableApiTermination:ResponseLaunchTemplateData' :: Maybe Bool
disableApiTermination = forall a. Maybe a
Prelude.Nothing,
      $sel:ebsOptimized:ResponseLaunchTemplateData' :: Maybe Bool
ebsOptimized = forall a. Maybe a
Prelude.Nothing,
      $sel:elasticGpuSpecifications:ResponseLaunchTemplateData' :: Maybe [ElasticGpuSpecificationResponse]
elasticGpuSpecifications = forall a. Maybe a
Prelude.Nothing,
      $sel:elasticInferenceAccelerators:ResponseLaunchTemplateData' :: Maybe [LaunchTemplateElasticInferenceAcceleratorResponse]
elasticInferenceAccelerators = forall a. Maybe a
Prelude.Nothing,
      $sel:enclaveOptions:ResponseLaunchTemplateData' :: Maybe LaunchTemplateEnclaveOptions
enclaveOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:hibernationOptions:ResponseLaunchTemplateData' :: Maybe LaunchTemplateHibernationOptions
hibernationOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:iamInstanceProfile:ResponseLaunchTemplateData' :: Maybe LaunchTemplateIamInstanceProfileSpecification
iamInstanceProfile = forall a. Maybe a
Prelude.Nothing,
      $sel:imageId:ResponseLaunchTemplateData' :: Maybe Text
imageId = forall a. Maybe a
Prelude.Nothing,
      $sel:instanceInitiatedShutdownBehavior:ResponseLaunchTemplateData' :: Maybe ShutdownBehavior
instanceInitiatedShutdownBehavior =
        forall a. Maybe a
Prelude.Nothing,
      $sel:instanceMarketOptions:ResponseLaunchTemplateData' :: Maybe LaunchTemplateInstanceMarketOptions
instanceMarketOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:instanceRequirements:ResponseLaunchTemplateData' :: Maybe InstanceRequirements
instanceRequirements = forall a. Maybe a
Prelude.Nothing,
      $sel:instanceType:ResponseLaunchTemplateData' :: Maybe InstanceType
instanceType = forall a. Maybe a
Prelude.Nothing,
      $sel:kernelId:ResponseLaunchTemplateData' :: Maybe Text
kernelId = forall a. Maybe a
Prelude.Nothing,
      $sel:keyName:ResponseLaunchTemplateData' :: Maybe Text
keyName = forall a. Maybe a
Prelude.Nothing,
      $sel:licenseSpecifications:ResponseLaunchTemplateData' :: Maybe [LaunchTemplateLicenseConfiguration]
licenseSpecifications = forall a. Maybe a
Prelude.Nothing,
      $sel:maintenanceOptions:ResponseLaunchTemplateData' :: Maybe LaunchTemplateInstanceMaintenanceOptions
maintenanceOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:metadataOptions:ResponseLaunchTemplateData' :: Maybe LaunchTemplateInstanceMetadataOptions
metadataOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:monitoring:ResponseLaunchTemplateData' :: Maybe LaunchTemplatesMonitoring
monitoring = forall a. Maybe a
Prelude.Nothing,
      $sel:networkInterfaces:ResponseLaunchTemplateData' :: Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification]
networkInterfaces = forall a. Maybe a
Prelude.Nothing,
      $sel:placement:ResponseLaunchTemplateData' :: Maybe LaunchTemplatePlacement
placement = forall a. Maybe a
Prelude.Nothing,
      $sel:privateDnsNameOptions:ResponseLaunchTemplateData' :: Maybe LaunchTemplatePrivateDnsNameOptions
privateDnsNameOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:ramDiskId:ResponseLaunchTemplateData' :: Maybe Text
ramDiskId = forall a. Maybe a
Prelude.Nothing,
      $sel:securityGroupIds:ResponseLaunchTemplateData' :: Maybe [Text]
securityGroupIds = forall a. Maybe a
Prelude.Nothing,
      $sel:securityGroups:ResponseLaunchTemplateData' :: Maybe [Text]
securityGroups = forall a. Maybe a
Prelude.Nothing,
      $sel:tagSpecifications:ResponseLaunchTemplateData' :: Maybe [LaunchTemplateTagSpecification]
tagSpecifications = forall a. Maybe a
Prelude.Nothing,
      $sel:userData:ResponseLaunchTemplateData' :: Maybe Text
userData = forall a. Maybe a
Prelude.Nothing
    }

-- | The block device mappings.
responseLaunchTemplateData_blockDeviceMappings :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe [LaunchTemplateBlockDeviceMapping])
responseLaunchTemplateData_blockDeviceMappings :: Lens'
  ResponseLaunchTemplateData
  (Maybe [LaunchTemplateBlockDeviceMapping])
responseLaunchTemplateData_blockDeviceMappings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe [LaunchTemplateBlockDeviceMapping]
blockDeviceMappings :: Maybe [LaunchTemplateBlockDeviceMapping]
$sel:blockDeviceMappings:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe [LaunchTemplateBlockDeviceMapping]
blockDeviceMappings} -> Maybe [LaunchTemplateBlockDeviceMapping]
blockDeviceMappings) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe [LaunchTemplateBlockDeviceMapping]
a -> ResponseLaunchTemplateData
s {$sel:blockDeviceMappings:ResponseLaunchTemplateData' :: Maybe [LaunchTemplateBlockDeviceMapping]
blockDeviceMappings = Maybe [LaunchTemplateBlockDeviceMapping]
a} :: ResponseLaunchTemplateData) 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 s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Information about the Capacity Reservation targeting option.
responseLaunchTemplateData_capacityReservationSpecification :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe LaunchTemplateCapacityReservationSpecificationResponse)
responseLaunchTemplateData_capacityReservationSpecification :: Lens'
  ResponseLaunchTemplateData
  (Maybe LaunchTemplateCapacityReservationSpecificationResponse)
responseLaunchTemplateData_capacityReservationSpecification = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe LaunchTemplateCapacityReservationSpecificationResponse
capacityReservationSpecification :: Maybe LaunchTemplateCapacityReservationSpecificationResponse
$sel:capacityReservationSpecification:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe LaunchTemplateCapacityReservationSpecificationResponse
capacityReservationSpecification} -> Maybe LaunchTemplateCapacityReservationSpecificationResponse
capacityReservationSpecification) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe LaunchTemplateCapacityReservationSpecificationResponse
a -> ResponseLaunchTemplateData
s {$sel:capacityReservationSpecification:ResponseLaunchTemplateData' :: Maybe LaunchTemplateCapacityReservationSpecificationResponse
capacityReservationSpecification = Maybe LaunchTemplateCapacityReservationSpecificationResponse
a} :: ResponseLaunchTemplateData)

-- | The CPU options for the instance. For more information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html Optimizing CPU options>
-- in the /Amazon Elastic Compute Cloud User Guide/.
responseLaunchTemplateData_cpuOptions :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe LaunchTemplateCpuOptions)
responseLaunchTemplateData_cpuOptions :: Lens' ResponseLaunchTemplateData (Maybe LaunchTemplateCpuOptions)
responseLaunchTemplateData_cpuOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe LaunchTemplateCpuOptions
cpuOptions :: Maybe LaunchTemplateCpuOptions
$sel:cpuOptions:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe LaunchTemplateCpuOptions
cpuOptions} -> Maybe LaunchTemplateCpuOptions
cpuOptions) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe LaunchTemplateCpuOptions
a -> ResponseLaunchTemplateData
s {$sel:cpuOptions:ResponseLaunchTemplateData' :: Maybe LaunchTemplateCpuOptions
cpuOptions = Maybe LaunchTemplateCpuOptions
a} :: ResponseLaunchTemplateData)

-- | The credit option for CPU usage of the instance.
responseLaunchTemplateData_creditSpecification :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe CreditSpecification)
responseLaunchTemplateData_creditSpecification :: Lens' ResponseLaunchTemplateData (Maybe CreditSpecification)
responseLaunchTemplateData_creditSpecification = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe CreditSpecification
creditSpecification :: Maybe CreditSpecification
$sel:creditSpecification:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe CreditSpecification
creditSpecification} -> Maybe CreditSpecification
creditSpecification) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe CreditSpecification
a -> ResponseLaunchTemplateData
s {$sel:creditSpecification:ResponseLaunchTemplateData' :: Maybe CreditSpecification
creditSpecification = Maybe CreditSpecification
a} :: ResponseLaunchTemplateData)

-- | Indicates whether the instance is enabled for stop protection. For more
-- information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection Stop Protection>.
responseLaunchTemplateData_disableApiStop :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe Prelude.Bool)
responseLaunchTemplateData_disableApiStop :: Lens' ResponseLaunchTemplateData (Maybe Bool)
responseLaunchTemplateData_disableApiStop = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe Bool
disableApiStop :: Maybe Bool
$sel:disableApiStop:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Bool
disableApiStop} -> Maybe Bool
disableApiStop) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe Bool
a -> ResponseLaunchTemplateData
s {$sel:disableApiStop:ResponseLaunchTemplateData' :: Maybe Bool
disableApiStop = Maybe Bool
a} :: ResponseLaunchTemplateData)

-- | If set to @true@, indicates that the instance cannot be terminated using
-- the Amazon EC2 console, command line tool, or API.
responseLaunchTemplateData_disableApiTermination :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe Prelude.Bool)
responseLaunchTemplateData_disableApiTermination :: Lens' ResponseLaunchTemplateData (Maybe Bool)
responseLaunchTemplateData_disableApiTermination = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe Bool
disableApiTermination :: Maybe Bool
$sel:disableApiTermination:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Bool
disableApiTermination} -> Maybe Bool
disableApiTermination) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe Bool
a -> ResponseLaunchTemplateData
s {$sel:disableApiTermination:ResponseLaunchTemplateData' :: Maybe Bool
disableApiTermination = Maybe Bool
a} :: ResponseLaunchTemplateData)

-- | Indicates whether the instance is optimized for Amazon EBS I\/O.
responseLaunchTemplateData_ebsOptimized :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe Prelude.Bool)
responseLaunchTemplateData_ebsOptimized :: Lens' ResponseLaunchTemplateData (Maybe Bool)
responseLaunchTemplateData_ebsOptimized = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe Bool
ebsOptimized :: Maybe Bool
$sel:ebsOptimized:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Bool
ebsOptimized} -> Maybe Bool
ebsOptimized) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe Bool
a -> ResponseLaunchTemplateData
s {$sel:ebsOptimized:ResponseLaunchTemplateData' :: Maybe Bool
ebsOptimized = Maybe Bool
a} :: ResponseLaunchTemplateData)

-- | The elastic GPU specification.
responseLaunchTemplateData_elasticGpuSpecifications :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe [ElasticGpuSpecificationResponse])
responseLaunchTemplateData_elasticGpuSpecifications :: Lens'
  ResponseLaunchTemplateData
  (Maybe [ElasticGpuSpecificationResponse])
responseLaunchTemplateData_elasticGpuSpecifications = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe [ElasticGpuSpecificationResponse]
elasticGpuSpecifications :: Maybe [ElasticGpuSpecificationResponse]
$sel:elasticGpuSpecifications:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe [ElasticGpuSpecificationResponse]
elasticGpuSpecifications} -> Maybe [ElasticGpuSpecificationResponse]
elasticGpuSpecifications) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe [ElasticGpuSpecificationResponse]
a -> ResponseLaunchTemplateData
s {$sel:elasticGpuSpecifications:ResponseLaunchTemplateData' :: Maybe [ElasticGpuSpecificationResponse]
elasticGpuSpecifications = Maybe [ElasticGpuSpecificationResponse]
a} :: ResponseLaunchTemplateData) 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 s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The elastic inference accelerator for the instance.
responseLaunchTemplateData_elasticInferenceAccelerators :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe [LaunchTemplateElasticInferenceAcceleratorResponse])
responseLaunchTemplateData_elasticInferenceAccelerators :: Lens'
  ResponseLaunchTemplateData
  (Maybe [LaunchTemplateElasticInferenceAcceleratorResponse])
responseLaunchTemplateData_elasticInferenceAccelerators = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe [LaunchTemplateElasticInferenceAcceleratorResponse]
elasticInferenceAccelerators :: Maybe [LaunchTemplateElasticInferenceAcceleratorResponse]
$sel:elasticInferenceAccelerators:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe [LaunchTemplateElasticInferenceAcceleratorResponse]
elasticInferenceAccelerators} -> Maybe [LaunchTemplateElasticInferenceAcceleratorResponse]
elasticInferenceAccelerators) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe [LaunchTemplateElasticInferenceAcceleratorResponse]
a -> ResponseLaunchTemplateData
s {$sel:elasticInferenceAccelerators:ResponseLaunchTemplateData' :: Maybe [LaunchTemplateElasticInferenceAcceleratorResponse]
elasticInferenceAccelerators = Maybe [LaunchTemplateElasticInferenceAcceleratorResponse]
a} :: ResponseLaunchTemplateData) 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 s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Indicates whether the instance is enabled for Amazon Web Services Nitro
-- Enclaves.
responseLaunchTemplateData_enclaveOptions :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe LaunchTemplateEnclaveOptions)
responseLaunchTemplateData_enclaveOptions :: Lens'
  ResponseLaunchTemplateData (Maybe LaunchTemplateEnclaveOptions)
responseLaunchTemplateData_enclaveOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe LaunchTemplateEnclaveOptions
enclaveOptions :: Maybe LaunchTemplateEnclaveOptions
$sel:enclaveOptions:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe LaunchTemplateEnclaveOptions
enclaveOptions} -> Maybe LaunchTemplateEnclaveOptions
enclaveOptions) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe LaunchTemplateEnclaveOptions
a -> ResponseLaunchTemplateData
s {$sel:enclaveOptions:ResponseLaunchTemplateData' :: Maybe LaunchTemplateEnclaveOptions
enclaveOptions = Maybe LaunchTemplateEnclaveOptions
a} :: ResponseLaunchTemplateData)

-- | Indicates whether an instance is configured for hibernation. For more
-- information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html Hibernate your instance>
-- in the /Amazon Elastic Compute Cloud User Guide/.
responseLaunchTemplateData_hibernationOptions :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe LaunchTemplateHibernationOptions)
responseLaunchTemplateData_hibernationOptions :: Lens'
  ResponseLaunchTemplateData (Maybe LaunchTemplateHibernationOptions)
responseLaunchTemplateData_hibernationOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe LaunchTemplateHibernationOptions
hibernationOptions :: Maybe LaunchTemplateHibernationOptions
$sel:hibernationOptions:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe LaunchTemplateHibernationOptions
hibernationOptions} -> Maybe LaunchTemplateHibernationOptions
hibernationOptions) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe LaunchTemplateHibernationOptions
a -> ResponseLaunchTemplateData
s {$sel:hibernationOptions:ResponseLaunchTemplateData' :: Maybe LaunchTemplateHibernationOptions
hibernationOptions = Maybe LaunchTemplateHibernationOptions
a} :: ResponseLaunchTemplateData)

-- | The IAM instance profile.
responseLaunchTemplateData_iamInstanceProfile :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe LaunchTemplateIamInstanceProfileSpecification)
responseLaunchTemplateData_iamInstanceProfile :: Lens'
  ResponseLaunchTemplateData
  (Maybe LaunchTemplateIamInstanceProfileSpecification)
responseLaunchTemplateData_iamInstanceProfile = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe LaunchTemplateIamInstanceProfileSpecification
iamInstanceProfile :: Maybe LaunchTemplateIamInstanceProfileSpecification
$sel:iamInstanceProfile:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe LaunchTemplateIamInstanceProfileSpecification
iamInstanceProfile} -> Maybe LaunchTemplateIamInstanceProfileSpecification
iamInstanceProfile) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe LaunchTemplateIamInstanceProfileSpecification
a -> ResponseLaunchTemplateData
s {$sel:iamInstanceProfile:ResponseLaunchTemplateData' :: Maybe LaunchTemplateIamInstanceProfileSpecification
iamInstanceProfile = Maybe LaunchTemplateIamInstanceProfileSpecification
a} :: ResponseLaunchTemplateData)

-- | The ID of the AMI that was used to launch the instance.
responseLaunchTemplateData_imageId :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe Prelude.Text)
responseLaunchTemplateData_imageId :: Lens' ResponseLaunchTemplateData (Maybe Text)
responseLaunchTemplateData_imageId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe Text
imageId :: Maybe Text
$sel:imageId:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Text
imageId} -> Maybe Text
imageId) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe Text
a -> ResponseLaunchTemplateData
s {$sel:imageId:ResponseLaunchTemplateData' :: Maybe Text
imageId = Maybe Text
a} :: ResponseLaunchTemplateData)

-- | Indicates whether an instance stops or terminates when you initiate
-- shutdown from the instance (using the operating system command for
-- system shutdown).
responseLaunchTemplateData_instanceInitiatedShutdownBehavior :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe ShutdownBehavior)
responseLaunchTemplateData_instanceInitiatedShutdownBehavior :: Lens' ResponseLaunchTemplateData (Maybe ShutdownBehavior)
responseLaunchTemplateData_instanceInitiatedShutdownBehavior = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe ShutdownBehavior
instanceInitiatedShutdownBehavior :: Maybe ShutdownBehavior
$sel:instanceInitiatedShutdownBehavior:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe ShutdownBehavior
instanceInitiatedShutdownBehavior} -> Maybe ShutdownBehavior
instanceInitiatedShutdownBehavior) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe ShutdownBehavior
a -> ResponseLaunchTemplateData
s {$sel:instanceInitiatedShutdownBehavior:ResponseLaunchTemplateData' :: Maybe ShutdownBehavior
instanceInitiatedShutdownBehavior = Maybe ShutdownBehavior
a} :: ResponseLaunchTemplateData)

-- | The market (purchasing) option for the instances.
responseLaunchTemplateData_instanceMarketOptions :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe LaunchTemplateInstanceMarketOptions)
responseLaunchTemplateData_instanceMarketOptions :: Lens'
  ResponseLaunchTemplateData
  (Maybe LaunchTemplateInstanceMarketOptions)
responseLaunchTemplateData_instanceMarketOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe LaunchTemplateInstanceMarketOptions
instanceMarketOptions :: Maybe LaunchTemplateInstanceMarketOptions
$sel:instanceMarketOptions:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe LaunchTemplateInstanceMarketOptions
instanceMarketOptions} -> Maybe LaunchTemplateInstanceMarketOptions
instanceMarketOptions) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe LaunchTemplateInstanceMarketOptions
a -> ResponseLaunchTemplateData
s {$sel:instanceMarketOptions:ResponseLaunchTemplateData' :: Maybe LaunchTemplateInstanceMarketOptions
instanceMarketOptions = Maybe LaunchTemplateInstanceMarketOptions
a} :: ResponseLaunchTemplateData)

-- | The attributes for the instance types. When you specify instance
-- attributes, Amazon EC2 will identify instance types with these
-- attributes.
--
-- If you specify @InstanceRequirements@, you can\'t specify
-- @InstanceTypes@.
responseLaunchTemplateData_instanceRequirements :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe InstanceRequirements)
responseLaunchTemplateData_instanceRequirements :: Lens' ResponseLaunchTemplateData (Maybe InstanceRequirements)
responseLaunchTemplateData_instanceRequirements = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe InstanceRequirements
instanceRequirements :: Maybe InstanceRequirements
$sel:instanceRequirements:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe InstanceRequirements
instanceRequirements} -> Maybe InstanceRequirements
instanceRequirements) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe InstanceRequirements
a -> ResponseLaunchTemplateData
s {$sel:instanceRequirements:ResponseLaunchTemplateData' :: Maybe InstanceRequirements
instanceRequirements = Maybe InstanceRequirements
a} :: ResponseLaunchTemplateData)

-- | The instance type.
responseLaunchTemplateData_instanceType :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe InstanceType)
responseLaunchTemplateData_instanceType :: Lens' ResponseLaunchTemplateData (Maybe InstanceType)
responseLaunchTemplateData_instanceType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe InstanceType
instanceType :: Maybe InstanceType
$sel:instanceType:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe InstanceType
instanceType} -> Maybe InstanceType
instanceType) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe InstanceType
a -> ResponseLaunchTemplateData
s {$sel:instanceType:ResponseLaunchTemplateData' :: Maybe InstanceType
instanceType = Maybe InstanceType
a} :: ResponseLaunchTemplateData)

-- | The ID of the kernel, if applicable.
responseLaunchTemplateData_kernelId :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe Prelude.Text)
responseLaunchTemplateData_kernelId :: Lens' ResponseLaunchTemplateData (Maybe Text)
responseLaunchTemplateData_kernelId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe Text
kernelId :: Maybe Text
$sel:kernelId:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Text
kernelId} -> Maybe Text
kernelId) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe Text
a -> ResponseLaunchTemplateData
s {$sel:kernelId:ResponseLaunchTemplateData' :: Maybe Text
kernelId = Maybe Text
a} :: ResponseLaunchTemplateData)

-- | The name of the key pair.
responseLaunchTemplateData_keyName :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe Prelude.Text)
responseLaunchTemplateData_keyName :: Lens' ResponseLaunchTemplateData (Maybe Text)
responseLaunchTemplateData_keyName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe Text
keyName :: Maybe Text
$sel:keyName:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Text
keyName} -> Maybe Text
keyName) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe Text
a -> ResponseLaunchTemplateData
s {$sel:keyName:ResponseLaunchTemplateData' :: Maybe Text
keyName = Maybe Text
a} :: ResponseLaunchTemplateData)

-- | The license configurations.
responseLaunchTemplateData_licenseSpecifications :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe [LaunchTemplateLicenseConfiguration])
responseLaunchTemplateData_licenseSpecifications :: Lens'
  ResponseLaunchTemplateData
  (Maybe [LaunchTemplateLicenseConfiguration])
responseLaunchTemplateData_licenseSpecifications = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe [LaunchTemplateLicenseConfiguration]
licenseSpecifications :: Maybe [LaunchTemplateLicenseConfiguration]
$sel:licenseSpecifications:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe [LaunchTemplateLicenseConfiguration]
licenseSpecifications} -> Maybe [LaunchTemplateLicenseConfiguration]
licenseSpecifications) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe [LaunchTemplateLicenseConfiguration]
a -> ResponseLaunchTemplateData
s {$sel:licenseSpecifications:ResponseLaunchTemplateData' :: Maybe [LaunchTemplateLicenseConfiguration]
licenseSpecifications = Maybe [LaunchTemplateLicenseConfiguration]
a} :: ResponseLaunchTemplateData) 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 s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The maintenance options for your instance.
responseLaunchTemplateData_maintenanceOptions :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe LaunchTemplateInstanceMaintenanceOptions)
responseLaunchTemplateData_maintenanceOptions :: Lens'
  ResponseLaunchTemplateData
  (Maybe LaunchTemplateInstanceMaintenanceOptions)
responseLaunchTemplateData_maintenanceOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe LaunchTemplateInstanceMaintenanceOptions
maintenanceOptions :: Maybe LaunchTemplateInstanceMaintenanceOptions
$sel:maintenanceOptions:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe LaunchTemplateInstanceMaintenanceOptions
maintenanceOptions} -> Maybe LaunchTemplateInstanceMaintenanceOptions
maintenanceOptions) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe LaunchTemplateInstanceMaintenanceOptions
a -> ResponseLaunchTemplateData
s {$sel:maintenanceOptions:ResponseLaunchTemplateData' :: Maybe LaunchTemplateInstanceMaintenanceOptions
maintenanceOptions = Maybe LaunchTemplateInstanceMaintenanceOptions
a} :: ResponseLaunchTemplateData)

-- | The metadata options for the instance. For more information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html Instance metadata and user data>
-- in the /Amazon Elastic Compute Cloud User Guide/.
responseLaunchTemplateData_metadataOptions :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe LaunchTemplateInstanceMetadataOptions)
responseLaunchTemplateData_metadataOptions :: Lens'
  ResponseLaunchTemplateData
  (Maybe LaunchTemplateInstanceMetadataOptions)
responseLaunchTemplateData_metadataOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe LaunchTemplateInstanceMetadataOptions
metadataOptions :: Maybe LaunchTemplateInstanceMetadataOptions
$sel:metadataOptions:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe LaunchTemplateInstanceMetadataOptions
metadataOptions} -> Maybe LaunchTemplateInstanceMetadataOptions
metadataOptions) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe LaunchTemplateInstanceMetadataOptions
a -> ResponseLaunchTemplateData
s {$sel:metadataOptions:ResponseLaunchTemplateData' :: Maybe LaunchTemplateInstanceMetadataOptions
metadataOptions = Maybe LaunchTemplateInstanceMetadataOptions
a} :: ResponseLaunchTemplateData)

-- | The monitoring for the instance.
responseLaunchTemplateData_monitoring :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe LaunchTemplatesMonitoring)
responseLaunchTemplateData_monitoring :: Lens' ResponseLaunchTemplateData (Maybe LaunchTemplatesMonitoring)
responseLaunchTemplateData_monitoring = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe LaunchTemplatesMonitoring
monitoring :: Maybe LaunchTemplatesMonitoring
$sel:monitoring:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe LaunchTemplatesMonitoring
monitoring} -> Maybe LaunchTemplatesMonitoring
monitoring) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe LaunchTemplatesMonitoring
a -> ResponseLaunchTemplateData
s {$sel:monitoring:ResponseLaunchTemplateData' :: Maybe LaunchTemplatesMonitoring
monitoring = Maybe LaunchTemplatesMonitoring
a} :: ResponseLaunchTemplateData)

-- | The network interfaces.
responseLaunchTemplateData_networkInterfaces :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification])
responseLaunchTemplateData_networkInterfaces :: Lens'
  ResponseLaunchTemplateData
  (Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification])
responseLaunchTemplateData_networkInterfaces = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification]
networkInterfaces :: Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification]
$sel:networkInterfaces:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification]
networkInterfaces} -> Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification]
networkInterfaces) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification]
a -> ResponseLaunchTemplateData
s {$sel:networkInterfaces:ResponseLaunchTemplateData' :: Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification]
networkInterfaces = Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification]
a} :: ResponseLaunchTemplateData) 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 s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The placement of the instance.
responseLaunchTemplateData_placement :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe LaunchTemplatePlacement)
responseLaunchTemplateData_placement :: Lens' ResponseLaunchTemplateData (Maybe LaunchTemplatePlacement)
responseLaunchTemplateData_placement = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe LaunchTemplatePlacement
placement :: Maybe LaunchTemplatePlacement
$sel:placement:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe LaunchTemplatePlacement
placement} -> Maybe LaunchTemplatePlacement
placement) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe LaunchTemplatePlacement
a -> ResponseLaunchTemplateData
s {$sel:placement:ResponseLaunchTemplateData' :: Maybe LaunchTemplatePlacement
placement = Maybe LaunchTemplatePlacement
a} :: ResponseLaunchTemplateData)

-- | The options for the instance hostname.
responseLaunchTemplateData_privateDnsNameOptions :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe LaunchTemplatePrivateDnsNameOptions)
responseLaunchTemplateData_privateDnsNameOptions :: Lens'
  ResponseLaunchTemplateData
  (Maybe LaunchTemplatePrivateDnsNameOptions)
responseLaunchTemplateData_privateDnsNameOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe LaunchTemplatePrivateDnsNameOptions
privateDnsNameOptions :: Maybe LaunchTemplatePrivateDnsNameOptions
$sel:privateDnsNameOptions:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe LaunchTemplatePrivateDnsNameOptions
privateDnsNameOptions} -> Maybe LaunchTemplatePrivateDnsNameOptions
privateDnsNameOptions) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe LaunchTemplatePrivateDnsNameOptions
a -> ResponseLaunchTemplateData
s {$sel:privateDnsNameOptions:ResponseLaunchTemplateData' :: Maybe LaunchTemplatePrivateDnsNameOptions
privateDnsNameOptions = Maybe LaunchTemplatePrivateDnsNameOptions
a} :: ResponseLaunchTemplateData)

-- | The ID of the RAM disk, if applicable.
responseLaunchTemplateData_ramDiskId :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe Prelude.Text)
responseLaunchTemplateData_ramDiskId :: Lens' ResponseLaunchTemplateData (Maybe Text)
responseLaunchTemplateData_ramDiskId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe Text
ramDiskId :: Maybe Text
$sel:ramDiskId:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Text
ramDiskId} -> Maybe Text
ramDiskId) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe Text
a -> ResponseLaunchTemplateData
s {$sel:ramDiskId:ResponseLaunchTemplateData' :: Maybe Text
ramDiskId = Maybe Text
a} :: ResponseLaunchTemplateData)

-- | The security group IDs.
responseLaunchTemplateData_securityGroupIds :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe [Prelude.Text])
responseLaunchTemplateData_securityGroupIds :: Lens' ResponseLaunchTemplateData (Maybe [Text])
responseLaunchTemplateData_securityGroupIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe [Text]
securityGroupIds :: Maybe [Text]
$sel:securityGroupIds:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe [Text]
securityGroupIds} -> Maybe [Text]
securityGroupIds) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe [Text]
a -> ResponseLaunchTemplateData
s {$sel:securityGroupIds:ResponseLaunchTemplateData' :: Maybe [Text]
securityGroupIds = Maybe [Text]
a} :: ResponseLaunchTemplateData) 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 s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The security group names.
responseLaunchTemplateData_securityGroups :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe [Prelude.Text])
responseLaunchTemplateData_securityGroups :: Lens' ResponseLaunchTemplateData (Maybe [Text])
responseLaunchTemplateData_securityGroups = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe [Text]
securityGroups :: Maybe [Text]
$sel:securityGroups:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe [Text]
securityGroups} -> Maybe [Text]
securityGroups) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe [Text]
a -> ResponseLaunchTemplateData
s {$sel:securityGroups:ResponseLaunchTemplateData' :: Maybe [Text]
securityGroups = Maybe [Text]
a} :: ResponseLaunchTemplateData) 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 s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The tags that are applied to the resources that are created during
-- instance launch.
responseLaunchTemplateData_tagSpecifications :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe [LaunchTemplateTagSpecification])
responseLaunchTemplateData_tagSpecifications :: Lens'
  ResponseLaunchTemplateData (Maybe [LaunchTemplateTagSpecification])
responseLaunchTemplateData_tagSpecifications = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe [LaunchTemplateTagSpecification]
tagSpecifications :: Maybe [LaunchTemplateTagSpecification]
$sel:tagSpecifications:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe [LaunchTemplateTagSpecification]
tagSpecifications} -> Maybe [LaunchTemplateTagSpecification]
tagSpecifications) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe [LaunchTemplateTagSpecification]
a -> ResponseLaunchTemplateData
s {$sel:tagSpecifications:ResponseLaunchTemplateData' :: Maybe [LaunchTemplateTagSpecification]
tagSpecifications = Maybe [LaunchTemplateTagSpecification]
a} :: ResponseLaunchTemplateData) 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 s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The user data for the instance.
responseLaunchTemplateData_userData :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe Prelude.Text)
responseLaunchTemplateData_userData :: Lens' ResponseLaunchTemplateData (Maybe Text)
responseLaunchTemplateData_userData = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseLaunchTemplateData' {Maybe Text
userData :: Maybe Text
$sel:userData:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Text
userData} -> Maybe Text
userData) (\s :: ResponseLaunchTemplateData
s@ResponseLaunchTemplateData' {} Maybe Text
a -> ResponseLaunchTemplateData
s {$sel:userData:ResponseLaunchTemplateData' :: Maybe Text
userData = Maybe Text
a} :: ResponseLaunchTemplateData)

instance Data.FromXML ResponseLaunchTemplateData where
  parseXML :: [Node] -> Either String ResponseLaunchTemplateData
parseXML [Node]
x =
    Maybe [LaunchTemplateBlockDeviceMapping]
-> Maybe LaunchTemplateCapacityReservationSpecificationResponse
-> Maybe LaunchTemplateCpuOptions
-> Maybe CreditSpecification
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe [ElasticGpuSpecificationResponse]
-> Maybe [LaunchTemplateElasticInferenceAcceleratorResponse]
-> Maybe LaunchTemplateEnclaveOptions
-> Maybe LaunchTemplateHibernationOptions
-> Maybe LaunchTemplateIamInstanceProfileSpecification
-> Maybe Text
-> Maybe ShutdownBehavior
-> Maybe LaunchTemplateInstanceMarketOptions
-> Maybe InstanceRequirements
-> Maybe InstanceType
-> Maybe Text
-> Maybe Text
-> Maybe [LaunchTemplateLicenseConfiguration]
-> Maybe LaunchTemplateInstanceMaintenanceOptions
-> Maybe LaunchTemplateInstanceMetadataOptions
-> Maybe LaunchTemplatesMonitoring
-> Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification]
-> Maybe LaunchTemplatePlacement
-> Maybe LaunchTemplatePrivateDnsNameOptions
-> Maybe Text
-> Maybe [Text]
-> Maybe [Text]
-> Maybe [LaunchTemplateTagSpecification]
-> Maybe Text
-> ResponseLaunchTemplateData
ResponseLaunchTemplateData'
      forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"blockDeviceMappingSet"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"capacityReservationSpecification")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"cpuOptions")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"creditSpecification")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"disableApiStop")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"disableApiTermination")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ebsOptimized")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"elasticGpuSpecificationSet"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"elasticInferenceAcceleratorSet"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"enclaveOptions")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"hibernationOptions")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"iamInstanceProfile")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"imageId")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"instanceInitiatedShutdownBehavior")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"instanceMarketOptions")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"instanceRequirements")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"instanceType")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"kernelId")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"keyName")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"licenseSet"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"maintenanceOptions")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"metadataOptions")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"monitoring")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"networkInterfaceSet"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"placement")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"privateDnsNameOptions")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ramDiskId")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"securityGroupIdSet"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"securityGroupSet"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"tagSpecificationSet"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"userData")

instance Prelude.Hashable ResponseLaunchTemplateData where
  hashWithSalt :: Int -> ResponseLaunchTemplateData -> Int
hashWithSalt Int
_salt ResponseLaunchTemplateData' {Maybe Bool
Maybe [Text]
Maybe [ElasticGpuSpecificationResponse]
Maybe [LaunchTemplateElasticInferenceAcceleratorResponse]
Maybe [LaunchTemplateLicenseConfiguration]
Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification]
Maybe [LaunchTemplateTagSpecification]
Maybe [LaunchTemplateBlockDeviceMapping]
Maybe Text
Maybe CreditSpecification
Maybe InstanceType
Maybe LaunchTemplateCapacityReservationSpecificationResponse
Maybe LaunchTemplateCpuOptions
Maybe LaunchTemplateEnclaveOptions
Maybe LaunchTemplateHibernationOptions
Maybe LaunchTemplateIamInstanceProfileSpecification
Maybe LaunchTemplateInstanceMaintenanceOptions
Maybe LaunchTemplateInstanceMetadataOptions
Maybe LaunchTemplatePrivateDnsNameOptions
Maybe LaunchTemplatesMonitoring
Maybe ShutdownBehavior
Maybe LaunchTemplateInstanceMarketOptions
Maybe LaunchTemplatePlacement
Maybe InstanceRequirements
userData :: Maybe Text
tagSpecifications :: Maybe [LaunchTemplateTagSpecification]
securityGroups :: Maybe [Text]
securityGroupIds :: Maybe [Text]
ramDiskId :: Maybe Text
privateDnsNameOptions :: Maybe LaunchTemplatePrivateDnsNameOptions
placement :: Maybe LaunchTemplatePlacement
networkInterfaces :: Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification]
monitoring :: Maybe LaunchTemplatesMonitoring
metadataOptions :: Maybe LaunchTemplateInstanceMetadataOptions
maintenanceOptions :: Maybe LaunchTemplateInstanceMaintenanceOptions
licenseSpecifications :: Maybe [LaunchTemplateLicenseConfiguration]
keyName :: Maybe Text
kernelId :: Maybe Text
instanceType :: Maybe InstanceType
instanceRequirements :: Maybe InstanceRequirements
instanceMarketOptions :: Maybe LaunchTemplateInstanceMarketOptions
instanceInitiatedShutdownBehavior :: Maybe ShutdownBehavior
imageId :: Maybe Text
iamInstanceProfile :: Maybe LaunchTemplateIamInstanceProfileSpecification
hibernationOptions :: Maybe LaunchTemplateHibernationOptions
enclaveOptions :: Maybe LaunchTemplateEnclaveOptions
elasticInferenceAccelerators :: Maybe [LaunchTemplateElasticInferenceAcceleratorResponse]
elasticGpuSpecifications :: Maybe [ElasticGpuSpecificationResponse]
ebsOptimized :: Maybe Bool
disableApiTermination :: Maybe Bool
disableApiStop :: Maybe Bool
creditSpecification :: Maybe CreditSpecification
cpuOptions :: Maybe LaunchTemplateCpuOptions
capacityReservationSpecification :: Maybe LaunchTemplateCapacityReservationSpecificationResponse
blockDeviceMappings :: Maybe [LaunchTemplateBlockDeviceMapping]
$sel:userData:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Text
$sel:tagSpecifications:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe [LaunchTemplateTagSpecification]
$sel:securityGroups:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe [Text]
$sel:securityGroupIds:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe [Text]
$sel:ramDiskId:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Text
$sel:privateDnsNameOptions:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe LaunchTemplatePrivateDnsNameOptions
$sel:placement:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe LaunchTemplatePlacement
$sel:networkInterfaces:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification]
$sel:monitoring:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe LaunchTemplatesMonitoring
$sel:metadataOptions:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe LaunchTemplateInstanceMetadataOptions
$sel:maintenanceOptions:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe LaunchTemplateInstanceMaintenanceOptions
$sel:licenseSpecifications:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe [LaunchTemplateLicenseConfiguration]
$sel:keyName:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Text
$sel:kernelId:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Text
$sel:instanceType:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe InstanceType
$sel:instanceRequirements:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe InstanceRequirements
$sel:instanceMarketOptions:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe LaunchTemplateInstanceMarketOptions
$sel:instanceInitiatedShutdownBehavior:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe ShutdownBehavior
$sel:imageId:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Text
$sel:iamInstanceProfile:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe LaunchTemplateIamInstanceProfileSpecification
$sel:hibernationOptions:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe LaunchTemplateHibernationOptions
$sel:enclaveOptions:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe LaunchTemplateEnclaveOptions
$sel:elasticInferenceAccelerators:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe [LaunchTemplateElasticInferenceAcceleratorResponse]
$sel:elasticGpuSpecifications:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe [ElasticGpuSpecificationResponse]
$sel:ebsOptimized:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Bool
$sel:disableApiTermination:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Bool
$sel:disableApiStop:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Bool
$sel:creditSpecification:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe CreditSpecification
$sel:cpuOptions:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe LaunchTemplateCpuOptions
$sel:capacityReservationSpecification:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe LaunchTemplateCapacityReservationSpecificationResponse
$sel:blockDeviceMappings:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe [LaunchTemplateBlockDeviceMapping]
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [LaunchTemplateBlockDeviceMapping]
blockDeviceMappings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LaunchTemplateCapacityReservationSpecificationResponse
capacityReservationSpecification
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LaunchTemplateCpuOptions
cpuOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CreditSpecification
creditSpecification
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
disableApiStop
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
disableApiTermination
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
ebsOptimized
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [ElasticGpuSpecificationResponse]
elasticGpuSpecifications
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [LaunchTemplateElasticInferenceAcceleratorResponse]
elasticInferenceAccelerators
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LaunchTemplateEnclaveOptions
enclaveOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LaunchTemplateHibernationOptions
hibernationOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LaunchTemplateIamInstanceProfileSpecification
iamInstanceProfile
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
imageId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ShutdownBehavior
instanceInitiatedShutdownBehavior
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LaunchTemplateInstanceMarketOptions
instanceMarketOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InstanceRequirements
instanceRequirements
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InstanceType
instanceType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
kernelId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
keyName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [LaunchTemplateLicenseConfiguration]
licenseSpecifications
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LaunchTemplateInstanceMaintenanceOptions
maintenanceOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LaunchTemplateInstanceMetadataOptions
metadataOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LaunchTemplatesMonitoring
monitoring
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification]
networkInterfaces
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LaunchTemplatePlacement
placement
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LaunchTemplatePrivateDnsNameOptions
privateDnsNameOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ramDiskId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
securityGroupIds
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
securityGroups
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [LaunchTemplateTagSpecification]
tagSpecifications
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
userData

instance Prelude.NFData ResponseLaunchTemplateData where
  rnf :: ResponseLaunchTemplateData -> ()
rnf ResponseLaunchTemplateData' {Maybe Bool
Maybe [Text]
Maybe [ElasticGpuSpecificationResponse]
Maybe [LaunchTemplateElasticInferenceAcceleratorResponse]
Maybe [LaunchTemplateLicenseConfiguration]
Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification]
Maybe [LaunchTemplateTagSpecification]
Maybe [LaunchTemplateBlockDeviceMapping]
Maybe Text
Maybe CreditSpecification
Maybe InstanceType
Maybe LaunchTemplateCapacityReservationSpecificationResponse
Maybe LaunchTemplateCpuOptions
Maybe LaunchTemplateEnclaveOptions
Maybe LaunchTemplateHibernationOptions
Maybe LaunchTemplateIamInstanceProfileSpecification
Maybe LaunchTemplateInstanceMaintenanceOptions
Maybe LaunchTemplateInstanceMetadataOptions
Maybe LaunchTemplatePrivateDnsNameOptions
Maybe LaunchTemplatesMonitoring
Maybe ShutdownBehavior
Maybe LaunchTemplateInstanceMarketOptions
Maybe LaunchTemplatePlacement
Maybe InstanceRequirements
userData :: Maybe Text
tagSpecifications :: Maybe [LaunchTemplateTagSpecification]
securityGroups :: Maybe [Text]
securityGroupIds :: Maybe [Text]
ramDiskId :: Maybe Text
privateDnsNameOptions :: Maybe LaunchTemplatePrivateDnsNameOptions
placement :: Maybe LaunchTemplatePlacement
networkInterfaces :: Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification]
monitoring :: Maybe LaunchTemplatesMonitoring
metadataOptions :: Maybe LaunchTemplateInstanceMetadataOptions
maintenanceOptions :: Maybe LaunchTemplateInstanceMaintenanceOptions
licenseSpecifications :: Maybe [LaunchTemplateLicenseConfiguration]
keyName :: Maybe Text
kernelId :: Maybe Text
instanceType :: Maybe InstanceType
instanceRequirements :: Maybe InstanceRequirements
instanceMarketOptions :: Maybe LaunchTemplateInstanceMarketOptions
instanceInitiatedShutdownBehavior :: Maybe ShutdownBehavior
imageId :: Maybe Text
iamInstanceProfile :: Maybe LaunchTemplateIamInstanceProfileSpecification
hibernationOptions :: Maybe LaunchTemplateHibernationOptions
enclaveOptions :: Maybe LaunchTemplateEnclaveOptions
elasticInferenceAccelerators :: Maybe [LaunchTemplateElasticInferenceAcceleratorResponse]
elasticGpuSpecifications :: Maybe [ElasticGpuSpecificationResponse]
ebsOptimized :: Maybe Bool
disableApiTermination :: Maybe Bool
disableApiStop :: Maybe Bool
creditSpecification :: Maybe CreditSpecification
cpuOptions :: Maybe LaunchTemplateCpuOptions
capacityReservationSpecification :: Maybe LaunchTemplateCapacityReservationSpecificationResponse
blockDeviceMappings :: Maybe [LaunchTemplateBlockDeviceMapping]
$sel:userData:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Text
$sel:tagSpecifications:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe [LaunchTemplateTagSpecification]
$sel:securityGroups:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe [Text]
$sel:securityGroupIds:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe [Text]
$sel:ramDiskId:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Text
$sel:privateDnsNameOptions:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe LaunchTemplatePrivateDnsNameOptions
$sel:placement:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe LaunchTemplatePlacement
$sel:networkInterfaces:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification]
$sel:monitoring:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe LaunchTemplatesMonitoring
$sel:metadataOptions:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe LaunchTemplateInstanceMetadataOptions
$sel:maintenanceOptions:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe LaunchTemplateInstanceMaintenanceOptions
$sel:licenseSpecifications:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe [LaunchTemplateLicenseConfiguration]
$sel:keyName:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Text
$sel:kernelId:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Text
$sel:instanceType:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe InstanceType
$sel:instanceRequirements:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe InstanceRequirements
$sel:instanceMarketOptions:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe LaunchTemplateInstanceMarketOptions
$sel:instanceInitiatedShutdownBehavior:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe ShutdownBehavior
$sel:imageId:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Text
$sel:iamInstanceProfile:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe LaunchTemplateIamInstanceProfileSpecification
$sel:hibernationOptions:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe LaunchTemplateHibernationOptions
$sel:enclaveOptions:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe LaunchTemplateEnclaveOptions
$sel:elasticInferenceAccelerators:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe [LaunchTemplateElasticInferenceAcceleratorResponse]
$sel:elasticGpuSpecifications:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe [ElasticGpuSpecificationResponse]
$sel:ebsOptimized:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Bool
$sel:disableApiTermination:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Bool
$sel:disableApiStop:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe Bool
$sel:creditSpecification:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe CreditSpecification
$sel:cpuOptions:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData -> Maybe LaunchTemplateCpuOptions
$sel:capacityReservationSpecification:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe LaunchTemplateCapacityReservationSpecificationResponse
$sel:blockDeviceMappings:ResponseLaunchTemplateData' :: ResponseLaunchTemplateData
-> Maybe [LaunchTemplateBlockDeviceMapping]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [LaunchTemplateBlockDeviceMapping]
blockDeviceMappings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LaunchTemplateCapacityReservationSpecificationResponse
capacityReservationSpecification
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LaunchTemplateCpuOptions
cpuOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CreditSpecification
creditSpecification
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
disableApiStop
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
disableApiTermination
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
ebsOptimized
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [ElasticGpuSpecificationResponse]
elasticGpuSpecifications
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [LaunchTemplateElasticInferenceAcceleratorResponse]
elasticInferenceAccelerators
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LaunchTemplateEnclaveOptions
enclaveOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LaunchTemplateHibernationOptions
hibernationOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LaunchTemplateIamInstanceProfileSpecification
iamInstanceProfile
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
imageId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe ShutdownBehavior
instanceInitiatedShutdownBehavior
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LaunchTemplateInstanceMarketOptions
instanceMarketOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InstanceRequirements
instanceRequirements
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InstanceType
instanceType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
kernelId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
keyName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe [LaunchTemplateLicenseConfiguration]
licenseSpecifications
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe LaunchTemplateInstanceMaintenanceOptions
maintenanceOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe LaunchTemplateInstanceMetadataOptions
metadataOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LaunchTemplatesMonitoring
monitoring
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification]
networkInterfaces
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe LaunchTemplatePlacement
placement
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe LaunchTemplatePrivateDnsNameOptions
privateDnsNameOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
ramDiskId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe [Text]
securityGroupIds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe [Text]
securityGroups
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe [LaunchTemplateTagSpecification]
tagSpecifications
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
userData