{-# 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. blockDeviceMappings :: Prelude.Maybe [LaunchTemplateBlockDeviceMapping], -- | Information about the Capacity Reservation targeting option. capacityReservationSpecification :: Prelude.Maybe LaunchTemplateCapacityReservationSpecificationResponse, -- | The CPU options for the instance. For more information, see -- -- in the /Amazon Elastic Compute Cloud User Guide/. cpuOptions :: Prelude.Maybe LaunchTemplateCpuOptions, -- | The credit option for CPU usage of the instance. creditSpecification :: Prelude.Maybe CreditSpecification, -- | Indicates whether the instance is enabled for stop protection. For more -- information, see -- . 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. disableApiTermination :: Prelude.Maybe Prelude.Bool, -- | Indicates whether the instance is optimized for Amazon EBS I\/O. ebsOptimized :: Prelude.Maybe Prelude.Bool, -- | The elastic GPU specification. elasticGpuSpecifications :: Prelude.Maybe [ElasticGpuSpecificationResponse], -- | The elastic inference accelerator for the instance. elasticInferenceAccelerators :: Prelude.Maybe [LaunchTemplateElasticInferenceAcceleratorResponse], -- | Indicates whether the instance is enabled for Amazon Web Services Nitro -- Enclaves. enclaveOptions :: Prelude.Maybe LaunchTemplateEnclaveOptions, -- | Indicates whether an instance is configured for hibernation. For more -- information, see -- -- in the /Amazon Elastic Compute Cloud User Guide/. hibernationOptions :: Prelude.Maybe LaunchTemplateHibernationOptions, -- | The IAM instance profile. iamInstanceProfile :: Prelude.Maybe LaunchTemplateIamInstanceProfileSpecification, -- | The ID of the AMI that was used to launch the instance. 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). instanceInitiatedShutdownBehavior :: Prelude.Maybe ShutdownBehavior, -- | The market (purchasing) option for the instances. 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@. instanceRequirements :: Prelude.Maybe InstanceRequirements, -- | The instance type. instanceType :: Prelude.Maybe InstanceType, -- | The ID of the kernel, if applicable. kernelId :: Prelude.Maybe Prelude.Text, -- | The name of the key pair. keyName :: Prelude.Maybe Prelude.Text, -- | The license configurations. licenseSpecifications :: Prelude.Maybe [LaunchTemplateLicenseConfiguration], -- | The maintenance options for your instance. maintenanceOptions :: Prelude.Maybe LaunchTemplateInstanceMaintenanceOptions, -- | The metadata options for the instance. For more information, see -- -- in the /Amazon Elastic Compute Cloud User Guide/. metadataOptions :: Prelude.Maybe LaunchTemplateInstanceMetadataOptions, -- | The monitoring for the instance. monitoring :: Prelude.Maybe LaunchTemplatesMonitoring, -- | The network interfaces. networkInterfaces :: Prelude.Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification], -- | The placement of the instance. placement :: Prelude.Maybe LaunchTemplatePlacement, -- | The options for the instance hostname. privateDnsNameOptions :: Prelude.Maybe LaunchTemplatePrivateDnsNameOptions, -- | The ID of the RAM disk, if applicable. ramDiskId :: Prelude.Maybe Prelude.Text, -- | The security group IDs. securityGroupIds :: Prelude.Maybe [Prelude.Text], -- | The security group names. securityGroups :: Prelude.Maybe [Prelude.Text], -- | The tags that are applied to the resources that are created during -- instance launch. tagSpecifications :: Prelude.Maybe [LaunchTemplateTagSpecification], -- | The user data for the instance. userData :: Prelude.Maybe Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'ResponseLaunchTemplateData' with all optional fields omitted. -- -- Use or 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 -- -- 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 -- . -- -- '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 -- -- 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 -- -- 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' { blockDeviceMappings = Prelude.Nothing, capacityReservationSpecification = Prelude.Nothing, cpuOptions = Prelude.Nothing, creditSpecification = Prelude.Nothing, disableApiStop = Prelude.Nothing, disableApiTermination = Prelude.Nothing, ebsOptimized = Prelude.Nothing, elasticGpuSpecifications = Prelude.Nothing, elasticInferenceAccelerators = Prelude.Nothing, enclaveOptions = Prelude.Nothing, hibernationOptions = Prelude.Nothing, iamInstanceProfile = Prelude.Nothing, imageId = Prelude.Nothing, instanceInitiatedShutdownBehavior = Prelude.Nothing, instanceMarketOptions = Prelude.Nothing, instanceRequirements = Prelude.Nothing, instanceType = Prelude.Nothing, kernelId = Prelude.Nothing, keyName = Prelude.Nothing, licenseSpecifications = Prelude.Nothing, maintenanceOptions = Prelude.Nothing, metadataOptions = Prelude.Nothing, monitoring = Prelude.Nothing, networkInterfaces = Prelude.Nothing, placement = Prelude.Nothing, privateDnsNameOptions = Prelude.Nothing, ramDiskId = Prelude.Nothing, securityGroupIds = Prelude.Nothing, securityGroups = Prelude.Nothing, tagSpecifications = Prelude.Nothing, userData = Prelude.Nothing } -- | The block device mappings. responseLaunchTemplateData_blockDeviceMappings :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe [LaunchTemplateBlockDeviceMapping]) responseLaunchTemplateData_blockDeviceMappings = Lens.lens (\ResponseLaunchTemplateData' {blockDeviceMappings} -> blockDeviceMappings) (\s@ResponseLaunchTemplateData' {} a -> s {blockDeviceMappings = a} :: ResponseLaunchTemplateData) Prelude.. Lens.mapping Lens.coerced -- | Information about the Capacity Reservation targeting option. responseLaunchTemplateData_capacityReservationSpecification :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe LaunchTemplateCapacityReservationSpecificationResponse) responseLaunchTemplateData_capacityReservationSpecification = Lens.lens (\ResponseLaunchTemplateData' {capacityReservationSpecification} -> capacityReservationSpecification) (\s@ResponseLaunchTemplateData' {} a -> s {capacityReservationSpecification = a} :: ResponseLaunchTemplateData) -- | The CPU options for the instance. For more information, see -- -- in the /Amazon Elastic Compute Cloud User Guide/. responseLaunchTemplateData_cpuOptions :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe LaunchTemplateCpuOptions) responseLaunchTemplateData_cpuOptions = Lens.lens (\ResponseLaunchTemplateData' {cpuOptions} -> cpuOptions) (\s@ResponseLaunchTemplateData' {} a -> s {cpuOptions = a} :: ResponseLaunchTemplateData) -- | The credit option for CPU usage of the instance. responseLaunchTemplateData_creditSpecification :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe CreditSpecification) responseLaunchTemplateData_creditSpecification = Lens.lens (\ResponseLaunchTemplateData' {creditSpecification} -> creditSpecification) (\s@ResponseLaunchTemplateData' {} a -> s {creditSpecification = a} :: ResponseLaunchTemplateData) -- | Indicates whether the instance is enabled for stop protection. For more -- information, see -- . responseLaunchTemplateData_disableApiStop :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe Prelude.Bool) responseLaunchTemplateData_disableApiStop = Lens.lens (\ResponseLaunchTemplateData' {disableApiStop} -> disableApiStop) (\s@ResponseLaunchTemplateData' {} a -> s {disableApiStop = 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.lens (\ResponseLaunchTemplateData' {disableApiTermination} -> disableApiTermination) (\s@ResponseLaunchTemplateData' {} a -> s {disableApiTermination = 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.lens (\ResponseLaunchTemplateData' {ebsOptimized} -> ebsOptimized) (\s@ResponseLaunchTemplateData' {} a -> s {ebsOptimized = a} :: ResponseLaunchTemplateData) -- | The elastic GPU specification. responseLaunchTemplateData_elasticGpuSpecifications :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe [ElasticGpuSpecificationResponse]) responseLaunchTemplateData_elasticGpuSpecifications = Lens.lens (\ResponseLaunchTemplateData' {elasticGpuSpecifications} -> elasticGpuSpecifications) (\s@ResponseLaunchTemplateData' {} a -> s {elasticGpuSpecifications = a} :: ResponseLaunchTemplateData) Prelude.. Lens.mapping Lens.coerced -- | The elastic inference accelerator for the instance. responseLaunchTemplateData_elasticInferenceAccelerators :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe [LaunchTemplateElasticInferenceAcceleratorResponse]) responseLaunchTemplateData_elasticInferenceAccelerators = Lens.lens (\ResponseLaunchTemplateData' {elasticInferenceAccelerators} -> elasticInferenceAccelerators) (\s@ResponseLaunchTemplateData' {} a -> s {elasticInferenceAccelerators = a} :: ResponseLaunchTemplateData) Prelude.. Lens.mapping 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.lens (\ResponseLaunchTemplateData' {enclaveOptions} -> enclaveOptions) (\s@ResponseLaunchTemplateData' {} a -> s {enclaveOptions = a} :: ResponseLaunchTemplateData) -- | Indicates whether an instance is configured for hibernation. For more -- information, see -- -- in the /Amazon Elastic Compute Cloud User Guide/. responseLaunchTemplateData_hibernationOptions :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe LaunchTemplateHibernationOptions) responseLaunchTemplateData_hibernationOptions = Lens.lens (\ResponseLaunchTemplateData' {hibernationOptions} -> hibernationOptions) (\s@ResponseLaunchTemplateData' {} a -> s {hibernationOptions = a} :: ResponseLaunchTemplateData) -- | The IAM instance profile. responseLaunchTemplateData_iamInstanceProfile :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe LaunchTemplateIamInstanceProfileSpecification) responseLaunchTemplateData_iamInstanceProfile = Lens.lens (\ResponseLaunchTemplateData' {iamInstanceProfile} -> iamInstanceProfile) (\s@ResponseLaunchTemplateData' {} a -> s {iamInstanceProfile = 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.lens (\ResponseLaunchTemplateData' {imageId} -> imageId) (\s@ResponseLaunchTemplateData' {} a -> s {imageId = 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.lens (\ResponseLaunchTemplateData' {instanceInitiatedShutdownBehavior} -> instanceInitiatedShutdownBehavior) (\s@ResponseLaunchTemplateData' {} a -> s {instanceInitiatedShutdownBehavior = a} :: ResponseLaunchTemplateData) -- | The market (purchasing) option for the instances. responseLaunchTemplateData_instanceMarketOptions :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe LaunchTemplateInstanceMarketOptions) responseLaunchTemplateData_instanceMarketOptions = Lens.lens (\ResponseLaunchTemplateData' {instanceMarketOptions} -> instanceMarketOptions) (\s@ResponseLaunchTemplateData' {} a -> s {instanceMarketOptions = 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.lens (\ResponseLaunchTemplateData' {instanceRequirements} -> instanceRequirements) (\s@ResponseLaunchTemplateData' {} a -> s {instanceRequirements = a} :: ResponseLaunchTemplateData) -- | The instance type. responseLaunchTemplateData_instanceType :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe InstanceType) responseLaunchTemplateData_instanceType = Lens.lens (\ResponseLaunchTemplateData' {instanceType} -> instanceType) (\s@ResponseLaunchTemplateData' {} a -> s {instanceType = a} :: ResponseLaunchTemplateData) -- | The ID of the kernel, if applicable. responseLaunchTemplateData_kernelId :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe Prelude.Text) responseLaunchTemplateData_kernelId = Lens.lens (\ResponseLaunchTemplateData' {kernelId} -> kernelId) (\s@ResponseLaunchTemplateData' {} a -> s {kernelId = a} :: ResponseLaunchTemplateData) -- | The name of the key pair. responseLaunchTemplateData_keyName :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe Prelude.Text) responseLaunchTemplateData_keyName = Lens.lens (\ResponseLaunchTemplateData' {keyName} -> keyName) (\s@ResponseLaunchTemplateData' {} a -> s {keyName = a} :: ResponseLaunchTemplateData) -- | The license configurations. responseLaunchTemplateData_licenseSpecifications :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe [LaunchTemplateLicenseConfiguration]) responseLaunchTemplateData_licenseSpecifications = Lens.lens (\ResponseLaunchTemplateData' {licenseSpecifications} -> licenseSpecifications) (\s@ResponseLaunchTemplateData' {} a -> s {licenseSpecifications = a} :: ResponseLaunchTemplateData) Prelude.. Lens.mapping Lens.coerced -- | The maintenance options for your instance. responseLaunchTemplateData_maintenanceOptions :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe LaunchTemplateInstanceMaintenanceOptions) responseLaunchTemplateData_maintenanceOptions = Lens.lens (\ResponseLaunchTemplateData' {maintenanceOptions} -> maintenanceOptions) (\s@ResponseLaunchTemplateData' {} a -> s {maintenanceOptions = a} :: ResponseLaunchTemplateData) -- | The metadata options for the instance. For more information, see -- -- in the /Amazon Elastic Compute Cloud User Guide/. responseLaunchTemplateData_metadataOptions :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe LaunchTemplateInstanceMetadataOptions) responseLaunchTemplateData_metadataOptions = Lens.lens (\ResponseLaunchTemplateData' {metadataOptions} -> metadataOptions) (\s@ResponseLaunchTemplateData' {} a -> s {metadataOptions = a} :: ResponseLaunchTemplateData) -- | The monitoring for the instance. responseLaunchTemplateData_monitoring :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe LaunchTemplatesMonitoring) responseLaunchTemplateData_monitoring = Lens.lens (\ResponseLaunchTemplateData' {monitoring} -> monitoring) (\s@ResponseLaunchTemplateData' {} a -> s {monitoring = a} :: ResponseLaunchTemplateData) -- | The network interfaces. responseLaunchTemplateData_networkInterfaces :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe [LaunchTemplateInstanceNetworkInterfaceSpecification]) responseLaunchTemplateData_networkInterfaces = Lens.lens (\ResponseLaunchTemplateData' {networkInterfaces} -> networkInterfaces) (\s@ResponseLaunchTemplateData' {} a -> s {networkInterfaces = a} :: ResponseLaunchTemplateData) Prelude.. Lens.mapping Lens.coerced -- | The placement of the instance. responseLaunchTemplateData_placement :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe LaunchTemplatePlacement) responseLaunchTemplateData_placement = Lens.lens (\ResponseLaunchTemplateData' {placement} -> placement) (\s@ResponseLaunchTemplateData' {} a -> s {placement = a} :: ResponseLaunchTemplateData) -- | The options for the instance hostname. responseLaunchTemplateData_privateDnsNameOptions :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe LaunchTemplatePrivateDnsNameOptions) responseLaunchTemplateData_privateDnsNameOptions = Lens.lens (\ResponseLaunchTemplateData' {privateDnsNameOptions} -> privateDnsNameOptions) (\s@ResponseLaunchTemplateData' {} a -> s {privateDnsNameOptions = a} :: ResponseLaunchTemplateData) -- | The ID of the RAM disk, if applicable. responseLaunchTemplateData_ramDiskId :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe Prelude.Text) responseLaunchTemplateData_ramDiskId = Lens.lens (\ResponseLaunchTemplateData' {ramDiskId} -> ramDiskId) (\s@ResponseLaunchTemplateData' {} a -> s {ramDiskId = a} :: ResponseLaunchTemplateData) -- | The security group IDs. responseLaunchTemplateData_securityGroupIds :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe [Prelude.Text]) responseLaunchTemplateData_securityGroupIds = Lens.lens (\ResponseLaunchTemplateData' {securityGroupIds} -> securityGroupIds) (\s@ResponseLaunchTemplateData' {} a -> s {securityGroupIds = a} :: ResponseLaunchTemplateData) Prelude.. Lens.mapping Lens.coerced -- | The security group names. responseLaunchTemplateData_securityGroups :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe [Prelude.Text]) responseLaunchTemplateData_securityGroups = Lens.lens (\ResponseLaunchTemplateData' {securityGroups} -> securityGroups) (\s@ResponseLaunchTemplateData' {} a -> s {securityGroups = a} :: ResponseLaunchTemplateData) Prelude.. Lens.mapping 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.lens (\ResponseLaunchTemplateData' {tagSpecifications} -> tagSpecifications) (\s@ResponseLaunchTemplateData' {} a -> s {tagSpecifications = a} :: ResponseLaunchTemplateData) Prelude.. Lens.mapping Lens.coerced -- | The user data for the instance. responseLaunchTemplateData_userData :: Lens.Lens' ResponseLaunchTemplateData (Prelude.Maybe Prelude.Text) responseLaunchTemplateData_userData = Lens.lens (\ResponseLaunchTemplateData' {userData} -> userData) (\s@ResponseLaunchTemplateData' {} a -> s {userData = a} :: ResponseLaunchTemplateData) instance Data.FromXML ResponseLaunchTemplateData where parseXML x = ResponseLaunchTemplateData' Prelude.<$> ( x Data..@? "blockDeviceMappingSet" Core..!@ Prelude.mempty Prelude.>>= Core.may (Data.parseXMLList "item") ) Prelude.<*> (x Data..@? "capacityReservationSpecification") Prelude.<*> (x Data..@? "cpuOptions") Prelude.<*> (x Data..@? "creditSpecification") Prelude.<*> (x Data..@? "disableApiStop") Prelude.<*> (x Data..@? "disableApiTermination") Prelude.<*> (x Data..@? "ebsOptimized") Prelude.<*> ( x Data..@? "elasticGpuSpecificationSet" Core..!@ Prelude.mempty Prelude.>>= Core.may (Data.parseXMLList "item") ) Prelude.<*> ( x Data..@? "elasticInferenceAcceleratorSet" Core..!@ Prelude.mempty Prelude.>>= Core.may (Data.parseXMLList "item") ) Prelude.<*> (x Data..@? "enclaveOptions") Prelude.<*> (x Data..@? "hibernationOptions") Prelude.<*> (x Data..@? "iamInstanceProfile") Prelude.<*> (x Data..@? "imageId") Prelude.<*> (x Data..@? "instanceInitiatedShutdownBehavior") Prelude.<*> (x Data..@? "instanceMarketOptions") Prelude.<*> (x Data..@? "instanceRequirements") Prelude.<*> (x Data..@? "instanceType") Prelude.<*> (x Data..@? "kernelId") Prelude.<*> (x Data..@? "keyName") Prelude.<*> ( x Data..@? "licenseSet" Core..!@ Prelude.mempty Prelude.>>= Core.may (Data.parseXMLList "item") ) Prelude.<*> (x Data..@? "maintenanceOptions") Prelude.<*> (x Data..@? "metadataOptions") Prelude.<*> (x Data..@? "monitoring") Prelude.<*> ( x Data..@? "networkInterfaceSet" Core..!@ Prelude.mempty Prelude.>>= Core.may (Data.parseXMLList "item") ) Prelude.<*> (x Data..@? "placement") Prelude.<*> (x Data..@? "privateDnsNameOptions") Prelude.<*> (x Data..@? "ramDiskId") Prelude.<*> ( x Data..@? "securityGroupIdSet" Core..!@ Prelude.mempty Prelude.>>= Core.may (Data.parseXMLList "item") ) Prelude.<*> ( x Data..@? "securityGroupSet" Core..!@ Prelude.mempty Prelude.>>= Core.may (Data.parseXMLList "item") ) Prelude.<*> ( x Data..@? "tagSpecificationSet" Core..!@ Prelude.mempty Prelude.>>= Core.may (Data.parseXMLList "item") ) Prelude.<*> (x Data..@? "userData") instance Prelude.Hashable ResponseLaunchTemplateData where hashWithSalt _salt ResponseLaunchTemplateData' {..} = _salt `Prelude.hashWithSalt` blockDeviceMappings `Prelude.hashWithSalt` capacityReservationSpecification `Prelude.hashWithSalt` cpuOptions `Prelude.hashWithSalt` creditSpecification `Prelude.hashWithSalt` disableApiStop `Prelude.hashWithSalt` disableApiTermination `Prelude.hashWithSalt` ebsOptimized `Prelude.hashWithSalt` elasticGpuSpecifications `Prelude.hashWithSalt` elasticInferenceAccelerators `Prelude.hashWithSalt` enclaveOptions `Prelude.hashWithSalt` hibernationOptions `Prelude.hashWithSalt` iamInstanceProfile `Prelude.hashWithSalt` imageId `Prelude.hashWithSalt` instanceInitiatedShutdownBehavior `Prelude.hashWithSalt` instanceMarketOptions `Prelude.hashWithSalt` instanceRequirements `Prelude.hashWithSalt` instanceType `Prelude.hashWithSalt` kernelId `Prelude.hashWithSalt` keyName `Prelude.hashWithSalt` licenseSpecifications `Prelude.hashWithSalt` maintenanceOptions `Prelude.hashWithSalt` metadataOptions `Prelude.hashWithSalt` monitoring `Prelude.hashWithSalt` networkInterfaces `Prelude.hashWithSalt` placement `Prelude.hashWithSalt` privateDnsNameOptions `Prelude.hashWithSalt` ramDiskId `Prelude.hashWithSalt` securityGroupIds `Prelude.hashWithSalt` securityGroups `Prelude.hashWithSalt` tagSpecifications `Prelude.hashWithSalt` userData instance Prelude.NFData ResponseLaunchTemplateData where rnf ResponseLaunchTemplateData' {..} = Prelude.rnf blockDeviceMappings `Prelude.seq` Prelude.rnf capacityReservationSpecification `Prelude.seq` Prelude.rnf cpuOptions `Prelude.seq` Prelude.rnf creditSpecification `Prelude.seq` Prelude.rnf disableApiStop `Prelude.seq` Prelude.rnf disableApiTermination `Prelude.seq` Prelude.rnf ebsOptimized `Prelude.seq` Prelude.rnf elasticGpuSpecifications `Prelude.seq` Prelude.rnf elasticInferenceAccelerators `Prelude.seq` Prelude.rnf enclaveOptions `Prelude.seq` Prelude.rnf hibernationOptions `Prelude.seq` Prelude.rnf iamInstanceProfile `Prelude.seq` Prelude.rnf imageId `Prelude.seq` Prelude.rnf instanceInitiatedShutdownBehavior `Prelude.seq` Prelude.rnf instanceMarketOptions `Prelude.seq` Prelude.rnf instanceRequirements `Prelude.seq` Prelude.rnf instanceType `Prelude.seq` Prelude.rnf kernelId `Prelude.seq` Prelude.rnf keyName `Prelude.seq` Prelude.rnf licenseSpecifications `Prelude.seq` Prelude.rnf maintenanceOptions `Prelude.seq` Prelude.rnf metadataOptions `Prelude.seq` Prelude.rnf monitoring `Prelude.seq` Prelude.rnf networkInterfaces `Prelude.seq` Prelude.rnf placement `Prelude.seq` Prelude.rnf privateDnsNameOptions `Prelude.seq` Prelude.rnf ramDiskId `Prelude.seq` Prelude.rnf securityGroupIds `Prelude.seq` Prelude.rnf securityGroups `Prelude.seq` Prelude.rnf tagSpecifications `Prelude.seq` Prelude.rnf userData