{-# 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.SecurityHub.Types.AwsAutoScalingLaunchConfigurationDetails -- 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.SecurityHub.Types.AwsAutoScalingLaunchConfigurationDetails where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import qualified Amazonka.Prelude as Prelude import Amazonka.SecurityHub.Types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails import Amazonka.SecurityHub.Types.AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails import Amazonka.SecurityHub.Types.AwsAutoScalingLaunchConfigurationMetadataOptions -- | Details about a launch configuration. -- -- /See:/ 'newAwsAutoScalingLaunchConfigurationDetails' smart constructor. data AwsAutoScalingLaunchConfigurationDetails = AwsAutoScalingLaunchConfigurationDetails' { -- | For Auto Scaling groups that run in a VPC, specifies whether to assign a -- public IP address to the group\'s instances. associatePublicIpAddress :: Prelude.Maybe Prelude.Bool, -- | Specifies the block devices for the instance. blockDeviceMappings :: Prelude.Maybe [AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails], -- | The identifier of a ClassicLink-enabled VPC that EC2-Classic instances -- are linked to. classicLinkVpcId :: Prelude.Maybe Prelude.Text, -- | The identifiers of one or more security groups for the VPC that is -- specified in @ClassicLinkVPCId@. classicLinkVpcSecurityGroups :: Prelude.Maybe [Prelude.Text], -- | The creation date and time for the launch configuration. -- -- Uses the @date-time@ format specified in -- . -- The value cannot contain spaces. For example, -- @2020-03-22T13:22:13.933Z@. createdTime :: Prelude.Maybe Prelude.Text, -- | Whether the launch configuration is optimized for Amazon EBS I\/O. ebsOptimized :: Prelude.Maybe Prelude.Bool, -- | The name or the ARN of the instance profile associated with the IAM role -- for the instance. The instance profile contains the IAM role. iamInstanceProfile :: Prelude.Maybe Prelude.Text, -- | The identifier of the Amazon Machine Image (AMI) that is used to launch -- EC2 instances. imageId :: Prelude.Maybe Prelude.Text, -- | Indicates the type of monitoring for instances in the group. instanceMonitoring :: Prelude.Maybe AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails, -- | The instance type for the instances. instanceType :: Prelude.Maybe Prelude.Text, -- | The identifier of the kernel associated with the AMI. kernelId :: Prelude.Maybe Prelude.Text, -- | The name of the key pair. keyName :: Prelude.Maybe Prelude.Text, -- | The name of the launch configuration. launchConfigurationName :: Prelude.Maybe Prelude.Text, -- | The metadata options for the instances. metadataOptions :: Prelude.Maybe AwsAutoScalingLaunchConfigurationMetadataOptions, -- | The tenancy of the instance. An instance with @dedicated@ tenancy runs -- on isolated, single-tenant hardware and can only be launched into a VPC. placementTenancy :: Prelude.Maybe Prelude.Text, -- | The identifier of the RAM disk associated with the AMI. ramdiskId :: Prelude.Maybe Prelude.Text, -- | The security groups to assign to the instances in the Auto Scaling -- group. securityGroups :: Prelude.Maybe [Prelude.Text], -- | The maximum hourly price to be paid for any Spot Instance that is -- launched to fulfill the request. spotPrice :: Prelude.Maybe Prelude.Text, -- | The user data to make available to the launched EC2 instances. Must be -- base64-encoded text. userData :: Prelude.Maybe Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'AwsAutoScalingLaunchConfigurationDetails' 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: -- -- 'associatePublicIpAddress', 'awsAutoScalingLaunchConfigurationDetails_associatePublicIpAddress' - For Auto Scaling groups that run in a VPC, specifies whether to assign a -- public IP address to the group\'s instances. -- -- 'blockDeviceMappings', 'awsAutoScalingLaunchConfigurationDetails_blockDeviceMappings' - Specifies the block devices for the instance. -- -- 'classicLinkVpcId', 'awsAutoScalingLaunchConfigurationDetails_classicLinkVpcId' - The identifier of a ClassicLink-enabled VPC that EC2-Classic instances -- are linked to. -- -- 'classicLinkVpcSecurityGroups', 'awsAutoScalingLaunchConfigurationDetails_classicLinkVpcSecurityGroups' - The identifiers of one or more security groups for the VPC that is -- specified in @ClassicLinkVPCId@. -- -- 'createdTime', 'awsAutoScalingLaunchConfigurationDetails_createdTime' - The creation date and time for the launch configuration. -- -- Uses the @date-time@ format specified in -- . -- The value cannot contain spaces. For example, -- @2020-03-22T13:22:13.933Z@. -- -- 'ebsOptimized', 'awsAutoScalingLaunchConfigurationDetails_ebsOptimized' - Whether the launch configuration is optimized for Amazon EBS I\/O. -- -- 'iamInstanceProfile', 'awsAutoScalingLaunchConfigurationDetails_iamInstanceProfile' - The name or the ARN of the instance profile associated with the IAM role -- for the instance. The instance profile contains the IAM role. -- -- 'imageId', 'awsAutoScalingLaunchConfigurationDetails_imageId' - The identifier of the Amazon Machine Image (AMI) that is used to launch -- EC2 instances. -- -- 'instanceMonitoring', 'awsAutoScalingLaunchConfigurationDetails_instanceMonitoring' - Indicates the type of monitoring for instances in the group. -- -- 'instanceType', 'awsAutoScalingLaunchConfigurationDetails_instanceType' - The instance type for the instances. -- -- 'kernelId', 'awsAutoScalingLaunchConfigurationDetails_kernelId' - The identifier of the kernel associated with the AMI. -- -- 'keyName', 'awsAutoScalingLaunchConfigurationDetails_keyName' - The name of the key pair. -- -- 'launchConfigurationName', 'awsAutoScalingLaunchConfigurationDetails_launchConfigurationName' - The name of the launch configuration. -- -- 'metadataOptions', 'awsAutoScalingLaunchConfigurationDetails_metadataOptions' - The metadata options for the instances. -- -- 'placementTenancy', 'awsAutoScalingLaunchConfigurationDetails_placementTenancy' - The tenancy of the instance. An instance with @dedicated@ tenancy runs -- on isolated, single-tenant hardware and can only be launched into a VPC. -- -- 'ramdiskId', 'awsAutoScalingLaunchConfigurationDetails_ramdiskId' - The identifier of the RAM disk associated with the AMI. -- -- 'securityGroups', 'awsAutoScalingLaunchConfigurationDetails_securityGroups' - The security groups to assign to the instances in the Auto Scaling -- group. -- -- 'spotPrice', 'awsAutoScalingLaunchConfigurationDetails_spotPrice' - The maximum hourly price to be paid for any Spot Instance that is -- launched to fulfill the request. -- -- 'userData', 'awsAutoScalingLaunchConfigurationDetails_userData' - The user data to make available to the launched EC2 instances. Must be -- base64-encoded text. newAwsAutoScalingLaunchConfigurationDetails :: AwsAutoScalingLaunchConfigurationDetails newAwsAutoScalingLaunchConfigurationDetails = AwsAutoScalingLaunchConfigurationDetails' { associatePublicIpAddress = Prelude.Nothing, blockDeviceMappings = Prelude.Nothing, classicLinkVpcId = Prelude.Nothing, classicLinkVpcSecurityGroups = Prelude.Nothing, createdTime = Prelude.Nothing, ebsOptimized = Prelude.Nothing, iamInstanceProfile = Prelude.Nothing, imageId = Prelude.Nothing, instanceMonitoring = Prelude.Nothing, instanceType = Prelude.Nothing, kernelId = Prelude.Nothing, keyName = Prelude.Nothing, launchConfigurationName = Prelude.Nothing, metadataOptions = Prelude.Nothing, placementTenancy = Prelude.Nothing, ramdiskId = Prelude.Nothing, securityGroups = Prelude.Nothing, spotPrice = Prelude.Nothing, userData = Prelude.Nothing } -- | For Auto Scaling groups that run in a VPC, specifies whether to assign a -- public IP address to the group\'s instances. awsAutoScalingLaunchConfigurationDetails_associatePublicIpAddress :: Lens.Lens' AwsAutoScalingLaunchConfigurationDetails (Prelude.Maybe Prelude.Bool) awsAutoScalingLaunchConfigurationDetails_associatePublicIpAddress = Lens.lens (\AwsAutoScalingLaunchConfigurationDetails' {associatePublicIpAddress} -> associatePublicIpAddress) (\s@AwsAutoScalingLaunchConfigurationDetails' {} a -> s {associatePublicIpAddress = a} :: AwsAutoScalingLaunchConfigurationDetails) -- | Specifies the block devices for the instance. awsAutoScalingLaunchConfigurationDetails_blockDeviceMappings :: Lens.Lens' AwsAutoScalingLaunchConfigurationDetails (Prelude.Maybe [AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails]) awsAutoScalingLaunchConfigurationDetails_blockDeviceMappings = Lens.lens (\AwsAutoScalingLaunchConfigurationDetails' {blockDeviceMappings} -> blockDeviceMappings) (\s@AwsAutoScalingLaunchConfigurationDetails' {} a -> s {blockDeviceMappings = a} :: AwsAutoScalingLaunchConfigurationDetails) Prelude.. Lens.mapping Lens.coerced -- | The identifier of a ClassicLink-enabled VPC that EC2-Classic instances -- are linked to. awsAutoScalingLaunchConfigurationDetails_classicLinkVpcId :: Lens.Lens' AwsAutoScalingLaunchConfigurationDetails (Prelude.Maybe Prelude.Text) awsAutoScalingLaunchConfigurationDetails_classicLinkVpcId = Lens.lens (\AwsAutoScalingLaunchConfigurationDetails' {classicLinkVpcId} -> classicLinkVpcId) (\s@AwsAutoScalingLaunchConfigurationDetails' {} a -> s {classicLinkVpcId = a} :: AwsAutoScalingLaunchConfigurationDetails) -- | The identifiers of one or more security groups for the VPC that is -- specified in @ClassicLinkVPCId@. awsAutoScalingLaunchConfigurationDetails_classicLinkVpcSecurityGroups :: Lens.Lens' AwsAutoScalingLaunchConfigurationDetails (Prelude.Maybe [Prelude.Text]) awsAutoScalingLaunchConfigurationDetails_classicLinkVpcSecurityGroups = Lens.lens (\AwsAutoScalingLaunchConfigurationDetails' {classicLinkVpcSecurityGroups} -> classicLinkVpcSecurityGroups) (\s@AwsAutoScalingLaunchConfigurationDetails' {} a -> s {classicLinkVpcSecurityGroups = a} :: AwsAutoScalingLaunchConfigurationDetails) Prelude.. Lens.mapping Lens.coerced -- | The creation date and time for the launch configuration. -- -- Uses the @date-time@ format specified in -- . -- The value cannot contain spaces. For example, -- @2020-03-22T13:22:13.933Z@. awsAutoScalingLaunchConfigurationDetails_createdTime :: Lens.Lens' AwsAutoScalingLaunchConfigurationDetails (Prelude.Maybe Prelude.Text) awsAutoScalingLaunchConfigurationDetails_createdTime = Lens.lens (\AwsAutoScalingLaunchConfigurationDetails' {createdTime} -> createdTime) (\s@AwsAutoScalingLaunchConfigurationDetails' {} a -> s {createdTime = a} :: AwsAutoScalingLaunchConfigurationDetails) -- | Whether the launch configuration is optimized for Amazon EBS I\/O. awsAutoScalingLaunchConfigurationDetails_ebsOptimized :: Lens.Lens' AwsAutoScalingLaunchConfigurationDetails (Prelude.Maybe Prelude.Bool) awsAutoScalingLaunchConfigurationDetails_ebsOptimized = Lens.lens (\AwsAutoScalingLaunchConfigurationDetails' {ebsOptimized} -> ebsOptimized) (\s@AwsAutoScalingLaunchConfigurationDetails' {} a -> s {ebsOptimized = a} :: AwsAutoScalingLaunchConfigurationDetails) -- | The name or the ARN of the instance profile associated with the IAM role -- for the instance. The instance profile contains the IAM role. awsAutoScalingLaunchConfigurationDetails_iamInstanceProfile :: Lens.Lens' AwsAutoScalingLaunchConfigurationDetails (Prelude.Maybe Prelude.Text) awsAutoScalingLaunchConfigurationDetails_iamInstanceProfile = Lens.lens (\AwsAutoScalingLaunchConfigurationDetails' {iamInstanceProfile} -> iamInstanceProfile) (\s@AwsAutoScalingLaunchConfigurationDetails' {} a -> s {iamInstanceProfile = a} :: AwsAutoScalingLaunchConfigurationDetails) -- | The identifier of the Amazon Machine Image (AMI) that is used to launch -- EC2 instances. awsAutoScalingLaunchConfigurationDetails_imageId :: Lens.Lens' AwsAutoScalingLaunchConfigurationDetails (Prelude.Maybe Prelude.Text) awsAutoScalingLaunchConfigurationDetails_imageId = Lens.lens (\AwsAutoScalingLaunchConfigurationDetails' {imageId} -> imageId) (\s@AwsAutoScalingLaunchConfigurationDetails' {} a -> s {imageId = a} :: AwsAutoScalingLaunchConfigurationDetails) -- | Indicates the type of monitoring for instances in the group. awsAutoScalingLaunchConfigurationDetails_instanceMonitoring :: Lens.Lens' AwsAutoScalingLaunchConfigurationDetails (Prelude.Maybe AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails) awsAutoScalingLaunchConfigurationDetails_instanceMonitoring = Lens.lens (\AwsAutoScalingLaunchConfigurationDetails' {instanceMonitoring} -> instanceMonitoring) (\s@AwsAutoScalingLaunchConfigurationDetails' {} a -> s {instanceMonitoring = a} :: AwsAutoScalingLaunchConfigurationDetails) -- | The instance type for the instances. awsAutoScalingLaunchConfigurationDetails_instanceType :: Lens.Lens' AwsAutoScalingLaunchConfigurationDetails (Prelude.Maybe Prelude.Text) awsAutoScalingLaunchConfigurationDetails_instanceType = Lens.lens (\AwsAutoScalingLaunchConfigurationDetails' {instanceType} -> instanceType) (\s@AwsAutoScalingLaunchConfigurationDetails' {} a -> s {instanceType = a} :: AwsAutoScalingLaunchConfigurationDetails) -- | The identifier of the kernel associated with the AMI. awsAutoScalingLaunchConfigurationDetails_kernelId :: Lens.Lens' AwsAutoScalingLaunchConfigurationDetails (Prelude.Maybe Prelude.Text) awsAutoScalingLaunchConfigurationDetails_kernelId = Lens.lens (\AwsAutoScalingLaunchConfigurationDetails' {kernelId} -> kernelId) (\s@AwsAutoScalingLaunchConfigurationDetails' {} a -> s {kernelId = a} :: AwsAutoScalingLaunchConfigurationDetails) -- | The name of the key pair. awsAutoScalingLaunchConfigurationDetails_keyName :: Lens.Lens' AwsAutoScalingLaunchConfigurationDetails (Prelude.Maybe Prelude.Text) awsAutoScalingLaunchConfigurationDetails_keyName = Lens.lens (\AwsAutoScalingLaunchConfigurationDetails' {keyName} -> keyName) (\s@AwsAutoScalingLaunchConfigurationDetails' {} a -> s {keyName = a} :: AwsAutoScalingLaunchConfigurationDetails) -- | The name of the launch configuration. awsAutoScalingLaunchConfigurationDetails_launchConfigurationName :: Lens.Lens' AwsAutoScalingLaunchConfigurationDetails (Prelude.Maybe Prelude.Text) awsAutoScalingLaunchConfigurationDetails_launchConfigurationName = Lens.lens (\AwsAutoScalingLaunchConfigurationDetails' {launchConfigurationName} -> launchConfigurationName) (\s@AwsAutoScalingLaunchConfigurationDetails' {} a -> s {launchConfigurationName = a} :: AwsAutoScalingLaunchConfigurationDetails) -- | The metadata options for the instances. awsAutoScalingLaunchConfigurationDetails_metadataOptions :: Lens.Lens' AwsAutoScalingLaunchConfigurationDetails (Prelude.Maybe AwsAutoScalingLaunchConfigurationMetadataOptions) awsAutoScalingLaunchConfigurationDetails_metadataOptions = Lens.lens (\AwsAutoScalingLaunchConfigurationDetails' {metadataOptions} -> metadataOptions) (\s@AwsAutoScalingLaunchConfigurationDetails' {} a -> s {metadataOptions = a} :: AwsAutoScalingLaunchConfigurationDetails) -- | The tenancy of the instance. An instance with @dedicated@ tenancy runs -- on isolated, single-tenant hardware and can only be launched into a VPC. awsAutoScalingLaunchConfigurationDetails_placementTenancy :: Lens.Lens' AwsAutoScalingLaunchConfigurationDetails (Prelude.Maybe Prelude.Text) awsAutoScalingLaunchConfigurationDetails_placementTenancy = Lens.lens (\AwsAutoScalingLaunchConfigurationDetails' {placementTenancy} -> placementTenancy) (\s@AwsAutoScalingLaunchConfigurationDetails' {} a -> s {placementTenancy = a} :: AwsAutoScalingLaunchConfigurationDetails) -- | The identifier of the RAM disk associated with the AMI. awsAutoScalingLaunchConfigurationDetails_ramdiskId :: Lens.Lens' AwsAutoScalingLaunchConfigurationDetails (Prelude.Maybe Prelude.Text) awsAutoScalingLaunchConfigurationDetails_ramdiskId = Lens.lens (\AwsAutoScalingLaunchConfigurationDetails' {ramdiskId} -> ramdiskId) (\s@AwsAutoScalingLaunchConfigurationDetails' {} a -> s {ramdiskId = a} :: AwsAutoScalingLaunchConfigurationDetails) -- | The security groups to assign to the instances in the Auto Scaling -- group. awsAutoScalingLaunchConfigurationDetails_securityGroups :: Lens.Lens' AwsAutoScalingLaunchConfigurationDetails (Prelude.Maybe [Prelude.Text]) awsAutoScalingLaunchConfigurationDetails_securityGroups = Lens.lens (\AwsAutoScalingLaunchConfigurationDetails' {securityGroups} -> securityGroups) (\s@AwsAutoScalingLaunchConfigurationDetails' {} a -> s {securityGroups = a} :: AwsAutoScalingLaunchConfigurationDetails) Prelude.. Lens.mapping Lens.coerced -- | The maximum hourly price to be paid for any Spot Instance that is -- launched to fulfill the request. awsAutoScalingLaunchConfigurationDetails_spotPrice :: Lens.Lens' AwsAutoScalingLaunchConfigurationDetails (Prelude.Maybe Prelude.Text) awsAutoScalingLaunchConfigurationDetails_spotPrice = Lens.lens (\AwsAutoScalingLaunchConfigurationDetails' {spotPrice} -> spotPrice) (\s@AwsAutoScalingLaunchConfigurationDetails' {} a -> s {spotPrice = a} :: AwsAutoScalingLaunchConfigurationDetails) -- | The user data to make available to the launched EC2 instances. Must be -- base64-encoded text. awsAutoScalingLaunchConfigurationDetails_userData :: Lens.Lens' AwsAutoScalingLaunchConfigurationDetails (Prelude.Maybe Prelude.Text) awsAutoScalingLaunchConfigurationDetails_userData = Lens.lens (\AwsAutoScalingLaunchConfigurationDetails' {userData} -> userData) (\s@AwsAutoScalingLaunchConfigurationDetails' {} a -> s {userData = a} :: AwsAutoScalingLaunchConfigurationDetails) instance Data.FromJSON AwsAutoScalingLaunchConfigurationDetails where parseJSON = Data.withObject "AwsAutoScalingLaunchConfigurationDetails" ( \x -> AwsAutoScalingLaunchConfigurationDetails' Prelude.<$> (x Data..:? "AssociatePublicIpAddress") Prelude.<*> ( x Data..:? "BlockDeviceMappings" Data..!= Prelude.mempty ) Prelude.<*> (x Data..:? "ClassicLinkVpcId") Prelude.<*> ( x Data..:? "ClassicLinkVpcSecurityGroups" Data..!= Prelude.mempty ) Prelude.<*> (x Data..:? "CreatedTime") Prelude.<*> (x Data..:? "EbsOptimized") Prelude.<*> (x Data..:? "IamInstanceProfile") Prelude.<*> (x Data..:? "ImageId") Prelude.<*> (x Data..:? "InstanceMonitoring") Prelude.<*> (x Data..:? "InstanceType") Prelude.<*> (x Data..:? "KernelId") Prelude.<*> (x Data..:? "KeyName") Prelude.<*> (x Data..:? "LaunchConfigurationName") Prelude.<*> (x Data..:? "MetadataOptions") Prelude.<*> (x Data..:? "PlacementTenancy") Prelude.<*> (x Data..:? "RamdiskId") Prelude.<*> (x Data..:? "SecurityGroups" Data..!= Prelude.mempty) Prelude.<*> (x Data..:? "SpotPrice") Prelude.<*> (x Data..:? "UserData") ) instance Prelude.Hashable AwsAutoScalingLaunchConfigurationDetails where hashWithSalt _salt AwsAutoScalingLaunchConfigurationDetails' {..} = _salt `Prelude.hashWithSalt` associatePublicIpAddress `Prelude.hashWithSalt` blockDeviceMappings `Prelude.hashWithSalt` classicLinkVpcId `Prelude.hashWithSalt` classicLinkVpcSecurityGroups `Prelude.hashWithSalt` createdTime `Prelude.hashWithSalt` ebsOptimized `Prelude.hashWithSalt` iamInstanceProfile `Prelude.hashWithSalt` imageId `Prelude.hashWithSalt` instanceMonitoring `Prelude.hashWithSalt` instanceType `Prelude.hashWithSalt` kernelId `Prelude.hashWithSalt` keyName `Prelude.hashWithSalt` launchConfigurationName `Prelude.hashWithSalt` metadataOptions `Prelude.hashWithSalt` placementTenancy `Prelude.hashWithSalt` ramdiskId `Prelude.hashWithSalt` securityGroups `Prelude.hashWithSalt` spotPrice `Prelude.hashWithSalt` userData instance Prelude.NFData AwsAutoScalingLaunchConfigurationDetails where rnf AwsAutoScalingLaunchConfigurationDetails' {..} = Prelude.rnf associatePublicIpAddress `Prelude.seq` Prelude.rnf blockDeviceMappings `Prelude.seq` Prelude.rnf classicLinkVpcId `Prelude.seq` Prelude.rnf classicLinkVpcSecurityGroups `Prelude.seq` Prelude.rnf createdTime `Prelude.seq` Prelude.rnf ebsOptimized `Prelude.seq` Prelude.rnf iamInstanceProfile `Prelude.seq` Prelude.rnf imageId `Prelude.seq` Prelude.rnf instanceMonitoring `Prelude.seq` Prelude.rnf instanceType `Prelude.seq` Prelude.rnf kernelId `Prelude.seq` Prelude.rnf keyName `Prelude.seq` Prelude.rnf launchConfigurationName `Prelude.seq` Prelude.rnf metadataOptions `Prelude.seq` Prelude.rnf placementTenancy `Prelude.seq` Prelude.rnf ramdiskId `Prelude.seq` Prelude.rnf securityGroups `Prelude.seq` Prelude.rnf spotPrice `Prelude.seq` Prelude.rnf userData instance Data.ToJSON AwsAutoScalingLaunchConfigurationDetails where toJSON AwsAutoScalingLaunchConfigurationDetails' {..} = Data.object ( Prelude.catMaybes [ ("AssociatePublicIpAddress" Data..=) Prelude.<$> associatePublicIpAddress, ("BlockDeviceMappings" Data..=) Prelude.<$> blockDeviceMappings, ("ClassicLinkVpcId" Data..=) Prelude.<$> classicLinkVpcId, ("ClassicLinkVpcSecurityGroups" Data..=) Prelude.<$> classicLinkVpcSecurityGroups, ("CreatedTime" Data..=) Prelude.<$> createdTime, ("EbsOptimized" Data..=) Prelude.<$> ebsOptimized, ("IamInstanceProfile" Data..=) Prelude.<$> iamInstanceProfile, ("ImageId" Data..=) Prelude.<$> imageId, ("InstanceMonitoring" Data..=) Prelude.<$> instanceMonitoring, ("InstanceType" Data..=) Prelude.<$> instanceType, ("KernelId" Data..=) Prelude.<$> kernelId, ("KeyName" Data..=) Prelude.<$> keyName, ("LaunchConfigurationName" Data..=) Prelude.<$> launchConfigurationName, ("MetadataOptions" Data..=) Prelude.<$> metadataOptions, ("PlacementTenancy" Data..=) Prelude.<$> placementTenancy, ("RamdiskId" Data..=) Prelude.<$> ramdiskId, ("SecurityGroups" Data..=) Prelude.<$> securityGroups, ("SpotPrice" Data..=) Prelude.<$> spotPrice, ("UserData" Data..=) Prelude.<$> userData ] )