packages feed

amazonka-ec2 1.3.7 → 1.4.0

raw patch · 226 files changed

+16132/−12655 lines, 226 filesdep ~amazonka-coredep ~amazonka-ec2dep ~amazonka-testPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: amazonka-core, amazonka-ec2, amazonka-test

API changes (from Hackage documentation)

- Network.AWS.EC2: Attached :: AttachmentStatus
- Network.AWS.EC2: Attaching :: AttachmentStatus
- Network.AWS.EC2: Busy :: AttachmentStatus
- Network.AWS.EC2: Detached :: AttachmentStatus
- Network.AWS.EC2: Detaching :: AttachmentStatus
- Network.AWS.EC2: VASAttached :: VolumeAttachmentState
- Network.AWS.EC2: VASAttaching :: VolumeAttachmentState
- Network.AWS.EC2: VASBusy :: VolumeAttachmentState
- Network.AWS.EC2: VASDetached :: VolumeAttachmentState
- Network.AWS.EC2: VASDetaching :: VolumeAttachmentState
- Network.AWS.EC2: eC2 :: Service
- Network.AWS.EC2.RequestSpotInstances: rsiAvailabilityZoneGroup :: Lens' RequestSpotInstances (Maybe Text)
- Network.AWS.EC2.RequestSpotInstances: rsiBlockDurationMinutes :: Lens' RequestSpotInstances (Maybe Int)
- Network.AWS.EC2.RequestSpotInstances: rsiClientToken :: Lens' RequestSpotInstances (Maybe Text)
- Network.AWS.EC2.RequestSpotInstances: rsiDryRun :: Lens' RequestSpotInstances (Maybe Bool)
- Network.AWS.EC2.RequestSpotInstances: rsiInstanceCount :: Lens' RequestSpotInstances (Maybe Int)
- Network.AWS.EC2.RequestSpotInstances: rsiLaunchGroup :: Lens' RequestSpotInstances (Maybe Text)
- Network.AWS.EC2.RequestSpotInstances: rsiLaunchSpecification :: Lens' RequestSpotInstances (Maybe RequestSpotLaunchSpecification)
- Network.AWS.EC2.RequestSpotInstances: rsiSpotPrice :: Lens' RequestSpotInstances Text
- Network.AWS.EC2.RequestSpotInstances: rsiType :: Lens' RequestSpotInstances (Maybe SpotInstanceType)
- Network.AWS.EC2.RequestSpotInstances: rsiValidFrom :: Lens' RequestSpotInstances (Maybe UTCTime)
- Network.AWS.EC2.RequestSpotInstances: rsiValidUntil :: Lens' RequestSpotInstances (Maybe UTCTime)
- Network.AWS.EC2.Types: Attached :: AttachmentStatus
- Network.AWS.EC2.Types: Attaching :: AttachmentStatus
- Network.AWS.EC2.Types: Busy :: AttachmentStatus
- Network.AWS.EC2.Types: Detached :: AttachmentStatus
- Network.AWS.EC2.Types: Detaching :: AttachmentStatus
- Network.AWS.EC2.Types: VASAttached :: VolumeAttachmentState
- Network.AWS.EC2.Types: VASAttaching :: VolumeAttachmentState
- Network.AWS.EC2.Types: VASBusy :: VolumeAttachmentState
- Network.AWS.EC2.Types: VASDetached :: VolumeAttachmentState
- Network.AWS.EC2.Types: VASDetaching :: VolumeAttachmentState
- Network.AWS.EC2.Types: eC2 :: Service
+ Network.AWS.EC2: AAttached :: AttachmentStatus
+ Network.AWS.EC2: AAttaching :: AttachmentStatus
+ Network.AWS.EC2: AAvailable :: AttachmentStatus
+ Network.AWS.EC2: ABusy :: AttachmentStatus
+ Network.AWS.EC2: ADetached :: AttachmentStatus
+ Network.AWS.EC2: ADetaching :: AttachmentStatus
+ Network.AWS.EC2: DeleteTag :: !Text -> !(Maybe Text) -> DeleteTag
+ Network.AWS.EC2: G2_8XLarge :: InstanceType
+ Network.AWS.EC2: Scheduled :: InstanceLifecycleType
+ Network.AWS.EC2: T2_Nano :: InstanceType
+ Network.AWS.EC2: VAttached :: VolumeAttachmentState
+ Network.AWS.EC2: VAttaching :: VolumeAttachmentState
+ Network.AWS.EC2: VBusy :: VolumeAttachmentState
+ Network.AWS.EC2: VDetached :: VolumeAttachmentState
+ Network.AWS.EC2: VDetaching :: VolumeAttachmentState
+ Network.AWS.EC2: [_deleteTagKey] :: DeleteTag -> !Text
+ Network.AWS.EC2: [_deleteTagValue] :: DeleteTag -> !(Maybe Text)
+ Network.AWS.EC2: classicLinkDNSSupport :: ClassicLinkDNSSupport
+ Network.AWS.EC2: cldsClassicLinkDNSSupported :: Lens' ClassicLinkDNSSupport (Maybe Bool)
+ Network.AWS.EC2: cldsVPCId :: Lens' ClassicLinkDNSSupport (Maybe Text)
+ Network.AWS.EC2: data ClassicLinkDNSSupport
+ Network.AWS.EC2: data DeleteTag
+ Network.AWS.EC2: data PurchaseRequest
+ Network.AWS.EC2: data ScheduledInstance
+ Network.AWS.EC2: data ScheduledInstanceAvailability
+ Network.AWS.EC2: data ScheduledInstanceRecurrence
+ Network.AWS.EC2: data ScheduledInstanceRecurrenceRequest
+ Network.AWS.EC2: data ScheduledInstancesBlockDeviceMapping
+ Network.AWS.EC2: data ScheduledInstancesEBS
+ Network.AWS.EC2: data ScheduledInstancesIAMInstanceProfile
+ Network.AWS.EC2: data ScheduledInstancesLaunchSpecification
+ Network.AWS.EC2: data ScheduledInstancesMonitoring
+ Network.AWS.EC2: data ScheduledInstancesNetworkInterface
+ Network.AWS.EC2: data ScheduledInstancesPlacement
+ Network.AWS.EC2: data ScheduledInstancesPrivateIPAddressConfig
+ Network.AWS.EC2: data SlotDateTimeRangeRequest
+ Network.AWS.EC2: data SlotStartTimeRangeRequest
+ Network.AWS.EC2: deleteTag :: Text -> DeleteTag
+ Network.AWS.EC2: deleteTagKey :: Lens' DeleteTag Text
+ Network.AWS.EC2: deleteTagValue :: Lens' DeleteTag (Maybe Text)
+ Network.AWS.EC2: ec2 :: Service
+ Network.AWS.EC2: natGatewayAvailable :: Wait DescribeNatGateways
+ Network.AWS.EC2: networkInterfaceAvailable :: Wait DescribeNetworkInterfaces
+ Network.AWS.EC2: prInstanceCount :: Lens' PurchaseRequest Int
+ Network.AWS.EC2: prPurchaseToken :: Lens' PurchaseRequest Text
+ Network.AWS.EC2: purchaseRequest :: Text -> Int -> PurchaseRequest
+ Network.AWS.EC2: scheduledInstance :: ScheduledInstance
+ Network.AWS.EC2: scheduledInstanceAvailability :: ScheduledInstanceAvailability
+ Network.AWS.EC2: scheduledInstanceRecurrence :: ScheduledInstanceRecurrence
+ Network.AWS.EC2: scheduledInstanceRecurrenceRequest :: ScheduledInstanceRecurrenceRequest
+ Network.AWS.EC2: scheduledInstancesBlockDeviceMapping :: ScheduledInstancesBlockDeviceMapping
+ Network.AWS.EC2: scheduledInstancesEBS :: ScheduledInstancesEBS
+ Network.AWS.EC2: scheduledInstancesIAMInstanceProfile :: ScheduledInstancesIAMInstanceProfile
+ Network.AWS.EC2: scheduledInstancesLaunchSpecification :: Text -> ScheduledInstancesLaunchSpecification
+ Network.AWS.EC2: scheduledInstancesMonitoring :: ScheduledInstancesMonitoring
+ Network.AWS.EC2: scheduledInstancesNetworkInterface :: ScheduledInstancesNetworkInterface
+ Network.AWS.EC2: scheduledInstancesPlacement :: ScheduledInstancesPlacement
+ Network.AWS.EC2: scheduledInstancesPrivateIPAddressConfig :: ScheduledInstancesPrivateIPAddressConfig
+ Network.AWS.EC2: sdtrrEarliestTime :: Lens' SlotDateTimeRangeRequest UTCTime
+ Network.AWS.EC2: sdtrrLatestTime :: Lens' SlotDateTimeRangeRequest UTCTime
+ Network.AWS.EC2: siAvailabilityZone :: Lens' ScheduledInstance (Maybe Text)
+ Network.AWS.EC2: siCreateDate :: Lens' ScheduledInstance (Maybe UTCTime)
+ Network.AWS.EC2: siHourlyPrice :: Lens' ScheduledInstance (Maybe Text)
+ Network.AWS.EC2: siInstanceCount :: Lens' ScheduledInstance (Maybe Int)
+ Network.AWS.EC2: siInstanceType :: Lens' ScheduledInstance (Maybe Text)
+ Network.AWS.EC2: siNetworkPlatform :: Lens' ScheduledInstance (Maybe Text)
+ Network.AWS.EC2: siNextSlotStartTime :: Lens' ScheduledInstance (Maybe UTCTime)
+ Network.AWS.EC2: siPlatform :: Lens' ScheduledInstance (Maybe Text)
+ Network.AWS.EC2: siPreviousSlotEndTime :: Lens' ScheduledInstance (Maybe UTCTime)
+ Network.AWS.EC2: siRecurrence :: Lens' ScheduledInstance (Maybe ScheduledInstanceRecurrence)
+ Network.AWS.EC2: siScheduledInstanceId :: Lens' ScheduledInstance (Maybe Text)
+ Network.AWS.EC2: siSlotDurationInHours :: Lens' ScheduledInstance (Maybe Int)
+ Network.AWS.EC2: siTermEndDate :: Lens' ScheduledInstance (Maybe UTCTime)
+ Network.AWS.EC2: siTermStartDate :: Lens' ScheduledInstance (Maybe UTCTime)
+ Network.AWS.EC2: siTotalScheduledInstanceHours :: Lens' ScheduledInstance (Maybe Int)
+ Network.AWS.EC2: siaAvailabilityZone :: Lens' ScheduledInstanceAvailability (Maybe Text)
+ Network.AWS.EC2: siaAvailableInstanceCount :: Lens' ScheduledInstanceAvailability (Maybe Int)
+ Network.AWS.EC2: siaFirstSlotStartTime :: Lens' ScheduledInstanceAvailability (Maybe UTCTime)
+ Network.AWS.EC2: siaHourlyPrice :: Lens' ScheduledInstanceAvailability (Maybe Text)
+ Network.AWS.EC2: siaInstanceType :: Lens' ScheduledInstanceAvailability (Maybe Text)
+ Network.AWS.EC2: siaMaxTermDurationInDays :: Lens' ScheduledInstanceAvailability (Maybe Int)
+ Network.AWS.EC2: siaMinTermDurationInDays :: Lens' ScheduledInstanceAvailability (Maybe Int)
+ Network.AWS.EC2: siaNetworkPlatform :: Lens' ScheduledInstanceAvailability (Maybe Text)
+ Network.AWS.EC2: siaPlatform :: Lens' ScheduledInstanceAvailability (Maybe Text)
+ Network.AWS.EC2: siaPurchaseToken :: Lens' ScheduledInstanceAvailability (Maybe Text)
+ Network.AWS.EC2: siaRecurrence :: Lens' ScheduledInstanceAvailability (Maybe ScheduledInstanceRecurrence)
+ Network.AWS.EC2: siaSlotDurationInHours :: Lens' ScheduledInstanceAvailability (Maybe Int)
+ Network.AWS.EC2: siaTotalScheduledInstanceHours :: Lens' ScheduledInstanceAvailability (Maybe Int)
+ Network.AWS.EC2: sibdmDeviceName :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe Text)
+ Network.AWS.EC2: sibdmEBS :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe ScheduledInstancesEBS)
+ Network.AWS.EC2: sibdmNoDevice :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe Text)
+ Network.AWS.EC2: sibdmVirtualName :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe Text)
+ Network.AWS.EC2: sieDeleteOnTermination :: Lens' ScheduledInstancesEBS (Maybe Bool)
+ Network.AWS.EC2: sieEncrypted :: Lens' ScheduledInstancesEBS (Maybe Bool)
+ Network.AWS.EC2: sieIOPS :: Lens' ScheduledInstancesEBS (Maybe Int)
+ Network.AWS.EC2: sieSnapshotId :: Lens' ScheduledInstancesEBS (Maybe Text)
+ Network.AWS.EC2: sieVolumeSize :: Lens' ScheduledInstancesEBS (Maybe Int)
+ Network.AWS.EC2: sieVolumeType :: Lens' ScheduledInstancesEBS (Maybe Text)
+ Network.AWS.EC2: siiapARN :: Lens' ScheduledInstancesIAMInstanceProfile (Maybe Text)
+ Network.AWS.EC2: siiapName :: Lens' ScheduledInstancesIAMInstanceProfile (Maybe Text)
+ Network.AWS.EC2: silsBlockDeviceMappings :: Lens' ScheduledInstancesLaunchSpecification [ScheduledInstancesBlockDeviceMapping]
+ Network.AWS.EC2: silsEBSOptimized :: Lens' ScheduledInstancesLaunchSpecification (Maybe Bool)
+ Network.AWS.EC2: silsIAMInstanceProfile :: Lens' ScheduledInstancesLaunchSpecification (Maybe ScheduledInstancesIAMInstanceProfile)
+ Network.AWS.EC2: silsImageId :: Lens' ScheduledInstancesLaunchSpecification Text
+ Network.AWS.EC2: silsInstanceType :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)
+ Network.AWS.EC2: silsKernelId :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)
+ Network.AWS.EC2: silsKeyName :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)
+ Network.AWS.EC2: silsMonitoring :: Lens' ScheduledInstancesLaunchSpecification (Maybe ScheduledInstancesMonitoring)
+ Network.AWS.EC2: silsNetworkInterfaces :: Lens' ScheduledInstancesLaunchSpecification [ScheduledInstancesNetworkInterface]
+ Network.AWS.EC2: silsPlacement :: Lens' ScheduledInstancesLaunchSpecification (Maybe ScheduledInstancesPlacement)
+ Network.AWS.EC2: silsRAMDiskId :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)
+ Network.AWS.EC2: silsSecurityGroupIds :: Lens' ScheduledInstancesLaunchSpecification [Text]
+ Network.AWS.EC2: silsSubnetId :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)
+ Network.AWS.EC2: silsUserData :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)
+ Network.AWS.EC2: simEnabled :: Lens' ScheduledInstancesMonitoring (Maybe Bool)
+ Network.AWS.EC2: siniAssociatePublicIPAddress :: Lens' ScheduledInstancesNetworkInterface (Maybe Bool)
+ Network.AWS.EC2: siniDeleteOnTermination :: Lens' ScheduledInstancesNetworkInterface (Maybe Bool)
+ Network.AWS.EC2: siniDescription :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)
+ Network.AWS.EC2: siniDeviceIndex :: Lens' ScheduledInstancesNetworkInterface (Maybe Int)
+ Network.AWS.EC2: siniGroups :: Lens' ScheduledInstancesNetworkInterface [Text]
+ Network.AWS.EC2: siniNetworkInterfaceId :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)
+ Network.AWS.EC2: siniPrivateIPAddress :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)
+ Network.AWS.EC2: siniPrivateIPAddressConfigs :: Lens' ScheduledInstancesNetworkInterface [ScheduledInstancesPrivateIPAddressConfig]
+ Network.AWS.EC2: siniSecondaryPrivateIPAddressCount :: Lens' ScheduledInstancesNetworkInterface (Maybe Int)
+ Network.AWS.EC2: siniSubnetId :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)
+ Network.AWS.EC2: sipAvailabilityZone :: Lens' ScheduledInstancesPlacement (Maybe Text)
+ Network.AWS.EC2: sipGroupName :: Lens' ScheduledInstancesPlacement (Maybe Text)
+ Network.AWS.EC2: sipiacPrimary :: Lens' ScheduledInstancesPrivateIPAddressConfig (Maybe Bool)
+ Network.AWS.EC2: sipiacPrivateIPAddress :: Lens' ScheduledInstancesPrivateIPAddressConfig (Maybe Text)
+ Network.AWS.EC2: sirFrequency :: Lens' ScheduledInstanceRecurrence (Maybe Text)
+ Network.AWS.EC2: sirInterval :: Lens' ScheduledInstanceRecurrence (Maybe Int)
+ Network.AWS.EC2: sirOccurrenceDaySet :: Lens' ScheduledInstanceRecurrence [Int]
+ Network.AWS.EC2: sirOccurrenceRelativeToEnd :: Lens' ScheduledInstanceRecurrence (Maybe Bool)
+ Network.AWS.EC2: sirOccurrenceUnit :: Lens' ScheduledInstanceRecurrence (Maybe Text)
+ Network.AWS.EC2: sirrFrequency :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Text)
+ Network.AWS.EC2: sirrInterval :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Int)
+ Network.AWS.EC2: sirrOccurrenceDays :: Lens' ScheduledInstanceRecurrenceRequest [Int]
+ Network.AWS.EC2: sirrOccurrenceRelativeToEnd :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Bool)
+ Network.AWS.EC2: sirrOccurrenceUnit :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Text)
+ Network.AWS.EC2: slotDateTimeRangeRequest :: UTCTime -> UTCTime -> SlotDateTimeRangeRequest
+ Network.AWS.EC2: slotStartTimeRangeRequest :: SlotStartTimeRangeRequest
+ Network.AWS.EC2: sstrrEarliestTime :: Lens' SlotStartTimeRangeRequest (Maybe UTCTime)
+ Network.AWS.EC2: sstrrLatestTime :: Lens' SlotStartTimeRangeRequest (Maybe UTCTime)
+ Network.AWS.EC2: uigpPeeringStatus :: Lens' UserIdGroupPair (Maybe Text)
+ Network.AWS.EC2: uigpVPCId :: Lens' UserIdGroupPair (Maybe Text)
+ Network.AWS.EC2: uigpVPCPeeringConnectionId :: Lens' UserIdGroupPair (Maybe Text)
+ Network.AWS.EC2: vpcPeeringConnectionExists :: Wait DescribeVPCPeeringConnections
+ Network.AWS.EC2.AcceptVPCPeeringConnection: instance Data.Hashable.Class.Hashable Network.AWS.EC2.AcceptVPCPeeringConnection.AcceptVPCPeeringConnection
+ Network.AWS.EC2.AllocateAddress: instance Data.Hashable.Class.Hashable Network.AWS.EC2.AllocateAddress.AllocateAddress
+ Network.AWS.EC2.AllocateHosts: instance Data.Hashable.Class.Hashable Network.AWS.EC2.AllocateHosts.AllocateHosts
+ Network.AWS.EC2.AssignPrivateIPAddresses: instance Data.Hashable.Class.Hashable Network.AWS.EC2.AssignPrivateIPAddresses.AssignPrivateIPAddresses
+ Network.AWS.EC2.AssociateAddress: instance Data.Hashable.Class.Hashable Network.AWS.EC2.AssociateAddress.AssociateAddress
+ Network.AWS.EC2.AssociateDHCPOptions: instance Data.Hashable.Class.Hashable Network.AWS.EC2.AssociateDHCPOptions.AssociateDHCPOptions
+ Network.AWS.EC2.AssociateRouteTable: instance Data.Hashable.Class.Hashable Network.AWS.EC2.AssociateRouteTable.AssociateRouteTable
+ Network.AWS.EC2.AttachClassicLinkVPC: instance Data.Hashable.Class.Hashable Network.AWS.EC2.AttachClassicLinkVPC.AttachClassicLinkVPC
+ Network.AWS.EC2.AttachInternetGateway: instance Data.Hashable.Class.Hashable Network.AWS.EC2.AttachInternetGateway.AttachInternetGateway
+ Network.AWS.EC2.AttachNetworkInterface: instance Data.Hashable.Class.Hashable Network.AWS.EC2.AttachNetworkInterface.AttachNetworkInterface
+ Network.AWS.EC2.AttachVPNGateway: instance Data.Hashable.Class.Hashable Network.AWS.EC2.AttachVPNGateway.AttachVPNGateway
+ Network.AWS.EC2.AttachVolume: instance Data.Hashable.Class.Hashable Network.AWS.EC2.AttachVolume.AttachVolume
+ Network.AWS.EC2.AuthorizeSecurityGroupEgress: instance Data.Hashable.Class.Hashable Network.AWS.EC2.AuthorizeSecurityGroupEgress.AuthorizeSecurityGroupEgress
+ Network.AWS.EC2.AuthorizeSecurityGroupIngress: instance Data.Hashable.Class.Hashable Network.AWS.EC2.AuthorizeSecurityGroupIngress.AuthorizeSecurityGroupIngress
+ Network.AWS.EC2.BundleInstance: instance Data.Hashable.Class.Hashable Network.AWS.EC2.BundleInstance.BundleInstance
+ Network.AWS.EC2.CancelBundleTask: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CancelBundleTask.CancelBundleTask
+ Network.AWS.EC2.CancelConversionTask: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CancelConversionTask.CancelConversionTask
+ Network.AWS.EC2.CancelExportTask: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CancelExportTask.CancelExportTask
+ Network.AWS.EC2.CancelImportTask: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CancelImportTask.CancelImportTask
+ Network.AWS.EC2.CancelReservedInstancesListing: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CancelReservedInstancesListing.CancelReservedInstancesListing
+ Network.AWS.EC2.CancelSpotFleetRequests: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CancelSpotFleetRequests.CancelSpotFleetRequests
+ Network.AWS.EC2.CancelSpotInstanceRequests: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CancelSpotInstanceRequests.CancelSpotInstanceRequests
+ Network.AWS.EC2.ConfirmProductInstance: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ConfirmProductInstance.ConfirmProductInstance
+ Network.AWS.EC2.CopyImage: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CopyImage.CopyImage
+ Network.AWS.EC2.CopySnapshot: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CopySnapshot.CopySnapshot
+ Network.AWS.EC2.CreateCustomerGateway: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateCustomerGateway.CreateCustomerGateway
+ Network.AWS.EC2.CreateDHCPOptions: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateDHCPOptions.CreateDHCPOptions
+ Network.AWS.EC2.CreateFlowLogs: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateFlowLogs.CreateFlowLogs
+ Network.AWS.EC2.CreateImage: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateImage.CreateImage
+ Network.AWS.EC2.CreateInstanceExportTask: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateInstanceExportTask.CreateInstanceExportTask
+ Network.AWS.EC2.CreateInternetGateway: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateInternetGateway.CreateInternetGateway
+ Network.AWS.EC2.CreateKeyPair: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateKeyPair.CreateKeyPair
+ Network.AWS.EC2.CreateNatGateway: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateNatGateway.CreateNatGateway
+ Network.AWS.EC2.CreateNetworkACL: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateNetworkACL.CreateNetworkACL
+ Network.AWS.EC2.CreateNetworkACLEntry: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateNetworkACLEntry.CreateNetworkACLEntry
+ Network.AWS.EC2.CreateNetworkInterface: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateNetworkInterface.CreateNetworkInterface
+ Network.AWS.EC2.CreatePlacementGroup: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreatePlacementGroup.CreatePlacementGroup
+ Network.AWS.EC2.CreateReservedInstancesListing: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateReservedInstancesListing.CreateReservedInstancesListing
+ Network.AWS.EC2.CreateRoute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateRoute.CreateRoute
+ Network.AWS.EC2.CreateRouteTable: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateRouteTable.CreateRouteTable
+ Network.AWS.EC2.CreateSecurityGroup: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateSecurityGroup.CreateSecurityGroup
+ Network.AWS.EC2.CreateSnapshot: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateSnapshot.CreateSnapshot
+ Network.AWS.EC2.CreateSpotDatafeedSubscription: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateSpotDatafeedSubscription.CreateSpotDatafeedSubscription
+ Network.AWS.EC2.CreateSubnet: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateSubnet.CreateSubnet
+ Network.AWS.EC2.CreateTags: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateTags.CreateTags
+ Network.AWS.EC2.CreateVPC: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateVPC.CreateVPC
+ Network.AWS.EC2.CreateVPCEndpoint: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateVPCEndpoint.CreateVPCEndpoint
+ Network.AWS.EC2.CreateVPCPeeringConnection: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateVPCPeeringConnection.CreateVPCPeeringConnection
+ Network.AWS.EC2.CreateVPNConnection: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateVPNConnection.CreateVPNConnection
+ Network.AWS.EC2.CreateVPNConnectionRoute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateVPNConnectionRoute.CreateVPNConnectionRoute
+ Network.AWS.EC2.CreateVPNGateway: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateVPNGateway.CreateVPNGateway
+ Network.AWS.EC2.CreateVolume: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateVolume.CreateVolume
+ Network.AWS.EC2.DeleteCustomerGateway: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteCustomerGateway.DeleteCustomerGateway
+ Network.AWS.EC2.DeleteDHCPOptions: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteDHCPOptions.DeleteDHCPOptions
+ Network.AWS.EC2.DeleteFlowLogs: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteFlowLogs.DeleteFlowLogs
+ Network.AWS.EC2.DeleteInternetGateway: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteInternetGateway.DeleteInternetGateway
+ Network.AWS.EC2.DeleteKeyPair: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteKeyPair.DeleteKeyPair
+ Network.AWS.EC2.DeleteNatGateway: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteNatGateway.DeleteNatGateway
+ Network.AWS.EC2.DeleteNetworkACL: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteNetworkACL.DeleteNetworkACL
+ Network.AWS.EC2.DeleteNetworkACLEntry: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteNetworkACLEntry.DeleteNetworkACLEntry
+ Network.AWS.EC2.DeleteNetworkInterface: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteNetworkInterface.DeleteNetworkInterface
+ Network.AWS.EC2.DeletePlacementGroup: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeletePlacementGroup.DeletePlacementGroup
+ Network.AWS.EC2.DeleteRoute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteRoute.DeleteRoute
+ Network.AWS.EC2.DeleteRouteTable: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteRouteTable.DeleteRouteTable
+ Network.AWS.EC2.DeleteSecurityGroup: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteSecurityGroup.DeleteSecurityGroup
+ Network.AWS.EC2.DeleteSnapshot: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteSnapshot.DeleteSnapshot
+ Network.AWS.EC2.DeleteSpotDatafeedSubscription: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteSpotDatafeedSubscription.DeleteSpotDatafeedSubscription
+ Network.AWS.EC2.DeleteSubnet: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteSubnet.DeleteSubnet
+ Network.AWS.EC2.DeleteTags: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteTags.DeleteTags
+ Network.AWS.EC2.DeleteVPC: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteVPC.DeleteVPC
+ Network.AWS.EC2.DeleteVPCEndpoints: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteVPCEndpoints.DeleteVPCEndpoints
+ Network.AWS.EC2.DeleteVPCPeeringConnection: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteVPCPeeringConnection.DeleteVPCPeeringConnection
+ Network.AWS.EC2.DeleteVPNConnection: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteVPNConnection.DeleteVPNConnection
+ Network.AWS.EC2.DeleteVPNConnectionRoute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteVPNConnectionRoute.DeleteVPNConnectionRoute
+ Network.AWS.EC2.DeleteVPNGateway: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteVPNGateway.DeleteVPNGateway
+ Network.AWS.EC2.DeleteVolume: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteVolume.DeleteVolume
+ Network.AWS.EC2.DeregisterImage: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeregisterImage.DeregisterImage
+ Network.AWS.EC2.DescribeAccountAttributes: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeAccountAttributes.DescribeAccountAttributes
+ Network.AWS.EC2.DescribeAddresses: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeAddresses.DescribeAddresses
+ Network.AWS.EC2.DescribeAvailabilityZones: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeAvailabilityZones.DescribeAvailabilityZones
+ Network.AWS.EC2.DescribeBundleTasks: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeBundleTasks.DescribeBundleTasks
+ Network.AWS.EC2.DescribeClassicLinkInstances: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeClassicLinkInstances.DescribeClassicLinkInstances
+ Network.AWS.EC2.DescribeConversionTasks: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeConversionTasks.DescribeConversionTasks
+ Network.AWS.EC2.DescribeCustomerGateways: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeCustomerGateways.DescribeCustomerGateways
+ Network.AWS.EC2.DescribeDHCPOptions: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeDHCPOptions.DescribeDHCPOptions
+ Network.AWS.EC2.DescribeExportTasks: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeExportTasks.DescribeExportTasks
+ Network.AWS.EC2.DescribeFlowLogs: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeFlowLogs.DescribeFlowLogs
+ Network.AWS.EC2.DescribeHosts: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeHosts.DescribeHosts
+ Network.AWS.EC2.DescribeIdFormat: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeIdFormat.DescribeIdFormat
+ Network.AWS.EC2.DescribeImageAttribute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeImageAttribute.DescribeImageAttribute
+ Network.AWS.EC2.DescribeImages: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeImages.DescribeImages
+ Network.AWS.EC2.DescribeImportImageTasks: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeImportImageTasks.DescribeImportImageTasks
+ Network.AWS.EC2.DescribeImportSnapshotTasks: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeImportSnapshotTasks.DescribeImportSnapshotTasks
+ Network.AWS.EC2.DescribeInstanceAttribute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeInstanceAttribute.DescribeInstanceAttribute
+ Network.AWS.EC2.DescribeInstanceStatus: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeInstanceStatus.DescribeInstanceStatus
+ Network.AWS.EC2.DescribeInstances: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeInstances.DescribeInstances
+ Network.AWS.EC2.DescribeInternetGateways: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeInternetGateways.DescribeInternetGateways
+ Network.AWS.EC2.DescribeKeyPairs: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeKeyPairs.DescribeKeyPairs
+ Network.AWS.EC2.DescribeMovingAddresses: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeMovingAddresses.DescribeMovingAddresses
+ Network.AWS.EC2.DescribeNatGateways: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeNatGateways.DescribeNatGateways
+ Network.AWS.EC2.DescribeNetworkACLs: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeNetworkACLs.DescribeNetworkACLs
+ Network.AWS.EC2.DescribeNetworkInterfaceAttribute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeNetworkInterfaceAttribute.DescribeNetworkInterfaceAttribute
+ Network.AWS.EC2.DescribeNetworkInterfaces: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeNetworkInterfaces.DescribeNetworkInterfaces
+ Network.AWS.EC2.DescribePlacementGroups: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribePlacementGroups.DescribePlacementGroups
+ Network.AWS.EC2.DescribePrefixLists: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribePrefixLists.DescribePrefixLists
+ Network.AWS.EC2.DescribeRegions: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeRegions.DescribeRegions
+ Network.AWS.EC2.DescribeReservedInstances: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeReservedInstances.DescribeReservedInstances
+ Network.AWS.EC2.DescribeReservedInstancesListings: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeReservedInstancesListings.DescribeReservedInstancesListings
+ Network.AWS.EC2.DescribeReservedInstancesModifications: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeReservedInstancesModifications.DescribeReservedInstancesModifications
+ Network.AWS.EC2.DescribeReservedInstancesOfferings: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeReservedInstancesOfferings.DescribeReservedInstancesOfferings
+ Network.AWS.EC2.DescribeRouteTables: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeRouteTables.DescribeRouteTables
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: data DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: data DescribeScheduledInstanceAvailabilityResponse
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: describeScheduledInstanceAvailability :: ScheduledInstanceRecurrenceRequest -> SlotDateTimeRangeRequest -> DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: describeScheduledInstanceAvailabilityResponse :: Int -> DescribeScheduledInstanceAvailabilityResponse
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: dsiaDryRun :: Lens' DescribeScheduledInstanceAvailability (Maybe Bool)
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: dsiaFilters :: Lens' DescribeScheduledInstanceAvailability [Filter]
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: dsiaFirstSlotStartTimeRange :: Lens' DescribeScheduledInstanceAvailability SlotDateTimeRangeRequest
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: dsiaMaxResults :: Lens' DescribeScheduledInstanceAvailability (Maybe Int)
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: dsiaMaxSlotDurationInHours :: Lens' DescribeScheduledInstanceAvailability (Maybe Int)
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: dsiaMinSlotDurationInHours :: Lens' DescribeScheduledInstanceAvailability (Maybe Int)
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: dsiaNextToken :: Lens' DescribeScheduledInstanceAvailability (Maybe Text)
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: dsiaRecurrence :: Lens' DescribeScheduledInstanceAvailability ScheduledInstanceRecurrenceRequest
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: dsiarsNextToken :: Lens' DescribeScheduledInstanceAvailabilityResponse (Maybe Text)
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: dsiarsResponseStatus :: Lens' DescribeScheduledInstanceAvailabilityResponse Int
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: dsiarsScheduledInstanceAvailabilitySet :: Lens' DescribeScheduledInstanceAvailabilityResponse [ScheduledInstanceAvailability]
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance Data.Data.Data Network.AWS.EC2.DescribeScheduledInstanceAvailability.DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance Data.Data.Data Network.AWS.EC2.DescribeScheduledInstanceAvailability.DescribeScheduledInstanceAvailabilityResponse
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeScheduledInstanceAvailability.DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Classes.Eq Network.AWS.EC2.DescribeScheduledInstanceAvailability.DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Classes.Eq Network.AWS.EC2.DescribeScheduledInstanceAvailability.DescribeScheduledInstanceAvailabilityResponse
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Generics.Constructor Network.AWS.EC2.DescribeScheduledInstanceAvailability.C1_0DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Generics.Constructor Network.AWS.EC2.DescribeScheduledInstanceAvailability.C1_0DescribeScheduledInstanceAvailabilityResponse
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Generics.Datatype Network.AWS.EC2.DescribeScheduledInstanceAvailability.D1DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Generics.Datatype Network.AWS.EC2.DescribeScheduledInstanceAvailability.D1DescribeScheduledInstanceAvailabilityResponse
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Generics.Generic Network.AWS.EC2.DescribeScheduledInstanceAvailability.DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Generics.Generic Network.AWS.EC2.DescribeScheduledInstanceAvailability.DescribeScheduledInstanceAvailabilityResponse
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Generics.Selector Network.AWS.EC2.DescribeScheduledInstanceAvailability.S1_0_0DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Generics.Selector Network.AWS.EC2.DescribeScheduledInstanceAvailability.S1_0_0DescribeScheduledInstanceAvailabilityResponse
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Generics.Selector Network.AWS.EC2.DescribeScheduledInstanceAvailability.S1_0_1DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Generics.Selector Network.AWS.EC2.DescribeScheduledInstanceAvailability.S1_0_1DescribeScheduledInstanceAvailabilityResponse
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Generics.Selector Network.AWS.EC2.DescribeScheduledInstanceAvailability.S1_0_2DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Generics.Selector Network.AWS.EC2.DescribeScheduledInstanceAvailability.S1_0_2DescribeScheduledInstanceAvailabilityResponse
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Generics.Selector Network.AWS.EC2.DescribeScheduledInstanceAvailability.S1_0_3DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Generics.Selector Network.AWS.EC2.DescribeScheduledInstanceAvailability.S1_0_4DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Generics.Selector Network.AWS.EC2.DescribeScheduledInstanceAvailability.S1_0_5DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Generics.Selector Network.AWS.EC2.DescribeScheduledInstanceAvailability.S1_0_6DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Generics.Selector Network.AWS.EC2.DescribeScheduledInstanceAvailability.S1_0_7DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Read.Read Network.AWS.EC2.DescribeScheduledInstanceAvailability.DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Read.Read Network.AWS.EC2.DescribeScheduledInstanceAvailability.DescribeScheduledInstanceAvailabilityResponse
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Show.Show Network.AWS.EC2.DescribeScheduledInstanceAvailability.DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance GHC.Show.Show Network.AWS.EC2.DescribeScheduledInstanceAvailability.DescribeScheduledInstanceAvailabilityResponse
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DescribeScheduledInstanceAvailability.DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DescribeScheduledInstanceAvailability.DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DescribeScheduledInstanceAvailability.DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DescribeScheduledInstanceAvailability.DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstances: data DescribeScheduledInstances
+ Network.AWS.EC2.DescribeScheduledInstances: data DescribeScheduledInstancesResponse
+ Network.AWS.EC2.DescribeScheduledInstances: describeScheduledInstances :: DescribeScheduledInstances
+ Network.AWS.EC2.DescribeScheduledInstances: describeScheduledInstancesResponse :: Int -> DescribeScheduledInstancesResponse
+ Network.AWS.EC2.DescribeScheduledInstances: dsiDryRun :: Lens' DescribeScheduledInstances (Maybe Bool)
+ Network.AWS.EC2.DescribeScheduledInstances: dsiFilters :: Lens' DescribeScheduledInstances [Filter]
+ Network.AWS.EC2.DescribeScheduledInstances: dsiMaxResults :: Lens' DescribeScheduledInstances (Maybe Int)
+ Network.AWS.EC2.DescribeScheduledInstances: dsiNextToken :: Lens' DescribeScheduledInstances (Maybe Text)
+ Network.AWS.EC2.DescribeScheduledInstances: dsiScheduledInstanceIds :: Lens' DescribeScheduledInstances [Text]
+ Network.AWS.EC2.DescribeScheduledInstances: dsiSlotStartTimeRange :: Lens' DescribeScheduledInstances (Maybe SlotStartTimeRangeRequest)
+ Network.AWS.EC2.DescribeScheduledInstances: dsirsNextToken :: Lens' DescribeScheduledInstancesResponse (Maybe Text)
+ Network.AWS.EC2.DescribeScheduledInstances: dsirsResponseStatus :: Lens' DescribeScheduledInstancesResponse Int
+ Network.AWS.EC2.DescribeScheduledInstances: dsirsScheduledInstanceSet :: Lens' DescribeScheduledInstancesResponse [ScheduledInstance]
+ Network.AWS.EC2.DescribeScheduledInstances: instance Data.Data.Data Network.AWS.EC2.DescribeScheduledInstances.DescribeScheduledInstances
+ Network.AWS.EC2.DescribeScheduledInstances: instance Data.Data.Data Network.AWS.EC2.DescribeScheduledInstances.DescribeScheduledInstancesResponse
+ Network.AWS.EC2.DescribeScheduledInstances: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeScheduledInstances.DescribeScheduledInstances
+ Network.AWS.EC2.DescribeScheduledInstances: instance GHC.Classes.Eq Network.AWS.EC2.DescribeScheduledInstances.DescribeScheduledInstances
+ Network.AWS.EC2.DescribeScheduledInstances: instance GHC.Classes.Eq Network.AWS.EC2.DescribeScheduledInstances.DescribeScheduledInstancesResponse
+ Network.AWS.EC2.DescribeScheduledInstances: instance GHC.Generics.Constructor Network.AWS.EC2.DescribeScheduledInstances.C1_0DescribeScheduledInstances
+ Network.AWS.EC2.DescribeScheduledInstances: instance GHC.Generics.Constructor Network.AWS.EC2.DescribeScheduledInstances.C1_0DescribeScheduledInstancesResponse
+ Network.AWS.EC2.DescribeScheduledInstances: instance GHC.Generics.Datatype Network.AWS.EC2.DescribeScheduledInstances.D1DescribeScheduledInstances
+ Network.AWS.EC2.DescribeScheduledInstances: instance GHC.Generics.Datatype Network.AWS.EC2.DescribeScheduledInstances.D1DescribeScheduledInstancesResponse
+ Network.AWS.EC2.DescribeScheduledInstances: instance GHC.Generics.Generic Network.AWS.EC2.DescribeScheduledInstances.DescribeScheduledInstances
+ Network.AWS.EC2.DescribeScheduledInstances: instance GHC.Generics.Generic Network.AWS.EC2.DescribeScheduledInstances.DescribeScheduledInstancesResponse
+ Network.AWS.EC2.DescribeScheduledInstances: instance GHC.Generics.Selector Network.AWS.EC2.DescribeScheduledInstances.S1_0_0DescribeScheduledInstances
+ Network.AWS.EC2.DescribeScheduledInstances: instance GHC.Generics.Selector Network.AWS.EC2.DescribeScheduledInstances.S1_0_0DescribeScheduledInstancesResponse
+ Network.AWS.EC2.DescribeScheduledInstances: instance GHC.Generics.Selector Network.AWS.EC2.DescribeScheduledInstances.S1_0_1DescribeScheduledInstances
+ Network.AWS.EC2.DescribeScheduledInstances: instance GHC.Generics.Selector Network.AWS.EC2.DescribeScheduledInstances.S1_0_1DescribeScheduledInstancesResponse
+ Network.AWS.EC2.DescribeScheduledInstances: instance GHC.Generics.Selector Network.AWS.EC2.DescribeScheduledInstances.S1_0_2DescribeScheduledInstances
+ Network.AWS.EC2.DescribeScheduledInstances: instance GHC.Generics.Selector Network.AWS.EC2.DescribeScheduledInstances.S1_0_2DescribeScheduledInstancesResponse
+ Network.AWS.EC2.DescribeScheduledInstances: instance GHC.Generics.Selector Network.AWS.EC2.DescribeScheduledInstances.S1_0_3DescribeScheduledInstances
+ Network.AWS.EC2.DescribeScheduledInstances: instance GHC.Generics.Selector Network.AWS.EC2.DescribeScheduledInstances.S1_0_4DescribeScheduledInstances
+ Network.AWS.EC2.DescribeScheduledInstances: instance GHC.Generics.Selector Network.AWS.EC2.DescribeScheduledInstances.S1_0_5DescribeScheduledInstances
+ Network.AWS.EC2.DescribeScheduledInstances: instance GHC.Read.Read Network.AWS.EC2.DescribeScheduledInstances.DescribeScheduledInstances
+ Network.AWS.EC2.DescribeScheduledInstances: instance GHC.Read.Read Network.AWS.EC2.DescribeScheduledInstances.DescribeScheduledInstancesResponse
+ Network.AWS.EC2.DescribeScheduledInstances: instance GHC.Show.Show Network.AWS.EC2.DescribeScheduledInstances.DescribeScheduledInstances
+ Network.AWS.EC2.DescribeScheduledInstances: instance GHC.Show.Show Network.AWS.EC2.DescribeScheduledInstances.DescribeScheduledInstancesResponse
+ Network.AWS.EC2.DescribeScheduledInstances: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DescribeScheduledInstances.DescribeScheduledInstances
+ Network.AWS.EC2.DescribeScheduledInstances: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DescribeScheduledInstances.DescribeScheduledInstances
+ Network.AWS.EC2.DescribeScheduledInstances: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DescribeScheduledInstances.DescribeScheduledInstances
+ Network.AWS.EC2.DescribeScheduledInstances: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DescribeScheduledInstances.DescribeScheduledInstances
+ Network.AWS.EC2.DescribeSecurityGroups: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeSecurityGroups.DescribeSecurityGroups
+ Network.AWS.EC2.DescribeSnapshotAttribute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeSnapshotAttribute.DescribeSnapshotAttribute
+ Network.AWS.EC2.DescribeSnapshots: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeSnapshots.DescribeSnapshots
+ Network.AWS.EC2.DescribeSpotDatafeedSubscription: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeSpotDatafeedSubscription.DescribeSpotDatafeedSubscription
+ Network.AWS.EC2.DescribeSpotFleetInstances: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeSpotFleetInstances.DescribeSpotFleetInstances
+ Network.AWS.EC2.DescribeSpotFleetRequestHistory: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeSpotFleetRequestHistory.DescribeSpotFleetRequestHistory
+ Network.AWS.EC2.DescribeSpotFleetRequests: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeSpotFleetRequests.DescribeSpotFleetRequests
+ Network.AWS.EC2.DescribeSpotInstanceRequests: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeSpotInstanceRequests.DescribeSpotInstanceRequests
+ Network.AWS.EC2.DescribeSpotPriceHistory: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeSpotPriceHistory.DescribeSpotPriceHistory
+ Network.AWS.EC2.DescribeSubnets: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeSubnets.DescribeSubnets
+ Network.AWS.EC2.DescribeTags: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeTags.DescribeTags
+ Network.AWS.EC2.DescribeVPCAttribute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeVPCAttribute.DescribeVPCAttribute
+ Network.AWS.EC2.DescribeVPCClassicLink: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeVPCClassicLink.DescribeVPCClassicLink
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: data DescribeVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: data DescribeVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: describeVPCClassicLinkDNSSupport :: DescribeVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: describeVPCClassicLinkDNSSupportResponse :: Int -> DescribeVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: dvcldsMaxResults :: Lens' DescribeVPCClassicLinkDNSSupport (Maybe Natural)
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: dvcldsNextToken :: Lens' DescribeVPCClassicLinkDNSSupport (Maybe Text)
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: dvcldsVPCIds :: Lens' DescribeVPCClassicLinkDNSSupport [Text]
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: dvpccldnssrsNextToken :: Lens' DescribeVPCClassicLinkDNSSupportResponse (Maybe Text)
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: dvpccldnssrsResponseStatus :: Lens' DescribeVPCClassicLinkDNSSupportResponse Int
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: dvpccldnssrsVPCs :: Lens' DescribeVPCClassicLinkDNSSupportResponse [ClassicLinkDNSSupport]
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance Data.Data.Data Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.DescribeVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance Data.Data.Data Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.DescribeVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.DescribeVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance GHC.Classes.Eq Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.DescribeVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance GHC.Classes.Eq Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.DescribeVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance GHC.Generics.Constructor Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.C1_0DescribeVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance GHC.Generics.Constructor Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.C1_0DescribeVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance GHC.Generics.Datatype Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.D1DescribeVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance GHC.Generics.Datatype Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.D1DescribeVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance GHC.Generics.Generic Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.DescribeVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance GHC.Generics.Generic Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.DescribeVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance GHC.Generics.Selector Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.S1_0_0DescribeVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance GHC.Generics.Selector Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.S1_0_0DescribeVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance GHC.Generics.Selector Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.S1_0_1DescribeVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance GHC.Generics.Selector Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.S1_0_1DescribeVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance GHC.Generics.Selector Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.S1_0_2DescribeVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance GHC.Generics.Selector Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.S1_0_2DescribeVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance GHC.Read.Read Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.DescribeVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance GHC.Read.Read Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.DescribeVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance GHC.Show.Show Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.DescribeVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance GHC.Show.Show Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.DescribeVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.DescribeVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.DescribeVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.DescribeVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.DescribeVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DescribeVPCEndpointServices: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeVPCEndpointServices.DescribeVPCEndpointServices
+ Network.AWS.EC2.DescribeVPCEndpoints: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeVPCEndpoints.DescribeVPCEndpoints
+ Network.AWS.EC2.DescribeVPCPeeringConnections: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeVPCPeeringConnections.DescribeVPCPeeringConnections
+ Network.AWS.EC2.DescribeVPCs: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeVPCs.DescribeVPCs
+ Network.AWS.EC2.DescribeVPNConnections: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeVPNConnections.DescribeVPNConnections
+ Network.AWS.EC2.DescribeVPNGateways: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeVPNGateways.DescribeVPNGateways
+ Network.AWS.EC2.DescribeVolumeAttribute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeVolumeAttribute.DescribeVolumeAttribute
+ Network.AWS.EC2.DescribeVolumeStatus: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeVolumeStatus.DescribeVolumeStatus
+ Network.AWS.EC2.DescribeVolumes: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeVolumes.DescribeVolumes
+ Network.AWS.EC2.DetachClassicLinkVPC: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DetachClassicLinkVPC.DetachClassicLinkVPC
+ Network.AWS.EC2.DetachInternetGateway: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DetachInternetGateway.DetachInternetGateway
+ Network.AWS.EC2.DetachNetworkInterface: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DetachNetworkInterface.DetachNetworkInterface
+ Network.AWS.EC2.DetachVPNGateway: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DetachVPNGateway.DetachVPNGateway
+ Network.AWS.EC2.DetachVolume: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DetachVolume.DetachVolume
+ Network.AWS.EC2.DisableVGWRoutePropagation: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DisableVGWRoutePropagation.DisableVGWRoutePropagation
+ Network.AWS.EC2.DisableVPCClassicLink: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DisableVPCClassicLink.DisableVPCClassicLink
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: data DisableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: data DisableVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: disableVPCClassicLinkDNSSupport :: DisableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: disableVPCClassicLinkDNSSupportResponse :: Int -> DisableVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: dvcldsVPCId :: Lens' DisableVPCClassicLinkDNSSupport (Maybe Text)
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: dvcldsrsResponseStatus :: Lens' DisableVPCClassicLinkDNSSupportResponse Int
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: dvcldsrsReturn :: Lens' DisableVPCClassicLinkDNSSupportResponse (Maybe Bool)
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: instance Data.Data.Data Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.DisableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: instance Data.Data.Data Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.DisableVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.DisableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: instance GHC.Classes.Eq Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.DisableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: instance GHC.Classes.Eq Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.DisableVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: instance GHC.Generics.Constructor Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.C1_0DisableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: instance GHC.Generics.Constructor Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.C1_0DisableVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: instance GHC.Generics.Datatype Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.D1DisableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: instance GHC.Generics.Datatype Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.D1DisableVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: instance GHC.Generics.Generic Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.DisableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: instance GHC.Generics.Generic Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.DisableVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: instance GHC.Generics.Selector Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.S1_0_0DisableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: instance GHC.Generics.Selector Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.S1_0_0DisableVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: instance GHC.Generics.Selector Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.S1_0_1DisableVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: instance GHC.Read.Read Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.DisableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: instance GHC.Read.Read Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.DisableVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: instance GHC.Show.Show Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.DisableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: instance GHC.Show.Show Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.DisableVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.DisableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.DisableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.DisableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DisableVPCClassicLinkDNSSupport: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.DisableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.DisassociateAddress: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DisassociateAddress.DisassociateAddress
+ Network.AWS.EC2.DisassociateRouteTable: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DisassociateRouteTable.DisassociateRouteTable
+ Network.AWS.EC2.EnableVGWRoutePropagation: instance Data.Hashable.Class.Hashable Network.AWS.EC2.EnableVGWRoutePropagation.EnableVGWRoutePropagation
+ Network.AWS.EC2.EnableVPCClassicLink: instance Data.Hashable.Class.Hashable Network.AWS.EC2.EnableVPCClassicLink.EnableVPCClassicLink
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: data EnableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: data EnableVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: enableVPCClassicLinkDNSSupport :: EnableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: enableVPCClassicLinkDNSSupportResponse :: Int -> EnableVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: evcldsVPCId :: Lens' EnableVPCClassicLinkDNSSupport (Maybe Text)
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: evcldsrsResponseStatus :: Lens' EnableVPCClassicLinkDNSSupportResponse Int
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: evcldsrsReturn :: Lens' EnableVPCClassicLinkDNSSupportResponse (Maybe Bool)
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: instance Data.Data.Data Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.EnableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: instance Data.Data.Data Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.EnableVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: instance Data.Hashable.Class.Hashable Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.EnableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: instance GHC.Classes.Eq Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.EnableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: instance GHC.Classes.Eq Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.EnableVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: instance GHC.Generics.Constructor Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.C1_0EnableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: instance GHC.Generics.Constructor Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.C1_0EnableVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: instance GHC.Generics.Datatype Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.D1EnableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: instance GHC.Generics.Datatype Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.D1EnableVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: instance GHC.Generics.Generic Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.EnableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: instance GHC.Generics.Generic Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.EnableVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: instance GHC.Generics.Selector Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.S1_0_0EnableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: instance GHC.Generics.Selector Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.S1_0_0EnableVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: instance GHC.Generics.Selector Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.S1_0_1EnableVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: instance GHC.Read.Read Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.EnableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: instance GHC.Read.Read Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.EnableVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: instance GHC.Show.Show Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.EnableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: instance GHC.Show.Show Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.EnableVPCClassicLinkDNSSupportResponse
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.EnableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.EnableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.EnableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.EnableVPCClassicLinkDNSSupport: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.EnableVPCClassicLinkDNSSupport
+ Network.AWS.EC2.EnableVolumeIO: instance Data.Hashable.Class.Hashable Network.AWS.EC2.EnableVolumeIO.EnableVolumeIO
+ Network.AWS.EC2.GetConsoleOutput: instance Data.Hashable.Class.Hashable Network.AWS.EC2.GetConsoleOutput.GetConsoleOutput
+ Network.AWS.EC2.GetPasswordData: instance Data.Hashable.Class.Hashable Network.AWS.EC2.GetPasswordData.GetPasswordData
+ Network.AWS.EC2.ImportImage: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ImportImage.ImportImage
+ Network.AWS.EC2.ImportInstance: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ImportInstance.ImportInstance
+ Network.AWS.EC2.ImportKeyPair: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ImportKeyPair.ImportKeyPair
+ Network.AWS.EC2.ImportSnapshot: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ImportSnapshot.ImportSnapshot
+ Network.AWS.EC2.ImportVolume: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ImportVolume.ImportVolume
+ Network.AWS.EC2.ModifyHosts: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifyHosts.ModifyHosts
+ Network.AWS.EC2.ModifyIdFormat: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifyIdFormat.ModifyIdFormat
+ Network.AWS.EC2.ModifyImageAttribute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifyImageAttribute.ModifyImageAttribute
+ Network.AWS.EC2.ModifyInstanceAttribute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifyInstanceAttribute.ModifyInstanceAttribute
+ Network.AWS.EC2.ModifyInstancePlacement: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifyInstancePlacement.ModifyInstancePlacement
+ Network.AWS.EC2.ModifyNetworkInterfaceAttribute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifyNetworkInterfaceAttribute.ModifyNetworkInterfaceAttribute
+ Network.AWS.EC2.ModifyReservedInstances: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifyReservedInstances.ModifyReservedInstances
+ Network.AWS.EC2.ModifySnapshotAttribute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifySnapshotAttribute.ModifySnapshotAttribute
+ Network.AWS.EC2.ModifySpotFleetRequest: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifySpotFleetRequest.ModifySpotFleetRequest
+ Network.AWS.EC2.ModifySubnetAttribute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifySubnetAttribute.ModifySubnetAttribute
+ Network.AWS.EC2.ModifyVPCAttribute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifyVPCAttribute.ModifyVPCAttribute
+ Network.AWS.EC2.ModifyVPCEndpoint: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifyVPCEndpoint.ModifyVPCEndpoint
+ Network.AWS.EC2.ModifyVolumeAttribute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifyVolumeAttribute.ModifyVolumeAttribute
+ Network.AWS.EC2.MonitorInstances: instance Data.Hashable.Class.Hashable Network.AWS.EC2.MonitorInstances.MonitorInstances
+ Network.AWS.EC2.MoveAddressToVPC: instance Data.Hashable.Class.Hashable Network.AWS.EC2.MoveAddressToVPC.MoveAddressToVPC
+ Network.AWS.EC2.PurchaseReservedInstancesOffering: instance Data.Hashable.Class.Hashable Network.AWS.EC2.PurchaseReservedInstancesOffering.PurchaseReservedInstancesOffering
+ Network.AWS.EC2.PurchaseScheduledInstances: data PurchaseScheduledInstances
+ Network.AWS.EC2.PurchaseScheduledInstances: data PurchaseScheduledInstancesResponse
+ Network.AWS.EC2.PurchaseScheduledInstances: instance Data.Data.Data Network.AWS.EC2.PurchaseScheduledInstances.PurchaseScheduledInstances
+ Network.AWS.EC2.PurchaseScheduledInstances: instance Data.Data.Data Network.AWS.EC2.PurchaseScheduledInstances.PurchaseScheduledInstancesResponse
+ Network.AWS.EC2.PurchaseScheduledInstances: instance Data.Hashable.Class.Hashable Network.AWS.EC2.PurchaseScheduledInstances.PurchaseScheduledInstances
+ Network.AWS.EC2.PurchaseScheduledInstances: instance GHC.Classes.Eq Network.AWS.EC2.PurchaseScheduledInstances.PurchaseScheduledInstances
+ Network.AWS.EC2.PurchaseScheduledInstances: instance GHC.Classes.Eq Network.AWS.EC2.PurchaseScheduledInstances.PurchaseScheduledInstancesResponse
+ Network.AWS.EC2.PurchaseScheduledInstances: instance GHC.Generics.Constructor Network.AWS.EC2.PurchaseScheduledInstances.C1_0PurchaseScheduledInstances
+ Network.AWS.EC2.PurchaseScheduledInstances: instance GHC.Generics.Constructor Network.AWS.EC2.PurchaseScheduledInstances.C1_0PurchaseScheduledInstancesResponse
+ Network.AWS.EC2.PurchaseScheduledInstances: instance GHC.Generics.Datatype Network.AWS.EC2.PurchaseScheduledInstances.D1PurchaseScheduledInstances
+ Network.AWS.EC2.PurchaseScheduledInstances: instance GHC.Generics.Datatype Network.AWS.EC2.PurchaseScheduledInstances.D1PurchaseScheduledInstancesResponse
+ Network.AWS.EC2.PurchaseScheduledInstances: instance GHC.Generics.Generic Network.AWS.EC2.PurchaseScheduledInstances.PurchaseScheduledInstances
+ Network.AWS.EC2.PurchaseScheduledInstances: instance GHC.Generics.Generic Network.AWS.EC2.PurchaseScheduledInstances.PurchaseScheduledInstancesResponse
+ Network.AWS.EC2.PurchaseScheduledInstances: instance GHC.Generics.Selector Network.AWS.EC2.PurchaseScheduledInstances.S1_0_0PurchaseScheduledInstances
+ Network.AWS.EC2.PurchaseScheduledInstances: instance GHC.Generics.Selector Network.AWS.EC2.PurchaseScheduledInstances.S1_0_0PurchaseScheduledInstancesResponse
+ Network.AWS.EC2.PurchaseScheduledInstances: instance GHC.Generics.Selector Network.AWS.EC2.PurchaseScheduledInstances.S1_0_1PurchaseScheduledInstances
+ Network.AWS.EC2.PurchaseScheduledInstances: instance GHC.Generics.Selector Network.AWS.EC2.PurchaseScheduledInstances.S1_0_1PurchaseScheduledInstancesResponse
+ Network.AWS.EC2.PurchaseScheduledInstances: instance GHC.Generics.Selector Network.AWS.EC2.PurchaseScheduledInstances.S1_0_2PurchaseScheduledInstances
+ Network.AWS.EC2.PurchaseScheduledInstances: instance GHC.Read.Read Network.AWS.EC2.PurchaseScheduledInstances.PurchaseScheduledInstances
+ Network.AWS.EC2.PurchaseScheduledInstances: instance GHC.Read.Read Network.AWS.EC2.PurchaseScheduledInstances.PurchaseScheduledInstancesResponse
+ Network.AWS.EC2.PurchaseScheduledInstances: instance GHC.Show.Show Network.AWS.EC2.PurchaseScheduledInstances.PurchaseScheduledInstances
+ Network.AWS.EC2.PurchaseScheduledInstances: instance GHC.Show.Show Network.AWS.EC2.PurchaseScheduledInstances.PurchaseScheduledInstancesResponse
+ Network.AWS.EC2.PurchaseScheduledInstances: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.PurchaseScheduledInstances.PurchaseScheduledInstances
+ Network.AWS.EC2.PurchaseScheduledInstances: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.PurchaseScheduledInstances.PurchaseScheduledInstances
+ Network.AWS.EC2.PurchaseScheduledInstances: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.PurchaseScheduledInstances.PurchaseScheduledInstances
+ Network.AWS.EC2.PurchaseScheduledInstances: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.PurchaseScheduledInstances.PurchaseScheduledInstances
+ Network.AWS.EC2.PurchaseScheduledInstances: psiClientToken :: Lens' PurchaseScheduledInstances (Maybe Text)
+ Network.AWS.EC2.PurchaseScheduledInstances: psiDryRun :: Lens' PurchaseScheduledInstances (Maybe Bool)
+ Network.AWS.EC2.PurchaseScheduledInstances: psiPurchaseRequests :: Lens' PurchaseScheduledInstances (NonEmpty PurchaseRequest)
+ Network.AWS.EC2.PurchaseScheduledInstances: psirsResponseStatus :: Lens' PurchaseScheduledInstancesResponse Int
+ Network.AWS.EC2.PurchaseScheduledInstances: psirsScheduledInstanceSet :: Lens' PurchaseScheduledInstancesResponse [ScheduledInstance]
+ Network.AWS.EC2.PurchaseScheduledInstances: purchaseScheduledInstances :: NonEmpty PurchaseRequest -> PurchaseScheduledInstances
+ Network.AWS.EC2.PurchaseScheduledInstances: purchaseScheduledInstancesResponse :: Int -> PurchaseScheduledInstancesResponse
+ Network.AWS.EC2.RebootInstances: instance Data.Hashable.Class.Hashable Network.AWS.EC2.RebootInstances.RebootInstances
+ Network.AWS.EC2.RegisterImage: instance Data.Hashable.Class.Hashable Network.AWS.EC2.RegisterImage.RegisterImage
+ Network.AWS.EC2.RejectVPCPeeringConnection: instance Data.Hashable.Class.Hashable Network.AWS.EC2.RejectVPCPeeringConnection.RejectVPCPeeringConnection
+ Network.AWS.EC2.ReleaseAddress: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ReleaseAddress.ReleaseAddress
+ Network.AWS.EC2.ReleaseHosts: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ReleaseHosts.ReleaseHosts
+ Network.AWS.EC2.ReplaceNetworkACLAssociation: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ReplaceNetworkACLAssociation.ReplaceNetworkACLAssociation
+ Network.AWS.EC2.ReplaceNetworkACLEntry: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ReplaceNetworkACLEntry.ReplaceNetworkACLEntry
+ Network.AWS.EC2.ReplaceRoute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ReplaceRoute.ReplaceRoute
+ Network.AWS.EC2.ReplaceRouteTableAssociation: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ReplaceRouteTableAssociation.ReplaceRouteTableAssociation
+ Network.AWS.EC2.ReportInstanceStatus: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ReportInstanceStatus.ReportInstanceStatus
+ Network.AWS.EC2.RequestSpotFleet: instance Data.Hashable.Class.Hashable Network.AWS.EC2.RequestSpotFleet.RequestSpotFleet
+ Network.AWS.EC2.RequestSpotInstances: instance Data.Hashable.Class.Hashable Network.AWS.EC2.RequestSpotInstances.RequestSpotInstances
+ Network.AWS.EC2.RequestSpotInstances: rsisAvailabilityZoneGroup :: Lens' RequestSpotInstances (Maybe Text)
+ Network.AWS.EC2.RequestSpotInstances: rsisBlockDurationMinutes :: Lens' RequestSpotInstances (Maybe Int)
+ Network.AWS.EC2.RequestSpotInstances: rsisClientToken :: Lens' RequestSpotInstances (Maybe Text)
+ Network.AWS.EC2.RequestSpotInstances: rsisDryRun :: Lens' RequestSpotInstances (Maybe Bool)
+ Network.AWS.EC2.RequestSpotInstances: rsisInstanceCount :: Lens' RequestSpotInstances (Maybe Int)
+ Network.AWS.EC2.RequestSpotInstances: rsisLaunchGroup :: Lens' RequestSpotInstances (Maybe Text)
+ Network.AWS.EC2.RequestSpotInstances: rsisLaunchSpecification :: Lens' RequestSpotInstances (Maybe RequestSpotLaunchSpecification)
+ Network.AWS.EC2.RequestSpotInstances: rsisSpotPrice :: Lens' RequestSpotInstances Text
+ Network.AWS.EC2.RequestSpotInstances: rsisType :: Lens' RequestSpotInstances (Maybe SpotInstanceType)
+ Network.AWS.EC2.RequestSpotInstances: rsisValidFrom :: Lens' RequestSpotInstances (Maybe UTCTime)
+ Network.AWS.EC2.RequestSpotInstances: rsisValidUntil :: Lens' RequestSpotInstances (Maybe UTCTime)
+ Network.AWS.EC2.ResetImageAttribute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ResetImageAttribute.ResetImageAttribute
+ Network.AWS.EC2.ResetInstanceAttribute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ResetInstanceAttribute.ResetInstanceAttribute
+ Network.AWS.EC2.ResetNetworkInterfaceAttribute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ResetNetworkInterfaceAttribute.ResetNetworkInterfaceAttribute
+ Network.AWS.EC2.ResetSnapshotAttribute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ResetSnapshotAttribute.ResetSnapshotAttribute
+ Network.AWS.EC2.RestoreAddressToClassic: instance Data.Hashable.Class.Hashable Network.AWS.EC2.RestoreAddressToClassic.RestoreAddressToClassic
+ Network.AWS.EC2.RevokeSecurityGroupEgress: instance Data.Hashable.Class.Hashable Network.AWS.EC2.RevokeSecurityGroupEgress.RevokeSecurityGroupEgress
+ Network.AWS.EC2.RevokeSecurityGroupIngress: instance Data.Hashable.Class.Hashable Network.AWS.EC2.RevokeSecurityGroupIngress.RevokeSecurityGroupIngress
+ Network.AWS.EC2.RunInstances: instance Data.Hashable.Class.Hashable Network.AWS.EC2.RunInstances.RunInstances
+ Network.AWS.EC2.RunScheduledInstances: data RunScheduledInstances
+ Network.AWS.EC2.RunScheduledInstances: data RunScheduledInstancesResponse
+ Network.AWS.EC2.RunScheduledInstances: instance Data.Data.Data Network.AWS.EC2.RunScheduledInstances.RunScheduledInstances
+ Network.AWS.EC2.RunScheduledInstances: instance Data.Data.Data Network.AWS.EC2.RunScheduledInstances.RunScheduledInstancesResponse
+ Network.AWS.EC2.RunScheduledInstances: instance Data.Hashable.Class.Hashable Network.AWS.EC2.RunScheduledInstances.RunScheduledInstances
+ Network.AWS.EC2.RunScheduledInstances: instance GHC.Classes.Eq Network.AWS.EC2.RunScheduledInstances.RunScheduledInstances
+ Network.AWS.EC2.RunScheduledInstances: instance GHC.Classes.Eq Network.AWS.EC2.RunScheduledInstances.RunScheduledInstancesResponse
+ Network.AWS.EC2.RunScheduledInstances: instance GHC.Generics.Constructor Network.AWS.EC2.RunScheduledInstances.C1_0RunScheduledInstances
+ Network.AWS.EC2.RunScheduledInstances: instance GHC.Generics.Constructor Network.AWS.EC2.RunScheduledInstances.C1_0RunScheduledInstancesResponse
+ Network.AWS.EC2.RunScheduledInstances: instance GHC.Generics.Datatype Network.AWS.EC2.RunScheduledInstances.D1RunScheduledInstances
+ Network.AWS.EC2.RunScheduledInstances: instance GHC.Generics.Datatype Network.AWS.EC2.RunScheduledInstances.D1RunScheduledInstancesResponse
+ Network.AWS.EC2.RunScheduledInstances: instance GHC.Generics.Generic Network.AWS.EC2.RunScheduledInstances.RunScheduledInstances
+ Network.AWS.EC2.RunScheduledInstances: instance GHC.Generics.Generic Network.AWS.EC2.RunScheduledInstances.RunScheduledInstancesResponse
+ Network.AWS.EC2.RunScheduledInstances: instance GHC.Generics.Selector Network.AWS.EC2.RunScheduledInstances.S1_0_0RunScheduledInstances
+ Network.AWS.EC2.RunScheduledInstances: instance GHC.Generics.Selector Network.AWS.EC2.RunScheduledInstances.S1_0_0RunScheduledInstancesResponse
+ Network.AWS.EC2.RunScheduledInstances: instance GHC.Generics.Selector Network.AWS.EC2.RunScheduledInstances.S1_0_1RunScheduledInstances
+ Network.AWS.EC2.RunScheduledInstances: instance GHC.Generics.Selector Network.AWS.EC2.RunScheduledInstances.S1_0_1RunScheduledInstancesResponse
+ Network.AWS.EC2.RunScheduledInstances: instance GHC.Generics.Selector Network.AWS.EC2.RunScheduledInstances.S1_0_2RunScheduledInstances
+ Network.AWS.EC2.RunScheduledInstances: instance GHC.Generics.Selector Network.AWS.EC2.RunScheduledInstances.S1_0_3RunScheduledInstances
+ Network.AWS.EC2.RunScheduledInstances: instance GHC.Generics.Selector Network.AWS.EC2.RunScheduledInstances.S1_0_4RunScheduledInstances
+ Network.AWS.EC2.RunScheduledInstances: instance GHC.Read.Read Network.AWS.EC2.RunScheduledInstances.RunScheduledInstances
+ Network.AWS.EC2.RunScheduledInstances: instance GHC.Read.Read Network.AWS.EC2.RunScheduledInstances.RunScheduledInstancesResponse
+ Network.AWS.EC2.RunScheduledInstances: instance GHC.Show.Show Network.AWS.EC2.RunScheduledInstances.RunScheduledInstances
+ Network.AWS.EC2.RunScheduledInstances: instance GHC.Show.Show Network.AWS.EC2.RunScheduledInstances.RunScheduledInstancesResponse
+ Network.AWS.EC2.RunScheduledInstances: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.RunScheduledInstances.RunScheduledInstances
+ Network.AWS.EC2.RunScheduledInstances: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.RunScheduledInstances.RunScheduledInstances
+ Network.AWS.EC2.RunScheduledInstances: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.RunScheduledInstances.RunScheduledInstances
+ Network.AWS.EC2.RunScheduledInstances: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.RunScheduledInstances.RunScheduledInstances
+ Network.AWS.EC2.RunScheduledInstances: rrsInstanceIdSet :: Lens' RunScheduledInstancesResponse [Text]
+ Network.AWS.EC2.RunScheduledInstances: rrsResponseStatus :: Lens' RunScheduledInstancesResponse Int
+ Network.AWS.EC2.RunScheduledInstances: rsiClientToken :: Lens' RunScheduledInstances (Maybe Text)
+ Network.AWS.EC2.RunScheduledInstances: rsiDryRun :: Lens' RunScheduledInstances (Maybe Bool)
+ Network.AWS.EC2.RunScheduledInstances: rsiInstanceCount :: Lens' RunScheduledInstances (Maybe Int)
+ Network.AWS.EC2.RunScheduledInstances: rsiLaunchSpecification :: Lens' RunScheduledInstances ScheduledInstancesLaunchSpecification
+ Network.AWS.EC2.RunScheduledInstances: rsiScheduledInstanceId :: Lens' RunScheduledInstances Text
+ Network.AWS.EC2.RunScheduledInstances: runScheduledInstances :: Text -> ScheduledInstancesLaunchSpecification -> RunScheduledInstances
+ Network.AWS.EC2.RunScheduledInstances: runScheduledInstancesResponse :: Int -> RunScheduledInstancesResponse
+ Network.AWS.EC2.StartInstances: instance Data.Hashable.Class.Hashable Network.AWS.EC2.StartInstances.StartInstances
+ Network.AWS.EC2.StopInstances: instance Data.Hashable.Class.Hashable Network.AWS.EC2.StopInstances.StopInstances
+ Network.AWS.EC2.TerminateInstances: instance Data.Hashable.Class.Hashable Network.AWS.EC2.TerminateInstances.TerminateInstances
+ Network.AWS.EC2.Types: AAttached :: AttachmentStatus
+ Network.AWS.EC2.Types: AAttaching :: AttachmentStatus
+ Network.AWS.EC2.Types: AAvailable :: AttachmentStatus
+ Network.AWS.EC2.Types: ABusy :: AttachmentStatus
+ Network.AWS.EC2.Types: ADetached :: AttachmentStatus
+ Network.AWS.EC2.Types: ADetaching :: AttachmentStatus
+ Network.AWS.EC2.Types: DeleteTag :: !Text -> !(Maybe Text) -> DeleteTag
+ Network.AWS.EC2.Types: G2_8XLarge :: InstanceType
+ Network.AWS.EC2.Types: Scheduled :: InstanceLifecycleType
+ Network.AWS.EC2.Types: T2_Nano :: InstanceType
+ Network.AWS.EC2.Types: VAttached :: VolumeAttachmentState
+ Network.AWS.EC2.Types: VAttaching :: VolumeAttachmentState
+ Network.AWS.EC2.Types: VBusy :: VolumeAttachmentState
+ Network.AWS.EC2.Types: VDetached :: VolumeAttachmentState
+ Network.AWS.EC2.Types: VDetaching :: VolumeAttachmentState
+ Network.AWS.EC2.Types: [_deleteTagKey] :: DeleteTag -> !Text
+ Network.AWS.EC2.Types: [_deleteTagValue] :: DeleteTag -> !(Maybe Text)
+ Network.AWS.EC2.Types: classicLinkDNSSupport :: ClassicLinkDNSSupport
+ Network.AWS.EC2.Types: cldsClassicLinkDNSSupported :: Lens' ClassicLinkDNSSupport (Maybe Bool)
+ Network.AWS.EC2.Types: cldsVPCId :: Lens' ClassicLinkDNSSupport (Maybe Text)
+ Network.AWS.EC2.Types: data ClassicLinkDNSSupport
+ Network.AWS.EC2.Types: data DeleteTag
+ Network.AWS.EC2.Types: data PurchaseRequest
+ Network.AWS.EC2.Types: data ScheduledInstance
+ Network.AWS.EC2.Types: data ScheduledInstanceAvailability
+ Network.AWS.EC2.Types: data ScheduledInstanceRecurrence
+ Network.AWS.EC2.Types: data ScheduledInstanceRecurrenceRequest
+ Network.AWS.EC2.Types: data ScheduledInstancesBlockDeviceMapping
+ Network.AWS.EC2.Types: data ScheduledInstancesEBS
+ Network.AWS.EC2.Types: data ScheduledInstancesIAMInstanceProfile
+ Network.AWS.EC2.Types: data ScheduledInstancesLaunchSpecification
+ Network.AWS.EC2.Types: data ScheduledInstancesMonitoring
+ Network.AWS.EC2.Types: data ScheduledInstancesNetworkInterface
+ Network.AWS.EC2.Types: data ScheduledInstancesPlacement
+ Network.AWS.EC2.Types: data ScheduledInstancesPrivateIPAddressConfig
+ Network.AWS.EC2.Types: data SlotDateTimeRangeRequest
+ Network.AWS.EC2.Types: data SlotStartTimeRangeRequest
+ Network.AWS.EC2.Types: deleteTag :: Text -> DeleteTag
+ Network.AWS.EC2.Types: deleteTagKey :: Lens' DeleteTag Text
+ Network.AWS.EC2.Types: deleteTagValue :: Lens' DeleteTag (Maybe Text)
+ Network.AWS.EC2.Types: ec2 :: Service
+ Network.AWS.EC2.Types: prInstanceCount :: Lens' PurchaseRequest Int
+ Network.AWS.EC2.Types: prPurchaseToken :: Lens' PurchaseRequest Text
+ Network.AWS.EC2.Types: purchaseRequest :: Text -> Int -> PurchaseRequest
+ Network.AWS.EC2.Types: scheduledInstance :: ScheduledInstance
+ Network.AWS.EC2.Types: scheduledInstanceAvailability :: ScheduledInstanceAvailability
+ Network.AWS.EC2.Types: scheduledInstanceRecurrence :: ScheduledInstanceRecurrence
+ Network.AWS.EC2.Types: scheduledInstanceRecurrenceRequest :: ScheduledInstanceRecurrenceRequest
+ Network.AWS.EC2.Types: scheduledInstancesBlockDeviceMapping :: ScheduledInstancesBlockDeviceMapping
+ Network.AWS.EC2.Types: scheduledInstancesEBS :: ScheduledInstancesEBS
+ Network.AWS.EC2.Types: scheduledInstancesIAMInstanceProfile :: ScheduledInstancesIAMInstanceProfile
+ Network.AWS.EC2.Types: scheduledInstancesLaunchSpecification :: Text -> ScheduledInstancesLaunchSpecification
+ Network.AWS.EC2.Types: scheduledInstancesMonitoring :: ScheduledInstancesMonitoring
+ Network.AWS.EC2.Types: scheduledInstancesNetworkInterface :: ScheduledInstancesNetworkInterface
+ Network.AWS.EC2.Types: scheduledInstancesPlacement :: ScheduledInstancesPlacement
+ Network.AWS.EC2.Types: scheduledInstancesPrivateIPAddressConfig :: ScheduledInstancesPrivateIPAddressConfig
+ Network.AWS.EC2.Types: sdtrrEarliestTime :: Lens' SlotDateTimeRangeRequest UTCTime
+ Network.AWS.EC2.Types: sdtrrLatestTime :: Lens' SlotDateTimeRangeRequest UTCTime
+ Network.AWS.EC2.Types: siAvailabilityZone :: Lens' ScheduledInstance (Maybe Text)
+ Network.AWS.EC2.Types: siCreateDate :: Lens' ScheduledInstance (Maybe UTCTime)
+ Network.AWS.EC2.Types: siHourlyPrice :: Lens' ScheduledInstance (Maybe Text)
+ Network.AWS.EC2.Types: siInstanceCount :: Lens' ScheduledInstance (Maybe Int)
+ Network.AWS.EC2.Types: siInstanceType :: Lens' ScheduledInstance (Maybe Text)
+ Network.AWS.EC2.Types: siNetworkPlatform :: Lens' ScheduledInstance (Maybe Text)
+ Network.AWS.EC2.Types: siNextSlotStartTime :: Lens' ScheduledInstance (Maybe UTCTime)
+ Network.AWS.EC2.Types: siPlatform :: Lens' ScheduledInstance (Maybe Text)
+ Network.AWS.EC2.Types: siPreviousSlotEndTime :: Lens' ScheduledInstance (Maybe UTCTime)
+ Network.AWS.EC2.Types: siRecurrence :: Lens' ScheduledInstance (Maybe ScheduledInstanceRecurrence)
+ Network.AWS.EC2.Types: siScheduledInstanceId :: Lens' ScheduledInstance (Maybe Text)
+ Network.AWS.EC2.Types: siSlotDurationInHours :: Lens' ScheduledInstance (Maybe Int)
+ Network.AWS.EC2.Types: siTermEndDate :: Lens' ScheduledInstance (Maybe UTCTime)
+ Network.AWS.EC2.Types: siTermStartDate :: Lens' ScheduledInstance (Maybe UTCTime)
+ Network.AWS.EC2.Types: siTotalScheduledInstanceHours :: Lens' ScheduledInstance (Maybe Int)
+ Network.AWS.EC2.Types: siaAvailabilityZone :: Lens' ScheduledInstanceAvailability (Maybe Text)
+ Network.AWS.EC2.Types: siaAvailableInstanceCount :: Lens' ScheduledInstanceAvailability (Maybe Int)
+ Network.AWS.EC2.Types: siaFirstSlotStartTime :: Lens' ScheduledInstanceAvailability (Maybe UTCTime)
+ Network.AWS.EC2.Types: siaHourlyPrice :: Lens' ScheduledInstanceAvailability (Maybe Text)
+ Network.AWS.EC2.Types: siaInstanceType :: Lens' ScheduledInstanceAvailability (Maybe Text)
+ Network.AWS.EC2.Types: siaMaxTermDurationInDays :: Lens' ScheduledInstanceAvailability (Maybe Int)
+ Network.AWS.EC2.Types: siaMinTermDurationInDays :: Lens' ScheduledInstanceAvailability (Maybe Int)
+ Network.AWS.EC2.Types: siaNetworkPlatform :: Lens' ScheduledInstanceAvailability (Maybe Text)
+ Network.AWS.EC2.Types: siaPlatform :: Lens' ScheduledInstanceAvailability (Maybe Text)
+ Network.AWS.EC2.Types: siaPurchaseToken :: Lens' ScheduledInstanceAvailability (Maybe Text)
+ Network.AWS.EC2.Types: siaRecurrence :: Lens' ScheduledInstanceAvailability (Maybe ScheduledInstanceRecurrence)
+ Network.AWS.EC2.Types: siaSlotDurationInHours :: Lens' ScheduledInstanceAvailability (Maybe Int)
+ Network.AWS.EC2.Types: siaTotalScheduledInstanceHours :: Lens' ScheduledInstanceAvailability (Maybe Int)
+ Network.AWS.EC2.Types: sibdmDeviceName :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe Text)
+ Network.AWS.EC2.Types: sibdmEBS :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe ScheduledInstancesEBS)
+ Network.AWS.EC2.Types: sibdmNoDevice :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe Text)
+ Network.AWS.EC2.Types: sibdmVirtualName :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe Text)
+ Network.AWS.EC2.Types: sieDeleteOnTermination :: Lens' ScheduledInstancesEBS (Maybe Bool)
+ Network.AWS.EC2.Types: sieEncrypted :: Lens' ScheduledInstancesEBS (Maybe Bool)
+ Network.AWS.EC2.Types: sieIOPS :: Lens' ScheduledInstancesEBS (Maybe Int)
+ Network.AWS.EC2.Types: sieSnapshotId :: Lens' ScheduledInstancesEBS (Maybe Text)
+ Network.AWS.EC2.Types: sieVolumeSize :: Lens' ScheduledInstancesEBS (Maybe Int)
+ Network.AWS.EC2.Types: sieVolumeType :: Lens' ScheduledInstancesEBS (Maybe Text)
+ Network.AWS.EC2.Types: siiapARN :: Lens' ScheduledInstancesIAMInstanceProfile (Maybe Text)
+ Network.AWS.EC2.Types: siiapName :: Lens' ScheduledInstancesIAMInstanceProfile (Maybe Text)
+ Network.AWS.EC2.Types: silsBlockDeviceMappings :: Lens' ScheduledInstancesLaunchSpecification [ScheduledInstancesBlockDeviceMapping]
+ Network.AWS.EC2.Types: silsEBSOptimized :: Lens' ScheduledInstancesLaunchSpecification (Maybe Bool)
+ Network.AWS.EC2.Types: silsIAMInstanceProfile :: Lens' ScheduledInstancesLaunchSpecification (Maybe ScheduledInstancesIAMInstanceProfile)
+ Network.AWS.EC2.Types: silsImageId :: Lens' ScheduledInstancesLaunchSpecification Text
+ Network.AWS.EC2.Types: silsInstanceType :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)
+ Network.AWS.EC2.Types: silsKernelId :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)
+ Network.AWS.EC2.Types: silsKeyName :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)
+ Network.AWS.EC2.Types: silsMonitoring :: Lens' ScheduledInstancesLaunchSpecification (Maybe ScheduledInstancesMonitoring)
+ Network.AWS.EC2.Types: silsNetworkInterfaces :: Lens' ScheduledInstancesLaunchSpecification [ScheduledInstancesNetworkInterface]
+ Network.AWS.EC2.Types: silsPlacement :: Lens' ScheduledInstancesLaunchSpecification (Maybe ScheduledInstancesPlacement)
+ Network.AWS.EC2.Types: silsRAMDiskId :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)
+ Network.AWS.EC2.Types: silsSecurityGroupIds :: Lens' ScheduledInstancesLaunchSpecification [Text]
+ Network.AWS.EC2.Types: silsSubnetId :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)
+ Network.AWS.EC2.Types: silsUserData :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)
+ Network.AWS.EC2.Types: simEnabled :: Lens' ScheduledInstancesMonitoring (Maybe Bool)
+ Network.AWS.EC2.Types: siniAssociatePublicIPAddress :: Lens' ScheduledInstancesNetworkInterface (Maybe Bool)
+ Network.AWS.EC2.Types: siniDeleteOnTermination :: Lens' ScheduledInstancesNetworkInterface (Maybe Bool)
+ Network.AWS.EC2.Types: siniDescription :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)
+ Network.AWS.EC2.Types: siniDeviceIndex :: Lens' ScheduledInstancesNetworkInterface (Maybe Int)
+ Network.AWS.EC2.Types: siniGroups :: Lens' ScheduledInstancesNetworkInterface [Text]
+ Network.AWS.EC2.Types: siniNetworkInterfaceId :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)
+ Network.AWS.EC2.Types: siniPrivateIPAddress :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)
+ Network.AWS.EC2.Types: siniPrivateIPAddressConfigs :: Lens' ScheduledInstancesNetworkInterface [ScheduledInstancesPrivateIPAddressConfig]
+ Network.AWS.EC2.Types: siniSecondaryPrivateIPAddressCount :: Lens' ScheduledInstancesNetworkInterface (Maybe Int)
+ Network.AWS.EC2.Types: siniSubnetId :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)
+ Network.AWS.EC2.Types: sipAvailabilityZone :: Lens' ScheduledInstancesPlacement (Maybe Text)
+ Network.AWS.EC2.Types: sipGroupName :: Lens' ScheduledInstancesPlacement (Maybe Text)
+ Network.AWS.EC2.Types: sipiacPrimary :: Lens' ScheduledInstancesPrivateIPAddressConfig (Maybe Bool)
+ Network.AWS.EC2.Types: sipiacPrivateIPAddress :: Lens' ScheduledInstancesPrivateIPAddressConfig (Maybe Text)
+ Network.AWS.EC2.Types: sirFrequency :: Lens' ScheduledInstanceRecurrence (Maybe Text)
+ Network.AWS.EC2.Types: sirInterval :: Lens' ScheduledInstanceRecurrence (Maybe Int)
+ Network.AWS.EC2.Types: sirOccurrenceDaySet :: Lens' ScheduledInstanceRecurrence [Int]
+ Network.AWS.EC2.Types: sirOccurrenceRelativeToEnd :: Lens' ScheduledInstanceRecurrence (Maybe Bool)
+ Network.AWS.EC2.Types: sirOccurrenceUnit :: Lens' ScheduledInstanceRecurrence (Maybe Text)
+ Network.AWS.EC2.Types: sirrFrequency :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Text)
+ Network.AWS.EC2.Types: sirrInterval :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Int)
+ Network.AWS.EC2.Types: sirrOccurrenceDays :: Lens' ScheduledInstanceRecurrenceRequest [Int]
+ Network.AWS.EC2.Types: sirrOccurrenceRelativeToEnd :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Bool)
+ Network.AWS.EC2.Types: sirrOccurrenceUnit :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Text)
+ Network.AWS.EC2.Types: slotDateTimeRangeRequest :: UTCTime -> UTCTime -> SlotDateTimeRangeRequest
+ Network.AWS.EC2.Types: slotStartTimeRangeRequest :: SlotStartTimeRangeRequest
+ Network.AWS.EC2.Types: sstrrEarliestTime :: Lens' SlotStartTimeRangeRequest (Maybe UTCTime)
+ Network.AWS.EC2.Types: sstrrLatestTime :: Lens' SlotStartTimeRangeRequest (Maybe UTCTime)
+ Network.AWS.EC2.Types: uigpPeeringStatus :: Lens' UserIdGroupPair (Maybe Text)
+ Network.AWS.EC2.Types: uigpVPCId :: Lens' UserIdGroupPair (Maybe Text)
+ Network.AWS.EC2.Types: uigpVPCPeeringConnectionId :: Lens' UserIdGroupPair (Maybe Text)
+ Network.AWS.EC2.UnassignPrivateIPAddresses: instance Data.Hashable.Class.Hashable Network.AWS.EC2.UnassignPrivateIPAddresses.UnassignPrivateIPAddresses
+ Network.AWS.EC2.UnmonitorInstances: instance Data.Hashable.Class.Hashable Network.AWS.EC2.UnmonitorInstances.UnmonitorInstances
+ Network.AWS.EC2.Waiters: natGatewayAvailable :: Wait DescribeNatGateways
+ Network.AWS.EC2.Waiters: networkInterfaceAvailable :: Wait DescribeNetworkInterfaces
+ Network.AWS.EC2.Waiters: vpcPeeringConnectionExists :: Wait DescribeVPCPeeringConnections

Files

README.md view
@@ -8,7 +8,7 @@  ## Version -`1.3.7`+`1.4.0`   ## Description@@ -21,7 +21,7 @@ and deploy applications faster.  Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-ec2)-and the [AWS API Reference](http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Welcome.html).+and the [AWS API Reference](https://aws.amazon.com/documentation/).  The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka), which provides mechanisms for specifying AuthN/AuthZ information and sending requests.
amazonka-ec2.cabal view
@@ -1,5 +1,5 @@ name:                  amazonka-ec2-version:               1.3.7+version:               1.4.0 synopsis:              Amazon Elastic Compute Cloud SDK. homepage:              https://github.com/brendanhay/amazonka bug-reports:           https://github.com/brendanhay/amazonka/issues@@ -7,7 +7,7 @@ license-file:          LICENSE author:                Brendan Hay maintainer:            Brendan Hay <brendan.g.hay@gmail.com>-copyright:             Copyright (c) 2013-2015 Brendan Hay+copyright:             Copyright (c) 2013-2016 Brendan Hay category:              Network, AWS, Cloud, Distributed Computing build-type:            Simple cabal-version:         >= 1.10@@ -31,7 +31,7 @@     such as <http://hackage.haskell.org/package/lens lens> or     <http://hackage.haskell.org/package/lens-family-core lens-family-core>.     .-    See "Network.AWS.EC2" and the <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Welcome.html AWS API Reference>+    See "Network.AWS.EC2" or <https://aws.amazon.com/documentation/ the AWS Documentation>     to get started.  source-repository head@@ -157,6 +157,8 @@         , Network.AWS.EC2.DescribeReservedInstancesModifications         , Network.AWS.EC2.DescribeReservedInstancesOfferings         , Network.AWS.EC2.DescribeRouteTables+        , Network.AWS.EC2.DescribeScheduledInstanceAvailability+        , Network.AWS.EC2.DescribeScheduledInstances         , Network.AWS.EC2.DescribeSecurityGroups         , Network.AWS.EC2.DescribeSnapshotAttribute         , Network.AWS.EC2.DescribeSnapshots@@ -170,6 +172,7 @@         , Network.AWS.EC2.DescribeTags         , Network.AWS.EC2.DescribeVPCAttribute         , Network.AWS.EC2.DescribeVPCClassicLink+        , Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport         , Network.AWS.EC2.DescribeVPCEndpointServices         , Network.AWS.EC2.DescribeVPCEndpoints         , Network.AWS.EC2.DescribeVPCPeeringConnections@@ -186,10 +189,12 @@         , Network.AWS.EC2.DetachVolume         , Network.AWS.EC2.DisableVGWRoutePropagation         , Network.AWS.EC2.DisableVPCClassicLink+        , Network.AWS.EC2.DisableVPCClassicLinkDNSSupport         , Network.AWS.EC2.DisassociateAddress         , Network.AWS.EC2.DisassociateRouteTable         , Network.AWS.EC2.EnableVGWRoutePropagation         , Network.AWS.EC2.EnableVPCClassicLink+        , Network.AWS.EC2.EnableVPCClassicLinkDNSSupport         , Network.AWS.EC2.EnableVolumeIO         , Network.AWS.EC2.GetConsoleOutput         , Network.AWS.EC2.GetPasswordData@@ -214,6 +219,7 @@         , Network.AWS.EC2.MonitorInstances         , Network.AWS.EC2.MoveAddressToVPC         , Network.AWS.EC2.PurchaseReservedInstancesOffering+        , Network.AWS.EC2.PurchaseScheduledInstances         , Network.AWS.EC2.RebootInstances         , Network.AWS.EC2.RegisterImage         , Network.AWS.EC2.RejectVPCPeeringConnection@@ -234,6 +240,7 @@         , Network.AWS.EC2.RevokeSecurityGroupEgress         , Network.AWS.EC2.RevokeSecurityGroupIngress         , Network.AWS.EC2.RunInstances+        , Network.AWS.EC2.RunScheduledInstances         , Network.AWS.EC2.StartInstances         , Network.AWS.EC2.StopInstances         , Network.AWS.EC2.TerminateInstances@@ -243,11 +250,12 @@         , Network.AWS.EC2.Waiters      other-modules:-          Network.AWS.EC2.Types.Product+          Network.AWS.EC2.Internal+        , Network.AWS.EC2.Types.Product         , Network.AWS.EC2.Types.Sum      build-depends:-          amazonka-core == 1.3.7.*+          amazonka-core == 1.4.0.*         , base          >= 4.7     && < 5  test-suite amazonka-ec2-test@@ -267,9 +275,9 @@         , Test.AWS.EC2.Internal      build-depends:-          amazonka-core == 1.3.7.*-        , amazonka-test == 1.3.7.*-        , amazonka-ec2 == 1.3.7.*+          amazonka-core == 1.4.0.*+        , amazonka-test == 1.4.0.*+        , amazonka-ec2 == 1.4.0.*         , base         , bytestring         , tasty
+ fixture/DescribeScheduledInstanceAvailability.yaml view
+ fixture/DescribeScheduledInstanceAvailabilityResponse.proto view
+ fixture/DescribeScheduledInstances.yaml view
+ fixture/DescribeScheduledInstancesResponse.proto view
+ fixture/DescribeVPCClassicLinkDNSSupport.yaml view
+ fixture/DescribeVPCClassicLinkDNSSupportResponse.proto view
+ fixture/DisableVPCClassicLinkDNSSupport.yaml view
+ fixture/DisableVPCClassicLinkDNSSupportResponse.proto view
+ fixture/EnableVPCClassicLinkDNSSupport.yaml view
+ fixture/EnableVPCClassicLinkDNSSupportResponse.proto view
+ fixture/PurchaseScheduledInstances.yaml view
+ fixture/PurchaseScheduledInstancesResponse.proto view
+ fixture/RunScheduledInstances.yaml view
+ fixture/RunScheduledInstancesResponse.proto view
gen/Network/AWS/EC2.hs view
@@ -5,7 +5,7 @@  -- | -- Module      : Network.AWS.EC2--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -17,12 +17,10 @@ -- capacity in the Amazon Web Services (AWS) cloud. Using Amazon EC2 -- eliminates your need to invest in hardware up front, so you can develop -- and deploy applications faster.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Welcome.html AWS API Reference> module Network.AWS.EC2     (     -- * Service Configuration-      eC2+      ec2      -- * Errors     -- $errors@@ -36,9 +34,15 @@     -- ** VolumeInUse     , volumeInUse +    -- ** NatGatewayAvailable+    , natGatewayAvailable+     -- ** SubnetAvailable     , subnetAvailable +    -- ** NetworkInterfaceAvailable+    , networkInterfaceAvailable+     -- ** SystemStatusOK     , systemStatusOK @@ -90,6 +94,9 @@     -- ** ImageAvailable     , imageAvailable +    -- ** VPCPeeringConnectionExists+    , vpcPeeringConnectionExists+     -- ** SnapshotCompleted     , snapshotCompleted @@ -174,6 +181,12 @@     -- ** AttachClassicLinkVPC     , module Network.AWS.EC2.AttachClassicLinkVPC +    -- ** DescribeVPCClassicLinkDNSSupport+    , module Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport++    -- ** RunScheduledInstances+    , module Network.AWS.EC2.RunScheduledInstances+     -- ** CancelSpotFleetRequests     , module Network.AWS.EC2.CancelSpotFleetRequests @@ -312,6 +325,9 @@     -- ** DescribeConversionTasks     , module Network.AWS.EC2.DescribeConversionTasks +    -- ** DisableVPCClassicLinkDNSSupport+    , module Network.AWS.EC2.DisableVPCClassicLinkDNSSupport+     -- ** AllocateAddress     , module Network.AWS.EC2.AllocateAddress @@ -354,9 +370,15 @@     -- ** RevokeSecurityGroupIngress     , module Network.AWS.EC2.RevokeSecurityGroupIngress +    -- ** EnableVPCClassicLinkDNSSupport+    , module Network.AWS.EC2.EnableVPCClassicLinkDNSSupport+     -- ** ModifyReservedInstances     , module Network.AWS.EC2.ModifyReservedInstances +    -- ** DescribeScheduledInstances+    , module Network.AWS.EC2.DescribeScheduledInstances+     -- ** CreateFlowLogs     , module Network.AWS.EC2.CreateFlowLogs @@ -405,6 +427,9 @@     -- ** CreateVolume     , module Network.AWS.EC2.CreateVolume +    -- ** DescribeScheduledInstanceAvailability+    , module Network.AWS.EC2.DescribeScheduledInstanceAvailability+     -- ** ModifyVolumeAttribute     , module Network.AWS.EC2.ModifyVolumeAttribute @@ -552,6 +577,9 @@     -- ** DescribePlacementGroups     , module Network.AWS.EC2.DescribePlacementGroups +    -- ** PurchaseScheduledInstances+    , module Network.AWS.EC2.PurchaseScheduledInstances+     -- ** EnableVGWRoutePropagation     , module Network.AWS.EC2.EnableVGWRoutePropagation @@ -686,6 +714,9 @@      -- * Types +    -- ** Re-exported Types+    , module Network.AWS.EC2.Internal+     -- ** AccountAttributeName     , AccountAttributeName (..) @@ -1059,6 +1090,12 @@     , csirState     , csirSpotInstanceRequestId +    -- ** ClassicLinkDNSSupport+    , ClassicLinkDNSSupport+    , classicLinkDNSSupport+    , cldsVPCId+    , cldsClassicLinkDNSSupported+     -- ** ClassicLinkInstance     , ClassicLinkInstance     , classicLinkInstance@@ -1832,6 +1869,12 @@     , propagatingVGW     , pvGatewayId +    -- ** PurchaseRequest+    , PurchaseRequest+    , purchaseRequest+    , prPurchaseToken+    , prInstanceCount+     -- ** RecurringCharge     , RecurringCharge     , recurringCharge@@ -2008,6 +2051,133 @@     , ssUploadPolicySignature     , ssAWSAccessKeyId +    -- ** ScheduledInstance+    , ScheduledInstance+    , scheduledInstance+    , siPreviousSlotEndTime+    , siPlatform+    , siTermStartDate+    , siInstanceCount+    , siScheduledInstanceId+    , siHourlyPrice+    , siCreateDate+    , siSlotDurationInHours+    , siTotalScheduledInstanceHours+    , siInstanceType+    , siRecurrence+    , siAvailabilityZone+    , siTermEndDate+    , siNextSlotStartTime+    , siNetworkPlatform++    -- ** ScheduledInstanceAvailability+    , ScheduledInstanceAvailability+    , scheduledInstanceAvailability+    , siaMaxTermDurationInDays+    , siaPlatform+    , siaPurchaseToken+    , siaHourlyPrice+    , siaAvailableInstanceCount+    , siaSlotDurationInHours+    , siaTotalScheduledInstanceHours+    , siaInstanceType+    , siaRecurrence+    , siaAvailabilityZone+    , siaMinTermDurationInDays+    , siaFirstSlotStartTime+    , siaNetworkPlatform++    -- ** ScheduledInstanceRecurrence+    , ScheduledInstanceRecurrence+    , scheduledInstanceRecurrence+    , sirFrequency+    , sirOccurrenceRelativeToEnd+    , sirOccurrenceUnit+    , sirInterval+    , sirOccurrenceDaySet++    -- ** ScheduledInstanceRecurrenceRequest+    , ScheduledInstanceRecurrenceRequest+    , scheduledInstanceRecurrenceRequest+    , sirrFrequency+    , sirrOccurrenceRelativeToEnd+    , sirrOccurrenceDays+    , sirrOccurrenceUnit+    , sirrInterval++    -- ** ScheduledInstancesBlockDeviceMapping+    , ScheduledInstancesBlockDeviceMapping+    , scheduledInstancesBlockDeviceMapping+    , sibdmVirtualName+    , sibdmNoDevice+    , sibdmEBS+    , sibdmDeviceName++    -- ** ScheduledInstancesEBS+    , ScheduledInstancesEBS+    , scheduledInstancesEBS+    , sieDeleteOnTermination+    , sieVolumeSize+    , sieIOPS+    , sieEncrypted+    , sieVolumeType+    , sieSnapshotId++    -- ** ScheduledInstancesIAMInstanceProfile+    , ScheduledInstancesIAMInstanceProfile+    , scheduledInstancesIAMInstanceProfile+    , siiapARN+    , siiapName++    -- ** ScheduledInstancesLaunchSpecification+    , ScheduledInstancesLaunchSpecification+    , scheduledInstancesLaunchSpecification+    , silsSecurityGroupIds+    , silsKeyName+    , silsNetworkInterfaces+    , silsRAMDiskId+    , silsSubnetId+    , silsKernelId+    , silsInstanceType+    , silsEBSOptimized+    , silsUserData+    , silsMonitoring+    , silsIAMInstanceProfile+    , silsBlockDeviceMappings+    , silsPlacement+    , silsImageId++    -- ** ScheduledInstancesMonitoring+    , ScheduledInstancesMonitoring+    , scheduledInstancesMonitoring+    , simEnabled++    -- ** ScheduledInstancesNetworkInterface+    , ScheduledInstancesNetworkInterface+    , scheduledInstancesNetworkInterface+    , siniGroups+    , siniDeleteOnTermination+    , siniAssociatePublicIPAddress+    , siniPrivateIPAddressConfigs+    , siniNetworkInterfaceId+    , siniSubnetId+    , siniPrivateIPAddress+    , siniSecondaryPrivateIPAddressCount+    , siniDescription+    , siniDeviceIndex++    -- ** ScheduledInstancesPlacement+    , ScheduledInstancesPlacement+    , scheduledInstancesPlacement+    , sipAvailabilityZone+    , sipGroupName++    -- ** ScheduledInstancesPrivateIPAddressConfig+    , ScheduledInstancesPrivateIPAddressConfig+    , scheduledInstancesPrivateIPAddressConfig+    , sipiacPrimary+    , sipiacPrivateIPAddress+     -- ** SecurityGroup     , SecurityGroup     , securityGroup@@ -2020,6 +2190,18 @@     , sgGroupName     , sgDescription +    -- ** SlotDateTimeRangeRequest+    , SlotDateTimeRangeRequest+    , slotDateTimeRangeRequest+    , sdtrrEarliestTime+    , sdtrrLatestTime++    -- ** SlotStartTimeRangeRequest+    , SlotStartTimeRangeRequest+    , slotStartTimeRangeRequest+    , sstrrLatestTime+    , sstrrEarliestTime+     -- ** Snapshot     , Snapshot     , snapshot@@ -2250,9 +2432,12 @@     -- ** UserIdGroupPair     , UserIdGroupPair     , userIdGroupPair+    , uigpVPCPeeringConnectionId+    , uigpVPCId     , uigpUserId     , uigpGroupId     , uigpGroupName+    , uigpPeeringStatus      -- ** VGWTelemetry     , VGWTelemetry@@ -2543,6 +2728,8 @@ import           Network.AWS.EC2.DescribeReservedInstancesModifications import           Network.AWS.EC2.DescribeReservedInstancesOfferings import           Network.AWS.EC2.DescribeRouteTables+import           Network.AWS.EC2.DescribeScheduledInstanceAvailability+import           Network.AWS.EC2.DescribeScheduledInstances import           Network.AWS.EC2.DescribeSecurityGroups import           Network.AWS.EC2.DescribeSnapshotAttribute import           Network.AWS.EC2.DescribeSnapshots@@ -2559,6 +2746,7 @@ import           Network.AWS.EC2.DescribeVolumeStatus import           Network.AWS.EC2.DescribeVPCAttribute import           Network.AWS.EC2.DescribeVPCClassicLink+import           Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport import           Network.AWS.EC2.DescribeVPCEndpoints import           Network.AWS.EC2.DescribeVPCEndpointServices import           Network.AWS.EC2.DescribeVPCPeeringConnections@@ -2572,11 +2760,13 @@ import           Network.AWS.EC2.DetachVPNGateway import           Network.AWS.EC2.DisableVGWRoutePropagation import           Network.AWS.EC2.DisableVPCClassicLink+import           Network.AWS.EC2.DisableVPCClassicLinkDNSSupport import           Network.AWS.EC2.DisassociateAddress import           Network.AWS.EC2.DisassociateRouteTable import           Network.AWS.EC2.EnableVGWRoutePropagation import           Network.AWS.EC2.EnableVolumeIO import           Network.AWS.EC2.EnableVPCClassicLink+import           Network.AWS.EC2.EnableVPCClassicLinkDNSSupport import           Network.AWS.EC2.GetConsoleOutput import           Network.AWS.EC2.GetPasswordData import           Network.AWS.EC2.ImportImage@@ -2584,6 +2774,7 @@ import           Network.AWS.EC2.ImportKeyPair import           Network.AWS.EC2.ImportSnapshot import           Network.AWS.EC2.ImportVolume+import           Network.AWS.EC2.Internal import           Network.AWS.EC2.ModifyHosts import           Network.AWS.EC2.ModifyIdFormat import           Network.AWS.EC2.ModifyImageAttribute@@ -2600,6 +2791,7 @@ import           Network.AWS.EC2.MonitorInstances import           Network.AWS.EC2.MoveAddressToVPC import           Network.AWS.EC2.PurchaseReservedInstancesOffering+import           Network.AWS.EC2.PurchaseScheduledInstances import           Network.AWS.EC2.RebootInstances import           Network.AWS.EC2.RegisterImage import           Network.AWS.EC2.RejectVPCPeeringConnection@@ -2620,6 +2812,7 @@ import           Network.AWS.EC2.RevokeSecurityGroupEgress import           Network.AWS.EC2.RevokeSecurityGroupIngress import           Network.AWS.EC2.RunInstances+import           Network.AWS.EC2.RunScheduledInstances import           Network.AWS.EC2.StartInstances import           Network.AWS.EC2.StopInstances import           Network.AWS.EC2.TerminateInstances
gen/Network/AWS/EC2/AcceptVPCPeeringConnection.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.AcceptVPCPeeringConnection--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -23,8 +23,6 @@ -- must be the owner of the peer VPC. Use the -- 'DescribeVpcPeeringConnections' request to view your outstanding VPC -- peering connection requests.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-AcceptVPCPeeringConnection.html AWS API Reference> for AcceptVPCPeeringConnection. module Network.AWS.EC2.AcceptVPCPeeringConnection     (     -- * Creating a Request@@ -84,13 +82,15 @@ instance AWSRequest AcceptVPCPeeringConnection where         type Rs AcceptVPCPeeringConnection =              AcceptVPCPeeringConnectionResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  AcceptVPCPeeringConnectionResponse' <$>                    (x .@? "vpcPeeringConnection") <*>                      (pure (fromEnum s)))++instance Hashable AcceptVPCPeeringConnection  instance ToHeaders AcceptVPCPeeringConnection where         toHeaders = const mempty
gen/Network/AWS/EC2/AllocateAddress.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.AllocateAddress--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -24,8 +24,6 @@ -- in a VPC. For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html Elastic IP Addresses> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-AllocateAddress.html AWS API Reference> for AllocateAddress. module Network.AWS.EC2.AllocateAddress     (     -- * Creating a Request@@ -88,7 +86,7 @@  instance AWSRequest AllocateAddress where         type Rs AllocateAddress = AllocateAddressResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -96,6 +94,8 @@                    (x .@? "allocationId") <*> (x .@? "domain") <*>                      (x .@? "publicIp")                      <*> (pure (fromEnum s)))++instance Hashable AllocateAddress  instance ToHeaders AllocateAddress where         toHeaders = const mempty
gen/Network/AWS/EC2/AllocateHosts.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.AllocateHosts--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -21,8 +21,6 @@ -- Allocates a Dedicated host to your account. At minimum you need to -- specify the instance size type, Availability Zone, and quantity of hosts -- you want to allocate.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-AllocateHosts.html AWS API Reference> for AllocateHosts. module Network.AWS.EC2.AllocateHosts     (     -- * Creating a Request@@ -118,7 +116,7 @@  instance AWSRequest AllocateHosts where         type Rs AllocateHosts = AllocateHostsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -126,6 +124,8 @@                    (x .@? "hostIdSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable AllocateHosts  instance ToHeaders AllocateHosts where         toHeaders = const mempty
gen/Network/AWS/EC2/AssignPrivateIPAddresses.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.AssignPrivateIPAddresses--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -31,8 +31,6 @@ -- in the /Amazon Elastic Compute Cloud User Guide/. -- -- AssignPrivateIpAddresses is available only in EC2-VPC.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-AssignPrivateIPAddresses.html AWS API Reference> for AssignPrivateIPAddresses. module Network.AWS.EC2.AssignPrivateIPAddresses     (     -- * Creating a Request@@ -114,9 +112,11 @@ instance AWSRequest AssignPrivateIPAddresses where         type Rs AssignPrivateIPAddresses =              AssignPrivateIPAddressesResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveNull AssignPrivateIPAddressesResponse'++instance Hashable AssignPrivateIPAddresses  instance ToHeaders AssignPrivateIPAddresses where         toHeaders = const mempty
gen/Network/AWS/EC2/AssociateAddress.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.AssociateAddress--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -38,8 +38,6 @@ -- -- This is an idempotent operation. If you perform the operation more than -- once, Amazon EC2 doesn\'t return an error.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-AssociateAddress.html AWS API Reference> for AssociateAddress. module Network.AWS.EC2.AssociateAddress     (     -- * Creating a Request@@ -155,12 +153,14 @@  instance AWSRequest AssociateAddress where         type Rs AssociateAddress = AssociateAddressResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  AssociateAddressResponse' <$>                    (x .@? "associationId") <*> (pure (fromEnum s)))++instance Hashable AssociateAddress  instance ToHeaders AssociateAddress where         toHeaders = const mempty
gen/Network/AWS/EC2/AssociateDHCPOptions.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.AssociateDHCPOptions--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -31,8 +31,6 @@ -- For more information, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html DHCP Options Sets> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-AssociateDHCPOptions.html AWS API Reference> for AssociateDHCPOptions. module Network.AWS.EC2.AssociateDHCPOptions     (     -- * Creating a Request@@ -101,8 +99,10 @@ instance AWSRequest AssociateDHCPOptions where         type Rs AssociateDHCPOptions =              AssociateDHCPOptionsResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull AssociateDHCPOptionsResponse'++instance Hashable AssociateDHCPOptions  instance ToHeaders AssociateDHCPOptions where         toHeaders = const mempty
gen/Network/AWS/EC2/AssociateRouteTable.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.AssociateRouteTable--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -28,8 +28,6 @@ -- For more information about route tables, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html Route Tables> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-AssociateRouteTable.html AWS API Reference> for AssociateRouteTable. module Network.AWS.EC2.AssociateRouteTable     (     -- * Creating a Request@@ -100,12 +98,14 @@ instance AWSRequest AssociateRouteTable where         type Rs AssociateRouteTable =              AssociateRouteTableResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  AssociateRouteTableResponse' <$>                    (x .@? "associationId") <*> (pure (fromEnum s)))++instance Hashable AssociateRouteTable  instance ToHeaders AssociateRouteTable where         toHeaders = const mempty
gen/Network/AWS/EC2/AttachClassicLinkVPC.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.AttachClassicLinkVPC--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -31,8 +31,6 @@ -- -- Linking your instance to a VPC is sometimes referred to as /attaching/ -- your instance.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-AttachClassicLinkVPC.html AWS API Reference> for AttachClassicLinkVPC. module Network.AWS.EC2.AttachClassicLinkVPC     (     -- * Creating a Request@@ -114,12 +112,14 @@ instance AWSRequest AttachClassicLinkVPC where         type Rs AttachClassicLinkVPC =              AttachClassicLinkVPCResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  AttachClassicLinkVPCResponse' <$>                    (x .@? "return") <*> (pure (fromEnum s)))++instance Hashable AttachClassicLinkVPC  instance ToHeaders AttachClassicLinkVPC where         toHeaders = const mempty
gen/Network/AWS/EC2/AttachInternetGateway.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.AttachInternetGateway--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -22,8 +22,6 @@ -- Internet and the VPC. For more information about your VPC and Internet -- gateway, see the -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/ Amazon Virtual Private Cloud User Guide>.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-AttachInternetGateway.html AWS API Reference> for AttachInternetGateway. module Network.AWS.EC2.AttachInternetGateway     (     -- * Creating a Request@@ -91,8 +89,10 @@ instance AWSRequest AttachInternetGateway where         type Rs AttachInternetGateway =              AttachInternetGatewayResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull AttachInternetGatewayResponse'++instance Hashable AttachInternetGateway  instance ToHeaders AttachInternetGateway where         toHeaders = const mempty
gen/Network/AWS/EC2/AttachNetworkInterface.hs view
@@ -12,15 +12,13 @@  -- | -- Module      : Network.AWS.EC2.AttachNetworkInterface--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Attaches a network interface to an instance.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-AttachNetworkInterface.html AWS API Reference> for AttachNetworkInterface. module Network.AWS.EC2.AttachNetworkInterface     (     -- * Creating a Request@@ -101,12 +99,14 @@ instance AWSRequest AttachNetworkInterface where         type Rs AttachNetworkInterface =              AttachNetworkInterfaceResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  AttachNetworkInterfaceResponse' <$>                    (x .@? "attachmentId") <*> (pure (fromEnum s)))++instance Hashable AttachNetworkInterface  instance ToHeaders AttachNetworkInterface where         toHeaders = const mempty
gen/Network/AWS/EC2/AttachVPNGateway.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.AttachVPNGateway--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -21,8 +21,6 @@ -- Attaches a virtual private gateway to a VPC. For more information, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html Adding a Hardware Virtual Private Gateway to Your VPC> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-AttachVPNGateway.html AWS API Reference> for AttachVPNGateway. module Network.AWS.EC2.AttachVPNGateway     (     -- * Creating a Request@@ -92,12 +90,14 @@  instance AWSRequest AttachVPNGateway where         type Rs AttachVPNGateway = AttachVPNGatewayResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  AttachVPNGatewayResponse' <$>                    (x .@? "attachment") <*> (pure (fromEnum s)))++instance Hashable AttachVPNGateway  instance ToHeaders AttachVPNGateway where         toHeaders = const mempty
gen/Network/AWS/EC2/AttachVolume.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.AttachVolume--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -49,8 +49,6 @@ -- For more information about EBS volumes, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-attaching-volume.html Attaching Amazon EBS Volumes> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-AttachVolume.html AWS API Reference> for AttachVolume. module Network.AWS.EC2.AttachVolume     (     -- * Creating a Request@@ -136,8 +134,10 @@  instance AWSRequest AttachVolume where         type Rs AttachVolume = VolumeAttachment-        request = postQuery eC2+        request = postQuery ec2         response = receiveXML (\ s h x -> parseXML x)++instance Hashable AttachVolume  instance ToHeaders AttachVolume where         toHeaders = const mempty
gen/Network/AWS/EC2/AuthorizeSecurityGroupEgress.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.AuthorizeSecurityGroupEgress--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -37,8 +37,6 @@ -- -- Rule changes are propagated to affected instances as quickly as -- possible. However, a small delay might occur.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-AuthorizeSecurityGroupEgress.html AWS API Reference> for AuthorizeSecurityGroupEgress. module Network.AWS.EC2.AuthorizeSecurityGroupEgress     (     -- * Creating a Request@@ -171,9 +169,11 @@          where         type Rs AuthorizeSecurityGroupEgress =              AuthorizeSecurityGroupEgressResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveNull AuthorizeSecurityGroupEgressResponse'++instance Hashable AuthorizeSecurityGroupEgress  instance ToHeaders AuthorizeSecurityGroupEgress where         toHeaders = const mempty
gen/Network/AWS/EC2/AuthorizeSecurityGroupIngress.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.AuthorizeSecurityGroupIngress--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -39,8 +39,6 @@ -- other security groups (called the /source groups/) permission to access -- a security group for your VPC. The security groups must all be for the -- same VPC.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-AuthorizeSecurityGroupIngress.html AWS API Reference> for AuthorizeSecurityGroupIngress. module Network.AWS.EC2.AuthorizeSecurityGroupIngress     (     -- * Creating a Request@@ -188,9 +186,11 @@          where         type Rs AuthorizeSecurityGroupIngress =              AuthorizeSecurityGroupIngressResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveNull AuthorizeSecurityGroupIngressResponse'++instance Hashable AuthorizeSecurityGroupIngress  instance ToHeaders AuthorizeSecurityGroupIngress          where
gen/Network/AWS/EC2/BundleInstance.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.BundleInstance--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -28,8 +28,6 @@ -- -- For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Creating_InstanceStoreBacked_WinAMI.html Creating an Instance Store-Backed Windows AMI>.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-BundleInstance.html AWS API Reference> for BundleInstance. module Network.AWS.EC2.BundleInstance     (     -- * Creating a Request@@ -108,12 +106,14 @@  instance AWSRequest BundleInstance where         type Rs BundleInstance = BundleInstanceResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  BundleInstanceResponse' <$>                    (x .@? "bundleInstanceTask") <*> (pure (fromEnum s)))++instance Hashable BundleInstance  instance ToHeaders BundleInstance where         toHeaders = const mempty
gen/Network/AWS/EC2/CancelBundleTask.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CancelBundleTask--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Cancels a bundling operation for an instance store-backed Windows -- instance.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CancelBundleTask.html AWS API Reference> for CancelBundleTask. module Network.AWS.EC2.CancelBundleTask     (     -- * Creating a Request@@ -81,12 +79,14 @@  instance AWSRequest CancelBundleTask where         type Rs CancelBundleTask = CancelBundleTaskResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  CancelBundleTaskResponse' <$>                    (x .@? "bundleInstanceTask") <*> (pure (fromEnum s)))++instance Hashable CancelBundleTask  instance ToHeaders CancelBundleTask where         toHeaders = const mempty
gen/Network/AWS/EC2/CancelConversionTask.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CancelConversionTask--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -27,8 +27,6 @@ -- For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UploadingYourInstancesandVolumes.html Using the Command Line Tools to Import Your Virtual Machine to Amazon EC2> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CancelConversionTask.html AWS API Reference> for CancelConversionTask. module Network.AWS.EC2.CancelConversionTask     (     -- * Creating a Request@@ -95,8 +93,10 @@ instance AWSRequest CancelConversionTask where         type Rs CancelConversionTask =              CancelConversionTaskResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull CancelConversionTaskResponse'++instance Hashable CancelConversionTask  instance ToHeaders CancelConversionTask where         toHeaders = const mempty
gen/Network/AWS/EC2/CancelExportTask.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CancelExportTask--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -22,8 +22,6 @@ -- export, including any partially-created Amazon S3 objects. If the export -- task is complete or is in the process of transferring the final disk -- image, the command fails and returns an error.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CancelExportTask.html AWS API Reference> for CancelExportTask. module Network.AWS.EC2.CancelExportTask     (     -- * Creating a Request@@ -69,8 +67,10 @@  instance AWSRequest CancelExportTask where         type Rs CancelExportTask = CancelExportTaskResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull CancelExportTaskResponse'++instance Hashable CancelExportTask  instance ToHeaders CancelExportTask where         toHeaders = const mempty
gen/Network/AWS/EC2/CancelImportTask.hs view
@@ -12,15 +12,13 @@  -- | -- Module      : Network.AWS.EC2.CancelImportTask--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Cancels an in-process import virtual machine or import snapshot task.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CancelImportTask.html AWS API Reference> for CancelImportTask. module Network.AWS.EC2.CancelImportTask     (     -- * Creating a Request@@ -90,7 +88,7 @@  instance AWSRequest CancelImportTask where         type Rs CancelImportTask = CancelImportTaskResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -98,6 +96,8 @@                    (x .@? "state") <*> (x .@? "importTaskId") <*>                      (x .@? "previousState")                      <*> (pure (fromEnum s)))++instance Hashable CancelImportTask  instance ToHeaders CancelImportTask where         toHeaders = const mempty
gen/Network/AWS/EC2/CancelReservedInstancesListing.hs view
@@ -12,20 +12,18 @@  -- | -- Module      : Network.AWS.EC2.CancelReservedInstancesListing--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Cancels the specified Reserved instance listing in the Reserved Instance+-- Cancels the specified Reserved Instance listing in the Reserved Instance -- Marketplace. -- -- For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html Reserved Instance Marketplace> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CancelReservedInstancesListing.html AWS API Reference> for CancelReservedInstancesListing. module Network.AWS.EC2.CancelReservedInstancesListing     (     -- * Creating a Request@@ -67,7 +65,7 @@     { _crilReservedInstancesListingId = pReservedInstancesListingId_     } --- | The ID of the Reserved instance listing.+-- | The ID of the Reserved Instance listing. crilReservedInstancesListingId :: Lens' CancelReservedInstancesListing Text crilReservedInstancesListingId = lens _crilReservedInstancesListingId (\ s a -> s{_crilReservedInstancesListingId = a}); @@ -75,7 +73,7 @@          where         type Rs CancelReservedInstancesListing =              CancelReservedInstancesListingResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -84,6 +82,8 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) +instance Hashable CancelReservedInstancesListing+ instance ToHeaders CancelReservedInstancesListing          where         toHeaders = const mempty@@ -122,7 +122,7 @@     , _crilrsResponseStatus = pResponseStatus_     } --- | The Reserved instance listing.+-- | The Reserved Instance listing. crilrsReservedInstancesListings :: Lens' CancelReservedInstancesListingResponse [ReservedInstancesListing] crilrsReservedInstancesListings = lens _crilrsReservedInstancesListings (\ s a -> s{_crilrsReservedInstancesListings = a}) . _Default . _Coerce; 
gen/Network/AWS/EC2/CancelSpotFleetRequests.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CancelSpotFleetRequests--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -27,8 +27,6 @@ -- Spot fleet request enters the 'cancelled_running' state and the -- instances continue to run until they are interrupted or you terminate -- them manually.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CancelSpotFleetRequests.html AWS API Reference> for CancelSpotFleetRequests. module Network.AWS.EC2.CancelSpotFleetRequests     (     -- * Creating a Request@@ -102,7 +100,7 @@ instance AWSRequest CancelSpotFleetRequests where         type Rs CancelSpotFleetRequests =              CancelSpotFleetRequestsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -113,6 +111,8 @@                      (x .@? "unsuccessfulFleetRequestSet" .!@ mempty >>=                         may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable CancelSpotFleetRequests  instance ToHeaders CancelSpotFleetRequests where         toHeaders = const mempty
gen/Network/AWS/EC2/CancelSpotInstanceRequests.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CancelSpotInstanceRequests--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -28,8 +28,6 @@ -- -- Canceling a Spot instance request does not terminate running Spot -- instances associated with the request.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CancelSpotInstanceRequests.html AWS API Reference> for CancelSpotInstanceRequests. module Network.AWS.EC2.CancelSpotInstanceRequests     (     -- * Creating a Request@@ -91,7 +89,7 @@ instance AWSRequest CancelSpotInstanceRequests where         type Rs CancelSpotInstanceRequests =              CancelSpotInstanceRequestsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -99,6 +97,8 @@                    (x .@? "spotInstanceRequestSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable CancelSpotInstanceRequests  instance ToHeaders CancelSpotInstanceRequests where         toHeaders = const mempty
gen/Network/AWS/EC2/ConfirmProductInstance.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ConfirmProductInstance--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -22,8 +22,6 @@ -- action can only be used by the owner of the product code. It is useful -- when a product code owner needs to verify whether another user\'s -- instance is eligible for support.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ConfirmProductInstance.html AWS API Reference> for ConfirmProductInstance. module Network.AWS.EC2.ConfirmProductInstance     (     -- * Creating a Request@@ -95,13 +93,15 @@ instance AWSRequest ConfirmProductInstance where         type Rs ConfirmProductInstance =              ConfirmProductInstanceResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  ConfirmProductInstanceResponse' <$>                    (x .@? "return") <*> (x .@? "ownerId") <*>                      (pure (fromEnum s)))++instance Hashable ConfirmProductInstance  instance ToHeaders ConfirmProductInstance where         toHeaders = const mempty
gen/Network/AWS/EC2/CopyImage.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CopyImage--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -25,8 +25,6 @@ -- For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html Copying AMIs> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CopyImage.html AWS API Reference> for CopyImage. module Network.AWS.EC2.CopyImage     (     -- * Creating a Request@@ -160,12 +158,14 @@  instance AWSRequest CopyImage where         type Rs CopyImage = CopyImageResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  CopyImageResponse' <$>                    (x .@? "imageId") <*> (pure (fromEnum s)))++instance Hashable CopyImage  instance ToHeaders CopyImage where         toHeaders = const mempty
gen/Network/AWS/EC2/CopySnapshot.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CopySnapshot--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -34,8 +34,6 @@ -- For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-copy-snapshot.html Copying an Amazon EBS Snapshot> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CopySnapshot.html AWS API Reference> for CopySnapshot. module Network.AWS.EC2.CopySnapshot     (     -- * Creating a Request@@ -185,12 +183,14 @@  instance AWSRequest CopySnapshot where         type Rs CopySnapshot = CopySnapshotResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  CopySnapshotResponse' <$>                    (x .@? "snapshotId") <*> (pure (fromEnum s)))++instance Hashable CopySnapshot  instance ToHeaders CopySnapshot where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateCustomerGateway.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateCustomerGateway--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -44,8 +44,6 @@ -- gateway, and subsequent requests return information about the existing -- customer gateway. The subsequent requests do not create new customer -- gateway resources.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateCustomerGateway.html AWS API Reference> for CreateCustomerGateway. module Network.AWS.EC2.CreateCustomerGateway     (     -- * Creating a Request@@ -130,12 +128,14 @@ instance AWSRequest CreateCustomerGateway where         type Rs CreateCustomerGateway =              CreateCustomerGatewayResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  CreateCustomerGatewayResponse' <$>                    (x .@? "customerGateway") <*> (pure (fromEnum s)))++instance Hashable CreateCustomerGateway  instance ToHeaders CreateCustomerGateway where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateDHCPOptions.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateDHCPOptions--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -57,8 +57,6 @@ -- information about DHCP options, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html DHCP Options Sets> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateDHCPOptions.html AWS API Reference> for CreateDHCPOptions. module Network.AWS.EC2.CreateDHCPOptions     (     -- * Creating a Request@@ -117,12 +115,14 @@  instance AWSRequest CreateDHCPOptions where         type Rs CreateDHCPOptions = CreateDHCPOptionsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  CreateDHCPOptionsResponse' <$>                    (x .@? "dhcpOptions") <*> (pure (fromEnum s)))++instance Hashable CreateDHCPOptions  instance ToHeaders CreateDHCPOptions where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateFlowLogs.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateFlowLogs--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -28,8 +28,6 @@ -- -- In your request, you must also specify an IAM role that has permission -- to publish logs to CloudWatch Logs.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateFlowLogs.html AWS API Reference> for CreateFlowLogs. module Network.AWS.EC2.CreateFlowLogs     (     -- * Creating a Request@@ -130,7 +128,7 @@  instance AWSRequest CreateFlowLogs where         type Rs CreateFlowLogs = CreateFlowLogsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -142,6 +140,8 @@                      (x .@? "flowLogIdSet" .!@ mempty >>=                         may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable CreateFlowLogs  instance ToHeaders CreateFlowLogs where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateImage.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateImage--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -30,8 +30,6 @@ -- For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html Creating Amazon EBS-Backed Linux AMIs> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateImage.html AWS API Reference> for CreateImage. module Network.AWS.EC2.CreateImage     (     -- * Creating a Request@@ -137,12 +135,14 @@  instance AWSRequest CreateImage where         type Rs CreateImage = CreateImageResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  CreateImageResponse' <$>                    (x .@? "imageId") <*> (pure (fromEnum s)))++instance Hashable CreateImage  instance ToHeaders CreateImage where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateInstanceExportTask.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateInstanceExportTask--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -24,8 +24,6 @@ -- and known limitations for the types of instances you can export, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExportingEC2Instances.html Exporting EC2 Instances> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateInstanceExportTask.html AWS API Reference> for CreateInstanceExportTask. module Network.AWS.EC2.CreateInstanceExportTask     (     -- * Creating a Request@@ -102,12 +100,14 @@ instance AWSRequest CreateInstanceExportTask where         type Rs CreateInstanceExportTask =              CreateInstanceExportTaskResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  CreateInstanceExportTaskResponse' <$>                    (x .@? "exportTask") <*> (pure (fromEnum s)))++instance Hashable CreateInstanceExportTask  instance ToHeaders CreateInstanceExportTask where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateInternetGateway.hs view
@@ -12,19 +12,17 @@  -- | -- Module      : Network.AWS.EC2.CreateInternetGateway--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Creates an Internet gateway for use with a VPC. After creating the--- Internet gateway, you attach it to a VPC using AttachInternetGateway.+-- Internet gateway, you attach it to a VPC using < AttachInternetGateway>. -- -- For more information about your VPC and Internet gateway, see the -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/ Amazon Virtual Private Cloud User Guide>.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateInternetGateway.html AWS API Reference> for CreateInternetGateway. module Network.AWS.EC2.CreateInternetGateway     (     -- * Creating a Request@@ -75,12 +73,14 @@ instance AWSRequest CreateInternetGateway where         type Rs CreateInternetGateway =              CreateInternetGatewayResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  CreateInternetGatewayResponse' <$>                    (x .@? "internetGateway") <*> (pure (fromEnum s)))++instance Hashable CreateInternetGateway  instance ToHeaders CreateInternetGateway where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateKeyPair.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateKeyPair--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -28,13 +28,11 @@ -- -- The key pair returned to you is available only in the region in which -- you create it. To create a key pair that is available in all regions,--- use ImportKeyPair.+-- use < ImportKeyPair>. -- -- For more information about key pairs, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html Key Pairs> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateKeyPair.html AWS API Reference> for CreateKeyPair. module Network.AWS.EC2.CreateKeyPair     (     -- * Creating a Request@@ -98,7 +96,7 @@  instance AWSRequest CreateKeyPair where         type Rs CreateKeyPair = CreateKeyPairResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -106,6 +104,8 @@                    (pure (fromEnum s)) <*> (x .@ "keyName") <*>                      (x .@ "keyFingerprint")                      <*> (x .@ "keyMaterial"))++instance Hashable CreateKeyPair  instance ToHeaders CreateKeyPair where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateNatGateway.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateNatGateway--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -25,8 +25,6 @@ -- information, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html NAT Gateways> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateNatGateway.html AWS API Reference> for CreateNatGateway. module Network.AWS.EC2.CreateNatGateway     (     -- * Creating a Request@@ -100,13 +98,15 @@  instance AWSRequest CreateNatGateway where         type Rs CreateNatGateway = CreateNatGatewayResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  CreateNatGatewayResponse' <$>                    (x .@? "clientToken") <*> (x .@? "natGateway") <*>                      (pure (fromEnum s)))++instance Hashable CreateNatGateway  instance ToHeaders CreateNatGateway where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateNetworkACL.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateNetworkACL--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -25,8 +25,6 @@ -- For more information about network ACLs, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html Network ACLs> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateNetworkACL.html AWS API Reference> for CreateNetworkACL. module Network.AWS.EC2.CreateNetworkACL     (     -- * Creating a Request@@ -86,12 +84,14 @@  instance AWSRequest CreateNetworkACL where         type Rs CreateNetworkACL = CreateNetworkACLResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  CreateNetworkACLResponse' <$>                    (x .@? "networkAcl") <*> (pure (fromEnum s)))++instance Hashable CreateNetworkACL  instance ToHeaders CreateNetworkACL where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateNetworkACLEntry.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateNetworkACLEntry--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -37,8 +37,6 @@ -- For more information about network ACLs, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html Network ACLs> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateNetworkACLEntry.html AWS API Reference> for CreateNetworkACLEntry. module Network.AWS.EC2.CreateNetworkACLEntry     (     -- * Creating a Request@@ -170,8 +168,10 @@ instance AWSRequest CreateNetworkACLEntry where         type Rs CreateNetworkACLEntry =              CreateNetworkACLEntryResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull CreateNetworkACLEntryResponse'++instance Hashable CreateNetworkACLEntry  instance ToHeaders CreateNetworkACLEntry where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateNetworkInterface.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateNetworkInterface--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -23,8 +23,6 @@ -- For more information about network interfaces, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html Elastic Network Interfaces> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateNetworkInterface.html AWS API Reference> for CreateNetworkInterface. module Network.AWS.EC2.CreateNetworkInterface     (     -- * Creating a Request@@ -143,12 +141,14 @@ instance AWSRequest CreateNetworkInterface where         type Rs CreateNetworkInterface =              CreateNetworkInterfaceResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  CreateNetworkInterfaceResponse' <$>                    (x .@? "networkInterface") <*> (pure (fromEnum s)))++instance Hashable CreateNetworkInterface  instance ToHeaders CreateNetworkInterface where         toHeaders = const mempty
gen/Network/AWS/EC2/CreatePlacementGroup.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreatePlacementGroup--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -25,8 +25,6 @@ -- For more information about placement groups and cluster instances, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using_cluster_computing.html Cluster Instances> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreatePlacementGroup.html AWS API Reference> for CreatePlacementGroup. module Network.AWS.EC2.CreatePlacementGroup     (     -- * Creating a Request@@ -96,8 +94,10 @@ instance AWSRequest CreatePlacementGroup where         type Rs CreatePlacementGroup =              CreatePlacementGroupResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull CreatePlacementGroupResponse'++instance Hashable CreatePlacementGroup  instance ToHeaders CreatePlacementGroup where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateReservedInstancesListing.hs view
@@ -12,36 +12,34 @@  -- | -- Module      : Network.AWS.EC2.CreateReservedInstancesListing--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Creates a listing for Amazon EC2 Reserved instances to be sold in the--- Reserved Instance Marketplace. You can submit one Reserved instance--- listing at a time. To get a list of your Reserved instances, you can use--- the DescribeReservedInstances operation.+-- Creates a listing for Amazon EC2 Reserved Instances to be sold in the+-- Reserved Instance Marketplace. You can submit one Reserved Instance+-- listing at a time. To get a list of your Reserved Instances, you can use+-- the < DescribeReservedInstances> operation. -- -- The Reserved Instance Marketplace matches sellers who want to resell--- Reserved instance capacity that they no longer need with buyers who want--- to purchase additional capacity. Reserved instances bought and sold+-- Reserved Instance capacity that they no longer need with buyers who want+-- to purchase additional capacity. Reserved Instances bought and sold -- through the Reserved Instance Marketplace work like any other Reserved--- instances.+-- Instances. ----- To sell your Reserved instances, you must first register as a seller in+-- To sell your Reserved Instances, you must first register as a seller in -- the Reserved Instance Marketplace. After completing the registration -- process, you can create a Reserved Instance Marketplace listing of some--- or all of your Reserved instances, and specify the upfront price to--- receive for them. Your Reserved instance listings then become available--- for purchase. To view the details of your Reserved instance listing, you--- can use the DescribeReservedInstancesListings operation.+-- or all of your Reserved Instances, and specify the upfront price to+-- receive for them. Your Reserved Instance listings then become available+-- for purchase. To view the details of your Reserved Instance listing, you+-- can use the < DescribeReservedInstancesListings> operation. -- -- For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html Reserved Instance Marketplace> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateReservedInstancesListing.html AWS API Reference> for CreateReservedInstancesListing. module Network.AWS.EC2.CreateReservedInstancesListing     (     -- * Creating a Request@@ -100,19 +98,19 @@     , _crilClientToken = pClientToken_     } --- | The ID of the active Reserved instance.+-- | The ID of the active Reserved Instance. crilReservedInstancesId :: Lens' CreateReservedInstancesListing Text crilReservedInstancesId = lens _crilReservedInstancesId (\ s a -> s{_crilReservedInstancesId = a}); --- | The number of instances that are a part of a Reserved instance account+-- | The number of instances that are a part of a Reserved Instance account -- to be listed in the Reserved Instance Marketplace. This number should be -- less than or equal to the instance count associated with the Reserved--- instance ID specified in this call.+-- Instance ID specified in this call. crilInstanceCount :: Lens' CreateReservedInstancesListing Int crilInstanceCount = lens _crilInstanceCount (\ s a -> s{_crilInstanceCount = a}); --- | A list specifying the price of the Reserved instance for each month--- remaining in the Reserved instance term.+-- | A list specifying the price of the Reserved Instance for each month+-- remaining in the Reserved Instance term. crilPriceSchedules :: Lens' CreateReservedInstancesListing [PriceScheduleSpecification] crilPriceSchedules = lens _crilPriceSchedules (\ s a -> s{_crilPriceSchedules = a}) . _Coerce; @@ -127,7 +125,7 @@          where         type Rs CreateReservedInstancesListing =              CreateReservedInstancesListingResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -136,6 +134,8 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) +instance Hashable CreateReservedInstancesListing+ instance ToHeaders CreateReservedInstancesListing          where         toHeaders = const mempty@@ -176,7 +176,7 @@     , _crersResponseStatus = pResponseStatus_     } --- | Information about the Reserved instance listing.+-- | Information about the Reserved Instance listing. crersReservedInstancesListings :: Lens' CreateReservedInstancesListingResponse [ReservedInstancesListing] crersReservedInstancesListings = lens _crersReservedInstancesListings (\ s a -> s{_crersReservedInstancesListings = a}) . _Default . _Coerce; 
gen/Network/AWS/EC2/CreateRoute.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateRoute--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -40,8 +40,6 @@ -- For more information about route tables, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html Route Tables> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateRoute.html AWS API Reference> for CreateRoute. module Network.AWS.EC2.CreateRoute     (     -- * Creating a Request@@ -159,12 +157,14 @@  instance AWSRequest CreateRoute where         type Rs CreateRoute = CreateRouteResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  CreateRouteResponse' <$>                    (x .@? "return") <*> (pure (fromEnum s)))++instance Hashable CreateRoute  instance ToHeaders CreateRoute where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateRouteTable.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateRouteTable--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -24,8 +24,6 @@ -- For more information about route tables, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html Route Tables> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateRouteTable.html AWS API Reference> for CreateRouteTable. module Network.AWS.EC2.CreateRouteTable     (     -- * Creating a Request@@ -85,12 +83,14 @@  instance AWSRequest CreateRouteTable where         type Rs CreateRouteTable = CreateRouteTableResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  CreateRouteTableResponse' <$>                    (x .@? "routeTable") <*> (pure (fromEnum s)))++instance Hashable CreateRouteTable  instance ToHeaders CreateRouteTable where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateSecurityGroup.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateSecurityGroup--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -29,7 +29,7 @@ -- -- EC2-Classic: You can have up to 500 security groups. ----- EC2-VPC: You can create up to 100 security groups per VPC.+-- EC2-VPC: You can create up to 500 security groups per VPC. -- -- When you create a security group, you specify a friendly name of your -- choice. You can have a security group for use in EC2-Classic with the@@ -45,10 +45,8 @@ -- other. -- -- You can add or remove rules from your security groups using--- AuthorizeSecurityGroupIngress, AuthorizeSecurityGroupEgress,--- RevokeSecurityGroupIngress, and RevokeSecurityGroupEgress.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateSecurityGroup.html AWS API Reference> for CreateSecurityGroup.+-- < AuthorizeSecurityGroupIngress>, < AuthorizeSecurityGroupEgress>,+-- < RevokeSecurityGroupIngress>, and < RevokeSecurityGroupEgress>. module Network.AWS.EC2.CreateSecurityGroup     (     -- * Creating a Request@@ -142,12 +140,14 @@ instance AWSRequest CreateSecurityGroup where         type Rs CreateSecurityGroup =              CreateSecurityGroupResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  CreateSecurityGroupResponse' <$>                    (pure (fromEnum s)) <*> (x .@ "groupId"))++instance Hashable CreateSecurityGroup  instance ToHeaders CreateSecurityGroup where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateSnapshot.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateSnapshot--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -49,8 +49,6 @@ -- and -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html Amazon EBS Encryption> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateSnapshot.html AWS API Reference> for CreateSnapshot. module Network.AWS.EC2.CreateSnapshot     (     -- * Creating a Request@@ -131,8 +129,10 @@  instance AWSRequest CreateSnapshot where         type Rs CreateSnapshot = Snapshot-        request = postQuery eC2+        request = postQuery ec2         response = receiveXML (\ s h x -> parseXML x)++instance Hashable CreateSnapshot  instance ToHeaders CreateSnapshot where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateSpotDatafeedSubscription.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateSpotDatafeedSubscription--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -23,8 +23,6 @@ -- more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html Spot Instance Data Feed> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateSpotDatafeedSubscription.html AWS API Reference> for CreateSpotDatafeedSubscription. module Network.AWS.EC2.CreateSpotDatafeedSubscription     (     -- * Creating a Request@@ -97,13 +95,15 @@          where         type Rs CreateSpotDatafeedSubscription =              CreateSpotDatafeedSubscriptionResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  CreateSpotDatafeedSubscriptionResponse' <$>                    (x .@? "spotDatafeedSubscription") <*>                      (pure (fromEnum s)))++instance Hashable CreateSpotDatafeedSubscription  instance ToHeaders CreateSpotDatafeedSubscription          where
gen/Network/AWS/EC2/CreateSubnet.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateSubnet--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -45,8 +45,6 @@ -- For more information about subnets, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html Your VPC and Subnets> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateSubnet.html AWS API Reference> for CreateSubnet. module Network.AWS.EC2.CreateSubnet     (     -- * Creating a Request@@ -130,12 +128,14 @@  instance AWSRequest CreateSubnet where         type Rs CreateSubnet = CreateSubnetResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  CreateSubnetResponse' <$>                    (x .@? "subnet") <*> (pure (fromEnum s)))++instance Hashable CreateSubnet  instance ToHeaders CreateSubnet where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateTags.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateTags--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -30,8 +30,6 @@ -- based on tags, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-iam-actions-resources.html Supported Resource-Level Permissions for Amazon EC2 API Actions> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateTags.html AWS API Reference> for CreateTags. module Network.AWS.EC2.CreateTags     (     -- * Creating a Request@@ -98,8 +96,10 @@  instance AWSRequest CreateTags where         type Rs CreateTags = CreateTagsResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull CreateTagsResponse'++instance Hashable CreateTags  instance ToHeaders CreateTags where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateVPC.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateVPC--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -31,8 +31,6 @@ -- (AmazonProvidedDNS). For more information about DHCP options, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html DHCP Options Sets> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateVPC.html AWS API Reference> for CreateVPC. module Network.AWS.EC2.CreateVPC     (     -- * Creating a Request@@ -112,12 +110,14 @@  instance AWSRequest CreateVPC where         type Rs CreateVPC = CreateVPCResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  CreateVPCResponse' <$>                    (x .@? "vpc") <*> (pure (fromEnum s)))++instance Hashable CreateVPC  instance ToHeaders CreateVPC where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateVPCEndpoint.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateVPCEndpoint--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -25,8 +25,6 @@ -- can also specify the VPC route tables that use the endpoint. -- -- Currently, only endpoints to Amazon S3 are supported.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateVPCEndpoint.html AWS API Reference> for CreateVPCEndpoint. module Network.AWS.EC2.CreateVPCEndpoint     (     -- * Creating a Request@@ -124,20 +122,22 @@ cveVPCId = lens _cveVPCId (\ s a -> s{_cveVPCId = a});  -- | The AWS service name, in the form 'com.amazonaws.region.service'. To get--- a list of available services, use the DescribeVpcEndpointServices+-- a list of available services, use the < DescribeVpcEndpointServices> -- request. cveServiceName :: Lens' CreateVPCEndpoint Text cveServiceName = lens _cveServiceName (\ s a -> s{_cveServiceName = a});  instance AWSRequest CreateVPCEndpoint where         type Rs CreateVPCEndpoint = CreateVPCEndpointResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  CreateVPCEndpointResponse' <$>                    (x .@? "clientToken") <*> (x .@? "vpcEndpoint") <*>                      (pure (fromEnum s)))++instance Hashable CreateVPCEndpoint  instance ToHeaders CreateVPCEndpoint where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateVPCPeeringConnection.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateVPCPeeringConnection--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -30,8 +30,6 @@ -- A 'CreateVpcPeeringConnection' request between VPCs with overlapping -- CIDR blocks results in the VPC peering connection having a status of -- 'failed'.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateVPCPeeringConnection.html AWS API Reference> for CreateVPCPeeringConnection. module Network.AWS.EC2.CreateVPCPeeringConnection     (     -- * Creating a Request@@ -112,13 +110,15 @@ instance AWSRequest CreateVPCPeeringConnection where         type Rs CreateVPCPeeringConnection =              CreateVPCPeeringConnectionResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  CreateVPCPeeringConnectionResponse' <$>                    (x .@? "vpcPeeringConnection") <*>                      (pure (fromEnum s)))++instance Hashable CreateVPCPeeringConnection  instance ToHeaders CreateVPCPeeringConnection where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateVPNConnection.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateVPNConnection--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -35,8 +35,6 @@ -- For more information about VPN connections, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html Adding a Hardware Virtual Private Gateway to Your VPC> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateVPNConnection.html AWS API Reference> for CreateVPNConnection. module Network.AWS.EC2.CreateVPNConnection     (     -- * Creating a Request@@ -130,12 +128,14 @@ instance AWSRequest CreateVPNConnection where         type Rs CreateVPNConnection =              CreateVPNConnectionResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  CreateVPNConnectionResponse' <$>                    (x .@? "vpnConnection") <*> (pure (fromEnum s)))++instance Hashable CreateVPNConnection  instance ToHeaders CreateVPNConnection where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateVPNConnectionRoute.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateVPNConnectionRoute--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -26,8 +26,6 @@ -- For more information about VPN connections, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html Adding a Hardware Virtual Private Gateway to Your VPC> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateVPNConnectionRoute.html AWS API Reference> for CreateVPNConnectionRoute. module Network.AWS.EC2.CreateVPNConnectionRoute     (     -- * Creating a Request@@ -83,9 +81,11 @@ instance AWSRequest CreateVPNConnectionRoute where         type Rs CreateVPNConnectionRoute =              CreateVPNConnectionRouteResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveNull CreateVPNConnectionRouteResponse'++instance Hashable CreateVPNConnectionRoute  instance ToHeaders CreateVPNConnectionRoute where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateVPNGateway.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateVPNGateway--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -25,8 +25,6 @@ -- For more information about virtual private gateways, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html Adding a Hardware Virtual Private Gateway to Your VPC> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateVPNGateway.html AWS API Reference> for CreateVPNGateway. module Network.AWS.EC2.CreateVPNGateway     (     -- * Creating a Request@@ -95,12 +93,14 @@  instance AWSRequest CreateVPNGateway where         type Rs CreateVPNGateway = CreateVPNGatewayResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  CreateVPNGatewayResponse' <$>                    (x .@? "vpnGateway") <*> (pure (fromEnum s)))++instance Hashable CreateVPNGateway  instance ToHeaders CreateVPNGateway where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateVolume.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.CreateVolume--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -37,8 +37,6 @@ -- For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-volume.html Creating or Restoring an Amazon EBS Volume> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateVolume.html AWS API Reference> for CreateVolume. module Network.AWS.EC2.CreateVolume     (     -- * Creating a Request@@ -188,15 +186,17 @@ creSnapshotId = lens _creSnapshotId (\ s a -> s{_creSnapshotId = a});  -- | The Availability Zone in which to create the volume. Use--- DescribeAvailabilityZones to list the Availability Zones that are+-- < DescribeAvailabilityZones> to list the Availability Zones that are -- currently available to you. creAvailabilityZone :: Lens' CreateVolume Text creAvailabilityZone = lens _creAvailabilityZone (\ s a -> s{_creAvailabilityZone = a});  instance AWSRequest CreateVolume where         type Rs CreateVolume = Volume-        request = postQuery eC2+        request = postQuery ec2         response = receiveXML (\ s h x -> parseXML x)++instance Hashable CreateVolume  instance ToHeaders CreateVolume where         toHeaders = const mempty
gen/Network/AWS/EC2/DeleteCustomerGateway.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DeleteCustomerGateway--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Deletes the specified customer gateway. You must delete the VPN -- connection before you can delete the customer gateway.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteCustomerGateway.html AWS API Reference> for DeleteCustomerGateway. module Network.AWS.EC2.DeleteCustomerGateway     (     -- * Creating a Request@@ -79,8 +77,10 @@ instance AWSRequest DeleteCustomerGateway where         type Rs DeleteCustomerGateway =              DeleteCustomerGatewayResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull DeleteCustomerGatewayResponse'++instance Hashable DeleteCustomerGateway  instance ToHeaders DeleteCustomerGateway where         toHeaders = const mempty
gen/Network/AWS/EC2/DeleteDHCPOptions.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DeleteDHCPOptions--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -22,8 +22,6 @@ -- of DHCP options before you can delete it. You can disassociate the set -- of DHCP options by associating either a new set of options or the -- default set of options with the VPC.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteDHCPOptions.html AWS API Reference> for DeleteDHCPOptions. module Network.AWS.EC2.DeleteDHCPOptions     (     -- * Creating a Request@@ -80,8 +78,10 @@  instance AWSRequest DeleteDHCPOptions where         type Rs DeleteDHCPOptions = DeleteDHCPOptionsResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull DeleteDHCPOptionsResponse'++instance Hashable DeleteDHCPOptions  instance ToHeaders DeleteDHCPOptions where         toHeaders = const mempty
gen/Network/AWS/EC2/DeleteFlowLogs.hs view
@@ -12,15 +12,13 @@  -- | -- Module      : Network.AWS.EC2.DeleteFlowLogs--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Deletes one or more flow logs.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteFlowLogs.html AWS API Reference> for DeleteFlowLogs. module Network.AWS.EC2.DeleteFlowLogs     (     -- * Creating a Request@@ -67,7 +65,7 @@  instance AWSRequest DeleteFlowLogs where         type Rs DeleteFlowLogs = DeleteFlowLogsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -75,6 +73,8 @@                    (x .@? "unsuccessful" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DeleteFlowLogs  instance ToHeaders DeleteFlowLogs where         toHeaders = const mempty
gen/Network/AWS/EC2/DeleteInternetGateway.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DeleteInternetGateway--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Deletes the specified Internet gateway. You must detach the Internet -- gateway from the VPC before you can delete it.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteInternetGateway.html AWS API Reference> for DeleteInternetGateway. module Network.AWS.EC2.DeleteInternetGateway     (     -- * Creating a Request@@ -79,8 +77,10 @@ instance AWSRequest DeleteInternetGateway where         type Rs DeleteInternetGateway =              DeleteInternetGatewayResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull DeleteInternetGatewayResponse'++instance Hashable DeleteInternetGateway  instance ToHeaders DeleteInternetGateway where         toHeaders = const mempty
gen/Network/AWS/EC2/DeleteKeyPair.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DeleteKeyPair--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Deletes the specified key pair, by removing the public key from Amazon -- EC2.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteKeyPair.html AWS API Reference> for DeleteKeyPair. module Network.AWS.EC2.DeleteKeyPair     (     -- * Creating a Request@@ -78,8 +76,10 @@  instance AWSRequest DeleteKeyPair where         type Rs DeleteKeyPair = DeleteKeyPairResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull DeleteKeyPairResponse'++instance Hashable DeleteKeyPair  instance ToHeaders DeleteKeyPair where         toHeaders = const mempty
gen/Network/AWS/EC2/DeleteNatGateway.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DeleteNatGateway--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -22,8 +22,6 @@ -- its Elastic IP address, but does not release the address from your -- account. Deleting a NAT gateway does not delete any NAT gateway routes -- in your route tables.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteNatGateway.html AWS API Reference> for DeleteNatGateway. module Network.AWS.EC2.DeleteNatGateway     (     -- * Creating a Request@@ -71,12 +69,14 @@  instance AWSRequest DeleteNatGateway where         type Rs DeleteNatGateway = DeleteNatGatewayResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  DeleteNatGatewayResponse' <$>                    (x .@? "natGatewayId") <*> (pure (fromEnum s)))++instance Hashable DeleteNatGateway  instance ToHeaders DeleteNatGateway where         toHeaders = const mempty
gen/Network/AWS/EC2/DeleteNetworkACL.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DeleteNetworkACL--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Deletes the specified network ACL. You can\'t delete the ACL if it\'s -- associated with any subnets. You can\'t delete the default network ACL.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteNetworkACL.html AWS API Reference> for DeleteNetworkACL. module Network.AWS.EC2.DeleteNetworkACL     (     -- * Creating a Request@@ -78,8 +76,10 @@  instance AWSRequest DeleteNetworkACL where         type Rs DeleteNetworkACL = DeleteNetworkACLResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull DeleteNetworkACLResponse'++instance Hashable DeleteNetworkACL  instance ToHeaders DeleteNetworkACL where         toHeaders = const mempty
gen/Network/AWS/EC2/DeleteNetworkACLEntry.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DeleteNetworkACLEntry--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Deletes the specified ingress or egress entry (rule) from the specified -- network ACL.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteNetworkACLEntry.html AWS API Reference> for DeleteNetworkACLEntry. module Network.AWS.EC2.DeleteNetworkACLEntry     (     -- * Creating a Request@@ -99,8 +97,10 @@ instance AWSRequest DeleteNetworkACLEntry where         type Rs DeleteNetworkACLEntry =              DeleteNetworkACLEntryResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull DeleteNetworkACLEntryResponse'++instance Hashable DeleteNetworkACLEntry  instance ToHeaders DeleteNetworkACLEntry where         toHeaders = const mempty
gen/Network/AWS/EC2/DeleteNetworkInterface.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DeleteNetworkInterface--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Deletes the specified network interface. You must detach the network -- interface before you can delete it.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteNetworkInterface.html AWS API Reference> for DeleteNetworkInterface. module Network.AWS.EC2.DeleteNetworkInterface     (     -- * Creating a Request@@ -79,9 +77,11 @@ instance AWSRequest DeleteNetworkInterface where         type Rs DeleteNetworkInterface =              DeleteNetworkInterfaceResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveNull DeleteNetworkInterfaceResponse'++instance Hashable DeleteNetworkInterface  instance ToHeaders DeleteNetworkInterface where         toHeaders = const mempty
gen/Network/AWS/EC2/DeletePlacementGroup.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DeletePlacementGroup--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -23,8 +23,6 @@ -- more information about placement groups and cluster instances, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using_cluster_computing.html Cluster Instances> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeletePlacementGroup.html AWS API Reference> for DeletePlacementGroup. module Network.AWS.EC2.DeletePlacementGroup     (     -- * Creating a Request@@ -82,8 +80,10 @@ instance AWSRequest DeletePlacementGroup where         type Rs DeletePlacementGroup =              DeletePlacementGroupResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull DeletePlacementGroupResponse'++instance Hashable DeletePlacementGroup  instance ToHeaders DeletePlacementGroup where         toHeaders = const mempty
gen/Network/AWS/EC2/DeleteRoute.hs view
@@ -12,15 +12,13 @@  -- | -- Module      : Network.AWS.EC2.DeleteRoute--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Deletes the specified route from the specified route table.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteRoute.html AWS API Reference> for DeleteRoute. module Network.AWS.EC2.DeleteRoute     (     -- * Creating a Request@@ -88,8 +86,10 @@  instance AWSRequest DeleteRoute where         type Rs DeleteRoute = DeleteRouteResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull DeleteRouteResponse'++instance Hashable DeleteRoute  instance ToHeaders DeleteRoute where         toHeaders = const mempty
gen/Network/AWS/EC2/DeleteRouteTable.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DeleteRouteTable--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -21,8 +21,6 @@ -- Deletes the specified route table. You must disassociate the route table -- from any subnets before you can delete it. You can\'t delete the main -- route table.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteRouteTable.html AWS API Reference> for DeleteRouteTable. module Network.AWS.EC2.DeleteRouteTable     (     -- * Creating a Request@@ -79,8 +77,10 @@  instance AWSRequest DeleteRouteTable where         type Rs DeleteRouteTable = DeleteRouteTableResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull DeleteRouteTableResponse'++instance Hashable DeleteRouteTable  instance ToHeaders DeleteRouteTable where         toHeaders = const mempty
gen/Network/AWS/EC2/DeleteSecurityGroup.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DeleteSecurityGroup--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -24,8 +24,6 @@ -- instance, or is referenced by another security group, the operation -- fails with 'InvalidGroup.InUse' in EC2-Classic or 'DependencyViolation' -- in EC2-VPC.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteSecurityGroup.html AWS API Reference> for DeleteSecurityGroup. module Network.AWS.EC2.DeleteSecurityGroup     (     -- * Creating a Request@@ -92,8 +90,10 @@ instance AWSRequest DeleteSecurityGroup where         type Rs DeleteSecurityGroup =              DeleteSecurityGroupResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull DeleteSecurityGroupResponse'++instance Hashable DeleteSecurityGroup  instance ToHeaders DeleteSecurityGroup where         toHeaders = const mempty
gen/Network/AWS/EC2/DeleteSnapshot.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DeleteSnapshot--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -35,8 +35,6 @@ -- For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-deleting-snapshot.html Deleting an Amazon EBS Snapshot> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteSnapshot.html AWS API Reference> for DeleteSnapshot. module Network.AWS.EC2.DeleteSnapshot     (     -- * Creating a Request@@ -93,8 +91,10 @@  instance AWSRequest DeleteSnapshot where         type Rs DeleteSnapshot = DeleteSnapshotResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull DeleteSnapshotResponse'++instance Hashable DeleteSnapshot  instance ToHeaders DeleteSnapshot where         toHeaders = const mempty
gen/Network/AWS/EC2/DeleteSpotDatafeedSubscription.hs view
@@ -12,15 +12,13 @@  -- | -- Module      : Network.AWS.EC2.DeleteSpotDatafeedSubscription--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Deletes the data feed for Spot instances.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteSpotDatafeedSubscription.html AWS API Reference> for DeleteSpotDatafeedSubscription. module Network.AWS.EC2.DeleteSpotDatafeedSubscription     (     -- * Creating a Request@@ -71,9 +69,11 @@          where         type Rs DeleteSpotDatafeedSubscription =              DeleteSpotDatafeedSubscriptionResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveNull DeleteSpotDatafeedSubscriptionResponse'++instance Hashable DeleteSpotDatafeedSubscription  instance ToHeaders DeleteSpotDatafeedSubscription          where
gen/Network/AWS/EC2/DeleteSubnet.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DeleteSubnet--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Deletes the specified subnet. You must terminate all running instances -- in the subnet before you can delete the subnet.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteSubnet.html AWS API Reference> for DeleteSubnet. module Network.AWS.EC2.DeleteSubnet     (     -- * Creating a Request@@ -78,8 +76,10 @@  instance AWSRequest DeleteSubnet where         type Rs DeleteSubnet = DeleteSubnetResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull DeleteSubnetResponse'++instance Hashable DeleteSubnet  instance ToHeaders DeleteSubnet where         toHeaders = const mempty
gen/Network/AWS/EC2/DeleteTags.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DeleteTags--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -24,8 +24,6 @@ -- For more information about tags, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html Tagging Your Resources> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteTags.html AWS API Reference> for DeleteTags. module Network.AWS.EC2.DeleteTags     (     -- * Creating a Request@@ -94,8 +92,10 @@  instance AWSRequest DeleteTags where         type Rs DeleteTags = DeleteTagsResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull DeleteTagsResponse'++instance Hashable DeleteTags  instance ToHeaders DeleteTags where         toHeaders = const mempty
gen/Network/AWS/EC2/DeleteVPC.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DeleteVPC--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -24,8 +24,6 @@ -- security groups associated with the VPC (except the default one), delete -- all route tables associated with the VPC (except the default one), and -- so on.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteVPC.html AWS API Reference> for DeleteVPC. module Network.AWS.EC2.DeleteVPC     (     -- * Creating a Request@@ -82,8 +80,10 @@  instance AWSRequest DeleteVPC where         type Rs DeleteVPC = DeleteVPCResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull DeleteVPCResponse'++instance Hashable DeleteVPC  instance ToHeaders DeleteVPC where         toHeaders = const mempty
gen/Network/AWS/EC2/DeleteVPCEndpoints.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DeleteVPCEndpoints--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -21,8 +21,6 @@ -- Deletes one or more specified VPC endpoints. Deleting the endpoint also -- deletes the endpoint routes in the route tables that were associated -- with the endpoint.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteVPCEndpoints.html AWS API Reference> for DeleteVPCEndpoints. module Network.AWS.EC2.DeleteVPCEndpoints     (     -- * Creating a Request@@ -82,7 +80,7 @@ instance AWSRequest DeleteVPCEndpoints where         type Rs DeleteVPCEndpoints =              DeleteVPCEndpointsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -90,6 +88,8 @@                    (x .@? "unsuccessful" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DeleteVPCEndpoints  instance ToHeaders DeleteVPCEndpoints where         toHeaders = const mempty
gen/Network/AWS/EC2/DeleteVPCPeeringConnection.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DeleteVPCPeeringConnection--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -22,8 +22,6 @@ -- or the owner of the peer VPC can delete the VPC peering connection if -- it\'s in the 'active' state. The owner of the requester VPC can delete a -- VPC peering connection in the 'pending-acceptance' state.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteVPCPeeringConnection.html AWS API Reference> for DeleteVPCPeeringConnection. module Network.AWS.EC2.DeleteVPCPeeringConnection     (     -- * Creating a Request@@ -84,12 +82,14 @@ instance AWSRequest DeleteVPCPeeringConnection where         type Rs DeleteVPCPeeringConnection =              DeleteVPCPeeringConnectionResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  DeleteVPCPeeringConnectionResponse' <$>                    (x .@? "return") <*> (pure (fromEnum s)))++instance Hashable DeleteVPCPeeringConnection  instance ToHeaders DeleteVPCPeeringConnection where         toHeaders = const mempty
gen/Network/AWS/EC2/DeleteVPNConnection.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DeleteVPNConnection--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -29,8 +29,6 @@ -- create a new VPN connection, you must reconfigure the customer gateway -- using the new configuration information returned with the new VPN -- connection ID.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteVPNConnection.html AWS API Reference> for DeleteVPNConnection. module Network.AWS.EC2.DeleteVPNConnection     (     -- * Creating a Request@@ -88,8 +86,10 @@ instance AWSRequest DeleteVPNConnection where         type Rs DeleteVPNConnection =              DeleteVPNConnectionResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull DeleteVPNConnectionResponse'++instance Hashable DeleteVPNConnection  instance ToHeaders DeleteVPNConnection where         toHeaders = const mempty
gen/Network/AWS/EC2/DeleteVPNConnectionRoute.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DeleteVPNConnectionRoute--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -22,8 +22,6 @@ -- between an existing virtual private gateway and a VPN customer gateway. -- The static route allows traffic to be routed from the virtual private -- gateway to the VPN customer gateway.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteVPNConnectionRoute.html AWS API Reference> for DeleteVPNConnectionRoute. module Network.AWS.EC2.DeleteVPNConnectionRoute     (     -- * Creating a Request@@ -79,9 +77,11 @@ instance AWSRequest DeleteVPNConnectionRoute where         type Rs DeleteVPNConnectionRoute =              DeleteVPNConnectionRouteResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveNull DeleteVPNConnectionRouteResponse'++instance Hashable DeleteVPNConnectionRoute  instance ToHeaders DeleteVPNConnectionRoute where         toHeaders = const mempty
gen/Network/AWS/EC2/DeleteVPNGateway.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DeleteVPNGateway--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -23,8 +23,6 @@ -- delete the VPN connection. Note that you don\'t need to delete the -- virtual private gateway if you plan to delete and recreate the VPN -- connection between your VPC and your network.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteVPNGateway.html AWS API Reference> for DeleteVPNGateway. module Network.AWS.EC2.DeleteVPNGateway     (     -- * Creating a Request@@ -81,8 +79,10 @@  instance AWSRequest DeleteVPNGateway where         type Rs DeleteVPNGateway = DeleteVPNGatewayResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull DeleteVPNGatewayResponse'++instance Hashable DeleteVPNGateway  instance ToHeaders DeleteVPNGateway where         toHeaders = const mempty
gen/Network/AWS/EC2/DeleteVolume.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DeleteVolume--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -26,8 +26,6 @@ -- For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-deleting-volume.html Deleting an Amazon EBS Volume> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteVolume.html AWS API Reference> for DeleteVolume. module Network.AWS.EC2.DeleteVolume     (     -- * Creating a Request@@ -84,8 +82,10 @@  instance AWSRequest DeleteVolume where         type Rs DeleteVolume = DeleteVolumeResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull DeleteVolumeResponse'++instance Hashable DeleteVolume  instance ToHeaders DeleteVolume where         toHeaders = const mempty
gen/Network/AWS/EC2/DeregisterImage.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DeregisterImage--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -22,8 +22,6 @@ -- used to launch new instances. -- -- This command does not delete the AMI.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeregisterImage.html AWS API Reference> for DeregisterImage. module Network.AWS.EC2.DeregisterImage     (     -- * Creating a Request@@ -80,8 +78,10 @@  instance AWSRequest DeregisterImage where         type Rs DeregisterImage = DeregisterImageResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull DeregisterImageResponse'++instance Hashable DeregisterImage  instance ToHeaders DeregisterImage where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeAccountAttributes.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeAccountAttributes--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -39,8 +39,6 @@ -- -   'vpc-max-elastic-ips': The maximum number of Elastic IP addresses --     that you can allocate for use with EC2-VPC. -------- /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeAccountAttributes.html AWS API Reference> for DescribeAccountAttributes. module Network.AWS.EC2.DescribeAccountAttributes     (     -- * Creating a Request@@ -100,7 +98,7 @@ instance AWSRequest DescribeAccountAttributes where         type Rs DescribeAccountAttributes =              DescribeAccountAttributesResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -108,6 +106,8 @@                    (x .@? "accountAttributeSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeAccountAttributes  instance ToHeaders DescribeAccountAttributes where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeAddresses.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeAddresses--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -24,8 +24,6 @@ -- in a VPC. For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html Elastic IP Addresses> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeAddresses.html AWS API Reference> for DescribeAddresses. module Network.AWS.EC2.DescribeAddresses     (     -- * Creating a Request@@ -127,7 +125,7 @@  instance AWSRequest DescribeAddresses where         type Rs DescribeAddresses = DescribeAddressesResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -135,6 +133,8 @@                    (x .@? "addressesSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeAddresses  instance ToHeaders DescribeAddresses where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeAvailabilityZones.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeAvailabilityZones--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -27,8 +27,6 @@ -- For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html Regions and Availability Zones> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeAvailabilityZones.html AWS API Reference> for DescribeAvailabilityZones. module Network.AWS.EC2.DescribeAvailabilityZones     (     -- * Creating a Request@@ -109,7 +107,7 @@ instance AWSRequest DescribeAvailabilityZones where         type Rs DescribeAvailabilityZones =              DescribeAvailabilityZonesResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -117,6 +115,8 @@                    (x .@? "availabilityZoneInfo" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeAvailabilityZones  instance ToHeaders DescribeAvailabilityZones where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeBundleTasks.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeBundleTasks--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -24,8 +24,6 @@ -- bundle task is no longer in the list, you can still register an AMI from -- it. Just use 'RegisterImage' with the Amazon S3 bucket name and image -- manifest name you provided to the bundle task.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeBundleTasks.html AWS API Reference> for DescribeBundleTasks. module Network.AWS.EC2.DescribeBundleTasks     (     -- * Creating a Request@@ -120,7 +118,7 @@ instance AWSRequest DescribeBundleTasks where         type Rs DescribeBundleTasks =              DescribeBundleTasksResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -128,6 +126,8 @@                    (x .@? "bundleInstanceTasksSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeBundleTasks  instance ToHeaders DescribeBundleTasks where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeClassicLinkInstances.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeClassicLinkInstances--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -22,8 +22,6 @@ -- only returns information about EC2-Classic instances linked to a VPC -- through ClassicLink; you cannot use this request to return information -- about other instances.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeClassicLinkInstances.html AWS API Reference> for DescribeClassicLinkInstances. module Network.AWS.EC2.DescribeClassicLinkInstances     (     -- * Creating a Request@@ -143,7 +141,7 @@          where         type Rs DescribeClassicLinkInstances =              DescribeClassicLinkInstancesResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -152,6 +150,8 @@                      (x .@? "instancesSet" .!@ mempty >>=                         may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeClassicLinkInstances  instance ToHeaders DescribeClassicLinkInstances where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeConversionTasks.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeConversionTasks--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -23,7 +23,9 @@ -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UploadingYourInstancesandVolumes.html Using the Command Line Tools to Import Your Virtual Machine to Amazon EC2> -- in the /Amazon Elastic Compute Cloud User Guide/. ----- /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeConversionTasks.html AWS API Reference> for DescribeConversionTasks.+-- For information about the import manifest referenced by this API action,+-- see+-- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html VM Import Manifest>. module Network.AWS.EC2.DescribeConversionTasks     (     -- * Creating a Request@@ -92,7 +94,7 @@ instance AWSRequest DescribeConversionTasks where         type Rs DescribeConversionTasks =              DescribeConversionTasksResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -100,6 +102,8 @@                    (x .@? "conversionTasks" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeConversionTasks  instance ToHeaders DescribeConversionTasks where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeCustomerGateways.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeCustomerGateways--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -23,8 +23,6 @@ -- For more information about VPN customer gateways, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html Adding a Hardware Virtual Private Gateway to Your VPC> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeCustomerGateways.html AWS API Reference> for DescribeCustomerGateways. module Network.AWS.EC2.DescribeCustomerGateways     (     -- * Creating a Request@@ -124,7 +122,7 @@ instance AWSRequest DescribeCustomerGateways where         type Rs DescribeCustomerGateways =              DescribeCustomerGatewaysResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -132,6 +130,8 @@                    (x .@? "customerGatewaySet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeCustomerGateways  instance ToHeaders DescribeCustomerGateways where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeDHCPOptions.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeDHCPOptions--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -23,8 +23,6 @@ -- For more information about DHCP options sets, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html DHCP Options Sets> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeDHCPOptions.html AWS API Reference> for DescribeDHCPOptions. module Network.AWS.EC2.DescribeDHCPOptions     (     -- * Creating a Request@@ -116,7 +114,7 @@ instance AWSRequest DescribeDHCPOptions where         type Rs DescribeDHCPOptions =              DescribeDHCPOptionsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -124,6 +122,8 @@                    (x .@? "dhcpOptionsSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeDHCPOptions  instance ToHeaders DescribeDHCPOptions where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeExportTasks.hs view
@@ -12,15 +12,13 @@  -- | -- Module      : Network.AWS.EC2.DescribeExportTasks--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Describes one or more of your export tasks.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeExportTasks.html AWS API Reference> for DescribeExportTasks. module Network.AWS.EC2.DescribeExportTasks     (     -- * Creating a Request@@ -68,7 +66,7 @@ instance AWSRequest DescribeExportTasks where         type Rs DescribeExportTasks =              DescribeExportTasksResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -76,6 +74,8 @@                    (x .@? "exportTaskSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeExportTasks  instance ToHeaders DescribeExportTasks where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeFlowLogs.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeFlowLogs--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -21,8 +21,6 @@ -- Describes one or more flow logs. To view the information in your flow -- logs (the log streams for the network interfaces), you must use the -- CloudWatch Logs console or the CloudWatch Logs API.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeFlowLogs.html AWS API Reference> for DescribeFlowLogs. module Network.AWS.EC2.DescribeFlowLogs     (     -- * Creating a Request@@ -114,7 +112,7 @@  instance AWSRequest DescribeFlowLogs where         type Rs DescribeFlowLogs = DescribeFlowLogsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -123,6 +121,8 @@                      (x .@? "flowLogSet" .!@ mempty >>=                         may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeFlowLogs  instance ToHeaders DescribeFlowLogs where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeHosts.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeHosts--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -24,8 +24,6 @@ -- currently using. All listed instances consume capacity on your Dedicated -- host. Dedicated hosts that have recently been released will be listed -- with the state 'released'.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeHosts.html AWS API Reference> for DescribeHosts. module Network.AWS.EC2.DescribeHosts     (     -- * Creating a Request@@ -125,7 +123,7 @@  instance AWSRequest DescribeHosts where         type Rs DescribeHosts = DescribeHostsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -134,6 +132,8 @@                       may (parseXMLList "item"))                      <*> (x .@? "nextToken")                      <*> (pure (fromEnum s)))++instance Hashable DescribeHosts  instance ToHeaders DescribeHosts where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeIdFormat.hs view
@@ -12,19 +12,17 @@  -- | -- Module      : Network.AWS.EC2.DescribeIdFormat--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- __Important: This command is reserved for future use, and is currently--- not available for you to use.__------ Describes the ID format settings for your resources, for example, to--- view which resource types are enabled for longer IDs. This request only--- returns information about resource types whose ID formats can be--- modified; it does not return information about other resource types.+-- Describes the ID format settings for your resources on a per-region+-- basis, for example, to view which resource types are enabled for longer+-- IDs. This request only returns information about resource types whose ID+-- formats can be modified; it does not return information about other+-- resource types. -- -- The following resource types support longer IDs: 'instance' | -- 'reservation'.@@ -32,10 +30,10 @@ -- These settings apply to the IAM user who makes the request; they do not -- apply to the entire AWS account. By default, an IAM user defaults to the -- same settings as the root user, unless they explicitly override the--- settings by running the ModifyIdFormat command. These settings are--- applied on a per-region basis.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeIdFormat.html AWS API Reference> for DescribeIdFormat.+-- settings by running the < ModifyIdFormat> command. Resources created+-- with longer IDs are visible to all IAM users, regardless of these+-- settings and provided that they have permission to use the relevant+-- 'Describe' command for the resource type. module Network.AWS.EC2.DescribeIdFormat     (     -- * Creating a Request@@ -82,7 +80,7 @@  instance AWSRequest DescribeIdFormat where         type Rs DescribeIdFormat = DescribeIdFormatResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -90,6 +88,8 @@                    (x .@? "statusSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeIdFormat  instance ToHeaders DescribeIdFormat where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeImageAttribute.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeImageAttribute--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Describes the specified attribute of the specified AMI. You can specify -- only one attribute at a time.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeImageAttribute.html AWS API Reference> for DescribeImageAttribute. module Network.AWS.EC2.DescribeImageAttribute     (     -- * Creating a Request@@ -96,15 +94,15 @@ -- -- __Note__: Depending on your account privileges, the 'blockDeviceMapping' -- attribute may return a 'Client.AuthFailure' error. If this happens, use--- DescribeImages to get information about the block device mapping for the--- AMI.+-- < DescribeImages> to get information about the block device mapping for+-- the AMI. diaiAttribute :: Lens' DescribeImageAttribute ImageAttributeName diaiAttribute = lens _diaiAttribute (\ s a -> s{_diaiAttribute = a});  instance AWSRequest DescribeImageAttribute where         type Rs DescribeImageAttribute =              DescribeImageAttributeResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -123,6 +121,8 @@                      (x .@? "blockDeviceMapping" .!@ mempty >>=                         may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeImageAttribute  instance ToHeaders DescribeImageAttribute where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeImages.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeImages--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -25,8 +25,6 @@ -- -- Deregistered images are included in the returned results for an -- unspecified interval after deregistration.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeImages.html AWS API Reference> for DescribeImages. module Network.AWS.EC2.DescribeImages     (     -- * Creating a Request@@ -199,7 +197,7 @@  instance AWSRequest DescribeImages where         type Rs DescribeImages = DescribeImagesResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -207,6 +205,8 @@                    (x .@? "imagesSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeImages  instance ToHeaders DescribeImages where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeImportImageTasks.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeImportImageTasks--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Displays details about an import virtual machine or import snapshot -- tasks that are already created.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeImportImageTasks.html AWS API Reference> for DescribeImportImageTasks. module Network.AWS.EC2.DescribeImportImageTasks     (     -- * Creating a Request@@ -109,7 +107,7 @@ instance AWSRequest DescribeImportImageTasks where         type Rs DescribeImportImageTasks =              DescribeImportImageTasksResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -118,6 +116,8 @@                      (x .@? "importImageTaskSet" .!@ mempty >>=                         may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeImportImageTasks  instance ToHeaders DescribeImportImageTasks where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeImportSnapshotTasks.hs view
@@ -12,15 +12,13 @@  -- | -- Module      : Network.AWS.EC2.DescribeImportSnapshotTasks--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Describes your import snapshot tasks.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeImportSnapshotTasks.html AWS API Reference> for DescribeImportSnapshotTasks. module Network.AWS.EC2.DescribeImportSnapshotTasks     (     -- * Creating a Request@@ -108,7 +106,7 @@ instance AWSRequest DescribeImportSnapshotTasks where         type Rs DescribeImportSnapshotTasks =              DescribeImportSnapshotTasksResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -117,6 +115,8 @@                      (x .@? "importSnapshotTaskSet" .!@ mempty >>=                         may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeImportSnapshotTasks  instance ToHeaders DescribeImportSnapshotTasks where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeInstanceAttribute.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeInstanceAttribute--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -24,8 +24,6 @@ -- 'disableApiTermination' | 'instanceInitiatedShutdownBehavior' | -- 'rootDeviceName' | 'blockDeviceMapping' | 'productCodes' | -- 'sourceDestCheck' | 'groupSet' | 'ebsOptimized' | 'sriovNetSupport'------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeInstanceAttribute.html AWS API Reference> for DescribeInstanceAttribute. module Network.AWS.EC2.DescribeInstanceAttribute     (     -- * Creating a Request@@ -109,7 +107,7 @@ instance AWSRequest DescribeInstanceAttribute where         type Rs DescribeInstanceAttribute =              DescribeInstanceAttributeResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -134,6 +132,8 @@                      (x .@? "blockDeviceMapping" .!@ mempty >>=                         may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeInstanceAttribute  instance ToHeaders DescribeInstanceAttribute where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeInstanceStatus.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeInstanceStatus--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -43,8 +43,6 @@ --     in the /Amazon Elastic Compute Cloud User Guide/. -- ----- /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeInstanceStatus.html AWS API Reference> for DescribeInstanceStatus.--- -- This operation returns paginated results. module Network.AWS.EC2.DescribeInstanceStatus     (@@ -203,7 +201,7 @@ instance AWSRequest DescribeInstanceStatus where         type Rs DescribeInstanceStatus =              DescribeInstanceStatusResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -212,6 +210,8 @@                       may (parseXMLList "item"))                      <*> (x .@? "nextToken")                      <*> (pure (fromEnum s)))++instance Hashable DescribeInstanceStatus  instance ToHeaders DescribeInstanceStatus where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeInstances.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeInstances--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -30,8 +30,6 @@ -- Recently terminated instances might appear in the returned results. This -- interval is usually less than one hour. ----- /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeInstances.html AWS API Reference> for DescribeInstances.--- -- This operation returns paginated results. module Network.AWS.EC2.DescribeInstances     (@@ -142,8 +140,8 @@ -- -- -   'instance-id' - The ID of the instance. ----- -   'instance-lifecycle' - Indicates whether this is a Spot Instance---     ('spot').+-- -   'instance-lifecycle' - Indicates whether this is a Spot Instance or+--     a Scheduled Instance ('spot' | 'scheduled'). -- -- -   'instance-state-code' - The state of the instance, as a 16-bit --     unsigned integer. The high byte is an opaque internal value and@@ -287,7 +285,7 @@ -- -   'network-interface.mac-address' - The MAC address of the network --     interface. ----- -   'network-interface-private-dns-name' - The private DNS name of the+-- -   'network-interface.private-dns-name' - The private DNS name of the --     network interface. -- -- -   'network-interface.source-dest-check' - Whether the network@@ -385,7 +383,7 @@  instance AWSRequest DescribeInstances where         type Rs DescribeInstances = DescribeInstancesResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -394,6 +392,8 @@                      (x .@? "reservationSet" .!@ mempty >>=                         may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeInstances  instance ToHeaders DescribeInstances where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeInternetGateways.hs view
@@ -12,15 +12,13 @@  -- | -- Module      : Network.AWS.EC2.DescribeInternetGateways--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Describes one or more of your Internet gateways.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeInternetGateways.html AWS API Reference> for DescribeInternetGateways. module Network.AWS.EC2.DescribeInternetGateways     (     -- * Creating a Request@@ -114,7 +112,7 @@ instance AWSRequest DescribeInternetGateways where         type Rs DescribeInternetGateways =              DescribeInternetGatewaysResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -122,6 +120,8 @@                    (x .@? "internetGatewaySet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeInternetGateways  instance ToHeaders DescribeInternetGateways where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeKeyPairs.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeKeyPairs--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -23,8 +23,6 @@ -- For more information about key pairs, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html Key Pairs> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeKeyPairs.html AWS API Reference> for DescribeKeyPairs. module Network.AWS.EC2.DescribeKeyPairs     (     -- * Creating a Request@@ -99,7 +97,7 @@  instance AWSRequest DescribeKeyPairs where         type Rs DescribeKeyPairs = DescribeKeyPairsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -107,6 +105,8 @@                    (x .@? "keySet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeKeyPairs  instance ToHeaders DescribeKeyPairs where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeMovingAddresses.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeMovingAddresses--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -22,8 +22,6 @@ -- platform, or that are being restored to the EC2-Classic platform. This -- request does not return information about any other Elastic IP addresses -- in your account.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeMovingAddresses.html AWS API Reference> for DescribeMovingAddresses. module Network.AWS.EC2.DescribeMovingAddresses     (     -- * Creating a Request@@ -121,7 +119,7 @@ instance AWSRequest DescribeMovingAddresses where         type Rs DescribeMovingAddresses =              DescribeMovingAddressesResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -130,6 +128,8 @@                       may (parseXMLList "item"))                      <*> (x .@? "nextToken")                      <*> (pure (fromEnum s)))++instance Hashable DescribeMovingAddresses  instance ToHeaders DescribeMovingAddresses where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeNatGateways.hs view
@@ -12,15 +12,13 @@  -- | -- Module      : Network.AWS.EC2.DescribeNatGateways--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Describes one or more of the your NAT gateways.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeNatGateways.html AWS API Reference> for DescribeNatGateways. module Network.AWS.EC2.DescribeNatGateways     (     -- * Creating a Request@@ -111,7 +109,7 @@ instance AWSRequest DescribeNatGateways where         type Rs DescribeNatGateways =              DescribeNatGatewaysResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -120,6 +118,8 @@                       may (parseXMLList "item"))                      <*> (x .@? "nextToken")                      <*> (pure (fromEnum s)))++instance Hashable DescribeNatGateways  instance ToHeaders DescribeNatGateways where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeNetworkACLs.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeNetworkACLs--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -23,8 +23,6 @@ -- For more information about network ACLs, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html Network ACLs> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeNetworkACLs.html AWS API Reference> for DescribeNetworkACLs. module Network.AWS.EC2.DescribeNetworkACLs     (     -- * Creating a Request@@ -150,7 +148,7 @@ instance AWSRequest DescribeNetworkACLs where         type Rs DescribeNetworkACLs =              DescribeNetworkACLsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -158,6 +156,8 @@                    (x .@? "networkAclSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeNetworkACLs  instance ToHeaders DescribeNetworkACLs where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeNetworkInterfaceAttribute.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeNetworkInterfaceAttribute--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Describes a network interface attribute. You can specify only one -- attribute at a time.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeNetworkInterfaceAttribute.html AWS API Reference> for DescribeNetworkInterfaceAttribute. module Network.AWS.EC2.DescribeNetworkInterfaceAttribute     (     -- * Creating a Request@@ -96,7 +94,7 @@          where         type Rs DescribeNetworkInterfaceAttribute =              DescribeNetworkInterfaceAttributeResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -108,6 +106,8 @@                      <*> (x .@? "attachment")                      <*> (x .@? "description")                      <*> (pure (fromEnum s)))++instance Hashable DescribeNetworkInterfaceAttribute  instance ToHeaders DescribeNetworkInterfaceAttribute          where
gen/Network/AWS/EC2/DescribeNetworkInterfaces.hs view
@@ -12,15 +12,13 @@  -- | -- Module      : Network.AWS.EC2.DescribeNetworkInterfaces--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Describes one or more of your network interfaces.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeNetworkInterfaces.html AWS API Reference> for DescribeNetworkInterfaces. module Network.AWS.EC2.DescribeNetworkInterfaces     (     -- * Creating a Request@@ -201,7 +199,7 @@ instance AWSRequest DescribeNetworkInterfaces where         type Rs DescribeNetworkInterfaces =              DescribeNetworkInterfacesResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -209,6 +207,8 @@                    (x .@? "networkInterfaceSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeNetworkInterfaces  instance ToHeaders DescribeNetworkInterfaces where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribePlacementGroups.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribePlacementGroups--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -22,8 +22,6 @@ -- about placement groups and cluster instances, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using_cluster_computing.html Cluster Instances> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribePlacementGroups.html AWS API Reference> for DescribePlacementGroups. module Network.AWS.EC2.DescribePlacementGroups     (     -- * Creating a Request@@ -103,7 +101,7 @@ instance AWSRequest DescribePlacementGroups where         type Rs DescribePlacementGroups =              DescribePlacementGroupsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -111,6 +109,8 @@                    (x .@? "placementGroupSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribePlacementGroups  instance ToHeaders DescribePlacementGroups where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribePrefixLists.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribePrefixLists--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -23,8 +23,6 @@ -- address range for the service. A prefix list ID is required for creating -- an outbound security group rule that allows traffic from a VPC to access -- an AWS service through a VPC endpoint.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribePrefixLists.html AWS API Reference> for DescribePrefixLists. module Network.AWS.EC2.DescribePrefixLists     (     -- * Creating a Request@@ -123,7 +121,7 @@ instance AWSRequest DescribePrefixLists where         type Rs DescribePrefixLists =              DescribePrefixListsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -132,6 +130,8 @@                      (x .@? "prefixListSet" .!@ mempty >>=                         may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribePrefixLists  instance ToHeaders DescribePrefixLists where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeRegions.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeRegions--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -22,8 +22,6 @@ -- -- For a list of the regions supported by Amazon EC2, see -- <http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region Regions and Endpoints>.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeRegions.html AWS API Reference> for DescribeRegions. module Network.AWS.EC2.DescribeRegions     (     -- * Creating a Request@@ -97,7 +95,7 @@  instance AWSRequest DescribeRegions where         type Rs DescribeRegions = DescribeRegionsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -105,6 +103,8 @@                    (x .@? "regionInfo" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeRegions  instance ToHeaders DescribeRegions where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeReservedInstances.hs view
@@ -12,19 +12,17 @@  -- | -- Module      : Network.AWS.EC2.DescribeReservedInstances--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Describes one or more of the Reserved instances that you purchased.+-- Describes one or more of the Reserved Instances that you purchased. ----- For more information about Reserved instances, see+-- For more information about Reserved Instances, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html Reserved Instances> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeReservedInstances.html AWS API Reference> for DescribeReservedInstances. module Network.AWS.EC2.DescribeReservedInstances     (     -- * Creating a Request@@ -83,21 +81,21 @@ -- | One or more filters. -- -- -   'availability-zone' - The Availability Zone where the Reserved---     instance can be used.+--     Instance can be used. ----- -   'duration' - The duration of the Reserved instance (one year or+-- -   'duration' - The duration of the Reserved Instance (one year or --     three years), in seconds ('31536000' | '94608000'). ----- -   'end' - The time when the Reserved instance expires (for example,+-- -   'end' - The time when the Reserved Instance expires (for example, --     2015-08-07T11:54:42.000Z). ----- -   'fixed-price' - The purchase price of the Reserved instance (for+-- -   'fixed-price' - The purchase price of the Reserved Instance (for --     example, 9800.0). -- -- -   'instance-type' - The instance type that is covered by the --     reservation. ----- -   'product-description' - The Reserved instance product platform+-- -   'product-description' - The Reserved Instance product platform --     description. Instances that include '(Amazon VPC)' in the product --     platform description will only be displayed to EC2-Classic account --     holders and are for use with Amazon VPC ('Linux\/UNIX' |@@ -111,12 +109,12 @@ --     'Windows with SQL Server Enterprise' | --     'Windows with SQL Server Enterprise (Amazon VPC)'). ----- -   'reserved-instances-id' - The ID of the Reserved instance.+-- -   'reserved-instances-id' - The ID of the Reserved Instance. ----- -   'start' - The time at which the Reserved instance purchase request+-- -   'start' - The time at which the Reserved Instance purchase request --     was placed (for example, 2014-08-07T11:54:42.000Z). ----- -   'state' - The state of the Reserved instance ('payment-pending' |+-- -   'state' - The state of the Reserved Instance ('payment-pending' | --     'active' | 'payment-failed' | 'retired'). -- -- -   'tag':/key/=/value/ - The key\/value combination of a tag assigned@@ -133,22 +131,22 @@ -- -   'tag-value' - The value of a tag assigned to the resource. This --     filter is independent of the 'tag-key' filter. ----- -   'usage-price' - The usage price of the Reserved instance, per hour+-- -   'usage-price' - The usage price of the Reserved Instance, per hour --     (for example, 0.84). -- driFilters :: Lens' DescribeReservedInstances [Filter] driFilters = lens _driFilters (\ s a -> s{_driFilters = a}) . _Default . _Coerce; --- | One or more Reserved instance IDs.+-- | One or more Reserved Instance IDs. ----- Default: Describes all your Reserved instances, or only those otherwise+-- Default: Describes all your Reserved Instances, or only those otherwise -- specified. driReservedInstancesIds :: Lens' DescribeReservedInstances [Text] driReservedInstancesIds = lens _driReservedInstancesIds (\ s a -> s{_driReservedInstancesIds = a}) . _Default . _Coerce; --- | The Reserved instance offering type. If you are using tools that predate+-- | The Reserved Instance offering type. If you are using tools that predate -- the 2011-11-01 API version, you only have access to the--- 'Medium Utilization' Reserved instance offering type.+-- 'Medium Utilization' Reserved Instance offering type. driOfferingType :: Lens' DescribeReservedInstances (Maybe OfferingTypeValues) driOfferingType = lens _driOfferingType (\ s a -> s{_driOfferingType = a}); @@ -162,7 +160,7 @@ instance AWSRequest DescribeReservedInstances where         type Rs DescribeReservedInstances =              DescribeReservedInstancesResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -171,6 +169,8 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) +instance Hashable DescribeReservedInstances+ instance ToHeaders DescribeReservedInstances where         toHeaders = const mempty @@ -212,7 +212,7 @@     , _drirsResponseStatus = pResponseStatus_     } --- | A list of Reserved instances.+-- | A list of Reserved Instances. drirsReservedInstances :: Lens' DescribeReservedInstancesResponse [ReservedInstances] drirsReservedInstances = lens _drirsReservedInstances (\ s a -> s{_drirsReservedInstances = a}) . _Default . _Coerce; 
gen/Network/AWS/EC2/DescribeReservedInstancesListings.hs view
@@ -12,38 +12,36 @@  -- | -- Module      : Network.AWS.EC2.DescribeReservedInstancesListings--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Describes your account\'s Reserved instance listings in the Reserved+-- Describes your account\'s Reserved Instance listings in the Reserved -- Instance Marketplace. -- -- The Reserved Instance Marketplace matches sellers who want to resell--- Reserved instance capacity that they no longer need with buyers who want--- to purchase additional capacity. Reserved instances bought and sold+-- Reserved Instance capacity that they no longer need with buyers who want+-- to purchase additional capacity. Reserved Instances bought and sold -- through the Reserved Instance Marketplace work like any other Reserved -- Instances. ----- As a seller, you choose to list some or all of your Reserved instances,+-- As a seller, you choose to list some or all of your Reserved Instances, -- and you specify the upfront price to receive for them. Your Reserved--- instances are then listed in the Reserved Instance Marketplace and are+-- Instances are then listed in the Reserved Instance Marketplace and are -- available for purchase. ----- As a buyer, you specify the configuration of the Reserved instance to+-- As a buyer, you specify the configuration of the Reserved Instance to -- purchase, and the Marketplace matches what you\'re searching for with -- what\'s available. The Marketplace first sells the lowest priced--- Reserved instances to you, and continues to sell available Reserved+-- Reserved Instances to you, and continues to sell available Reserved -- Instance listings to you until your demand is met. You are charged based -- on the total price of all of the listings that you purchase. -- -- For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html Reserved Instance Marketplace> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeReservedInstancesListings.html AWS API Reference> for DescribeReservedInstancesListings. module Network.AWS.EC2.DescribeReservedInstancesListings     (     -- * Creating a Request@@ -96,12 +94,12 @@  -- | One or more filters. ----- -   'reserved-instances-id' - The ID of the Reserved instances.+-- -   'reserved-instances-id' - The ID of the Reserved Instances. ----- -   'reserved-instances-listing-id' - The ID of the Reserved instances+-- -   'reserved-instances-listing-id' - The ID of the Reserved Instances --     listing. ----- -   'status' - The status of the Reserved instance listing ('pending' |+-- -   'status' - The status of the Reserved Instance listing ('pending' | --     'active' | 'cancelled' | 'closed'). -- -- -   'status-message' - The reason for the status.@@ -109,11 +107,11 @@ drilFilters :: Lens' DescribeReservedInstancesListings [Filter] drilFilters = lens _drilFilters (\ s a -> s{_drilFilters = a}) . _Default . _Coerce; --- | One or more Reserved instance IDs.+-- | One or more Reserved Instance IDs. drilReservedInstancesId :: Lens' DescribeReservedInstancesListings (Maybe Text) drilReservedInstancesId = lens _drilReservedInstancesId (\ s a -> s{_drilReservedInstancesId = a}); --- | One or more Reserved instance Listing IDs.+-- | One or more Reserved Instance listing IDs. drilReservedInstancesListingId :: Lens' DescribeReservedInstancesListings (Maybe Text) drilReservedInstancesListingId = lens _drilReservedInstancesListingId (\ s a -> s{_drilReservedInstancesListingId = a}); @@ -121,7 +119,7 @@          where         type Rs DescribeReservedInstancesListings =              DescribeReservedInstancesListingsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -130,6 +128,8 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) +instance Hashable DescribeReservedInstancesListings+ instance ToHeaders DescribeReservedInstancesListings          where         toHeaders = const mempty@@ -172,7 +172,7 @@     , _drilrsResponseStatus = pResponseStatus_     } --- | Information about the Reserved instance listing.+-- | Information about the Reserved Instance listing. drilrsReservedInstancesListings :: Lens' DescribeReservedInstancesListingsResponse [ReservedInstancesListing] drilrsReservedInstancesListings = lens _drilrsReservedInstancesListings (\ s a -> s{_drilrsReservedInstancesListings = a}) . _Default . _Coerce; 
gen/Network/AWS/EC2/DescribeReservedInstancesModifications.hs view
@@ -12,14 +12,14 @@  -- | -- Module      : Network.AWS.EC2.DescribeReservedInstancesModifications--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Describes the modifications made to your Reserved instances. If no--- parameter is specified, information about all your Reserved instances+-- Describes the modifications made to your Reserved Instances. If no+-- parameter is specified, information about all your Reserved Instances -- modification requests is returned. If a modification ID is specified, -- only information about the specific modification is returned. --@@ -27,8 +27,6 @@ -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html Modifying Reserved Instances> -- in the Amazon Elastic Compute Cloud User Guide. ----- /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeReservedInstancesModifications.html AWS API Reference> for DescribeReservedInstancesModifications.--- -- This operation returns paginated results. module Network.AWS.EC2.DescribeReservedInstancesModifications     (@@ -91,28 +89,28 @@ -- -   'effective-date' - The time when the modification becomes effective. -- -- -   'modification-result.reserved-instances-id' - The ID for the---     Reserved instances created as part of the modification request. This+--     Reserved Instances created as part of the modification request. This --     ID is only available when the status of the modification is --     'fulfilled'. -- -- -   'modification-result.target-configuration.availability-zone' - The---     Availability Zone for the new Reserved instances.+--     Availability Zone for the new Reserved Instances. -- -- -   'modification-result.target-configuration.instance-count ' - The---     number of new Reserved instances.+--     number of new Reserved Instances. -- -- -   'modification-result.target-configuration.instance-type' - The---     instance type of the new Reserved instances.+--     instance type of the new Reserved Instances. -- -- -   'modification-result.target-configuration.platform' - The network---     platform of the new Reserved instances ('EC2-Classic' | 'EC2-VPC').+--     platform of the new Reserved Instances ('EC2-Classic' | 'EC2-VPC'). ----- -   'reserved-instances-id' - The ID of the Reserved instances modified.+-- -   'reserved-instances-id' - The ID of the Reserved Instances modified. -- -- -   'reserved-instances-modification-id' - The ID of the modification --     request. ----- -   'status' - The status of the Reserved instances modification request+-- -   'status' - The status of the Reserved Instances modification request --     ('processing' | 'fulfilled' | 'failed'). -- -- -   'status-message' - The reason for the status.@@ -144,7 +142,7 @@          DescribeReservedInstancesModifications where         type Rs DescribeReservedInstancesModifications =              DescribeReservedInstancesModificationsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -154,6 +152,9 @@                         >>= may (parseXMLList "item"))                      <*> (pure (fromEnum s))) +instance Hashable+         DescribeReservedInstancesModifications+ instance ToHeaders          DescribeReservedInstancesModifications where         toHeaders = const mempty@@ -207,7 +208,7 @@ drimrsNextToken :: Lens' DescribeReservedInstancesModificationsResponse (Maybe Text) drimrsNextToken = lens _drimrsNextToken (\ s a -> s{_drimrsNextToken = a}); --- | The Reserved instance modification information.+-- | The Reserved Instance modification information. drimrsReservedInstancesModifications :: Lens' DescribeReservedInstancesModificationsResponse [ReservedInstancesModification] drimrsReservedInstancesModifications = lens _drimrsReservedInstancesModifications (\ s a -> s{_drimrsReservedInstancesModifications = a}) . _Default . _Coerce; 
gen/Network/AWS/EC2/DescribeReservedInstancesOfferings.hs view
@@ -12,28 +12,26 @@  -- | -- Module      : Network.AWS.EC2.DescribeReservedInstancesOfferings--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Describes Reserved instance offerings that are available for purchase.--- With Reserved instances, you purchase the right to launch instances for+-- Describes Reserved Instance offerings that are available for purchase.+-- With Reserved Instances, you purchase the right to launch instances for -- a period of time. During that time period, you do not receive -- insufficient capacity errors, and you pay a lower usage rate than the -- rate charged for On-Demand instances for the actual time used. ----- If you have listed your own Reserved instances for sale in the Reserved+-- If you have listed your own Reserved Instances for sale in the Reserved -- Instance Marketplace, they will be excluded from these results. This is--- to ensure that you do not purchase your own Reserved instances.+-- to ensure that you do not purchase your own Reserved Instances. -- -- For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html Reserved Instance Marketplace> -- in the /Amazon Elastic Compute Cloud User Guide/. ----- /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeReservedInstancesOfferings.html AWS API Reference> for DescribeReservedInstancesOfferings.--- -- This operation returns paginated results. module Network.AWS.EC2.DescribeReservedInstancesOfferings     (@@ -149,7 +147,7 @@ drioMaxDuration :: Lens' DescribeReservedInstancesOfferings (Maybe Integer) drioMaxDuration = lens _drioMaxDuration (\ s a -> s{_drioMaxDuration = a}); --- | The Reserved instance product platform description. Instances that+-- | The Reserved Instance product platform description. Instances that -- include '(Amazon VPC)' in the description are for use with Amazon VPC. drioProductDescription :: Lens' DescribeReservedInstancesOfferings (Maybe RIProductDescription) drioProductDescription = lens _drioProductDescription (\ s a -> s{_drioProductDescription = a});@@ -157,12 +155,12 @@ -- | One or more filters. -- -- -   'availability-zone' - The Availability Zone where the Reserved---     instance can be used.+--     Instance can be used. ----- -   'duration' - The duration of the Reserved instance (for example, one+-- -   'duration' - The duration of the Reserved Instance (for example, one --     year or three years), in seconds ('31536000' | '94608000'). ----- -   'fixed-price' - The purchase price of the Reserved instance (for+-- -   'fixed-price' - The purchase price of the Reserved Instance (for --     example, 9800.0). -- -- -   'instance-type' - The instance type that is covered by the@@ -173,7 +171,7 @@ --     default behavior, all offerings from both AWS and the Reserved --     Instance Marketplace are listed. ----- -   'product-description' - The Reserved instance product platform+-- -   'product-description' - The Reserved Instance product platform --     description. Instances that include '(Amazon VPC)' in the product --     platform description will only be displayed to EC2-Classic account --     holders and are for use with Amazon VPC. ('Linux\/UNIX' |@@ -187,10 +185,10 @@ --     'Windows with SQL Server Enterprise' | --     'Windows with SQL Server Enterprise (Amazon VPC)') ----- -   'reserved-instances-offering-id' - The Reserved instances\' offering+-- -   'reserved-instances-offering-id' - The Reserved Instances offering --     ID. ----- -   'usage-price' - The usage price of the Reserved instance, per hour+-- -   'usage-price' - The usage price of the Reserved Instance, per hour --     (for example, 0.84). -- drioFilters :: Lens' DescribeReservedInstancesOfferings [Filter]@@ -218,23 +216,23 @@ drioMinDuration :: Lens' DescribeReservedInstancesOfferings (Maybe Integer) drioMinDuration = lens _drioMinDuration (\ s a -> s{_drioMinDuration = a}); --- | The Availability Zone in which the Reserved instance can be used.+-- | The Availability Zone in which the Reserved Instance can be used. drioAvailabilityZone :: Lens' DescribeReservedInstancesOfferings (Maybe Text) drioAvailabilityZone = lens _drioAvailabilityZone (\ s a -> s{_drioAvailabilityZone = a}); --- | The Reserved instance offering type. If you are using tools that predate+-- | The Reserved Instance offering type. If you are using tools that predate -- the 2011-11-01 API version, you only have access to the--- 'Medium Utilization' Reserved instance offering type.+-- 'Medium Utilization' Reserved Instance offering type. drioOfferingType :: Lens' DescribeReservedInstancesOfferings (Maybe OfferingTypeValues) drioOfferingType = lens _drioOfferingType (\ s a -> s{_drioOfferingType = a}); --- | One or more Reserved instances offering IDs.+-- | One or more Reserved Instances offering IDs. drioReservedInstancesOfferingIds :: Lens' DescribeReservedInstancesOfferings [Text] drioReservedInstancesOfferingIds = lens _drioReservedInstancesOfferingIds (\ s a -> s{_drioReservedInstancesOfferingIds = a}) . _Default . _Coerce;  -- | The tenancy of the instances covered by the reservation. A Reserved--- instance with a tenancy of 'dedicated' is applied to instances that run--- in a VPC on single-tenant hardware (i.e., Dedicated instances).+-- Instance with a tenancy of 'dedicated' is applied to instances that run+-- in a VPC on single-tenant hardware (i.e., Dedicated Instances). -- -- Default: 'default' drioInstanceTenancy :: Lens' DescribeReservedInstancesOfferings (Maybe Tenancy)@@ -275,7 +273,7 @@          DescribeReservedInstancesOfferings where         type Rs DescribeReservedInstancesOfferings =              DescribeReservedInstancesOfferingsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -285,6 +283,8 @@                         may (parseXMLList "item"))                      <*> (pure (fromEnum s))) +instance Hashable DescribeReservedInstancesOfferings+ instance ToHeaders DescribeReservedInstancesOfferings          where         toHeaders = const mempty@@ -348,7 +348,7 @@ driorsNextToken :: Lens' DescribeReservedInstancesOfferingsResponse (Maybe Text) driorsNextToken = lens _driorsNextToken (\ s a -> s{_driorsNextToken = a}); --- | A list of Reserved instances offerings.+-- | A list of Reserved Instances offerings. driorsReservedInstancesOfferings :: Lens' DescribeReservedInstancesOfferingsResponse [ReservedInstancesOffering] driorsReservedInstancesOfferings = lens _driorsReservedInstancesOfferings (\ s a -> s{_driorsReservedInstancesOfferings = a}) . _Default . _Coerce; 
gen/Network/AWS/EC2/DescribeRouteTables.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeRouteTables--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -28,8 +28,6 @@ -- For more information about route tables, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html Route Tables> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeRouteTables.html AWS API Reference> for DescribeRouteTables. module Network.AWS.EC2.DescribeRouteTables     (     -- * Creating a Request@@ -161,7 +159,7 @@ instance AWSRequest DescribeRouteTables where         type Rs DescribeRouteTables =              DescribeRouteTablesResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -169,6 +167,8 @@                    (x .@? "routeTableSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeRouteTables  instance ToHeaders DescribeRouteTables where         toHeaders = const mempty
+ gen/Network/AWS/EC2/DescribeScheduledInstanceAvailability.hs view
@@ -0,0 +1,249 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.DescribeScheduledInstanceAvailability+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Finds available schedules that meet the specified criteria.+--+-- You can search for an available schedule no more than 3 months in+-- advance. You must meet the minimum required duration of 1,200 hours per+-- year. For example, the minimum daily schedule is 4 hours, the minimum+-- weekly schedule is 24 hours, and the minimum monthly schedule is 100+-- hours.+--+-- After you find a schedule that meets your needs, call+-- < PurchaseScheduledInstances> to purchase Scheduled Instances with that+-- schedule.+module Network.AWS.EC2.DescribeScheduledInstanceAvailability+    (+    -- * Creating a Request+      describeScheduledInstanceAvailability+    , DescribeScheduledInstanceAvailability+    -- * Request Lenses+    , dsiaMinSlotDurationInHours+    , dsiaFilters+    , dsiaNextToken+    , dsiaMaxSlotDurationInHours+    , dsiaDryRun+    , dsiaMaxResults+    , dsiaRecurrence+    , dsiaFirstSlotStartTimeRange++    -- * Destructuring the Response+    , describeScheduledInstanceAvailabilityResponse+    , DescribeScheduledInstanceAvailabilityResponse+    -- * Response Lenses+    , dsiarsScheduledInstanceAvailabilitySet+    , dsiarsNextToken+    , dsiarsResponseStatus+    ) where++import           Network.AWS.EC2.Types+import           Network.AWS.EC2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for DescribeScheduledInstanceAvailability.+--+-- /See:/ 'describeScheduledInstanceAvailability' smart constructor.+data DescribeScheduledInstanceAvailability = DescribeScheduledInstanceAvailability'+    { _dsiaMinSlotDurationInHours  :: !(Maybe Int)+    , _dsiaFilters                 :: !(Maybe [Filter])+    , _dsiaNextToken               :: !(Maybe Text)+    , _dsiaMaxSlotDurationInHours  :: !(Maybe Int)+    , _dsiaDryRun                  :: !(Maybe Bool)+    , _dsiaMaxResults              :: !(Maybe Int)+    , _dsiaRecurrence              :: !ScheduledInstanceRecurrenceRequest+    , _dsiaFirstSlotStartTimeRange :: !SlotDateTimeRangeRequest+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeScheduledInstanceAvailability' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsiaMinSlotDurationInHours'+--+-- * 'dsiaFilters'+--+-- * 'dsiaNextToken'+--+-- * 'dsiaMaxSlotDurationInHours'+--+-- * 'dsiaDryRun'+--+-- * 'dsiaMaxResults'+--+-- * 'dsiaRecurrence'+--+-- * 'dsiaFirstSlotStartTimeRange'+describeScheduledInstanceAvailability+    :: ScheduledInstanceRecurrenceRequest -- ^ 'dsiaRecurrence'+    -> SlotDateTimeRangeRequest -- ^ 'dsiaFirstSlotStartTimeRange'+    -> DescribeScheduledInstanceAvailability+describeScheduledInstanceAvailability pRecurrence_ pFirstSlotStartTimeRange_ =+    DescribeScheduledInstanceAvailability'+    { _dsiaMinSlotDurationInHours = Nothing+    , _dsiaFilters = Nothing+    , _dsiaNextToken = Nothing+    , _dsiaMaxSlotDurationInHours = Nothing+    , _dsiaDryRun = Nothing+    , _dsiaMaxResults = Nothing+    , _dsiaRecurrence = pRecurrence_+    , _dsiaFirstSlotStartTimeRange = pFirstSlotStartTimeRange_+    }++-- | The minimum available duration, in hours. The minimum required duration+-- is 1,200 hours per year. For example, the minimum daily schedule is 4+-- hours, the minimum weekly schedule is 24 hours, and the minimum monthly+-- schedule is 100 hours.+dsiaMinSlotDurationInHours :: Lens' DescribeScheduledInstanceAvailability (Maybe Int)+dsiaMinSlotDurationInHours = lens _dsiaMinSlotDurationInHours (\ s a -> s{_dsiaMinSlotDurationInHours = a});++-- | One or more filters.+--+-- -   'availability-zone' - The Availability Zone (for example,+--     'us-west-2a').+--+-- -   'instance-type' - The instance type (for example, 'c4.large').+--+-- -   'network-platform' - The network platform ('EC2-Classic' or+--     'EC2-VPC').+--+-- -   'platform' - The platform ('Linux\/UNIX' or 'Windows').+--+dsiaFilters :: Lens' DescribeScheduledInstanceAvailability [Filter]+dsiaFilters = lens _dsiaFilters (\ s a -> s{_dsiaFilters = a}) . _Default . _Coerce;++-- | The token for the next set of results.+dsiaNextToken :: Lens' DescribeScheduledInstanceAvailability (Maybe Text)+dsiaNextToken = lens _dsiaNextToken (\ s a -> s{_dsiaNextToken = a});++-- | The maximum available duration, in hours. This value must be greater+-- than 'MinSlotDurationInHours' and less than 1,720.+dsiaMaxSlotDurationInHours :: Lens' DescribeScheduledInstanceAvailability (Maybe Int)+dsiaMaxSlotDurationInHours = lens _dsiaMaxSlotDurationInHours (\ s a -> s{_dsiaMaxSlotDurationInHours = a});++-- | Checks whether you have the required permissions for the action, without+-- actually making the request, and provides an error response. If you have+-- the required permissions, the error response is 'DryRunOperation'.+-- Otherwise, it is 'UnauthorizedOperation'.+dsiaDryRun :: Lens' DescribeScheduledInstanceAvailability (Maybe Bool)+dsiaDryRun = lens _dsiaDryRun (\ s a -> s{_dsiaDryRun = a});++-- | The maximum number of results to return in a single call. This value can+-- be between 5 and 300. The default value is 300. To retrieve the+-- remaining results, make another call with the returned 'NextToken'+-- value.+dsiaMaxResults :: Lens' DescribeScheduledInstanceAvailability (Maybe Int)+dsiaMaxResults = lens _dsiaMaxResults (\ s a -> s{_dsiaMaxResults = a});++-- | The schedule recurrence.+dsiaRecurrence :: Lens' DescribeScheduledInstanceAvailability ScheduledInstanceRecurrenceRequest+dsiaRecurrence = lens _dsiaRecurrence (\ s a -> s{_dsiaRecurrence = a});++-- | The time period for the first schedule to start.+dsiaFirstSlotStartTimeRange :: Lens' DescribeScheduledInstanceAvailability SlotDateTimeRangeRequest+dsiaFirstSlotStartTimeRange = lens _dsiaFirstSlotStartTimeRange (\ s a -> s{_dsiaFirstSlotStartTimeRange = a});++instance AWSRequest+         DescribeScheduledInstanceAvailability where+        type Rs DescribeScheduledInstanceAvailability =+             DescribeScheduledInstanceAvailabilityResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 DescribeScheduledInstanceAvailabilityResponse' <$>+                   (x .@? "scheduledInstanceAvailabilitySet" .!@ mempty+                      >>= may (parseXMLList "item"))+                     <*> (x .@? "nextToken")+                     <*> (pure (fromEnum s)))++instance Hashable+         DescribeScheduledInstanceAvailability++instance ToHeaders+         DescribeScheduledInstanceAvailability where+        toHeaders = const mempty++instance ToPath DescribeScheduledInstanceAvailability+         where+        toPath = const "/"++instance ToQuery+         DescribeScheduledInstanceAvailability where+        toQuery DescribeScheduledInstanceAvailability'{..}+          = mconcat+              ["Action" =:+                 ("DescribeScheduledInstanceAvailability" ::+                    ByteString),+               "Version" =: ("2015-10-01" :: ByteString),+               "MinSlotDurationInHours" =:+                 _dsiaMinSlotDurationInHours,+               toQuery (toQueryList "Filter" <$> _dsiaFilters),+               "NextToken" =: _dsiaNextToken,+               "MaxSlotDurationInHours" =:+                 _dsiaMaxSlotDurationInHours,+               "DryRun" =: _dsiaDryRun,+               "MaxResults" =: _dsiaMaxResults,+               "Recurrence" =: _dsiaRecurrence,+               "FirstSlotStartTimeRange" =:+                 _dsiaFirstSlotStartTimeRange]++-- | Contains the output of DescribeScheduledInstanceAvailability.+--+-- /See:/ 'describeScheduledInstanceAvailabilityResponse' smart constructor.+data DescribeScheduledInstanceAvailabilityResponse = DescribeScheduledInstanceAvailabilityResponse'+    { _dsiarsScheduledInstanceAvailabilitySet :: !(Maybe [ScheduledInstanceAvailability])+    , _dsiarsNextToken                        :: !(Maybe Text)+    , _dsiarsResponseStatus                   :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeScheduledInstanceAvailabilityResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsiarsScheduledInstanceAvailabilitySet'+--+-- * 'dsiarsNextToken'+--+-- * 'dsiarsResponseStatus'+describeScheduledInstanceAvailabilityResponse+    :: Int -- ^ 'dsiarsResponseStatus'+    -> DescribeScheduledInstanceAvailabilityResponse+describeScheduledInstanceAvailabilityResponse pResponseStatus_ =+    DescribeScheduledInstanceAvailabilityResponse'+    { _dsiarsScheduledInstanceAvailabilitySet = Nothing+    , _dsiarsNextToken = Nothing+    , _dsiarsResponseStatus = pResponseStatus_+    }++-- | Information about the available Scheduled Instances.+dsiarsScheduledInstanceAvailabilitySet :: Lens' DescribeScheduledInstanceAvailabilityResponse [ScheduledInstanceAvailability]+dsiarsScheduledInstanceAvailabilitySet = lens _dsiarsScheduledInstanceAvailabilitySet (\ s a -> s{_dsiarsScheduledInstanceAvailabilitySet = a}) . _Default . _Coerce;++-- | The token required to retrieve the next set of results. This value is+-- 'null' when there are no more results to return.+dsiarsNextToken :: Lens' DescribeScheduledInstanceAvailabilityResponse (Maybe Text)+dsiarsNextToken = lens _dsiarsNextToken (\ s a -> s{_dsiarsNextToken = a});++-- | The response status code.+dsiarsResponseStatus :: Lens' DescribeScheduledInstanceAvailabilityResponse Int+dsiarsResponseStatus = lens _dsiarsResponseStatus (\ s a -> s{_dsiarsResponseStatus = a});
+ gen/Network/AWS/EC2/DescribeScheduledInstances.hs view
@@ -0,0 +1,206 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.DescribeScheduledInstances+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes one or more of your Scheduled Instances.+module Network.AWS.EC2.DescribeScheduledInstances+    (+    -- * Creating a Request+      describeScheduledInstances+    , DescribeScheduledInstances+    -- * Request Lenses+    , dsiFilters+    , dsiSlotStartTimeRange+    , dsiNextToken+    , dsiScheduledInstanceIds+    , dsiDryRun+    , dsiMaxResults++    -- * Destructuring the Response+    , describeScheduledInstancesResponse+    , DescribeScheduledInstancesResponse+    -- * Response Lenses+    , dsirsNextToken+    , dsirsScheduledInstanceSet+    , dsirsResponseStatus+    ) where++import           Network.AWS.EC2.Types+import           Network.AWS.EC2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for DescribeScheduledInstances.+--+-- /See:/ 'describeScheduledInstances' smart constructor.+data DescribeScheduledInstances = DescribeScheduledInstances'+    { _dsiFilters              :: !(Maybe [Filter])+    , _dsiSlotStartTimeRange   :: !(Maybe SlotStartTimeRangeRequest)+    , _dsiNextToken            :: !(Maybe Text)+    , _dsiScheduledInstanceIds :: !(Maybe [Text])+    , _dsiDryRun               :: !(Maybe Bool)+    , _dsiMaxResults           :: !(Maybe Int)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeScheduledInstances' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsiFilters'+--+-- * 'dsiSlotStartTimeRange'+--+-- * 'dsiNextToken'+--+-- * 'dsiScheduledInstanceIds'+--+-- * 'dsiDryRun'+--+-- * 'dsiMaxResults'+describeScheduledInstances+    :: DescribeScheduledInstances+describeScheduledInstances =+    DescribeScheduledInstances'+    { _dsiFilters = Nothing+    , _dsiSlotStartTimeRange = Nothing+    , _dsiNextToken = Nothing+    , _dsiScheduledInstanceIds = Nothing+    , _dsiDryRun = Nothing+    , _dsiMaxResults = Nothing+    }++-- | One or more filters.+--+-- -   'availability-zone' - The Availability Zone (for example,+--     'us-west-2a').+--+-- -   'instance-type' - The instance type (for example, 'c4.large').+--+-- -   'network-platform' - The network platform ('EC2-Classic' or+--     'EC2-VPC').+--+-- -   'platform' - The platform ('Linux\/UNIX' or 'Windows').+--+dsiFilters :: Lens' DescribeScheduledInstances [Filter]+dsiFilters = lens _dsiFilters (\ s a -> s{_dsiFilters = a}) . _Default . _Coerce;++-- | The time period for the first schedule to start.+dsiSlotStartTimeRange :: Lens' DescribeScheduledInstances (Maybe SlotStartTimeRangeRequest)+dsiSlotStartTimeRange = lens _dsiSlotStartTimeRange (\ s a -> s{_dsiSlotStartTimeRange = a});++-- | The token for the next set of results.+dsiNextToken :: Lens' DescribeScheduledInstances (Maybe Text)+dsiNextToken = lens _dsiNextToken (\ s a -> s{_dsiNextToken = a});++-- | One or more Scheduled Instance IDs.+dsiScheduledInstanceIds :: Lens' DescribeScheduledInstances [Text]+dsiScheduledInstanceIds = lens _dsiScheduledInstanceIds (\ s a -> s{_dsiScheduledInstanceIds = a}) . _Default . _Coerce;++-- | Checks whether you have the required permissions for the action, without+-- actually making the request, and provides an error response. If you have+-- the required permissions, the error response is 'DryRunOperation'.+-- Otherwise, it is 'UnauthorizedOperation'.+dsiDryRun :: Lens' DescribeScheduledInstances (Maybe Bool)+dsiDryRun = lens _dsiDryRun (\ s a -> s{_dsiDryRun = a});++-- | The maximum number of results to return in a single call. This value can+-- be between 5 and 300. The default value is 100. To retrieve the+-- remaining results, make another call with the returned 'NextToken'+-- value.+dsiMaxResults :: Lens' DescribeScheduledInstances (Maybe Int)+dsiMaxResults = lens _dsiMaxResults (\ s a -> s{_dsiMaxResults = a});++instance AWSRequest DescribeScheduledInstances where+        type Rs DescribeScheduledInstances =+             DescribeScheduledInstancesResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 DescribeScheduledInstancesResponse' <$>+                   (x .@? "nextToken") <*>+                     (x .@? "scheduledInstanceSet" .!@ mempty >>=+                        may (parseXMLList "item"))+                     <*> (pure (fromEnum s)))++instance Hashable DescribeScheduledInstances++instance ToHeaders DescribeScheduledInstances where+        toHeaders = const mempty++instance ToPath DescribeScheduledInstances where+        toPath = const "/"++instance ToQuery DescribeScheduledInstances where+        toQuery DescribeScheduledInstances'{..}+          = mconcat+              ["Action" =:+                 ("DescribeScheduledInstances" :: ByteString),+               "Version" =: ("2015-10-01" :: ByteString),+               toQuery (toQueryList "Filter" <$> _dsiFilters),+               "SlotStartTimeRange" =: _dsiSlotStartTimeRange,+               "NextToken" =: _dsiNextToken,+               toQuery+                 (toQueryList "ScheduledInstanceId" <$>+                    _dsiScheduledInstanceIds),+               "DryRun" =: _dsiDryRun,+               "MaxResults" =: _dsiMaxResults]++-- | Contains the output of DescribeScheduledInstances.+--+-- /See:/ 'describeScheduledInstancesResponse' smart constructor.+data DescribeScheduledInstancesResponse = DescribeScheduledInstancesResponse'+    { _dsirsNextToken            :: !(Maybe Text)+    , _dsirsScheduledInstanceSet :: !(Maybe [ScheduledInstance])+    , _dsirsResponseStatus       :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeScheduledInstancesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsirsNextToken'+--+-- * 'dsirsScheduledInstanceSet'+--+-- * 'dsirsResponseStatus'+describeScheduledInstancesResponse+    :: Int -- ^ 'dsirsResponseStatus'+    -> DescribeScheduledInstancesResponse+describeScheduledInstancesResponse pResponseStatus_ =+    DescribeScheduledInstancesResponse'+    { _dsirsNextToken = Nothing+    , _dsirsScheduledInstanceSet = Nothing+    , _dsirsResponseStatus = pResponseStatus_+    }++-- | The token required to retrieve the next set of results. This value is+-- 'null' when there are no more results to return.+dsirsNextToken :: Lens' DescribeScheduledInstancesResponse (Maybe Text)+dsirsNextToken = lens _dsirsNextToken (\ s a -> s{_dsirsNextToken = a});++-- | Information about the Scheduled Instances.+dsirsScheduledInstanceSet :: Lens' DescribeScheduledInstancesResponse [ScheduledInstance]+dsirsScheduledInstanceSet = lens _dsirsScheduledInstanceSet (\ s a -> s{_dsirsScheduledInstanceSet = a}) . _Default . _Coerce;++-- | The response status code.+dsirsResponseStatus :: Lens' DescribeScheduledInstancesResponse Int+dsirsResponseStatus = lens _dsirsResponseStatus (\ s a -> s{_dsirsResponseStatus = a});
gen/Network/AWS/EC2/DescribeSecurityGroups.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeSecurityGroups--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -26,8 +26,6 @@ -- in the /Amazon Elastic Compute Cloud User Guide/ and -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html Security Groups for Your VPC> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSecurityGroups.html AWS API Reference> for DescribeSecurityGroups. module Network.AWS.EC2.DescribeSecurityGroups     (     -- * Creating a Request@@ -155,7 +153,7 @@ instance AWSRequest DescribeSecurityGroups where         type Rs DescribeSecurityGroups =              DescribeSecurityGroupsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -163,6 +161,8 @@                    (x .@? "securityGroupInfo" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeSecurityGroups  instance ToHeaders DescribeSecurityGroups where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeSnapshotAttribute.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeSnapshotAttribute--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -24,8 +24,6 @@ -- For more information about EBS snapshots, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSSnapshots.html Amazon EBS Snapshots> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshotAttribute.html AWS API Reference> for DescribeSnapshotAttribute. module Network.AWS.EC2.DescribeSnapshotAttribute     (     -- * Creating a Request@@ -98,7 +96,7 @@ instance AWSRequest DescribeSnapshotAttribute where         type Rs DescribeSnapshotAttribute =              DescribeSnapshotAttributeResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -110,6 +108,8 @@                         may (parseXMLList "item"))                      <*> (x .@? "snapshotId")                      <*> (pure (fromEnum s)))++instance Hashable DescribeSnapshotAttribute  instance ToHeaders DescribeSnapshotAttribute where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeSnapshots.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeSnapshots--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -66,8 +66,6 @@ -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSSnapshots.html Amazon EBS Snapshots> -- in the /Amazon Elastic Compute Cloud User Guide/. ----- /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html AWS API Reference> for DescribeSnapshots.--- -- This operation returns paginated results. module Network.AWS.EC2.DescribeSnapshots     (@@ -233,7 +231,7 @@  instance AWSRequest DescribeSnapshots where         type Rs DescribeSnapshots = DescribeSnapshotsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -242,6 +240,8 @@                      (x .@? "snapshotSet" .!@ mempty >>=                         may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeSnapshots  instance ToHeaders DescribeSnapshots where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeSpotDatafeedSubscription.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeSpotDatafeedSubscription--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -21,8 +21,6 @@ -- Describes the data feed for Spot instances. For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html Spot Instance Data Feed> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSpotDatafeedSubscription.html AWS API Reference> for DescribeSpotDatafeedSubscription. module Network.AWS.EC2.DescribeSpotDatafeedSubscription     (     -- * Creating a Request@@ -76,13 +74,15 @@          where         type Rs DescribeSpotDatafeedSubscription =              DescribeSpotDatafeedSubscriptionResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  DescribeSpotDatafeedSubscriptionResponse' <$>                    (x .@? "spotDatafeedSubscription") <*>                      (pure (fromEnum s)))++instance Hashable DescribeSpotDatafeedSubscription  instance ToHeaders DescribeSpotDatafeedSubscription          where
gen/Network/AWS/EC2/DescribeSpotFleetInstances.hs view
@@ -12,15 +12,13 @@  -- | -- Module      : Network.AWS.EC2.DescribeSpotFleetInstances--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Describes the running instances for the specified Spot fleet.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSpotFleetInstances.html AWS API Reference> for DescribeSpotFleetInstances. module Network.AWS.EC2.DescribeSpotFleetInstances     (     -- * Creating a Request@@ -106,7 +104,7 @@ instance AWSRequest DescribeSpotFleetInstances where         type Rs DescribeSpotFleetInstances =              DescribeSpotFleetInstancesResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -116,6 +114,8 @@                      <*>                      (x .@? "activeInstanceSet" .!@ mempty >>=                         parseXMLList "item"))++instance Hashable DescribeSpotFleetInstances  instance ToHeaders DescribeSpotFleetInstances where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeSpotFleetRequestHistory.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeSpotFleetRequestHistory--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -24,8 +24,6 @@ -- Spot fleet events are delayed by up to 30 seconds before they can be -- described. This ensures that you can query by the last evaluated time -- and not miss a recorded event.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSpotFleetRequestHistory.html AWS API Reference> for DescribeSpotFleetRequestHistory. module Network.AWS.EC2.DescribeSpotFleetRequestHistory     (     -- * Creating a Request@@ -134,7 +132,7 @@          where         type Rs DescribeSpotFleetRequestHistory =              DescribeSpotFleetRequestHistoryResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -146,6 +144,8 @@                      <*>                      (x .@? "historyRecordSet" .!@ mempty >>=                         parseXMLList "item"))++instance Hashable DescribeSpotFleetRequestHistory  instance ToHeaders DescribeSpotFleetRequestHistory          where
gen/Network/AWS/EC2/DescribeSpotFleetRequests.hs view
@@ -12,15 +12,13 @@  -- | -- Module      : Network.AWS.EC2.DescribeSpotFleetRequests--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Describes your Spot fleet requests.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSpotFleetRequests.html AWS API Reference> for DescribeSpotFleetRequests. module Network.AWS.EC2.DescribeSpotFleetRequests     (     -- * Creating a Request@@ -104,7 +102,7 @@ instance AWSRequest DescribeSpotFleetRequests where         type Rs DescribeSpotFleetRequests =              DescribeSpotFleetRequestsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -112,6 +110,8 @@                    (x .@? "nextToken") <*> (pure (fromEnum s)) <*>                      (x .@? "spotFleetRequestConfigSet" .!@ mempty >>=                         parseXMLList "item"))++instance Hashable DescribeSpotFleetRequests  instance ToHeaders DescribeSpotFleetRequests where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeSpotInstanceRequests.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeSpotInstanceRequests--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -29,11 +29,9 @@ -- You can use 'DescribeSpotInstanceRequests' to find a running Spot -- instance by examining the response. If the status of the Spot instance -- is 'fulfilled', the instance ID appears in the response and contains the--- identifier of the instance. Alternatively, you can use DescribeInstances--- with a filter to look for instances where the instance lifecycle is--- 'spot'.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSpotInstanceRequests.html AWS API Reference> for DescribeSpotInstanceRequests.+-- identifier of the instance. Alternatively, you can use+-- < DescribeInstances> with a filter to look for instances where the+-- instance lifecycle is 'spot'. module Network.AWS.EC2.DescribeSpotInstanceRequests     (     -- * Creating a Request@@ -223,7 +221,7 @@          where         type Rs DescribeSpotInstanceRequests =              DescribeSpotInstanceRequestsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -231,6 +229,8 @@                    (x .@? "spotInstanceRequestSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeSpotInstanceRequests  instance ToHeaders DescribeSpotInstanceRequests where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeSpotPriceHistory.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeSpotPriceHistory--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -30,8 +30,6 @@ -- that you specified; the response merely indicates the last time that the -- price changed. ----- /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSpotPriceHistory.html AWS API Reference> for DescribeSpotPriceHistory.--- -- This operation returns paginated results. module Network.AWS.EC2.DescribeSpotPriceHistory     (@@ -192,7 +190,7 @@ instance AWSRequest DescribeSpotPriceHistory where         type Rs DescribeSpotPriceHistory =              DescribeSpotPriceHistoryResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -201,6 +199,8 @@                      (x .@? "spotPriceHistorySet" .!@ mempty >>=                         may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeSpotPriceHistory  instance ToHeaders DescribeSpotPriceHistory where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeSubnets.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeSubnets--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -23,8 +23,6 @@ -- For more information about subnets, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html Your VPC and Subnets> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSubnets.html AWS API Reference> for DescribeSubnets. module Network.AWS.EC2.DescribeSubnets     (     -- * Creating a Request@@ -130,7 +128,7 @@  instance AWSRequest DescribeSubnets where         type Rs DescribeSubnets = DescribeSubnetsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -138,6 +136,8 @@                    (x .@? "subnetSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeSubnets  instance ToHeaders DescribeSubnets where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeTags.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeTags--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -24,8 +24,6 @@ -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html Tagging Your Resources> -- in the /Amazon Elastic Compute Cloud User Guide/. ----- /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeTags.html AWS API Reference> for DescribeTags.--- -- This operation returns paginated results. module Network.AWS.EC2.DescribeTags     (@@ -130,7 +128,7 @@  instance AWSRequest DescribeTags where         type Rs DescribeTags = DescribeTagsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -139,6 +137,8 @@                      (x .@? "tagSet" .!@ mempty >>=                         may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeTags  instance ToHeaders DescribeTags where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeVPCAttribute.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeVPCAttribute--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Describes the specified attribute of the specified VPC. You can specify -- only one attribute at a time.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeVPCAttribute.html AWS API Reference> for DescribeVPCAttribute. module Network.AWS.EC2.DescribeVPCAttribute     (     -- * Creating a Request@@ -94,7 +92,7 @@ instance AWSRequest DescribeVPCAttribute where         type Rs DescribeVPCAttribute =              DescribeVPCAttributeResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -103,6 +101,8 @@                      (x .@? "enableDnsSupport")                      <*> (x .@? "vpcId")                      <*> (pure (fromEnum s)))++instance Hashable DescribeVPCAttribute  instance ToHeaders DescribeVPCAttribute where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeVPCClassicLink.hs view
@@ -12,15 +12,13 @@  -- | -- Module      : Network.AWS.EC2.DescribeVPCClassicLink--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Describes the ClassicLink status of one or more VPCs.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeVPCClassicLink.html AWS API Reference> for DescribeVPCClassicLink. module Network.AWS.EC2.DescribeVPCClassicLink     (     -- * Creating a Request@@ -107,7 +105,7 @@ instance AWSRequest DescribeVPCClassicLink where         type Rs DescribeVPCClassicLink =              DescribeVPCClassicLinkResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -115,6 +113,8 @@                    (x .@? "vpcSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeVPCClassicLink  instance ToHeaders DescribeVPCClassicLink where         toHeaders = const mempty
+ gen/Network/AWS/EC2/DescribeVPCClassicLinkDNSSupport.hs view
@@ -0,0 +1,166 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the ClassicLink DNS support status of one or more VPCs. If+-- enabled, the DNS hostname of a linked EC2-Classic instance resolves to+-- its private IP address when addressed from an instance in the VPC to+-- which it\'s linked. Similarly, the DNS hostname of an instance in a VPC+-- resolves to its private IP address when addressed from a linked+-- EC2-Classic instance. For more information about ClassicLink, see+-- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html ClassicLink>+-- in the Amazon Elastic Compute Cloud User Guide.+module Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport+    (+    -- * Creating a Request+      describeVPCClassicLinkDNSSupport+    , DescribeVPCClassicLinkDNSSupport+    -- * Request Lenses+    , dvcldsNextToken+    , dvcldsVPCIds+    , dvcldsMaxResults++    -- * Destructuring the Response+    , describeVPCClassicLinkDNSSupportResponse+    , DescribeVPCClassicLinkDNSSupportResponse+    -- * Response Lenses+    , dvpccldnssrsVPCs+    , dvpccldnssrsNextToken+    , dvpccldnssrsResponseStatus+    ) where++import           Network.AWS.EC2.Types+import           Network.AWS.EC2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | /See:/ 'describeVPCClassicLinkDNSSupport' smart constructor.+data DescribeVPCClassicLinkDNSSupport = DescribeVPCClassicLinkDNSSupport'+    { _dvcldsNextToken  :: !(Maybe Text)+    , _dvcldsVPCIds     :: !(Maybe [Text])+    , _dvcldsMaxResults :: !(Maybe Nat)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeVPCClassicLinkDNSSupport' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dvcldsNextToken'+--+-- * 'dvcldsVPCIds'+--+-- * 'dvcldsMaxResults'+describeVPCClassicLinkDNSSupport+    :: DescribeVPCClassicLinkDNSSupport+describeVPCClassicLinkDNSSupport =+    DescribeVPCClassicLinkDNSSupport'+    { _dvcldsNextToken = Nothing+    , _dvcldsVPCIds = Nothing+    , _dvcldsMaxResults = Nothing+    }++-- | The token for the next set of items to return. (You received this token+-- from a prior call.)+dvcldsNextToken :: Lens' DescribeVPCClassicLinkDNSSupport (Maybe Text)+dvcldsNextToken = lens _dvcldsNextToken (\ s a -> s{_dvcldsNextToken = a});++-- | One or more VPC IDs.+dvcldsVPCIds :: Lens' DescribeVPCClassicLinkDNSSupport [Text]+dvcldsVPCIds = lens _dvcldsVPCIds (\ s a -> s{_dvcldsVPCIds = a}) . _Default . _Coerce;++-- | The maximum number of items to return for this request. The request+-- returns a token that you can specify in a subsequent call to get the+-- next set of results.+dvcldsMaxResults :: Lens' DescribeVPCClassicLinkDNSSupport (Maybe Natural)+dvcldsMaxResults = lens _dvcldsMaxResults (\ s a -> s{_dvcldsMaxResults = a}) . mapping _Nat;++instance AWSRequest DescribeVPCClassicLinkDNSSupport+         where+        type Rs DescribeVPCClassicLinkDNSSupport =+             DescribeVPCClassicLinkDNSSupportResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 DescribeVPCClassicLinkDNSSupportResponse' <$>+                   (x .@? "vpcs" .!@ mempty >>=+                      may (parseXMLList "item"))+                     <*> (x .@? "nextToken")+                     <*> (pure (fromEnum s)))++instance Hashable DescribeVPCClassicLinkDNSSupport++instance ToHeaders DescribeVPCClassicLinkDNSSupport+         where+        toHeaders = const mempty++instance ToPath DescribeVPCClassicLinkDNSSupport+         where+        toPath = const "/"++instance ToQuery DescribeVPCClassicLinkDNSSupport+         where+        toQuery DescribeVPCClassicLinkDNSSupport'{..}+          = mconcat+              ["Action" =:+                 ("DescribeVpcClassicLinkDnsSupport" :: ByteString),+               "Version" =: ("2015-10-01" :: ByteString),+               "NextToken" =: _dvcldsNextToken,+               toQuery (toQueryList "VpcIds" <$> _dvcldsVPCIds),+               "MaxResults" =: _dvcldsMaxResults]++-- | /See:/ 'describeVPCClassicLinkDNSSupportResponse' smart constructor.+data DescribeVPCClassicLinkDNSSupportResponse = DescribeVPCClassicLinkDNSSupportResponse'+    { _dvpccldnssrsVPCs           :: !(Maybe [ClassicLinkDNSSupport])+    , _dvpccldnssrsNextToken      :: !(Maybe Text)+    , _dvpccldnssrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeVPCClassicLinkDNSSupportResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dvpccldnssrsVPCs'+--+-- * 'dvpccldnssrsNextToken'+--+-- * 'dvpccldnssrsResponseStatus'+describeVPCClassicLinkDNSSupportResponse+    :: Int -- ^ 'dvpccldnssrsResponseStatus'+    -> DescribeVPCClassicLinkDNSSupportResponse+describeVPCClassicLinkDNSSupportResponse pResponseStatus_ =+    DescribeVPCClassicLinkDNSSupportResponse'+    { _dvpccldnssrsVPCs = Nothing+    , _dvpccldnssrsNextToken = Nothing+    , _dvpccldnssrsResponseStatus = pResponseStatus_+    }++-- | Information about the ClassicLink DNS support status of the VPCs.+dvpccldnssrsVPCs :: Lens' DescribeVPCClassicLinkDNSSupportResponse [ClassicLinkDNSSupport]+dvpccldnssrsVPCs = lens _dvpccldnssrsVPCs (\ s a -> s{_dvpccldnssrsVPCs = a}) . _Default . _Coerce;++-- | The token to use when requesting the next set of items.+dvpccldnssrsNextToken :: Lens' DescribeVPCClassicLinkDNSSupportResponse (Maybe Text)+dvpccldnssrsNextToken = lens _dvpccldnssrsNextToken (\ s a -> s{_dvpccldnssrsNextToken = a});++-- | The response status code.+dvpccldnssrsResponseStatus :: Lens' DescribeVPCClassicLinkDNSSupportResponse Int+dvpccldnssrsResponseStatus = lens _dvpccldnssrsResponseStatus (\ s a -> s{_dvpccldnssrsResponseStatus = a});
gen/Network/AWS/EC2/DescribeVPCEndpointServices.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeVPCEndpointServices--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Describes all supported AWS services that can be specified when creating -- a VPC endpoint.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeVPCEndpointServices.html AWS API Reference> for DescribeVPCEndpointServices. module Network.AWS.EC2.DescribeVPCEndpointServices     (     -- * Creating a Request@@ -97,7 +95,7 @@ instance AWSRequest DescribeVPCEndpointServices where         type Rs DescribeVPCEndpointServices =              DescribeVPCEndpointServicesResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -106,6 +104,8 @@                       may (parseXMLList "item"))                      <*> (x .@? "nextToken")                      <*> (pure (fromEnum s)))++instance Hashable DescribeVPCEndpointServices  instance ToHeaders DescribeVPCEndpointServices where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeVPCEndpoints.hs view
@@ -12,15 +12,13 @@  -- | -- Module      : Network.AWS.EC2.DescribeVPCEndpoints--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Describes one or more of your VPC endpoints.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeVPCEndpoints.html AWS API Reference> for DescribeVPCEndpoints. module Network.AWS.EC2.DescribeVPCEndpoints     (     -- * Creating a Request@@ -124,7 +122,7 @@ instance AWSRequest DescribeVPCEndpoints where         type Rs DescribeVPCEndpoints =              DescribeVPCEndpointsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -133,6 +131,8 @@                      (x .@? "vpcEndpointSet" .!@ mempty >>=                         may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeVPCEndpoints  instance ToHeaders DescribeVPCEndpoints where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeVPCPeeringConnections.hs view
@@ -12,15 +12,13 @@  -- | -- Module      : Network.AWS.EC2.DescribeVPCPeeringConnections--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Describes one or more of your VPC peering connections.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeVPCPeeringConnections.html AWS API Reference> for DescribeVPCPeeringConnections. module Network.AWS.EC2.DescribeVPCPeeringConnections     (     -- * Creating a Request@@ -134,7 +132,7 @@          where         type Rs DescribeVPCPeeringConnections =              DescribeVPCPeeringConnectionsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -142,6 +140,8 @@                    (x .@? "vpcPeeringConnectionSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeVPCPeeringConnections  instance ToHeaders DescribeVPCPeeringConnections          where
gen/Network/AWS/EC2/DescribeVPCs.hs view
@@ -12,15 +12,13 @@  -- | -- Module      : Network.AWS.EC2.DescribeVPCs--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Describes one or more of your VPCs.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeVPCs.html AWS API Reference> for DescribeVPCs. module Network.AWS.EC2.DescribeVPCs     (     -- * Creating a Request@@ -118,7 +116,7 @@  instance AWSRequest DescribeVPCs where         type Rs DescribeVPCs = DescribeVPCsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -126,6 +124,8 @@                    (x .@? "vpcSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeVPCs  instance ToHeaders DescribeVPCs where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeVPNConnections.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeVPNConnections--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -23,8 +23,6 @@ -- For more information about VPN connections, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html Adding a Hardware Virtual Private Gateway to Your VPC> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeVPNConnections.html AWS API Reference> for DescribeVPNConnections. module Network.AWS.EC2.DescribeVPNConnections     (     -- * Creating a Request@@ -137,7 +135,7 @@ instance AWSRequest DescribeVPNConnections where         type Rs DescribeVPNConnections =              DescribeVPNConnectionsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -145,6 +143,8 @@                    (x .@? "vpnConnectionSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeVPNConnections  instance ToHeaders DescribeVPNConnections where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeVPNGateways.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeVPNGateways--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -23,8 +23,6 @@ -- For more information about virtual private gateways, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html Adding an IPsec Hardware VPN to Your VPC> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeVPNGateways.html AWS API Reference> for DescribeVPNGateways. module Network.AWS.EC2.DescribeVPNGateways     (     -- * Creating a Request@@ -84,7 +82,7 @@ -- -   'attachment.vpc-id' - The ID of an attached VPC. -- -- -   'availability-zone' - The Availability Zone for the virtual private---     gateway.+--     gateway (if applicable). -- -- -   'state' - The state of the virtual private gateway ('pending' | --     'available' | 'deleting' | 'deleted').@@ -127,7 +125,7 @@ instance AWSRequest DescribeVPNGateways where         type Rs DescribeVPNGateways =              DescribeVPNGatewaysResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -135,6 +133,8 @@                    (x .@? "vpnGatewaySet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeVPNGateways  instance ToHeaders DescribeVPNGateways where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeVolumeAttribute.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeVolumeAttribute--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -24,8 +24,6 @@ -- For more information about EBS volumes, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumes.html Amazon EBS Volumes> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeVolumeAttribute.html AWS API Reference> for DescribeVolumeAttribute. module Network.AWS.EC2.DescribeVolumeAttribute     (     -- * Creating a Request@@ -97,7 +95,7 @@ instance AWSRequest DescribeVolumeAttribute where         type Rs DescribeVolumeAttribute =              DescribeVolumeAttributeResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -107,6 +105,8 @@                         may (parseXMLList "item"))                      <*> (x .@? "autoEnableIO")                      <*> (pure (fromEnum s)))++instance Hashable DescribeVolumeAttribute  instance ToHeaders DescribeVolumeAttribute where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeVolumeStatus.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeVolumeStatus--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -50,16 +50,14 @@ -- event. For example, if the status of the volume is 'impaired' and the -- volume event shows 'potential-data-inconsistency', then the action shows -- 'enable-volume-io'. This means that you may want to enable the I\/O--- operations for the volume by calling the EnableVolumeIO action and then--- check the volume for data consistency.+-- operations for the volume by calling the < EnableVolumeIO> action and+-- then check the volume for data consistency. -- -- Volume status is based on the volume status checks, and does not reflect -- the volume state. Therefore, volume status does not indicate volumes in -- the 'error' state (for example, when a volume is incapable of accepting -- I\/O.) ----- /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeVolumeStatus.html AWS API Reference> for DescribeVolumeStatus.--- -- This operation returns paginated results. module Network.AWS.EC2.DescribeVolumeStatus     (@@ -202,7 +200,7 @@ instance AWSRequest DescribeVolumeStatus where         type Rs DescribeVolumeStatus =              DescribeVolumeStatusResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -211,6 +209,8 @@                      (x .@? "volumeStatusSet" .!@ mempty >>=                         may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeVolumeStatus  instance ToHeaders DescribeVolumeStatus where         toHeaders = const mempty
gen/Network/AWS/EC2/DescribeVolumes.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DescribeVolumes--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -31,8 +31,6 @@ -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumes.html Amazon EBS Volumes> -- in the /Amazon Elastic Compute Cloud User Guide/. ----- /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeVolumes.html AWS API Reference> for DescribeVolumes.--- -- This operation returns paginated results. module Network.AWS.EC2.DescribeVolumes     (@@ -191,7 +189,7 @@  instance AWSRequest DescribeVolumes where         type Rs DescribeVolumes = DescribeVolumesResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -200,6 +198,8 @@                      (x .@? "volumeSet" .!@ mempty >>=                         may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable DescribeVolumes  instance ToHeaders DescribeVolumes where         toHeaders = const mempty
gen/Network/AWS/EC2/DetachClassicLinkVPC.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DetachClassicLinkVPC--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -22,8 +22,6 @@ -- instance has been unlinked, the VPC security groups are no longer -- associated with it. An instance is automatically unlinked from a VPC -- when it\'s stopped.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DetachClassicLinkVPC.html AWS API Reference> for DetachClassicLinkVPC. module Network.AWS.EC2.DetachClassicLinkVPC     (     -- * Creating a Request@@ -94,12 +92,14 @@ instance AWSRequest DetachClassicLinkVPC where         type Rs DetachClassicLinkVPC =              DetachClassicLinkVPCResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  DetachClassicLinkVPCResponse' <$>                    (x .@? "return") <*> (pure (fromEnum s)))++instance Hashable DetachClassicLinkVPC  instance ToHeaders DetachClassicLinkVPC where         toHeaders = const mempty
gen/Network/AWS/EC2/DetachInternetGateway.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DetachInternetGateway--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -21,8 +21,6 @@ -- Detaches an Internet gateway from a VPC, disabling connectivity between -- the Internet and the VPC. The VPC must not contain any running instances -- with Elastic IP addresses.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DetachInternetGateway.html AWS API Reference> for DetachInternetGateway. module Network.AWS.EC2.DetachInternetGateway     (     -- * Creating a Request@@ -90,8 +88,10 @@ instance AWSRequest DetachInternetGateway where         type Rs DetachInternetGateway =              DetachInternetGatewayResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull DetachInternetGatewayResponse'++instance Hashable DetachInternetGateway  instance ToHeaders DetachInternetGateway where         toHeaders = const mempty
gen/Network/AWS/EC2/DetachNetworkInterface.hs view
@@ -12,15 +12,13 @@  -- | -- Module      : Network.AWS.EC2.DetachNetworkInterface--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Detaches a network interface from an instance.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DetachNetworkInterface.html AWS API Reference> for DetachNetworkInterface. module Network.AWS.EC2.DetachNetworkInterface     (     -- * Creating a Request@@ -87,9 +85,11 @@ instance AWSRequest DetachNetworkInterface where         type Rs DetachNetworkInterface =              DetachNetworkInterfaceResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveNull DetachNetworkInterfaceResponse'++instance Hashable DetachNetworkInterface  instance ToHeaders DetachNetworkInterface where         toHeaders = const mempty
gen/Network/AWS/EC2/DetachVPNGateway.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DetachVPNGateway--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -27,8 +27,6 @@ -- You must wait for the attachment\'s state to switch to 'detached' before -- you can delete the VPC or attach a different VPC to the virtual private -- gateway.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DetachVPNGateway.html AWS API Reference> for DetachVPNGateway. module Network.AWS.EC2.DetachVPNGateway     (     -- * Creating a Request@@ -95,8 +93,10 @@  instance AWSRequest DetachVPNGateway where         type Rs DetachVPNGateway = DetachVPNGatewayResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull DetachVPNGatewayResponse'++instance Hashable DetachVPNGateway  instance ToHeaders DetachVPNGateway where         toHeaders = const mempty
gen/Network/AWS/EC2/DetachVolume.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DetachVolume--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -33,8 +33,6 @@ -- For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html Detaching an Amazon EBS Volume> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DetachVolume.html AWS API Reference> for DetachVolume. module Network.AWS.EC2.DetachVolume     (     -- * Creating a Request@@ -131,8 +129,10 @@  instance AWSRequest DetachVolume where         type Rs DetachVolume = VolumeAttachment-        request = postQuery eC2+        request = postQuery ec2         response = receiveXML (\ s h x -> parseXML x)++instance Hashable DetachVolume  instance ToHeaders DetachVolume where         toHeaders = const mempty
gen/Network/AWS/EC2/DisableVGWRoutePropagation.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DisableVGWRoutePropagation--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Disables a virtual private gateway (VGW) from propagating routes to a -- specified route table of a VPC.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DisableVGWRoutePropagation.html AWS API Reference> for DisableVGWRoutePropagation. module Network.AWS.EC2.DisableVGWRoutePropagation     (     -- * Creating a Request@@ -77,9 +75,11 @@ instance AWSRequest DisableVGWRoutePropagation where         type Rs DisableVGWRoutePropagation =              DisableVGWRoutePropagationResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveNull DisableVGWRoutePropagationResponse'++instance Hashable DisableVGWRoutePropagation  instance ToHeaders DisableVGWRoutePropagation where         toHeaders = const mempty
gen/Network/AWS/EC2/DisableVPCClassicLink.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DisableVPCClassicLink--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Disables ClassicLink for a VPC. You cannot disable ClassicLink for a VPC -- that has EC2-Classic instances linked to it.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DisableVPCClassicLink.html AWS API Reference> for DisableVPCClassicLink. module Network.AWS.EC2.DisableVPCClassicLink     (     -- * Creating a Request@@ -82,12 +80,14 @@ instance AWSRequest DisableVPCClassicLink where         type Rs DisableVPCClassicLink =              DisableVPCClassicLinkResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  DisableVPCClassicLinkResponse' <$>                    (x .@? "return") <*> (pure (fromEnum s)))++instance Hashable DisableVPCClassicLink  instance ToHeaders DisableVPCClassicLink where         toHeaders = const mempty
+ gen/Network/AWS/EC2/DisableVPCClassicLinkDNSSupport.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.DisableVPCClassicLinkDNSSupport+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Disables ClassicLink DNS support for a VPC. If disabled, DNS hostnames+-- resolve to public IP addresses when addressed between a linked+-- EC2-Classic instance and instances in the VPC to which it\'s linked. For+-- more information about ClassicLink, see+-- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html ClassicLink>+-- in the Amazon Elastic Compute Cloud User Guide.+module Network.AWS.EC2.DisableVPCClassicLinkDNSSupport+    (+    -- * Creating a Request+      disableVPCClassicLinkDNSSupport+    , DisableVPCClassicLinkDNSSupport+    -- * Request Lenses+    , dvcldsVPCId++    -- * Destructuring the Response+    , disableVPCClassicLinkDNSSupportResponse+    , DisableVPCClassicLinkDNSSupportResponse+    -- * Response Lenses+    , dvcldsrsReturn+    , dvcldsrsResponseStatus+    ) where++import           Network.AWS.EC2.Types+import           Network.AWS.EC2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | /See:/ 'disableVPCClassicLinkDNSSupport' smart constructor.+newtype DisableVPCClassicLinkDNSSupport = DisableVPCClassicLinkDNSSupport'+    { _dvcldsVPCId :: Maybe Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DisableVPCClassicLinkDNSSupport' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dvcldsVPCId'+disableVPCClassicLinkDNSSupport+    :: DisableVPCClassicLinkDNSSupport+disableVPCClassicLinkDNSSupport =+    DisableVPCClassicLinkDNSSupport'+    { _dvcldsVPCId = Nothing+    }++-- | The ID of the VPC.+dvcldsVPCId :: Lens' DisableVPCClassicLinkDNSSupport (Maybe Text)+dvcldsVPCId = lens _dvcldsVPCId (\ s a -> s{_dvcldsVPCId = a});++instance AWSRequest DisableVPCClassicLinkDNSSupport+         where+        type Rs DisableVPCClassicLinkDNSSupport =+             DisableVPCClassicLinkDNSSupportResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 DisableVPCClassicLinkDNSSupportResponse' <$>+                   (x .@? "return") <*> (pure (fromEnum s)))++instance Hashable DisableVPCClassicLinkDNSSupport++instance ToHeaders DisableVPCClassicLinkDNSSupport+         where+        toHeaders = const mempty++instance ToPath DisableVPCClassicLinkDNSSupport where+        toPath = const "/"++instance ToQuery DisableVPCClassicLinkDNSSupport+         where+        toQuery DisableVPCClassicLinkDNSSupport'{..}+          = mconcat+              ["Action" =:+                 ("DisableVpcClassicLinkDnsSupport" :: ByteString),+               "Version" =: ("2015-10-01" :: ByteString),+               "VpcId" =: _dvcldsVPCId]++-- | /See:/ 'disableVPCClassicLinkDNSSupportResponse' smart constructor.+data DisableVPCClassicLinkDNSSupportResponse = DisableVPCClassicLinkDNSSupportResponse'+    { _dvcldsrsReturn         :: !(Maybe Bool)+    , _dvcldsrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DisableVPCClassicLinkDNSSupportResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dvcldsrsReturn'+--+-- * 'dvcldsrsResponseStatus'+disableVPCClassicLinkDNSSupportResponse+    :: Int -- ^ 'dvcldsrsResponseStatus'+    -> DisableVPCClassicLinkDNSSupportResponse+disableVPCClassicLinkDNSSupportResponse pResponseStatus_ =+    DisableVPCClassicLinkDNSSupportResponse'+    { _dvcldsrsReturn = Nothing+    , _dvcldsrsResponseStatus = pResponseStatus_+    }++-- | Returns 'true' if the request succeeds; otherwise, it returns an error.+dvcldsrsReturn :: Lens' DisableVPCClassicLinkDNSSupportResponse (Maybe Bool)+dvcldsrsReturn = lens _dvcldsrsReturn (\ s a -> s{_dvcldsrsReturn = a});++-- | The response status code.+dvcldsrsResponseStatus :: Lens' DisableVPCClassicLinkDNSSupportResponse Int+dvcldsrsResponseStatus = lens _dvcldsrsResponseStatus (\ s a -> s{_dvcldsrsResponseStatus = a});
gen/Network/AWS/EC2/DisassociateAddress.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DisassociateAddress--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -28,8 +28,6 @@ -- -- This is an idempotent operation. If you perform the operation more than -- once, Amazon EC2 doesn\'t return an error.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DisassociateAddress.html AWS API Reference> for DisassociateAddress. module Network.AWS.EC2.DisassociateAddress     (     -- * Creating a Request@@ -95,8 +93,10 @@ instance AWSRequest DisassociateAddress where         type Rs DisassociateAddress =              DisassociateAddressResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull DisassociateAddressResponse'++instance Hashable DisassociateAddress  instance ToHeaders DisassociateAddress where         toHeaders = const mempty
gen/Network/AWS/EC2/DisassociateRouteTable.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.DisassociateRouteTable--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -25,8 +25,6 @@ -- table. For more information about route tables, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html Route Tables> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DisassociateRouteTable.html AWS API Reference> for DisassociateRouteTable. module Network.AWS.EC2.DisassociateRouteTable     (     -- * Creating a Request@@ -85,9 +83,11 @@ instance AWSRequest DisassociateRouteTable where         type Rs DisassociateRouteTable =              DisassociateRouteTableResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveNull DisassociateRouteTableResponse'++instance Hashable DisassociateRouteTable  instance ToHeaders DisassociateRouteTable where         toHeaders = const mempty
gen/Network/AWS/EC2/EnableVGWRoutePropagation.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.EnableVGWRoutePropagation--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Enables a virtual private gateway (VGW) to propagate routes to the -- specified route table of a VPC.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-EnableVGWRoutePropagation.html AWS API Reference> for EnableVGWRoutePropagation. module Network.AWS.EC2.EnableVGWRoutePropagation     (     -- * Creating a Request@@ -77,9 +75,11 @@ instance AWSRequest EnableVGWRoutePropagation where         type Rs EnableVGWRoutePropagation =              EnableVGWRoutePropagationResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveNull EnableVGWRoutePropagationResponse'++instance Hashable EnableVGWRoutePropagation  instance ToHeaders EnableVGWRoutePropagation where         toHeaders = const mempty
gen/Network/AWS/EC2/EnableVPCClassicLink.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.EnableVPCClassicLink--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -27,8 +27,6 @@ -- information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html ClassicLink> -- in the Amazon Elastic Compute Cloud User Guide.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-EnableVPCClassicLink.html AWS API Reference> for EnableVPCClassicLink. module Network.AWS.EC2.EnableVPCClassicLink     (     -- * Creating a Request@@ -89,12 +87,14 @@ instance AWSRequest EnableVPCClassicLink where         type Rs EnableVPCClassicLink =              EnableVPCClassicLinkResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  EnableVPCClassicLinkResponse' <$>                    (x .@? "return") <*> (pure (fromEnum s)))++instance Hashable EnableVPCClassicLink  instance ToHeaders EnableVPCClassicLink where         toHeaders = const mempty
+ gen/Network/AWS/EC2/EnableVPCClassicLinkDNSSupport.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.EnableVPCClassicLinkDNSSupport+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Enables a VPC to support DNS hostname resolution for ClassicLink. If+-- enabled, the DNS hostname of a linked EC2-Classic instance resolves to+-- its private IP address when addressed from an instance in the VPC to+-- which it\'s linked. Similarly, the DNS hostname of an instance in a VPC+-- resolves to its private IP address when addressed from a linked+-- EC2-Classic instance. For more information about ClassicLink, see+-- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html ClassicLink>+-- in the Amazon Elastic Compute Cloud User Guide.+module Network.AWS.EC2.EnableVPCClassicLinkDNSSupport+    (+    -- * Creating a Request+      enableVPCClassicLinkDNSSupport+    , EnableVPCClassicLinkDNSSupport+    -- * Request Lenses+    , evcldsVPCId++    -- * Destructuring the Response+    , enableVPCClassicLinkDNSSupportResponse+    , EnableVPCClassicLinkDNSSupportResponse+    -- * Response Lenses+    , evcldsrsReturn+    , evcldsrsResponseStatus+    ) where++import           Network.AWS.EC2.Types+import           Network.AWS.EC2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | /See:/ 'enableVPCClassicLinkDNSSupport' smart constructor.+newtype EnableVPCClassicLinkDNSSupport = EnableVPCClassicLinkDNSSupport'+    { _evcldsVPCId :: Maybe Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnableVPCClassicLinkDNSSupport' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'evcldsVPCId'+enableVPCClassicLinkDNSSupport+    :: EnableVPCClassicLinkDNSSupport+enableVPCClassicLinkDNSSupport =+    EnableVPCClassicLinkDNSSupport'+    { _evcldsVPCId = Nothing+    }++-- | The ID of the VPC.+evcldsVPCId :: Lens' EnableVPCClassicLinkDNSSupport (Maybe Text)+evcldsVPCId = lens _evcldsVPCId (\ s a -> s{_evcldsVPCId = a});++instance AWSRequest EnableVPCClassicLinkDNSSupport+         where+        type Rs EnableVPCClassicLinkDNSSupport =+             EnableVPCClassicLinkDNSSupportResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 EnableVPCClassicLinkDNSSupportResponse' <$>+                   (x .@? "return") <*> (pure (fromEnum s)))++instance Hashable EnableVPCClassicLinkDNSSupport++instance ToHeaders EnableVPCClassicLinkDNSSupport+         where+        toHeaders = const mempty++instance ToPath EnableVPCClassicLinkDNSSupport where+        toPath = const "/"++instance ToQuery EnableVPCClassicLinkDNSSupport where+        toQuery EnableVPCClassicLinkDNSSupport'{..}+          = mconcat+              ["Action" =:+                 ("EnableVpcClassicLinkDnsSupport" :: ByteString),+               "Version" =: ("2015-10-01" :: ByteString),+               "VpcId" =: _evcldsVPCId]++-- | /See:/ 'enableVPCClassicLinkDNSSupportResponse' smart constructor.+data EnableVPCClassicLinkDNSSupportResponse = EnableVPCClassicLinkDNSSupportResponse'+    { _evcldsrsReturn         :: !(Maybe Bool)+    , _evcldsrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnableVPCClassicLinkDNSSupportResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'evcldsrsReturn'+--+-- * 'evcldsrsResponseStatus'+enableVPCClassicLinkDNSSupportResponse+    :: Int -- ^ 'evcldsrsResponseStatus'+    -> EnableVPCClassicLinkDNSSupportResponse+enableVPCClassicLinkDNSSupportResponse pResponseStatus_ =+    EnableVPCClassicLinkDNSSupportResponse'+    { _evcldsrsReturn = Nothing+    , _evcldsrsResponseStatus = pResponseStatus_+    }++-- | Returns 'true' if the request succeeds; otherwise, it returns an error.+evcldsrsReturn :: Lens' EnableVPCClassicLinkDNSSupportResponse (Maybe Bool)+evcldsrsReturn = lens _evcldsrsReturn (\ s a -> s{_evcldsrsReturn = a});++-- | The response status code.+evcldsrsResponseStatus :: Lens' EnableVPCClassicLinkDNSSupportResponse Int+evcldsrsResponseStatus = lens _evcldsrsResponseStatus (\ s a -> s{_evcldsrsResponseStatus = a});
gen/Network/AWS/EC2/EnableVolumeIO.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.EnableVolumeIO--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Enables I\/O operations for a volume that had I\/O operations disabled -- because the data on the volume was potentially inconsistent.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-EnableVolumeIO.html AWS API Reference> for EnableVolumeIO. module Network.AWS.EC2.EnableVolumeIO     (     -- * Creating a Request@@ -78,8 +76,10 @@  instance AWSRequest EnableVolumeIO where         type Rs EnableVolumeIO = EnableVolumeIOResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull EnableVolumeIOResponse'++instance Hashable EnableVolumeIO  instance ToHeaders EnableVolumeIO where         toHeaders = const mempty
gen/Network/AWS/EC2/GetConsoleOutput.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.GetConsoleOutput--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -38,8 +38,6 @@ -- -- For Windows instances, the instance console output includes output from -- the EC2Config service.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-GetConsoleOutput.html AWS API Reference> for GetConsoleOutput. module Network.AWS.EC2.GetConsoleOutput     (     -- * Creating a Request@@ -101,7 +99,7 @@  instance AWSRequest GetConsoleOutput where         type Rs GetConsoleOutput = GetConsoleOutputResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -110,6 +108,8 @@                      (x .@? "timestamp")                      <*> (pure (fromEnum s))) +instance Hashable GetConsoleOutput+ instance ToHeaders GetConsoleOutput where         toHeaders = const mempty @@ -158,7 +158,8 @@ gcorsInstanceId :: Lens' GetConsoleOutputResponse (Maybe Text) gcorsInstanceId = lens _gcorsInstanceId (\ s a -> s{_gcorsInstanceId = a}); --- | The console output, Base64 encoded.+-- | The console output, Base64 encoded. If using a command line tool, the+-- tools decode the output for you. gcorsOutput :: Lens' GetConsoleOutputResponse (Maybe Text) gcorsOutput = lens _gcorsOutput (\ s a -> s{_gcorsOutput = a}); 
gen/Network/AWS/EC2/GetPasswordData.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.GetPasswordData--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -33,8 +33,6 @@ -- Password generation and encryption takes a few moments. We recommend -- that you wait up to 15 minutes after launching an instance before trying -- to retrieve the generated password.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-GetPasswordData.html AWS API Reference> for GetPasswordData. module Network.AWS.EC2.GetPasswordData     (     -- * Creating a Request@@ -96,7 +94,7 @@  instance AWSRequest GetPasswordData where         type Rs GetPasswordData = GetPasswordDataResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -104,6 +102,8 @@                    (pure (fromEnum s)) <*> (x .@ "instanceId") <*>                      (x .@ "passwordData")                      <*> (x .@ "timestamp"))++instance Hashable GetPasswordData  instance ToHeaders GetPasswordData where         toHeaders = const mempty
gen/Network/AWS/EC2/ImportImage.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ImportImage--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Import single or multi-volume disk images or EBS snapshots into an -- Amazon Machine Image (AMI).------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ImportImage.html AWS API Reference> for ImportImage. module Network.AWS.EC2.ImportImage     (     -- * Creating a Request@@ -178,7 +176,7 @@  instance AWSRequest ImportImage where         type Rs ImportImage = ImportImageResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -196,6 +194,8 @@                      <*> (x .@? "architecture")                      <*> (x .@? "description")                      <*> (pure (fromEnum s)))++instance Hashable ImportImage  instance ToHeaders ImportImage where         toHeaders = const mempty
gen/Network/AWS/EC2/ImportInstance.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ImportInstance--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,13 +20,15 @@ -- -- Creates an import instance task using metadata from the specified disk -- image. 'ImportInstance' only supports single-volume VMs. To import--- multi-volume VMs, use ImportImage. After importing the image, you then--- upload it using the 'ec2-import-volume' command in the EC2 command line--- tools. For more information, see+-- multi-volume VMs, use < ImportImage>. After importing the image, you+-- then upload it using the 'ec2-import-volume' command in the EC2 command+-- line tools. For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UploadingYourInstancesandVolumes.html Using the Command Line Tools to Import Your Virtual Machine to Amazon EC2> -- in the /Amazon Elastic Compute Cloud User Guide/. ----- /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ImportInstance.html AWS API Reference> for ImportInstance.+-- For information about the import manifest referenced by this API action,+-- see+-- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html VM Import Manifest>. module Network.AWS.EC2.ImportInstance     (     -- * Creating a Request@@ -113,12 +115,14 @@  instance AWSRequest ImportInstance where         type Rs ImportInstance = ImportInstanceResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  ImportInstanceResponse' <$>                    (x .@? "conversionTask") <*> (pure (fromEnum s)))++instance Hashable ImportInstance  instance ToHeaders ImportInstance where         toHeaders = const mempty
gen/Network/AWS/EC2/ImportKeyPair.hs view
@@ -12,23 +12,22 @@  -- | -- Module      : Network.AWS.EC2.ImportKeyPair--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Imports the public key from an RSA key pair that you created with a--- third-party tool. Compare this with CreateKeyPair, in which AWS creates--- the key pair and gives the keys to you (AWS keeps a copy of the public--- key). With ImportKeyPair, you create the key pair and give AWS just the--- public key. The private key is never transferred between you and AWS.+-- third-party tool. Compare this with < CreateKeyPair>, in which AWS+-- creates the key pair and gives the keys to you (AWS keeps a copy of the+-- public key). With ImportKeyPair, you create the key pair and give AWS+-- just the public key. The private key is never transferred between you+-- and AWS. -- -- For more information about key pairs, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html Key Pairs> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ImportKeyPair.html AWS API Reference> for ImportKeyPair. module Network.AWS.EC2.ImportKeyPair     (     -- * Creating a Request@@ -106,13 +105,15 @@  instance AWSRequest ImportKeyPair where         type Rs ImportKeyPair = ImportKeyPairResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  ImportKeyPairResponse' <$>                    (x .@? "keyFingerprint") <*> (x .@? "keyName") <*>                      (pure (fromEnum s)))++instance Hashable ImportKeyPair  instance ToHeaders ImportKeyPair where         toHeaders = const mempty
gen/Network/AWS/EC2/ImportSnapshot.hs view
@@ -12,15 +12,13 @@  -- | -- Module      : Network.AWS.EC2.ImportSnapshot--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Imports a disk into an EBS snapshot.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ImportSnapshot.html AWS API Reference> for ImportSnapshot. module Network.AWS.EC2.ImportSnapshot     (     -- * Creating a Request@@ -118,7 +116,7 @@  instance AWSRequest ImportSnapshot where         type Rs ImportSnapshot = ImportSnapshotResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -127,6 +125,8 @@                      (x .@? "importTaskId")                      <*> (x .@? "description")                      <*> (pure (fromEnum s)))++instance Hashable ImportSnapshot  instance ToHeaders ImportSnapshot where         toHeaders = const mempty
gen/Network/AWS/EC2/ImportVolume.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ImportVolume--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -25,7 +25,9 @@ -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UploadingYourInstancesandVolumes.html Using the Command Line Tools to Import Your Virtual Machine to Amazon EC2> -- in the /Amazon Elastic Compute Cloud User Guide/. ----- /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ImportVolume.html AWS API Reference> for ImportVolume.+-- For information about the import manifest referenced by this API action,+-- see+-- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html VM Import Manifest>. module Network.AWS.EC2.ImportVolume     (     -- * Creating a Request@@ -114,12 +116,14 @@  instance AWSRequest ImportVolume where         type Rs ImportVolume = ImportVolumeResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  ImportVolumeResponse' <$>                    (x .@? "conversionTask") <*> (pure (fromEnum s)))++instance Hashable ImportVolume  instance ToHeaders ImportVolume where         toHeaders = const mempty
gen/Network/AWS/EC2/ModifyHosts.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ModifyHosts--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -26,8 +26,6 @@ -- if you want the instance to launch onto a specific host. If no host ID -- is provided, the instance will be launched onto a suitable host which -- has auto-placement enabled.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ModifyHosts.html AWS API Reference> for ModifyHosts. module Network.AWS.EC2.ModifyHosts     (     -- * Creating a Request@@ -85,7 +83,7 @@  instance AWSRequest ModifyHosts where         type Rs ModifyHosts = ModifyHostsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -96,6 +94,8 @@                      (x .@? "successful" .!@ mempty >>=                         may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable ModifyHosts  instance ToHeaders ModifyHosts where         toHeaders = const mempty
gen/Network/AWS/EC2/ModifyIdFormat.hs view
@@ -12,27 +12,30 @@  -- | -- Module      : Network.AWS.EC2.ModifyIdFormat--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- __Important: This command is reserved for future use, and is currently--- not available for you to use.__------ Modifies the ID format for the specified resource. You can specify that--- resources should receive longer IDs (17-character IDs) when they are--- created. The following resource types support longer IDs: 'instance' |--- 'reservation'.+-- Modifies the ID format for the specified resource on a per-region basis.+-- You can specify that resources should receive longer IDs (17-character+-- IDs) when they are created. The following resource types support longer+-- IDs: 'instance' | 'reservation'. -- -- This setting applies to the IAM user who makes the request; it does not -- apply to the entire AWS account. By default, an IAM user defaults to the--- same settings as the root user, unless they explicitly override the--- settings by running this request. These settings are applied on a--- per-region basis.+-- same settings as the root user. If you\'re using this action as the root+-- user or as an IAM role that has permission to use this action, then+-- these settings apply to the entire account, unless an IAM user+-- explicitly overrides these settings for themselves. For more+-- information, see+-- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html#resource-ids-access Controlling Access to Longer ID Settings>+-- in the /Amazon Elastic Compute Cloud User Guide/. ----- /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ModifyIdFormat.html AWS API Reference> for ModifyIdFormat.+-- Resources created with longer IDs are visible to all IAM users,+-- regardless of these settings and provided that they have permission to+-- use the relevant 'Describe' command for the resource type. module Network.AWS.EC2.ModifyIdFormat     (     -- * Creating a Request@@ -87,8 +90,10 @@  instance AWSRequest ModifyIdFormat where         type Rs ModifyIdFormat = ModifyIdFormatResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull ModifyIdFormatResponse'++instance Hashable ModifyIdFormat  instance ToHeaders ModifyIdFormat where         toHeaders = const mempty
gen/Network/AWS/EC2/ModifyImageAttribute.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ModifyImageAttribute--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -23,8 +23,6 @@ -- -- AWS Marketplace product codes cannot be modified. Images with an AWS -- Marketplace product code cannot be made public.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ModifyImageAttribute.html AWS API Reference> for ModifyImageAttribute. module Network.AWS.EC2.ModifyImageAttribute     (     -- * Creating a Request@@ -159,8 +157,10 @@ instance AWSRequest ModifyImageAttribute where         type Rs ModifyImageAttribute =              ModifyImageAttributeResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull ModifyImageAttributeResponse'++instance Hashable ModifyImageAttribute  instance ToHeaders ModifyImageAttribute where         toHeaders = const mempty
gen/Network/AWS/EC2/ModifyInstanceAttribute.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ModifyInstanceAttribute--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -25,8 +25,6 @@ -- information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_ChangingAttributesWhileInstanceStopped.html Modifying Attributes of a Stopped Instance> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ModifyInstanceAttribute.html AWS API Reference> for ModifyInstanceAttribute. module Network.AWS.EC2.ModifyInstanceAttribute     (     -- * Creating a Request@@ -239,9 +237,11 @@ instance AWSRequest ModifyInstanceAttribute where         type Rs ModifyInstanceAttribute =              ModifyInstanceAttributeResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveNull ModifyInstanceAttributeResponse'++instance Hashable ModifyInstanceAttribute  instance ToHeaders ModifyInstanceAttribute where         toHeaders = const mempty
gen/Network/AWS/EC2/ModifyInstancePlacement.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ModifyInstancePlacement--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -38,8 +38,6 @@ -- one of them must be specified in the request. Affinity and tenancy can -- be modified in the same request, but tenancy can only be modified on -- instances that are stopped.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ModifyInstancePlacement.html AWS API Reference> for ModifyInstancePlacement. module Network.AWS.EC2.ModifyInstancePlacement     (     -- * Creating a Request@@ -115,12 +113,14 @@ instance AWSRequest ModifyInstancePlacement where         type Rs ModifyInstancePlacement =              ModifyInstancePlacementResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  ModifyInstancePlacementResponse' <$>                    (x .@? "return") <*> (pure (fromEnum s)))++instance Hashable ModifyInstancePlacement  instance ToHeaders ModifyInstancePlacement where         toHeaders = const mempty
gen/Network/AWS/EC2/ModifyNetworkInterfaceAttribute.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ModifyNetworkInterfaceAttribute--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Modifies the specified network interface attribute. You can specify only -- one attribute at a time.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ModifyNetworkInterfaceAttribute.html AWS API Reference> for ModifyNetworkInterfaceAttribute. module Network.AWS.EC2.ModifyNetworkInterfaceAttribute     (     -- * Creating a Request@@ -126,10 +124,12 @@          where         type Rs ModifyNetworkInterfaceAttribute =              ModifyNetworkInterfaceAttributeResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveNull               ModifyNetworkInterfaceAttributeResponse'++instance Hashable ModifyNetworkInterfaceAttribute  instance ToHeaders ModifyNetworkInterfaceAttribute          where
gen/Network/AWS/EC2/ModifyReservedInstances.hs view
@@ -12,22 +12,20 @@  -- | -- Module      : Network.AWS.EC2.ModifyReservedInstances--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Modifies the Availability Zone, instance count, instance type, or--- network platform (EC2-Classic or EC2-VPC) of your Reserved instances.--- The Reserved instances to be modified must be identical, except for+-- network platform (EC2-Classic or EC2-VPC) of your Reserved Instances.+-- The Reserved Instances to be modified must be identical, except for -- Availability Zone, network platform, and instance type. -- -- For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html Modifying Reserved Instances> -- in the Amazon Elastic Compute Cloud User Guide.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ModifyReservedInstances.html AWS API Reference> for ModifyReservedInstances. module Network.AWS.EC2.ModifyReservedInstances     (     -- * Creating a Request@@ -84,24 +82,26 @@ mriClientToken :: Lens' ModifyReservedInstances (Maybe Text) mriClientToken = lens _mriClientToken (\ s a -> s{_mriClientToken = a}); --- | The IDs of the Reserved instances to modify.+-- | The IDs of the Reserved Instances to modify. mriReservedInstancesIds :: Lens' ModifyReservedInstances [Text] mriReservedInstancesIds = lens _mriReservedInstancesIds (\ s a -> s{_mriReservedInstancesIds = a}) . _Coerce; --- | The configuration settings for the Reserved instances to modify.+-- | The configuration settings for the Reserved Instances to modify. mriTargetConfigurations :: Lens' ModifyReservedInstances [ReservedInstancesConfiguration] mriTargetConfigurations = lens _mriTargetConfigurations (\ s a -> s{_mriTargetConfigurations = a}) . _Coerce;  instance AWSRequest ModifyReservedInstances where         type Rs ModifyReservedInstances =              ModifyReservedInstancesResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  ModifyReservedInstancesResponse' <$>                    (x .@? "reservedInstancesModificationId") <*>                      (pure (fromEnum s)))++instance Hashable ModifyReservedInstances  instance ToHeaders ModifyReservedInstances where         toHeaders = const mempty
gen/Network/AWS/EC2/ModifySnapshotAttribute.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ModifySnapshotAttribute--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -29,8 +29,6 @@ -- in the /Amazon Elastic Compute Cloud User Guide/. -- -- Snapshots with AWS Marketplace product codes cannot be made public.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ModifySnapshotAttribute.html AWS API Reference> for ModifySnapshotAttribute. module Network.AWS.EC2.ModifySnapshotAttribute     (     -- * Creating a Request@@ -135,9 +133,11 @@ instance AWSRequest ModifySnapshotAttribute where         type Rs ModifySnapshotAttribute =              ModifySnapshotAttributeResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveNull ModifySnapshotAttributeResponse'++instance Hashable ModifySnapshotAttribute  instance ToHeaders ModifySnapshotAttribute where         toHeaders = const mempty
gen/Network/AWS/EC2/ModifySpotFleetRequest.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ModifySpotFleetRequest--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -40,8 +40,6 @@ -- pools. Alternatively, you can request that the Spot fleet keep the fleet -- at its current size, but not replace any Spot instances that are -- interrupted or that you terminate manually.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ModifySpotFleetRequest.html AWS API Reference> for ModifySpotFleetRequest. module Network.AWS.EC2.ModifySpotFleetRequest     (     -- * Creating a Request@@ -112,12 +110,14 @@ instance AWSRequest ModifySpotFleetRequest where         type Rs ModifySpotFleetRequest =              ModifySpotFleetRequestResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  ModifySpotFleetRequestResponse' <$>                    (x .@? "return") <*> (pure (fromEnum s)))++instance Hashable ModifySpotFleetRequest  instance ToHeaders ModifySpotFleetRequest where         toHeaders = const mempty
gen/Network/AWS/EC2/ModifySubnetAttribute.hs view
@@ -12,15 +12,13 @@  -- | -- Module      : Network.AWS.EC2.ModifySubnetAttribute--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Modifies a subnet attribute.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ModifySubnetAttribute.html AWS API Reference> for ModifySubnetAttribute. module Network.AWS.EC2.ModifySubnetAttribute     (     -- * Creating a Request@@ -76,8 +74,10 @@ instance AWSRequest ModifySubnetAttribute where         type Rs ModifySubnetAttribute =              ModifySubnetAttributeResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull ModifySubnetAttributeResponse'++instance Hashable ModifySubnetAttribute  instance ToHeaders ModifySubnetAttribute where         toHeaders = const mempty
gen/Network/AWS/EC2/ModifyVPCAttribute.hs view
@@ -12,15 +12,13 @@  -- | -- Module      : Network.AWS.EC2.ModifyVPCAttribute--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Modifies the specified attribute of the specified VPC.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ModifyVPCAttribute.html AWS API Reference> for ModifyVPCAttribute. module Network.AWS.EC2.ModifyVPCAttribute     (     -- * Creating a Request@@ -98,8 +96,10 @@ instance AWSRequest ModifyVPCAttribute where         type Rs ModifyVPCAttribute =              ModifyVPCAttributeResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull ModifyVPCAttributeResponse'++instance Hashable ModifyVPCAttribute  instance ToHeaders ModifyVPCAttribute where         toHeaders = const mempty
gen/Network/AWS/EC2/ModifyVPCEndpoint.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ModifyVPCEndpoint--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -21,8 +21,6 @@ -- Modifies attributes of a specified VPC endpoint. You can modify the -- policy associated with the endpoint, and you can add and remove route -- tables associated with the endpoint.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ModifyVPCEndpoint.html AWS API Reference> for ModifyVPCEndpoint. module Network.AWS.EC2.ModifyVPCEndpoint     (     -- * Creating a Request@@ -120,12 +118,14 @@  instance AWSRequest ModifyVPCEndpoint where         type Rs ModifyVPCEndpoint = ModifyVPCEndpointResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  ModifyVPCEndpointResponse' <$>                    (x .@? "return") <*> (pure (fromEnum s)))++instance Hashable ModifyVPCEndpoint  instance ToHeaders ModifyVPCEndpoint where         toHeaders = const mempty
gen/Network/AWS/EC2/ModifyVolumeAttribute.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ModifyVolumeAttribute--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -29,8 +29,6 @@ -- You can change the default behavior to resume I\/O operations. We -- recommend that you change this only for boot volumes or for volumes that -- are stateless or disposable.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ModifyVolumeAttribute.html AWS API Reference> for ModifyVolumeAttribute. module Network.AWS.EC2.ModifyVolumeAttribute     (     -- * Creating a Request@@ -97,8 +95,10 @@ instance AWSRequest ModifyVolumeAttribute where         type Rs ModifyVolumeAttribute =              ModifyVolumeAttributeResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull ModifyVolumeAttributeResponse'++instance Hashable ModifyVolumeAttribute  instance ToHeaders ModifyVolumeAttribute where         toHeaders = const mempty
gen/Network/AWS/EC2/MonitorInstances.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.MonitorInstances--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -22,8 +22,6 @@ -- monitoring instances, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch.html Monitoring Your Instances and Volumes> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-MonitorInstances.html AWS API Reference> for MonitorInstances. module Network.AWS.EC2.MonitorInstances     (     -- * Creating a Request@@ -82,7 +80,7 @@  instance AWSRequest MonitorInstances where         type Rs MonitorInstances = MonitorInstancesResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -90,6 +88,8 @@                    (x .@? "instancesSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable MonitorInstances  instance ToHeaders MonitorInstances where         toHeaders = const mempty
gen/Network/AWS/EC2/MoveAddressToVPC.hs view
@@ -12,21 +12,22 @@  -- | -- Module      : Network.AWS.EC2.MoveAddressToVPC--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Moves an Elastic IP address from the EC2-Classic platform to the EC2-VPC--- platform. The Elastic IP address must be allocated to your account, and--- it must not be associated with an instance. After the Elastic IP address--- is moved, it is no longer available for use in the EC2-Classic platform,--- unless you move it back using the RestoreAddressToClassic request. You--- cannot move an Elastic IP address that\'s allocated for use in the--- EC2-VPC platform to the EC2-Classic platform.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-MoveAddressToVPC.html AWS API Reference> for MoveAddressToVPC.+-- platform. The Elastic IP address must be allocated to your account for+-- more than 24 hours, and it must not be associated with an instance.+-- After the Elastic IP address is moved, it is no longer available for use+-- in the EC2-Classic platform, unless you move it back using the+-- < RestoreAddressToClassic> request. You cannot move an Elastic IP+-- address that\'s allocated for use in the EC2-VPC platform to the+-- EC2-Classic platform. You cannot migrate an Elastic IP address that\'s+-- associated with a reverse DNS record. Contact AWS account and billing+-- support to remove the reverse DNS record. module Network.AWS.EC2.MoveAddressToVPC     (     -- * Creating a Request@@ -87,13 +88,15 @@  instance AWSRequest MoveAddressToVPC where         type Rs MoveAddressToVPC = MoveAddressToVPCResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  MoveAddressToVPCResponse' <$>                    (x .@? "status") <*> (x .@? "allocationId") <*>                      (pure (fromEnum s)))++instance Hashable MoveAddressToVPC  instance ToHeaders MoveAddressToVPC where         toHeaders = const mempty
gen/Network/AWS/EC2/PurchaseReservedInstancesOffering.hs view
@@ -12,29 +12,27 @@  -- | -- Module      : Network.AWS.EC2.PurchaseReservedInstancesOffering--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Purchases a Reserved instance for use with your account. With Amazon EC2--- Reserved instances, you obtain a capacity reservation for a certain--- instance configuration over a specified period of time and pay a lower--- hourly rate compared to On-Demand Instance pricing.+-- Purchases a Reserved Instance for use with your account. With Reserved+-- Instances, you obtain a capacity reservation for a certain instance+-- configuration over a specified period of time and pay a lower hourly+-- rate compared to On-Demand instance pricing. ----- Use DescribeReservedInstancesOfferings to get a list of Reserved--- instance offerings that match your specifications. After you\'ve--- purchased a Reserved instance, you can check for your new Reserved--- instance with DescribeReservedInstances.+-- Use < DescribeReservedInstancesOfferings> to get a list of Reserved+-- Instance offerings that match your specifications. After you\'ve+-- purchased a Reserved Instance, you can check for your new Reserved+-- Instance with < DescribeReservedInstances>. -- -- For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html Reserved Instances> -- and -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html Reserved Instance Marketplace> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-PurchaseReservedInstancesOffering.html AWS API Reference> for PurchaseReservedInstancesOffering. module Network.AWS.EC2.PurchaseReservedInstancesOffering     (     -- * Creating a Request@@ -93,7 +91,7 @@     }  -- | Specified for Reserved Instance Marketplace offerings to limit the total--- order and ensure that the Reserved instances are not purchased at+-- order and ensure that the Reserved Instances are not purchased at -- unexpected prices. prioLimitPrice :: Lens' PurchaseReservedInstancesOffering (Maybe ReservedInstanceLimitPrice) prioLimitPrice = lens _prioLimitPrice (\ s a -> s{_prioLimitPrice = a});@@ -105,11 +103,11 @@ prioDryRun :: Lens' PurchaseReservedInstancesOffering (Maybe Bool) prioDryRun = lens _prioDryRun (\ s a -> s{_prioDryRun = a}); --- | The ID of the Reserved instance offering to purchase.+-- | The ID of the Reserved Instance offering to purchase. prioReservedInstancesOfferingId :: Lens' PurchaseReservedInstancesOffering Text prioReservedInstancesOfferingId = lens _prioReservedInstancesOfferingId (\ s a -> s{_prioReservedInstancesOfferingId = a}); --- | The number of Reserved instances to purchase.+-- | The number of Reserved Instances to purchase. prioInstanceCount :: Lens' PurchaseReservedInstancesOffering Int prioInstanceCount = lens _prioInstanceCount (\ s a -> s{_prioInstanceCount = a}); @@ -117,7 +115,7 @@          where         type Rs PurchaseReservedInstancesOffering =              PurchaseReservedInstancesOfferingResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -125,6 +123,8 @@                    (x .@? "reservedInstancesId") <*>                      (pure (fromEnum s))) +instance Hashable PurchaseReservedInstancesOffering+ instance ToHeaders PurchaseReservedInstancesOffering          where         toHeaders = const mempty@@ -168,7 +168,7 @@     , _priorsResponseStatus = pResponseStatus_     } --- | The IDs of the purchased Reserved instances.+-- | The IDs of the purchased Reserved Instances. priorsReservedInstancesId :: Lens' PurchaseReservedInstancesOfferingResponse (Maybe Text) priorsReservedInstancesId = lens _priorsReservedInstancesId (\ s a -> s{_priorsReservedInstancesId = a}); 
+ gen/Network/AWS/EC2/PurchaseScheduledInstances.hs view
@@ -0,0 +1,157 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.PurchaseScheduledInstances+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Purchases one or more Scheduled Instances with the specified schedule.+--+-- Scheduled Instances enable you to purchase Amazon EC2 compute capacity+-- by the hour for a one-year term. Before you can purchase a Scheduled+-- Instance, you must call < DescribeScheduledInstanceAvailability> to+-- check for available schedules and obtain a purchase token.+module Network.AWS.EC2.PurchaseScheduledInstances+    (+    -- * Creating a Request+      purchaseScheduledInstances+    , PurchaseScheduledInstances+    -- * Request Lenses+    , psiClientToken+    , psiDryRun+    , psiPurchaseRequests++    -- * Destructuring the Response+    , purchaseScheduledInstancesResponse+    , PurchaseScheduledInstancesResponse+    -- * Response Lenses+    , psirsScheduledInstanceSet+    , psirsResponseStatus+    ) where++import           Network.AWS.EC2.Types+import           Network.AWS.EC2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for PurchaseScheduledInstances.+--+-- /See:/ 'purchaseScheduledInstances' smart constructor.+data PurchaseScheduledInstances = PurchaseScheduledInstances'+    { _psiClientToken      :: !(Maybe Text)+    , _psiDryRun           :: !(Maybe Bool)+    , _psiPurchaseRequests :: !(List1 PurchaseRequest)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PurchaseScheduledInstances' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'psiClientToken'+--+-- * 'psiDryRun'+--+-- * 'psiPurchaseRequests'+purchaseScheduledInstances+    :: NonEmpty PurchaseRequest -- ^ 'psiPurchaseRequests'+    -> PurchaseScheduledInstances+purchaseScheduledInstances pPurchaseRequests_ =+    PurchaseScheduledInstances'+    { _psiClientToken = Nothing+    , _psiDryRun = Nothing+    , _psiPurchaseRequests = _List1 # pPurchaseRequests_+    }++-- | Unique, case-sensitive identifier that ensures the idempotency of the+-- request. For more information, see+-- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency>.+psiClientToken :: Lens' PurchaseScheduledInstances (Maybe Text)+psiClientToken = lens _psiClientToken (\ s a -> s{_psiClientToken = a});++-- | Checks whether you have the required permissions for the action, without+-- actually making the request, and provides an error response. If you have+-- the required permissions, the error response is 'DryRunOperation'.+-- Otherwise, it is 'UnauthorizedOperation'.+psiDryRun :: Lens' PurchaseScheduledInstances (Maybe Bool)+psiDryRun = lens _psiDryRun (\ s a -> s{_psiDryRun = a});++-- | One or more purchase requests.+psiPurchaseRequests :: Lens' PurchaseScheduledInstances (NonEmpty PurchaseRequest)+psiPurchaseRequests = lens _psiPurchaseRequests (\ s a -> s{_psiPurchaseRequests = a}) . _List1;++instance AWSRequest PurchaseScheduledInstances where+        type Rs PurchaseScheduledInstances =+             PurchaseScheduledInstancesResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 PurchaseScheduledInstancesResponse' <$>+                   (x .@? "scheduledInstanceSet" .!@ mempty >>=+                      may (parseXMLList "item"))+                     <*> (pure (fromEnum s)))++instance Hashable PurchaseScheduledInstances++instance ToHeaders PurchaseScheduledInstances where+        toHeaders = const mempty++instance ToPath PurchaseScheduledInstances where+        toPath = const "/"++instance ToQuery PurchaseScheduledInstances where+        toQuery PurchaseScheduledInstances'{..}+          = mconcat+              ["Action" =:+                 ("PurchaseScheduledInstances" :: ByteString),+               "Version" =: ("2015-10-01" :: ByteString),+               "ClientToken" =: _psiClientToken,+               "DryRun" =: _psiDryRun,+               toQueryList "PurchaseRequest" _psiPurchaseRequests]++-- | Contains the output of PurchaseScheduledInstances.+--+-- /See:/ 'purchaseScheduledInstancesResponse' smart constructor.+data PurchaseScheduledInstancesResponse = PurchaseScheduledInstancesResponse'+    { _psirsScheduledInstanceSet :: !(Maybe [ScheduledInstance])+    , _psirsResponseStatus       :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PurchaseScheduledInstancesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'psirsScheduledInstanceSet'+--+-- * 'psirsResponseStatus'+purchaseScheduledInstancesResponse+    :: Int -- ^ 'psirsResponseStatus'+    -> PurchaseScheduledInstancesResponse+purchaseScheduledInstancesResponse pResponseStatus_ =+    PurchaseScheduledInstancesResponse'+    { _psirsScheduledInstanceSet = Nothing+    , _psirsResponseStatus = pResponseStatus_+    }++-- | Information about the Scheduled Instances.+psirsScheduledInstanceSet :: Lens' PurchaseScheduledInstancesResponse [ScheduledInstance]+psirsScheduledInstanceSet = lens _psirsScheduledInstanceSet (\ s a -> s{_psirsScheduledInstanceSet = a}) . _Default . _Coerce;++-- | The response status code.+psirsResponseStatus :: Lens' PurchaseScheduledInstancesResponse Int+psirsResponseStatus = lens _psirsResponseStatus (\ s a -> s{_psirsResponseStatus = a});
gen/Network/AWS/EC2/RebootInstances.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.RebootInstances--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -29,8 +29,6 @@ -- For more information about troubleshooting, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html Getting Console Output and Rebooting Instances> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-RebootInstances.html AWS API Reference> for RebootInstances. module Network.AWS.EC2.RebootInstances     (     -- * Creating a Request@@ -86,8 +84,10 @@  instance AWSRequest RebootInstances where         type Rs RebootInstances = RebootInstancesResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull RebootInstancesResponse'++instance Hashable RebootInstances  instance ToHeaders RebootInstances where         toHeaders = const mempty
gen/Network/AWS/EC2/RegisterImage.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.RegisterImage--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -24,8 +24,8 @@ -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami.html Creating Your Own AMIs> -- in the /Amazon Elastic Compute Cloud User Guide/. ----- For Amazon EBS-backed instances, CreateImage creates and registers the--- AMI in a single request, so you don\'t have to register the AMI+-- For Amazon EBS-backed instances, < CreateImage> creates and registers+-- the AMI in a single request, so you don\'t have to register the AMI -- yourself. -- -- You can also use 'RegisterImage' to create an Amazon EBS-backed Linux@@ -44,7 +44,7 @@ -- can\'t successfully launch an instance from the AMI. -- -- To create Windows AMIs or to create AMIs for Linux operating systems--- that must retain AMI billing codes to work properly, see CreateImage.+-- that must retain AMI billing codes to work properly, see < CreateImage>. -- -- If needed, you can deregister an AMI at any time. Any modifications you -- make to an AMI backed by an instance store volume invalidates its@@ -53,8 +53,6 @@ -- -- You can\'t register an image where a secondary (non-root) snapshot has -- AWS Marketplace product codes.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-RegisterImage.html AWS API Reference> for RegisterImage. module Network.AWS.EC2.RegisterImage     (     -- * Creating a Request@@ -211,12 +209,14 @@  instance AWSRequest RegisterImage where         type Rs RegisterImage = RegisterImageResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  RegisterImageResponse' <$>                    (x .@? "imageId") <*> (pure (fromEnum s)))++instance Hashable RegisterImage  instance ToHeaders RegisterImage where         toHeaders = const mempty
gen/Network/AWS/EC2/RejectVPCPeeringConnection.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.RejectVPCPeeringConnection--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,12 +20,10 @@ -- -- Rejects a VPC peering connection request. The VPC peering connection -- must be in the 'pending-acceptance' state. Use the--- DescribeVpcPeeringConnections request to view your outstanding VPC+-- < DescribeVpcPeeringConnections> request to view your outstanding VPC -- peering connection requests. To delete an active VPC peering connection, -- or to delete a VPC peering connection request that you initiated, use--- DeleteVpcPeeringConnection.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-RejectVPCPeeringConnection.html AWS API Reference> for RejectVPCPeeringConnection.+-- < DeleteVpcPeeringConnection>. module Network.AWS.EC2.RejectVPCPeeringConnection     (     -- * Creating a Request@@ -86,12 +84,14 @@ instance AWSRequest RejectVPCPeeringConnection where         type Rs RejectVPCPeeringConnection =              RejectVPCPeeringConnectionResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  RejectVPCPeeringConnectionResponse' <$>                    (x .@? "return") <*> (pure (fromEnum s)))++instance Hashable RejectVPCPeeringConnection  instance ToHeaders RejectVPCPeeringConnection where         toHeaders = const mempty
gen/Network/AWS/EC2/ReleaseAddress.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ReleaseAddress--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -30,13 +30,11 @@ -- [EC2-Classic, default VPC] Releasing an Elastic IP address automatically -- disassociates it from any instance that it\'s associated with. To -- disassociate an Elastic IP address without releasing it, use--- DisassociateAddress.+-- < DisassociateAddress>. ----- [Nondefault VPC] You must use DisassociateAddress to disassociate the+-- [Nondefault VPC] You must use < DisassociateAddress> to disassociate the -- Elastic IP address before you try to release it. Otherwise, Amazon EC2 -- returns an error ('InvalidIPAddress.InUse').------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ReleaseAddress.html AWS API Reference> for ReleaseAddress. module Network.AWS.EC2.ReleaseAddress     (     -- * Creating a Request@@ -101,8 +99,10 @@  instance AWSRequest ReleaseAddress where         type Rs ReleaseAddress = ReleaseAddressResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull ReleaseAddressResponse'++instance Hashable ReleaseAddress  instance ToHeaders ReleaseAddress where         toHeaders = const mempty
gen/Network/AWS/EC2/ReleaseHosts.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ReleaseHosts--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -30,8 +30,6 @@ -- then try again. -- -- Released hosts will still appear in a DescribeHosts response.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ReleaseHosts.html AWS API Reference> for ReleaseHosts. module Network.AWS.EC2.ReleaseHosts     (     -- * Creating a Request@@ -79,7 +77,7 @@  instance AWSRequest ReleaseHosts where         type Rs ReleaseHosts = ReleaseHostsResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -90,6 +88,8 @@                      (x .@? "successful" .!@ mempty >>=                         may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable ReleaseHosts  instance ToHeaders ReleaseHosts where         toHeaders = const mempty
gen/Network/AWS/EC2/ReplaceNetworkACLAssociation.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ReplaceNetworkACLAssociation--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -23,8 +23,6 @@ -- network ACL. For more information about network ACLs, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html Network ACLs> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ReplaceNetworkACLAssociation.html AWS API Reference> for ReplaceNetworkACLAssociation. module Network.AWS.EC2.ReplaceNetworkACLAssociation     (     -- * Creating a Request@@ -97,12 +95,14 @@          where         type Rs ReplaceNetworkACLAssociation =              ReplaceNetworkACLAssociationResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  ReplaceNetworkACLAssociationResponse' <$>                    (x .@? "newAssociationId") <*> (pure (fromEnum s)))++instance Hashable ReplaceNetworkACLAssociation  instance ToHeaders ReplaceNetworkACLAssociation where         toHeaders = const mempty
gen/Network/AWS/EC2/ReplaceNetworkACLEntry.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ReplaceNetworkACLEntry--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -22,8 +22,6 @@ -- network ACLs, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html Network ACLs> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ReplaceNetworkACLEntry.html AWS API Reference> for ReplaceNetworkACLEntry. module Network.AWS.EC2.ReplaceNetworkACLEntry     (     -- * Creating a Request@@ -153,9 +151,11 @@ instance AWSRequest ReplaceNetworkACLEntry where         type Rs ReplaceNetworkACLEntry =              ReplaceNetworkACLEntryResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveNull ReplaceNetworkACLEntryResponse'++instance Hashable ReplaceNetworkACLEntry  instance ToHeaders ReplaceNetworkACLEntry where         toHeaders = const mempty
gen/Network/AWS/EC2/ReplaceRoute.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ReplaceRoute--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -26,8 +26,6 @@ -- For more information about route tables, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html Route Tables> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ReplaceRoute.html AWS API Reference> for ReplaceRoute. module Network.AWS.EC2.ReplaceRoute     (     -- * Creating a Request@@ -140,8 +138,10 @@  instance AWSRequest ReplaceRoute where         type Rs ReplaceRoute = ReplaceRouteResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull ReplaceRouteResponse'++instance Hashable ReplaceRoute  instance ToHeaders ReplaceRoute where         toHeaders = const mempty
gen/Network/AWS/EC2/ReplaceRouteTableAssociation.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ReplaceRouteTableAssociation--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -29,8 +29,6 @@ -- the main route table in the VPC. You just specify the main route -- table\'s association ID and the route table to be the new main route -- table.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ReplaceRouteTableAssociation.html AWS API Reference> for ReplaceRouteTableAssociation. module Network.AWS.EC2.ReplaceRouteTableAssociation     (     -- * Creating a Request@@ -102,12 +100,14 @@          where         type Rs ReplaceRouteTableAssociation =              ReplaceRouteTableAssociationResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  ReplaceRouteTableAssociationResponse' <$>                    (x .@? "newAssociationId") <*> (pure (fromEnum s)))++instance Hashable ReplaceRouteTableAssociation  instance ToHeaders ReplaceRouteTableAssociation where         toHeaders = const mempty
gen/Network/AWS/EC2/ReportInstanceStatus.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ReportInstanceStatus--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,14 +20,13 @@ -- -- Submits feedback about the status of an instance. The instance must be -- in the 'running' state. If your experience with the instance differs--- from the instance status returned by DescribeInstanceStatus, use--- ReportInstanceStatus to report your experience with the instance. Amazon--- EC2 collects this information to improve the accuracy of status checks.+-- from the instance status returned by < DescribeInstanceStatus>, use+-- < ReportInstanceStatus> to report your experience with the instance.+-- Amazon EC2 collects this information to improve the accuracy of status+-- checks. -- -- Use of this action does not change the value returned by--- DescribeInstanceStatus.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ReportInstanceStatus.html AWS API Reference> for ReportInstanceStatus.+-- < DescribeInstanceStatus>. module Network.AWS.EC2.ReportInstanceStatus     (     -- * Creating a Request@@ -157,8 +156,10 @@ instance AWSRequest ReportInstanceStatus where         type Rs ReportInstanceStatus =              ReportInstanceStatusResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull ReportInstanceStatusResponse'++instance Hashable ReportInstanceStatus  instance ToHeaders ReportInstanceStatus where         toHeaders = const mempty
gen/Network/AWS/EC2/RequestSpotFleet.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.RequestSpotFleet--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -37,8 +37,6 @@ -- For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html Spot Fleet Requests> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-RequestSpotFleet.html AWS API Reference> for RequestSpotFleet. module Network.AWS.EC2.RequestSpotFleet     (     -- * Creating a Request@@ -100,12 +98,14 @@  instance AWSRequest RequestSpotFleet where         type Rs RequestSpotFleet = RequestSpotFleetResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  RequestSpotFleetResponse' <$>                    (pure (fromEnum s)) <*> (x .@ "spotFleetRequestId"))++instance Hashable RequestSpotFleet  instance ToHeaders RequestSpotFleet where         toHeaders = const mempty
gen/Network/AWS/EC2/RequestSpotInstances.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.RequestSpotInstances--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -25,25 +25,23 @@ -- more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html Spot Instance Requests> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-RequestSpotInstances.html AWS API Reference> for RequestSpotInstances. module Network.AWS.EC2.RequestSpotInstances     (     -- * Creating a Request       requestSpotInstances     , RequestSpotInstances     -- * Request Lenses-    , rsiBlockDurationMinutes-    , rsiClientToken-    , rsiInstanceCount-    , rsiLaunchSpecification-    , rsiAvailabilityZoneGroup-    , rsiValidUntil-    , rsiLaunchGroup-    , rsiType-    , rsiValidFrom-    , rsiDryRun-    , rsiSpotPrice+    , rsisBlockDurationMinutes+    , rsisClientToken+    , rsisInstanceCount+    , rsisLaunchSpecification+    , rsisAvailabilityZoneGroup+    , rsisValidUntil+    , rsisLaunchGroup+    , rsisType+    , rsisValidFrom+    , rsisDryRun+    , rsisSpotPrice      -- * Destructuring the Response     , requestSpotInstancesResponse@@ -64,64 +62,65 @@ -- -- /See:/ 'requestSpotInstances' smart constructor. data RequestSpotInstances = RequestSpotInstances'-    { _rsiBlockDurationMinutes  :: !(Maybe Int)-    , _rsiClientToken           :: !(Maybe Text)-    , _rsiInstanceCount         :: !(Maybe Int)-    , _rsiLaunchSpecification   :: !(Maybe RequestSpotLaunchSpecification)-    , _rsiAvailabilityZoneGroup :: !(Maybe Text)-    , _rsiValidUntil            :: !(Maybe ISO8601)-    , _rsiLaunchGroup           :: !(Maybe Text)-    , _rsiType                  :: !(Maybe SpotInstanceType)-    , _rsiValidFrom             :: !(Maybe ISO8601)-    , _rsiDryRun                :: !(Maybe Bool)-    , _rsiSpotPrice             :: !Text+    { _rsisBlockDurationMinutes  :: !(Maybe Int)+    , _rsisClientToken           :: !(Maybe Text)+    , _rsisInstanceCount         :: !(Maybe Int)+    , _rsisLaunchSpecification   :: !(Maybe RequestSpotLaunchSpecification)+    , _rsisAvailabilityZoneGroup :: !(Maybe Text)+    , _rsisValidUntil            :: !(Maybe ISO8601)+    , _rsisLaunchGroup           :: !(Maybe Text)+    , _rsisType                  :: !(Maybe SpotInstanceType)+    , _rsisValidFrom             :: !(Maybe ISO8601)+    , _rsisDryRun                :: !(Maybe Bool)+    , _rsisSpotPrice             :: !Text     } deriving (Eq,Read,Show,Data,Typeable,Generic)  -- | Creates a value of 'RequestSpotInstances' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'rsiBlockDurationMinutes'+-- * 'rsisBlockDurationMinutes' ----- * 'rsiClientToken'+-- * 'rsisClientToken' ----- * 'rsiInstanceCount'+-- * 'rsisInstanceCount' ----- * 'rsiLaunchSpecification'+-- * 'rsisLaunchSpecification' ----- * 'rsiAvailabilityZoneGroup'+-- * 'rsisAvailabilityZoneGroup' ----- * 'rsiValidUntil'+-- * 'rsisValidUntil' ----- * 'rsiLaunchGroup'+-- * 'rsisLaunchGroup' ----- * 'rsiType'+-- * 'rsisType' ----- * 'rsiValidFrom'+-- * 'rsisValidFrom' ----- * 'rsiDryRun'+-- * 'rsisDryRun' ----- * 'rsiSpotPrice'+-- * 'rsisSpotPrice' requestSpotInstances-    :: Text -- ^ 'rsiSpotPrice'+    :: Text -- ^ 'rsisSpotPrice'     -> RequestSpotInstances requestSpotInstances pSpotPrice_ =     RequestSpotInstances'-    { _rsiBlockDurationMinutes = Nothing-    , _rsiClientToken = Nothing-    , _rsiInstanceCount = Nothing-    , _rsiLaunchSpecification = Nothing-    , _rsiAvailabilityZoneGroup = Nothing-    , _rsiValidUntil = Nothing-    , _rsiLaunchGroup = Nothing-    , _rsiType = Nothing-    , _rsiValidFrom = Nothing-    , _rsiDryRun = Nothing-    , _rsiSpotPrice = pSpotPrice_+    { _rsisBlockDurationMinutes = Nothing+    , _rsisClientToken = Nothing+    , _rsisInstanceCount = Nothing+    , _rsisLaunchSpecification = Nothing+    , _rsisAvailabilityZoneGroup = Nothing+    , _rsisValidUntil = Nothing+    , _rsisLaunchGroup = Nothing+    , _rsisType = Nothing+    , _rsisValidFrom = Nothing+    , _rsisDryRun = Nothing+    , _rsisSpotPrice = pSpotPrice_     } --- | The required duration for the Spot instances, in minutes. This value--- must be a multiple of 60 (60, 120, 180, 240, 300, or 360).+-- | The required duration for the Spot instances (also known as Spot+-- blocks), in minutes. This value must be a multiple of 60 (60, 120, 180,+-- 240, 300, or 360). -- -- The duration period starts as soon as your Spot instance receives its -- instance ID. At the end of the duration period, Amazon EC2 marks the@@ -131,25 +130,25 @@ -- -- Note that you can\'t specify an Availability Zone group or a launch -- group if you specify a duration.-rsiBlockDurationMinutes :: Lens' RequestSpotInstances (Maybe Int)-rsiBlockDurationMinutes = lens _rsiBlockDurationMinutes (\ s a -> s{_rsiBlockDurationMinutes = a});+rsisBlockDurationMinutes :: Lens' RequestSpotInstances (Maybe Int)+rsisBlockDurationMinutes = lens _rsisBlockDurationMinutes (\ s a -> s{_rsisBlockDurationMinutes = a});  -- | Unique, case-sensitive identifier that you provide to ensure the -- idempotency of the request. For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html How to Ensure Idempotency> -- in the /Amazon Elastic Compute Cloud User Guide/.-rsiClientToken :: Lens' RequestSpotInstances (Maybe Text)-rsiClientToken = lens _rsiClientToken (\ s a -> s{_rsiClientToken = a});+rsisClientToken :: Lens' RequestSpotInstances (Maybe Text)+rsisClientToken = lens _rsisClientToken (\ s a -> s{_rsisClientToken = a});  -- | The maximum number of Spot instances to launch. -- -- Default: 1-rsiInstanceCount :: Lens' RequestSpotInstances (Maybe Int)-rsiInstanceCount = lens _rsiInstanceCount (\ s a -> s{_rsiInstanceCount = a});+rsisInstanceCount :: Lens' RequestSpotInstances (Maybe Int)+rsisInstanceCount = lens _rsisInstanceCount (\ s a -> s{_rsisInstanceCount = a});  -- | Undocumented member.-rsiLaunchSpecification :: Lens' RequestSpotInstances (Maybe RequestSpotLaunchSpecification)-rsiLaunchSpecification = lens _rsiLaunchSpecification (\ s a -> s{_rsiLaunchSpecification = a});+rsisLaunchSpecification :: Lens' RequestSpotInstances (Maybe RequestSpotLaunchSpecification)+rsisLaunchSpecification = lens _rsisLaunchSpecification (\ s a -> s{_rsisLaunchSpecification = a});  -- | The user-specified name for a logical grouping of bids. --@@ -171,8 +170,8 @@ -- even if you specified the same Availability Zone group. -- -- Default: Instances are launched in any available Availability Zone.-rsiAvailabilityZoneGroup :: Lens' RequestSpotInstances (Maybe Text)-rsiAvailabilityZoneGroup = lens _rsiAvailabilityZoneGroup (\ s a -> s{_rsiAvailabilityZoneGroup = a});+rsisAvailabilityZoneGroup :: Lens' RequestSpotInstances (Maybe Text)+rsisAvailabilityZoneGroup = lens _rsisAvailabilityZoneGroup (\ s a -> s{_rsisAvailabilityZoneGroup = a});  -- | The end date of the request. If this is a one-time request, the request -- remains active until all instances launch, the request is canceled, or@@ -180,21 +179,21 @@ -- until it is canceled or this date and time is reached. -- -- Default: The request is effective indefinitely.-rsiValidUntil :: Lens' RequestSpotInstances (Maybe UTCTime)-rsiValidUntil = lens _rsiValidUntil (\ s a -> s{_rsiValidUntil = a}) . mapping _Time;+rsisValidUntil :: Lens' RequestSpotInstances (Maybe UTCTime)+rsisValidUntil = lens _rsisValidUntil (\ s a -> s{_rsisValidUntil = a}) . mapping _Time;  -- | The instance launch group. Launch groups are Spot instances that launch -- together and terminate together. -- -- Default: Instances are launched and terminated individually-rsiLaunchGroup :: Lens' RequestSpotInstances (Maybe Text)-rsiLaunchGroup = lens _rsiLaunchGroup (\ s a -> s{_rsiLaunchGroup = a});+rsisLaunchGroup :: Lens' RequestSpotInstances (Maybe Text)+rsisLaunchGroup = lens _rsisLaunchGroup (\ s a -> s{_rsisLaunchGroup = a});  -- | The Spot instance request type. -- -- Default: 'one-time'-rsiType :: Lens' RequestSpotInstances (Maybe SpotInstanceType)-rsiType = lens _rsiType (\ s a -> s{_rsiType = a});+rsisType :: Lens' RequestSpotInstances (Maybe SpotInstanceType)+rsisType = lens _rsisType (\ s a -> s{_rsisType = a});  -- | The start date of the request. If this is a one-time request, the -- request becomes active at this date and time and remains active until@@ -203,25 +202,25 @@ -- and time and remains active until it expires or is canceled. -- -- Default: The request is effective indefinitely.-rsiValidFrom :: Lens' RequestSpotInstances (Maybe UTCTime)-rsiValidFrom = lens _rsiValidFrom (\ s a -> s{_rsiValidFrom = a}) . mapping _Time;+rsisValidFrom :: Lens' RequestSpotInstances (Maybe UTCTime)+rsisValidFrom = lens _rsisValidFrom (\ s a -> s{_rsisValidFrom = a}) . mapping _Time;  -- | Checks whether you have the required permissions for the action, without -- actually making the request, and provides an error response. If you have -- the required permissions, the error response is 'DryRunOperation'. -- Otherwise, it is 'UnauthorizedOperation'.-rsiDryRun :: Lens' RequestSpotInstances (Maybe Bool)-rsiDryRun = lens _rsiDryRun (\ s a -> s{_rsiDryRun = a});+rsisDryRun :: Lens' RequestSpotInstances (Maybe Bool)+rsisDryRun = lens _rsisDryRun (\ s a -> s{_rsisDryRun = a});  -- | The maximum hourly price (bid) for any Spot instance launched to fulfill -- the request.-rsiSpotPrice :: Lens' RequestSpotInstances Text-rsiSpotPrice = lens _rsiSpotPrice (\ s a -> s{_rsiSpotPrice = a});+rsisSpotPrice :: Lens' RequestSpotInstances Text+rsisSpotPrice = lens _rsisSpotPrice (\ s a -> s{_rsisSpotPrice = a});  instance AWSRequest RequestSpotInstances where         type Rs RequestSpotInstances =              RequestSpotInstancesResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -230,6 +229,8 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) +instance Hashable RequestSpotInstances+ instance ToHeaders RequestSpotInstances where         toHeaders = const mempty @@ -241,15 +242,17 @@           = mconcat               ["Action" =: ("RequestSpotInstances" :: ByteString),                "Version" =: ("2015-10-01" :: ByteString),-               "BlockDurationMinutes" =: _rsiBlockDurationMinutes,-               "ClientToken" =: _rsiClientToken,-               "InstanceCount" =: _rsiInstanceCount,-               "LaunchSpecification" =: _rsiLaunchSpecification,-               "AvailabilityZoneGroup" =: _rsiAvailabilityZoneGroup,-               "ValidUntil" =: _rsiValidUntil,-               "LaunchGroup" =: _rsiLaunchGroup, "Type" =: _rsiType,-               "ValidFrom" =: _rsiValidFrom, "DryRun" =: _rsiDryRun,-               "SpotPrice" =: _rsiSpotPrice]+               "BlockDurationMinutes" =: _rsisBlockDurationMinutes,+               "ClientToken" =: _rsisClientToken,+               "InstanceCount" =: _rsisInstanceCount,+               "LaunchSpecification" =: _rsisLaunchSpecification,+               "AvailabilityZoneGroup" =:+                 _rsisAvailabilityZoneGroup,+               "ValidUntil" =: _rsisValidUntil,+               "LaunchGroup" =: _rsisLaunchGroup,+               "Type" =: _rsisType, "ValidFrom" =: _rsisValidFrom,+               "DryRun" =: _rsisDryRun,+               "SpotPrice" =: _rsisSpotPrice]  -- | Contains the output of RequestSpotInstances. --
gen/Network/AWS/EC2/ResetImageAttribute.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ResetImageAttribute--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -21,8 +21,6 @@ -- Resets an attribute of an AMI to its default value. -- -- The productCodes attribute can\'t be reset.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ResetImageAttribute.html AWS API Reference> for ResetImageAttribute. module Network.AWS.EC2.ResetImageAttribute     (     -- * Creating a Request@@ -91,8 +89,10 @@ instance AWSRequest ResetImageAttribute where         type Rs ResetImageAttribute =              ResetImageAttributeResponse-        request = postQuery eC2+        request = postQuery ec2         response = receiveNull ResetImageAttributeResponse'++instance Hashable ResetImageAttribute  instance ToHeaders ResetImageAttribute where         toHeaders = const mempty
gen/Network/AWS/EC2/ResetInstanceAttribute.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ResetInstanceAttribute--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -28,8 +28,6 @@ -- NAT. For more information, see -- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html NAT Instances> -- in the /Amazon Virtual Private Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ResetInstanceAttribute.html AWS API Reference> for ResetInstanceAttribute. module Network.AWS.EC2.ResetInstanceAttribute     (     -- * Creating a Request@@ -97,9 +95,11 @@ instance AWSRequest ResetInstanceAttribute where         type Rs ResetInstanceAttribute =              ResetInstanceAttributeResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveNull ResetInstanceAttributeResponse'++instance Hashable ResetInstanceAttribute  instance ToHeaders ResetInstanceAttribute where         toHeaders = const mempty
gen/Network/AWS/EC2/ResetNetworkInterfaceAttribute.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ResetNetworkInterfaceAttribute--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Resets a network interface attribute. You can specify only one attribute -- at a time.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ResetNetworkInterfaceAttribute.html AWS API Reference> for ResetNetworkInterfaceAttribute. module Network.AWS.EC2.ResetNetworkInterfaceAttribute     (     -- * Creating a Request@@ -89,9 +87,11 @@          where         type Rs ResetNetworkInterfaceAttribute =              ResetNetworkInterfaceAttributeResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveNull ResetNetworkInterfaceAttributeResponse'++instance Hashable ResetNetworkInterfaceAttribute  instance ToHeaders ResetNetworkInterfaceAttribute          where
gen/Network/AWS/EC2/ResetSnapshotAttribute.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.ResetSnapshotAttribute--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -23,8 +23,6 @@ -- For more information on modifying snapshot permissions, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html Sharing Snapshots> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ResetSnapshotAttribute.html AWS API Reference> for ResetSnapshotAttribute. module Network.AWS.EC2.ResetSnapshotAttribute     (     -- * Creating a Request@@ -93,9 +91,11 @@ instance AWSRequest ResetSnapshotAttribute where         type Rs ResetSnapshotAttribute =              ResetSnapshotAttributeResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveNull ResetSnapshotAttributeResponse'++instance Hashable ResetSnapshotAttribute  instance ToHeaders ResetSnapshotAttribute where         toHeaders = const mempty
gen/Network/AWS/EC2/RestoreAddressToClassic.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.RestoreAddressToClassic--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -22,8 +22,9 @@ -- platform back to the EC2-Classic platform. You cannot move an Elastic IP -- address that was originally allocated for use in EC2-VPC. The Elastic IP -- address must not be associated with an instance or network interface.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-RestoreAddressToClassic.html AWS API Reference> for RestoreAddressToClassic.+-- You cannot restore an Elastic IP address that\'s associated with a+-- reverse DNS record. Contact AWS account and billing support to remove+-- the reverse DNS record. module Network.AWS.EC2.RestoreAddressToClassic     (     -- * Creating a Request@@ -85,13 +86,15 @@ instance AWSRequest RestoreAddressToClassic where         type Rs RestoreAddressToClassic =              RestoreAddressToClassicResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->                  RestoreAddressToClassicResponse' <$>                    (x .@? "status") <*> (x .@? "publicIp") <*>                      (pure (fromEnum s)))++instance Hashable RestoreAddressToClassic  instance ToHeaders RestoreAddressToClassic where         toHeaders = const mempty
gen/Network/AWS/EC2/RevokeSecurityGroupEgress.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.RevokeSecurityGroupEgress--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -31,8 +31,6 @@ -- -- Rule changes are propagated to instances within the security group as -- quickly as possible. However, a small delay might occur.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-RevokeSecurityGroupEgress.html AWS API Reference> for RevokeSecurityGroupEgress. module Network.AWS.EC2.RevokeSecurityGroupEgress     (     -- * Creating a Request@@ -164,9 +162,11 @@ instance AWSRequest RevokeSecurityGroupEgress where         type Rs RevokeSecurityGroupEgress =              RevokeSecurityGroupEgressResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveNull RevokeSecurityGroupEgressResponse'++instance Hashable RevokeSecurityGroupEgress  instance ToHeaders RevokeSecurityGroupEgress where         toHeaders = const mempty
gen/Network/AWS/EC2/RevokeSecurityGroupIngress.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.RevokeSecurityGroupIngress--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -29,8 +29,6 @@ -- -- Rule changes are propagated to instances within the security group as -- quickly as possible. However, a small delay might occur.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-RevokeSecurityGroupIngress.html AWS API Reference> for RevokeSecurityGroupIngress. module Network.AWS.EC2.RevokeSecurityGroupIngress     (     -- * Creating a Request@@ -176,9 +174,11 @@ instance AWSRequest RevokeSecurityGroupIngress where         type Rs RevokeSecurityGroupIngress =              RevokeSecurityGroupIngressResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveNull RevokeSecurityGroupIngressResponse'++instance Hashable RevokeSecurityGroupIngress  instance ToHeaders RevokeSecurityGroupIngress where         toHeaders = const mempty
gen/Network/AWS/EC2/RunInstances.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.RunInstances--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -23,8 +23,12 @@ -- -- When you launch an instance, it enters the 'pending' state. After the -- instance is ready for you, it enters the 'running' state. To check the--- state of your instance, call DescribeInstances.+-- state of your instance, call < DescribeInstances>. --+-- To ensure faster instance launches, break up large requests into smaller+-- batches. For example, create five separate launch requests for 100+-- instances each instead of one launch request for 500 instances.+-- -- If you don\'t specify a security group when launching an instance, -- Amazon EC2 uses the default security group. For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html Security Groups>@@ -51,17 +55,16 @@ -- If any of the AMIs have a product code attached for which the user has -- not subscribed, 'RunInstances' fails. ----- T2 instance types can only be launched into a VPC. If you do not have a--- default VPC, or if you do not specify a subnet ID in the request,--- 'RunInstances' fails.+-- Some instance types can only be launched into a VPC. If you do not have+-- a default VPC, or if you do not specify a subnet ID in the request,+-- 'RunInstances' fails. For more information, see+-- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-vpc.html#vpc-only-instance-types Instance Types Available Only in a VPC>. -- -- For more information about troubleshooting, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_InstanceStraightToTerminated.html What To Do If An Instance Immediately Terminates>, -- and -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html Troubleshooting Connecting to Your Instance> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-RunInstances.html AWS API Reference> for RunInstances. module Network.AWS.EC2.RunInstances     (     -- * Creating a Request@@ -223,7 +226,7 @@ rAdditionalInfo = lens _rAdditionalInfo (\ s a -> s{_rAdditionalInfo = a});  -- | One or more security group IDs. You can create a security group using--- CreateSecurityGroup.+-- < CreateSecurityGroup>. -- -- Default: Amazon EC2 uses the default security group. rSecurityGroupIds :: Lens' RunInstances [Text]@@ -249,7 +252,7 @@ -- set this parameter to 'true' and then later want to be able to terminate -- the instance, you must first change the value of the -- 'disableApiTermination' attribute to 'false' using--- ModifyInstanceAttribute. Alternatively, if you set+-- < ModifyInstanceAttribute>. Alternatively, if you set -- 'InstanceInitiatedShutdownBehavior' to 'terminate', you can terminate -- the instance by running the shutdown command from the instance. --@@ -257,8 +260,8 @@ rDisableAPITermination :: Lens' RunInstances (Maybe Bool) rDisableAPITermination = lens _rDisableAPITermination (\ s a -> s{_rDisableAPITermination = a}); --- | The name of the key pair. You can create a key pair using CreateKeyPair--- or ImportKeyPair.+-- | The name of the key pair. You can create a key pair using+-- < CreateKeyPair> or < ImportKeyPair>. -- -- If you do not specify a key pair, you can\'t connect to the instance -- unless you choose an AMI that is configured to allow users another way@@ -310,7 +313,14 @@ rEBSOptimized :: Lens' RunInstances (Maybe Bool) rEBSOptimized = lens _rEBSOptimized (\ s a -> s{_rEBSOptimized = a}); --- | The Base64-encoded MIME user data for the instances.+-- | Data to configure the instance, or a script to run during instance+-- launch. For more information, see+-- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html Running Commands on Your Linux Instance at Launch>+-- (Linux) and+-- <http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data Adding User Data>+-- (Windows). For API calls, the text must be base64-encoded. For command+-- line tools, the encoding is performed for you, and you can load the text+-- from a file. rUserData :: Lens' RunInstances (Maybe Text) rUserData = lens _rUserData (\ s a -> s{_rUserData = a}); @@ -358,7 +368,7 @@ rPlacement :: Lens' RunInstances (Maybe Placement) rPlacement = lens _rPlacement (\ s a -> s{_rPlacement = a}); --- | The ID of the AMI, which you can get by calling DescribeImages.+-- | The ID of the AMI, which you can get by calling < DescribeImages>. rImageId :: Lens' RunInstances Text rImageId = lens _rImageId (\ s a -> s{_rImageId = a}); @@ -382,14 +392,16 @@ -- specified instance type. For more information about the default limits, -- and how to request an increase, see -- <http://aws.amazon.com/ec2/faqs/#How_many_instances_can_I_run_in_Amazon_EC2 How many instances can I run in Amazon EC2>--- in the Amazon EC2 General FAQ.+-- in the Amazon EC2 FAQ. rMaxCount :: Lens' RunInstances Int rMaxCount = lens _rMaxCount (\ s a -> s{_rMaxCount = a});  instance AWSRequest RunInstances where         type Rs RunInstances = Reservation-        request = postQuery eC2+        request = postQuery ec2         response = receiveXML (\ s h x -> parseXML x)++instance Hashable RunInstances  instance ToHeaders RunInstances where         toHeaders = const mempty
+ gen/Network/AWS/EC2/RunScheduledInstances.hs view
@@ -0,0 +1,182 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.RunScheduledInstances+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Launches the specified Scheduled Instances.+--+-- Before you can launch a Scheduled Instance, you must purchase it and+-- obtain an identifier using < PurchaseScheduledInstances>.+--+-- You must launch a Scheduled Instance during its scheduled time period.+-- You can\'t stop or reboot a Scheduled Instance, but you can terminate it+-- as needed. If you terminate a Scheduled Instance before the current+-- scheduled time period ends, you can launch it again after a few minutes.+module Network.AWS.EC2.RunScheduledInstances+    (+    -- * Creating a Request+      runScheduledInstances+    , RunScheduledInstances+    -- * Request Lenses+    , rsiClientToken+    , rsiInstanceCount+    , rsiDryRun+    , rsiScheduledInstanceId+    , rsiLaunchSpecification++    -- * Destructuring the Response+    , runScheduledInstancesResponse+    , RunScheduledInstancesResponse+    -- * Response Lenses+    , rrsInstanceIdSet+    , rrsResponseStatus+    ) where++import           Network.AWS.EC2.Types+import           Network.AWS.EC2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for RunScheduledInstances.+--+-- /See:/ 'runScheduledInstances' smart constructor.+data RunScheduledInstances = RunScheduledInstances'+    { _rsiClientToken         :: !(Maybe Text)+    , _rsiInstanceCount       :: !(Maybe Int)+    , _rsiDryRun              :: !(Maybe Bool)+    , _rsiScheduledInstanceId :: !Text+    , _rsiLaunchSpecification :: !ScheduledInstancesLaunchSpecification+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RunScheduledInstances' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rsiClientToken'+--+-- * 'rsiInstanceCount'+--+-- * 'rsiDryRun'+--+-- * 'rsiScheduledInstanceId'+--+-- * 'rsiLaunchSpecification'+runScheduledInstances+    :: Text -- ^ 'rsiScheduledInstanceId'+    -> ScheduledInstancesLaunchSpecification -- ^ 'rsiLaunchSpecification'+    -> RunScheduledInstances+runScheduledInstances pScheduledInstanceId_ pLaunchSpecification_ =+    RunScheduledInstances'+    { _rsiClientToken = Nothing+    , _rsiInstanceCount = Nothing+    , _rsiDryRun = Nothing+    , _rsiScheduledInstanceId = pScheduledInstanceId_+    , _rsiLaunchSpecification = pLaunchSpecification_+    }++-- | Unique, case-sensitive identifier that ensures the idempotency of the+-- request. For more information, see+-- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency>.+rsiClientToken :: Lens' RunScheduledInstances (Maybe Text)+rsiClientToken = lens _rsiClientToken (\ s a -> s{_rsiClientToken = a});++-- | The number of instances.+--+-- Default: 1+rsiInstanceCount :: Lens' RunScheduledInstances (Maybe Int)+rsiInstanceCount = lens _rsiInstanceCount (\ s a -> s{_rsiInstanceCount = a});++-- | Checks whether you have the required permissions for the action, without+-- actually making the request, and provides an error response. If you have+-- the required permissions, the error response is 'DryRunOperation'.+-- Otherwise, it is 'UnauthorizedOperation'.+rsiDryRun :: Lens' RunScheduledInstances (Maybe Bool)+rsiDryRun = lens _rsiDryRun (\ s a -> s{_rsiDryRun = a});++-- | The Scheduled Instance ID.+rsiScheduledInstanceId :: Lens' RunScheduledInstances Text+rsiScheduledInstanceId = lens _rsiScheduledInstanceId (\ s a -> s{_rsiScheduledInstanceId = a});++-- | The launch specification.+rsiLaunchSpecification :: Lens' RunScheduledInstances ScheduledInstancesLaunchSpecification+rsiLaunchSpecification = lens _rsiLaunchSpecification (\ s a -> s{_rsiLaunchSpecification = a});++instance AWSRequest RunScheduledInstances where+        type Rs RunScheduledInstances =+             RunScheduledInstancesResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 RunScheduledInstancesResponse' <$>+                   (x .@? "instanceIdSet" .!@ mempty >>=+                      may (parseXMLList "item"))+                     <*> (pure (fromEnum s)))++instance Hashable RunScheduledInstances++instance ToHeaders RunScheduledInstances where+        toHeaders = const mempty++instance ToPath RunScheduledInstances where+        toPath = const "/"++instance ToQuery RunScheduledInstances where+        toQuery RunScheduledInstances'{..}+          = mconcat+              ["Action" =: ("RunScheduledInstances" :: ByteString),+               "Version" =: ("2015-10-01" :: ByteString),+               "ClientToken" =: _rsiClientToken,+               "InstanceCount" =: _rsiInstanceCount,+               "DryRun" =: _rsiDryRun,+               "ScheduledInstanceId" =: _rsiScheduledInstanceId,+               "LaunchSpecification" =: _rsiLaunchSpecification]++-- | Contains the output of RunScheduledInstances.+--+-- /See:/ 'runScheduledInstancesResponse' smart constructor.+data RunScheduledInstancesResponse = RunScheduledInstancesResponse'+    { _rrsInstanceIdSet  :: !(Maybe [Text])+    , _rrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RunScheduledInstancesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rrsInstanceIdSet'+--+-- * 'rrsResponseStatus'+runScheduledInstancesResponse+    :: Int -- ^ 'rrsResponseStatus'+    -> RunScheduledInstancesResponse+runScheduledInstancesResponse pResponseStatus_ =+    RunScheduledInstancesResponse'+    { _rrsInstanceIdSet = Nothing+    , _rrsResponseStatus = pResponseStatus_+    }++-- | The IDs of the newly launched instances.+rrsInstanceIdSet :: Lens' RunScheduledInstancesResponse [Text]+rrsInstanceIdSet = lens _rrsInstanceIdSet (\ s a -> s{_rrsInstanceIdSet = a}) . _Default . _Coerce;++-- | The response status code.+rrsResponseStatus :: Lens' RunScheduledInstancesResponse Int+rrsResponseStatus = lens _rrsResponseStatus (\ s a -> s{_rrsResponseStatus = a});
gen/Network/AWS/EC2/StartInstances.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.StartInstances--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -39,8 +39,6 @@ -- For more information, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html Stopping Instances> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-StartInstances.html AWS API Reference> for StartInstances. module Network.AWS.EC2.StartInstances     (     -- * Creating a Request@@ -108,7 +106,7 @@  instance AWSRequest StartInstances where         type Rs StartInstances = StartInstancesResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -116,6 +114,8 @@                    (x .@? "instancesSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable StartInstances  instance ToHeaders StartInstances where         toHeaders = const mempty
gen/Network/AWS/EC2/StopInstances.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.StopInstances--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -52,8 +52,6 @@ -- For more information about troubleshooting, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesStopping.html Troubleshooting Stopping Your Instance> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-StopInstances.html AWS API Reference> for StopInstances. module Network.AWS.EC2.StopInstances     (     -- * Creating a Request@@ -126,7 +124,7 @@  instance AWSRequest StopInstances where         type Rs StopInstances = StopInstancesResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -134,6 +132,8 @@                    (x .@? "instancesSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable StopInstances  instance ToHeaders StopInstances where         toHeaders = const mempty
gen/Network/AWS/EC2/TerminateInstances.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.TerminateInstances--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -42,8 +42,6 @@ -- For more information about troubleshooting, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesShuttingDown.html Troubleshooting Terminating Your Instance> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-TerminateInstances.html AWS API Reference> for TerminateInstances. module Network.AWS.EC2.TerminateInstances     (     -- * Creating a Request@@ -103,7 +101,7 @@ instance AWSRequest TerminateInstances where         type Rs TerminateInstances =              TerminateInstancesResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -111,6 +109,8 @@                    (x .@? "instancesSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable TerminateInstances  instance ToHeaders TerminateInstances where         toHeaders = const mempty
gen/Network/AWS/EC2/Types.hs view
@@ -4,7 +4,7 @@  -- | -- Module      : Network.AWS.EC2.Types--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -13,10 +13,13 @@ module Network.AWS.EC2.Types     (     -- * Service Configuration-      eC2+      ec2      -- * Errors +    -- * Re-exported Types+    , module Network.AWS.EC2.Internal+     -- * AccountAttributeName     , AccountAttributeName (..) @@ -390,6 +393,12 @@     , csirState     , csirSpotInstanceRequestId +    -- * ClassicLinkDNSSupport+    , ClassicLinkDNSSupport+    , classicLinkDNSSupport+    , cldsVPCId+    , cldsClassicLinkDNSSupported+     -- * ClassicLinkInstance     , ClassicLinkInstance     , classicLinkInstance@@ -1163,6 +1172,12 @@     , propagatingVGW     , pvGatewayId +    -- * PurchaseRequest+    , PurchaseRequest+    , purchaseRequest+    , prPurchaseToken+    , prInstanceCount+     -- * RecurringCharge     , RecurringCharge     , recurringCharge@@ -1339,6 +1354,133 @@     , ssUploadPolicySignature     , ssAWSAccessKeyId +    -- * ScheduledInstance+    , ScheduledInstance+    , scheduledInstance+    , siPreviousSlotEndTime+    , siPlatform+    , siTermStartDate+    , siInstanceCount+    , siScheduledInstanceId+    , siHourlyPrice+    , siCreateDate+    , siSlotDurationInHours+    , siTotalScheduledInstanceHours+    , siInstanceType+    , siRecurrence+    , siAvailabilityZone+    , siTermEndDate+    , siNextSlotStartTime+    , siNetworkPlatform++    -- * ScheduledInstanceAvailability+    , ScheduledInstanceAvailability+    , scheduledInstanceAvailability+    , siaMaxTermDurationInDays+    , siaPlatform+    , siaPurchaseToken+    , siaHourlyPrice+    , siaAvailableInstanceCount+    , siaSlotDurationInHours+    , siaTotalScheduledInstanceHours+    , siaInstanceType+    , siaRecurrence+    , siaAvailabilityZone+    , siaMinTermDurationInDays+    , siaFirstSlotStartTime+    , siaNetworkPlatform++    -- * ScheduledInstanceRecurrence+    , ScheduledInstanceRecurrence+    , scheduledInstanceRecurrence+    , sirFrequency+    , sirOccurrenceRelativeToEnd+    , sirOccurrenceUnit+    , sirInterval+    , sirOccurrenceDaySet++    -- * ScheduledInstanceRecurrenceRequest+    , ScheduledInstanceRecurrenceRequest+    , scheduledInstanceRecurrenceRequest+    , sirrFrequency+    , sirrOccurrenceRelativeToEnd+    , sirrOccurrenceDays+    , sirrOccurrenceUnit+    , sirrInterval++    -- * ScheduledInstancesBlockDeviceMapping+    , ScheduledInstancesBlockDeviceMapping+    , scheduledInstancesBlockDeviceMapping+    , sibdmVirtualName+    , sibdmNoDevice+    , sibdmEBS+    , sibdmDeviceName++    -- * ScheduledInstancesEBS+    , ScheduledInstancesEBS+    , scheduledInstancesEBS+    , sieDeleteOnTermination+    , sieVolumeSize+    , sieIOPS+    , sieEncrypted+    , sieVolumeType+    , sieSnapshotId++    -- * ScheduledInstancesIAMInstanceProfile+    , ScheduledInstancesIAMInstanceProfile+    , scheduledInstancesIAMInstanceProfile+    , siiapARN+    , siiapName++    -- * ScheduledInstancesLaunchSpecification+    , ScheduledInstancesLaunchSpecification+    , scheduledInstancesLaunchSpecification+    , silsSecurityGroupIds+    , silsKeyName+    , silsNetworkInterfaces+    , silsRAMDiskId+    , silsSubnetId+    , silsKernelId+    , silsInstanceType+    , silsEBSOptimized+    , silsUserData+    , silsMonitoring+    , silsIAMInstanceProfile+    , silsBlockDeviceMappings+    , silsPlacement+    , silsImageId++    -- * ScheduledInstancesMonitoring+    , ScheduledInstancesMonitoring+    , scheduledInstancesMonitoring+    , simEnabled++    -- * ScheduledInstancesNetworkInterface+    , ScheduledInstancesNetworkInterface+    , scheduledInstancesNetworkInterface+    , siniGroups+    , siniDeleteOnTermination+    , siniAssociatePublicIPAddress+    , siniPrivateIPAddressConfigs+    , siniNetworkInterfaceId+    , siniSubnetId+    , siniPrivateIPAddress+    , siniSecondaryPrivateIPAddressCount+    , siniDescription+    , siniDeviceIndex++    -- * ScheduledInstancesPlacement+    , ScheduledInstancesPlacement+    , scheduledInstancesPlacement+    , sipAvailabilityZone+    , sipGroupName++    -- * ScheduledInstancesPrivateIPAddressConfig+    , ScheduledInstancesPrivateIPAddressConfig+    , scheduledInstancesPrivateIPAddressConfig+    , sipiacPrimary+    , sipiacPrivateIPAddress+     -- * SecurityGroup     , SecurityGroup     , securityGroup@@ -1351,6 +1493,18 @@     , sgGroupName     , sgDescription +    -- * SlotDateTimeRangeRequest+    , SlotDateTimeRangeRequest+    , slotDateTimeRangeRequest+    , sdtrrEarliestTime+    , sdtrrLatestTime++    -- * SlotStartTimeRangeRequest+    , SlotStartTimeRangeRequest+    , slotStartTimeRangeRequest+    , sstrrLatestTime+    , sstrrEarliestTime+     -- * Snapshot     , Snapshot     , snapshot@@ -1581,9 +1735,12 @@     -- * UserIdGroupPair     , UserIdGroupPair     , userIdGroupPair+    , uigpVPCPeeringConnectionId+    , uigpVPCId     , uigpUserId     , uigpGroupId     , uigpGroupName+    , uigpPeeringStatus      -- * VGWTelemetry     , VGWTelemetry@@ -1763,6 +1920,7 @@     , vsiVolumeId     ) where +import           Network.AWS.EC2.Internal import           Network.AWS.EC2.Types.Product import           Network.AWS.EC2.Types.Sum import           Network.AWS.Lens@@ -1770,14 +1928,14 @@ import           Network.AWS.Sign.V4  -- | API version '2015-10-01' of the Amazon Elastic Compute Cloud SDK configuration.-eC2 :: Service-eC2 =+ec2 :: Service+ec2 =     Service     { _svcAbbrev = "EC2"     , _svcSigner = v4     , _svcPrefix = "ec2"     , _svcVersion = "2015-10-01"-    , _svcEndpoint = defaultEndpoint eC2+    , _svcEndpoint = defaultEndpoint ec2     , _svcTimeout = Just 70     , _svcCheck = statusSuccess     , _svcError = parseXMLError@@ -1794,6 +1952,7 @@     check e       | has (hasCode "RequestLimitExceeded" . hasStatus 503) e =           Just "request_limit_exceeded"+      | has (hasStatus 429) e = Just "too_many_requests"       | has (hasCode "ThrottlingException" . hasStatus 400) e =           Just "throttling_exception"       | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
gen/Network/AWS/EC2/Types/Product.hs view
@@ -9,11388 +9,12987 @@  -- | -- Module      : Network.AWS.EC2.Types.Product--- Copyright   : (c) 2013-2015 Brendan Hay--- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : auto-generated--- Portability : non-portable (GHC extensions)----module Network.AWS.EC2.Types.Product where--import           Network.AWS.EC2.Types.Sum-import           Network.AWS.Lens-import           Network.AWS.Prelude---- | Describes an account attribute.------ /See:/ 'accountAttribute' smart constructor.-data AccountAttribute = AccountAttribute'-    { _aaAttributeValues :: !(Maybe [AccountAttributeValue])-    , _aaAttributeName   :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'AccountAttribute' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aaAttributeValues'------ * 'aaAttributeName'-accountAttribute-    :: AccountAttribute-accountAttribute =-    AccountAttribute'-    { _aaAttributeValues = Nothing-    , _aaAttributeName = Nothing-    }---- | One or more values for the account attribute.-aaAttributeValues :: Lens' AccountAttribute [AccountAttributeValue]-aaAttributeValues = lens _aaAttributeValues (\ s a -> s{_aaAttributeValues = a}) . _Default . _Coerce;---- | The name of the account attribute.-aaAttributeName :: Lens' AccountAttribute (Maybe Text)-aaAttributeName = lens _aaAttributeName (\ s a -> s{_aaAttributeName = a});--instance FromXML AccountAttribute where-        parseXML x-          = AccountAttribute' <$>-              (x .@? "attributeValueSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "attributeName")---- | Describes a value of an account attribute.------ /See:/ 'accountAttributeValue' smart constructor.-newtype AccountAttributeValue = AccountAttributeValue'-    { _aavAttributeValue :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'AccountAttributeValue' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aavAttributeValue'-accountAttributeValue-    :: AccountAttributeValue-accountAttributeValue =-    AccountAttributeValue'-    { _aavAttributeValue = Nothing-    }---- | The value of the attribute.-aavAttributeValue :: Lens' AccountAttributeValue (Maybe Text)-aavAttributeValue = lens _aavAttributeValue (\ s a -> s{_aavAttributeValue = a});--instance FromXML AccountAttributeValue where-        parseXML x-          = AccountAttributeValue' <$> (x .@? "attributeValue")---- | Describes a running instance in a Spot fleet.------ /See:/ 'activeInstance' smart constructor.-data ActiveInstance = ActiveInstance'-    { _aiInstanceId            :: !(Maybe Text)-    , _aiInstanceType          :: !(Maybe Text)-    , _aiSpotInstanceRequestId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ActiveInstance' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aiInstanceId'------ * 'aiInstanceType'------ * 'aiSpotInstanceRequestId'-activeInstance-    :: ActiveInstance-activeInstance =-    ActiveInstance'-    { _aiInstanceId = Nothing-    , _aiInstanceType = Nothing-    , _aiSpotInstanceRequestId = Nothing-    }---- | The ID of the instance.-aiInstanceId :: Lens' ActiveInstance (Maybe Text)-aiInstanceId = lens _aiInstanceId (\ s a -> s{_aiInstanceId = a});---- | The instance type.-aiInstanceType :: Lens' ActiveInstance (Maybe Text)-aiInstanceType = lens _aiInstanceType (\ s a -> s{_aiInstanceType = a});---- | The ID of the Spot instance request.-aiSpotInstanceRequestId :: Lens' ActiveInstance (Maybe Text)-aiSpotInstanceRequestId = lens _aiSpotInstanceRequestId (\ s a -> s{_aiSpotInstanceRequestId = a});--instance FromXML ActiveInstance where-        parseXML x-          = ActiveInstance' <$>-              (x .@? "instanceId") <*> (x .@? "instanceType") <*>-                (x .@? "spotInstanceRequestId")---- | Describes an Elastic IP address.------ /See:/ 'address' smart constructor.-data Address = Address'-    { _aAssociationId           :: !(Maybe Text)-    , _aInstanceId              :: !(Maybe Text)-    , _aNetworkInterfaceOwnerId :: !(Maybe Text)-    , _aAllocationId            :: !(Maybe Text)-    , _aDomain                  :: !(Maybe DomainType)-    , _aNetworkInterfaceId      :: !(Maybe Text)-    , _aPrivateIPAddress        :: !(Maybe Text)-    , _aPublicIP                :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Address' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aAssociationId'------ * 'aInstanceId'------ * 'aNetworkInterfaceOwnerId'------ * 'aAllocationId'------ * 'aDomain'------ * 'aNetworkInterfaceId'------ * 'aPrivateIPAddress'------ * 'aPublicIP'-address-    :: Address-address =-    Address'-    { _aAssociationId = Nothing-    , _aInstanceId = Nothing-    , _aNetworkInterfaceOwnerId = Nothing-    , _aAllocationId = Nothing-    , _aDomain = Nothing-    , _aNetworkInterfaceId = Nothing-    , _aPrivateIPAddress = Nothing-    , _aPublicIP = Nothing-    }---- | The ID representing the association of the address with an instance in a--- VPC.-aAssociationId :: Lens' Address (Maybe Text)-aAssociationId = lens _aAssociationId (\ s a -> s{_aAssociationId = a});---- | The ID of the instance that the address is associated with (if any).-aInstanceId :: Lens' Address (Maybe Text)-aInstanceId = lens _aInstanceId (\ s a -> s{_aInstanceId = a});---- | The ID of the AWS account that owns the network interface.-aNetworkInterfaceOwnerId :: Lens' Address (Maybe Text)-aNetworkInterfaceOwnerId = lens _aNetworkInterfaceOwnerId (\ s a -> s{_aNetworkInterfaceOwnerId = a});---- | The ID representing the allocation of the address for use with EC2-VPC.-aAllocationId :: Lens' Address (Maybe Text)-aAllocationId = lens _aAllocationId (\ s a -> s{_aAllocationId = a});---- | Indicates whether this Elastic IP address is for use with instances in--- EC2-Classic ('standard') or instances in a VPC ('vpc').-aDomain :: Lens' Address (Maybe DomainType)-aDomain = lens _aDomain (\ s a -> s{_aDomain = a});---- | The ID of the network interface.-aNetworkInterfaceId :: Lens' Address (Maybe Text)-aNetworkInterfaceId = lens _aNetworkInterfaceId (\ s a -> s{_aNetworkInterfaceId = a});---- | The private IP address associated with the Elastic IP address.-aPrivateIPAddress :: Lens' Address (Maybe Text)-aPrivateIPAddress = lens _aPrivateIPAddress (\ s a -> s{_aPrivateIPAddress = a});---- | The Elastic IP address.-aPublicIP :: Lens' Address (Maybe Text)-aPublicIP = lens _aPublicIP (\ s a -> s{_aPublicIP = a});--instance FromXML Address where-        parseXML x-          = Address' <$>-              (x .@? "associationId") <*> (x .@? "instanceId") <*>-                (x .@? "networkInterfaceOwnerId")-                <*> (x .@? "allocationId")-                <*> (x .@? "domain")-                <*> (x .@? "networkInterfaceId")-                <*> (x .@? "privateIpAddress")-                <*> (x .@? "publicIp")---- | The value to use when a resource attribute accepts a Boolean value.------ /See:/ 'attributeBooleanValue' smart constructor.-newtype AttributeBooleanValue = AttributeBooleanValue'-    { _abvValue :: Maybe Bool-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'AttributeBooleanValue' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'abvValue'-attributeBooleanValue-    :: AttributeBooleanValue-attributeBooleanValue =-    AttributeBooleanValue'-    { _abvValue = Nothing-    }---- | Valid values are 'true' or 'false'.-abvValue :: Lens' AttributeBooleanValue (Maybe Bool)-abvValue = lens _abvValue (\ s a -> s{_abvValue = a});--instance FromXML AttributeBooleanValue where-        parseXML x-          = AttributeBooleanValue' <$> (x .@? "value")--instance ToQuery AttributeBooleanValue where-        toQuery AttributeBooleanValue'{..}-          = mconcat ["Value" =: _abvValue]---- | The value to use for a resource attribute.------ /See:/ 'attributeValue' smart constructor.-newtype AttributeValue = AttributeValue'-    { _avValue :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'AttributeValue' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'avValue'-attributeValue-    :: AttributeValue-attributeValue =-    AttributeValue'-    { _avValue = Nothing-    }---- | Valid values are case-sensitive and vary by action.-avValue :: Lens' AttributeValue (Maybe Text)-avValue = lens _avValue (\ s a -> s{_avValue = a});--instance FromXML AttributeValue where-        parseXML x = AttributeValue' <$> (x .@? "value")--instance ToQuery AttributeValue where-        toQuery AttributeValue'{..}-          = mconcat ["Value" =: _avValue]---- | Describes an Availability Zone.------ /See:/ 'availabilityZone' smart constructor.-data AvailabilityZone = AvailabilityZone'-    { _azState      :: !(Maybe AvailabilityZoneState)-    , _azRegionName :: !(Maybe Text)-    , _azZoneName   :: !(Maybe Text)-    , _azMessages   :: !(Maybe [AvailabilityZoneMessage])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'AvailabilityZone' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'azState'------ * 'azRegionName'------ * 'azZoneName'------ * 'azMessages'-availabilityZone-    :: AvailabilityZone-availabilityZone =-    AvailabilityZone'-    { _azState = Nothing-    , _azRegionName = Nothing-    , _azZoneName = Nothing-    , _azMessages = Nothing-    }---- | The state of the Availability Zone.-azState :: Lens' AvailabilityZone (Maybe AvailabilityZoneState)-azState = lens _azState (\ s a -> s{_azState = a});---- | The name of the region.-azRegionName :: Lens' AvailabilityZone (Maybe Text)-azRegionName = lens _azRegionName (\ s a -> s{_azRegionName = a});---- | The name of the Availability Zone.-azZoneName :: Lens' AvailabilityZone (Maybe Text)-azZoneName = lens _azZoneName (\ s a -> s{_azZoneName = a});---- | Any messages about the Availability Zone.-azMessages :: Lens' AvailabilityZone [AvailabilityZoneMessage]-azMessages = lens _azMessages (\ s a -> s{_azMessages = a}) . _Default . _Coerce;--instance FromXML AvailabilityZone where-        parseXML x-          = AvailabilityZone' <$>-              (x .@? "zoneState") <*> (x .@? "regionName") <*>-                (x .@? "zoneName")-                <*>-                (x .@? "messageSet" .!@ mempty >>=-                   may (parseXMLList "item"))---- | Describes a message about an Availability Zone.------ /See:/ 'availabilityZoneMessage' smart constructor.-newtype AvailabilityZoneMessage = AvailabilityZoneMessage'-    { _azmMessage :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'AvailabilityZoneMessage' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'azmMessage'-availabilityZoneMessage-    :: AvailabilityZoneMessage-availabilityZoneMessage =-    AvailabilityZoneMessage'-    { _azmMessage = Nothing-    }---- | The message about the Availability Zone.-azmMessage :: Lens' AvailabilityZoneMessage (Maybe Text)-azmMessage = lens _azmMessage (\ s a -> s{_azmMessage = a});--instance FromXML AvailabilityZoneMessage where-        parseXML x-          = AvailabilityZoneMessage' <$> (x .@? "message")---- | The capacity information for instances launched onto the Dedicated host.------ /See:/ 'availableCapacity' smart constructor.-data AvailableCapacity = AvailableCapacity'-    { _acAvailableInstanceCapacity :: !(Maybe [InstanceCapacity])-    , _acAvailableVCPUs            :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'AvailableCapacity' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'acAvailableInstanceCapacity'------ * 'acAvailableVCPUs'-availableCapacity-    :: AvailableCapacity-availableCapacity =-    AvailableCapacity'-    { _acAvailableInstanceCapacity = Nothing-    , _acAvailableVCPUs = Nothing-    }---- | The total number of instances that the Dedicated host supports.-acAvailableInstanceCapacity :: Lens' AvailableCapacity [InstanceCapacity]-acAvailableInstanceCapacity = lens _acAvailableInstanceCapacity (\ s a -> s{_acAvailableInstanceCapacity = a}) . _Default . _Coerce;---- | The number of vCPUs available on the Dedicated host.-acAvailableVCPUs :: Lens' AvailableCapacity (Maybe Int)-acAvailableVCPUs = lens _acAvailableVCPUs (\ s a -> s{_acAvailableVCPUs = a});--instance FromXML AvailableCapacity where-        parseXML x-          = AvailableCapacity' <$>-              (x .@? "availableInstanceCapacity" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "availableVCpus")---- | /See:/ 'blobAttributeValue' smart constructor.-newtype BlobAttributeValue = BlobAttributeValue'-    { _bavValue :: Maybe Base64-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'BlobAttributeValue' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bavValue'-blobAttributeValue-    :: BlobAttributeValue-blobAttributeValue =-    BlobAttributeValue'-    { _bavValue = Nothing-    }---- | Undocumented member.------ /Note:/ This 'Lens' automatically encodes and decodes Base64 data,--- despite what the AWS documentation might say.--- The underlying isomorphism will encode to Base64 representation during--- serialisation, and decode from Base64 representation during deserialisation.--- This 'Lens' accepts and returns only raw unencoded data.-bavValue :: Lens' BlobAttributeValue (Maybe ByteString)-bavValue = lens _bavValue (\ s a -> s{_bavValue = a}) . mapping _Base64;--instance ToQuery BlobAttributeValue where-        toQuery BlobAttributeValue'{..}-          = mconcat ["Value" =: _bavValue]---- | Describes a block device mapping.------ /See:/ 'blockDeviceMapping' smart constructor.-data BlockDeviceMapping = BlockDeviceMapping'-    { _bdmVirtualName :: !(Maybe Text)-    , _bdmNoDevice    :: !(Maybe Text)-    , _bdmEBS         :: !(Maybe EBSBlockDevice)-    , _bdmDeviceName  :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'BlockDeviceMapping' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bdmVirtualName'------ * 'bdmNoDevice'------ * 'bdmEBS'------ * 'bdmDeviceName'-blockDeviceMapping-    :: Text -- ^ 'bdmDeviceName'-    -> BlockDeviceMapping-blockDeviceMapping pDeviceName_ =-    BlockDeviceMapping'-    { _bdmVirtualName = Nothing-    , _bdmNoDevice = Nothing-    , _bdmEBS = Nothing-    , _bdmDeviceName = pDeviceName_-    }---- | The virtual device name ('ephemeral'N). Instance store volumes are--- numbered starting from 0. An instance type with 2 available instance--- store volumes can specify mappings for 'ephemeral0' and 'ephemeral1'.The--- number of available instance store volumes depends on the instance type.--- After you connect to the instance, you must mount the volume.------ Constraints: For M3 instances, you must specify instance store volumes--- in the block device mapping for the instance. When you launch an M3--- instance, we ignore any instance store volumes specified in the block--- device mapping for the AMI.-bdmVirtualName :: Lens' BlockDeviceMapping (Maybe Text)-bdmVirtualName = lens _bdmVirtualName (\ s a -> s{_bdmVirtualName = a});---- | Suppresses the specified device included in the block device mapping of--- the AMI.-bdmNoDevice :: Lens' BlockDeviceMapping (Maybe Text)-bdmNoDevice = lens _bdmNoDevice (\ s a -> s{_bdmNoDevice = a});---- | Parameters used to automatically set up EBS volumes when the instance is--- launched.-bdmEBS :: Lens' BlockDeviceMapping (Maybe EBSBlockDevice)-bdmEBS = lens _bdmEBS (\ s a -> s{_bdmEBS = a});---- | The device name exposed to the instance (for example, '\/dev\/sdh' or--- 'xvdh').-bdmDeviceName :: Lens' BlockDeviceMapping Text-bdmDeviceName = lens _bdmDeviceName (\ s a -> s{_bdmDeviceName = a});--instance FromXML BlockDeviceMapping where-        parseXML x-          = BlockDeviceMapping' <$>-              (x .@? "virtualName") <*> (x .@? "noDevice") <*>-                (x .@? "ebs")-                <*> (x .@ "deviceName")--instance ToQuery BlockDeviceMapping where-        toQuery BlockDeviceMapping'{..}-          = mconcat-              ["VirtualName" =: _bdmVirtualName,-               "NoDevice" =: _bdmNoDevice, "Ebs" =: _bdmEBS,-               "DeviceName" =: _bdmDeviceName]---- | Describes a bundle task.------ /See:/ 'bundleTask' smart constructor.-data BundleTask = BundleTask'-    { _btBundleTaskError :: !(Maybe BundleTaskError)-    , _btBundleId        :: !Text-    , _btInstanceId      :: !Text-    , _btProgress        :: !Text-    , _btStartTime       :: !ISO8601-    , _btState           :: !BundleTaskState-    , _btStorage         :: !Storage-    , _btUpdateTime      :: !ISO8601-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'BundleTask' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'btBundleTaskError'------ * 'btBundleId'------ * 'btInstanceId'------ * 'btProgress'------ * 'btStartTime'------ * 'btState'------ * 'btStorage'------ * 'btUpdateTime'-bundleTask-    :: Text -- ^ 'btBundleId'-    -> Text -- ^ 'btInstanceId'-    -> Text -- ^ 'btProgress'-    -> UTCTime -- ^ 'btStartTime'-    -> BundleTaskState -- ^ 'btState'-    -> Storage -- ^ 'btStorage'-    -> UTCTime -- ^ 'btUpdateTime'-    -> BundleTask-bundleTask pBundleId_ pInstanceId_ pProgress_ pStartTime_ pState_ pStorage_ pUpdateTime_ =-    BundleTask'-    { _btBundleTaskError = Nothing-    , _btBundleId = pBundleId_-    , _btInstanceId = pInstanceId_-    , _btProgress = pProgress_-    , _btStartTime = _Time # pStartTime_-    , _btState = pState_-    , _btStorage = pStorage_-    , _btUpdateTime = _Time # pUpdateTime_-    }---- | If the task fails, a description of the error.-btBundleTaskError :: Lens' BundleTask (Maybe BundleTaskError)-btBundleTaskError = lens _btBundleTaskError (\ s a -> s{_btBundleTaskError = a});---- | The ID of the bundle task.-btBundleId :: Lens' BundleTask Text-btBundleId = lens _btBundleId (\ s a -> s{_btBundleId = a});---- | The ID of the instance associated with this bundle task.-btInstanceId :: Lens' BundleTask Text-btInstanceId = lens _btInstanceId (\ s a -> s{_btInstanceId = a});---- | The level of task completion, as a percent (for example, 20%).-btProgress :: Lens' BundleTask Text-btProgress = lens _btProgress (\ s a -> s{_btProgress = a});---- | The time this task started.-btStartTime :: Lens' BundleTask UTCTime-btStartTime = lens _btStartTime (\ s a -> s{_btStartTime = a}) . _Time;---- | The state of the task.-btState :: Lens' BundleTask BundleTaskState-btState = lens _btState (\ s a -> s{_btState = a});---- | The Amazon S3 storage locations.-btStorage :: Lens' BundleTask Storage-btStorage = lens _btStorage (\ s a -> s{_btStorage = a});---- | The time of the most recent update for the task.-btUpdateTime :: Lens' BundleTask UTCTime-btUpdateTime = lens _btUpdateTime (\ s a -> s{_btUpdateTime = a}) . _Time;--instance FromXML BundleTask where-        parseXML x-          = BundleTask' <$>-              (x .@? "error") <*> (x .@ "bundleId") <*>-                (x .@ "instanceId")-                <*> (x .@ "progress")-                <*> (x .@ "startTime")-                <*> (x .@ "state")-                <*> (x .@ "storage")-                <*> (x .@ "updateTime")---- | Describes an error for BundleInstance.------ /See:/ 'bundleTaskError' smart constructor.-data BundleTaskError = BundleTaskError'-    { _bteCode    :: !(Maybe Text)-    , _bteMessage :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'BundleTaskError' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bteCode'------ * 'bteMessage'-bundleTaskError-    :: BundleTaskError-bundleTaskError =-    BundleTaskError'-    { _bteCode = Nothing-    , _bteMessage = Nothing-    }---- | The error code.-bteCode :: Lens' BundleTaskError (Maybe Text)-bteCode = lens _bteCode (\ s a -> s{_bteCode = a});---- | The error message.-bteMessage :: Lens' BundleTaskError (Maybe Text)-bteMessage = lens _bteMessage (\ s a -> s{_bteMessage = a});--instance FromXML BundleTaskError where-        parseXML x-          = BundleTaskError' <$>-              (x .@? "code") <*> (x .@? "message")---- | Describes a Spot fleet error.------ /See:/ 'cancelSpotFleetRequestsError' smart constructor.-data CancelSpotFleetRequestsError = CancelSpotFleetRequestsError'-    { _csfreCode    :: !CancelBatchErrorCode-    , _csfreMessage :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CancelSpotFleetRequestsError' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'csfreCode'------ * 'csfreMessage'-cancelSpotFleetRequestsError-    :: CancelBatchErrorCode -- ^ 'csfreCode'-    -> Text -- ^ 'csfreMessage'-    -> CancelSpotFleetRequestsError-cancelSpotFleetRequestsError pCode_ pMessage_ =-    CancelSpotFleetRequestsError'-    { _csfreCode = pCode_-    , _csfreMessage = pMessage_-    }---- | The error code.-csfreCode :: Lens' CancelSpotFleetRequestsError CancelBatchErrorCode-csfreCode = lens _csfreCode (\ s a -> s{_csfreCode = a});---- | The description for the error code.-csfreMessage :: Lens' CancelSpotFleetRequestsError Text-csfreMessage = lens _csfreMessage (\ s a -> s{_csfreMessage = a});--instance FromXML CancelSpotFleetRequestsError where-        parseXML x-          = CancelSpotFleetRequestsError' <$>-              (x .@ "code") <*> (x .@ "message")---- | Describes a Spot fleet request that was not successfully canceled.------ /See:/ 'cancelSpotFleetRequestsErrorItem' smart constructor.-data CancelSpotFleetRequestsErrorItem = CancelSpotFleetRequestsErrorItem'-    { _csfreiSpotFleetRequestId :: !Text-    , _csfreiError              :: !CancelSpotFleetRequestsError-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CancelSpotFleetRequestsErrorItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'csfreiSpotFleetRequestId'------ * 'csfreiError'-cancelSpotFleetRequestsErrorItem-    :: Text -- ^ 'csfreiSpotFleetRequestId'-    -> CancelSpotFleetRequestsError -- ^ 'csfreiError'-    -> CancelSpotFleetRequestsErrorItem-cancelSpotFleetRequestsErrorItem pSpotFleetRequestId_ pError_ =-    CancelSpotFleetRequestsErrorItem'-    { _csfreiSpotFleetRequestId = pSpotFleetRequestId_-    , _csfreiError = pError_-    }---- | The ID of the Spot fleet request.-csfreiSpotFleetRequestId :: Lens' CancelSpotFleetRequestsErrorItem Text-csfreiSpotFleetRequestId = lens _csfreiSpotFleetRequestId (\ s a -> s{_csfreiSpotFleetRequestId = a});---- | The error.-csfreiError :: Lens' CancelSpotFleetRequestsErrorItem CancelSpotFleetRequestsError-csfreiError = lens _csfreiError (\ s a -> s{_csfreiError = a});--instance FromXML CancelSpotFleetRequestsErrorItem-         where-        parseXML x-          = CancelSpotFleetRequestsErrorItem' <$>-              (x .@ "spotFleetRequestId") <*> (x .@ "error")---- | Describes a Spot fleet request that was successfully canceled.------ /See:/ 'cancelSpotFleetRequestsSuccessItem' smart constructor.-data CancelSpotFleetRequestsSuccessItem = CancelSpotFleetRequestsSuccessItem'-    { _csfrsiSpotFleetRequestId            :: !Text-    , _csfrsiCurrentSpotFleetRequestState  :: !BatchState-    , _csfrsiPreviousSpotFleetRequestState :: !BatchState-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CancelSpotFleetRequestsSuccessItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'csfrsiSpotFleetRequestId'------ * 'csfrsiCurrentSpotFleetRequestState'------ * 'csfrsiPreviousSpotFleetRequestState'-cancelSpotFleetRequestsSuccessItem-    :: Text -- ^ 'csfrsiSpotFleetRequestId'-    -> BatchState -- ^ 'csfrsiCurrentSpotFleetRequestState'-    -> BatchState -- ^ 'csfrsiPreviousSpotFleetRequestState'-    -> CancelSpotFleetRequestsSuccessItem-cancelSpotFleetRequestsSuccessItem pSpotFleetRequestId_ pCurrentSpotFleetRequestState_ pPreviousSpotFleetRequestState_ =-    CancelSpotFleetRequestsSuccessItem'-    { _csfrsiSpotFleetRequestId = pSpotFleetRequestId_-    , _csfrsiCurrentSpotFleetRequestState = pCurrentSpotFleetRequestState_-    , _csfrsiPreviousSpotFleetRequestState = pPreviousSpotFleetRequestState_-    }---- | The ID of the Spot fleet request.-csfrsiSpotFleetRequestId :: Lens' CancelSpotFleetRequestsSuccessItem Text-csfrsiSpotFleetRequestId = lens _csfrsiSpotFleetRequestId (\ s a -> s{_csfrsiSpotFleetRequestId = a});---- | The current state of the Spot fleet request.-csfrsiCurrentSpotFleetRequestState :: Lens' CancelSpotFleetRequestsSuccessItem BatchState-csfrsiCurrentSpotFleetRequestState = lens _csfrsiCurrentSpotFleetRequestState (\ s a -> s{_csfrsiCurrentSpotFleetRequestState = a});---- | The previous state of the Spot fleet request.-csfrsiPreviousSpotFleetRequestState :: Lens' CancelSpotFleetRequestsSuccessItem BatchState-csfrsiPreviousSpotFleetRequestState = lens _csfrsiPreviousSpotFleetRequestState (\ s a -> s{_csfrsiPreviousSpotFleetRequestState = a});--instance FromXML CancelSpotFleetRequestsSuccessItem-         where-        parseXML x-          = CancelSpotFleetRequestsSuccessItem' <$>-              (x .@ "spotFleetRequestId") <*>-                (x .@ "currentSpotFleetRequestState")-                <*> (x .@ "previousSpotFleetRequestState")---- | Describes a request to cancel a Spot instance.------ /See:/ 'cancelledSpotInstanceRequest' smart constructor.-data CancelledSpotInstanceRequest = CancelledSpotInstanceRequest'-    { _csirState                 :: !(Maybe CancelSpotInstanceRequestState)-    , _csirSpotInstanceRequestId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CancelledSpotInstanceRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'csirState'------ * 'csirSpotInstanceRequestId'-cancelledSpotInstanceRequest-    :: CancelledSpotInstanceRequest-cancelledSpotInstanceRequest =-    CancelledSpotInstanceRequest'-    { _csirState = Nothing-    , _csirSpotInstanceRequestId = Nothing-    }---- | The state of the Spot instance request.-csirState :: Lens' CancelledSpotInstanceRequest (Maybe CancelSpotInstanceRequestState)-csirState = lens _csirState (\ s a -> s{_csirState = a});---- | The ID of the Spot instance request.-csirSpotInstanceRequestId :: Lens' CancelledSpotInstanceRequest (Maybe Text)-csirSpotInstanceRequestId = lens _csirSpotInstanceRequestId (\ s a -> s{_csirSpotInstanceRequestId = a});--instance FromXML CancelledSpotInstanceRequest where-        parseXML x-          = CancelledSpotInstanceRequest' <$>-              (x .@? "state") <*> (x .@? "spotInstanceRequestId")---- | Describes a linked EC2-Classic instance.------ /See:/ 'classicLinkInstance' smart constructor.-data ClassicLinkInstance = ClassicLinkInstance'-    { _cliInstanceId :: !(Maybe Text)-    , _cliGroups     :: !(Maybe [GroupIdentifier])-    , _cliVPCId      :: !(Maybe Text)-    , _cliTags       :: !(Maybe [Tag])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ClassicLinkInstance' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cliInstanceId'------ * 'cliGroups'------ * 'cliVPCId'------ * 'cliTags'-classicLinkInstance-    :: ClassicLinkInstance-classicLinkInstance =-    ClassicLinkInstance'-    { _cliInstanceId = Nothing-    , _cliGroups = Nothing-    , _cliVPCId = Nothing-    , _cliTags = Nothing-    }---- | The ID of the instance.-cliInstanceId :: Lens' ClassicLinkInstance (Maybe Text)-cliInstanceId = lens _cliInstanceId (\ s a -> s{_cliInstanceId = a});---- | A list of security groups.-cliGroups :: Lens' ClassicLinkInstance [GroupIdentifier]-cliGroups = lens _cliGroups (\ s a -> s{_cliGroups = a}) . _Default . _Coerce;---- | The ID of the VPC.-cliVPCId :: Lens' ClassicLinkInstance (Maybe Text)-cliVPCId = lens _cliVPCId (\ s a -> s{_cliVPCId = a});---- | Any tags assigned to the instance.-cliTags :: Lens' ClassicLinkInstance [Tag]-cliTags = lens _cliTags (\ s a -> s{_cliTags = a}) . _Default . _Coerce;--instance FromXML ClassicLinkInstance where-        parseXML x-          = ClassicLinkInstance' <$>-              (x .@? "instanceId") <*>-                (x .@? "groupSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "vpcId")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))---- | Describes the client-specific data.------ /See:/ 'clientData' smart constructor.-data ClientData = ClientData'-    { _cdUploadStart :: !(Maybe ISO8601)-    , _cdUploadSize  :: !(Maybe Double)-    , _cdUploadEnd   :: !(Maybe ISO8601)-    , _cdComment     :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ClientData' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cdUploadStart'------ * 'cdUploadSize'------ * 'cdUploadEnd'------ * 'cdComment'-clientData-    :: ClientData-clientData =-    ClientData'-    { _cdUploadStart = Nothing-    , _cdUploadSize = Nothing-    , _cdUploadEnd = Nothing-    , _cdComment = Nothing-    }---- | The time that the disk upload starts.-cdUploadStart :: Lens' ClientData (Maybe UTCTime)-cdUploadStart = lens _cdUploadStart (\ s a -> s{_cdUploadStart = a}) . mapping _Time;---- | The size of the uploaded disk image, in GiB.-cdUploadSize :: Lens' ClientData (Maybe Double)-cdUploadSize = lens _cdUploadSize (\ s a -> s{_cdUploadSize = a});---- | The time that the disk upload ends.-cdUploadEnd :: Lens' ClientData (Maybe UTCTime)-cdUploadEnd = lens _cdUploadEnd (\ s a -> s{_cdUploadEnd = a}) . mapping _Time;---- | A user-defined comment about the disk upload.-cdComment :: Lens' ClientData (Maybe Text)-cdComment = lens _cdComment (\ s a -> s{_cdComment = a});--instance ToQuery ClientData where-        toQuery ClientData'{..}-          = mconcat-              ["UploadStart" =: _cdUploadStart,-               "UploadSize" =: _cdUploadSize,-               "UploadEnd" =: _cdUploadEnd, "Comment" =: _cdComment]---- | Describes a conversion task.------ /See:/ 'conversionTask' smart constructor.-data ConversionTask = ConversionTask'-    { _ctImportInstance   :: !(Maybe ImportInstanceTaskDetails)-    , _ctStatusMessage    :: !(Maybe Text)-    , _ctImportVolume     :: !(Maybe ImportVolumeTaskDetails)-    , _ctExpirationTime   :: !(Maybe Text)-    , _ctTags             :: !(Maybe [Tag])-    , _ctConversionTaskId :: !Text-    , _ctState            :: !ConversionTaskState-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ConversionTask' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ctImportInstance'------ * 'ctStatusMessage'------ * 'ctImportVolume'------ * 'ctExpirationTime'------ * 'ctTags'------ * 'ctConversionTaskId'------ * 'ctState'-conversionTask-    :: Text -- ^ 'ctConversionTaskId'-    -> ConversionTaskState -- ^ 'ctState'-    -> ConversionTask-conversionTask pConversionTaskId_ pState_ =-    ConversionTask'-    { _ctImportInstance = Nothing-    , _ctStatusMessage = Nothing-    , _ctImportVolume = Nothing-    , _ctExpirationTime = Nothing-    , _ctTags = Nothing-    , _ctConversionTaskId = pConversionTaskId_-    , _ctState = pState_-    }---- | If the task is for importing an instance, this contains information--- about the import instance task.-ctImportInstance :: Lens' ConversionTask (Maybe ImportInstanceTaskDetails)-ctImportInstance = lens _ctImportInstance (\ s a -> s{_ctImportInstance = a});---- | The status message related to the conversion task.-ctStatusMessage :: Lens' ConversionTask (Maybe Text)-ctStatusMessage = lens _ctStatusMessage (\ s a -> s{_ctStatusMessage = a});---- | If the task is for importing a volume, this contains information about--- the import volume task.-ctImportVolume :: Lens' ConversionTask (Maybe ImportVolumeTaskDetails)-ctImportVolume = lens _ctImportVolume (\ s a -> s{_ctImportVolume = a});---- | The time when the task expires. If the upload isn\'t complete before the--- expiration time, we automatically cancel the task.-ctExpirationTime :: Lens' ConversionTask (Maybe Text)-ctExpirationTime = lens _ctExpirationTime (\ s a -> s{_ctExpirationTime = a});---- | Any tags assigned to the task.-ctTags :: Lens' ConversionTask [Tag]-ctTags = lens _ctTags (\ s a -> s{_ctTags = a}) . _Default . _Coerce;---- | The ID of the conversion task.-ctConversionTaskId :: Lens' ConversionTask Text-ctConversionTaskId = lens _ctConversionTaskId (\ s a -> s{_ctConversionTaskId = a});---- | The state of the conversion task.-ctState :: Lens' ConversionTask ConversionTaskState-ctState = lens _ctState (\ s a -> s{_ctState = a});--instance FromXML ConversionTask where-        parseXML x-          = ConversionTask' <$>-              (x .@? "importInstance") <*> (x .@? "statusMessage")-                <*> (x .@? "importVolume")-                <*> (x .@? "expirationTime")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@ "conversionTaskId")-                <*> (x .@ "state")---- | Describes the user or group to be added or removed from the permissions--- for a volume.------ /See:/ 'createVolumePermission' smart constructor.-data CreateVolumePermission = CreateVolumePermission'-    { _cvpGroup  :: !(Maybe PermissionGroup)-    , _cvpUserId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CreateVolumePermission' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cvpGroup'------ * 'cvpUserId'-createVolumePermission-    :: CreateVolumePermission-createVolumePermission =-    CreateVolumePermission'-    { _cvpGroup = Nothing-    , _cvpUserId = Nothing-    }---- | The specific group that is to be added or removed from a volume\'s list--- of create volume permissions.-cvpGroup :: Lens' CreateVolumePermission (Maybe PermissionGroup)-cvpGroup = lens _cvpGroup (\ s a -> s{_cvpGroup = a});---- | The specific AWS account ID that is to be added or removed from a--- volume\'s list of create volume permissions.-cvpUserId :: Lens' CreateVolumePermission (Maybe Text)-cvpUserId = lens _cvpUserId (\ s a -> s{_cvpUserId = a});--instance FromXML CreateVolumePermission where-        parseXML x-          = CreateVolumePermission' <$>-              (x .@? "group") <*> (x .@? "userId")--instance ToQuery CreateVolumePermission where-        toQuery CreateVolumePermission'{..}-          = mconcat-              ["Group" =: _cvpGroup, "UserId" =: _cvpUserId]---- | Describes modifications to the permissions for a volume.------ /See:/ 'createVolumePermissionModifications' smart constructor.-data CreateVolumePermissionModifications = CreateVolumePermissionModifications'-    { _cvpmRemove :: !(Maybe [CreateVolumePermission])-    , _cvpmAdd    :: !(Maybe [CreateVolumePermission])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CreateVolumePermissionModifications' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cvpmRemove'------ * 'cvpmAdd'-createVolumePermissionModifications-    :: CreateVolumePermissionModifications-createVolumePermissionModifications =-    CreateVolumePermissionModifications'-    { _cvpmRemove = Nothing-    , _cvpmAdd = Nothing-    }---- | Removes a specific AWS account ID or group from a volume\'s list of--- create volume permissions.-cvpmRemove :: Lens' CreateVolumePermissionModifications [CreateVolumePermission]-cvpmRemove = lens _cvpmRemove (\ s a -> s{_cvpmRemove = a}) . _Default . _Coerce;---- | Adds a specific AWS account ID or group to a volume\'s list of create--- volume permissions.-cvpmAdd :: Lens' CreateVolumePermissionModifications [CreateVolumePermission]-cvpmAdd = lens _cvpmAdd (\ s a -> s{_cvpmAdd = a}) . _Default . _Coerce;--instance ToQuery CreateVolumePermissionModifications-         where-        toQuery CreateVolumePermissionModifications'{..}-          = mconcat-              [toQuery (toQueryList "Remove" <$> _cvpmRemove),-               toQuery (toQueryList "Add" <$> _cvpmAdd)]---- | Describes a customer gateway.------ /See:/ 'customerGateway' smart constructor.-data CustomerGateway = CustomerGateway'-    { _cgTags              :: !(Maybe [Tag])-    , _cgBGPASN            :: !Text-    , _cgCustomerGatewayId :: !Text-    , _cgIPAddress         :: !Text-    , _cgState             :: !Text-    , _cgType              :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CustomerGateway' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cgTags'------ * 'cgBGPASN'------ * 'cgCustomerGatewayId'------ * 'cgIPAddress'------ * 'cgState'------ * 'cgType'-customerGateway-    :: Text -- ^ 'cgBGPASN'-    -> Text -- ^ 'cgCustomerGatewayId'-    -> Text -- ^ 'cgIPAddress'-    -> Text -- ^ 'cgState'-    -> Text -- ^ 'cgType'-    -> CustomerGateway-customerGateway pBGPASN_ pCustomerGatewayId_ pIPAddress_ pState_ pType_ =-    CustomerGateway'-    { _cgTags = Nothing-    , _cgBGPASN = pBGPASN_-    , _cgCustomerGatewayId = pCustomerGatewayId_-    , _cgIPAddress = pIPAddress_-    , _cgState = pState_-    , _cgType = pType_-    }---- | Any tags assigned to the customer gateway.-cgTags :: Lens' CustomerGateway [Tag]-cgTags = lens _cgTags (\ s a -> s{_cgTags = a}) . _Default . _Coerce;---- | The customer gateway\'s Border Gateway Protocol (BGP) Autonomous System--- Number (ASN).-cgBGPASN :: Lens' CustomerGateway Text-cgBGPASN = lens _cgBGPASN (\ s a -> s{_cgBGPASN = a});---- | The ID of the customer gateway.-cgCustomerGatewayId :: Lens' CustomerGateway Text-cgCustomerGatewayId = lens _cgCustomerGatewayId (\ s a -> s{_cgCustomerGatewayId = a});---- | The Internet-routable IP address of the customer gateway\'s outside--- interface.-cgIPAddress :: Lens' CustomerGateway Text-cgIPAddress = lens _cgIPAddress (\ s a -> s{_cgIPAddress = a});---- | The current state of the customer gateway--- ('pending | available | deleting | deleted').-cgState :: Lens' CustomerGateway Text-cgState = lens _cgState (\ s a -> s{_cgState = a});---- | The type of VPN connection the customer gateway supports ('ipsec.1').-cgType :: Lens' CustomerGateway Text-cgType = lens _cgType (\ s a -> s{_cgType = a});--instance FromXML CustomerGateway where-        parseXML x-          = CustomerGateway' <$>-              (x .@? "tagSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@ "bgpAsn")-                <*> (x .@ "customerGatewayId")-                <*> (x .@ "ipAddress")-                <*> (x .@ "state")-                <*> (x .@ "type")---- | Describes a DHCP configuration option.------ /See:/ 'dhcpConfiguration' smart constructor.-data DHCPConfiguration = DHCPConfiguration'-    { _dcValues :: !(Maybe [AttributeValue])-    , _dcKey    :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'DHCPConfiguration' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dcValues'------ * 'dcKey'-dhcpConfiguration-    :: DHCPConfiguration-dhcpConfiguration =-    DHCPConfiguration'-    { _dcValues = Nothing-    , _dcKey = Nothing-    }---- | One or more values for the DHCP option.-dcValues :: Lens' DHCPConfiguration [AttributeValue]-dcValues = lens _dcValues (\ s a -> s{_dcValues = a}) . _Default . _Coerce;---- | The name of a DHCP option.-dcKey :: Lens' DHCPConfiguration (Maybe Text)-dcKey = lens _dcKey (\ s a -> s{_dcKey = a});--instance FromXML DHCPConfiguration where-        parseXML x-          = DHCPConfiguration' <$>-              (x .@? "valueSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "key")---- | Describes a set of DHCP options.------ /See:/ 'dhcpOptions' smart constructor.-data DHCPOptions = DHCPOptions'-    { _doDHCPConfigurations :: !(Maybe [DHCPConfiguration])-    , _doDHCPOptionsId      :: !(Maybe Text)-    , _doTags               :: !(Maybe [Tag])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'DHCPOptions' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'doDHCPConfigurations'------ * 'doDHCPOptionsId'------ * 'doTags'-dhcpOptions-    :: DHCPOptions-dhcpOptions =-    DHCPOptions'-    { _doDHCPConfigurations = Nothing-    , _doDHCPOptionsId = Nothing-    , _doTags = Nothing-    }---- | One or more DHCP options in the set.-doDHCPConfigurations :: Lens' DHCPOptions [DHCPConfiguration]-doDHCPConfigurations = lens _doDHCPConfigurations (\ s a -> s{_doDHCPConfigurations = a}) . _Default . _Coerce;---- | The ID of the set of DHCP options.-doDHCPOptionsId :: Lens' DHCPOptions (Maybe Text)-doDHCPOptionsId = lens _doDHCPOptionsId (\ s a -> s{_doDHCPOptionsId = a});---- | Any tags assigned to the DHCP options set.-doTags :: Lens' DHCPOptions [Tag]-doTags = lens _doTags (\ s a -> s{_doTags = a}) . _Default . _Coerce;--instance FromXML DHCPOptions where-        parseXML x-          = DHCPOptions' <$>-              (x .@? "dhcpConfigurationSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "dhcpOptionsId")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))---- | Describes a disk image.------ /See:/ 'diskImage' smart constructor.-data DiskImage = DiskImage'-    { _diImage       :: !(Maybe DiskImageDetail)-    , _diVolume      :: !(Maybe VolumeDetail)-    , _diDescription :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'DiskImage' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'diImage'------ * 'diVolume'------ * 'diDescription'-diskImage-    :: DiskImage-diskImage =-    DiskImage'-    { _diImage = Nothing-    , _diVolume = Nothing-    , _diDescription = Nothing-    }---- | Information about the disk image.-diImage :: Lens' DiskImage (Maybe DiskImageDetail)-diImage = lens _diImage (\ s a -> s{_diImage = a});---- | Information about the volume.-diVolume :: Lens' DiskImage (Maybe VolumeDetail)-diVolume = lens _diVolume (\ s a -> s{_diVolume = a});---- | A description of the disk image.-diDescription :: Lens' DiskImage (Maybe Text)-diDescription = lens _diDescription (\ s a -> s{_diDescription = a});--instance ToQuery DiskImage where-        toQuery DiskImage'{..}-          = mconcat-              ["Image" =: _diImage, "Volume" =: _diVolume,-               "Description" =: _diDescription]---- | Describes a disk image.------ /See:/ 'diskImageDescription' smart constructor.-data DiskImageDescription = DiskImageDescription'-    { _dChecksum          :: !(Maybe Text)-    , _dFormat            :: !DiskImageFormat-    , _dSize              :: !Integer-    , _dImportManifestURL :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'DiskImageDescription' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dChecksum'------ * 'dFormat'------ * 'dSize'------ * 'dImportManifestURL'-diskImageDescription-    :: DiskImageFormat -- ^ 'dFormat'-    -> Integer -- ^ 'dSize'-    -> Text -- ^ 'dImportManifestURL'-    -> DiskImageDescription-diskImageDescription pFormat_ pSize_ pImportManifestURL_ =-    DiskImageDescription'-    { _dChecksum = Nothing-    , _dFormat = pFormat_-    , _dSize = pSize_-    , _dImportManifestURL = pImportManifestURL_-    }---- | The checksum computed for the disk image.-dChecksum :: Lens' DiskImageDescription (Maybe Text)-dChecksum = lens _dChecksum (\ s a -> s{_dChecksum = a});---- | The disk image format.-dFormat :: Lens' DiskImageDescription DiskImageFormat-dFormat = lens _dFormat (\ s a -> s{_dFormat = a});---- | The size of the disk image, in GiB.-dSize :: Lens' DiskImageDescription Integer-dSize = lens _dSize (\ s a -> s{_dSize = a});---- | A presigned URL for the import manifest stored in Amazon S3. For--- information about creating a presigned URL for an Amazon S3 object, read--- the \"Query String Request Authentication Alternative\" section of the--- <http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html Authenticating REST Requests>--- topic in the /Amazon Simple Storage Service Developer Guide/.-dImportManifestURL :: Lens' DiskImageDescription Text-dImportManifestURL = lens _dImportManifestURL (\ s a -> s{_dImportManifestURL = a});--instance FromXML DiskImageDescription where-        parseXML x-          = DiskImageDescription' <$>-              (x .@? "checksum") <*> (x .@ "format") <*>-                (x .@ "size")-                <*> (x .@ "importManifestUrl")---- | Describes a disk image.------ /See:/ 'diskImageDetail' smart constructor.-data DiskImageDetail = DiskImageDetail'-    { _didFormat            :: !DiskImageFormat-    , _didBytes             :: !Integer-    , _didImportManifestURL :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'DiskImageDetail' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'didFormat'------ * 'didBytes'------ * 'didImportManifestURL'-diskImageDetail-    :: DiskImageFormat -- ^ 'didFormat'-    -> Integer -- ^ 'didBytes'-    -> Text -- ^ 'didImportManifestURL'-    -> DiskImageDetail-diskImageDetail pFormat_ pBytes_ pImportManifestURL_ =-    DiskImageDetail'-    { _didFormat = pFormat_-    , _didBytes = pBytes_-    , _didImportManifestURL = pImportManifestURL_-    }---- | The disk image format.-didFormat :: Lens' DiskImageDetail DiskImageFormat-didFormat = lens _didFormat (\ s a -> s{_didFormat = a});---- | The size of the disk image, in GiB.-didBytes :: Lens' DiskImageDetail Integer-didBytes = lens _didBytes (\ s a -> s{_didBytes = a});---- | A presigned URL for the import manifest stored in Amazon S3 and--- presented here as an Amazon S3 presigned URL. For information about--- creating a presigned URL for an Amazon S3 object, read the \"Query--- String Request Authentication Alternative\" section of the--- <http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html Authenticating REST Requests>--- topic in the /Amazon Simple Storage Service Developer Guide/.-didImportManifestURL :: Lens' DiskImageDetail Text-didImportManifestURL = lens _didImportManifestURL (\ s a -> s{_didImportManifestURL = a});--instance ToQuery DiskImageDetail where-        toQuery DiskImageDetail'{..}-          = mconcat-              ["Format" =: _didFormat, "Bytes" =: _didBytes,-               "ImportManifestUrl" =: _didImportManifestURL]---- | Describes a disk image volume.------ /See:/ 'diskImageVolumeDescription' smart constructor.-data DiskImageVolumeDescription = DiskImageVolumeDescription'-    { _divdSize :: !(Maybe Integer)-    , _divdId   :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'DiskImageVolumeDescription' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'divdSize'------ * 'divdId'-diskImageVolumeDescription-    :: Text -- ^ 'divdId'-    -> DiskImageVolumeDescription-diskImageVolumeDescription pId_ =-    DiskImageVolumeDescription'-    { _divdSize = Nothing-    , _divdId = pId_-    }---- | The size of the volume, in GiB.-divdSize :: Lens' DiskImageVolumeDescription (Maybe Integer)-divdSize = lens _divdSize (\ s a -> s{_divdSize = a});---- | The volume identifier.-divdId :: Lens' DiskImageVolumeDescription Text-divdId = lens _divdId (\ s a -> s{_divdId = a});--instance FromXML DiskImageVolumeDescription where-        parseXML x-          = DiskImageVolumeDescription' <$>-              (x .@? "size") <*> (x .@ "id")---- | Describes a block device for an EBS volume.------ /See:/ 'ebsBlockDevice' smart constructor.-data EBSBlockDevice = EBSBlockDevice'-    { _ebdDeleteOnTermination :: !(Maybe Bool)-    , _ebdVolumeSize          :: !(Maybe Int)-    , _ebdIOPS                :: !(Maybe Int)-    , _ebdEncrypted           :: !(Maybe Bool)-    , _ebdVolumeType          :: !(Maybe VolumeType)-    , _ebdSnapshotId          :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'EBSBlockDevice' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ebdDeleteOnTermination'------ * 'ebdVolumeSize'------ * 'ebdIOPS'------ * 'ebdEncrypted'------ * 'ebdVolumeType'------ * 'ebdSnapshotId'-ebsBlockDevice-    :: EBSBlockDevice-ebsBlockDevice =-    EBSBlockDevice'-    { _ebdDeleteOnTermination = Nothing-    , _ebdVolumeSize = Nothing-    , _ebdIOPS = Nothing-    , _ebdEncrypted = Nothing-    , _ebdVolumeType = Nothing-    , _ebdSnapshotId = Nothing-    }---- | Indicates whether the EBS volume is deleted on instance termination.-ebdDeleteOnTermination :: Lens' EBSBlockDevice (Maybe Bool)-ebdDeleteOnTermination = lens _ebdDeleteOnTermination (\ s a -> s{_ebdDeleteOnTermination = a});---- | The size of the volume, in GiB.------ Constraints: '1-1024' for 'standard' volumes, '1-16384' for 'gp2'--- volumes, and '4-16384' for 'io1' volumes. If you specify a snapshot, the--- volume size must be equal to or larger than the snapshot size.------ Default: If you\'re creating the volume from a snapshot and don\'t--- specify a volume size, the default is the snapshot size.-ebdVolumeSize :: Lens' EBSBlockDevice (Maybe Int)-ebdVolumeSize = lens _ebdVolumeSize (\ s a -> s{_ebdVolumeSize = a});---- | The number of I\/O operations per second (IOPS) that the volume--- supports. For Provisioned IOPS (SSD) volumes, this represents the number--- of IOPS that are provisioned for the volume. For General Purpose (SSD)--- volumes, this represents the baseline performance of the volume and the--- rate at which the volume accumulates I\/O credits for bursting. For more--- information on General Purpose (SSD) baseline performance, I\/O credits,--- and bursting, see--- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBS Volume Types>--- in the /Amazon Elastic Compute Cloud User Guide/.------ Constraint: Range is 100 to 20000 for Provisioned IOPS (SSD) volumes and--- 3 to 10000 for General Purpose (SSD) volumes.------ Condition: This parameter is required for requests to create 'io1'--- volumes; it is not used in requests to create 'standard' or 'gp2'--- volumes.-ebdIOPS :: Lens' EBSBlockDevice (Maybe Int)-ebdIOPS = lens _ebdIOPS (\ s a -> s{_ebdIOPS = a});---- | Indicates whether the EBS volume is encrypted. Encrypted Amazon EBS--- volumes may only be attached to instances that support Amazon EBS--- encryption.-ebdEncrypted :: Lens' EBSBlockDevice (Maybe Bool)-ebdEncrypted = lens _ebdEncrypted (\ s a -> s{_ebdEncrypted = a});---- | The volume type. 'gp2' for General Purpose (SSD) volumes, 'io1' for--- Provisioned IOPS (SSD) volumes, and 'standard' for Magnetic volumes.------ Default: 'standard'-ebdVolumeType :: Lens' EBSBlockDevice (Maybe VolumeType)-ebdVolumeType = lens _ebdVolumeType (\ s a -> s{_ebdVolumeType = a});---- | The ID of the snapshot.-ebdSnapshotId :: Lens' EBSBlockDevice (Maybe Text)-ebdSnapshotId = lens _ebdSnapshotId (\ s a -> s{_ebdSnapshotId = a});--instance FromXML EBSBlockDevice where-        parseXML x-          = EBSBlockDevice' <$>-              (x .@? "deleteOnTermination") <*>-                (x .@? "volumeSize")-                <*> (x .@? "iops")-                <*> (x .@? "encrypted")-                <*> (x .@? "volumeType")-                <*> (x .@? "snapshotId")--instance ToQuery EBSBlockDevice where-        toQuery EBSBlockDevice'{..}-          = mconcat-              ["DeleteOnTermination" =: _ebdDeleteOnTermination,-               "VolumeSize" =: _ebdVolumeSize, "Iops" =: _ebdIOPS,-               "Encrypted" =: _ebdEncrypted,-               "VolumeType" =: _ebdVolumeType,-               "SnapshotId" =: _ebdSnapshotId]---- | Describes a parameter used to set up an EBS volume in a block device--- mapping.------ /See:/ 'ebsInstanceBlockDevice' smart constructor.-data EBSInstanceBlockDevice = EBSInstanceBlockDevice'-    { _eibdStatus              :: !(Maybe AttachmentStatus)-    , _eibdDeleteOnTermination :: !(Maybe Bool)-    , _eibdVolumeId            :: !(Maybe Text)-    , _eibdAttachTime          :: !(Maybe ISO8601)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'EBSInstanceBlockDevice' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eibdStatus'------ * 'eibdDeleteOnTermination'------ * 'eibdVolumeId'------ * 'eibdAttachTime'-ebsInstanceBlockDevice-    :: EBSInstanceBlockDevice-ebsInstanceBlockDevice =-    EBSInstanceBlockDevice'-    { _eibdStatus = Nothing-    , _eibdDeleteOnTermination = Nothing-    , _eibdVolumeId = Nothing-    , _eibdAttachTime = Nothing-    }---- | The attachment state.-eibdStatus :: Lens' EBSInstanceBlockDevice (Maybe AttachmentStatus)-eibdStatus = lens _eibdStatus (\ s a -> s{_eibdStatus = a});---- | Indicates whether the volume is deleted on instance termination.-eibdDeleteOnTermination :: Lens' EBSInstanceBlockDevice (Maybe Bool)-eibdDeleteOnTermination = lens _eibdDeleteOnTermination (\ s a -> s{_eibdDeleteOnTermination = a});---- | The ID of the EBS volume.-eibdVolumeId :: Lens' EBSInstanceBlockDevice (Maybe Text)-eibdVolumeId = lens _eibdVolumeId (\ s a -> s{_eibdVolumeId = a});---- | The time stamp when the attachment initiated.-eibdAttachTime :: Lens' EBSInstanceBlockDevice (Maybe UTCTime)-eibdAttachTime = lens _eibdAttachTime (\ s a -> s{_eibdAttachTime = a}) . mapping _Time;--instance FromXML EBSInstanceBlockDevice where-        parseXML x-          = EBSInstanceBlockDevice' <$>-              (x .@? "status") <*> (x .@? "deleteOnTermination")-                <*> (x .@? "volumeId")-                <*> (x .@? "attachTime")---- | /See:/ 'ebsInstanceBlockDeviceSpecification' smart constructor.-data EBSInstanceBlockDeviceSpecification = EBSInstanceBlockDeviceSpecification'-    { _eibdsDeleteOnTermination :: !(Maybe Bool)-    , _eibdsVolumeId            :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'EBSInstanceBlockDeviceSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eibdsDeleteOnTermination'------ * 'eibdsVolumeId'-ebsInstanceBlockDeviceSpecification-    :: EBSInstanceBlockDeviceSpecification-ebsInstanceBlockDeviceSpecification =-    EBSInstanceBlockDeviceSpecification'-    { _eibdsDeleteOnTermination = Nothing-    , _eibdsVolumeId = Nothing-    }---- | Indicates whether the volume is deleted on instance termination.-eibdsDeleteOnTermination :: Lens' EBSInstanceBlockDeviceSpecification (Maybe Bool)-eibdsDeleteOnTermination = lens _eibdsDeleteOnTermination (\ s a -> s{_eibdsDeleteOnTermination = a});---- | The ID of the EBS volume.-eibdsVolumeId :: Lens' EBSInstanceBlockDeviceSpecification (Maybe Text)-eibdsVolumeId = lens _eibdsVolumeId (\ s a -> s{_eibdsVolumeId = a});--instance ToQuery EBSInstanceBlockDeviceSpecification-         where-        toQuery EBSInstanceBlockDeviceSpecification'{..}-          = mconcat-              ["DeleteOnTermination" =: _eibdsDeleteOnTermination,-               "VolumeId" =: _eibdsVolumeId]---- | Describes a Spot fleet event.------ /See:/ 'eventInformation' smart constructor.-data EventInformation = EventInformation'-    { _eiInstanceId       :: !(Maybe Text)-    , _eiEventDescription :: !(Maybe Text)-    , _eiEventSubType     :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'EventInformation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eiInstanceId'------ * 'eiEventDescription'------ * 'eiEventSubType'-eventInformation-    :: EventInformation-eventInformation =-    EventInformation'-    { _eiInstanceId = Nothing-    , _eiEventDescription = Nothing-    , _eiEventSubType = Nothing-    }---- | The ID of the instance. This information is available only for--- 'instanceChange' events.-eiInstanceId :: Lens' EventInformation (Maybe Text)-eiInstanceId = lens _eiInstanceId (\ s a -> s{_eiInstanceId = a});---- | The description of the event.-eiEventDescription :: Lens' EventInformation (Maybe Text)-eiEventDescription = lens _eiEventDescription (\ s a -> s{_eiEventDescription = a});---- | The event.------ The following are the 'error' events.------ -   'iamFleetRoleInvalid' - The Spot fleet did not have the required---     permissions either to launch or terminate an instance.------ -   'launchSpecTemporarilyBlacklisted' - The configuration is not valid---     and several attempts to launch instances have failed. For more---     information, see the description of the event.------ -   'spotFleetRequestConfigurationInvalid' - The configuration is not---     valid. For more information, see the description of the event.------ -   'spotInstanceCountLimitExceeded' - You\'ve reached the limit on the---     number of Spot instances that you can launch.------ The following are the 'fleetRequestChange' events.------ -   'active' - The Spot fleet has been validated and Amazon EC2 is---     attempting to maintain the target number of running Spot instances.------ -   'cancelled' - The Spot fleet is canceled and has no running Spot---     instances. The Spot fleet will be deleted two days after its---     instances were terminated.------ -   'cancelled_running' - The Spot fleet is canceled and will not launch---     additional Spot instances, but its existing Spot instances continue---     to run until they are interrupted or terminated.------ -   'cancelled_terminating' - The Spot fleet is canceled and its Spot---     instances are terminating.------ -   'expired' - The Spot fleet request has expired. A subsequent event---     indicates that the instances were terminated, if the request was---     created with 'TerminateInstancesWithExpiration' set.------ -   'modify_in_progress' - A request to modify the Spot fleet request---     was accepted and is in progress.------ -   'modify_successful' - The Spot fleet request was modified.------ -   'price_update' - The bid price for a launch configuration was---     adjusted because it was too high. This change is permanent.------ -   'submitted' - The Spot fleet request is being evaluated and Amazon---     EC2 is preparing to launch the target number of Spot instances.------ The following are the 'instanceChange' events.------ -   'launched' - A bid was fulfilled and a new instance was launched.------ -   'terminated' - An instance was terminated by the user.----eiEventSubType :: Lens' EventInformation (Maybe Text)-eiEventSubType = lens _eiEventSubType (\ s a -> s{_eiEventSubType = a});--instance FromXML EventInformation where-        parseXML x-          = EventInformation' <$>-              (x .@? "instanceId") <*> (x .@? "eventDescription")-                <*> (x .@? "eventSubType")---- | Describes an instance export task.------ /See:/ 'exportTask' smart constructor.-data ExportTask = ExportTask'-    { _etDescription           :: !Text-    , _etExportTaskId          :: !Text-    , _etExportToS3Task        :: !ExportToS3Task-    , _etInstanceExportDetails :: !InstanceExportDetails-    , _etState                 :: !ExportTaskState-    , _etStatusMessage         :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ExportTask' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'etDescription'------ * 'etExportTaskId'------ * 'etExportToS3Task'------ * 'etInstanceExportDetails'------ * 'etState'------ * 'etStatusMessage'-exportTask-    :: Text -- ^ 'etDescription'-    -> Text -- ^ 'etExportTaskId'-    -> ExportToS3Task -- ^ 'etExportToS3Task'-    -> InstanceExportDetails -- ^ 'etInstanceExportDetails'-    -> ExportTaskState -- ^ 'etState'-    -> Text -- ^ 'etStatusMessage'-    -> ExportTask-exportTask pDescription_ pExportTaskId_ pExportToS3Task_ pInstanceExportDetails_ pState_ pStatusMessage_ =-    ExportTask'-    { _etDescription = pDescription_-    , _etExportTaskId = pExportTaskId_-    , _etExportToS3Task = pExportToS3Task_-    , _etInstanceExportDetails = pInstanceExportDetails_-    , _etState = pState_-    , _etStatusMessage = pStatusMessage_-    }---- | A description of the resource being exported.-etDescription :: Lens' ExportTask Text-etDescription = lens _etDescription (\ s a -> s{_etDescription = a});---- | The ID of the export task.-etExportTaskId :: Lens' ExportTask Text-etExportTaskId = lens _etExportTaskId (\ s a -> s{_etExportTaskId = a});---- | Information about the export task.-etExportToS3Task :: Lens' ExportTask ExportToS3Task-etExportToS3Task = lens _etExportToS3Task (\ s a -> s{_etExportToS3Task = a});---- | Information about the instance to export.-etInstanceExportDetails :: Lens' ExportTask InstanceExportDetails-etInstanceExportDetails = lens _etInstanceExportDetails (\ s a -> s{_etInstanceExportDetails = a});---- | The state of the export task.-etState :: Lens' ExportTask ExportTaskState-etState = lens _etState (\ s a -> s{_etState = a});---- | The status message related to the export task.-etStatusMessage :: Lens' ExportTask Text-etStatusMessage = lens _etStatusMessage (\ s a -> s{_etStatusMessage = a});--instance FromXML ExportTask where-        parseXML x-          = ExportTask' <$>-              (x .@ "description") <*> (x .@ "exportTaskId") <*>-                (x .@ "exportToS3")-                <*> (x .@ "instanceExport")-                <*> (x .@ "state")-                <*> (x .@ "statusMessage")---- | Describes the format and location for an instance export task.------ /See:/ 'exportToS3Task' smart constructor.-data ExportToS3Task = ExportToS3Task'-    { _etstS3Key           :: !(Maybe Text)-    , _etstContainerFormat :: !(Maybe ContainerFormat)-    , _etstS3Bucket        :: !(Maybe Text)-    , _etstDiskImageFormat :: !(Maybe DiskImageFormat)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ExportToS3Task' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'etstS3Key'------ * 'etstContainerFormat'------ * 'etstS3Bucket'------ * 'etstDiskImageFormat'-exportToS3Task-    :: ExportToS3Task-exportToS3Task =-    ExportToS3Task'-    { _etstS3Key = Nothing-    , _etstContainerFormat = Nothing-    , _etstS3Bucket = Nothing-    , _etstDiskImageFormat = Nothing-    }---- | The encryption key for your S3 bucket.-etstS3Key :: Lens' ExportToS3Task (Maybe Text)-etstS3Key = lens _etstS3Key (\ s a -> s{_etstS3Key = a});---- | The container format used to combine disk images with metadata (such as--- OVF). If absent, only the disk image is exported.-etstContainerFormat :: Lens' ExportToS3Task (Maybe ContainerFormat)-etstContainerFormat = lens _etstContainerFormat (\ s a -> s{_etstContainerFormat = a});---- | The S3 bucket for the destination image. The destination bucket must--- exist and grant WRITE and READ_ACP permissions to the AWS account--- 'vm-import-export\'amazon.com'.-etstS3Bucket :: Lens' ExportToS3Task (Maybe Text)-etstS3Bucket = lens _etstS3Bucket (\ s a -> s{_etstS3Bucket = a});---- | The format for the exported image.-etstDiskImageFormat :: Lens' ExportToS3Task (Maybe DiskImageFormat)-etstDiskImageFormat = lens _etstDiskImageFormat (\ s a -> s{_etstDiskImageFormat = a});--instance FromXML ExportToS3Task where-        parseXML x-          = ExportToS3Task' <$>-              (x .@? "s3Key") <*> (x .@? "containerFormat") <*>-                (x .@? "s3Bucket")-                <*> (x .@? "diskImageFormat")---- | Describes an instance export task.------ /See:/ 'exportToS3TaskSpecification' smart constructor.-data ExportToS3TaskSpecification = ExportToS3TaskSpecification'-    { _etstsContainerFormat :: !(Maybe ContainerFormat)-    , _etstsS3Prefix        :: !(Maybe Text)-    , _etstsS3Bucket        :: !(Maybe Text)-    , _etstsDiskImageFormat :: !(Maybe DiskImageFormat)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ExportToS3TaskSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'etstsContainerFormat'------ * 'etstsS3Prefix'------ * 'etstsS3Bucket'------ * 'etstsDiskImageFormat'-exportToS3TaskSpecification-    :: ExportToS3TaskSpecification-exportToS3TaskSpecification =-    ExportToS3TaskSpecification'-    { _etstsContainerFormat = Nothing-    , _etstsS3Prefix = Nothing-    , _etstsS3Bucket = Nothing-    , _etstsDiskImageFormat = Nothing-    }---- | The container format used to combine disk images with metadata (such as--- OVF). If absent, only the disk image is exported.-etstsContainerFormat :: Lens' ExportToS3TaskSpecification (Maybe ContainerFormat)-etstsContainerFormat = lens _etstsContainerFormat (\ s a -> s{_etstsContainerFormat = a});---- | The image is written to a single object in the S3 bucket at the S3 key--- s3prefix + exportTaskId + \'.\' + diskImageFormat.-etstsS3Prefix :: Lens' ExportToS3TaskSpecification (Maybe Text)-etstsS3Prefix = lens _etstsS3Prefix (\ s a -> s{_etstsS3Prefix = a});---- | The S3 bucket for the destination image. The destination bucket must--- exist and grant WRITE and READ_ACP permissions to the AWS account--- 'vm-import-export\'amazon.com'.-etstsS3Bucket :: Lens' ExportToS3TaskSpecification (Maybe Text)-etstsS3Bucket = lens _etstsS3Bucket (\ s a -> s{_etstsS3Bucket = a});---- | The format for the exported image.-etstsDiskImageFormat :: Lens' ExportToS3TaskSpecification (Maybe DiskImageFormat)-etstsDiskImageFormat = lens _etstsDiskImageFormat (\ s a -> s{_etstsDiskImageFormat = a});--instance ToQuery ExportToS3TaskSpecification where-        toQuery ExportToS3TaskSpecification'{..}-          = mconcat-              ["ContainerFormat" =: _etstsContainerFormat,-               "S3Prefix" =: _etstsS3Prefix,-               "S3Bucket" =: _etstsS3Bucket,-               "DiskImageFormat" =: _etstsDiskImageFormat]---- | A filter name and value pair that is used to return a more specific list--- of results. Filters can be used to match a set of resources by various--- criteria, such as tags, attributes, or IDs.------ /See:/ 'filter'' smart constructor.-data Filter = Filter'-    { _fValues :: !(Maybe [Text])-    , _fName   :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Filter' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'fValues'------ * 'fName'-filter'-    :: Text -- ^ 'fName'-    -> Filter-filter' pName_ =-    Filter'-    { _fValues = Nothing-    , _fName = pName_-    }---- | One or more filter values. Filter values are case-sensitive.-fValues :: Lens' Filter [Text]-fValues = lens _fValues (\ s a -> s{_fValues = a}) . _Default . _Coerce;---- | The name of the filter. Filter names are case-sensitive.-fName :: Lens' Filter Text-fName = lens _fName (\ s a -> s{_fName = a});--instance ToQuery Filter where-        toQuery Filter'{..}-          = mconcat-              [toQuery (toQueryList "Value" <$> _fValues),-               "Name" =: _fName]---- | Describes a flow log.------ /See:/ 'flowLog' smart constructor.-data FlowLog = FlowLog'-    { _flCreationTime             :: !(Maybe ISO8601)-    , _flResourceId               :: !(Maybe Text)-    , _flFlowLogStatus            :: !(Maybe Text)-    , _flTrafficType              :: !(Maybe TrafficType)-    , _flDeliverLogsStatus        :: !(Maybe Text)-    , _flDeliverLogsErrorMessage  :: !(Maybe Text)-    , _flLogGroupName             :: !(Maybe Text)-    , _flDeliverLogsPermissionARN :: !(Maybe Text)-    , _flFlowLogId                :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'FlowLog' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'flCreationTime'------ * 'flResourceId'------ * 'flFlowLogStatus'------ * 'flTrafficType'------ * 'flDeliverLogsStatus'------ * 'flDeliverLogsErrorMessage'------ * 'flLogGroupName'------ * 'flDeliverLogsPermissionARN'------ * 'flFlowLogId'-flowLog-    :: FlowLog-flowLog =-    FlowLog'-    { _flCreationTime = Nothing-    , _flResourceId = Nothing-    , _flFlowLogStatus = Nothing-    , _flTrafficType = Nothing-    , _flDeliverLogsStatus = Nothing-    , _flDeliverLogsErrorMessage = Nothing-    , _flLogGroupName = Nothing-    , _flDeliverLogsPermissionARN = Nothing-    , _flFlowLogId = Nothing-    }---- | The date and time the flow log was created.-flCreationTime :: Lens' FlowLog (Maybe UTCTime)-flCreationTime = lens _flCreationTime (\ s a -> s{_flCreationTime = a}) . mapping _Time;---- | The ID of the resource on which the flow log was created.-flResourceId :: Lens' FlowLog (Maybe Text)-flResourceId = lens _flResourceId (\ s a -> s{_flResourceId = a});---- | The status of the flow log ('ACTIVE').-flFlowLogStatus :: Lens' FlowLog (Maybe Text)-flFlowLogStatus = lens _flFlowLogStatus (\ s a -> s{_flFlowLogStatus = a});---- | The type of traffic captured for the flow log.-flTrafficType :: Lens' FlowLog (Maybe TrafficType)-flTrafficType = lens _flTrafficType (\ s a -> s{_flTrafficType = a});---- | The status of the logs delivery ('SUCCESS' | 'FAILED').-flDeliverLogsStatus :: Lens' FlowLog (Maybe Text)-flDeliverLogsStatus = lens _flDeliverLogsStatus (\ s a -> s{_flDeliverLogsStatus = a});---- | Information about the error that occurred. 'Rate limited' indicates that--- CloudWatch logs throttling has been applied for one or more network--- interfaces, or that you\'ve reached the limit on the number of--- CloudWatch Logs log groups that you can create. 'Access error' indicates--- that the IAM role associated with the flow log does not have sufficient--- permissions to publish to CloudWatch Logs. 'Unknown error' indicates an--- internal error.-flDeliverLogsErrorMessage :: Lens' FlowLog (Maybe Text)-flDeliverLogsErrorMessage = lens _flDeliverLogsErrorMessage (\ s a -> s{_flDeliverLogsErrorMessage = a});---- | The name of the flow log group.-flLogGroupName :: Lens' FlowLog (Maybe Text)-flLogGroupName = lens _flLogGroupName (\ s a -> s{_flLogGroupName = a});---- | The ARN of the IAM role that posts logs to CloudWatch Logs.-flDeliverLogsPermissionARN :: Lens' FlowLog (Maybe Text)-flDeliverLogsPermissionARN = lens _flDeliverLogsPermissionARN (\ s a -> s{_flDeliverLogsPermissionARN = a});---- | The flow log ID.-flFlowLogId :: Lens' FlowLog (Maybe Text)-flFlowLogId = lens _flFlowLogId (\ s a -> s{_flFlowLogId = a});--instance FromXML FlowLog where-        parseXML x-          = FlowLog' <$>-              (x .@? "creationTime") <*> (x .@? "resourceId") <*>-                (x .@? "flowLogStatus")-                <*> (x .@? "trafficType")-                <*> (x .@? "deliverLogsStatus")-                <*> (x .@? "deliverLogsErrorMessage")-                <*> (x .@? "logGroupName")-                <*> (x .@? "deliverLogsPermissionArn")-                <*> (x .@? "flowLogId")---- | Describes a security group.------ /See:/ 'groupIdentifier' smart constructor.-data GroupIdentifier = GroupIdentifier'-    { _giGroupId   :: !(Maybe Text)-    , _giGroupName :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'GroupIdentifier' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'giGroupId'------ * 'giGroupName'-groupIdentifier-    :: GroupIdentifier-groupIdentifier =-    GroupIdentifier'-    { _giGroupId = Nothing-    , _giGroupName = Nothing-    }---- | The ID of the security group.-giGroupId :: Lens' GroupIdentifier (Maybe Text)-giGroupId = lens _giGroupId (\ s a -> s{_giGroupId = a});---- | The name of the security group.-giGroupName :: Lens' GroupIdentifier (Maybe Text)-giGroupName = lens _giGroupName (\ s a -> s{_giGroupName = a});--instance FromXML GroupIdentifier where-        parseXML x-          = GroupIdentifier' <$>-              (x .@? "groupId") <*> (x .@? "groupName")--instance ToQuery GroupIdentifier where-        toQuery GroupIdentifier'{..}-          = mconcat-              ["GroupId" =: _giGroupId,-               "GroupName" =: _giGroupName]---- | Describes an event in the history of the Spot fleet request.------ /See:/ 'historyRecord' smart constructor.-data HistoryRecord = HistoryRecord'-    { _hrTimestamp        :: !ISO8601-    , _hrEventType        :: !EventType-    , _hrEventInformation :: !EventInformation-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'HistoryRecord' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'hrTimestamp'------ * 'hrEventType'------ * 'hrEventInformation'-historyRecord-    :: UTCTime -- ^ 'hrTimestamp'-    -> EventType -- ^ 'hrEventType'-    -> EventInformation -- ^ 'hrEventInformation'-    -> HistoryRecord-historyRecord pTimestamp_ pEventType_ pEventInformation_ =-    HistoryRecord'-    { _hrTimestamp = _Time # pTimestamp_-    , _hrEventType = pEventType_-    , _hrEventInformation = pEventInformation_-    }---- | The date and time of the event, in UTC format (for example,--- /YYYY/-/MM/-/DD/T/HH/:/MM/:/SS/Z).-hrTimestamp :: Lens' HistoryRecord UTCTime-hrTimestamp = lens _hrTimestamp (\ s a -> s{_hrTimestamp = a}) . _Time;---- | The event type.------ -   'error' - Indicates an error with the Spot fleet request.------ -   'fleetRequestChange' - Indicates a change in the status or---     configuration of the Spot fleet request.------ -   'instanceChange' - Indicates that an instance was launched or---     terminated.----hrEventType :: Lens' HistoryRecord EventType-hrEventType = lens _hrEventType (\ s a -> s{_hrEventType = a});---- | Information about the event.-hrEventInformation :: Lens' HistoryRecord EventInformation-hrEventInformation = lens _hrEventInformation (\ s a -> s{_hrEventInformation = a});--instance FromXML HistoryRecord where-        parseXML x-          = HistoryRecord' <$>-              (x .@ "timestamp") <*> (x .@ "eventType") <*>-                (x .@ "eventInformation")---- | Describes the properties of the Dedicated host.------ /See:/ 'host' smart constructor.-data Host = Host'-    { _hState             :: !(Maybe AllocationState)-    , _hClientToken       :: !(Maybe Text)-    , _hHostId            :: !(Maybe Text)-    , _hAvailableCapacity :: !(Maybe AvailableCapacity)-    , _hHostReservationId :: !(Maybe Text)-    , _hHostProperties    :: !(Maybe HostProperties)-    , _hAvailabilityZone  :: !(Maybe Text)-    , _hInstances         :: !(Maybe [HostInstance])-    , _hAutoPlacement     :: !(Maybe AutoPlacement)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Host' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'hState'------ * 'hClientToken'------ * 'hHostId'------ * 'hAvailableCapacity'------ * 'hHostReservationId'------ * 'hHostProperties'------ * 'hAvailabilityZone'------ * 'hInstances'------ * 'hAutoPlacement'-host-    :: Host-host =-    Host'-    { _hState = Nothing-    , _hClientToken = Nothing-    , _hHostId = Nothing-    , _hAvailableCapacity = Nothing-    , _hHostReservationId = Nothing-    , _hHostProperties = Nothing-    , _hAvailabilityZone = Nothing-    , _hInstances = Nothing-    , _hAutoPlacement = Nothing-    }---- | The Dedicated host\'s state.-hState :: Lens' Host (Maybe AllocationState)-hState = lens _hState (\ s a -> s{_hState = a});---- | Unique, case-sensitive identifier you provide to ensure idempotency of--- the request. For more information, see--- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html How to Ensure Idempotency>--- in the /Amazon Elastic Compute Cloud User Guide/.-hClientToken :: Lens' Host (Maybe Text)-hClientToken = lens _hClientToken (\ s a -> s{_hClientToken = a});---- | The ID of the Dedicated host.-hHostId :: Lens' Host (Maybe Text)-hHostId = lens _hHostId (\ s a -> s{_hHostId = a});---- | The number of new instances that can be launched onto the Dedicated--- host.-hAvailableCapacity :: Lens' Host (Maybe AvailableCapacity)-hAvailableCapacity = lens _hAvailableCapacity (\ s a -> s{_hAvailableCapacity = a});---- | The reservation ID of the Dedicated host. This returns a 'null' response--- if the Dedicated host doesn\'t have an associated reservation.-hHostReservationId :: Lens' Host (Maybe Text)-hHostReservationId = lens _hHostReservationId (\ s a -> s{_hHostReservationId = a});---- | The hardware specifications of the Dedicated host.-hHostProperties :: Lens' Host (Maybe HostProperties)-hHostProperties = lens _hHostProperties (\ s a -> s{_hHostProperties = a});---- | The Availability Zone of the Dedicated host.-hAvailabilityZone :: Lens' Host (Maybe Text)-hAvailabilityZone = lens _hAvailabilityZone (\ s a -> s{_hAvailabilityZone = a});---- | The IDs and instance type that are currently running on the Dedicated--- host.-hInstances :: Lens' Host [HostInstance]-hInstances = lens _hInstances (\ s a -> s{_hInstances = a}) . _Default . _Coerce;---- | Whether auto-placement is on or off.-hAutoPlacement :: Lens' Host (Maybe AutoPlacement)-hAutoPlacement = lens _hAutoPlacement (\ s a -> s{_hAutoPlacement = a});--instance FromXML Host where-        parseXML x-          = Host' <$>-              (x .@? "state") <*> (x .@? "clientToken") <*>-                (x .@? "hostId")-                <*> (x .@? "availableCapacity")-                <*> (x .@? "hostReservationId")-                <*> (x .@? "hostProperties")-                <*> (x .@? "availabilityZone")-                <*>-                (x .@? "instances" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "autoPlacement")---- | /See:/ 'hostInstance' smart constructor.-data HostInstance = HostInstance'-    { _hiInstanceId   :: !(Maybe Text)-    , _hiInstanceType :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'HostInstance' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'hiInstanceId'------ * 'hiInstanceType'-hostInstance-    :: HostInstance-hostInstance =-    HostInstance'-    { _hiInstanceId = Nothing-    , _hiInstanceType = Nothing-    }---- | the IDs of instances that are running on the Dedicated host.-hiInstanceId :: Lens' HostInstance (Maybe Text)-hiInstanceId = lens _hiInstanceId (\ s a -> s{_hiInstanceId = a});---- | The instance type size (e.g., m3.medium) of the running instance.-hiInstanceType :: Lens' HostInstance (Maybe Text)-hiInstanceType = lens _hiInstanceType (\ s a -> s{_hiInstanceType = a});--instance FromXML HostInstance where-        parseXML x-          = HostInstance' <$>-              (x .@? "instanceId") <*> (x .@? "instanceType")---- | /See:/ 'hostProperties' smart constructor.-data HostProperties = HostProperties'-    { _hpInstanceType :: !(Maybe Text)-    , _hpTotalVCPUs   :: !(Maybe Int)-    , _hpCores        :: !(Maybe Int)-    , _hpSockets      :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'HostProperties' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'hpInstanceType'------ * 'hpTotalVCPUs'------ * 'hpCores'------ * 'hpSockets'-hostProperties-    :: HostProperties-hostProperties =-    HostProperties'-    { _hpInstanceType = Nothing-    , _hpTotalVCPUs = Nothing-    , _hpCores = Nothing-    , _hpSockets = Nothing-    }---- | The instance type size that the Dedicated host supports (e.g.,--- m3.medium).-hpInstanceType :: Lens' HostProperties (Maybe Text)-hpInstanceType = lens _hpInstanceType (\ s a -> s{_hpInstanceType = a});---- | The number of vCPUs on the Dedicated host.-hpTotalVCPUs :: Lens' HostProperties (Maybe Int)-hpTotalVCPUs = lens _hpTotalVCPUs (\ s a -> s{_hpTotalVCPUs = a});---- | The number of cores on the Dedicated host.-hpCores :: Lens' HostProperties (Maybe Int)-hpCores = lens _hpCores (\ s a -> s{_hpCores = a});---- | The number of sockets on the Dedicated host.-hpSockets :: Lens' HostProperties (Maybe Int)-hpSockets = lens _hpSockets (\ s a -> s{_hpSockets = a});--instance FromXML HostProperties where-        parseXML x-          = HostProperties' <$>-              (x .@? "instanceType") <*> (x .@? "totalVCpus") <*>-                (x .@? "cores")-                <*> (x .@? "sockets")---- | Describes an IAM instance profile.------ /See:/ 'iamInstanceProfile' smart constructor.-data IAMInstanceProfile = IAMInstanceProfile'-    { _iapARN :: !(Maybe Text)-    , _iapId  :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'IAMInstanceProfile' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iapARN'------ * 'iapId'-iamInstanceProfile-    :: IAMInstanceProfile-iamInstanceProfile =-    IAMInstanceProfile'-    { _iapARN = Nothing-    , _iapId = Nothing-    }---- | The Amazon Resource Name (ARN) of the instance profile.-iapARN :: Lens' IAMInstanceProfile (Maybe Text)-iapARN = lens _iapARN (\ s a -> s{_iapARN = a});---- | The ID of the instance profile.-iapId :: Lens' IAMInstanceProfile (Maybe Text)-iapId = lens _iapId (\ s a -> s{_iapId = a});--instance FromXML IAMInstanceProfile where-        parseXML x-          = IAMInstanceProfile' <$>-              (x .@? "arn") <*> (x .@? "id")---- | Describes an IAM instance profile.------ /See:/ 'iamInstanceProfileSpecification' smart constructor.-data IAMInstanceProfileSpecification = IAMInstanceProfileSpecification'-    { _iapsARN  :: !(Maybe Text)-    , _iapsName :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'IAMInstanceProfileSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iapsARN'------ * 'iapsName'-iamInstanceProfileSpecification-    :: IAMInstanceProfileSpecification-iamInstanceProfileSpecification =-    IAMInstanceProfileSpecification'-    { _iapsARN = Nothing-    , _iapsName = Nothing-    }---- | The Amazon Resource Name (ARN) of the instance profile.-iapsARN :: Lens' IAMInstanceProfileSpecification (Maybe Text)-iapsARN = lens _iapsARN (\ s a -> s{_iapsARN = a});---- | The name of the instance profile.-iapsName :: Lens' IAMInstanceProfileSpecification (Maybe Text)-iapsName = lens _iapsName (\ s a -> s{_iapsName = a});--instance FromXML IAMInstanceProfileSpecification-         where-        parseXML x-          = IAMInstanceProfileSpecification' <$>-              (x .@? "arn") <*> (x .@? "name")--instance ToQuery IAMInstanceProfileSpecification-         where-        toQuery IAMInstanceProfileSpecification'{..}-          = mconcat ["Arn" =: _iapsARN, "Name" =: _iapsName]---- | Describes the ICMP type and code.------ /See:/ 'icmpTypeCode' smart constructor.-data ICMPTypeCode = ICMPTypeCode'-    { _itcCode :: !(Maybe Int)-    , _itcType :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ICMPTypeCode' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'itcCode'------ * 'itcType'-icmpTypeCode-    :: ICMPTypeCode-icmpTypeCode =-    ICMPTypeCode'-    { _itcCode = Nothing-    , _itcType = Nothing-    }---- | The ICMP type. A value of -1 means all types.-itcCode :: Lens' ICMPTypeCode (Maybe Int)-itcCode = lens _itcCode (\ s a -> s{_itcCode = a});---- | The ICMP code. A value of -1 means all codes for the specified ICMP--- type.-itcType :: Lens' ICMPTypeCode (Maybe Int)-itcType = lens _itcType (\ s a -> s{_itcType = a});--instance FromXML ICMPTypeCode where-        parseXML x-          = ICMPTypeCode' <$> (x .@? "code") <*> (x .@? "type")--instance ToQuery ICMPTypeCode where-        toQuery ICMPTypeCode'{..}-          = mconcat ["Code" =: _itcCode, "Type" =: _itcType]---- | Describes a security group rule.------ /See:/ 'ipPermission' smart constructor.-data IPPermission = IPPermission'-    { _ipFromPort         :: !(Maybe Int)-    , _ipUserIdGroupPairs :: !(Maybe [UserIdGroupPair])-    , _ipPrefixListIds    :: !(Maybe [PrefixListId])-    , _ipToPort           :: !(Maybe Int)-    , _ipIPRanges         :: !(Maybe [IPRange])-    , _ipIPProtocol       :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'IPPermission' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ipFromPort'------ * 'ipUserIdGroupPairs'------ * 'ipPrefixListIds'------ * 'ipToPort'------ * 'ipIPRanges'------ * 'ipIPProtocol'-ipPermission-    :: Text -- ^ 'ipIPProtocol'-    -> IPPermission-ipPermission pIPProtocol_ =-    IPPermission'-    { _ipFromPort = Nothing-    , _ipUserIdGroupPairs = Nothing-    , _ipPrefixListIds = Nothing-    , _ipToPort = Nothing-    , _ipIPRanges = Nothing-    , _ipIPProtocol = pIPProtocol_-    }---- | The start of port range for the TCP and UDP protocols, or an ICMP type--- number. A value of '-1' indicates all ICMP types.-ipFromPort :: Lens' IPPermission (Maybe Int)-ipFromPort = lens _ipFromPort (\ s a -> s{_ipFromPort = a});---- | One or more security group and AWS account ID pairs.-ipUserIdGroupPairs :: Lens' IPPermission [UserIdGroupPair]-ipUserIdGroupPairs = lens _ipUserIdGroupPairs (\ s a -> s{_ipUserIdGroupPairs = a}) . _Default . _Coerce;---- | (Valid for AuthorizeSecurityGroupEgress, RevokeSecurityGroupEgress and--- DescribeSecurityGroups only) One or more prefix list IDs for an AWS--- service. In an AuthorizeSecurityGroupEgress request, this is the AWS--- service that you want to access through a VPC endpoint from instances--- associated with the security group.-ipPrefixListIds :: Lens' IPPermission [PrefixListId]-ipPrefixListIds = lens _ipPrefixListIds (\ s a -> s{_ipPrefixListIds = a}) . _Default . _Coerce;---- | The end of port range for the TCP and UDP protocols, or an ICMP code. A--- value of '-1' indicates all ICMP codes for the specified ICMP type.-ipToPort :: Lens' IPPermission (Maybe Int)-ipToPort = lens _ipToPort (\ s a -> s{_ipToPort = a});---- | One or more IP ranges.-ipIPRanges :: Lens' IPPermission [IPRange]-ipIPRanges = lens _ipIPRanges (\ s a -> s{_ipIPRanges = a}) . _Default . _Coerce;---- | The IP protocol name (for 'tcp', 'udp', and 'icmp') or number (see--- <http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml Protocol Numbers>).------ [EC2-VPC only] When you authorize or revoke security group rules, you--- can use '-1' to specify all.-ipIPProtocol :: Lens' IPPermission Text-ipIPProtocol = lens _ipIPProtocol (\ s a -> s{_ipIPProtocol = a});--instance FromXML IPPermission where-        parseXML x-          = IPPermission' <$>-              (x .@? "fromPort") <*>-                (x .@? "groups" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "prefixListIds" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "toPort")-                <*>-                (x .@? "ipRanges" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@ "ipProtocol")--instance ToQuery IPPermission where-        toQuery IPPermission'{..}-          = mconcat-              ["FromPort" =: _ipFromPort,-               toQuery-                 (toQueryList "Groups" <$> _ipUserIdGroupPairs),-               toQuery-                 (toQueryList "PrefixListIds" <$> _ipPrefixListIds),-               "ToPort" =: _ipToPort,-               toQuery (toQueryList "IpRanges" <$> _ipIPRanges),-               "IpProtocol" =: _ipIPProtocol]---- | Describes an IP range.------ /See:/ 'ipRange' smart constructor.-newtype IPRange = IPRange'-    { _irCIdRIP :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'IPRange' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'irCIdRIP'-ipRange-    :: Text -- ^ 'irCIdRIP'-    -> IPRange-ipRange pCIdRIP_ =-    IPRange'-    { _irCIdRIP = pCIdRIP_-    }---- | The CIDR range. You can either specify a CIDR range or a source security--- group, not both.-irCIdRIP :: Lens' IPRange Text-irCIdRIP = lens _irCIdRIP (\ s a -> s{_irCIdRIP = a});--instance FromXML IPRange where-        parseXML x = IPRange' <$> (x .@ "cidrIp")--instance ToQuery IPRange where-        toQuery IPRange'{..}-          = mconcat ["CidrIp" =: _irCIdRIP]---- | Describes the ID format for a resource.------ /See:/ 'idFormat' smart constructor.-data IdFormat = IdFormat'-    { _ifUseLongIds :: !(Maybe Bool)-    , _ifDeadline   :: !(Maybe ISO8601)-    , _ifResource   :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'IdFormat' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ifUseLongIds'------ * 'ifDeadline'------ * 'ifResource'-idFormat-    :: IdFormat-idFormat =-    IdFormat'-    { _ifUseLongIds = Nothing-    , _ifDeadline = Nothing-    , _ifResource = Nothing-    }---- | Indicates whether longer IDs (17-character IDs) are enabled for the--- resource.-ifUseLongIds :: Lens' IdFormat (Maybe Bool)-ifUseLongIds = lens _ifUseLongIds (\ s a -> s{_ifUseLongIds = a});---- | The date in UTC at which you are permanently switched over to using--- longer IDs.-ifDeadline :: Lens' IdFormat (Maybe UTCTime)-ifDeadline = lens _ifDeadline (\ s a -> s{_ifDeadline = a}) . mapping _Time;---- | The type of resource.-ifResource :: Lens' IdFormat (Maybe Text)-ifResource = lens _ifResource (\ s a -> s{_ifResource = a});--instance FromXML IdFormat where-        parseXML x-          = IdFormat' <$>-              (x .@? "useLongIds") <*> (x .@? "deadline") <*>-                (x .@? "resource")---- | Describes an image.------ /See:/ 'image' smart constructor.-data Image = Image'-    { _iPlatform            :: !(Maybe PlatformValues)-    , _iImageOwnerAlias     :: !(Maybe Text)-    , _iRAMDiskId           :: !(Maybe Text)-    , _iKernelId            :: !(Maybe Text)-    , _iRootDeviceName      :: !(Maybe Text)-    , _iSRIOVNetSupport     :: !(Maybe Text)-    , _iName                :: !(Maybe Text)-    , _iCreationDate        :: !(Maybe Text)-    , _iProductCodes        :: !(Maybe [ProductCode])-    , _iStateReason         :: !(Maybe StateReason)-    , _iDescription         :: !(Maybe Text)-    , _iBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])-    , _iTags                :: !(Maybe [Tag])-    , _iImageId             :: !Text-    , _iImageLocation       :: !Text-    , _iState               :: !ImageState-    , _iOwnerId             :: !Text-    , _iPublic              :: !Bool-    , _iArchitecture        :: !ArchitectureValues-    , _iImageType           :: !ImageTypeValues-    , _iRootDeviceType      :: !DeviceType-    , _iVirtualizationType  :: !VirtualizationType-    , _iHypervisor          :: !HypervisorType-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Image' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iPlatform'------ * 'iImageOwnerAlias'------ * 'iRAMDiskId'------ * 'iKernelId'------ * 'iRootDeviceName'------ * 'iSRIOVNetSupport'------ * 'iName'------ * 'iCreationDate'------ * 'iProductCodes'------ * 'iStateReason'------ * 'iDescription'------ * 'iBlockDeviceMappings'------ * 'iTags'------ * 'iImageId'------ * 'iImageLocation'------ * 'iState'------ * 'iOwnerId'------ * 'iPublic'------ * 'iArchitecture'------ * 'iImageType'------ * 'iRootDeviceType'------ * 'iVirtualizationType'------ * 'iHypervisor'-image-    :: Text -- ^ 'iImageId'-    -> Text -- ^ 'iImageLocation'-    -> ImageState -- ^ 'iState'-    -> Text -- ^ 'iOwnerId'-    -> Bool -- ^ 'iPublic'-    -> ArchitectureValues -- ^ 'iArchitecture'-    -> ImageTypeValues -- ^ 'iImageType'-    -> DeviceType -- ^ 'iRootDeviceType'-    -> VirtualizationType -- ^ 'iVirtualizationType'-    -> HypervisorType -- ^ 'iHypervisor'-    -> Image-image pImageId_ pImageLocation_ pState_ pOwnerId_ pPublic_ pArchitecture_ pImageType_ pRootDeviceType_ pVirtualizationType_ pHypervisor_ =-    Image'-    { _iPlatform = Nothing-    , _iImageOwnerAlias = Nothing-    , _iRAMDiskId = Nothing-    , _iKernelId = Nothing-    , _iRootDeviceName = Nothing-    , _iSRIOVNetSupport = Nothing-    , _iName = Nothing-    , _iCreationDate = Nothing-    , _iProductCodes = Nothing-    , _iStateReason = Nothing-    , _iDescription = Nothing-    , _iBlockDeviceMappings = Nothing-    , _iTags = Nothing-    , _iImageId = pImageId_-    , _iImageLocation = pImageLocation_-    , _iState = pState_-    , _iOwnerId = pOwnerId_-    , _iPublic = pPublic_-    , _iArchitecture = pArchitecture_-    , _iImageType = pImageType_-    , _iRootDeviceType = pRootDeviceType_-    , _iVirtualizationType = pVirtualizationType_-    , _iHypervisor = pHypervisor_-    }---- | The value is 'Windows' for Windows AMIs; otherwise blank.-iPlatform :: Lens' Image (Maybe PlatformValues)-iPlatform = lens _iPlatform (\ s a -> s{_iPlatform = a});---- | The AWS account alias (for example, 'amazon', 'self') or the AWS account--- ID of the AMI owner.-iImageOwnerAlias :: Lens' Image (Maybe Text)-iImageOwnerAlias = lens _iImageOwnerAlias (\ s a -> s{_iImageOwnerAlias = a});---- | The RAM disk associated with the image, if any. Only applicable for--- machine images.-iRAMDiskId :: Lens' Image (Maybe Text)-iRAMDiskId = lens _iRAMDiskId (\ s a -> s{_iRAMDiskId = a});---- | The kernel associated with the image, if any. Only applicable for--- machine images.-iKernelId :: Lens' Image (Maybe Text)-iKernelId = lens _iKernelId (\ s a -> s{_iKernelId = a});---- | The device name of the root device (for example, '\/dev\/sda1' or--- '\/dev\/xvda').-iRootDeviceName :: Lens' Image (Maybe Text)-iRootDeviceName = lens _iRootDeviceName (\ s a -> s{_iRootDeviceName = a});---- | Specifies whether enhanced networking is enabled.-iSRIOVNetSupport :: Lens' Image (Maybe Text)-iSRIOVNetSupport = lens _iSRIOVNetSupport (\ s a -> s{_iSRIOVNetSupport = a});---- | The name of the AMI that was provided during image creation.-iName :: Lens' Image (Maybe Text)-iName = lens _iName (\ s a -> s{_iName = a});---- | The date and time the image was created.-iCreationDate :: Lens' Image (Maybe Text)-iCreationDate = lens _iCreationDate (\ s a -> s{_iCreationDate = a});---- | Any product codes associated with the AMI.-iProductCodes :: Lens' Image [ProductCode]-iProductCodes = lens _iProductCodes (\ s a -> s{_iProductCodes = a}) . _Default . _Coerce;---- | The reason for the state change.-iStateReason :: Lens' Image (Maybe StateReason)-iStateReason = lens _iStateReason (\ s a -> s{_iStateReason = a});---- | The description of the AMI that was provided during image creation.-iDescription :: Lens' Image (Maybe Text)-iDescription = lens _iDescription (\ s a -> s{_iDescription = a});---- | Any block device mapping entries.-iBlockDeviceMappings :: Lens' Image [BlockDeviceMapping]-iBlockDeviceMappings = lens _iBlockDeviceMappings (\ s a -> s{_iBlockDeviceMappings = a}) . _Default . _Coerce;---- | Any tags assigned to the image.-iTags :: Lens' Image [Tag]-iTags = lens _iTags (\ s a -> s{_iTags = a}) . _Default . _Coerce;---- | The ID of the AMI.-iImageId :: Lens' Image Text-iImageId = lens _iImageId (\ s a -> s{_iImageId = a});---- | The location of the AMI.-iImageLocation :: Lens' Image Text-iImageLocation = lens _iImageLocation (\ s a -> s{_iImageLocation = a});---- | The current state of the AMI. If the state is 'available', the image is--- successfully registered and can be used to launch an instance.-iState :: Lens' Image ImageState-iState = lens _iState (\ s a -> s{_iState = a});---- | The AWS account ID of the image owner.-iOwnerId :: Lens' Image Text-iOwnerId = lens _iOwnerId (\ s a -> s{_iOwnerId = a});---- | Indicates whether the image has public launch permissions. The value is--- 'true' if this image has public launch permissions or 'false' if it has--- only implicit and explicit launch permissions.-iPublic :: Lens' Image Bool-iPublic = lens _iPublic (\ s a -> s{_iPublic = a});---- | The architecture of the image.-iArchitecture :: Lens' Image ArchitectureValues-iArchitecture = lens _iArchitecture (\ s a -> s{_iArchitecture = a});---- | The type of image.-iImageType :: Lens' Image ImageTypeValues-iImageType = lens _iImageType (\ s a -> s{_iImageType = a});---- | The type of root device used by the AMI. The AMI can use an EBS volume--- or an instance store volume.-iRootDeviceType :: Lens' Image DeviceType-iRootDeviceType = lens _iRootDeviceType (\ s a -> s{_iRootDeviceType = a});---- | The type of virtualization of the AMI.-iVirtualizationType :: Lens' Image VirtualizationType-iVirtualizationType = lens _iVirtualizationType (\ s a -> s{_iVirtualizationType = a});---- | The hypervisor type of the image.-iHypervisor :: Lens' Image HypervisorType-iHypervisor = lens _iHypervisor (\ s a -> s{_iHypervisor = a});--instance FromXML Image where-        parseXML x-          = Image' <$>-              (x .@? "platform") <*> (x .@? "imageOwnerAlias") <*>-                (x .@? "ramdiskId")-                <*> (x .@? "kernelId")-                <*> (x .@? "rootDeviceName")-                <*> (x .@? "sriovNetSupport")-                <*> (x .@? "name")-                <*> (x .@? "creationDate")-                <*>-                (x .@? "productCodes" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "stateReason")-                <*> (x .@? "description")-                <*>-                (x .@? "blockDeviceMapping" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@ "imageId")-                <*> (x .@ "imageLocation")-                <*> (x .@ "imageState")-                <*> (x .@ "imageOwnerId")-                <*> (x .@ "isPublic")-                <*> (x .@ "architecture")-                <*> (x .@ "imageType")-                <*> (x .@ "rootDeviceType")-                <*> (x .@ "virtualizationType")-                <*> (x .@ "hypervisor")---- | Describes the disk container object for an import image task.------ /See:/ 'imageDiskContainer' smart constructor.-data ImageDiskContainer = ImageDiskContainer'-    { _idcFormat      :: !(Maybe Text)-    , _idcURL         :: !(Maybe Text)-    , _idcDeviceName  :: !(Maybe Text)-    , _idcUserBucket  :: !(Maybe UserBucket)-    , _idcDescription :: !(Maybe Text)-    , _idcSnapshotId  :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ImageDiskContainer' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'idcFormat'------ * 'idcURL'------ * 'idcDeviceName'------ * 'idcUserBucket'------ * 'idcDescription'------ * 'idcSnapshotId'-imageDiskContainer-    :: ImageDiskContainer-imageDiskContainer =-    ImageDiskContainer'-    { _idcFormat = Nothing-    , _idcURL = Nothing-    , _idcDeviceName = Nothing-    , _idcUserBucket = Nothing-    , _idcDescription = Nothing-    , _idcSnapshotId = Nothing-    }---- | The format of the disk image being imported.------ Valid values: 'RAW' | 'VHD' | 'VMDK' | 'OVA'-idcFormat :: Lens' ImageDiskContainer (Maybe Text)-idcFormat = lens _idcFormat (\ s a -> s{_idcFormat = a});---- | The URL to the Amazon S3-based disk image being imported. The URL can--- either be a https URL (https:\/\/..) or an Amazon S3 URL (s3:\/\/..)-idcURL :: Lens' ImageDiskContainer (Maybe Text)-idcURL = lens _idcURL (\ s a -> s{_idcURL = a});---- | The block device mapping for the disk.-idcDeviceName :: Lens' ImageDiskContainer (Maybe Text)-idcDeviceName = lens _idcDeviceName (\ s a -> s{_idcDeviceName = a});---- | The S3 bucket for the disk image.-idcUserBucket :: Lens' ImageDiskContainer (Maybe UserBucket)-idcUserBucket = lens _idcUserBucket (\ s a -> s{_idcUserBucket = a});---- | The description of the disk image.-idcDescription :: Lens' ImageDiskContainer (Maybe Text)-idcDescription = lens _idcDescription (\ s a -> s{_idcDescription = a});---- | The ID of the EBS snapshot to be used for importing the snapshot.-idcSnapshotId :: Lens' ImageDiskContainer (Maybe Text)-idcSnapshotId = lens _idcSnapshotId (\ s a -> s{_idcSnapshotId = a});--instance ToQuery ImageDiskContainer where-        toQuery ImageDiskContainer'{..}-          = mconcat-              ["Format" =: _idcFormat, "Url" =: _idcURL,-               "DeviceName" =: _idcDeviceName,-               "UserBucket" =: _idcUserBucket,-               "Description" =: _idcDescription,-               "SnapshotId" =: _idcSnapshotId]---- | Describes an import image task.------ /See:/ 'importImageTask' smart constructor.-data ImportImageTask = ImportImageTask'-    { _iitStatus          :: !(Maybe Text)-    , _iitHypervisor      :: !(Maybe Text)-    , _iitPlatform        :: !(Maybe Text)-    , _iitProgress        :: !(Maybe Text)-    , _iitLicenseType     :: !(Maybe Text)-    , _iitSnapshotDetails :: !(Maybe [SnapshotDetail])-    , _iitStatusMessage   :: !(Maybe Text)-    , _iitImageId         :: !(Maybe Text)-    , _iitImportTaskId    :: !(Maybe Text)-    , _iitArchitecture    :: !(Maybe Text)-    , _iitDescription     :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ImportImageTask' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iitStatus'------ * 'iitHypervisor'------ * 'iitPlatform'------ * 'iitProgress'------ * 'iitLicenseType'------ * 'iitSnapshotDetails'------ * 'iitStatusMessage'------ * 'iitImageId'------ * 'iitImportTaskId'------ * 'iitArchitecture'------ * 'iitDescription'-importImageTask-    :: ImportImageTask-importImageTask =-    ImportImageTask'-    { _iitStatus = Nothing-    , _iitHypervisor = Nothing-    , _iitPlatform = Nothing-    , _iitProgress = Nothing-    , _iitLicenseType = Nothing-    , _iitSnapshotDetails = Nothing-    , _iitStatusMessage = Nothing-    , _iitImageId = Nothing-    , _iitImportTaskId = Nothing-    , _iitArchitecture = Nothing-    , _iitDescription = Nothing-    }---- | A brief status for the import image task.-iitStatus :: Lens' ImportImageTask (Maybe Text)-iitStatus = lens _iitStatus (\ s a -> s{_iitStatus = a});---- | The target hypervisor for the import task.------ Valid values: 'xen'-iitHypervisor :: Lens' ImportImageTask (Maybe Text)-iitHypervisor = lens _iitHypervisor (\ s a -> s{_iitHypervisor = a});---- | The description string for the import image task.-iitPlatform :: Lens' ImportImageTask (Maybe Text)-iitPlatform = lens _iitPlatform (\ s a -> s{_iitPlatform = a});---- | The percentage of progress of the import image task.-iitProgress :: Lens' ImportImageTask (Maybe Text)-iitProgress = lens _iitProgress (\ s a -> s{_iitProgress = a});---- | The license type of the virtual machine.-iitLicenseType :: Lens' ImportImageTask (Maybe Text)-iitLicenseType = lens _iitLicenseType (\ s a -> s{_iitLicenseType = a});---- | Information about the snapshots.-iitSnapshotDetails :: Lens' ImportImageTask [SnapshotDetail]-iitSnapshotDetails = lens _iitSnapshotDetails (\ s a -> s{_iitSnapshotDetails = a}) . _Default . _Coerce;---- | A descriptive status message for the import image task.-iitStatusMessage :: Lens' ImportImageTask (Maybe Text)-iitStatusMessage = lens _iitStatusMessage (\ s a -> s{_iitStatusMessage = a});---- | The ID of the Amazon Machine Image (AMI) of the imported virtual--- machine.-iitImageId :: Lens' ImportImageTask (Maybe Text)-iitImageId = lens _iitImageId (\ s a -> s{_iitImageId = a});---- | The ID of the import image task.-iitImportTaskId :: Lens' ImportImageTask (Maybe Text)-iitImportTaskId = lens _iitImportTaskId (\ s a -> s{_iitImportTaskId = a});---- | The architecture of the virtual machine.------ Valid values: 'i386' | 'x86_64'-iitArchitecture :: Lens' ImportImageTask (Maybe Text)-iitArchitecture = lens _iitArchitecture (\ s a -> s{_iitArchitecture = a});---- | A description of the import task.-iitDescription :: Lens' ImportImageTask (Maybe Text)-iitDescription = lens _iitDescription (\ s a -> s{_iitDescription = a});--instance FromXML ImportImageTask where-        parseXML x-          = ImportImageTask' <$>-              (x .@? "status") <*> (x .@? "hypervisor") <*>-                (x .@? "platform")-                <*> (x .@? "progress")-                <*> (x .@? "licenseType")-                <*>-                (x .@? "snapshotDetailSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "statusMessage")-                <*> (x .@? "imageId")-                <*> (x .@? "importTaskId")-                <*> (x .@? "architecture")-                <*> (x .@? "description")---- | Describes the launch specification for VM import.------ /See:/ 'importInstanceLaunchSpecification' smart constructor.-data ImportInstanceLaunchSpecification = ImportInstanceLaunchSpecification'-    { _iilsAdditionalInfo                    :: !(Maybe Text)-    , _iilsGroupNames                        :: !(Maybe [Text])-    , _iilsSubnetId                          :: !(Maybe Text)-    , _iilsInstanceType                      :: !(Maybe InstanceType)-    , _iilsGroupIds                          :: !(Maybe [Text])-    , _iilsUserData                          :: !(Maybe UserData)-    , _iilsMonitoring                        :: !(Maybe Bool)-    , _iilsPrivateIPAddress                  :: !(Maybe Text)-    , _iilsInstanceInitiatedShutdownBehavior :: !(Maybe ShutdownBehavior)-    , _iilsArchitecture                      :: !(Maybe ArchitectureValues)-    , _iilsPlacement                         :: !(Maybe Placement)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ImportInstanceLaunchSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iilsAdditionalInfo'------ * 'iilsGroupNames'------ * 'iilsSubnetId'------ * 'iilsInstanceType'------ * 'iilsGroupIds'------ * 'iilsUserData'------ * 'iilsMonitoring'------ * 'iilsPrivateIPAddress'------ * 'iilsInstanceInitiatedShutdownBehavior'------ * 'iilsArchitecture'------ * 'iilsPlacement'-importInstanceLaunchSpecification-    :: ImportInstanceLaunchSpecification-importInstanceLaunchSpecification =-    ImportInstanceLaunchSpecification'-    { _iilsAdditionalInfo = Nothing-    , _iilsGroupNames = Nothing-    , _iilsSubnetId = Nothing-    , _iilsInstanceType = Nothing-    , _iilsGroupIds = Nothing-    , _iilsUserData = Nothing-    , _iilsMonitoring = Nothing-    , _iilsPrivateIPAddress = Nothing-    , _iilsInstanceInitiatedShutdownBehavior = Nothing-    , _iilsArchitecture = Nothing-    , _iilsPlacement = Nothing-    }---- | Reserved.-iilsAdditionalInfo :: Lens' ImportInstanceLaunchSpecification (Maybe Text)-iilsAdditionalInfo = lens _iilsAdditionalInfo (\ s a -> s{_iilsAdditionalInfo = a});---- | One or more security group names.-iilsGroupNames :: Lens' ImportInstanceLaunchSpecification [Text]-iilsGroupNames = lens _iilsGroupNames (\ s a -> s{_iilsGroupNames = a}) . _Default . _Coerce;---- | [EC2-VPC] The ID of the subnet in which to launch the instance.-iilsSubnetId :: Lens' ImportInstanceLaunchSpecification (Maybe Text)-iilsSubnetId = lens _iilsSubnetId (\ s a -> s{_iilsSubnetId = a});---- | The instance type. For more information about the instance types that--- you can import, see--- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/VMImportPrerequisites.html Before You Get Started>--- in the Amazon Elastic Compute Cloud User Guide.-iilsInstanceType :: Lens' ImportInstanceLaunchSpecification (Maybe InstanceType)-iilsInstanceType = lens _iilsInstanceType (\ s a -> s{_iilsInstanceType = a});---- | One or more security group IDs.-iilsGroupIds :: Lens' ImportInstanceLaunchSpecification [Text]-iilsGroupIds = lens _iilsGroupIds (\ s a -> s{_iilsGroupIds = a}) . _Default . _Coerce;---- | The Base64-encoded MIME user data to be made available to the instance.-iilsUserData :: Lens' ImportInstanceLaunchSpecification (Maybe UserData)-iilsUserData = lens _iilsUserData (\ s a -> s{_iilsUserData = a});---- | Indicates whether monitoring is enabled.-iilsMonitoring :: Lens' ImportInstanceLaunchSpecification (Maybe Bool)-iilsMonitoring = lens _iilsMonitoring (\ s a -> s{_iilsMonitoring = a});---- | [EC2-VPC] An available IP address from the IP address range of the--- subnet.-iilsPrivateIPAddress :: Lens' ImportInstanceLaunchSpecification (Maybe Text)-iilsPrivateIPAddress = lens _iilsPrivateIPAddress (\ s a -> s{_iilsPrivateIPAddress = a});---- | Indicates whether an instance stops or terminates when you initiate--- shutdown from the instance (using the operating system command for--- system shutdown).-iilsInstanceInitiatedShutdownBehavior :: Lens' ImportInstanceLaunchSpecification (Maybe ShutdownBehavior)-iilsInstanceInitiatedShutdownBehavior = lens _iilsInstanceInitiatedShutdownBehavior (\ s a -> s{_iilsInstanceInitiatedShutdownBehavior = a});---- | The architecture of the instance.-iilsArchitecture :: Lens' ImportInstanceLaunchSpecification (Maybe ArchitectureValues)-iilsArchitecture = lens _iilsArchitecture (\ s a -> s{_iilsArchitecture = a});---- | The placement information for the instance.-iilsPlacement :: Lens' ImportInstanceLaunchSpecification (Maybe Placement)-iilsPlacement = lens _iilsPlacement (\ s a -> s{_iilsPlacement = a});--instance ToQuery ImportInstanceLaunchSpecification-         where-        toQuery ImportInstanceLaunchSpecification'{..}-          = mconcat-              ["AdditionalInfo" =: _iilsAdditionalInfo,-               toQuery-                 (toQueryList "GroupName" <$> _iilsGroupNames),-               "SubnetId" =: _iilsSubnetId,-               "InstanceType" =: _iilsInstanceType,-               toQuery (toQueryList "GroupId" <$> _iilsGroupIds),-               "UserData" =: _iilsUserData,-               "Monitoring" =: _iilsMonitoring,-               "PrivateIpAddress" =: _iilsPrivateIPAddress,-               "InstanceInitiatedShutdownBehavior" =:-                 _iilsInstanceInitiatedShutdownBehavior,-               "Architecture" =: _iilsArchitecture,-               "Placement" =: _iilsPlacement]---- | Describes an import instance task.------ /See:/ 'importInstanceTaskDetails' smart constructor.-data ImportInstanceTaskDetails = ImportInstanceTaskDetails'-    { _iitdInstanceId  :: !(Maybe Text)-    , _iitdPlatform    :: !(Maybe PlatformValues)-    , _iitdDescription :: !(Maybe Text)-    , _iitdVolumes     :: ![ImportInstanceVolumeDetailItem]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ImportInstanceTaskDetails' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iitdInstanceId'------ * 'iitdPlatform'------ * 'iitdDescription'------ * 'iitdVolumes'-importInstanceTaskDetails-    :: ImportInstanceTaskDetails-importInstanceTaskDetails =-    ImportInstanceTaskDetails'-    { _iitdInstanceId = Nothing-    , _iitdPlatform = Nothing-    , _iitdDescription = Nothing-    , _iitdVolumes = mempty-    }---- | The ID of the instance.-iitdInstanceId :: Lens' ImportInstanceTaskDetails (Maybe Text)-iitdInstanceId = lens _iitdInstanceId (\ s a -> s{_iitdInstanceId = a});---- | The instance operating system.-iitdPlatform :: Lens' ImportInstanceTaskDetails (Maybe PlatformValues)-iitdPlatform = lens _iitdPlatform (\ s a -> s{_iitdPlatform = a});---- | A description of the task.-iitdDescription :: Lens' ImportInstanceTaskDetails (Maybe Text)-iitdDescription = lens _iitdDescription (\ s a -> s{_iitdDescription = a});---- | One or more volumes.-iitdVolumes :: Lens' ImportInstanceTaskDetails [ImportInstanceVolumeDetailItem]-iitdVolumes = lens _iitdVolumes (\ s a -> s{_iitdVolumes = a}) . _Coerce;--instance FromXML ImportInstanceTaskDetails where-        parseXML x-          = ImportInstanceTaskDetails' <$>-              (x .@? "instanceId") <*> (x .@? "platform") <*>-                (x .@? "description")-                <*>-                (x .@? "volumes" .!@ mempty >>= parseXMLList "item")---- | Describes an import volume task.------ /See:/ 'importInstanceVolumeDetailItem' smart constructor.-data ImportInstanceVolumeDetailItem = ImportInstanceVolumeDetailItem'-    { _iivdiStatusMessage    :: !(Maybe Text)-    , _iivdiDescription      :: !(Maybe Text)-    , _iivdiBytesConverted   :: !Integer-    , _iivdiAvailabilityZone :: !Text-    , _iivdiImage            :: !DiskImageDescription-    , _iivdiVolume           :: !DiskImageVolumeDescription-    , _iivdiStatus           :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ImportInstanceVolumeDetailItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iivdiStatusMessage'------ * 'iivdiDescription'------ * 'iivdiBytesConverted'------ * 'iivdiAvailabilityZone'------ * 'iivdiImage'------ * 'iivdiVolume'------ * 'iivdiStatus'-importInstanceVolumeDetailItem-    :: Integer -- ^ 'iivdiBytesConverted'-    -> Text -- ^ 'iivdiAvailabilityZone'-    -> DiskImageDescription -- ^ 'iivdiImage'-    -> DiskImageVolumeDescription -- ^ 'iivdiVolume'-    -> Text -- ^ 'iivdiStatus'-    -> ImportInstanceVolumeDetailItem-importInstanceVolumeDetailItem pBytesConverted_ pAvailabilityZone_ pImage_ pVolume_ pStatus_ =-    ImportInstanceVolumeDetailItem'-    { _iivdiStatusMessage = Nothing-    , _iivdiDescription = Nothing-    , _iivdiBytesConverted = pBytesConverted_-    , _iivdiAvailabilityZone = pAvailabilityZone_-    , _iivdiImage = pImage_-    , _iivdiVolume = pVolume_-    , _iivdiStatus = pStatus_-    }---- | The status information or errors related to the disk image.-iivdiStatusMessage :: Lens' ImportInstanceVolumeDetailItem (Maybe Text)-iivdiStatusMessage = lens _iivdiStatusMessage (\ s a -> s{_iivdiStatusMessage = a});---- | A description of the task.-iivdiDescription :: Lens' ImportInstanceVolumeDetailItem (Maybe Text)-iivdiDescription = lens _iivdiDescription (\ s a -> s{_iivdiDescription = a});---- | The number of bytes converted so far.-iivdiBytesConverted :: Lens' ImportInstanceVolumeDetailItem Integer-iivdiBytesConverted = lens _iivdiBytesConverted (\ s a -> s{_iivdiBytesConverted = a});---- | The Availability Zone where the resulting instance will reside.-iivdiAvailabilityZone :: Lens' ImportInstanceVolumeDetailItem Text-iivdiAvailabilityZone = lens _iivdiAvailabilityZone (\ s a -> s{_iivdiAvailabilityZone = a});---- | The image.-iivdiImage :: Lens' ImportInstanceVolumeDetailItem DiskImageDescription-iivdiImage = lens _iivdiImage (\ s a -> s{_iivdiImage = a});---- | The volume.-iivdiVolume :: Lens' ImportInstanceVolumeDetailItem DiskImageVolumeDescription-iivdiVolume = lens _iivdiVolume (\ s a -> s{_iivdiVolume = a});---- | The status of the import of this particular disk image.-iivdiStatus :: Lens' ImportInstanceVolumeDetailItem Text-iivdiStatus = lens _iivdiStatus (\ s a -> s{_iivdiStatus = a});--instance FromXML ImportInstanceVolumeDetailItem where-        parseXML x-          = ImportInstanceVolumeDetailItem' <$>-              (x .@? "statusMessage") <*> (x .@? "description") <*>-                (x .@ "bytesConverted")-                <*> (x .@ "availabilityZone")-                <*> (x .@ "image")-                <*> (x .@ "volume")-                <*> (x .@ "status")---- | Describes an import snapshot task.------ /See:/ 'importSnapshotTask' smart constructor.-data ImportSnapshotTask = ImportSnapshotTask'-    { _istSnapshotTaskDetail :: !(Maybe SnapshotTaskDetail)-    , _istImportTaskId       :: !(Maybe Text)-    , _istDescription        :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ImportSnapshotTask' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'istSnapshotTaskDetail'------ * 'istImportTaskId'------ * 'istDescription'-importSnapshotTask-    :: ImportSnapshotTask-importSnapshotTask =-    ImportSnapshotTask'-    { _istSnapshotTaskDetail = Nothing-    , _istImportTaskId = Nothing-    , _istDescription = Nothing-    }---- | Describes an import snapshot task.-istSnapshotTaskDetail :: Lens' ImportSnapshotTask (Maybe SnapshotTaskDetail)-istSnapshotTaskDetail = lens _istSnapshotTaskDetail (\ s a -> s{_istSnapshotTaskDetail = a});---- | The ID of the import snapshot task.-istImportTaskId :: Lens' ImportSnapshotTask (Maybe Text)-istImportTaskId = lens _istImportTaskId (\ s a -> s{_istImportTaskId = a});---- | A description of the import snapshot task.-istDescription :: Lens' ImportSnapshotTask (Maybe Text)-istDescription = lens _istDescription (\ s a -> s{_istDescription = a});--instance FromXML ImportSnapshotTask where-        parseXML x-          = ImportSnapshotTask' <$>-              (x .@? "snapshotTaskDetail") <*>-                (x .@? "importTaskId")-                <*> (x .@? "description")---- | Describes an import volume task.------ /See:/ 'importVolumeTaskDetails' smart constructor.-data ImportVolumeTaskDetails = ImportVolumeTaskDetails'-    { _ivtdDescription      :: !(Maybe Text)-    , _ivtdBytesConverted   :: !Integer-    , _ivtdAvailabilityZone :: !Text-    , _ivtdImage            :: !DiskImageDescription-    , _ivtdVolume           :: !DiskImageVolumeDescription-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ImportVolumeTaskDetails' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ivtdDescription'------ * 'ivtdBytesConverted'------ * 'ivtdAvailabilityZone'------ * 'ivtdImage'------ * 'ivtdVolume'-importVolumeTaskDetails-    :: Integer -- ^ 'ivtdBytesConverted'-    -> Text -- ^ 'ivtdAvailabilityZone'-    -> DiskImageDescription -- ^ 'ivtdImage'-    -> DiskImageVolumeDescription -- ^ 'ivtdVolume'-    -> ImportVolumeTaskDetails-importVolumeTaskDetails pBytesConverted_ pAvailabilityZone_ pImage_ pVolume_ =-    ImportVolumeTaskDetails'-    { _ivtdDescription = Nothing-    , _ivtdBytesConverted = pBytesConverted_-    , _ivtdAvailabilityZone = pAvailabilityZone_-    , _ivtdImage = pImage_-    , _ivtdVolume = pVolume_-    }---- | The description you provided when starting the import volume task.-ivtdDescription :: Lens' ImportVolumeTaskDetails (Maybe Text)-ivtdDescription = lens _ivtdDescription (\ s a -> s{_ivtdDescription = a});---- | The number of bytes converted so far.-ivtdBytesConverted :: Lens' ImportVolumeTaskDetails Integer-ivtdBytesConverted = lens _ivtdBytesConverted (\ s a -> s{_ivtdBytesConverted = a});---- | The Availability Zone where the resulting volume will reside.-ivtdAvailabilityZone :: Lens' ImportVolumeTaskDetails Text-ivtdAvailabilityZone = lens _ivtdAvailabilityZone (\ s a -> s{_ivtdAvailabilityZone = a});---- | The image.-ivtdImage :: Lens' ImportVolumeTaskDetails DiskImageDescription-ivtdImage = lens _ivtdImage (\ s a -> s{_ivtdImage = a});---- | The volume.-ivtdVolume :: Lens' ImportVolumeTaskDetails DiskImageVolumeDescription-ivtdVolume = lens _ivtdVolume (\ s a -> s{_ivtdVolume = a});--instance FromXML ImportVolumeTaskDetails where-        parseXML x-          = ImportVolumeTaskDetails' <$>-              (x .@? "description") <*> (x .@ "bytesConverted") <*>-                (x .@ "availabilityZone")-                <*> (x .@ "image")-                <*> (x .@ "volume")---- | Describes an instance.------ /See:/ 'instance'' smart constructor.-data Instance = Instance'-    { _insPublicDNSName         :: !(Maybe Text)-    , _insPlatform              :: !(Maybe PlatformValues)-    , _insSecurityGroups        :: !(Maybe [GroupIdentifier])-    , _insClientToken           :: !(Maybe Text)-    , _insSourceDestCheck       :: !(Maybe Bool)-    , _insVPCId                 :: !(Maybe Text)-    , _insKeyName               :: !(Maybe Text)-    , _insNetworkInterfaces     :: !(Maybe [InstanceNetworkInterface])-    , _insRAMDiskId             :: !(Maybe Text)-    , _insSubnetId              :: !(Maybe Text)-    , _insKernelId              :: !(Maybe Text)-    , _insRootDeviceName        :: !(Maybe Text)-    , _insSRIOVNetSupport       :: !(Maybe Text)-    , _insEBSOptimized          :: !(Maybe Bool)-    , _insStateTransitionReason :: !(Maybe Text)-    , _insInstanceLifecycle     :: !(Maybe InstanceLifecycleType)-    , _insIAMInstanceProfile    :: !(Maybe IAMInstanceProfile)-    , _insPrivateIPAddress      :: !(Maybe Text)-    , _insProductCodes          :: !(Maybe [ProductCode])-    , _insSpotInstanceRequestId :: !(Maybe Text)-    , _insPrivateDNSName        :: !(Maybe Text)-    , _insStateReason           :: !(Maybe StateReason)-    , _insBlockDeviceMappings   :: !(Maybe [InstanceBlockDeviceMapping])-    , _insPublicIPAddress       :: !(Maybe Text)-    , _insTags                  :: !(Maybe [Tag])-    , _insInstanceId            :: !Text-    , _insImageId               :: !Text-    , _insAMILaunchIndex        :: !Int-    , _insInstanceType          :: !InstanceType-    , _insLaunchTime            :: !ISO8601-    , _insPlacement             :: !Placement-    , _insMonitoring            :: !Monitoring-    , _insArchitecture          :: !ArchitectureValues-    , _insRootDeviceType        :: !DeviceType-    , _insVirtualizationType    :: !VirtualizationType-    , _insHypervisor            :: !HypervisorType-    , _insState                 :: !InstanceState-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Instance' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'insPublicDNSName'------ * 'insPlatform'------ * 'insSecurityGroups'------ * 'insClientToken'------ * 'insSourceDestCheck'------ * 'insVPCId'------ * 'insKeyName'------ * 'insNetworkInterfaces'------ * 'insRAMDiskId'------ * 'insSubnetId'------ * 'insKernelId'------ * 'insRootDeviceName'------ * 'insSRIOVNetSupport'------ * 'insEBSOptimized'------ * 'insStateTransitionReason'------ * 'insInstanceLifecycle'------ * 'insIAMInstanceProfile'------ * 'insPrivateIPAddress'------ * 'insProductCodes'------ * 'insSpotInstanceRequestId'------ * 'insPrivateDNSName'------ * 'insStateReason'------ * 'insBlockDeviceMappings'------ * 'insPublicIPAddress'------ * 'insTags'------ * 'insInstanceId'------ * 'insImageId'------ * 'insAMILaunchIndex'------ * 'insInstanceType'------ * 'insLaunchTime'------ * 'insPlacement'------ * 'insMonitoring'------ * 'insArchitecture'------ * 'insRootDeviceType'------ * 'insVirtualizationType'------ * 'insHypervisor'------ * 'insState'-instance'-    :: Text -- ^ 'insInstanceId'-    -> Text -- ^ 'insImageId'-    -> Int -- ^ 'insAMILaunchIndex'-    -> InstanceType -- ^ 'insInstanceType'-    -> UTCTime -- ^ 'insLaunchTime'-    -> Placement -- ^ 'insPlacement'-    -> Monitoring -- ^ 'insMonitoring'-    -> ArchitectureValues -- ^ 'insArchitecture'-    -> DeviceType -- ^ 'insRootDeviceType'-    -> VirtualizationType -- ^ 'insVirtualizationType'-    -> HypervisorType -- ^ 'insHypervisor'-    -> InstanceState -- ^ 'insState'-    -> Instance-instance' pInstanceId_ pImageId_ pAMILaunchIndex_ pInstanceType_ pLaunchTime_ pPlacement_ pMonitoring_ pArchitecture_ pRootDeviceType_ pVirtualizationType_ pHypervisor_ pState_ =-    Instance'-    { _insPublicDNSName = Nothing-    , _insPlatform = Nothing-    , _insSecurityGroups = Nothing-    , _insClientToken = Nothing-    , _insSourceDestCheck = Nothing-    , _insVPCId = Nothing-    , _insKeyName = Nothing-    , _insNetworkInterfaces = Nothing-    , _insRAMDiskId = Nothing-    , _insSubnetId = Nothing-    , _insKernelId = Nothing-    , _insRootDeviceName = Nothing-    , _insSRIOVNetSupport = Nothing-    , _insEBSOptimized = Nothing-    , _insStateTransitionReason = Nothing-    , _insInstanceLifecycle = Nothing-    , _insIAMInstanceProfile = Nothing-    , _insPrivateIPAddress = Nothing-    , _insProductCodes = Nothing-    , _insSpotInstanceRequestId = Nothing-    , _insPrivateDNSName = Nothing-    , _insStateReason = Nothing-    , _insBlockDeviceMappings = Nothing-    , _insPublicIPAddress = Nothing-    , _insTags = Nothing-    , _insInstanceId = pInstanceId_-    , _insImageId = pImageId_-    , _insAMILaunchIndex = pAMILaunchIndex_-    , _insInstanceType = pInstanceType_-    , _insLaunchTime = _Time # pLaunchTime_-    , _insPlacement = pPlacement_-    , _insMonitoring = pMonitoring_-    , _insArchitecture = pArchitecture_-    , _insRootDeviceType = pRootDeviceType_-    , _insVirtualizationType = pVirtualizationType_-    , _insHypervisor = pHypervisor_-    , _insState = pState_-    }---- | The public DNS name assigned to the instance. This name is not available--- until the instance enters the 'running' state. For EC2-VPC, this name is--- only available if you\'ve enabled DNS hostnames for your VPC.-insPublicDNSName :: Lens' Instance (Maybe Text)-insPublicDNSName = lens _insPublicDNSName (\ s a -> s{_insPublicDNSName = a});---- | The value is 'Windows' for Windows instances; otherwise blank.-insPlatform :: Lens' Instance (Maybe PlatformValues)-insPlatform = lens _insPlatform (\ s a -> s{_insPlatform = a});---- | One or more security groups for the instance.-insSecurityGroups :: Lens' Instance [GroupIdentifier]-insSecurityGroups = lens _insSecurityGroups (\ s a -> s{_insSecurityGroups = a}) . _Default . _Coerce;---- | The idempotency token you provided when you launched the instance, if--- applicable.-insClientToken :: Lens' Instance (Maybe Text)-insClientToken = lens _insClientToken (\ s a -> s{_insClientToken = a});---- | Specifies whether to enable an instance launched in a VPC to perform--- NAT. This controls whether source\/destination checking is enabled on--- the instance. A value of 'true' means checking is enabled, and 'false'--- means checking is disabled. The value must be 'false' for the instance--- to perform NAT. For more information, see--- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html NAT Instances>--- in the /Amazon Virtual Private Cloud User Guide/.-insSourceDestCheck :: Lens' Instance (Maybe Bool)-insSourceDestCheck = lens _insSourceDestCheck (\ s a -> s{_insSourceDestCheck = a});---- | [EC2-VPC] The ID of the VPC in which the instance is running.-insVPCId :: Lens' Instance (Maybe Text)-insVPCId = lens _insVPCId (\ s a -> s{_insVPCId = a});---- | The name of the key pair, if this instance was launched with an--- associated key pair.-insKeyName :: Lens' Instance (Maybe Text)-insKeyName = lens _insKeyName (\ s a -> s{_insKeyName = a});---- | [EC2-VPC] One or more network interfaces for the instance.-insNetworkInterfaces :: Lens' Instance [InstanceNetworkInterface]-insNetworkInterfaces = lens _insNetworkInterfaces (\ s a -> s{_insNetworkInterfaces = a}) . _Default . _Coerce;---- | The RAM disk associated with this instance, if applicable.-insRAMDiskId :: Lens' Instance (Maybe Text)-insRAMDiskId = lens _insRAMDiskId (\ s a -> s{_insRAMDiskId = a});---- | [EC2-VPC] The ID of the subnet in which the instance is running.-insSubnetId :: Lens' Instance (Maybe Text)-insSubnetId = lens _insSubnetId (\ s a -> s{_insSubnetId = a});---- | The kernel associated with this instance, if applicable.-insKernelId :: Lens' Instance (Maybe Text)-insKernelId = lens _insKernelId (\ s a -> s{_insKernelId = a});---- | The root device name (for example, '\/dev\/sda1' or '\/dev\/xvda').-insRootDeviceName :: Lens' Instance (Maybe Text)-insRootDeviceName = lens _insRootDeviceName (\ s a -> s{_insRootDeviceName = a});---- | Specifies whether enhanced networking is enabled.-insSRIOVNetSupport :: Lens' Instance (Maybe Text)-insSRIOVNetSupport = lens _insSRIOVNetSupport (\ s a -> s{_insSRIOVNetSupport = a});---- | Indicates whether the instance is optimized for EBS I\/O. This--- optimization provides dedicated throughput to Amazon EBS and an--- optimized configuration stack to provide optimal I\/O performance. This--- optimization isn\'t available with all instance types. Additional usage--- charges apply when using an EBS Optimized instance.-insEBSOptimized :: Lens' Instance (Maybe Bool)-insEBSOptimized = lens _insEBSOptimized (\ s a -> s{_insEBSOptimized = a});---- | The reason for the most recent state transition. This might be an empty--- string.-insStateTransitionReason :: Lens' Instance (Maybe Text)-insStateTransitionReason = lens _insStateTransitionReason (\ s a -> s{_insStateTransitionReason = a});---- | Indicates whether this is a Spot instance.-insInstanceLifecycle :: Lens' Instance (Maybe InstanceLifecycleType)-insInstanceLifecycle = lens _insInstanceLifecycle (\ s a -> s{_insInstanceLifecycle = a});---- | The IAM instance profile associated with the instance, if applicable.-insIAMInstanceProfile :: Lens' Instance (Maybe IAMInstanceProfile)-insIAMInstanceProfile = lens _insIAMInstanceProfile (\ s a -> s{_insIAMInstanceProfile = a});---- | The private IP address assigned to the instance.-insPrivateIPAddress :: Lens' Instance (Maybe Text)-insPrivateIPAddress = lens _insPrivateIPAddress (\ s a -> s{_insPrivateIPAddress = a});---- | The product codes attached to this instance, if applicable.-insProductCodes :: Lens' Instance [ProductCode]-insProductCodes = lens _insProductCodes (\ s a -> s{_insProductCodes = a}) . _Default . _Coerce;---- | If the request is a Spot instance request, the ID of the request.-insSpotInstanceRequestId :: Lens' Instance (Maybe Text)-insSpotInstanceRequestId = lens _insSpotInstanceRequestId (\ s a -> s{_insSpotInstanceRequestId = a});---- | The private DNS name assigned to the instance. This DNS name can only be--- used inside the Amazon EC2 network. This name is not available until the--- instance enters the 'running' state. For EC2-VPC, this name is only--- available if you\'ve enabled DNS hostnames for your VPC.-insPrivateDNSName :: Lens' Instance (Maybe Text)-insPrivateDNSName = lens _insPrivateDNSName (\ s a -> s{_insPrivateDNSName = a});---- | The reason for the most recent state transition.-insStateReason :: Lens' Instance (Maybe StateReason)-insStateReason = lens _insStateReason (\ s a -> s{_insStateReason = a});---- | Any block device mapping entries for the instance.-insBlockDeviceMappings :: Lens' Instance [InstanceBlockDeviceMapping]-insBlockDeviceMappings = lens _insBlockDeviceMappings (\ s a -> s{_insBlockDeviceMappings = a}) . _Default . _Coerce;---- | The public IP address assigned to the instance, if applicable.-insPublicIPAddress :: Lens' Instance (Maybe Text)-insPublicIPAddress = lens _insPublicIPAddress (\ s a -> s{_insPublicIPAddress = a});---- | Any tags assigned to the instance.-insTags :: Lens' Instance [Tag]-insTags = lens _insTags (\ s a -> s{_insTags = a}) . _Default . _Coerce;---- | The ID of the instance.-insInstanceId :: Lens' Instance Text-insInstanceId = lens _insInstanceId (\ s a -> s{_insInstanceId = a});---- | The ID of the AMI used to launch the instance.-insImageId :: Lens' Instance Text-insImageId = lens _insImageId (\ s a -> s{_insImageId = a});---- | The AMI launch index, which can be used to find this instance in the--- launch group.-insAMILaunchIndex :: Lens' Instance Int-insAMILaunchIndex = lens _insAMILaunchIndex (\ s a -> s{_insAMILaunchIndex = a});---- | The instance type.-insInstanceType :: Lens' Instance InstanceType-insInstanceType = lens _insInstanceType (\ s a -> s{_insInstanceType = a});---- | The time the instance was launched.-insLaunchTime :: Lens' Instance UTCTime-insLaunchTime = lens _insLaunchTime (\ s a -> s{_insLaunchTime = a}) . _Time;---- | The location where the instance launched, if applicable.-insPlacement :: Lens' Instance Placement-insPlacement = lens _insPlacement (\ s a -> s{_insPlacement = a});---- | The monitoring information for the instance.-insMonitoring :: Lens' Instance Monitoring-insMonitoring = lens _insMonitoring (\ s a -> s{_insMonitoring = a});---- | The architecture of the image.-insArchitecture :: Lens' Instance ArchitectureValues-insArchitecture = lens _insArchitecture (\ s a -> s{_insArchitecture = a});---- | The root device type used by the AMI. The AMI can use an EBS volume or--- an instance store volume.-insRootDeviceType :: Lens' Instance DeviceType-insRootDeviceType = lens _insRootDeviceType (\ s a -> s{_insRootDeviceType = a});---- | The virtualization type of the instance.-insVirtualizationType :: Lens' Instance VirtualizationType-insVirtualizationType = lens _insVirtualizationType (\ s a -> s{_insVirtualizationType = a});---- | The hypervisor type of the instance.-insHypervisor :: Lens' Instance HypervisorType-insHypervisor = lens _insHypervisor (\ s a -> s{_insHypervisor = a});---- | The current state of the instance.-insState :: Lens' Instance InstanceState-insState = lens _insState (\ s a -> s{_insState = a});--instance FromXML Instance where-        parseXML x-          = Instance' <$>-              (x .@? "dnsName") <*> (x .@? "platform") <*>-                (x .@? "groupSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "clientToken")-                <*> (x .@? "sourceDestCheck")-                <*> (x .@? "vpcId")-                <*> (x .@? "keyName")-                <*>-                (x .@? "networkInterfaceSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "ramdiskId")-                <*> (x .@? "subnetId")-                <*> (x .@? "kernelId")-                <*> (x .@? "rootDeviceName")-                <*> (x .@? "sriovNetSupport")-                <*> (x .@? "ebsOptimized")-                <*> (x .@? "reason")-                <*> (x .@? "instanceLifecycle")-                <*> (x .@? "iamInstanceProfile")-                <*> (x .@? "privateIpAddress")-                <*>-                (x .@? "productCodes" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "spotInstanceRequestId")-                <*> (x .@? "privateDnsName")-                <*> (x .@? "stateReason")-                <*>-                (x .@? "blockDeviceMapping" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "ipAddress")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@ "instanceId")-                <*> (x .@ "imageId")-                <*> (x .@ "amiLaunchIndex")-                <*> (x .@ "instanceType")-                <*> (x .@ "launchTime")-                <*> (x .@ "placement")-                <*> (x .@ "monitoring")-                <*> (x .@ "architecture")-                <*> (x .@ "rootDeviceType")-                <*> (x .@ "virtualizationType")-                <*> (x .@ "hypervisor")-                <*> (x .@ "instanceState")---- | Describes a block device mapping.------ /See:/ 'instanceBlockDeviceMapping' smart constructor.-data InstanceBlockDeviceMapping = InstanceBlockDeviceMapping'-    { _ibdmEBS        :: !(Maybe EBSInstanceBlockDevice)-    , _ibdmDeviceName :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceBlockDeviceMapping' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ibdmEBS'------ * 'ibdmDeviceName'-instanceBlockDeviceMapping-    :: InstanceBlockDeviceMapping-instanceBlockDeviceMapping =-    InstanceBlockDeviceMapping'-    { _ibdmEBS = Nothing-    , _ibdmDeviceName = Nothing-    }---- | Parameters used to automatically set up EBS volumes when the instance is--- launched.-ibdmEBS :: Lens' InstanceBlockDeviceMapping (Maybe EBSInstanceBlockDevice)-ibdmEBS = lens _ibdmEBS (\ s a -> s{_ibdmEBS = a});---- | The device name exposed to the instance (for example, '\/dev\/sdh' or--- 'xvdh').-ibdmDeviceName :: Lens' InstanceBlockDeviceMapping (Maybe Text)-ibdmDeviceName = lens _ibdmDeviceName (\ s a -> s{_ibdmDeviceName = a});--instance FromXML InstanceBlockDeviceMapping where-        parseXML x-          = InstanceBlockDeviceMapping' <$>-              (x .@? "ebs") <*> (x .@? "deviceName")---- | Describes a block device mapping entry.------ /See:/ 'instanceBlockDeviceMappingSpecification' smart constructor.-data InstanceBlockDeviceMappingSpecification = InstanceBlockDeviceMappingSpecification'-    { _ibdmsVirtualName :: !(Maybe Text)-    , _ibdmsNoDevice    :: !(Maybe Text)-    , _ibdmsEBS         :: !(Maybe EBSInstanceBlockDeviceSpecification)-    , _ibdmsDeviceName  :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceBlockDeviceMappingSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ibdmsVirtualName'------ * 'ibdmsNoDevice'------ * 'ibdmsEBS'------ * 'ibdmsDeviceName'-instanceBlockDeviceMappingSpecification-    :: InstanceBlockDeviceMappingSpecification-instanceBlockDeviceMappingSpecification =-    InstanceBlockDeviceMappingSpecification'-    { _ibdmsVirtualName = Nothing-    , _ibdmsNoDevice = Nothing-    , _ibdmsEBS = Nothing-    , _ibdmsDeviceName = Nothing-    }---- | The virtual device name.-ibdmsVirtualName :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)-ibdmsVirtualName = lens _ibdmsVirtualName (\ s a -> s{_ibdmsVirtualName = a});---- | suppress the specified device included in the block device mapping.-ibdmsNoDevice :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)-ibdmsNoDevice = lens _ibdmsNoDevice (\ s a -> s{_ibdmsNoDevice = a});---- | Parameters used to automatically set up EBS volumes when the instance is--- launched.-ibdmsEBS :: Lens' InstanceBlockDeviceMappingSpecification (Maybe EBSInstanceBlockDeviceSpecification)-ibdmsEBS = lens _ibdmsEBS (\ s a -> s{_ibdmsEBS = a});---- | The device name exposed to the instance (for example, '\/dev\/sdh' or--- 'xvdh').-ibdmsDeviceName :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)-ibdmsDeviceName = lens _ibdmsDeviceName (\ s a -> s{_ibdmsDeviceName = a});--instance ToQuery-         InstanceBlockDeviceMappingSpecification where-        toQuery InstanceBlockDeviceMappingSpecification'{..}-          = mconcat-              ["VirtualName" =: _ibdmsVirtualName,-               "NoDevice" =: _ibdmsNoDevice, "Ebs" =: _ibdmsEBS,-               "DeviceName" =: _ibdmsDeviceName]---- | Information about the instance type that the Dedicated host supports.------ /See:/ 'instanceCapacity' smart constructor.-data InstanceCapacity = InstanceCapacity'-    { _icAvailableCapacity :: !(Maybe Int)-    , _icInstanceType      :: !(Maybe Text)-    , _icTotalCapacity     :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceCapacity' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'icAvailableCapacity'------ * 'icInstanceType'------ * 'icTotalCapacity'-instanceCapacity-    :: InstanceCapacity-instanceCapacity =-    InstanceCapacity'-    { _icAvailableCapacity = Nothing-    , _icInstanceType = Nothing-    , _icTotalCapacity = Nothing-    }---- | The number of instances that can still be launched onto the Dedicated--- host.-icAvailableCapacity :: Lens' InstanceCapacity (Maybe Int)-icAvailableCapacity = lens _icAvailableCapacity (\ s a -> s{_icAvailableCapacity = a});---- | The instance type size supported by the Dedicated host.-icInstanceType :: Lens' InstanceCapacity (Maybe Text)-icInstanceType = lens _icInstanceType (\ s a -> s{_icInstanceType = a});---- | The total number of instances that can be launched onto the Dedicated--- host.-icTotalCapacity :: Lens' InstanceCapacity (Maybe Int)-icTotalCapacity = lens _icTotalCapacity (\ s a -> s{_icTotalCapacity = a});--instance FromXML InstanceCapacity where-        parseXML x-          = InstanceCapacity' <$>-              (x .@? "availableCapacity") <*>-                (x .@? "instanceType")-                <*> (x .@? "totalCapacity")---- | Describes a Reserved instance listing state.------ /See:/ 'instanceCount' smart constructor.-data InstanceCount = InstanceCount'-    { _icState         :: !(Maybe ListingState)-    , _icInstanceCount :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceCount' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'icState'------ * 'icInstanceCount'-instanceCount-    :: InstanceCount-instanceCount =-    InstanceCount'-    { _icState = Nothing-    , _icInstanceCount = Nothing-    }---- | The states of the listed Reserved instances.-icState :: Lens' InstanceCount (Maybe ListingState)-icState = lens _icState (\ s a -> s{_icState = a});---- | The number of listed Reserved instances in the state specified by the--- 'state'.-icInstanceCount :: Lens' InstanceCount (Maybe Int)-icInstanceCount = lens _icInstanceCount (\ s a -> s{_icInstanceCount = a});--instance FromXML InstanceCount where-        parseXML x-          = InstanceCount' <$>-              (x .@? "state") <*> (x .@? "instanceCount")---- | Describes an instance to export.------ /See:/ 'instanceExportDetails' smart constructor.-data InstanceExportDetails = InstanceExportDetails'-    { _iedTargetEnvironment :: !(Maybe ExportEnvironment)-    , _iedInstanceId        :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceExportDetails' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iedTargetEnvironment'------ * 'iedInstanceId'-instanceExportDetails-    :: InstanceExportDetails-instanceExportDetails =-    InstanceExportDetails'-    { _iedTargetEnvironment = Nothing-    , _iedInstanceId = Nothing-    }---- | The target virtualization environment.-iedTargetEnvironment :: Lens' InstanceExportDetails (Maybe ExportEnvironment)-iedTargetEnvironment = lens _iedTargetEnvironment (\ s a -> s{_iedTargetEnvironment = a});---- | The ID of the resource being exported.-iedInstanceId :: Lens' InstanceExportDetails (Maybe Text)-iedInstanceId = lens _iedInstanceId (\ s a -> s{_iedInstanceId = a});--instance FromXML InstanceExportDetails where-        parseXML x-          = InstanceExportDetails' <$>-              (x .@? "targetEnvironment") <*> (x .@? "instanceId")---- | Describes the monitoring information of the instance.------ /See:/ 'instanceMonitoring' smart constructor.-data InstanceMonitoring = InstanceMonitoring'-    { _imInstanceId :: !(Maybe Text)-    , _imMonitoring :: !(Maybe Monitoring)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceMonitoring' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'imInstanceId'------ * 'imMonitoring'-instanceMonitoring-    :: InstanceMonitoring-instanceMonitoring =-    InstanceMonitoring'-    { _imInstanceId = Nothing-    , _imMonitoring = Nothing-    }---- | The ID of the instance.-imInstanceId :: Lens' InstanceMonitoring (Maybe Text)-imInstanceId = lens _imInstanceId (\ s a -> s{_imInstanceId = a});---- | The monitoring information.-imMonitoring :: Lens' InstanceMonitoring (Maybe Monitoring)-imMonitoring = lens _imMonitoring (\ s a -> s{_imMonitoring = a});--instance FromXML InstanceMonitoring where-        parseXML x-          = InstanceMonitoring' <$>-              (x .@? "instanceId") <*> (x .@? "monitoring")---- | Describes a network interface.------ /See:/ 'instanceNetworkInterface' smart constructor.-data InstanceNetworkInterface = InstanceNetworkInterface'-    { _iniGroups             :: !(Maybe [GroupIdentifier])-    , _iniStatus             :: !(Maybe NetworkInterfaceStatus)-    , _iniPrivateIPAddresses :: !(Maybe [InstancePrivateIPAddress])-    , _iniSourceDestCheck    :: !(Maybe Bool)-    , _iniVPCId              :: !(Maybe Text)-    , _iniNetworkInterfaceId :: !(Maybe Text)-    , _iniSubnetId           :: !(Maybe Text)-    , _iniMACAddress         :: !(Maybe Text)-    , _iniAttachment         :: !(Maybe InstanceNetworkInterfaceAttachment)-    , _iniOwnerId            :: !(Maybe Text)-    , _iniPrivateIPAddress   :: !(Maybe Text)-    , _iniPrivateDNSName     :: !(Maybe Text)-    , _iniDescription        :: !(Maybe Text)-    , _iniAssociation        :: !(Maybe InstanceNetworkInterfaceAssociation)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceNetworkInterface' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iniGroups'------ * 'iniStatus'------ * 'iniPrivateIPAddresses'------ * 'iniSourceDestCheck'------ * 'iniVPCId'------ * 'iniNetworkInterfaceId'------ * 'iniSubnetId'------ * 'iniMACAddress'------ * 'iniAttachment'------ * 'iniOwnerId'------ * 'iniPrivateIPAddress'------ * 'iniPrivateDNSName'------ * 'iniDescription'------ * 'iniAssociation'-instanceNetworkInterface-    :: InstanceNetworkInterface-instanceNetworkInterface =-    InstanceNetworkInterface'-    { _iniGroups = Nothing-    , _iniStatus = Nothing-    , _iniPrivateIPAddresses = Nothing-    , _iniSourceDestCheck = Nothing-    , _iniVPCId = Nothing-    , _iniNetworkInterfaceId = Nothing-    , _iniSubnetId = Nothing-    , _iniMACAddress = Nothing-    , _iniAttachment = Nothing-    , _iniOwnerId = Nothing-    , _iniPrivateIPAddress = Nothing-    , _iniPrivateDNSName = Nothing-    , _iniDescription = Nothing-    , _iniAssociation = Nothing-    }---- | One or more security groups.-iniGroups :: Lens' InstanceNetworkInterface [GroupIdentifier]-iniGroups = lens _iniGroups (\ s a -> s{_iniGroups = a}) . _Default . _Coerce;---- | The status of the network interface.-iniStatus :: Lens' InstanceNetworkInterface (Maybe NetworkInterfaceStatus)-iniStatus = lens _iniStatus (\ s a -> s{_iniStatus = a});---- | The private IP addresses associated with the network interface.-iniPrivateIPAddresses :: Lens' InstanceNetworkInterface [InstancePrivateIPAddress]-iniPrivateIPAddresses = lens _iniPrivateIPAddresses (\ s a -> s{_iniPrivateIPAddresses = a}) . _Default . _Coerce;---- | Indicates whether to validate network traffic to or from this network--- interface.-iniSourceDestCheck :: Lens' InstanceNetworkInterface (Maybe Bool)-iniSourceDestCheck = lens _iniSourceDestCheck (\ s a -> s{_iniSourceDestCheck = a});---- | The ID of the VPC.-iniVPCId :: Lens' InstanceNetworkInterface (Maybe Text)-iniVPCId = lens _iniVPCId (\ s a -> s{_iniVPCId = a});---- | The ID of the network interface.-iniNetworkInterfaceId :: Lens' InstanceNetworkInterface (Maybe Text)-iniNetworkInterfaceId = lens _iniNetworkInterfaceId (\ s a -> s{_iniNetworkInterfaceId = a});---- | The ID of the subnet.-iniSubnetId :: Lens' InstanceNetworkInterface (Maybe Text)-iniSubnetId = lens _iniSubnetId (\ s a -> s{_iniSubnetId = a});---- | The MAC address.-iniMACAddress :: Lens' InstanceNetworkInterface (Maybe Text)-iniMACAddress = lens _iniMACAddress (\ s a -> s{_iniMACAddress = a});---- | The network interface attachment.-iniAttachment :: Lens' InstanceNetworkInterface (Maybe InstanceNetworkInterfaceAttachment)-iniAttachment = lens _iniAttachment (\ s a -> s{_iniAttachment = a});---- | The ID of the AWS account that created the network interface.-iniOwnerId :: Lens' InstanceNetworkInterface (Maybe Text)-iniOwnerId = lens _iniOwnerId (\ s a -> s{_iniOwnerId = a});---- | The IP address of the network interface within the subnet.-iniPrivateIPAddress :: Lens' InstanceNetworkInterface (Maybe Text)-iniPrivateIPAddress = lens _iniPrivateIPAddress (\ s a -> s{_iniPrivateIPAddress = a});---- | The private DNS name.-iniPrivateDNSName :: Lens' InstanceNetworkInterface (Maybe Text)-iniPrivateDNSName = lens _iniPrivateDNSName (\ s a -> s{_iniPrivateDNSName = a});---- | The description.-iniDescription :: Lens' InstanceNetworkInterface (Maybe Text)-iniDescription = lens _iniDescription (\ s a -> s{_iniDescription = a});---- | The association information for an Elastic IP associated with the--- network interface.-iniAssociation :: Lens' InstanceNetworkInterface (Maybe InstanceNetworkInterfaceAssociation)-iniAssociation = lens _iniAssociation (\ s a -> s{_iniAssociation = a});--instance FromXML InstanceNetworkInterface where-        parseXML x-          = InstanceNetworkInterface' <$>-              (x .@? "groupSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "status")-                <*>-                (x .@? "privateIpAddressesSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "sourceDestCheck")-                <*> (x .@? "vpcId")-                <*> (x .@? "networkInterfaceId")-                <*> (x .@? "subnetId")-                <*> (x .@? "macAddress")-                <*> (x .@? "attachment")-                <*> (x .@? "ownerId")-                <*> (x .@? "privateIpAddress")-                <*> (x .@? "privateDnsName")-                <*> (x .@? "description")-                <*> (x .@? "association")---- | Describes association information for an Elastic IP address.------ /See:/ 'instanceNetworkInterfaceAssociation' smart constructor.-data InstanceNetworkInterfaceAssociation = InstanceNetworkInterfaceAssociation'-    { _iniaPublicDNSName :: !(Maybe Text)-    , _iniaIPOwnerId     :: !(Maybe Text)-    , _iniaPublicIP      :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceNetworkInterfaceAssociation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iniaPublicDNSName'------ * 'iniaIPOwnerId'------ * 'iniaPublicIP'-instanceNetworkInterfaceAssociation-    :: InstanceNetworkInterfaceAssociation-instanceNetworkInterfaceAssociation =-    InstanceNetworkInterfaceAssociation'-    { _iniaPublicDNSName = Nothing-    , _iniaIPOwnerId = Nothing-    , _iniaPublicIP = Nothing-    }---- | The public DNS name.-iniaPublicDNSName :: Lens' InstanceNetworkInterfaceAssociation (Maybe Text)-iniaPublicDNSName = lens _iniaPublicDNSName (\ s a -> s{_iniaPublicDNSName = a});---- | The ID of the owner of the Elastic IP address.-iniaIPOwnerId :: Lens' InstanceNetworkInterfaceAssociation (Maybe Text)-iniaIPOwnerId = lens _iniaIPOwnerId (\ s a -> s{_iniaIPOwnerId = a});---- | The public IP address or Elastic IP address bound to the network--- interface.-iniaPublicIP :: Lens' InstanceNetworkInterfaceAssociation (Maybe Text)-iniaPublicIP = lens _iniaPublicIP (\ s a -> s{_iniaPublicIP = a});--instance FromXML InstanceNetworkInterfaceAssociation-         where-        parseXML x-          = InstanceNetworkInterfaceAssociation' <$>-              (x .@? "publicDnsName") <*> (x .@? "ipOwnerId") <*>-                (x .@? "publicIp")---- | Describes a network interface attachment.------ /See:/ 'instanceNetworkInterfaceAttachment' smart constructor.-data InstanceNetworkInterfaceAttachment = InstanceNetworkInterfaceAttachment'-    { _iniaStatus              :: !(Maybe AttachmentStatus)-    , _iniaDeleteOnTermination :: !(Maybe Bool)-    , _iniaAttachmentId        :: !(Maybe Text)-    , _iniaAttachTime          :: !(Maybe ISO8601)-    , _iniaDeviceIndex         :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceNetworkInterfaceAttachment' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iniaStatus'------ * 'iniaDeleteOnTermination'------ * 'iniaAttachmentId'------ * 'iniaAttachTime'------ * 'iniaDeviceIndex'-instanceNetworkInterfaceAttachment-    :: InstanceNetworkInterfaceAttachment-instanceNetworkInterfaceAttachment =-    InstanceNetworkInterfaceAttachment'-    { _iniaStatus = Nothing-    , _iniaDeleteOnTermination = Nothing-    , _iniaAttachmentId = Nothing-    , _iniaAttachTime = Nothing-    , _iniaDeviceIndex = Nothing-    }---- | The attachment state.-iniaStatus :: Lens' InstanceNetworkInterfaceAttachment (Maybe AttachmentStatus)-iniaStatus = lens _iniaStatus (\ s a -> s{_iniaStatus = a});---- | Indicates whether the network interface is deleted when the instance is--- terminated.-iniaDeleteOnTermination :: Lens' InstanceNetworkInterfaceAttachment (Maybe Bool)-iniaDeleteOnTermination = lens _iniaDeleteOnTermination (\ s a -> s{_iniaDeleteOnTermination = a});---- | The ID of the network interface attachment.-iniaAttachmentId :: Lens' InstanceNetworkInterfaceAttachment (Maybe Text)-iniaAttachmentId = lens _iniaAttachmentId (\ s a -> s{_iniaAttachmentId = a});---- | The time stamp when the attachment initiated.-iniaAttachTime :: Lens' InstanceNetworkInterfaceAttachment (Maybe UTCTime)-iniaAttachTime = lens _iniaAttachTime (\ s a -> s{_iniaAttachTime = a}) . mapping _Time;---- | The index of the device on the instance for the network interface--- attachment.-iniaDeviceIndex :: Lens' InstanceNetworkInterfaceAttachment (Maybe Int)-iniaDeviceIndex = lens _iniaDeviceIndex (\ s a -> s{_iniaDeviceIndex = a});--instance FromXML InstanceNetworkInterfaceAttachment-         where-        parseXML x-          = InstanceNetworkInterfaceAttachment' <$>-              (x .@? "status") <*> (x .@? "deleteOnTermination")-                <*> (x .@? "attachmentId")-                <*> (x .@? "attachTime")-                <*> (x .@? "deviceIndex")---- | Describes a network interface.------ /See:/ 'instanceNetworkInterfaceSpecification' smart constructor.-data InstanceNetworkInterfaceSpecification = InstanceNetworkInterfaceSpecification'-    { _inisGroups                         :: !(Maybe [Text])-    , _inisPrivateIPAddresses             :: !(Maybe [PrivateIPAddressSpecification])-    , _inisDeleteOnTermination            :: !(Maybe Bool)-    , _inisAssociatePublicIPAddress       :: !(Maybe Bool)-    , _inisNetworkInterfaceId             :: !(Maybe Text)-    , _inisSubnetId                       :: !(Maybe Text)-    , _inisPrivateIPAddress               :: !(Maybe Text)-    , _inisSecondaryPrivateIPAddressCount :: !(Maybe Int)-    , _inisDescription                    :: !(Maybe Text)-    , _inisDeviceIndex                    :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceNetworkInterfaceSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'inisGroups'------ * 'inisPrivateIPAddresses'------ * 'inisDeleteOnTermination'------ * 'inisAssociatePublicIPAddress'------ * 'inisNetworkInterfaceId'------ * 'inisSubnetId'------ * 'inisPrivateIPAddress'------ * 'inisSecondaryPrivateIPAddressCount'------ * 'inisDescription'------ * 'inisDeviceIndex'-instanceNetworkInterfaceSpecification-    :: InstanceNetworkInterfaceSpecification-instanceNetworkInterfaceSpecification =-    InstanceNetworkInterfaceSpecification'-    { _inisGroups = Nothing-    , _inisPrivateIPAddresses = Nothing-    , _inisDeleteOnTermination = Nothing-    , _inisAssociatePublicIPAddress = Nothing-    , _inisNetworkInterfaceId = Nothing-    , _inisSubnetId = Nothing-    , _inisPrivateIPAddress = Nothing-    , _inisSecondaryPrivateIPAddressCount = Nothing-    , _inisDescription = Nothing-    , _inisDeviceIndex = Nothing-    }---- | The IDs of the security groups for the network interface. Applies only--- if creating a network interface when launching an instance.-inisGroups :: Lens' InstanceNetworkInterfaceSpecification [Text]-inisGroups = lens _inisGroups (\ s a -> s{_inisGroups = a}) . _Default . _Coerce;---- | One or more private IP addresses to assign to the network interface.--- Only one private IP address can be designated as primary.-inisPrivateIPAddresses :: Lens' InstanceNetworkInterfaceSpecification [PrivateIPAddressSpecification]-inisPrivateIPAddresses = lens _inisPrivateIPAddresses (\ s a -> s{_inisPrivateIPAddresses = a}) . _Default . _Coerce;---- | If set to 'true', the interface is deleted when the instance is--- terminated. You can specify 'true' only if creating a new network--- interface when launching an instance.-inisDeleteOnTermination :: Lens' InstanceNetworkInterfaceSpecification (Maybe Bool)-inisDeleteOnTermination = lens _inisDeleteOnTermination (\ s a -> s{_inisDeleteOnTermination = a});---- | Indicates whether to assign a public IP address to an instance you--- launch in a VPC. The public IP address can only be assigned to a network--- interface for eth0, and can only be assigned to a new network interface,--- not an existing one. You cannot specify more than one network interface--- in the request. If launching into a default subnet, the default value is--- 'true'.-inisAssociatePublicIPAddress :: Lens' InstanceNetworkInterfaceSpecification (Maybe Bool)-inisAssociatePublicIPAddress = lens _inisAssociatePublicIPAddress (\ s a -> s{_inisAssociatePublicIPAddress = a});---- | The ID of the network interface.-inisNetworkInterfaceId :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)-inisNetworkInterfaceId = lens _inisNetworkInterfaceId (\ s a -> s{_inisNetworkInterfaceId = a});---- | The ID of the subnet associated with the network string. Applies only if--- creating a network interface when launching an instance.-inisSubnetId :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)-inisSubnetId = lens _inisSubnetId (\ s a -> s{_inisSubnetId = a});---- | The private IP address of the network interface. Applies only if--- creating a network interface when launching an instance.-inisPrivateIPAddress :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)-inisPrivateIPAddress = lens _inisPrivateIPAddress (\ s a -> s{_inisPrivateIPAddress = a});---- | The number of secondary private IP addresses. You can\'t specify this--- option and specify more than one private IP address using the private IP--- addresses option.-inisSecondaryPrivateIPAddressCount :: Lens' InstanceNetworkInterfaceSpecification (Maybe Int)-inisSecondaryPrivateIPAddressCount = lens _inisSecondaryPrivateIPAddressCount (\ s a -> s{_inisSecondaryPrivateIPAddressCount = a});---- | The description of the network interface. Applies only if creating a--- network interface when launching an instance.-inisDescription :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)-inisDescription = lens _inisDescription (\ s a -> s{_inisDescription = a});---- | The index of the device on the instance for the network interface--- attachment. If you are specifying a network interface in a RunInstances--- request, you must provide the device index.-inisDeviceIndex :: Lens' InstanceNetworkInterfaceSpecification (Maybe Int)-inisDeviceIndex = lens _inisDeviceIndex (\ s a -> s{_inisDeviceIndex = a});--instance FromXML-         InstanceNetworkInterfaceSpecification where-        parseXML x-          = InstanceNetworkInterfaceSpecification' <$>-              (x .@? "SecurityGroupId" .!@ mempty >>=-                 may (parseXMLList "SecurityGroupId"))-                <*>-                (x .@? "privateIpAddressesSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "deleteOnTermination")-                <*> (x .@? "associatePublicIpAddress")-                <*> (x .@? "networkInterfaceId")-                <*> (x .@? "subnetId")-                <*> (x .@? "privateIpAddress")-                <*> (x .@? "secondaryPrivateIpAddressCount")-                <*> (x .@? "description")-                <*> (x .@? "deviceIndex")--instance ToQuery-         InstanceNetworkInterfaceSpecification where-        toQuery InstanceNetworkInterfaceSpecification'{..}-          = mconcat-              [toQuery-                 (toQueryList "SecurityGroupId" <$> _inisGroups),-               toQuery-                 (toQueryList "PrivateIpAddresses" <$>-                    _inisPrivateIPAddresses),-               "DeleteOnTermination" =: _inisDeleteOnTermination,-               "AssociatePublicIpAddress" =:-                 _inisAssociatePublicIPAddress,-               "NetworkInterfaceId" =: _inisNetworkInterfaceId,-               "SubnetId" =: _inisSubnetId,-               "PrivateIpAddress" =: _inisPrivateIPAddress,-               "SecondaryPrivateIpAddressCount" =:-                 _inisSecondaryPrivateIPAddressCount,-               "Description" =: _inisDescription,-               "DeviceIndex" =: _inisDeviceIndex]---- | Describes a private IP address.------ /See:/ 'instancePrivateIPAddress' smart constructor.-data InstancePrivateIPAddress = InstancePrivateIPAddress'-    { _ipiaPrimary          :: !(Maybe Bool)-    , _ipiaPrivateIPAddress :: !(Maybe Text)-    , _ipiaPrivateDNSName   :: !(Maybe Text)-    , _ipiaAssociation      :: !(Maybe InstanceNetworkInterfaceAssociation)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstancePrivateIPAddress' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ipiaPrimary'------ * 'ipiaPrivateIPAddress'------ * 'ipiaPrivateDNSName'------ * 'ipiaAssociation'-instancePrivateIPAddress-    :: InstancePrivateIPAddress-instancePrivateIPAddress =-    InstancePrivateIPAddress'-    { _ipiaPrimary = Nothing-    , _ipiaPrivateIPAddress = Nothing-    , _ipiaPrivateDNSName = Nothing-    , _ipiaAssociation = Nothing-    }---- | Indicates whether this IP address is the primary private IP address of--- the network interface.-ipiaPrimary :: Lens' InstancePrivateIPAddress (Maybe Bool)-ipiaPrimary = lens _ipiaPrimary (\ s a -> s{_ipiaPrimary = a});---- | The private IP address of the network interface.-ipiaPrivateIPAddress :: Lens' InstancePrivateIPAddress (Maybe Text)-ipiaPrivateIPAddress = lens _ipiaPrivateIPAddress (\ s a -> s{_ipiaPrivateIPAddress = a});---- | The private DNS name.-ipiaPrivateDNSName :: Lens' InstancePrivateIPAddress (Maybe Text)-ipiaPrivateDNSName = lens _ipiaPrivateDNSName (\ s a -> s{_ipiaPrivateDNSName = a});---- | The association information for an Elastic IP address for the network--- interface.-ipiaAssociation :: Lens' InstancePrivateIPAddress (Maybe InstanceNetworkInterfaceAssociation)-ipiaAssociation = lens _ipiaAssociation (\ s a -> s{_ipiaAssociation = a});--instance FromXML InstancePrivateIPAddress where-        parseXML x-          = InstancePrivateIPAddress' <$>-              (x .@? "primary") <*> (x .@? "privateIpAddress") <*>-                (x .@? "privateDnsName")-                <*> (x .@? "association")---- | Describes the current state of the instance.------ /See:/ 'instanceState' smart constructor.-data InstanceState = InstanceState'-    { _isName :: !InstanceStateName-    , _isCode :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceState' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'isName'------ * 'isCode'-instanceState-    :: InstanceStateName -- ^ 'isName'-    -> Int -- ^ 'isCode'-    -> InstanceState-instanceState pName_ pCode_ =-    InstanceState'-    { _isName = pName_-    , _isCode = pCode_-    }---- | The current state of the instance.-isName :: Lens' InstanceState InstanceStateName-isName = lens _isName (\ s a -> s{_isName = a});---- | The low byte represents the state. The high byte is an opaque internal--- value and should be ignored.------ -   '0' : 'pending'------ -   '16' : 'running'------ -   '32' : 'shutting-down'------ -   '48' : 'terminated'------ -   '64' : 'stopping'------ -   '80' : 'stopped'----isCode :: Lens' InstanceState Int-isCode = lens _isCode (\ s a -> s{_isCode = a});--instance FromXML InstanceState where-        parseXML x-          = InstanceState' <$> (x .@ "name") <*> (x .@ "code")---- | Describes an instance state change.------ /See:/ 'instanceStateChange' smart constructor.-data InstanceStateChange = InstanceStateChange'-    { _iscInstanceId    :: !(Maybe Text)-    , _iscCurrentState  :: !(Maybe InstanceState)-    , _iscPreviousState :: !(Maybe InstanceState)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceStateChange' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iscInstanceId'------ * 'iscCurrentState'------ * 'iscPreviousState'-instanceStateChange-    :: InstanceStateChange-instanceStateChange =-    InstanceStateChange'-    { _iscInstanceId = Nothing-    , _iscCurrentState = Nothing-    , _iscPreviousState = Nothing-    }---- | The ID of the instance.-iscInstanceId :: Lens' InstanceStateChange (Maybe Text)-iscInstanceId = lens _iscInstanceId (\ s a -> s{_iscInstanceId = a});---- | The current state of the instance.-iscCurrentState :: Lens' InstanceStateChange (Maybe InstanceState)-iscCurrentState = lens _iscCurrentState (\ s a -> s{_iscCurrentState = a});---- | The previous state of the instance.-iscPreviousState :: Lens' InstanceStateChange (Maybe InstanceState)-iscPreviousState = lens _iscPreviousState (\ s a -> s{_iscPreviousState = a});--instance FromXML InstanceStateChange where-        parseXML x-          = InstanceStateChange' <$>-              (x .@? "instanceId") <*> (x .@? "currentState") <*>-                (x .@? "previousState")---- | Describes the status of an instance.------ /See:/ 'instanceStatus' smart constructor.-data InstanceStatus = InstanceStatus'-    { _isInstanceId       :: !(Maybe Text)-    , _isSystemStatus     :: !(Maybe InstanceStatusSummary)-    , _isEvents           :: !(Maybe [InstanceStatusEvent])-    , _isAvailabilityZone :: !(Maybe Text)-    , _isInstanceStatus   :: !(Maybe InstanceStatusSummary)-    , _isInstanceState    :: !(Maybe InstanceState)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceStatus' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'isInstanceId'------ * 'isSystemStatus'------ * 'isEvents'------ * 'isAvailabilityZone'------ * 'isInstanceStatus'------ * 'isInstanceState'-instanceStatus-    :: InstanceStatus-instanceStatus =-    InstanceStatus'-    { _isInstanceId = Nothing-    , _isSystemStatus = Nothing-    , _isEvents = Nothing-    , _isAvailabilityZone = Nothing-    , _isInstanceStatus = Nothing-    , _isInstanceState = Nothing-    }---- | The ID of the instance.-isInstanceId :: Lens' InstanceStatus (Maybe Text)-isInstanceId = lens _isInstanceId (\ s a -> s{_isInstanceId = a});---- | Reports impaired functionality that stems from issues related to the--- systems that support an instance, such as hardware failures and network--- connectivity problems.-isSystemStatus :: Lens' InstanceStatus (Maybe InstanceStatusSummary)-isSystemStatus = lens _isSystemStatus (\ s a -> s{_isSystemStatus = a});---- | Any scheduled events associated with the instance.-isEvents :: Lens' InstanceStatus [InstanceStatusEvent]-isEvents = lens _isEvents (\ s a -> s{_isEvents = a}) . _Default . _Coerce;---- | The Availability Zone of the instance.-isAvailabilityZone :: Lens' InstanceStatus (Maybe Text)-isAvailabilityZone = lens _isAvailabilityZone (\ s a -> s{_isAvailabilityZone = a});---- | Reports impaired functionality that stems from issues internal to the--- instance, such as impaired reachability.-isInstanceStatus :: Lens' InstanceStatus (Maybe InstanceStatusSummary)-isInstanceStatus = lens _isInstanceStatus (\ s a -> s{_isInstanceStatus = a});---- | The intended state of the instance. DescribeInstanceStatus requires that--- an instance be in the 'running' state.-isInstanceState :: Lens' InstanceStatus (Maybe InstanceState)-isInstanceState = lens _isInstanceState (\ s a -> s{_isInstanceState = a});--instance FromXML InstanceStatus where-        parseXML x-          = InstanceStatus' <$>-              (x .@? "instanceId") <*> (x .@? "systemStatus") <*>-                (x .@? "eventsSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "availabilityZone")-                <*> (x .@? "instanceStatus")-                <*> (x .@? "instanceState")---- | Describes the instance status.------ /See:/ 'instanceStatusDetails' smart constructor.-data InstanceStatusDetails = InstanceStatusDetails'-    { _isdStatus        :: !(Maybe StatusType)-    , _isdImpairedSince :: !(Maybe ISO8601)-    , _isdName          :: !(Maybe StatusName)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceStatusDetails' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'isdStatus'------ * 'isdImpairedSince'------ * 'isdName'-instanceStatusDetails-    :: InstanceStatusDetails-instanceStatusDetails =-    InstanceStatusDetails'-    { _isdStatus = Nothing-    , _isdImpairedSince = Nothing-    , _isdName = Nothing-    }---- | The status.-isdStatus :: Lens' InstanceStatusDetails (Maybe StatusType)-isdStatus = lens _isdStatus (\ s a -> s{_isdStatus = a});---- | The time when a status check failed. For an instance that was launched--- and impaired, this is the time when the instance was launched.-isdImpairedSince :: Lens' InstanceStatusDetails (Maybe UTCTime)-isdImpairedSince = lens _isdImpairedSince (\ s a -> s{_isdImpairedSince = a}) . mapping _Time;---- | The type of instance status.-isdName :: Lens' InstanceStatusDetails (Maybe StatusName)-isdName = lens _isdName (\ s a -> s{_isdName = a});--instance FromXML InstanceStatusDetails where-        parseXML x-          = InstanceStatusDetails' <$>-              (x .@? "status") <*> (x .@? "impairedSince") <*>-                (x .@? "name")---- | Describes a scheduled event for an instance.------ /See:/ 'instanceStatusEvent' smart constructor.-data InstanceStatusEvent = InstanceStatusEvent'-    { _iseNotBefore   :: !(Maybe ISO8601)-    , _iseCode        :: !(Maybe EventCode)-    , _iseDescription :: !(Maybe Text)-    , _iseNotAfter    :: !(Maybe ISO8601)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceStatusEvent' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iseNotBefore'------ * 'iseCode'------ * 'iseDescription'------ * 'iseNotAfter'-instanceStatusEvent-    :: InstanceStatusEvent-instanceStatusEvent =-    InstanceStatusEvent'-    { _iseNotBefore = Nothing-    , _iseCode = Nothing-    , _iseDescription = Nothing-    , _iseNotAfter = Nothing-    }---- | The earliest scheduled start time for the event.-iseNotBefore :: Lens' InstanceStatusEvent (Maybe UTCTime)-iseNotBefore = lens _iseNotBefore (\ s a -> s{_iseNotBefore = a}) . mapping _Time;---- | The event code.-iseCode :: Lens' InstanceStatusEvent (Maybe EventCode)-iseCode = lens _iseCode (\ s a -> s{_iseCode = a});---- | A description of the event.------ After a scheduled event is completed, it can still be described for up--- to a week. If the event has been completed, this description starts with--- the following text: [Completed].-iseDescription :: Lens' InstanceStatusEvent (Maybe Text)-iseDescription = lens _iseDescription (\ s a -> s{_iseDescription = a});---- | The latest scheduled end time for the event.-iseNotAfter :: Lens' InstanceStatusEvent (Maybe UTCTime)-iseNotAfter = lens _iseNotAfter (\ s a -> s{_iseNotAfter = a}) . mapping _Time;--instance FromXML InstanceStatusEvent where-        parseXML x-          = InstanceStatusEvent' <$>-              (x .@? "notBefore") <*> (x .@? "code") <*>-                (x .@? "description")-                <*> (x .@? "notAfter")---- | Describes the status of an instance.------ /See:/ 'instanceStatusSummary' smart constructor.-data InstanceStatusSummary = InstanceStatusSummary'-    { _issDetails :: !(Maybe [InstanceStatusDetails])-    , _issStatus  :: !SummaryStatus-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceStatusSummary' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'issDetails'------ * 'issStatus'-instanceStatusSummary-    :: SummaryStatus -- ^ 'issStatus'-    -> InstanceStatusSummary-instanceStatusSummary pStatus_ =-    InstanceStatusSummary'-    { _issDetails = Nothing-    , _issStatus = pStatus_-    }---- | The system instance health or application instance health.-issDetails :: Lens' InstanceStatusSummary [InstanceStatusDetails]-issDetails = lens _issDetails (\ s a -> s{_issDetails = a}) . _Default . _Coerce;---- | The status.-issStatus :: Lens' InstanceStatusSummary SummaryStatus-issStatus = lens _issStatus (\ s a -> s{_issStatus = a});--instance FromXML InstanceStatusSummary where-        parseXML x-          = InstanceStatusSummary' <$>-              (x .@? "details" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@ "status")---- | Describes an Internet gateway.------ /See:/ 'internetGateway' smart constructor.-data InternetGateway = InternetGateway'-    { _igAttachments       :: !(Maybe [InternetGatewayAttachment])-    , _igTags              :: !(Maybe [Tag])-    , _igInternetGatewayId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InternetGateway' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'igAttachments'------ * 'igTags'------ * 'igInternetGatewayId'-internetGateway-    :: Text -- ^ 'igInternetGatewayId'-    -> InternetGateway-internetGateway pInternetGatewayId_ =-    InternetGateway'-    { _igAttachments = Nothing-    , _igTags = Nothing-    , _igInternetGatewayId = pInternetGatewayId_-    }---- | Any VPCs attached to the Internet gateway.-igAttachments :: Lens' InternetGateway [InternetGatewayAttachment]-igAttachments = lens _igAttachments (\ s a -> s{_igAttachments = a}) . _Default . _Coerce;---- | Any tags assigned to the Internet gateway.-igTags :: Lens' InternetGateway [Tag]-igTags = lens _igTags (\ s a -> s{_igTags = a}) . _Default . _Coerce;---- | The ID of the Internet gateway.-igInternetGatewayId :: Lens' InternetGateway Text-igInternetGatewayId = lens _igInternetGatewayId (\ s a -> s{_igInternetGatewayId = a});--instance FromXML InternetGateway where-        parseXML x-          = InternetGateway' <$>-              (x .@? "attachmentSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@ "internetGatewayId")---- | Describes the attachment of a VPC to an Internet gateway.------ /See:/ 'internetGatewayAttachment' smart constructor.-data InternetGatewayAttachment = InternetGatewayAttachment'-    { _igaState :: !AttachmentStatus-    , _igaVPCId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InternetGatewayAttachment' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'igaState'------ * 'igaVPCId'-internetGatewayAttachment-    :: AttachmentStatus -- ^ 'igaState'-    -> Text -- ^ 'igaVPCId'-    -> InternetGatewayAttachment-internetGatewayAttachment pState_ pVPCId_ =-    InternetGatewayAttachment'-    { _igaState = pState_-    , _igaVPCId = pVPCId_-    }---- | The current state of the attachment.-igaState :: Lens' InternetGatewayAttachment AttachmentStatus-igaState = lens _igaState (\ s a -> s{_igaState = a});---- | The ID of the VPC.-igaVPCId :: Lens' InternetGatewayAttachment Text-igaVPCId = lens _igaVPCId (\ s a -> s{_igaVPCId = a});--instance FromXML InternetGatewayAttachment where-        parseXML x-          = InternetGatewayAttachment' <$>-              (x .@ "state") <*> (x .@ "vpcId")---- | Describes a key pair.------ /See:/ 'keyPairInfo' smart constructor.-data KeyPairInfo = KeyPairInfo'-    { _kpiKeyFingerprint :: !(Maybe Text)-    , _kpiKeyName        :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'KeyPairInfo' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'kpiKeyFingerprint'------ * 'kpiKeyName'-keyPairInfo-    :: KeyPairInfo-keyPairInfo =-    KeyPairInfo'-    { _kpiKeyFingerprint = Nothing-    , _kpiKeyName = Nothing-    }---- | If you used CreateKeyPair to create the key pair, this is the SHA-1--- digest of the DER encoded private key. If you used ImportKeyPair to--- provide AWS the public key, this is the MD5 public key fingerprint as--- specified in section 4 of RFC4716.-kpiKeyFingerprint :: Lens' KeyPairInfo (Maybe Text)-kpiKeyFingerprint = lens _kpiKeyFingerprint (\ s a -> s{_kpiKeyFingerprint = a});---- | The name of the key pair.-kpiKeyName :: Lens' KeyPairInfo (Maybe Text)-kpiKeyName = lens _kpiKeyName (\ s a -> s{_kpiKeyName = a});--instance FromXML KeyPairInfo where-        parseXML x-          = KeyPairInfo' <$>-              (x .@? "keyFingerprint") <*> (x .@? "keyName")---- | Describes a launch permission.------ /See:/ 'launchPermission' smart constructor.-data LaunchPermission = LaunchPermission'-    { _lpGroup  :: !(Maybe PermissionGroup)-    , _lpUserId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'LaunchPermission' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'lpGroup'------ * 'lpUserId'-launchPermission-    :: LaunchPermission-launchPermission =-    LaunchPermission'-    { _lpGroup = Nothing-    , _lpUserId = Nothing-    }---- | The name of the group.-lpGroup :: Lens' LaunchPermission (Maybe PermissionGroup)-lpGroup = lens _lpGroup (\ s a -> s{_lpGroup = a});---- | The AWS account ID.-lpUserId :: Lens' LaunchPermission (Maybe Text)-lpUserId = lens _lpUserId (\ s a -> s{_lpUserId = a});--instance FromXML LaunchPermission where-        parseXML x-          = LaunchPermission' <$>-              (x .@? "group") <*> (x .@? "userId")--instance ToQuery LaunchPermission where-        toQuery LaunchPermission'{..}-          = mconcat-              ["Group" =: _lpGroup, "UserId" =: _lpUserId]---- | Describes a launch permission modification.------ /See:/ 'launchPermissionModifications' smart constructor.-data LaunchPermissionModifications = LaunchPermissionModifications'-    { _lpmRemove :: !(Maybe [LaunchPermission])-    , _lpmAdd    :: !(Maybe [LaunchPermission])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'LaunchPermissionModifications' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'lpmRemove'------ * 'lpmAdd'-launchPermissionModifications-    :: LaunchPermissionModifications-launchPermissionModifications =-    LaunchPermissionModifications'-    { _lpmRemove = Nothing-    , _lpmAdd = Nothing-    }---- | The AWS account ID to remove from the list of launch permissions for the--- AMI.-lpmRemove :: Lens' LaunchPermissionModifications [LaunchPermission]-lpmRemove = lens _lpmRemove (\ s a -> s{_lpmRemove = a}) . _Default . _Coerce;---- | The AWS account ID to add to the list of launch permissions for the AMI.-lpmAdd :: Lens' LaunchPermissionModifications [LaunchPermission]-lpmAdd = lens _lpmAdd (\ s a -> s{_lpmAdd = a}) . _Default . _Coerce;--instance ToQuery LaunchPermissionModifications where-        toQuery LaunchPermissionModifications'{..}-          = mconcat-              [toQuery (toQueryList "Remove" <$> _lpmRemove),-               toQuery (toQueryList "Add" <$> _lpmAdd)]---- | Describes the launch specification for an instance.------ /See:/ 'launchSpecification' smart constructor.-data LaunchSpecification = LaunchSpecification'-    { _lsSecurityGroups      :: !(Maybe [GroupIdentifier])-    , _lsKeyName             :: !(Maybe Text)-    , _lsNetworkInterfaces   :: !(Maybe [InstanceNetworkInterfaceSpecification])-    , _lsRAMDiskId           :: !(Maybe Text)-    , _lsSubnetId            :: !(Maybe Text)-    , _lsKernelId            :: !(Maybe Text)-    , _lsInstanceType        :: !(Maybe InstanceType)-    , _lsEBSOptimized        :: !(Maybe Bool)-    , _lsUserData            :: !(Maybe Text)-    , _lsMonitoring          :: !(Maybe RunInstancesMonitoringEnabled)-    , _lsIAMInstanceProfile  :: !(Maybe IAMInstanceProfileSpecification)-    , _lsImageId             :: !(Maybe Text)-    , _lsAddressingType      :: !(Maybe Text)-    , _lsBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])-    , _lsPlacement           :: !(Maybe SpotPlacement)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'LaunchSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'lsSecurityGroups'------ * 'lsKeyName'------ * 'lsNetworkInterfaces'------ * 'lsRAMDiskId'------ * 'lsSubnetId'------ * 'lsKernelId'------ * 'lsInstanceType'------ * 'lsEBSOptimized'------ * 'lsUserData'------ * 'lsMonitoring'------ * 'lsIAMInstanceProfile'------ * 'lsImageId'------ * 'lsAddressingType'------ * 'lsBlockDeviceMappings'------ * 'lsPlacement'-launchSpecification-    :: LaunchSpecification-launchSpecification =-    LaunchSpecification'-    { _lsSecurityGroups = Nothing-    , _lsKeyName = Nothing-    , _lsNetworkInterfaces = Nothing-    , _lsRAMDiskId = Nothing-    , _lsSubnetId = Nothing-    , _lsKernelId = Nothing-    , _lsInstanceType = Nothing-    , _lsEBSOptimized = Nothing-    , _lsUserData = Nothing-    , _lsMonitoring = Nothing-    , _lsIAMInstanceProfile = Nothing-    , _lsImageId = Nothing-    , _lsAddressingType = Nothing-    , _lsBlockDeviceMappings = Nothing-    , _lsPlacement = Nothing-    }---- | One or more security groups. When requesting instances in a VPC, you--- must specify the IDs of the security groups. When requesting instances--- in EC2-Classic, you can specify the names or the IDs of the security--- groups.-lsSecurityGroups :: Lens' LaunchSpecification [GroupIdentifier]-lsSecurityGroups = lens _lsSecurityGroups (\ s a -> s{_lsSecurityGroups = a}) . _Default . _Coerce;---- | The name of the key pair.-lsKeyName :: Lens' LaunchSpecification (Maybe Text)-lsKeyName = lens _lsKeyName (\ s a -> s{_lsKeyName = a});---- | One or more network interfaces.-lsNetworkInterfaces :: Lens' LaunchSpecification [InstanceNetworkInterfaceSpecification]-lsNetworkInterfaces = lens _lsNetworkInterfaces (\ s a -> s{_lsNetworkInterfaces = a}) . _Default . _Coerce;---- | The ID of the RAM disk.-lsRAMDiskId :: Lens' LaunchSpecification (Maybe Text)-lsRAMDiskId = lens _lsRAMDiskId (\ s a -> s{_lsRAMDiskId = a});---- | The ID of the subnet in which to launch the instance.-lsSubnetId :: Lens' LaunchSpecification (Maybe Text)-lsSubnetId = lens _lsSubnetId (\ s a -> s{_lsSubnetId = a});---- | The ID of the kernel.-lsKernelId :: Lens' LaunchSpecification (Maybe Text)-lsKernelId = lens _lsKernelId (\ s a -> s{_lsKernelId = a});---- | The instance type.-lsInstanceType :: Lens' LaunchSpecification (Maybe InstanceType)-lsInstanceType = lens _lsInstanceType (\ s a -> s{_lsInstanceType = a});---- | Indicates whether the instance is optimized for EBS I\/O. This--- optimization provides dedicated throughput to Amazon EBS and an--- optimized configuration stack to provide optimal EBS I\/O performance.--- This optimization isn\'t available with all instance types. Additional--- usage charges apply when using an EBS Optimized instance.------ Default: 'false'-lsEBSOptimized :: Lens' LaunchSpecification (Maybe Bool)-lsEBSOptimized = lens _lsEBSOptimized (\ s a -> s{_lsEBSOptimized = a});---- | The Base64-encoded MIME user data to make available to the instances.-lsUserData :: Lens' LaunchSpecification (Maybe Text)-lsUserData = lens _lsUserData (\ s a -> s{_lsUserData = a});---- | Undocumented member.-lsMonitoring :: Lens' LaunchSpecification (Maybe RunInstancesMonitoringEnabled)-lsMonitoring = lens _lsMonitoring (\ s a -> s{_lsMonitoring = a});---- | The IAM instance profile.-lsIAMInstanceProfile :: Lens' LaunchSpecification (Maybe IAMInstanceProfileSpecification)-lsIAMInstanceProfile = lens _lsIAMInstanceProfile (\ s a -> s{_lsIAMInstanceProfile = a});---- | The ID of the AMI.-lsImageId :: Lens' LaunchSpecification (Maybe Text)-lsImageId = lens _lsImageId (\ s a -> s{_lsImageId = a});---- | Deprecated.-lsAddressingType :: Lens' LaunchSpecification (Maybe Text)-lsAddressingType = lens _lsAddressingType (\ s a -> s{_lsAddressingType = a});---- | One or more block device mapping entries.-lsBlockDeviceMappings :: Lens' LaunchSpecification [BlockDeviceMapping]-lsBlockDeviceMappings = lens _lsBlockDeviceMappings (\ s a -> s{_lsBlockDeviceMappings = a}) . _Default . _Coerce;---- | The placement information for the instance.-lsPlacement :: Lens' LaunchSpecification (Maybe SpotPlacement)-lsPlacement = lens _lsPlacement (\ s a -> s{_lsPlacement = a});--instance FromXML LaunchSpecification where-        parseXML x-          = LaunchSpecification' <$>-              (x .@? "groupSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "keyName")-                <*>-                (x .@? "networkInterfaceSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "ramdiskId")-                <*> (x .@? "subnetId")-                <*> (x .@? "kernelId")-                <*> (x .@? "instanceType")-                <*> (x .@? "ebsOptimized")-                <*> (x .@? "userData")-                <*> (x .@? "monitoring")-                <*> (x .@? "iamInstanceProfile")-                <*> (x .@? "imageId")-                <*> (x .@? "addressingType")-                <*>-                (x .@? "blockDeviceMapping" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "placement")---- | Describes the monitoring for the instance.------ /See:/ 'monitoring' smart constructor.-newtype Monitoring = Monitoring'-    { _mState :: Maybe MonitoringState-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Monitoring' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mState'-monitoring-    :: Monitoring-monitoring =-    Monitoring'-    { _mState = Nothing-    }---- | Indicates whether monitoring is enabled for the instance.-mState :: Lens' Monitoring (Maybe MonitoringState)-mState = lens _mState (\ s a -> s{_mState = a});--instance FromXML Monitoring where-        parseXML x = Monitoring' <$> (x .@? "state")---- | Describes the status of a moving Elastic IP address.------ /See:/ 'movingAddressStatus' smart constructor.-data MovingAddressStatus = MovingAddressStatus'-    { _masMoveStatus :: !(Maybe MoveStatus)-    , _masPublicIP   :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'MovingAddressStatus' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'masMoveStatus'------ * 'masPublicIP'-movingAddressStatus-    :: MovingAddressStatus-movingAddressStatus =-    MovingAddressStatus'-    { _masMoveStatus = Nothing-    , _masPublicIP = Nothing-    }---- | The status of the Elastic IP address that\'s being moved to the EC2-VPC--- platform, or restored to the EC2-Classic platform.-masMoveStatus :: Lens' MovingAddressStatus (Maybe MoveStatus)-masMoveStatus = lens _masMoveStatus (\ s a -> s{_masMoveStatus = a});---- | The Elastic IP address.-masPublicIP :: Lens' MovingAddressStatus (Maybe Text)-masPublicIP = lens _masPublicIP (\ s a -> s{_masPublicIP = a});--instance FromXML MovingAddressStatus where-        parseXML x-          = MovingAddressStatus' <$>-              (x .@? "moveStatus") <*> (x .@? "publicIp")---- | Describes a NAT gateway.------ /See:/ 'natGateway' smart constructor.-data NatGateway = NatGateway'-    { _ngState               :: !(Maybe NatGatewayState)-    , _ngFailureCode         :: !(Maybe Text)-    , _ngVPCId               :: !(Maybe Text)-    , _ngFailureMessage      :: !(Maybe Text)-    , _ngNatGatewayId        :: !(Maybe Text)-    , _ngSubnetId            :: !(Maybe Text)-    , _ngDeleteTime          :: !(Maybe ISO8601)-    , _ngNatGatewayAddresses :: !(Maybe [NatGatewayAddress])-    , _ngCreateTime          :: !(Maybe ISO8601)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NatGateway' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ngState'------ * 'ngFailureCode'------ * 'ngVPCId'------ * 'ngFailureMessage'------ * 'ngNatGatewayId'------ * 'ngSubnetId'------ * 'ngDeleteTime'------ * 'ngNatGatewayAddresses'------ * 'ngCreateTime'-natGateway-    :: NatGateway-natGateway =-    NatGateway'-    { _ngState = Nothing-    , _ngFailureCode = Nothing-    , _ngVPCId = Nothing-    , _ngFailureMessage = Nothing-    , _ngNatGatewayId = Nothing-    , _ngSubnetId = Nothing-    , _ngDeleteTime = Nothing-    , _ngNatGatewayAddresses = Nothing-    , _ngCreateTime = Nothing-    }---- | The state of the NAT gateway.-ngState :: Lens' NatGateway (Maybe NatGatewayState)-ngState = lens _ngState (\ s a -> s{_ngState = a});---- | If the NAT gateway could not be created, specifies the error code for--- the failure. ('InsufficientFreeAddressesInSubnet' |--- 'Gateway.NotAttached' | 'InvalidAllocationID.NotFound' |--- 'Resource.AlreadyAssociated' | 'InternalError')-ngFailureCode :: Lens' NatGateway (Maybe Text)-ngFailureCode = lens _ngFailureCode (\ s a -> s{_ngFailureCode = a});---- | The ID of the VPC in which the NAT gateway is located.-ngVPCId :: Lens' NatGateway (Maybe Text)-ngVPCId = lens _ngVPCId (\ s a -> s{_ngVPCId = a});---- | If the NAT gateway could not be created, specifies the error message for--- the failure, that corresponds to the error code.------ -   For InsufficientFreeAddressesInSubnet:---     'Subnet has insufficient free addresses to create this NAT gateway'--- -   For Gateway.NotAttached:---     'Network vpc-xxxxxxxx has no Internet gateway attached'--- -   For InvalidAllocationID.NotFound:---     'Elastic IP address eipalloc-xxxxxxxx could not be associated with this NAT gateway'--- -   For Resource.AlreadyAssociated:---     'Elastic IP address eipalloc-xxxxxxxx is already associated'--- -   For InternalError:---     'Network interface eni-xxxxxxxx, created and used internally by this NAT gateway is in an invalid state. Please try again.'-ngFailureMessage :: Lens' NatGateway (Maybe Text)-ngFailureMessage = lens _ngFailureMessage (\ s a -> s{_ngFailureMessage = a});---- | The ID of the NAT gateway.-ngNatGatewayId :: Lens' NatGateway (Maybe Text)-ngNatGatewayId = lens _ngNatGatewayId (\ s a -> s{_ngNatGatewayId = a});---- | The ID of the subnet in which the NAT gateway is located.-ngSubnetId :: Lens' NatGateway (Maybe Text)-ngSubnetId = lens _ngSubnetId (\ s a -> s{_ngSubnetId = a});---- | The date and time the NAT gateway was deleted, if applicable.-ngDeleteTime :: Lens' NatGateway (Maybe UTCTime)-ngDeleteTime = lens _ngDeleteTime (\ s a -> s{_ngDeleteTime = a}) . mapping _Time;---- | Information about the IP addresses and network interface associated with--- the NAT gateway.-ngNatGatewayAddresses :: Lens' NatGateway [NatGatewayAddress]-ngNatGatewayAddresses = lens _ngNatGatewayAddresses (\ s a -> s{_ngNatGatewayAddresses = a}) . _Default . _Coerce;---- | The date and time the NAT gateway was created.-ngCreateTime :: Lens' NatGateway (Maybe UTCTime)-ngCreateTime = lens _ngCreateTime (\ s a -> s{_ngCreateTime = a}) . mapping _Time;--instance FromXML NatGateway where-        parseXML x-          = NatGateway' <$>-              (x .@? "state") <*> (x .@? "failureCode") <*>-                (x .@? "vpcId")-                <*> (x .@? "failureMessage")-                <*> (x .@? "natGatewayId")-                <*> (x .@? "subnetId")-                <*> (x .@? "deleteTime")-                <*>-                (x .@? "natGatewayAddressSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "createTime")---- | Describes the IP addresses and network interface associated with a NAT--- gateway.------ /See:/ 'natGatewayAddress' smart constructor.-data NatGatewayAddress = NatGatewayAddress'-    { _ngaPrivateIP          :: !(Maybe Text)-    , _ngaAllocationId       :: !(Maybe Text)-    , _ngaNetworkInterfaceId :: !(Maybe Text)-    , _ngaPublicIP           :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NatGatewayAddress' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ngaPrivateIP'------ * 'ngaAllocationId'------ * 'ngaNetworkInterfaceId'------ * 'ngaPublicIP'-natGatewayAddress-    :: NatGatewayAddress-natGatewayAddress =-    NatGatewayAddress'-    { _ngaPrivateIP = Nothing-    , _ngaAllocationId = Nothing-    , _ngaNetworkInterfaceId = Nothing-    , _ngaPublicIP = Nothing-    }---- | The private IP address associated with the Elastic IP address.-ngaPrivateIP :: Lens' NatGatewayAddress (Maybe Text)-ngaPrivateIP = lens _ngaPrivateIP (\ s a -> s{_ngaPrivateIP = a});---- | The allocation ID of the Elastic IP address that\'s associated with the--- NAT gateway.-ngaAllocationId :: Lens' NatGatewayAddress (Maybe Text)-ngaAllocationId = lens _ngaAllocationId (\ s a -> s{_ngaAllocationId = a});---- | The ID of the network interface associated with the NAT gateway.-ngaNetworkInterfaceId :: Lens' NatGatewayAddress (Maybe Text)-ngaNetworkInterfaceId = lens _ngaNetworkInterfaceId (\ s a -> s{_ngaNetworkInterfaceId = a});---- | The Elastic IP address associated with the NAT gateway.-ngaPublicIP :: Lens' NatGatewayAddress (Maybe Text)-ngaPublicIP = lens _ngaPublicIP (\ s a -> s{_ngaPublicIP = a});--instance FromXML NatGatewayAddress where-        parseXML x-          = NatGatewayAddress' <$>-              (x .@? "privateIp") <*> (x .@? "allocationId") <*>-                (x .@? "networkInterfaceId")-                <*> (x .@? "publicIp")---- | Describes a network ACL.------ /See:/ 'networkACL' smart constructor.-data NetworkACL = NetworkACL'-    { _naEntries      :: !(Maybe [NetworkACLEntry])-    , _naNetworkACLId :: !(Maybe Text)-    , _naVPCId        :: !(Maybe Text)-    , _naAssociations :: !(Maybe [NetworkACLAssociation])-    , _naTags         :: !(Maybe [Tag])-    , _naIsDefault    :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NetworkACL' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'naEntries'------ * 'naNetworkACLId'------ * 'naVPCId'------ * 'naAssociations'------ * 'naTags'------ * 'naIsDefault'-networkACL-    :: NetworkACL-networkACL =-    NetworkACL'-    { _naEntries = Nothing-    , _naNetworkACLId = Nothing-    , _naVPCId = Nothing-    , _naAssociations = Nothing-    , _naTags = Nothing-    , _naIsDefault = Nothing-    }---- | One or more entries (rules) in the network ACL.-naEntries :: Lens' NetworkACL [NetworkACLEntry]-naEntries = lens _naEntries (\ s a -> s{_naEntries = a}) . _Default . _Coerce;---- | The ID of the network ACL.-naNetworkACLId :: Lens' NetworkACL (Maybe Text)-naNetworkACLId = lens _naNetworkACLId (\ s a -> s{_naNetworkACLId = a});---- | The ID of the VPC for the network ACL.-naVPCId :: Lens' NetworkACL (Maybe Text)-naVPCId = lens _naVPCId (\ s a -> s{_naVPCId = a});---- | Any associations between the network ACL and one or more subnets-naAssociations :: Lens' NetworkACL [NetworkACLAssociation]-naAssociations = lens _naAssociations (\ s a -> s{_naAssociations = a}) . _Default . _Coerce;---- | Any tags assigned to the network ACL.-naTags :: Lens' NetworkACL [Tag]-naTags = lens _naTags (\ s a -> s{_naTags = a}) . _Default . _Coerce;---- | Indicates whether this is the default network ACL for the VPC.-naIsDefault :: Lens' NetworkACL (Maybe Bool)-naIsDefault = lens _naIsDefault (\ s a -> s{_naIsDefault = a});--instance FromXML NetworkACL where-        parseXML x-          = NetworkACL' <$>-              (x .@? "entrySet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "networkAclId")-                <*> (x .@? "vpcId")-                <*>-                (x .@? "associationSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "default")---- | Describes an association between a network ACL and a subnet.------ /See:/ 'networkACLAssociation' smart constructor.-data NetworkACLAssociation = NetworkACLAssociation'-    { _naaNetworkACLId            :: !(Maybe Text)-    , _naaSubnetId                :: !(Maybe Text)-    , _naaNetworkACLAssociationId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NetworkACLAssociation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'naaNetworkACLId'------ * 'naaSubnetId'------ * 'naaNetworkACLAssociationId'-networkACLAssociation-    :: NetworkACLAssociation-networkACLAssociation =-    NetworkACLAssociation'-    { _naaNetworkACLId = Nothing-    , _naaSubnetId = Nothing-    , _naaNetworkACLAssociationId = Nothing-    }---- | The ID of the network ACL.-naaNetworkACLId :: Lens' NetworkACLAssociation (Maybe Text)-naaNetworkACLId = lens _naaNetworkACLId (\ s a -> s{_naaNetworkACLId = a});---- | The ID of the subnet.-naaSubnetId :: Lens' NetworkACLAssociation (Maybe Text)-naaSubnetId = lens _naaSubnetId (\ s a -> s{_naaSubnetId = a});---- | The ID of the association between a network ACL and a subnet.-naaNetworkACLAssociationId :: Lens' NetworkACLAssociation (Maybe Text)-naaNetworkACLAssociationId = lens _naaNetworkACLAssociationId (\ s a -> s{_naaNetworkACLAssociationId = a});--instance FromXML NetworkACLAssociation where-        parseXML x-          = NetworkACLAssociation' <$>-              (x .@? "networkAclId") <*> (x .@? "subnetId") <*>-                (x .@? "networkAclAssociationId")---- | Describes an entry in a network ACL.------ /See:/ 'networkACLEntry' smart constructor.-data NetworkACLEntry = NetworkACLEntry'-    { _naeICMPTypeCode :: !(Maybe ICMPTypeCode)-    , _naeRuleNumber   :: !(Maybe Int)-    , _naeRuleAction   :: !(Maybe RuleAction)-    , _naeProtocol     :: !(Maybe Text)-    , _naePortRange    :: !(Maybe PortRange)-    , _naeCIdRBlock    :: !(Maybe Text)-    , _naeEgress       :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NetworkACLEntry' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'naeICMPTypeCode'------ * 'naeRuleNumber'------ * 'naeRuleAction'------ * 'naeProtocol'------ * 'naePortRange'------ * 'naeCIdRBlock'------ * 'naeEgress'-networkACLEntry-    :: NetworkACLEntry-networkACLEntry =-    NetworkACLEntry'-    { _naeICMPTypeCode = Nothing-    , _naeRuleNumber = Nothing-    , _naeRuleAction = Nothing-    , _naeProtocol = Nothing-    , _naePortRange = Nothing-    , _naeCIdRBlock = Nothing-    , _naeEgress = Nothing-    }---- | ICMP protocol: The ICMP type and code.-naeICMPTypeCode :: Lens' NetworkACLEntry (Maybe ICMPTypeCode)-naeICMPTypeCode = lens _naeICMPTypeCode (\ s a -> s{_naeICMPTypeCode = a});---- | The rule number for the entry. ACL entries are processed in ascending--- order by rule number.-naeRuleNumber :: Lens' NetworkACLEntry (Maybe Int)-naeRuleNumber = lens _naeRuleNumber (\ s a -> s{_naeRuleNumber = a});---- | Indicates whether to allow or deny the traffic that matches the rule.-naeRuleAction :: Lens' NetworkACLEntry (Maybe RuleAction)-naeRuleAction = lens _naeRuleAction (\ s a -> s{_naeRuleAction = a});---- | The protocol. A value of '-1' means all protocols.-naeProtocol :: Lens' NetworkACLEntry (Maybe Text)-naeProtocol = lens _naeProtocol (\ s a -> s{_naeProtocol = a});---- | TCP or UDP protocols: The range of ports the rule applies to.-naePortRange :: Lens' NetworkACLEntry (Maybe PortRange)-naePortRange = lens _naePortRange (\ s a -> s{_naePortRange = a});---- | The network range to allow or deny, in CIDR notation.-naeCIdRBlock :: Lens' NetworkACLEntry (Maybe Text)-naeCIdRBlock = lens _naeCIdRBlock (\ s a -> s{_naeCIdRBlock = a});---- | Indicates whether the rule is an egress rule (applied to traffic leaving--- the subnet).-naeEgress :: Lens' NetworkACLEntry (Maybe Bool)-naeEgress = lens _naeEgress (\ s a -> s{_naeEgress = a});--instance FromXML NetworkACLEntry where-        parseXML x-          = NetworkACLEntry' <$>-              (x .@? "icmpTypeCode") <*> (x .@? "ruleNumber") <*>-                (x .@? "ruleAction")-                <*> (x .@? "protocol")-                <*> (x .@? "portRange")-                <*> (x .@? "cidrBlock")-                <*> (x .@? "egress")---- | Describes a network interface.------ /See:/ 'networkInterface' smart constructor.-data NetworkInterface = NetworkInterface'-    { _niGroups             :: !(Maybe [GroupIdentifier])-    , _niStatus             :: !(Maybe NetworkInterfaceStatus)-    , _niPrivateIPAddresses :: !(Maybe [NetworkInterfacePrivateIPAddress])-    , _niSourceDestCheck    :: !(Maybe Bool)-    , _niInterfaceType      :: !(Maybe NetworkInterfaceType)-    , _niVPCId              :: !(Maybe Text)-    , _niTagSet             :: !(Maybe [Tag])-    , _niRequesterManaged   :: !(Maybe Bool)-    , _niNetworkInterfaceId :: !(Maybe Text)-    , _niSubnetId           :: !(Maybe Text)-    , _niMACAddress         :: !(Maybe Text)-    , _niAttachment         :: !(Maybe NetworkInterfaceAttachment)-    , _niOwnerId            :: !(Maybe Text)-    , _niAvailabilityZone   :: !(Maybe Text)-    , _niPrivateIPAddress   :: !(Maybe Text)-    , _niPrivateDNSName     :: !(Maybe Text)-    , _niRequesterId        :: !(Maybe Text)-    , _niDescription        :: !(Maybe Text)-    , _niAssociation        :: !(Maybe NetworkInterfaceAssociation)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NetworkInterface' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'niGroups'------ * 'niStatus'------ * 'niPrivateIPAddresses'------ * 'niSourceDestCheck'------ * 'niInterfaceType'------ * 'niVPCId'------ * 'niTagSet'------ * 'niRequesterManaged'------ * 'niNetworkInterfaceId'------ * 'niSubnetId'------ * 'niMACAddress'------ * 'niAttachment'------ * 'niOwnerId'------ * 'niAvailabilityZone'------ * 'niPrivateIPAddress'------ * 'niPrivateDNSName'------ * 'niRequesterId'------ * 'niDescription'------ * 'niAssociation'-networkInterface-    :: NetworkInterface-networkInterface =-    NetworkInterface'-    { _niGroups = Nothing-    , _niStatus = Nothing-    , _niPrivateIPAddresses = Nothing-    , _niSourceDestCheck = Nothing-    , _niInterfaceType = Nothing-    , _niVPCId = Nothing-    , _niTagSet = Nothing-    , _niRequesterManaged = Nothing-    , _niNetworkInterfaceId = Nothing-    , _niSubnetId = Nothing-    , _niMACAddress = Nothing-    , _niAttachment = Nothing-    , _niOwnerId = Nothing-    , _niAvailabilityZone = Nothing-    , _niPrivateIPAddress = Nothing-    , _niPrivateDNSName = Nothing-    , _niRequesterId = Nothing-    , _niDescription = Nothing-    , _niAssociation = Nothing-    }---- | Any security groups for the network interface.-niGroups :: Lens' NetworkInterface [GroupIdentifier]-niGroups = lens _niGroups (\ s a -> s{_niGroups = a}) . _Default . _Coerce;---- | The status of the network interface.-niStatus :: Lens' NetworkInterface (Maybe NetworkInterfaceStatus)-niStatus = lens _niStatus (\ s a -> s{_niStatus = a});---- | The private IP addresses associated with the network interface.-niPrivateIPAddresses :: Lens' NetworkInterface [NetworkInterfacePrivateIPAddress]-niPrivateIPAddresses = lens _niPrivateIPAddresses (\ s a -> s{_niPrivateIPAddresses = a}) . _Default . _Coerce;---- | Indicates whether traffic to or from the instance is validated.-niSourceDestCheck :: Lens' NetworkInterface (Maybe Bool)-niSourceDestCheck = lens _niSourceDestCheck (\ s a -> s{_niSourceDestCheck = a});---- | The type of interface.-niInterfaceType :: Lens' NetworkInterface (Maybe NetworkInterfaceType)-niInterfaceType = lens _niInterfaceType (\ s a -> s{_niInterfaceType = a});---- | The ID of the VPC.-niVPCId :: Lens' NetworkInterface (Maybe Text)-niVPCId = lens _niVPCId (\ s a -> s{_niVPCId = a});---- | Any tags assigned to the network interface.-niTagSet :: Lens' NetworkInterface [Tag]-niTagSet = lens _niTagSet (\ s a -> s{_niTagSet = a}) . _Default . _Coerce;---- | Indicates whether the network interface is being managed by AWS.-niRequesterManaged :: Lens' NetworkInterface (Maybe Bool)-niRequesterManaged = lens _niRequesterManaged (\ s a -> s{_niRequesterManaged = a});---- | The ID of the network interface.-niNetworkInterfaceId :: Lens' NetworkInterface (Maybe Text)-niNetworkInterfaceId = lens _niNetworkInterfaceId (\ s a -> s{_niNetworkInterfaceId = a});---- | The ID of the subnet.-niSubnetId :: Lens' NetworkInterface (Maybe Text)-niSubnetId = lens _niSubnetId (\ s a -> s{_niSubnetId = a});---- | The MAC address.-niMACAddress :: Lens' NetworkInterface (Maybe Text)-niMACAddress = lens _niMACAddress (\ s a -> s{_niMACAddress = a});---- | The network interface attachment.-niAttachment :: Lens' NetworkInterface (Maybe NetworkInterfaceAttachment)-niAttachment = lens _niAttachment (\ s a -> s{_niAttachment = a});---- | The AWS account ID of the owner of the network interface.-niOwnerId :: Lens' NetworkInterface (Maybe Text)-niOwnerId = lens _niOwnerId (\ s a -> s{_niOwnerId = a});---- | The Availability Zone.-niAvailabilityZone :: Lens' NetworkInterface (Maybe Text)-niAvailabilityZone = lens _niAvailabilityZone (\ s a -> s{_niAvailabilityZone = a});---- | The IP address of the network interface within the subnet.-niPrivateIPAddress :: Lens' NetworkInterface (Maybe Text)-niPrivateIPAddress = lens _niPrivateIPAddress (\ s a -> s{_niPrivateIPAddress = a});---- | The private DNS name.-niPrivateDNSName :: Lens' NetworkInterface (Maybe Text)-niPrivateDNSName = lens _niPrivateDNSName (\ s a -> s{_niPrivateDNSName = a});---- | The ID of the entity that launched the instance on your behalf (for--- example, AWS Management Console or Auto Scaling).-niRequesterId :: Lens' NetworkInterface (Maybe Text)-niRequesterId = lens _niRequesterId (\ s a -> s{_niRequesterId = a});---- | A description.-niDescription :: Lens' NetworkInterface (Maybe Text)-niDescription = lens _niDescription (\ s a -> s{_niDescription = a});---- | The association information for an Elastic IP associated with the--- network interface.-niAssociation :: Lens' NetworkInterface (Maybe NetworkInterfaceAssociation)-niAssociation = lens _niAssociation (\ s a -> s{_niAssociation = a});--instance FromXML NetworkInterface where-        parseXML x-          = NetworkInterface' <$>-              (x .@? "groupSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "status")-                <*>-                (x .@? "privateIpAddressesSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "sourceDestCheck")-                <*> (x .@? "interfaceType")-                <*> (x .@? "vpcId")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "requesterManaged")-                <*> (x .@? "networkInterfaceId")-                <*> (x .@? "subnetId")-                <*> (x .@? "macAddress")-                <*> (x .@? "attachment")-                <*> (x .@? "ownerId")-                <*> (x .@? "availabilityZone")-                <*> (x .@? "privateIpAddress")-                <*> (x .@? "privateDnsName")-                <*> (x .@? "requesterId")-                <*> (x .@? "description")-                <*> (x .@? "association")---- | Describes association information for an Elastic IP address.------ /See:/ 'networkInterfaceAssociation' smart constructor.-data NetworkInterfaceAssociation = NetworkInterfaceAssociation'-    { _niaAssociationId :: !(Maybe Text)-    , _niaPublicDNSName :: !(Maybe Text)-    , _niaAllocationId  :: !(Maybe Text)-    , _niaIPOwnerId     :: !(Maybe Text)-    , _niaPublicIP      :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NetworkInterfaceAssociation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'niaAssociationId'------ * 'niaPublicDNSName'------ * 'niaAllocationId'------ * 'niaIPOwnerId'------ * 'niaPublicIP'-networkInterfaceAssociation-    :: NetworkInterfaceAssociation-networkInterfaceAssociation =-    NetworkInterfaceAssociation'-    { _niaAssociationId = Nothing-    , _niaPublicDNSName = Nothing-    , _niaAllocationId = Nothing-    , _niaIPOwnerId = Nothing-    , _niaPublicIP = Nothing-    }---- | The association ID.-niaAssociationId :: Lens' NetworkInterfaceAssociation (Maybe Text)-niaAssociationId = lens _niaAssociationId (\ s a -> s{_niaAssociationId = a});---- | The public DNS name.-niaPublicDNSName :: Lens' NetworkInterfaceAssociation (Maybe Text)-niaPublicDNSName = lens _niaPublicDNSName (\ s a -> s{_niaPublicDNSName = a});---- | The allocation ID.-niaAllocationId :: Lens' NetworkInterfaceAssociation (Maybe Text)-niaAllocationId = lens _niaAllocationId (\ s a -> s{_niaAllocationId = a});---- | The ID of the Elastic IP address owner.-niaIPOwnerId :: Lens' NetworkInterfaceAssociation (Maybe Text)-niaIPOwnerId = lens _niaIPOwnerId (\ s a -> s{_niaIPOwnerId = a});---- | The address of the Elastic IP address bound to the network interface.-niaPublicIP :: Lens' NetworkInterfaceAssociation (Maybe Text)-niaPublicIP = lens _niaPublicIP (\ s a -> s{_niaPublicIP = a});--instance FromXML NetworkInterfaceAssociation where-        parseXML x-          = NetworkInterfaceAssociation' <$>-              (x .@? "associationId") <*> (x .@? "publicDnsName")-                <*> (x .@? "allocationId")-                <*> (x .@? "ipOwnerId")-                <*> (x .@? "publicIp")---- | Describes a network interface attachment.------ /See:/ 'networkInterfaceAttachment' smart constructor.-data NetworkInterfaceAttachment = NetworkInterfaceAttachment'-    { _niaInstanceId          :: !(Maybe Text)-    , _niaStatus              :: !(Maybe AttachmentStatus)-    , _niaDeleteOnTermination :: !(Maybe Bool)-    , _niaAttachmentId        :: !(Maybe Text)-    , _niaInstanceOwnerId     :: !(Maybe Text)-    , _niaAttachTime          :: !(Maybe ISO8601)-    , _niaDeviceIndex         :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NetworkInterfaceAttachment' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'niaInstanceId'------ * 'niaStatus'------ * 'niaDeleteOnTermination'------ * 'niaAttachmentId'------ * 'niaInstanceOwnerId'------ * 'niaAttachTime'------ * 'niaDeviceIndex'-networkInterfaceAttachment-    :: NetworkInterfaceAttachment-networkInterfaceAttachment =-    NetworkInterfaceAttachment'-    { _niaInstanceId = Nothing-    , _niaStatus = Nothing-    , _niaDeleteOnTermination = Nothing-    , _niaAttachmentId = Nothing-    , _niaInstanceOwnerId = Nothing-    , _niaAttachTime = Nothing-    , _niaDeviceIndex = Nothing-    }---- | The ID of the instance.-niaInstanceId :: Lens' NetworkInterfaceAttachment (Maybe Text)-niaInstanceId = lens _niaInstanceId (\ s a -> s{_niaInstanceId = a});---- | The attachment state.-niaStatus :: Lens' NetworkInterfaceAttachment (Maybe AttachmentStatus)-niaStatus = lens _niaStatus (\ s a -> s{_niaStatus = a});---- | Indicates whether the network interface is deleted when the instance is--- terminated.-niaDeleteOnTermination :: Lens' NetworkInterfaceAttachment (Maybe Bool)-niaDeleteOnTermination = lens _niaDeleteOnTermination (\ s a -> s{_niaDeleteOnTermination = a});---- | The ID of the network interface attachment.-niaAttachmentId :: Lens' NetworkInterfaceAttachment (Maybe Text)-niaAttachmentId = lens _niaAttachmentId (\ s a -> s{_niaAttachmentId = a});---- | The AWS account ID of the owner of the instance.-niaInstanceOwnerId :: Lens' NetworkInterfaceAttachment (Maybe Text)-niaInstanceOwnerId = lens _niaInstanceOwnerId (\ s a -> s{_niaInstanceOwnerId = a});---- | The timestamp indicating when the attachment initiated.-niaAttachTime :: Lens' NetworkInterfaceAttachment (Maybe UTCTime)-niaAttachTime = lens _niaAttachTime (\ s a -> s{_niaAttachTime = a}) . mapping _Time;---- | The device index of the network interface attachment on the instance.-niaDeviceIndex :: Lens' NetworkInterfaceAttachment (Maybe Int)-niaDeviceIndex = lens _niaDeviceIndex (\ s a -> s{_niaDeviceIndex = a});--instance FromXML NetworkInterfaceAttachment where-        parseXML x-          = NetworkInterfaceAttachment' <$>-              (x .@? "instanceId") <*> (x .@? "status") <*>-                (x .@? "deleteOnTermination")-                <*> (x .@? "attachmentId")-                <*> (x .@? "instanceOwnerId")-                <*> (x .@? "attachTime")-                <*> (x .@? "deviceIndex")---- | Describes an attachment change.------ /See:/ 'networkInterfaceAttachmentChanges' smart constructor.-data NetworkInterfaceAttachmentChanges = NetworkInterfaceAttachmentChanges'-    { _niacDeleteOnTermination :: !(Maybe Bool)-    , _niacAttachmentId        :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NetworkInterfaceAttachmentChanges' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'niacDeleteOnTermination'------ * 'niacAttachmentId'-networkInterfaceAttachmentChanges-    :: NetworkInterfaceAttachmentChanges-networkInterfaceAttachmentChanges =-    NetworkInterfaceAttachmentChanges'-    { _niacDeleteOnTermination = Nothing-    , _niacAttachmentId = Nothing-    }---- | Indicates whether the network interface is deleted when the instance is--- terminated.-niacDeleteOnTermination :: Lens' NetworkInterfaceAttachmentChanges (Maybe Bool)-niacDeleteOnTermination = lens _niacDeleteOnTermination (\ s a -> s{_niacDeleteOnTermination = a});---- | The ID of the network interface attachment.-niacAttachmentId :: Lens' NetworkInterfaceAttachmentChanges (Maybe Text)-niacAttachmentId = lens _niacAttachmentId (\ s a -> s{_niacAttachmentId = a});--instance ToQuery NetworkInterfaceAttachmentChanges-         where-        toQuery NetworkInterfaceAttachmentChanges'{..}-          = mconcat-              ["DeleteOnTermination" =: _niacDeleteOnTermination,-               "AttachmentId" =: _niacAttachmentId]---- | Describes the private IP address of a network interface.------ /See:/ 'networkInterfacePrivateIPAddress' smart constructor.-data NetworkInterfacePrivateIPAddress = NetworkInterfacePrivateIPAddress'-    { _nipiaPrimary          :: !(Maybe Bool)-    , _nipiaPrivateIPAddress :: !(Maybe Text)-    , _nipiaPrivateDNSName   :: !(Maybe Text)-    , _nipiaAssociation      :: !(Maybe NetworkInterfaceAssociation)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NetworkInterfacePrivateIPAddress' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'nipiaPrimary'------ * 'nipiaPrivateIPAddress'------ * 'nipiaPrivateDNSName'------ * 'nipiaAssociation'-networkInterfacePrivateIPAddress-    :: NetworkInterfacePrivateIPAddress-networkInterfacePrivateIPAddress =-    NetworkInterfacePrivateIPAddress'-    { _nipiaPrimary = Nothing-    , _nipiaPrivateIPAddress = Nothing-    , _nipiaPrivateDNSName = Nothing-    , _nipiaAssociation = Nothing-    }---- | Indicates whether this IP address is the primary private IP address of--- the network interface.-nipiaPrimary :: Lens' NetworkInterfacePrivateIPAddress (Maybe Bool)-nipiaPrimary = lens _nipiaPrimary (\ s a -> s{_nipiaPrimary = a});---- | The private IP address.-nipiaPrivateIPAddress :: Lens' NetworkInterfacePrivateIPAddress (Maybe Text)-nipiaPrivateIPAddress = lens _nipiaPrivateIPAddress (\ s a -> s{_nipiaPrivateIPAddress = a});---- | The private DNS name.-nipiaPrivateDNSName :: Lens' NetworkInterfacePrivateIPAddress (Maybe Text)-nipiaPrivateDNSName = lens _nipiaPrivateDNSName (\ s a -> s{_nipiaPrivateDNSName = a});---- | The association information for an Elastic IP address associated with--- the network interface.-nipiaAssociation :: Lens' NetworkInterfacePrivateIPAddress (Maybe NetworkInterfaceAssociation)-nipiaAssociation = lens _nipiaAssociation (\ s a -> s{_nipiaAssociation = a});--instance FromXML NetworkInterfacePrivateIPAddress-         where-        parseXML x-          = NetworkInterfacePrivateIPAddress' <$>-              (x .@? "primary") <*> (x .@? "privateIpAddress") <*>-                (x .@? "privateDnsName")-                <*> (x .@? "association")---- | /See:/ 'newDHCPConfiguration' smart constructor.-data NewDHCPConfiguration = NewDHCPConfiguration'-    { _ndcValues :: !(Maybe [Text])-    , _ndcKey    :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NewDHCPConfiguration' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ndcValues'------ * 'ndcKey'-newDHCPConfiguration-    :: NewDHCPConfiguration-newDHCPConfiguration =-    NewDHCPConfiguration'-    { _ndcValues = Nothing-    , _ndcKey = Nothing-    }---- | Undocumented member.-ndcValues :: Lens' NewDHCPConfiguration [Text]-ndcValues = lens _ndcValues (\ s a -> s{_ndcValues = a}) . _Default . _Coerce;---- | Undocumented member.-ndcKey :: Lens' NewDHCPConfiguration (Maybe Text)-ndcKey = lens _ndcKey (\ s a -> s{_ndcKey = a});--instance ToQuery NewDHCPConfiguration where-        toQuery NewDHCPConfiguration'{..}-          = mconcat-              [toQuery (toQueryList "Value" <$> _ndcValues),-               "Key" =: _ndcKey]---- | Describes the placement for the instance.------ /See:/ 'placement' smart constructor.-data Placement = Placement'-    { _pAffinity         :: !(Maybe Text)-    , _pHostId           :: !(Maybe Text)-    , _pAvailabilityZone :: !(Maybe Text)-    , _pTenancy          :: !(Maybe Tenancy)-    , _pGroupName        :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Placement' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pAffinity'------ * 'pHostId'------ * 'pAvailabilityZone'------ * 'pTenancy'------ * 'pGroupName'-placement-    :: Placement-placement =-    Placement'-    { _pAffinity = Nothing-    , _pHostId = Nothing-    , _pAvailabilityZone = Nothing-    , _pTenancy = Nothing-    , _pGroupName = Nothing-    }---- | The affinity setting for the instance on the Dedicated host. This--- parameter is not supported for the ImportInstance command.-pAffinity :: Lens' Placement (Maybe Text)-pAffinity = lens _pAffinity (\ s a -> s{_pAffinity = a});---- | The ID of the Dedicted host on which the instance resides. This--- parameter is not support for the ImportInstance command.-pHostId :: Lens' Placement (Maybe Text)-pHostId = lens _pHostId (\ s a -> s{_pHostId = a});---- | The Availability Zone of the instance.-pAvailabilityZone :: Lens' Placement (Maybe Text)-pAvailabilityZone = lens _pAvailabilityZone (\ s a -> s{_pAvailabilityZone = a});---- | The tenancy of the instance (if the instance is running in a VPC). An--- instance with a tenancy of 'dedicated' runs on single-tenant hardware.--- The 'host' tenancy is not supported for the ImportInstance command.-pTenancy :: Lens' Placement (Maybe Tenancy)-pTenancy = lens _pTenancy (\ s a -> s{_pTenancy = a});---- | The name of the placement group the instance is in (for cluster compute--- instances).-pGroupName :: Lens' Placement (Maybe Text)-pGroupName = lens _pGroupName (\ s a -> s{_pGroupName = a});--instance FromXML Placement where-        parseXML x-          = Placement' <$>-              (x .@? "affinity") <*> (x .@? "hostId") <*>-                (x .@? "availabilityZone")-                <*> (x .@? "tenancy")-                <*> (x .@? "groupName")--instance ToQuery Placement where-        toQuery Placement'{..}-          = mconcat-              ["Affinity" =: _pAffinity, "HostId" =: _pHostId,-               "AvailabilityZone" =: _pAvailabilityZone,-               "Tenancy" =: _pTenancy, "GroupName" =: _pGroupName]---- | Describes a placement group.------ /See:/ 'placementGroup' smart constructor.-data PlacementGroup = PlacementGroup'-    { _pgState     :: !(Maybe PlacementGroupState)-    , _pgStrategy  :: !(Maybe PlacementStrategy)-    , _pgGroupName :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PlacementGroup' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pgState'------ * 'pgStrategy'------ * 'pgGroupName'-placementGroup-    :: PlacementGroup-placementGroup =-    PlacementGroup'-    { _pgState = Nothing-    , _pgStrategy = Nothing-    , _pgGroupName = Nothing-    }---- | The state of the placement group.-pgState :: Lens' PlacementGroup (Maybe PlacementGroupState)-pgState = lens _pgState (\ s a -> s{_pgState = a});---- | The placement strategy.-pgStrategy :: Lens' PlacementGroup (Maybe PlacementStrategy)-pgStrategy = lens _pgStrategy (\ s a -> s{_pgStrategy = a});---- | The name of the placement group.-pgGroupName :: Lens' PlacementGroup (Maybe Text)-pgGroupName = lens _pgGroupName (\ s a -> s{_pgGroupName = a});--instance FromXML PlacementGroup where-        parseXML x-          = PlacementGroup' <$>-              (x .@? "state") <*> (x .@? "strategy") <*>-                (x .@? "groupName")---- | Describes a range of ports.------ /See:/ 'portRange' smart constructor.-data PortRange = PortRange'-    { _prTo   :: !(Maybe Int)-    , _prFrom :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PortRange' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'prTo'------ * 'prFrom'-portRange-    :: PortRange-portRange =-    PortRange'-    { _prTo = Nothing-    , _prFrom = Nothing-    }---- | The last port in the range.-prTo :: Lens' PortRange (Maybe Int)-prTo = lens _prTo (\ s a -> s{_prTo = a});---- | The first port in the range.-prFrom :: Lens' PortRange (Maybe Int)-prFrom = lens _prFrom (\ s a -> s{_prFrom = a});--instance FromXML PortRange where-        parseXML x-          = PortRange' <$> (x .@? "to") <*> (x .@? "from")--instance ToQuery PortRange where-        toQuery PortRange'{..}-          = mconcat ["To" =: _prTo, "From" =: _prFrom]---- | Describes prefixes for AWS services.------ /See:/ 'prefixList' smart constructor.-data PrefixList = PrefixList'-    { _plCIdRs          :: !(Maybe [Text])-    , _plPrefixListId   :: !(Maybe Text)-    , _plPrefixListName :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PrefixList' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'plCIdRs'------ * 'plPrefixListId'------ * 'plPrefixListName'-prefixList-    :: PrefixList-prefixList =-    PrefixList'-    { _plCIdRs = Nothing-    , _plPrefixListId = Nothing-    , _plPrefixListName = Nothing-    }---- | The IP address range of the AWS service.-plCIdRs :: Lens' PrefixList [Text]-plCIdRs = lens _plCIdRs (\ s a -> s{_plCIdRs = a}) . _Default . _Coerce;---- | The ID of the prefix.-plPrefixListId :: Lens' PrefixList (Maybe Text)-plPrefixListId = lens _plPrefixListId (\ s a -> s{_plPrefixListId = a});---- | The name of the prefix.-plPrefixListName :: Lens' PrefixList (Maybe Text)-plPrefixListName = lens _plPrefixListName (\ s a -> s{_plPrefixListName = a});--instance FromXML PrefixList where-        parseXML x-          = PrefixList' <$>-              (x .@? "cidrSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "prefixListId")-                <*> (x .@? "prefixListName")---- | The ID of the prefix.------ /See:/ 'prefixListId' smart constructor.-newtype PrefixListId = PrefixListId'-    { _pliPrefixListId :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PrefixListId' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pliPrefixListId'-prefixListId-    :: PrefixListId-prefixListId =-    PrefixListId'-    { _pliPrefixListId = Nothing-    }---- | The ID of the prefix.-pliPrefixListId :: Lens' PrefixListId (Maybe Text)-pliPrefixListId = lens _pliPrefixListId (\ s a -> s{_pliPrefixListId = a});--instance FromXML PrefixListId where-        parseXML x = PrefixListId' <$> (x .@? "prefixListId")--instance ToQuery PrefixListId where-        toQuery PrefixListId'{..}-          = mconcat ["PrefixListId" =: _pliPrefixListId]---- | Describes the price for a Reserved instance.------ /See:/ 'priceSchedule' smart constructor.-data PriceSchedule = PriceSchedule'-    { _psCurrencyCode :: !(Maybe CurrencyCodeValues)-    , _psTerm         :: !(Maybe Integer)-    , _psActive       :: !(Maybe Bool)-    , _psPrice        :: !(Maybe Double)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PriceSchedule' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'psCurrencyCode'------ * 'psTerm'------ * 'psActive'------ * 'psPrice'-priceSchedule-    :: PriceSchedule-priceSchedule =-    PriceSchedule'-    { _psCurrencyCode = Nothing-    , _psTerm = Nothing-    , _psActive = Nothing-    , _psPrice = Nothing-    }---- | The currency for transacting the Reserved instance resale. At this time,--- the only supported currency is 'USD'.-psCurrencyCode :: Lens' PriceSchedule (Maybe CurrencyCodeValues)-psCurrencyCode = lens _psCurrencyCode (\ s a -> s{_psCurrencyCode = a});---- | The number of months remaining in the reservation. For example, 2 is the--- second to the last month before the capacity reservation expires.-psTerm :: Lens' PriceSchedule (Maybe Integer)-psTerm = lens _psTerm (\ s a -> s{_psTerm = a});---- | The current price schedule, as determined by the term remaining for the--- Reserved instance in the listing.------ A specific price schedule is always in effect, but only one price--- schedule can be active at any time. Take, for example, a Reserved--- instance listing that has five months remaining in its term. When you--- specify price schedules for five months and two months, this means that--- schedule 1, covering the first three months of the remaining term, will--- be active during months 5, 4, and 3. Then schedule 2, covering the last--- two months of the term, will be active for months 2 and 1.-psActive :: Lens' PriceSchedule (Maybe Bool)-psActive = lens _psActive (\ s a -> s{_psActive = a});---- | The fixed price for the term.-psPrice :: Lens' PriceSchedule (Maybe Double)-psPrice = lens _psPrice (\ s a -> s{_psPrice = a});--instance FromXML PriceSchedule where-        parseXML x-          = PriceSchedule' <$>-              (x .@? "currencyCode") <*> (x .@? "term") <*>-                (x .@? "active")-                <*> (x .@? "price")---- | Describes the price for a Reserved instance.------ /See:/ 'priceScheduleSpecification' smart constructor.-data PriceScheduleSpecification = PriceScheduleSpecification'-    { _pssCurrencyCode :: !(Maybe CurrencyCodeValues)-    , _pssTerm         :: !(Maybe Integer)-    , _pssPrice        :: !(Maybe Double)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PriceScheduleSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pssCurrencyCode'------ * 'pssTerm'------ * 'pssPrice'-priceScheduleSpecification-    :: PriceScheduleSpecification-priceScheduleSpecification =-    PriceScheduleSpecification'-    { _pssCurrencyCode = Nothing-    , _pssTerm = Nothing-    , _pssPrice = Nothing-    }---- | The currency for transacting the Reserved instance resale. At this time,--- the only supported currency is 'USD'.-pssCurrencyCode :: Lens' PriceScheduleSpecification (Maybe CurrencyCodeValues)-pssCurrencyCode = lens _pssCurrencyCode (\ s a -> s{_pssCurrencyCode = a});---- | The number of months remaining in the reservation. For example, 2 is the--- second to the last month before the capacity reservation expires.-pssTerm :: Lens' PriceScheduleSpecification (Maybe Integer)-pssTerm = lens _pssTerm (\ s a -> s{_pssTerm = a});---- | The fixed price for the term.-pssPrice :: Lens' PriceScheduleSpecification (Maybe Double)-pssPrice = lens _pssPrice (\ s a -> s{_pssPrice = a});--instance ToQuery PriceScheduleSpecification where-        toQuery PriceScheduleSpecification'{..}-          = mconcat-              ["CurrencyCode" =: _pssCurrencyCode,-               "Term" =: _pssTerm, "Price" =: _pssPrice]---- | Describes a Reserved instance offering.------ /See:/ 'pricingDetail' smart constructor.-data PricingDetail = PricingDetail'-    { _pdCount :: !(Maybe Int)-    , _pdPrice :: !(Maybe Double)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PricingDetail' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pdCount'------ * 'pdPrice'-pricingDetail-    :: PricingDetail-pricingDetail =-    PricingDetail'-    { _pdCount = Nothing-    , _pdPrice = Nothing-    }---- | The number of reservations available for the price.-pdCount :: Lens' PricingDetail (Maybe Int)-pdCount = lens _pdCount (\ s a -> s{_pdCount = a});---- | The price per instance.-pdPrice :: Lens' PricingDetail (Maybe Double)-pdPrice = lens _pdPrice (\ s a -> s{_pdPrice = a});--instance FromXML PricingDetail where-        parseXML x-          = PricingDetail' <$>-              (x .@? "count") <*> (x .@? "price")---- | Describes a secondary private IP address for a network interface.------ /See:/ 'privateIPAddressSpecification' smart constructor.-data PrivateIPAddressSpecification = PrivateIPAddressSpecification'-    { _piasPrimary          :: !(Maybe Bool)-    , _piasPrivateIPAddress :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PrivateIPAddressSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'piasPrimary'------ * 'piasPrivateIPAddress'-privateIPAddressSpecification-    :: Text -- ^ 'piasPrivateIPAddress'-    -> PrivateIPAddressSpecification-privateIPAddressSpecification pPrivateIPAddress_ =-    PrivateIPAddressSpecification'-    { _piasPrimary = Nothing-    , _piasPrivateIPAddress = pPrivateIPAddress_-    }---- | Indicates whether the private IP address is the primary private IP--- address. Only one IP address can be designated as primary.-piasPrimary :: Lens' PrivateIPAddressSpecification (Maybe Bool)-piasPrimary = lens _piasPrimary (\ s a -> s{_piasPrimary = a});---- | The private IP addresses.-piasPrivateIPAddress :: Lens' PrivateIPAddressSpecification Text-piasPrivateIPAddress = lens _piasPrivateIPAddress (\ s a -> s{_piasPrivateIPAddress = a});--instance FromXML PrivateIPAddressSpecification where-        parseXML x-          = PrivateIPAddressSpecification' <$>-              (x .@? "primary") <*> (x .@ "privateIpAddress")--instance ToQuery PrivateIPAddressSpecification where-        toQuery PrivateIPAddressSpecification'{..}-          = mconcat-              ["Primary" =: _piasPrimary,-               "PrivateIpAddress" =: _piasPrivateIPAddress]---- | Describes a product code.------ /See:/ 'productCode' smart constructor.-data ProductCode = ProductCode'-    { _pcProductCodeType :: !(Maybe ProductCodeValues)-    , _pcProductCodeId   :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ProductCode' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pcProductCodeType'------ * 'pcProductCodeId'-productCode-    :: ProductCode-productCode =-    ProductCode'-    { _pcProductCodeType = Nothing-    , _pcProductCodeId = Nothing-    }---- | The type of product code.-pcProductCodeType :: Lens' ProductCode (Maybe ProductCodeValues)-pcProductCodeType = lens _pcProductCodeType (\ s a -> s{_pcProductCodeType = a});---- | The product code.-pcProductCodeId :: Lens' ProductCode (Maybe Text)-pcProductCodeId = lens _pcProductCodeId (\ s a -> s{_pcProductCodeId = a});--instance FromXML ProductCode where-        parseXML x-          = ProductCode' <$>-              (x .@? "type") <*> (x .@? "productCode")---- | Describes a virtual private gateway propagating route.------ /See:/ 'propagatingVGW' smart constructor.-newtype PropagatingVGW = PropagatingVGW'-    { _pvGatewayId :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PropagatingVGW' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pvGatewayId'-propagatingVGW-    :: PropagatingVGW-propagatingVGW =-    PropagatingVGW'-    { _pvGatewayId = Nothing-    }---- | The ID of the virtual private gateway (VGW).-pvGatewayId :: Lens' PropagatingVGW (Maybe Text)-pvGatewayId = lens _pvGatewayId (\ s a -> s{_pvGatewayId = a});--instance FromXML PropagatingVGW where-        parseXML x = PropagatingVGW' <$> (x .@? "gatewayId")---- | Describes a recurring charge.------ /See:/ 'recurringCharge' smart constructor.-data RecurringCharge = RecurringCharge'-    { _rcAmount    :: !(Maybe Double)-    , _rcFrequency :: !(Maybe RecurringChargeFrequency)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'RecurringCharge' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rcAmount'------ * 'rcFrequency'-recurringCharge-    :: RecurringCharge-recurringCharge =-    RecurringCharge'-    { _rcAmount = Nothing-    , _rcFrequency = Nothing-    }---- | The amount of the recurring charge.-rcAmount :: Lens' RecurringCharge (Maybe Double)-rcAmount = lens _rcAmount (\ s a -> s{_rcAmount = a});---- | The frequency of the recurring charge.-rcFrequency :: Lens' RecurringCharge (Maybe RecurringChargeFrequency)-rcFrequency = lens _rcFrequency (\ s a -> s{_rcFrequency = a});--instance FromXML RecurringCharge where-        parseXML x-          = RecurringCharge' <$>-              (x .@? "amount") <*> (x .@? "frequency")---- | Describes a region.------ /See:/ 'regionInfo' smart constructor.-data RegionInfo = RegionInfo'-    { _riRegionName :: !(Maybe Text)-    , _riEndpoint   :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'RegionInfo' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'riRegionName'------ * 'riEndpoint'-regionInfo-    :: RegionInfo-regionInfo =-    RegionInfo'-    { _riRegionName = Nothing-    , _riEndpoint = Nothing-    }---- | The name of the region.-riRegionName :: Lens' RegionInfo (Maybe Text)-riRegionName = lens _riRegionName (\ s a -> s{_riRegionName = a});---- | The region service endpoint.-riEndpoint :: Lens' RegionInfo (Maybe Text)-riEndpoint = lens _riEndpoint (\ s a -> s{_riEndpoint = a});--instance FromXML RegionInfo where-        parseXML x-          = RegionInfo' <$>-              (x .@? "regionName") <*> (x .@? "regionEndpoint")---- | Describes the launch specification for an instance.------ /See:/ 'requestSpotLaunchSpecification' smart constructor.-data RequestSpotLaunchSpecification = RequestSpotLaunchSpecification'-    { _rslsSecurityGroupIds    :: !(Maybe [Text])-    , _rslsSecurityGroups      :: !(Maybe [Text])-    , _rslsKeyName             :: !(Maybe Text)-    , _rslsNetworkInterfaces   :: !(Maybe [InstanceNetworkInterfaceSpecification])-    , _rslsRAMDiskId           :: !(Maybe Text)-    , _rslsSubnetId            :: !(Maybe Text)-    , _rslsKernelId            :: !(Maybe Text)-    , _rslsInstanceType        :: !(Maybe InstanceType)-    , _rslsEBSOptimized        :: !(Maybe Bool)-    , _rslsUserData            :: !(Maybe Text)-    , _rslsMonitoring          :: !(Maybe RunInstancesMonitoringEnabled)-    , _rslsIAMInstanceProfile  :: !(Maybe IAMInstanceProfileSpecification)-    , _rslsImageId             :: !(Maybe Text)-    , _rslsAddressingType      :: !(Maybe Text)-    , _rslsBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])-    , _rslsPlacement           :: !(Maybe SpotPlacement)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'RequestSpotLaunchSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rslsSecurityGroupIds'------ * 'rslsSecurityGroups'------ * 'rslsKeyName'------ * 'rslsNetworkInterfaces'------ * 'rslsRAMDiskId'------ * 'rslsSubnetId'------ * 'rslsKernelId'------ * 'rslsInstanceType'------ * 'rslsEBSOptimized'------ * 'rslsUserData'------ * 'rslsMonitoring'------ * 'rslsIAMInstanceProfile'------ * 'rslsImageId'------ * 'rslsAddressingType'------ * 'rslsBlockDeviceMappings'------ * 'rslsPlacement'-requestSpotLaunchSpecification-    :: RequestSpotLaunchSpecification-requestSpotLaunchSpecification =-    RequestSpotLaunchSpecification'-    { _rslsSecurityGroupIds = Nothing-    , _rslsSecurityGroups = Nothing-    , _rslsKeyName = Nothing-    , _rslsNetworkInterfaces = Nothing-    , _rslsRAMDiskId = Nothing-    , _rslsSubnetId = Nothing-    , _rslsKernelId = Nothing-    , _rslsInstanceType = Nothing-    , _rslsEBSOptimized = Nothing-    , _rslsUserData = Nothing-    , _rslsMonitoring = Nothing-    , _rslsIAMInstanceProfile = Nothing-    , _rslsImageId = Nothing-    , _rslsAddressingType = Nothing-    , _rslsBlockDeviceMappings = Nothing-    , _rslsPlacement = Nothing-    }---- | Undocumented member.-rslsSecurityGroupIds :: Lens' RequestSpotLaunchSpecification [Text]-rslsSecurityGroupIds = lens _rslsSecurityGroupIds (\ s a -> s{_rslsSecurityGroupIds = a}) . _Default . _Coerce;---- | Undocumented member.-rslsSecurityGroups :: Lens' RequestSpotLaunchSpecification [Text]-rslsSecurityGroups = lens _rslsSecurityGroups (\ s a -> s{_rslsSecurityGroups = a}) . _Default . _Coerce;---- | The name of the key pair.-rslsKeyName :: Lens' RequestSpotLaunchSpecification (Maybe Text)-rslsKeyName = lens _rslsKeyName (\ s a -> s{_rslsKeyName = a});---- | One or more network interfaces.-rslsNetworkInterfaces :: Lens' RequestSpotLaunchSpecification [InstanceNetworkInterfaceSpecification]-rslsNetworkInterfaces = lens _rslsNetworkInterfaces (\ s a -> s{_rslsNetworkInterfaces = a}) . _Default . _Coerce;---- | The ID of the RAM disk.-rslsRAMDiskId :: Lens' RequestSpotLaunchSpecification (Maybe Text)-rslsRAMDiskId = lens _rslsRAMDiskId (\ s a -> s{_rslsRAMDiskId = a});---- | The ID of the subnet in which to launch the instance.-rslsSubnetId :: Lens' RequestSpotLaunchSpecification (Maybe Text)-rslsSubnetId = lens _rslsSubnetId (\ s a -> s{_rslsSubnetId = a});---- | The ID of the kernel.-rslsKernelId :: Lens' RequestSpotLaunchSpecification (Maybe Text)-rslsKernelId = lens _rslsKernelId (\ s a -> s{_rslsKernelId = a});---- | The instance type.-rslsInstanceType :: Lens' RequestSpotLaunchSpecification (Maybe InstanceType)-rslsInstanceType = lens _rslsInstanceType (\ s a -> s{_rslsInstanceType = a});---- | Indicates whether the instance is optimized for EBS I\/O. This--- optimization provides dedicated throughput to Amazon EBS and an--- optimized configuration stack to provide optimal EBS I\/O performance.--- This optimization isn\'t available with all instance types. Additional--- usage charges apply when using an EBS Optimized instance.------ Default: 'false'-rslsEBSOptimized :: Lens' RequestSpotLaunchSpecification (Maybe Bool)-rslsEBSOptimized = lens _rslsEBSOptimized (\ s a -> s{_rslsEBSOptimized = a});---- | The Base64-encoded MIME user data to make available to the instances.-rslsUserData :: Lens' RequestSpotLaunchSpecification (Maybe Text)-rslsUserData = lens _rslsUserData (\ s a -> s{_rslsUserData = a});---- | Undocumented member.-rslsMonitoring :: Lens' RequestSpotLaunchSpecification (Maybe RunInstancesMonitoringEnabled)-rslsMonitoring = lens _rslsMonitoring (\ s a -> s{_rslsMonitoring = a});---- | The IAM instance profile.-rslsIAMInstanceProfile :: Lens' RequestSpotLaunchSpecification (Maybe IAMInstanceProfileSpecification)-rslsIAMInstanceProfile = lens _rslsIAMInstanceProfile (\ s a -> s{_rslsIAMInstanceProfile = a});---- | The ID of the AMI.-rslsImageId :: Lens' RequestSpotLaunchSpecification (Maybe Text)-rslsImageId = lens _rslsImageId (\ s a -> s{_rslsImageId = a});---- | Deprecated.-rslsAddressingType :: Lens' RequestSpotLaunchSpecification (Maybe Text)-rslsAddressingType = lens _rslsAddressingType (\ s a -> s{_rslsAddressingType = a});---- | One or more block device mapping entries.-rslsBlockDeviceMappings :: Lens' RequestSpotLaunchSpecification [BlockDeviceMapping]-rslsBlockDeviceMappings = lens _rslsBlockDeviceMappings (\ s a -> s{_rslsBlockDeviceMappings = a}) . _Default . _Coerce;---- | The placement information for the instance.-rslsPlacement :: Lens' RequestSpotLaunchSpecification (Maybe SpotPlacement)-rslsPlacement = lens _rslsPlacement (\ s a -> s{_rslsPlacement = a});--instance ToQuery RequestSpotLaunchSpecification where-        toQuery RequestSpotLaunchSpecification'{..}-          = mconcat-              [toQuery-                 (toQueryList "SecurityGroupId" <$>-                    _rslsSecurityGroupIds),-               toQuery-                 (toQueryList "SecurityGroup" <$>-                    _rslsSecurityGroups),-               "KeyName" =: _rslsKeyName,-               toQuery-                 (toQueryList "NetworkInterface" <$>-                    _rslsNetworkInterfaces),-               "RamdiskId" =: _rslsRAMDiskId,-               "SubnetId" =: _rslsSubnetId,-               "KernelId" =: _rslsKernelId,-               "InstanceType" =: _rslsInstanceType,-               "EbsOptimized" =: _rslsEBSOptimized,-               "UserData" =: _rslsUserData,-               "Monitoring" =: _rslsMonitoring,-               "IamInstanceProfile" =: _rslsIAMInstanceProfile,-               "ImageId" =: _rslsImageId,-               "AddressingType" =: _rslsAddressingType,-               toQuery-                 (toQueryList "BlockDeviceMapping" <$>-                    _rslsBlockDeviceMappings),-               "Placement" =: _rslsPlacement]---- | Describes a reservation.------ /See:/ 'reservation' smart constructor.-data Reservation = Reservation'-    { _rGroups        :: !(Maybe [GroupIdentifier])-    , _rInstances     :: !(Maybe [Instance])-    , _rRequesterId   :: !(Maybe Text)-    , _rReservationId :: !Text-    , _rOwnerId       :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Reservation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rGroups'------ * 'rInstances'------ * 'rRequesterId'------ * 'rReservationId'------ * 'rOwnerId'-reservation-    :: Text -- ^ 'rReservationId'-    -> Text -- ^ 'rOwnerId'-    -> Reservation-reservation pReservationId_ pOwnerId_ =-    Reservation'-    { _rGroups = Nothing-    , _rInstances = Nothing-    , _rRequesterId = Nothing-    , _rReservationId = pReservationId_-    , _rOwnerId = pOwnerId_-    }---- | One or more security groups.-rGroups :: Lens' Reservation [GroupIdentifier]-rGroups = lens _rGroups (\ s a -> s{_rGroups = a}) . _Default . _Coerce;---- | One or more instances.-rInstances :: Lens' Reservation [Instance]-rInstances = lens _rInstances (\ s a -> s{_rInstances = a}) . _Default . _Coerce;---- | The ID of the requester that launched the instances on your behalf (for--- example, AWS Management Console or Auto Scaling).-rRequesterId :: Lens' Reservation (Maybe Text)-rRequesterId = lens _rRequesterId (\ s a -> s{_rRequesterId = a});---- | The ID of the reservation.-rReservationId :: Lens' Reservation Text-rReservationId = lens _rReservationId (\ s a -> s{_rReservationId = a});---- | The ID of the AWS account that owns the reservation.-rOwnerId :: Lens' Reservation Text-rOwnerId = lens _rOwnerId (\ s a -> s{_rOwnerId = a});--instance FromXML Reservation where-        parseXML x-          = Reservation' <$>-              (x .@? "groupSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*>-                (x .@? "instancesSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "requesterId")-                <*> (x .@ "reservationId")-                <*> (x .@ "ownerId")---- | Describes the limit price of a Reserved instance offering.------ /See:/ 'reservedInstanceLimitPrice' smart constructor.-data ReservedInstanceLimitPrice = ReservedInstanceLimitPrice'-    { _rilpAmount       :: !(Maybe Double)-    , _rilpCurrencyCode :: !(Maybe CurrencyCodeValues)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReservedInstanceLimitPrice' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rilpAmount'------ * 'rilpCurrencyCode'-reservedInstanceLimitPrice-    :: ReservedInstanceLimitPrice-reservedInstanceLimitPrice =-    ReservedInstanceLimitPrice'-    { _rilpAmount = Nothing-    , _rilpCurrencyCode = Nothing-    }---- | Used for Reserved Instance Marketplace offerings. Specifies the limit--- price on the total order (instanceCount * price).-rilpAmount :: Lens' ReservedInstanceLimitPrice (Maybe Double)-rilpAmount = lens _rilpAmount (\ s a -> s{_rilpAmount = a});---- | The currency in which the 'limitPrice' amount is specified. At this--- time, the only supported currency is 'USD'.-rilpCurrencyCode :: Lens' ReservedInstanceLimitPrice (Maybe CurrencyCodeValues)-rilpCurrencyCode = lens _rilpCurrencyCode (\ s a -> s{_rilpCurrencyCode = a});--instance ToQuery ReservedInstanceLimitPrice where-        toQuery ReservedInstanceLimitPrice'{..}-          = mconcat-              ["Amount" =: _rilpAmount,-               "CurrencyCode" =: _rilpCurrencyCode]---- | Describes a Reserved instance.------ /See:/ 'reservedInstances' smart constructor.-data ReservedInstances = ReservedInstances'-    { _riState               :: !(Maybe ReservedInstanceState)-    , _riCurrencyCode        :: !(Maybe CurrencyCodeValues)-    , _riInstanceCount       :: !(Maybe Int)-    , _riProductDescription  :: !(Maybe RIProductDescription)-    , _riStart               :: !(Maybe ISO8601)-    , _riInstanceType        :: !(Maybe InstanceType)-    , _riEnd                 :: !(Maybe ISO8601)-    , _riAvailabilityZone    :: !(Maybe Text)-    , _riRecurringCharges    :: !(Maybe [RecurringCharge])-    , _riOfferingType        :: !(Maybe OfferingTypeValues)-    , _riUsagePrice          :: !(Maybe Double)-    , _riFixedPrice          :: !(Maybe Double)-    , _riReservedInstancesId :: !(Maybe Text)-    , _riInstanceTenancy     :: !(Maybe Tenancy)-    , _riDuration            :: !(Maybe Integer)-    , _riTags                :: !(Maybe [Tag])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReservedInstances' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'riState'------ * 'riCurrencyCode'------ * 'riInstanceCount'------ * 'riProductDescription'------ * 'riStart'------ * 'riInstanceType'------ * 'riEnd'------ * 'riAvailabilityZone'------ * 'riRecurringCharges'------ * 'riOfferingType'------ * 'riUsagePrice'------ * 'riFixedPrice'------ * 'riReservedInstancesId'------ * 'riInstanceTenancy'------ * 'riDuration'------ * 'riTags'-reservedInstances-    :: ReservedInstances-reservedInstances =-    ReservedInstances'-    { _riState = Nothing-    , _riCurrencyCode = Nothing-    , _riInstanceCount = Nothing-    , _riProductDescription = Nothing-    , _riStart = Nothing-    , _riInstanceType = Nothing-    , _riEnd = Nothing-    , _riAvailabilityZone = Nothing-    , _riRecurringCharges = Nothing-    , _riOfferingType = Nothing-    , _riUsagePrice = Nothing-    , _riFixedPrice = Nothing-    , _riReservedInstancesId = Nothing-    , _riInstanceTenancy = Nothing-    , _riDuration = Nothing-    , _riTags = Nothing-    }---- | The state of the Reserved instance purchase.-riState :: Lens' ReservedInstances (Maybe ReservedInstanceState)-riState = lens _riState (\ s a -> s{_riState = a});---- | The currency of the Reserved instance. It\'s specified using ISO 4217--- standard currency codes. At this time, the only supported currency is--- 'USD'.-riCurrencyCode :: Lens' ReservedInstances (Maybe CurrencyCodeValues)-riCurrencyCode = lens _riCurrencyCode (\ s a -> s{_riCurrencyCode = a});---- | The number of reservations purchased.-riInstanceCount :: Lens' ReservedInstances (Maybe Int)-riInstanceCount = lens _riInstanceCount (\ s a -> s{_riInstanceCount = a});---- | The Reserved instance product platform description.-riProductDescription :: Lens' ReservedInstances (Maybe RIProductDescription)-riProductDescription = lens _riProductDescription (\ s a -> s{_riProductDescription = a});---- | The date and time the Reserved instance started.-riStart :: Lens' ReservedInstances (Maybe UTCTime)-riStart = lens _riStart (\ s a -> s{_riStart = a}) . mapping _Time;---- | The instance type on which the Reserved instance can be used.-riInstanceType :: Lens' ReservedInstances (Maybe InstanceType)-riInstanceType = lens _riInstanceType (\ s a -> s{_riInstanceType = a});---- | The time when the Reserved instance expires.-riEnd :: Lens' ReservedInstances (Maybe UTCTime)-riEnd = lens _riEnd (\ s a -> s{_riEnd = a}) . mapping _Time;---- | The Availability Zone in which the Reserved instance can be used.-riAvailabilityZone :: Lens' ReservedInstances (Maybe Text)-riAvailabilityZone = lens _riAvailabilityZone (\ s a -> s{_riAvailabilityZone = a});---- | The recurring charge tag assigned to the resource.-riRecurringCharges :: Lens' ReservedInstances [RecurringCharge]-riRecurringCharges = lens _riRecurringCharges (\ s a -> s{_riRecurringCharges = a}) . _Default . _Coerce;---- | The Reserved instance offering type.-riOfferingType :: Lens' ReservedInstances (Maybe OfferingTypeValues)-riOfferingType = lens _riOfferingType (\ s a -> s{_riOfferingType = a});---- | The usage price of the Reserved instance, per hour.-riUsagePrice :: Lens' ReservedInstances (Maybe Double)-riUsagePrice = lens _riUsagePrice (\ s a -> s{_riUsagePrice = a});---- | The purchase price of the Reserved instance.-riFixedPrice :: Lens' ReservedInstances (Maybe Double)-riFixedPrice = lens _riFixedPrice (\ s a -> s{_riFixedPrice = a});---- | The ID of the Reserved instance.-riReservedInstancesId :: Lens' ReservedInstances (Maybe Text)-riReservedInstancesId = lens _riReservedInstancesId (\ s a -> s{_riReservedInstancesId = a});---- | The tenancy of the reserved instance.-riInstanceTenancy :: Lens' ReservedInstances (Maybe Tenancy)-riInstanceTenancy = lens _riInstanceTenancy (\ s a -> s{_riInstanceTenancy = a});---- | The duration of the Reserved instance, in seconds.-riDuration :: Lens' ReservedInstances (Maybe Integer)-riDuration = lens _riDuration (\ s a -> s{_riDuration = a});---- | Any tags assigned to the resource.-riTags :: Lens' ReservedInstances [Tag]-riTags = lens _riTags (\ s a -> s{_riTags = a}) . _Default . _Coerce;--instance FromXML ReservedInstances where-        parseXML x-          = ReservedInstances' <$>-              (x .@? "state") <*> (x .@? "currencyCode") <*>-                (x .@? "instanceCount")-                <*> (x .@? "productDescription")-                <*> (x .@? "start")-                <*> (x .@? "instanceType")-                <*> (x .@? "end")-                <*> (x .@? "availabilityZone")-                <*>-                (x .@? "recurringCharges" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "offeringType")-                <*> (x .@? "usagePrice")-                <*> (x .@? "fixedPrice")-                <*> (x .@? "reservedInstancesId")-                <*> (x .@? "instanceTenancy")-                <*> (x .@? "duration")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))---- | Describes the configuration settings for the modified Reserved--- instances.------ /See:/ 'reservedInstancesConfiguration' smart constructor.-data ReservedInstancesConfiguration = ReservedInstancesConfiguration'-    { _ricPlatform         :: !(Maybe Text)-    , _ricInstanceCount    :: !(Maybe Int)-    , _ricInstanceType     :: !(Maybe InstanceType)-    , _ricAvailabilityZone :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReservedInstancesConfiguration' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ricPlatform'------ * 'ricInstanceCount'------ * 'ricInstanceType'------ * 'ricAvailabilityZone'-reservedInstancesConfiguration-    :: ReservedInstancesConfiguration-reservedInstancesConfiguration =-    ReservedInstancesConfiguration'-    { _ricPlatform = Nothing-    , _ricInstanceCount = Nothing-    , _ricInstanceType = Nothing-    , _ricAvailabilityZone = Nothing-    }---- | The network platform of the modified Reserved instances, which is either--- EC2-Classic or EC2-VPC.-ricPlatform :: Lens' ReservedInstancesConfiguration (Maybe Text)-ricPlatform = lens _ricPlatform (\ s a -> s{_ricPlatform = a});---- | The number of modified Reserved instances.-ricInstanceCount :: Lens' ReservedInstancesConfiguration (Maybe Int)-ricInstanceCount = lens _ricInstanceCount (\ s a -> s{_ricInstanceCount = a});---- | The instance type for the modified Reserved instances.-ricInstanceType :: Lens' ReservedInstancesConfiguration (Maybe InstanceType)-ricInstanceType = lens _ricInstanceType (\ s a -> s{_ricInstanceType = a});---- | The Availability Zone for the modified Reserved instances.-ricAvailabilityZone :: Lens' ReservedInstancesConfiguration (Maybe Text)-ricAvailabilityZone = lens _ricAvailabilityZone (\ s a -> s{_ricAvailabilityZone = a});--instance FromXML ReservedInstancesConfiguration where-        parseXML x-          = ReservedInstancesConfiguration' <$>-              (x .@? "platform") <*> (x .@? "instanceCount") <*>-                (x .@? "instanceType")-                <*> (x .@? "availabilityZone")--instance ToQuery ReservedInstancesConfiguration where-        toQuery ReservedInstancesConfiguration'{..}-          = mconcat-              ["Platform" =: _ricPlatform,-               "InstanceCount" =: _ricInstanceCount,-               "InstanceType" =: _ricInstanceType,-               "AvailabilityZone" =: _ricAvailabilityZone]---- | Describes the ID of a Reserved instance.------ /See:/ 'reservedInstancesId' smart constructor.-newtype ReservedInstancesId = ReservedInstancesId'-    { _riiReservedInstancesId :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReservedInstancesId' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'riiReservedInstancesId'-reservedInstancesId-    :: ReservedInstancesId-reservedInstancesId =-    ReservedInstancesId'-    { _riiReservedInstancesId = Nothing-    }---- | The ID of the Reserved instance.-riiReservedInstancesId :: Lens' ReservedInstancesId (Maybe Text)-riiReservedInstancesId = lens _riiReservedInstancesId (\ s a -> s{_riiReservedInstancesId = a});--instance FromXML ReservedInstancesId where-        parseXML x-          = ReservedInstancesId' <$>-              (x .@? "reservedInstancesId")---- | Describes a Reserved instance listing.------ /See:/ 'reservedInstancesListing' smart constructor.-data ReservedInstancesListing = ReservedInstancesListing'-    { _rilStatus                     :: !(Maybe ListingStatus)-    , _rilClientToken                :: !(Maybe Text)-    , _rilUpdateDate                 :: !(Maybe ISO8601)-    , _rilCreateDate                 :: !(Maybe ISO8601)-    , _rilPriceSchedules             :: !(Maybe [PriceSchedule])-    , _rilStatusMessage              :: !(Maybe Text)-    , _rilReservedInstancesId        :: !(Maybe Text)-    , _rilTags                       :: !(Maybe [Tag])-    , _rilInstanceCounts             :: !(Maybe [InstanceCount])-    , _rilReservedInstancesListingId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReservedInstancesListing' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rilStatus'------ * 'rilClientToken'------ * 'rilUpdateDate'------ * 'rilCreateDate'------ * 'rilPriceSchedules'------ * 'rilStatusMessage'------ * 'rilReservedInstancesId'------ * 'rilTags'------ * 'rilInstanceCounts'------ * 'rilReservedInstancesListingId'-reservedInstancesListing-    :: ReservedInstancesListing-reservedInstancesListing =-    ReservedInstancesListing'-    { _rilStatus = Nothing-    , _rilClientToken = Nothing-    , _rilUpdateDate = Nothing-    , _rilCreateDate = Nothing-    , _rilPriceSchedules = Nothing-    , _rilStatusMessage = Nothing-    , _rilReservedInstancesId = Nothing-    , _rilTags = Nothing-    , _rilInstanceCounts = Nothing-    , _rilReservedInstancesListingId = Nothing-    }---- | The status of the Reserved instance listing.-rilStatus :: Lens' ReservedInstancesListing (Maybe ListingStatus)-rilStatus = lens _rilStatus (\ s a -> s{_rilStatus = a});---- | A unique, case-sensitive key supplied by the client to ensure that the--- request is idempotent. For more information, see--- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency>.-rilClientToken :: Lens' ReservedInstancesListing (Maybe Text)-rilClientToken = lens _rilClientToken (\ s a -> s{_rilClientToken = a});---- | The last modified timestamp of the listing.-rilUpdateDate :: Lens' ReservedInstancesListing (Maybe UTCTime)-rilUpdateDate = lens _rilUpdateDate (\ s a -> s{_rilUpdateDate = a}) . mapping _Time;---- | The time the listing was created.-rilCreateDate :: Lens' ReservedInstancesListing (Maybe UTCTime)-rilCreateDate = lens _rilCreateDate (\ s a -> s{_rilCreateDate = a}) . mapping _Time;---- | The price of the Reserved instance listing.-rilPriceSchedules :: Lens' ReservedInstancesListing [PriceSchedule]-rilPriceSchedules = lens _rilPriceSchedules (\ s a -> s{_rilPriceSchedules = a}) . _Default . _Coerce;---- | The reason for the current status of the Reserved instance listing. The--- response can be blank.-rilStatusMessage :: Lens' ReservedInstancesListing (Maybe Text)-rilStatusMessage = lens _rilStatusMessage (\ s a -> s{_rilStatusMessage = a});---- | The ID of the Reserved instance.-rilReservedInstancesId :: Lens' ReservedInstancesListing (Maybe Text)-rilReservedInstancesId = lens _rilReservedInstancesId (\ s a -> s{_rilReservedInstancesId = a});---- | Any tags assigned to the resource.-rilTags :: Lens' ReservedInstancesListing [Tag]-rilTags = lens _rilTags (\ s a -> s{_rilTags = a}) . _Default . _Coerce;---- | The number of instances in this state.-rilInstanceCounts :: Lens' ReservedInstancesListing [InstanceCount]-rilInstanceCounts = lens _rilInstanceCounts (\ s a -> s{_rilInstanceCounts = a}) . _Default . _Coerce;---- | The ID of the Reserved instance listing.-rilReservedInstancesListingId :: Lens' ReservedInstancesListing (Maybe Text)-rilReservedInstancesListingId = lens _rilReservedInstancesListingId (\ s a -> s{_rilReservedInstancesListingId = a});--instance FromXML ReservedInstancesListing where-        parseXML x-          = ReservedInstancesListing' <$>-              (x .@? "status") <*> (x .@? "clientToken") <*>-                (x .@? "updateDate")-                <*> (x .@? "createDate")-                <*>-                (x .@? "priceSchedules" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "statusMessage")-                <*> (x .@? "reservedInstancesId")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "instanceCounts" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "reservedInstancesListingId")---- | Describes a Reserved instance modification.------ /See:/ 'reservedInstancesModification' smart constructor.-data ReservedInstancesModification = ReservedInstancesModification'-    { _rimModificationResults             :: !(Maybe [ReservedInstancesModificationResult])-    , _rimStatus                          :: !(Maybe Text)-    , _rimClientToken                     :: !(Maybe Text)-    , _rimUpdateDate                      :: !(Maybe ISO8601)-    , _rimCreateDate                      :: !(Maybe ISO8601)-    , _rimEffectiveDate                   :: !(Maybe ISO8601)-    , _rimStatusMessage                   :: !(Maybe Text)-    , _rimReservedInstancesModificationId :: !(Maybe Text)-    , _rimReservedInstancesIds            :: !(Maybe [ReservedInstancesId])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReservedInstancesModification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rimModificationResults'------ * 'rimStatus'------ * 'rimClientToken'------ * 'rimUpdateDate'------ * 'rimCreateDate'------ * 'rimEffectiveDate'------ * 'rimStatusMessage'------ * 'rimReservedInstancesModificationId'------ * 'rimReservedInstancesIds'-reservedInstancesModification-    :: ReservedInstancesModification-reservedInstancesModification =-    ReservedInstancesModification'-    { _rimModificationResults = Nothing-    , _rimStatus = Nothing-    , _rimClientToken = Nothing-    , _rimUpdateDate = Nothing-    , _rimCreateDate = Nothing-    , _rimEffectiveDate = Nothing-    , _rimStatusMessage = Nothing-    , _rimReservedInstancesModificationId = Nothing-    , _rimReservedInstancesIds = Nothing-    }---- | Contains target configurations along with their corresponding new--- Reserved instance IDs.-rimModificationResults :: Lens' ReservedInstancesModification [ReservedInstancesModificationResult]-rimModificationResults = lens _rimModificationResults (\ s a -> s{_rimModificationResults = a}) . _Default . _Coerce;---- | The status of the Reserved instances modification request.-rimStatus :: Lens' ReservedInstancesModification (Maybe Text)-rimStatus = lens _rimStatus (\ s a -> s{_rimStatus = a});---- | A unique, case-sensitive key supplied by the client to ensure that the--- request is idempotent. For more information, see--- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency>.-rimClientToken :: Lens' ReservedInstancesModification (Maybe Text)-rimClientToken = lens _rimClientToken (\ s a -> s{_rimClientToken = a});---- | The time when the modification request was last updated.-rimUpdateDate :: Lens' ReservedInstancesModification (Maybe UTCTime)-rimUpdateDate = lens _rimUpdateDate (\ s a -> s{_rimUpdateDate = a}) . mapping _Time;---- | The time when the modification request was created.-rimCreateDate :: Lens' ReservedInstancesModification (Maybe UTCTime)-rimCreateDate = lens _rimCreateDate (\ s a -> s{_rimCreateDate = a}) . mapping _Time;---- | The time for the modification to become effective.-rimEffectiveDate :: Lens' ReservedInstancesModification (Maybe UTCTime)-rimEffectiveDate = lens _rimEffectiveDate (\ s a -> s{_rimEffectiveDate = a}) . mapping _Time;---- | The reason for the status.-rimStatusMessage :: Lens' ReservedInstancesModification (Maybe Text)-rimStatusMessage = lens _rimStatusMessage (\ s a -> s{_rimStatusMessage = a});---- | A unique ID for the Reserved instance modification.-rimReservedInstancesModificationId :: Lens' ReservedInstancesModification (Maybe Text)-rimReservedInstancesModificationId = lens _rimReservedInstancesModificationId (\ s a -> s{_rimReservedInstancesModificationId = a});---- | The IDs of one or more Reserved instances.-rimReservedInstancesIds :: Lens' ReservedInstancesModification [ReservedInstancesId]-rimReservedInstancesIds = lens _rimReservedInstancesIds (\ s a -> s{_rimReservedInstancesIds = a}) . _Default . _Coerce;--instance FromXML ReservedInstancesModification where-        parseXML x-          = ReservedInstancesModification' <$>-              (x .@? "modificationResultSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "status")-                <*> (x .@? "clientToken")-                <*> (x .@? "updateDate")-                <*> (x .@? "createDate")-                <*> (x .@? "effectiveDate")-                <*> (x .@? "statusMessage")-                <*> (x .@? "reservedInstancesModificationId")-                <*>-                (x .@? "reservedInstancesSet" .!@ mempty >>=-                   may (parseXMLList "item"))---- | /See:/ 'reservedInstancesModificationResult' smart constructor.-data ReservedInstancesModificationResult = ReservedInstancesModificationResult'-    { _rimrReservedInstancesId :: !(Maybe Text)-    , _rimrTargetConfiguration :: !(Maybe ReservedInstancesConfiguration)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReservedInstancesModificationResult' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rimrReservedInstancesId'------ * 'rimrTargetConfiguration'-reservedInstancesModificationResult-    :: ReservedInstancesModificationResult-reservedInstancesModificationResult =-    ReservedInstancesModificationResult'-    { _rimrReservedInstancesId = Nothing-    , _rimrTargetConfiguration = Nothing-    }---- | The ID for the Reserved instances that were created as part of the--- modification request. This field is only available when the modification--- is fulfilled.-rimrReservedInstancesId :: Lens' ReservedInstancesModificationResult (Maybe Text)-rimrReservedInstancesId = lens _rimrReservedInstancesId (\ s a -> s{_rimrReservedInstancesId = a});---- | The target Reserved instances configurations supplied as part of the--- modification request.-rimrTargetConfiguration :: Lens' ReservedInstancesModificationResult (Maybe ReservedInstancesConfiguration)-rimrTargetConfiguration = lens _rimrTargetConfiguration (\ s a -> s{_rimrTargetConfiguration = a});--instance FromXML ReservedInstancesModificationResult-         where-        parseXML x-          = ReservedInstancesModificationResult' <$>-              (x .@? "reservedInstancesId") <*>-                (x .@? "targetConfiguration")---- | Describes a Reserved instance offering.------ /See:/ 'reservedInstancesOffering' smart constructor.-data ReservedInstancesOffering = ReservedInstancesOffering'-    { _rioMarketplace                 :: !(Maybe Bool)-    , _rioCurrencyCode                :: !(Maybe CurrencyCodeValues)-    , _rioProductDescription          :: !(Maybe RIProductDescription)-    , _rioInstanceType                :: !(Maybe InstanceType)-    , _rioAvailabilityZone            :: !(Maybe Text)-    , _rioPricingDetails              :: !(Maybe [PricingDetail])-    , _rioRecurringCharges            :: !(Maybe [RecurringCharge])-    , _rioOfferingType                :: !(Maybe OfferingTypeValues)-    , _rioUsagePrice                  :: !(Maybe Double)-    , _rioFixedPrice                  :: !(Maybe Double)-    , _rioInstanceTenancy             :: !(Maybe Tenancy)-    , _rioReservedInstancesOfferingId :: !(Maybe Text)-    , _rioDuration                    :: !(Maybe Integer)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReservedInstancesOffering' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rioMarketplace'------ * 'rioCurrencyCode'------ * 'rioProductDescription'------ * 'rioInstanceType'------ * 'rioAvailabilityZone'------ * 'rioPricingDetails'------ * 'rioRecurringCharges'------ * 'rioOfferingType'------ * 'rioUsagePrice'------ * 'rioFixedPrice'------ * 'rioInstanceTenancy'------ * 'rioReservedInstancesOfferingId'------ * 'rioDuration'-reservedInstancesOffering-    :: ReservedInstancesOffering-reservedInstancesOffering =-    ReservedInstancesOffering'-    { _rioMarketplace = Nothing-    , _rioCurrencyCode = Nothing-    , _rioProductDescription = Nothing-    , _rioInstanceType = Nothing-    , _rioAvailabilityZone = Nothing-    , _rioPricingDetails = Nothing-    , _rioRecurringCharges = Nothing-    , _rioOfferingType = Nothing-    , _rioUsagePrice = Nothing-    , _rioFixedPrice = Nothing-    , _rioInstanceTenancy = Nothing-    , _rioReservedInstancesOfferingId = Nothing-    , _rioDuration = Nothing-    }---- | Indicates whether the offering is available through the Reserved--- Instance Marketplace (resale) or AWS. If it\'s a Reserved Instance--- Marketplace offering, this is 'true'.-rioMarketplace :: Lens' ReservedInstancesOffering (Maybe Bool)-rioMarketplace = lens _rioMarketplace (\ s a -> s{_rioMarketplace = a});---- | The currency of the Reserved instance offering you are purchasing. It\'s--- specified using ISO 4217 standard currency codes. At this time, the only--- supported currency is 'USD'.-rioCurrencyCode :: Lens' ReservedInstancesOffering (Maybe CurrencyCodeValues)-rioCurrencyCode = lens _rioCurrencyCode (\ s a -> s{_rioCurrencyCode = a});---- | The Reserved instance product platform description.-rioProductDescription :: Lens' ReservedInstancesOffering (Maybe RIProductDescription)-rioProductDescription = lens _rioProductDescription (\ s a -> s{_rioProductDescription = a});---- | The instance type on which the Reserved instance can be used.-rioInstanceType :: Lens' ReservedInstancesOffering (Maybe InstanceType)-rioInstanceType = lens _rioInstanceType (\ s a -> s{_rioInstanceType = a});---- | The Availability Zone in which the Reserved instance can be used.-rioAvailabilityZone :: Lens' ReservedInstancesOffering (Maybe Text)-rioAvailabilityZone = lens _rioAvailabilityZone (\ s a -> s{_rioAvailabilityZone = a});---- | The pricing details of the Reserved instance offering.-rioPricingDetails :: Lens' ReservedInstancesOffering [PricingDetail]-rioPricingDetails = lens _rioPricingDetails (\ s a -> s{_rioPricingDetails = a}) . _Default . _Coerce;---- | The recurring charge tag assigned to the resource.-rioRecurringCharges :: Lens' ReservedInstancesOffering [RecurringCharge]-rioRecurringCharges = lens _rioRecurringCharges (\ s a -> s{_rioRecurringCharges = a}) . _Default . _Coerce;---- | The Reserved instance offering type.-rioOfferingType :: Lens' ReservedInstancesOffering (Maybe OfferingTypeValues)-rioOfferingType = lens _rioOfferingType (\ s a -> s{_rioOfferingType = a});---- | The usage price of the Reserved instance, per hour.-rioUsagePrice :: Lens' ReservedInstancesOffering (Maybe Double)-rioUsagePrice = lens _rioUsagePrice (\ s a -> s{_rioUsagePrice = a});---- | The purchase price of the Reserved instance.-rioFixedPrice :: Lens' ReservedInstancesOffering (Maybe Double)-rioFixedPrice = lens _rioFixedPrice (\ s a -> s{_rioFixedPrice = a});---- | The tenancy of the reserved instance.-rioInstanceTenancy :: Lens' ReservedInstancesOffering (Maybe Tenancy)-rioInstanceTenancy = lens _rioInstanceTenancy (\ s a -> s{_rioInstanceTenancy = a});---- | The ID of the Reserved instance offering.-rioReservedInstancesOfferingId :: Lens' ReservedInstancesOffering (Maybe Text)-rioReservedInstancesOfferingId = lens _rioReservedInstancesOfferingId (\ s a -> s{_rioReservedInstancesOfferingId = a});---- | The duration of the Reserved instance, in seconds.-rioDuration :: Lens' ReservedInstancesOffering (Maybe Integer)-rioDuration = lens _rioDuration (\ s a -> s{_rioDuration = a});--instance FromXML ReservedInstancesOffering where-        parseXML x-          = ReservedInstancesOffering' <$>-              (x .@? "marketplace") <*> (x .@? "currencyCode") <*>-                (x .@? "productDescription")-                <*> (x .@? "instanceType")-                <*> (x .@? "availabilityZone")-                <*>-                (x .@? "pricingDetailsSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "recurringCharges" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "offeringType")-                <*> (x .@? "usagePrice")-                <*> (x .@? "fixedPrice")-                <*> (x .@? "instanceTenancy")-                <*> (x .@? "reservedInstancesOfferingId")-                <*> (x .@? "duration")---- | Describes a route in a route table.------ /See:/ 'route' smart constructor.-data Route = Route'-    { _rVPCPeeringConnectionId  :: !(Maybe Text)-    , _rInstanceId              :: !(Maybe Text)-    , _rOrigin                  :: !(Maybe RouteOrigin)-    , _rState                   :: !(Maybe RouteState)-    , _rNatGatewayId            :: !(Maybe Text)-    , _rNetworkInterfaceId      :: !(Maybe Text)-    , _rGatewayId               :: !(Maybe Text)-    , _rInstanceOwnerId         :: !(Maybe Text)-    , _rDestinationPrefixListId :: !(Maybe Text)-    , _rDestinationCIdRBlock    :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Route' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rVPCPeeringConnectionId'------ * 'rInstanceId'------ * 'rOrigin'------ * 'rState'------ * 'rNatGatewayId'------ * 'rNetworkInterfaceId'------ * 'rGatewayId'------ * 'rInstanceOwnerId'------ * 'rDestinationPrefixListId'------ * 'rDestinationCIdRBlock'-route-    :: Route-route =-    Route'-    { _rVPCPeeringConnectionId = Nothing-    , _rInstanceId = Nothing-    , _rOrigin = Nothing-    , _rState = Nothing-    , _rNatGatewayId = Nothing-    , _rNetworkInterfaceId = Nothing-    , _rGatewayId = Nothing-    , _rInstanceOwnerId = Nothing-    , _rDestinationPrefixListId = Nothing-    , _rDestinationCIdRBlock = Nothing-    }---- | The ID of the VPC peering connection.-rVPCPeeringConnectionId :: Lens' Route (Maybe Text)-rVPCPeeringConnectionId = lens _rVPCPeeringConnectionId (\ s a -> s{_rVPCPeeringConnectionId = a});---- | The ID of a NAT instance in your VPC.-rInstanceId :: Lens' Route (Maybe Text)-rInstanceId = lens _rInstanceId (\ s a -> s{_rInstanceId = a});---- | Describes how the route was created.------ -   'CreateRouteTable' indicates that route was automatically created---     when the route table was created.--- -   'CreateRoute' indicates that the route was manually added to the---     route table.--- -   'EnableVgwRoutePropagation' indicates that the route was propagated---     by route propagation.-rOrigin :: Lens' Route (Maybe RouteOrigin)-rOrigin = lens _rOrigin (\ s a -> s{_rOrigin = a});---- | The state of the route. The 'blackhole' state indicates that the--- route\'s target isn\'t available (for example, the specified gateway--- isn\'t attached to the VPC, or the specified NAT instance has been--- terminated).-rState :: Lens' Route (Maybe RouteState)-rState = lens _rState (\ s a -> s{_rState = a});---- | The ID of a NAT gateway.-rNatGatewayId :: Lens' Route (Maybe Text)-rNatGatewayId = lens _rNatGatewayId (\ s a -> s{_rNatGatewayId = a});---- | The ID of the network interface.-rNetworkInterfaceId :: Lens' Route (Maybe Text)-rNetworkInterfaceId = lens _rNetworkInterfaceId (\ s a -> s{_rNetworkInterfaceId = a});---- | The ID of a gateway attached to your VPC.-rGatewayId :: Lens' Route (Maybe Text)-rGatewayId = lens _rGatewayId (\ s a -> s{_rGatewayId = a});---- | The AWS account ID of the owner of the instance.-rInstanceOwnerId :: Lens' Route (Maybe Text)-rInstanceOwnerId = lens _rInstanceOwnerId (\ s a -> s{_rInstanceOwnerId = a});---- | The prefix of the AWS service.-rDestinationPrefixListId :: Lens' Route (Maybe Text)-rDestinationPrefixListId = lens _rDestinationPrefixListId (\ s a -> s{_rDestinationPrefixListId = a});---- | The CIDR block used for the destination match.-rDestinationCIdRBlock :: Lens' Route (Maybe Text)-rDestinationCIdRBlock = lens _rDestinationCIdRBlock (\ s a -> s{_rDestinationCIdRBlock = a});--instance FromXML Route where-        parseXML x-          = Route' <$>-              (x .@? "vpcPeeringConnectionId") <*>-                (x .@? "instanceId")-                <*> (x .@? "origin")-                <*> (x .@? "state")-                <*> (x .@? "natGatewayId")-                <*> (x .@? "networkInterfaceId")-                <*> (x .@? "gatewayId")-                <*> (x .@? "instanceOwnerId")-                <*> (x .@? "destinationPrefixListId")-                <*> (x .@? "destinationCidrBlock")---- | Describes a route table.------ /See:/ 'routeTable' smart constructor.-data RouteTable = RouteTable'-    { _rtRouteTableId    :: !(Maybe Text)-    , _rtRoutes          :: !(Maybe [Route])-    , _rtVPCId           :: !(Maybe Text)-    , _rtPropagatingVGWs :: !(Maybe [PropagatingVGW])-    , _rtAssociations    :: !(Maybe [RouteTableAssociation])-    , _rtTags            :: !(Maybe [Tag])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'RouteTable' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rtRouteTableId'------ * 'rtRoutes'------ * 'rtVPCId'------ * 'rtPropagatingVGWs'------ * 'rtAssociations'------ * 'rtTags'-routeTable-    :: RouteTable-routeTable =-    RouteTable'-    { _rtRouteTableId = Nothing-    , _rtRoutes = Nothing-    , _rtVPCId = Nothing-    , _rtPropagatingVGWs = Nothing-    , _rtAssociations = Nothing-    , _rtTags = Nothing-    }---- | The ID of the route table.-rtRouteTableId :: Lens' RouteTable (Maybe Text)-rtRouteTableId = lens _rtRouteTableId (\ s a -> s{_rtRouteTableId = a});---- | The routes in the route table.-rtRoutes :: Lens' RouteTable [Route]-rtRoutes = lens _rtRoutes (\ s a -> s{_rtRoutes = a}) . _Default . _Coerce;---- | The ID of the VPC.-rtVPCId :: Lens' RouteTable (Maybe Text)-rtVPCId = lens _rtVPCId (\ s a -> s{_rtVPCId = a});---- | Any virtual private gateway (VGW) propagating routes.-rtPropagatingVGWs :: Lens' RouteTable [PropagatingVGW]-rtPropagatingVGWs = lens _rtPropagatingVGWs (\ s a -> s{_rtPropagatingVGWs = a}) . _Default . _Coerce;---- | The associations between the route table and one or more subnets.-rtAssociations :: Lens' RouteTable [RouteTableAssociation]-rtAssociations = lens _rtAssociations (\ s a -> s{_rtAssociations = a}) . _Default . _Coerce;---- | Any tags assigned to the route table.-rtTags :: Lens' RouteTable [Tag]-rtTags = lens _rtTags (\ s a -> s{_rtTags = a}) . _Default . _Coerce;--instance FromXML RouteTable where-        parseXML x-          = RouteTable' <$>-              (x .@? "routeTableId") <*>-                (x .@? "routeSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "vpcId")-                <*>-                (x .@? "propagatingVgwSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "associationSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))---- | Describes an association between a route table and a subnet.------ /See:/ 'routeTableAssociation' smart constructor.-data RouteTableAssociation = RouteTableAssociation'-    { _rtaRouteTableId            :: !(Maybe Text)-    , _rtaRouteTableAssociationId :: !(Maybe Text)-    , _rtaMain                    :: !(Maybe Bool)-    , _rtaSubnetId                :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'RouteTableAssociation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rtaRouteTableId'------ * 'rtaRouteTableAssociationId'------ * 'rtaMain'------ * 'rtaSubnetId'-routeTableAssociation-    :: RouteTableAssociation-routeTableAssociation =-    RouteTableAssociation'-    { _rtaRouteTableId = Nothing-    , _rtaRouteTableAssociationId = Nothing-    , _rtaMain = Nothing-    , _rtaSubnetId = Nothing-    }---- | The ID of the route table.-rtaRouteTableId :: Lens' RouteTableAssociation (Maybe Text)-rtaRouteTableId = lens _rtaRouteTableId (\ s a -> s{_rtaRouteTableId = a});---- | The ID of the association between a route table and a subnet.-rtaRouteTableAssociationId :: Lens' RouteTableAssociation (Maybe Text)-rtaRouteTableAssociationId = lens _rtaRouteTableAssociationId (\ s a -> s{_rtaRouteTableAssociationId = a});---- | Indicates whether this is the main route table.-rtaMain :: Lens' RouteTableAssociation (Maybe Bool)-rtaMain = lens _rtaMain (\ s a -> s{_rtaMain = a});---- | The ID of the subnet. A subnet ID is not returned for an implicit--- association.-rtaSubnetId :: Lens' RouteTableAssociation (Maybe Text)-rtaSubnetId = lens _rtaSubnetId (\ s a -> s{_rtaSubnetId = a});--instance FromXML RouteTableAssociation where-        parseXML x-          = RouteTableAssociation' <$>-              (x .@? "routeTableId") <*>-                (x .@? "routeTableAssociationId")-                <*> (x .@? "main")-                <*> (x .@? "subnetId")---- | Describes the monitoring for the instance.------ /See:/ 'runInstancesMonitoringEnabled' smart constructor.-newtype RunInstancesMonitoringEnabled = RunInstancesMonitoringEnabled'-    { _rimeEnabled :: Bool-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'RunInstancesMonitoringEnabled' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rimeEnabled'-runInstancesMonitoringEnabled-    :: Bool -- ^ 'rimeEnabled'-    -> RunInstancesMonitoringEnabled-runInstancesMonitoringEnabled pEnabled_ =-    RunInstancesMonitoringEnabled'-    { _rimeEnabled = pEnabled_-    }---- | Indicates whether monitoring is enabled for the instance.-rimeEnabled :: Lens' RunInstancesMonitoringEnabled Bool-rimeEnabled = lens _rimeEnabled (\ s a -> s{_rimeEnabled = a});--instance FromXML RunInstancesMonitoringEnabled where-        parseXML x-          = RunInstancesMonitoringEnabled' <$> (x .@ "enabled")--instance ToQuery RunInstancesMonitoringEnabled where-        toQuery RunInstancesMonitoringEnabled'{..}-          = mconcat ["Enabled" =: _rimeEnabled]---- | Describes the storage parameters for S3 and S3 buckets for an instance--- store-backed AMI.------ /See:/ 's3Storage' smart constructor.-data S3Storage = S3Storage'-    { _ssPrefix                :: !(Maybe Text)-    , _ssUploadPolicy          :: !(Maybe Base64)-    , _ssBucket                :: !(Maybe Text)-    , _ssUploadPolicySignature :: !(Maybe Text)-    , _ssAWSAccessKeyId        :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'S3Storage' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ssPrefix'------ * 'ssUploadPolicy'------ * 'ssBucket'------ * 'ssUploadPolicySignature'------ * 'ssAWSAccessKeyId'-s3Storage-    :: S3Storage-s3Storage =-    S3Storage'-    { _ssPrefix = Nothing-    , _ssUploadPolicy = Nothing-    , _ssBucket = Nothing-    , _ssUploadPolicySignature = Nothing-    , _ssAWSAccessKeyId = Nothing-    }---- | The beginning of the file name of the AMI.-ssPrefix :: Lens' S3Storage (Maybe Text)-ssPrefix = lens _ssPrefix (\ s a -> s{_ssPrefix = a});---- | A Base64-encoded Amazon S3 upload policy that gives Amazon EC2--- permission to upload items into Amazon S3 on your behalf.------ /Note:/ This 'Lens' automatically encodes and decodes Base64 data,--- despite what the AWS documentation might say.--- The underlying isomorphism will encode to Base64 representation during--- serialisation, and decode from Base64 representation during deserialisation.--- This 'Lens' accepts and returns only raw unencoded data.-ssUploadPolicy :: Lens' S3Storage (Maybe ByteString)-ssUploadPolicy = lens _ssUploadPolicy (\ s a -> s{_ssUploadPolicy = a}) . mapping _Base64;---- | The bucket in which to store the AMI. You can specify a bucket that you--- already own or a new bucket that Amazon EC2 creates on your behalf. If--- you specify a bucket that belongs to someone else, Amazon EC2 returns an--- error.-ssBucket :: Lens' S3Storage (Maybe Text)-ssBucket = lens _ssBucket (\ s a -> s{_ssBucket = a});---- | The signature of the Base64 encoded JSON document.-ssUploadPolicySignature :: Lens' S3Storage (Maybe Text)-ssUploadPolicySignature = lens _ssUploadPolicySignature (\ s a -> s{_ssUploadPolicySignature = a});---- | The access key ID of the owner of the bucket. Before you specify a value--- for your access key ID, review and follow the guidance in--- <http://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html Best Practices for Managing AWS Access Keys>.-ssAWSAccessKeyId :: Lens' S3Storage (Maybe Text)-ssAWSAccessKeyId = lens _ssAWSAccessKeyId (\ s a -> s{_ssAWSAccessKeyId = a});--instance FromXML S3Storage where-        parseXML x-          = S3Storage' <$>-              (x .@? "prefix") <*> (x .@? "uploadPolicy") <*>-                (x .@? "bucket")-                <*> (x .@? "uploadPolicySignature")-                <*> (x .@? "AWSAccessKeyId")--instance ToQuery S3Storage where-        toQuery S3Storage'{..}-          = mconcat-              ["Prefix" =: _ssPrefix,-               "UploadPolicy" =: _ssUploadPolicy,-               "Bucket" =: _ssBucket,-               "UploadPolicySignature" =: _ssUploadPolicySignature,-               "AWSAccessKeyId" =: _ssAWSAccessKeyId]---- | Describes a security group------ /See:/ 'securityGroup' smart constructor.-data SecurityGroup = SecurityGroup'-    { _sgVPCId               :: !(Maybe Text)-    , _sgIPPermissions       :: !(Maybe [IPPermission])-    , _sgIPPermissionsEgress :: !(Maybe [IPPermission])-    , _sgTags                :: !(Maybe [Tag])-    , _sgOwnerId             :: !Text-    , _sgGroupId             :: !Text-    , _sgGroupName           :: !Text-    , _sgDescription         :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SecurityGroup' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sgVPCId'------ * 'sgIPPermissions'------ * 'sgIPPermissionsEgress'------ * 'sgTags'------ * 'sgOwnerId'------ * 'sgGroupId'------ * 'sgGroupName'------ * 'sgDescription'-securityGroup-    :: Text -- ^ 'sgOwnerId'-    -> Text -- ^ 'sgGroupId'-    -> Text -- ^ 'sgGroupName'-    -> Text -- ^ 'sgDescription'-    -> SecurityGroup-securityGroup pOwnerId_ pGroupId_ pGroupName_ pDescription_ =-    SecurityGroup'-    { _sgVPCId = Nothing-    , _sgIPPermissions = Nothing-    , _sgIPPermissionsEgress = Nothing-    , _sgTags = Nothing-    , _sgOwnerId = pOwnerId_-    , _sgGroupId = pGroupId_-    , _sgGroupName = pGroupName_-    , _sgDescription = pDescription_-    }---- | [EC2-VPC] The ID of the VPC for the security group.-sgVPCId :: Lens' SecurityGroup (Maybe Text)-sgVPCId = lens _sgVPCId (\ s a -> s{_sgVPCId = a});---- | One or more inbound rules associated with the security group.-sgIPPermissions :: Lens' SecurityGroup [IPPermission]-sgIPPermissions = lens _sgIPPermissions (\ s a -> s{_sgIPPermissions = a}) . _Default . _Coerce;---- | [EC2-VPC] One or more outbound rules associated with the security group.-sgIPPermissionsEgress :: Lens' SecurityGroup [IPPermission]-sgIPPermissionsEgress = lens _sgIPPermissionsEgress (\ s a -> s{_sgIPPermissionsEgress = a}) . _Default . _Coerce;---- | Any tags assigned to the security group.-sgTags :: Lens' SecurityGroup [Tag]-sgTags = lens _sgTags (\ s a -> s{_sgTags = a}) . _Default . _Coerce;---- | The AWS account ID of the owner of the security group.-sgOwnerId :: Lens' SecurityGroup Text-sgOwnerId = lens _sgOwnerId (\ s a -> s{_sgOwnerId = a});---- | The ID of the security group.-sgGroupId :: Lens' SecurityGroup Text-sgGroupId = lens _sgGroupId (\ s a -> s{_sgGroupId = a});---- | The name of the security group.-sgGroupName :: Lens' SecurityGroup Text-sgGroupName = lens _sgGroupName (\ s a -> s{_sgGroupName = a});---- | A description of the security group.-sgDescription :: Lens' SecurityGroup Text-sgDescription = lens _sgDescription (\ s a -> s{_sgDescription = a});--instance FromXML SecurityGroup where-        parseXML x-          = SecurityGroup' <$>-              (x .@? "vpcId") <*>-                (x .@? "ipPermissions" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "ipPermissionsEgress" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@ "ownerId")-                <*> (x .@ "groupId")-                <*> (x .@ "groupName")-                <*> (x .@ "groupDescription")---- | Describes a snapshot.------ /See:/ 'snapshot' smart constructor.-data Snapshot = Snapshot'-    { _sStateMessage        :: !(Maybe Text)-    , _sOwnerAlias          :: !(Maybe Text)-    , _sDataEncryptionKeyId :: !(Maybe Text)-    , _sKMSKeyId            :: !(Maybe Text)-    , _sTags                :: !(Maybe [Tag])-    , _sSnapshotId          :: !Text-    , _sOwnerId             :: !Text-    , _sVolumeId            :: !Text-    , _sVolumeSize          :: !Int-    , _sDescription         :: !Text-    , _sStartTime           :: !ISO8601-    , _sProgress            :: !Text-    , _sState               :: !SnapshotState-    , _sEncrypted           :: !Bool-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Snapshot' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sStateMessage'------ * 'sOwnerAlias'------ * 'sDataEncryptionKeyId'------ * 'sKMSKeyId'------ * 'sTags'------ * 'sSnapshotId'------ * 'sOwnerId'------ * 'sVolumeId'------ * 'sVolumeSize'------ * 'sDescription'------ * 'sStartTime'------ * 'sProgress'------ * 'sState'------ * 'sEncrypted'-snapshot-    :: Text -- ^ 'sSnapshotId'-    -> Text -- ^ 'sOwnerId'-    -> Text -- ^ 'sVolumeId'-    -> Int -- ^ 'sVolumeSize'-    -> Text -- ^ 'sDescription'-    -> UTCTime -- ^ 'sStartTime'-    -> Text -- ^ 'sProgress'-    -> SnapshotState -- ^ 'sState'-    -> Bool -- ^ 'sEncrypted'-    -> Snapshot-snapshot pSnapshotId_ pOwnerId_ pVolumeId_ pVolumeSize_ pDescription_ pStartTime_ pProgress_ pState_ pEncrypted_ =-    Snapshot'-    { _sStateMessage = Nothing-    , _sOwnerAlias = Nothing-    , _sDataEncryptionKeyId = Nothing-    , _sKMSKeyId = Nothing-    , _sTags = Nothing-    , _sSnapshotId = pSnapshotId_-    , _sOwnerId = pOwnerId_-    , _sVolumeId = pVolumeId_-    , _sVolumeSize = pVolumeSize_-    , _sDescription = pDescription_-    , _sStartTime = _Time # pStartTime_-    , _sProgress = pProgress_-    , _sState = pState_-    , _sEncrypted = pEncrypted_-    }---- | Encrypted Amazon EBS snapshots are copied asynchronously. If a snapshot--- copy operation fails (for example, if the proper AWS Key Management--- Service (AWS KMS) permissions are not obtained) this field displays--- error state details to help you diagnose why the error occurred. This--- parameter is only returned by the DescribeSnapshots API operation.-sStateMessage :: Lens' Snapshot (Maybe Text)-sStateMessage = lens _sStateMessage (\ s a -> s{_sStateMessage = a});---- | The AWS account alias (for example, 'amazon', 'self') or AWS account ID--- that owns the snapshot.-sOwnerAlias :: Lens' Snapshot (Maybe Text)-sOwnerAlias = lens _sOwnerAlias (\ s a -> s{_sOwnerAlias = a});---- | The data encryption key identifier for the snapshot. This value is a--- unique identifier that corresponds to the data encryption key that was--- used to encrypt the original volume or snapshot copy. Because data--- encryption keys are inherited by volumes created from snapshots, and--- vice versa, if snapshots share the same data encryption key identifier,--- then they belong to the same volume\/snapshot lineage. This parameter is--- only returned by the DescribeSnapshots API operation.-sDataEncryptionKeyId :: Lens' Snapshot (Maybe Text)-sDataEncryptionKeyId = lens _sDataEncryptionKeyId (\ s a -> s{_sDataEncryptionKeyId = a});---- | The full ARN of the AWS Key Management Service (AWS KMS) customer master--- key (CMK) that was used to protect the volume encryption key for the--- parent volume.-sKMSKeyId :: Lens' Snapshot (Maybe Text)-sKMSKeyId = lens _sKMSKeyId (\ s a -> s{_sKMSKeyId = a});---- | Any tags assigned to the snapshot.-sTags :: Lens' Snapshot [Tag]-sTags = lens _sTags (\ s a -> s{_sTags = a}) . _Default . _Coerce;---- | The ID of the snapshot. Each snapshot receives a unique identifier when--- it is created.-sSnapshotId :: Lens' Snapshot Text-sSnapshotId = lens _sSnapshotId (\ s a -> s{_sSnapshotId = a});---- | The AWS account ID of the EBS snapshot owner.-sOwnerId :: Lens' Snapshot Text-sOwnerId = lens _sOwnerId (\ s a -> s{_sOwnerId = a});---- | The ID of the volume that was used to create the snapshot.-sVolumeId :: Lens' Snapshot Text-sVolumeId = lens _sVolumeId (\ s a -> s{_sVolumeId = a});---- | The size of the volume, in GiB.-sVolumeSize :: Lens' Snapshot Int-sVolumeSize = lens _sVolumeSize (\ s a -> s{_sVolumeSize = a});---- | The description for the snapshot.-sDescription :: Lens' Snapshot Text-sDescription = lens _sDescription (\ s a -> s{_sDescription = a});---- | The time stamp when the snapshot was initiated.-sStartTime :: Lens' Snapshot UTCTime-sStartTime = lens _sStartTime (\ s a -> s{_sStartTime = a}) . _Time;---- | The progress of the snapshot, as a percentage.-sProgress :: Lens' Snapshot Text-sProgress = lens _sProgress (\ s a -> s{_sProgress = a});---- | The snapshot state.-sState :: Lens' Snapshot SnapshotState-sState = lens _sState (\ s a -> s{_sState = a});---- | Indicates whether the snapshot is encrypted.-sEncrypted :: Lens' Snapshot Bool-sEncrypted = lens _sEncrypted (\ s a -> s{_sEncrypted = a});--instance FromXML Snapshot where-        parseXML x-          = Snapshot' <$>-              (x .@? "statusMessage") <*> (x .@? "ownerAlias") <*>-                (x .@? "dataEncryptionKeyId")-                <*> (x .@? "kmsKeyId")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@ "snapshotId")-                <*> (x .@ "ownerId")-                <*> (x .@ "volumeId")-                <*> (x .@ "volumeSize")-                <*> (x .@ "description")-                <*> (x .@ "startTime")-                <*> (x .@ "progress")-                <*> (x .@ "status")-                <*> (x .@ "encrypted")---- | Describes the snapshot created from the imported disk.------ /See:/ 'snapshotDetail' smart constructor.-data SnapshotDetail = SnapshotDetail'-    { _sdStatus        :: !(Maybe Text)-    , _sdProgress      :: !(Maybe Text)-    , _sdFormat        :: !(Maybe Text)-    , _sdURL           :: !(Maybe Text)-    , _sdDeviceName    :: !(Maybe Text)-    , _sdStatusMessage :: !(Maybe Text)-    , _sdUserBucket    :: !(Maybe UserBucketDetails)-    , _sdDiskImageSize :: !(Maybe Double)-    , _sdDescription   :: !(Maybe Text)-    , _sdSnapshotId    :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SnapshotDetail' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sdStatus'------ * 'sdProgress'------ * 'sdFormat'------ * 'sdURL'------ * 'sdDeviceName'------ * 'sdStatusMessage'------ * 'sdUserBucket'------ * 'sdDiskImageSize'------ * 'sdDescription'------ * 'sdSnapshotId'-snapshotDetail-    :: SnapshotDetail-snapshotDetail =-    SnapshotDetail'-    { _sdStatus = Nothing-    , _sdProgress = Nothing-    , _sdFormat = Nothing-    , _sdURL = Nothing-    , _sdDeviceName = Nothing-    , _sdStatusMessage = Nothing-    , _sdUserBucket = Nothing-    , _sdDiskImageSize = Nothing-    , _sdDescription = Nothing-    , _sdSnapshotId = Nothing-    }---- | A brief status of the snapshot creation.-sdStatus :: Lens' SnapshotDetail (Maybe Text)-sdStatus = lens _sdStatus (\ s a -> s{_sdStatus = a});---- | The percentage of progress for the task.-sdProgress :: Lens' SnapshotDetail (Maybe Text)-sdProgress = lens _sdProgress (\ s a -> s{_sdProgress = a});---- | The format of the disk image from which the snapshot is created.-sdFormat :: Lens' SnapshotDetail (Maybe Text)-sdFormat = lens _sdFormat (\ s a -> s{_sdFormat = a});---- | The URL used to access the disk image.-sdURL :: Lens' SnapshotDetail (Maybe Text)-sdURL = lens _sdURL (\ s a -> s{_sdURL = a});---- | The block device mapping for the snapshot.-sdDeviceName :: Lens' SnapshotDetail (Maybe Text)-sdDeviceName = lens _sdDeviceName (\ s a -> s{_sdDeviceName = a});---- | A detailed status message for the snapshot creation.-sdStatusMessage :: Lens' SnapshotDetail (Maybe Text)-sdStatusMessage = lens _sdStatusMessage (\ s a -> s{_sdStatusMessage = a});---- | Undocumented member.-sdUserBucket :: Lens' SnapshotDetail (Maybe UserBucketDetails)-sdUserBucket = lens _sdUserBucket (\ s a -> s{_sdUserBucket = a});---- | The size of the disk in the snapshot, in GiB.-sdDiskImageSize :: Lens' SnapshotDetail (Maybe Double)-sdDiskImageSize = lens _sdDiskImageSize (\ s a -> s{_sdDiskImageSize = a});---- | A description for the snapshot.-sdDescription :: Lens' SnapshotDetail (Maybe Text)-sdDescription = lens _sdDescription (\ s a -> s{_sdDescription = a});---- | The snapshot ID of the disk being imported.-sdSnapshotId :: Lens' SnapshotDetail (Maybe Text)-sdSnapshotId = lens _sdSnapshotId (\ s a -> s{_sdSnapshotId = a});--instance FromXML SnapshotDetail where-        parseXML x-          = SnapshotDetail' <$>-              (x .@? "status") <*> (x .@? "progress") <*>-                (x .@? "format")-                <*> (x .@? "url")-                <*> (x .@? "deviceName")-                <*> (x .@? "statusMessage")-                <*> (x .@? "userBucket")-                <*> (x .@? "diskImageSize")-                <*> (x .@? "description")-                <*> (x .@? "snapshotId")---- | The disk container object for the import snapshot request.------ /See:/ 'snapshotDiskContainer' smart constructor.-data SnapshotDiskContainer = SnapshotDiskContainer'-    { _sdcFormat      :: !(Maybe Text)-    , _sdcURL         :: !(Maybe Text)-    , _sdcUserBucket  :: !(Maybe UserBucket)-    , _sdcDescription :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SnapshotDiskContainer' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sdcFormat'------ * 'sdcURL'------ * 'sdcUserBucket'------ * 'sdcDescription'-snapshotDiskContainer-    :: SnapshotDiskContainer-snapshotDiskContainer =-    SnapshotDiskContainer'-    { _sdcFormat = Nothing-    , _sdcURL = Nothing-    , _sdcUserBucket = Nothing-    , _sdcDescription = Nothing-    }---- | The format of the disk image being imported.------ Valid values: 'RAW' | 'VHD' | 'VMDK' | 'OVA'-sdcFormat :: Lens' SnapshotDiskContainer (Maybe Text)-sdcFormat = lens _sdcFormat (\ s a -> s{_sdcFormat = a});---- | The URL to the Amazon S3-based disk image being imported. It can either--- be a https URL (https:\/\/..) or an Amazon S3 URL (s3:\/\/..).-sdcURL :: Lens' SnapshotDiskContainer (Maybe Text)-sdcURL = lens _sdcURL (\ s a -> s{_sdcURL = a});---- | Undocumented member.-sdcUserBucket :: Lens' SnapshotDiskContainer (Maybe UserBucket)-sdcUserBucket = lens _sdcUserBucket (\ s a -> s{_sdcUserBucket = a});---- | The description of the disk image being imported.-sdcDescription :: Lens' SnapshotDiskContainer (Maybe Text)-sdcDescription = lens _sdcDescription (\ s a -> s{_sdcDescription = a});--instance ToQuery SnapshotDiskContainer where-        toQuery SnapshotDiskContainer'{..}-          = mconcat-              ["Format" =: _sdcFormat, "Url" =: _sdcURL,-               "UserBucket" =: _sdcUserBucket,-               "Description" =: _sdcDescription]---- | Details about the import snapshot task.------ /See:/ 'snapshotTaskDetail' smart constructor.-data SnapshotTaskDetail = SnapshotTaskDetail'-    { _stdStatus        :: !(Maybe Text)-    , _stdProgress      :: !(Maybe Text)-    , _stdFormat        :: !(Maybe Text)-    , _stdURL           :: !(Maybe Text)-    , _stdStatusMessage :: !(Maybe Text)-    , _stdUserBucket    :: !(Maybe UserBucketDetails)-    , _stdDiskImageSize :: !(Maybe Double)-    , _stdDescription   :: !(Maybe Text)-    , _stdSnapshotId    :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SnapshotTaskDetail' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'stdStatus'------ * 'stdProgress'------ * 'stdFormat'------ * 'stdURL'------ * 'stdStatusMessage'------ * 'stdUserBucket'------ * 'stdDiskImageSize'------ * 'stdDescription'------ * 'stdSnapshotId'-snapshotTaskDetail-    :: SnapshotTaskDetail-snapshotTaskDetail =-    SnapshotTaskDetail'-    { _stdStatus = Nothing-    , _stdProgress = Nothing-    , _stdFormat = Nothing-    , _stdURL = Nothing-    , _stdStatusMessage = Nothing-    , _stdUserBucket = Nothing-    , _stdDiskImageSize = Nothing-    , _stdDescription = Nothing-    , _stdSnapshotId = Nothing-    }---- | A brief status for the import snapshot task.-stdStatus :: Lens' SnapshotTaskDetail (Maybe Text)-stdStatus = lens _stdStatus (\ s a -> s{_stdStatus = a});---- | The percentage of completion for the import snapshot task.-stdProgress :: Lens' SnapshotTaskDetail (Maybe Text)-stdProgress = lens _stdProgress (\ s a -> s{_stdProgress = a});---- | The format of the disk image from which the snapshot is created.-stdFormat :: Lens' SnapshotTaskDetail (Maybe Text)-stdFormat = lens _stdFormat (\ s a -> s{_stdFormat = a});---- | The URL of the disk image from which the snapshot is created.-stdURL :: Lens' SnapshotTaskDetail (Maybe Text)-stdURL = lens _stdURL (\ s a -> s{_stdURL = a});---- | A detailed status message for the import snapshot task.-stdStatusMessage :: Lens' SnapshotTaskDetail (Maybe Text)-stdStatusMessage = lens _stdStatusMessage (\ s a -> s{_stdStatusMessage = a});---- | The S3 bucket for the disk image.-stdUserBucket :: Lens' SnapshotTaskDetail (Maybe UserBucketDetails)-stdUserBucket = lens _stdUserBucket (\ s a -> s{_stdUserBucket = a});---- | The size of the disk in the snapshot, in GiB.-stdDiskImageSize :: Lens' SnapshotTaskDetail (Maybe Double)-stdDiskImageSize = lens _stdDiskImageSize (\ s a -> s{_stdDiskImageSize = a});---- | The description of the snapshot.-stdDescription :: Lens' SnapshotTaskDetail (Maybe Text)-stdDescription = lens _stdDescription (\ s a -> s{_stdDescription = a});---- | The snapshot ID of the disk being imported.-stdSnapshotId :: Lens' SnapshotTaskDetail (Maybe Text)-stdSnapshotId = lens _stdSnapshotId (\ s a -> s{_stdSnapshotId = a});--instance FromXML SnapshotTaskDetail where-        parseXML x-          = SnapshotTaskDetail' <$>-              (x .@? "status") <*> (x .@? "progress") <*>-                (x .@? "format")-                <*> (x .@? "url")-                <*> (x .@? "statusMessage")-                <*> (x .@? "userBucket")-                <*> (x .@? "diskImageSize")-                <*> (x .@? "description")-                <*> (x .@? "snapshotId")---- | Describes the data feed for a Spot instance.------ /See:/ 'spotDatafeedSubscription' smart constructor.-data SpotDatafeedSubscription = SpotDatafeedSubscription'-    { _sdsState   :: !(Maybe DatafeedSubscriptionState)-    , _sdsPrefix  :: !(Maybe Text)-    , _sdsBucket  :: !(Maybe Text)-    , _sdsOwnerId :: !(Maybe Text)-    , _sdsFault   :: !(Maybe SpotInstanceStateFault)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SpotDatafeedSubscription' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sdsState'------ * 'sdsPrefix'------ * 'sdsBucket'------ * 'sdsOwnerId'------ * 'sdsFault'-spotDatafeedSubscription-    :: SpotDatafeedSubscription-spotDatafeedSubscription =-    SpotDatafeedSubscription'-    { _sdsState = Nothing-    , _sdsPrefix = Nothing-    , _sdsBucket = Nothing-    , _sdsOwnerId = Nothing-    , _sdsFault = Nothing-    }---- | The state of the Spot instance data feed subscription.-sdsState :: Lens' SpotDatafeedSubscription (Maybe DatafeedSubscriptionState)-sdsState = lens _sdsState (\ s a -> s{_sdsState = a});---- | The prefix that is prepended to data feed files.-sdsPrefix :: Lens' SpotDatafeedSubscription (Maybe Text)-sdsPrefix = lens _sdsPrefix (\ s a -> s{_sdsPrefix = a});---- | The Amazon S3 bucket where the Spot instance data feed is located.-sdsBucket :: Lens' SpotDatafeedSubscription (Maybe Text)-sdsBucket = lens _sdsBucket (\ s a -> s{_sdsBucket = a});---- | The AWS account ID of the account.-sdsOwnerId :: Lens' SpotDatafeedSubscription (Maybe Text)-sdsOwnerId = lens _sdsOwnerId (\ s a -> s{_sdsOwnerId = a});---- | The fault codes for the Spot instance request, if any.-sdsFault :: Lens' SpotDatafeedSubscription (Maybe SpotInstanceStateFault)-sdsFault = lens _sdsFault (\ s a -> s{_sdsFault = a});--instance FromXML SpotDatafeedSubscription where-        parseXML x-          = SpotDatafeedSubscription' <$>-              (x .@? "state") <*> (x .@? "prefix") <*>-                (x .@? "bucket")-                <*> (x .@? "ownerId")-                <*> (x .@? "fault")---- | Describes the launch specification for one or more Spot instances.------ /See:/ 'spotFleetLaunchSpecification' smart constructor.-data SpotFleetLaunchSpecification = SpotFleetLaunchSpecification'-    { _sflsSecurityGroups      :: !(Maybe [GroupIdentifier])-    , _sflsSpotPrice           :: !(Maybe Text)-    , _sflsWeightedCapacity    :: !(Maybe Double)-    , _sflsKeyName             :: !(Maybe Text)-    , _sflsNetworkInterfaces   :: !(Maybe [InstanceNetworkInterfaceSpecification])-    , _sflsRAMDiskId           :: !(Maybe Text)-    , _sflsSubnetId            :: !(Maybe Text)-    , _sflsKernelId            :: !(Maybe Text)-    , _sflsInstanceType        :: !(Maybe InstanceType)-    , _sflsEBSOptimized        :: !(Maybe Bool)-    , _sflsUserData            :: !(Maybe Text)-    , _sflsMonitoring          :: !(Maybe SpotFleetMonitoring)-    , _sflsIAMInstanceProfile  :: !(Maybe IAMInstanceProfileSpecification)-    , _sflsImageId             :: !(Maybe Text)-    , _sflsAddressingType      :: !(Maybe Text)-    , _sflsBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])-    , _sflsPlacement           :: !(Maybe SpotPlacement)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SpotFleetLaunchSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sflsSecurityGroups'------ * 'sflsSpotPrice'------ * 'sflsWeightedCapacity'------ * 'sflsKeyName'------ * 'sflsNetworkInterfaces'------ * 'sflsRAMDiskId'------ * 'sflsSubnetId'------ * 'sflsKernelId'------ * 'sflsInstanceType'------ * 'sflsEBSOptimized'------ * 'sflsUserData'------ * 'sflsMonitoring'------ * 'sflsIAMInstanceProfile'------ * 'sflsImageId'------ * 'sflsAddressingType'------ * 'sflsBlockDeviceMappings'------ * 'sflsPlacement'-spotFleetLaunchSpecification-    :: SpotFleetLaunchSpecification-spotFleetLaunchSpecification =-    SpotFleetLaunchSpecification'-    { _sflsSecurityGroups = Nothing-    , _sflsSpotPrice = Nothing-    , _sflsWeightedCapacity = Nothing-    , _sflsKeyName = Nothing-    , _sflsNetworkInterfaces = Nothing-    , _sflsRAMDiskId = Nothing-    , _sflsSubnetId = Nothing-    , _sflsKernelId = Nothing-    , _sflsInstanceType = Nothing-    , _sflsEBSOptimized = Nothing-    , _sflsUserData = Nothing-    , _sflsMonitoring = Nothing-    , _sflsIAMInstanceProfile = Nothing-    , _sflsImageId = Nothing-    , _sflsAddressingType = Nothing-    , _sflsBlockDeviceMappings = Nothing-    , _sflsPlacement = Nothing-    }---- | One or more security groups. When requesting instances in a VPC, you--- must specify the IDs of the security groups. When requesting instances--- in EC2-Classic, you can specify the names or the IDs of the security--- groups.-sflsSecurityGroups :: Lens' SpotFleetLaunchSpecification [GroupIdentifier]-sflsSecurityGroups = lens _sflsSecurityGroups (\ s a -> s{_sflsSecurityGroups = a}) . _Default . _Coerce;---- | The bid price per unit hour for the specified instance type. If this--- value is not specified, the default is the Spot bid price specified for--- the fleet. To determine the bid price per unit hour, divide the Spot bid--- price by the value of 'WeightedCapacity'.-sflsSpotPrice :: Lens' SpotFleetLaunchSpecification (Maybe Text)-sflsSpotPrice = lens _sflsSpotPrice (\ s a -> s{_sflsSpotPrice = a});---- | The number of units provided by the specified instance type. These are--- the same units that you chose to set the target capacity in terms--- (instances or a performance characteristic such as vCPUs, memory, or--- I\/O).------ If the target capacity divided by this value is not a whole number, we--- round the number of instances to the next whole number. If this value is--- not specified, the default is 1.-sflsWeightedCapacity :: Lens' SpotFleetLaunchSpecification (Maybe Double)-sflsWeightedCapacity = lens _sflsWeightedCapacity (\ s a -> s{_sflsWeightedCapacity = a});---- | The name of the key pair.-sflsKeyName :: Lens' SpotFleetLaunchSpecification (Maybe Text)-sflsKeyName = lens _sflsKeyName (\ s a -> s{_sflsKeyName = a});---- | One or more network interfaces.-sflsNetworkInterfaces :: Lens' SpotFleetLaunchSpecification [InstanceNetworkInterfaceSpecification]-sflsNetworkInterfaces = lens _sflsNetworkInterfaces (\ s a -> s{_sflsNetworkInterfaces = a}) . _Default . _Coerce;---- | The ID of the RAM disk.-sflsRAMDiskId :: Lens' SpotFleetLaunchSpecification (Maybe Text)-sflsRAMDiskId = lens _sflsRAMDiskId (\ s a -> s{_sflsRAMDiskId = a});---- | The ID of the subnet in which to launch the instances. To specify--- multiple subnets, separate them using commas; for example,--- \"subnet-a61dafcf, subnet-65ea5f08\".-sflsSubnetId :: Lens' SpotFleetLaunchSpecification (Maybe Text)-sflsSubnetId = lens _sflsSubnetId (\ s a -> s{_sflsSubnetId = a});---- | The ID of the kernel.-sflsKernelId :: Lens' SpotFleetLaunchSpecification (Maybe Text)-sflsKernelId = lens _sflsKernelId (\ s a -> s{_sflsKernelId = a});---- | The instance type.-sflsInstanceType :: Lens' SpotFleetLaunchSpecification (Maybe InstanceType)-sflsInstanceType = lens _sflsInstanceType (\ s a -> s{_sflsInstanceType = a});---- | Indicates whether the instances are optimized for EBS I\/O. This--- optimization provides dedicated throughput to Amazon EBS and an--- optimized configuration stack to provide optimal EBS I\/O performance.--- This optimization isn\'t available with all instance types. Additional--- usage charges apply when using an EBS Optimized instance.------ Default: 'false'-sflsEBSOptimized :: Lens' SpotFleetLaunchSpecification (Maybe Bool)-sflsEBSOptimized = lens _sflsEBSOptimized (\ s a -> s{_sflsEBSOptimized = a});---- | The Base64-encoded MIME user data to make available to the instances.-sflsUserData :: Lens' SpotFleetLaunchSpecification (Maybe Text)-sflsUserData = lens _sflsUserData (\ s a -> s{_sflsUserData = a});---- | Enable or disable monitoring for the instances.-sflsMonitoring :: Lens' SpotFleetLaunchSpecification (Maybe SpotFleetMonitoring)-sflsMonitoring = lens _sflsMonitoring (\ s a -> s{_sflsMonitoring = a});---- | The IAM instance profile.-sflsIAMInstanceProfile :: Lens' SpotFleetLaunchSpecification (Maybe IAMInstanceProfileSpecification)-sflsIAMInstanceProfile = lens _sflsIAMInstanceProfile (\ s a -> s{_sflsIAMInstanceProfile = a});---- | The ID of the AMI.-sflsImageId :: Lens' SpotFleetLaunchSpecification (Maybe Text)-sflsImageId = lens _sflsImageId (\ s a -> s{_sflsImageId = a});---- | Deprecated.-sflsAddressingType :: Lens' SpotFleetLaunchSpecification (Maybe Text)-sflsAddressingType = lens _sflsAddressingType (\ s a -> s{_sflsAddressingType = a});---- | One or more block device mapping entries.-sflsBlockDeviceMappings :: Lens' SpotFleetLaunchSpecification [BlockDeviceMapping]-sflsBlockDeviceMappings = lens _sflsBlockDeviceMappings (\ s a -> s{_sflsBlockDeviceMappings = a}) . _Default . _Coerce;---- | The placement information.-sflsPlacement :: Lens' SpotFleetLaunchSpecification (Maybe SpotPlacement)-sflsPlacement = lens _sflsPlacement (\ s a -> s{_sflsPlacement = a});--instance FromXML SpotFleetLaunchSpecification where-        parseXML x-          = SpotFleetLaunchSpecification' <$>-              (x .@? "groupSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "spotPrice")-                <*> (x .@? "weightedCapacity")-                <*> (x .@? "keyName")-                <*>-                (x .@? "networkInterfaceSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "ramdiskId")-                <*> (x .@? "subnetId")-                <*> (x .@? "kernelId")-                <*> (x .@? "instanceType")-                <*> (x .@? "ebsOptimized")-                <*> (x .@? "userData")-                <*> (x .@? "monitoring")-                <*> (x .@? "iamInstanceProfile")-                <*> (x .@? "imageId")-                <*> (x .@? "addressingType")-                <*>-                (x .@? "blockDeviceMapping" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "placement")--instance ToQuery SpotFleetLaunchSpecification where-        toQuery SpotFleetLaunchSpecification'{..}-          = mconcat-              [toQuery-                 (toQueryList "GroupSet" <$> _sflsSecurityGroups),-               "SpotPrice" =: _sflsSpotPrice,-               "WeightedCapacity" =: _sflsWeightedCapacity,-               "KeyName" =: _sflsKeyName,-               toQuery-                 (toQueryList "NetworkInterfaceSet" <$>-                    _sflsNetworkInterfaces),-               "RamdiskId" =: _sflsRAMDiskId,-               "SubnetId" =: _sflsSubnetId,-               "KernelId" =: _sflsKernelId,-               "InstanceType" =: _sflsInstanceType,-               "EbsOptimized" =: _sflsEBSOptimized,-               "UserData" =: _sflsUserData,-               "Monitoring" =: _sflsMonitoring,-               "IamInstanceProfile" =: _sflsIAMInstanceProfile,-               "ImageId" =: _sflsImageId,-               "AddressingType" =: _sflsAddressingType,-               toQuery-                 (toQueryList "BlockDeviceMapping" <$>-                    _sflsBlockDeviceMappings),-               "Placement" =: _sflsPlacement]---- | Describes whether monitoring is enabled.------ /See:/ 'spotFleetMonitoring' smart constructor.-newtype SpotFleetMonitoring = SpotFleetMonitoring'-    { _sfmEnabled :: Maybe Bool-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SpotFleetMonitoring' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sfmEnabled'-spotFleetMonitoring-    :: SpotFleetMonitoring-spotFleetMonitoring =-    SpotFleetMonitoring'-    { _sfmEnabled = Nothing-    }---- | Enables monitoring for the instance.------ Default: 'false'-sfmEnabled :: Lens' SpotFleetMonitoring (Maybe Bool)-sfmEnabled = lens _sfmEnabled (\ s a -> s{_sfmEnabled = a});--instance FromXML SpotFleetMonitoring where-        parseXML x-          = SpotFleetMonitoring' <$> (x .@? "enabled")--instance ToQuery SpotFleetMonitoring where-        toQuery SpotFleetMonitoring'{..}-          = mconcat ["Enabled" =: _sfmEnabled]---- | Describes a Spot fleet request.------ /See:/ 'spotFleetRequestConfig' smart constructor.-data SpotFleetRequestConfig = SpotFleetRequestConfig'-    { _sfrcSpotFleetRequestId     :: !Text-    , _sfrcSpotFleetRequestState  :: !BatchState-    , _sfrcSpotFleetRequestConfig :: !SpotFleetRequestConfigData-    , _sfrcCreateTime             :: !ISO8601-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SpotFleetRequestConfig' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sfrcSpotFleetRequestId'------ * 'sfrcSpotFleetRequestState'------ * 'sfrcSpotFleetRequestConfig'------ * 'sfrcCreateTime'-spotFleetRequestConfig-    :: Text -- ^ 'sfrcSpotFleetRequestId'-    -> BatchState -- ^ 'sfrcSpotFleetRequestState'-    -> SpotFleetRequestConfigData -- ^ 'sfrcSpotFleetRequestConfig'-    -> UTCTime -- ^ 'sfrcCreateTime'-    -> SpotFleetRequestConfig-spotFleetRequestConfig pSpotFleetRequestId_ pSpotFleetRequestState_ pSpotFleetRequestConfig_ pCreateTime_ =-    SpotFleetRequestConfig'-    { _sfrcSpotFleetRequestId = pSpotFleetRequestId_-    , _sfrcSpotFleetRequestState = pSpotFleetRequestState_-    , _sfrcSpotFleetRequestConfig = pSpotFleetRequestConfig_-    , _sfrcCreateTime = _Time # pCreateTime_-    }---- | The ID of the Spot fleet request.-sfrcSpotFleetRequestId :: Lens' SpotFleetRequestConfig Text-sfrcSpotFleetRequestId = lens _sfrcSpotFleetRequestId (\ s a -> s{_sfrcSpotFleetRequestId = a});---- | The state of the Spot fleet request.-sfrcSpotFleetRequestState :: Lens' SpotFleetRequestConfig BatchState-sfrcSpotFleetRequestState = lens _sfrcSpotFleetRequestState (\ s a -> s{_sfrcSpotFleetRequestState = a});---- | Information about the configuration of the Spot fleet request.-sfrcSpotFleetRequestConfig :: Lens' SpotFleetRequestConfig SpotFleetRequestConfigData-sfrcSpotFleetRequestConfig = lens _sfrcSpotFleetRequestConfig (\ s a -> s{_sfrcSpotFleetRequestConfig = a});---- | The creation date and time of the request.-sfrcCreateTime :: Lens' SpotFleetRequestConfig UTCTime-sfrcCreateTime = lens _sfrcCreateTime (\ s a -> s{_sfrcCreateTime = a}) . _Time;--instance FromXML SpotFleetRequestConfig where-        parseXML x-          = SpotFleetRequestConfig' <$>-              (x .@ "spotFleetRequestId") <*>-                (x .@ "spotFleetRequestState")-                <*> (x .@ "spotFleetRequestConfig")-                <*> (x .@ "createTime")---- | Describes the configuration of a Spot fleet request.------ /See:/ 'spotFleetRequestConfigData' smart constructor.-data SpotFleetRequestConfigData = SpotFleetRequestConfigData'-    { _sfrcdClientToken                      :: !(Maybe Text)-    , _sfrcdExcessCapacityTerminationPolicy  :: !(Maybe ExcessCapacityTerminationPolicy)-    , _sfrcdValidUntil                       :: !(Maybe ISO8601)-    , _sfrcdTerminateInstancesWithExpiration :: !(Maybe Bool)-    , _sfrcdValidFrom                        :: !(Maybe ISO8601)-    , _sfrcdAllocationStrategy               :: !(Maybe AllocationStrategy)-    , _sfrcdSpotPrice                        :: !Text-    , _sfrcdTargetCapacity                   :: !Int-    , _sfrcdIAMFleetRole                     :: !Text-    , _sfrcdLaunchSpecifications             :: !(List1 SpotFleetLaunchSpecification)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SpotFleetRequestConfigData' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sfrcdClientToken'------ * 'sfrcdExcessCapacityTerminationPolicy'------ * 'sfrcdValidUntil'------ * 'sfrcdTerminateInstancesWithExpiration'------ * 'sfrcdValidFrom'------ * 'sfrcdAllocationStrategy'------ * 'sfrcdSpotPrice'------ * 'sfrcdTargetCapacity'------ * 'sfrcdIAMFleetRole'------ * 'sfrcdLaunchSpecifications'-spotFleetRequestConfigData-    :: Text -- ^ 'sfrcdSpotPrice'-    -> Int -- ^ 'sfrcdTargetCapacity'-    -> Text -- ^ 'sfrcdIAMFleetRole'-    -> NonEmpty SpotFleetLaunchSpecification -- ^ 'sfrcdLaunchSpecifications'-    -> SpotFleetRequestConfigData-spotFleetRequestConfigData pSpotPrice_ pTargetCapacity_ pIAMFleetRole_ pLaunchSpecifications_ =-    SpotFleetRequestConfigData'-    { _sfrcdClientToken = Nothing-    , _sfrcdExcessCapacityTerminationPolicy = Nothing-    , _sfrcdValidUntil = Nothing-    , _sfrcdTerminateInstancesWithExpiration = Nothing-    , _sfrcdValidFrom = Nothing-    , _sfrcdAllocationStrategy = Nothing-    , _sfrcdSpotPrice = pSpotPrice_-    , _sfrcdTargetCapacity = pTargetCapacity_-    , _sfrcdIAMFleetRole = pIAMFleetRole_-    , _sfrcdLaunchSpecifications = _List1 # pLaunchSpecifications_-    }---- | A unique, case-sensitive identifier you provide to ensure idempotency of--- your listings. This helps avoid duplicate listings. For more--- information, see--- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency>.-sfrcdClientToken :: Lens' SpotFleetRequestConfigData (Maybe Text)-sfrcdClientToken = lens _sfrcdClientToken (\ s a -> s{_sfrcdClientToken = a});---- | Indicates whether running Spot instances should be terminated if the--- target capacity of the Spot fleet request is decreased below the current--- size of the Spot fleet.-sfrcdExcessCapacityTerminationPolicy :: Lens' SpotFleetRequestConfigData (Maybe ExcessCapacityTerminationPolicy)-sfrcdExcessCapacityTerminationPolicy = lens _sfrcdExcessCapacityTerminationPolicy (\ s a -> s{_sfrcdExcessCapacityTerminationPolicy = a});---- | The end date and time of the request, in UTC format (for example,--- /YYYY/-/MM/-/DD/T/HH/:/MM/:/SS/Z). At this point, no new Spot instance--- requests are placed or enabled to fulfill the request.-sfrcdValidUntil :: Lens' SpotFleetRequestConfigData (Maybe UTCTime)-sfrcdValidUntil = lens _sfrcdValidUntil (\ s a -> s{_sfrcdValidUntil = a}) . mapping _Time;---- | Indicates whether running Spot instances should be terminated when the--- Spot fleet request expires.-sfrcdTerminateInstancesWithExpiration :: Lens' SpotFleetRequestConfigData (Maybe Bool)-sfrcdTerminateInstancesWithExpiration = lens _sfrcdTerminateInstancesWithExpiration (\ s a -> s{_sfrcdTerminateInstancesWithExpiration = a});---- | The start date and time of the request, in UTC format (for example,--- /YYYY/-/MM/-/DD/T/HH/:/MM/:/SS/Z). The default is to start fulfilling--- the request immediately.-sfrcdValidFrom :: Lens' SpotFleetRequestConfigData (Maybe UTCTime)-sfrcdValidFrom = lens _sfrcdValidFrom (\ s a -> s{_sfrcdValidFrom = a}) . mapping _Time;---- | Indicates how to allocate the target capacity across the Spot pools--- specified by the Spot fleet request. The default is 'lowestPrice'.-sfrcdAllocationStrategy :: Lens' SpotFleetRequestConfigData (Maybe AllocationStrategy)-sfrcdAllocationStrategy = lens _sfrcdAllocationStrategy (\ s a -> s{_sfrcdAllocationStrategy = a});---- | The bid price per unit hour.-sfrcdSpotPrice :: Lens' SpotFleetRequestConfigData Text-sfrcdSpotPrice = lens _sfrcdSpotPrice (\ s a -> s{_sfrcdSpotPrice = a});---- | The number of units to request. You can choose to set the target--- capacity in terms of instances or a performance characteristic that is--- important to your application workload, such as vCPUs, memory, or I\/O.-sfrcdTargetCapacity :: Lens' SpotFleetRequestConfigData Int-sfrcdTargetCapacity = lens _sfrcdTargetCapacity (\ s a -> s{_sfrcdTargetCapacity = a});---- | Grants the Spot fleet permission to terminate Spot instances on your--- behalf when you cancel its Spot fleet request using--- CancelSpotFleetRequests or when the Spot fleet request expires, if you--- set 'terminateInstancesWithExpiration'.-sfrcdIAMFleetRole :: Lens' SpotFleetRequestConfigData Text-sfrcdIAMFleetRole = lens _sfrcdIAMFleetRole (\ s a -> s{_sfrcdIAMFleetRole = a});---- | Information about the launch specifications for the Spot fleet request.-sfrcdLaunchSpecifications :: Lens' SpotFleetRequestConfigData (NonEmpty SpotFleetLaunchSpecification)-sfrcdLaunchSpecifications = lens _sfrcdLaunchSpecifications (\ s a -> s{_sfrcdLaunchSpecifications = a}) . _List1;--instance FromXML SpotFleetRequestConfigData where-        parseXML x-          = SpotFleetRequestConfigData' <$>-              (x .@? "clientToken") <*>-                (x .@? "excessCapacityTerminationPolicy")-                <*> (x .@? "validUntil")-                <*> (x .@? "terminateInstancesWithExpiration")-                <*> (x .@? "validFrom")-                <*> (x .@? "allocationStrategy")-                <*> (x .@ "spotPrice")-                <*> (x .@ "targetCapacity")-                <*> (x .@ "iamFleetRole")-                <*>-                (x .@? "launchSpecifications" .!@ mempty >>=-                   parseXMLList1 "item")--instance ToQuery SpotFleetRequestConfigData where-        toQuery SpotFleetRequestConfigData'{..}-          = mconcat-              ["ClientToken" =: _sfrcdClientToken,-               "ExcessCapacityTerminationPolicy" =:-                 _sfrcdExcessCapacityTerminationPolicy,-               "ValidUntil" =: _sfrcdValidUntil,-               "TerminateInstancesWithExpiration" =:-                 _sfrcdTerminateInstancesWithExpiration,-               "ValidFrom" =: _sfrcdValidFrom,-               "AllocationStrategy" =: _sfrcdAllocationStrategy,-               "SpotPrice" =: _sfrcdSpotPrice,-               "TargetCapacity" =: _sfrcdTargetCapacity,-               "IamFleetRole" =: _sfrcdIAMFleetRole,-               toQueryList "LaunchSpecifications"-                 _sfrcdLaunchSpecifications]---- | Describes a Spot instance request.------ /See:/ 'spotInstanceRequest' smart constructor.-data SpotInstanceRequest = SpotInstanceRequest'-    { _sirInstanceId               :: !(Maybe Text)-    , _sirStatus                   :: !(Maybe SpotInstanceStatus)-    , _sirState                    :: !(Maybe SpotInstanceState)-    , _sirActualBlockHourlyPrice   :: !(Maybe Text)-    , _sirBlockDurationMinutes     :: !(Maybe Int)-    , _sirProductDescription       :: !(Maybe RIProductDescription)-    , _sirSpotPrice                :: !(Maybe Text)-    , _sirLaunchSpecification      :: !(Maybe LaunchSpecification)-    , _sirAvailabilityZoneGroup    :: !(Maybe Text)-    , _sirLaunchedAvailabilityZone :: !(Maybe Text)-    , _sirValidUntil               :: !(Maybe ISO8601)-    , _sirLaunchGroup              :: !(Maybe Text)-    , _sirFault                    :: !(Maybe SpotInstanceStateFault)-    , _sirSpotInstanceRequestId    :: !(Maybe Text)-    , _sirType                     :: !(Maybe SpotInstanceType)-    , _sirValidFrom                :: !(Maybe ISO8601)-    , _sirCreateTime               :: !(Maybe ISO8601)-    , _sirTags                     :: !(Maybe [Tag])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SpotInstanceRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sirInstanceId'------ * 'sirStatus'------ * 'sirState'------ * 'sirActualBlockHourlyPrice'------ * 'sirBlockDurationMinutes'------ * 'sirProductDescription'------ * 'sirSpotPrice'------ * 'sirLaunchSpecification'------ * 'sirAvailabilityZoneGroup'------ * 'sirLaunchedAvailabilityZone'------ * 'sirValidUntil'------ * 'sirLaunchGroup'------ * 'sirFault'------ * 'sirSpotInstanceRequestId'------ * 'sirType'------ * 'sirValidFrom'------ * 'sirCreateTime'------ * 'sirTags'-spotInstanceRequest-    :: SpotInstanceRequest-spotInstanceRequest =-    SpotInstanceRequest'-    { _sirInstanceId = Nothing-    , _sirStatus = Nothing-    , _sirState = Nothing-    , _sirActualBlockHourlyPrice = Nothing-    , _sirBlockDurationMinutes = Nothing-    , _sirProductDescription = Nothing-    , _sirSpotPrice = Nothing-    , _sirLaunchSpecification = Nothing-    , _sirAvailabilityZoneGroup = Nothing-    , _sirLaunchedAvailabilityZone = Nothing-    , _sirValidUntil = Nothing-    , _sirLaunchGroup = Nothing-    , _sirFault = Nothing-    , _sirSpotInstanceRequestId = Nothing-    , _sirType = Nothing-    , _sirValidFrom = Nothing-    , _sirCreateTime = Nothing-    , _sirTags = Nothing-    }---- | The instance ID, if an instance has been launched to fulfill the Spot--- instance request.-sirInstanceId :: Lens' SpotInstanceRequest (Maybe Text)-sirInstanceId = lens _sirInstanceId (\ s a -> s{_sirInstanceId = a});---- | The status code and status message describing the Spot instance request.-sirStatus :: Lens' SpotInstanceRequest (Maybe SpotInstanceStatus)-sirStatus = lens _sirStatus (\ s a -> s{_sirStatus = a});---- | The state of the Spot instance request. Spot bid status information can--- help you track your Spot instance requests. For more information, see--- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html Spot Bid Status>--- in the /Amazon Elastic Compute Cloud User Guide/.-sirState :: Lens' SpotInstanceRequest (Maybe SpotInstanceState)-sirState = lens _sirState (\ s a -> s{_sirState = a});---- | If you specified a duration and your Spot instance request was--- fulfilled, this is the fixed hourly price in effect for the Spot--- instance while it runs.-sirActualBlockHourlyPrice :: Lens' SpotInstanceRequest (Maybe Text)-sirActualBlockHourlyPrice = lens _sirActualBlockHourlyPrice (\ s a -> s{_sirActualBlockHourlyPrice = a});---- | The duration for the Spot instance, in minutes.-sirBlockDurationMinutes :: Lens' SpotInstanceRequest (Maybe Int)-sirBlockDurationMinutes = lens _sirBlockDurationMinutes (\ s a -> s{_sirBlockDurationMinutes = a});---- | The product description associated with the Spot instance.-sirProductDescription :: Lens' SpotInstanceRequest (Maybe RIProductDescription)-sirProductDescription = lens _sirProductDescription (\ s a -> s{_sirProductDescription = a});---- | The maximum hourly price (bid) for the Spot instance launched to fulfill--- the request.-sirSpotPrice :: Lens' SpotInstanceRequest (Maybe Text)-sirSpotPrice = lens _sirSpotPrice (\ s a -> s{_sirSpotPrice = a});---- | Additional information for launching instances.-sirLaunchSpecification :: Lens' SpotInstanceRequest (Maybe LaunchSpecification)-sirLaunchSpecification = lens _sirLaunchSpecification (\ s a -> s{_sirLaunchSpecification = a});---- | The Availability Zone group. If you specify the same Availability Zone--- group for all Spot instance requests, all Spot instances are launched in--- the same Availability Zone.-sirAvailabilityZoneGroup :: Lens' SpotInstanceRequest (Maybe Text)-sirAvailabilityZoneGroup = lens _sirAvailabilityZoneGroup (\ s a -> s{_sirAvailabilityZoneGroup = a});---- | The Availability Zone in which the bid is launched.-sirLaunchedAvailabilityZone :: Lens' SpotInstanceRequest (Maybe Text)-sirLaunchedAvailabilityZone = lens _sirLaunchedAvailabilityZone (\ s a -> s{_sirLaunchedAvailabilityZone = a});---- | The end date of the request, in UTC format (for example,--- /YYYY/-/MM/-/DD/T/HH/:/MM/:/SS/Z). If this is a one-time request, it--- remains active until all instances launch, the request is canceled, or--- this date is reached. If the request is persistent, it remains active--- until it is canceled or this date is reached.-sirValidUntil :: Lens' SpotInstanceRequest (Maybe UTCTime)-sirValidUntil = lens _sirValidUntil (\ s a -> s{_sirValidUntil = a}) . mapping _Time;---- | The instance launch group. Launch groups are Spot instances that launch--- together and terminate together.-sirLaunchGroup :: Lens' SpotInstanceRequest (Maybe Text)-sirLaunchGroup = lens _sirLaunchGroup (\ s a -> s{_sirLaunchGroup = a});---- | The fault codes for the Spot instance request, if any.-sirFault :: Lens' SpotInstanceRequest (Maybe SpotInstanceStateFault)-sirFault = lens _sirFault (\ s a -> s{_sirFault = a});---- | The ID of the Spot instance request.-sirSpotInstanceRequestId :: Lens' SpotInstanceRequest (Maybe Text)-sirSpotInstanceRequestId = lens _sirSpotInstanceRequestId (\ s a -> s{_sirSpotInstanceRequestId = a});---- | The Spot instance request type.-sirType :: Lens' SpotInstanceRequest (Maybe SpotInstanceType)-sirType = lens _sirType (\ s a -> s{_sirType = a});---- | The start date of the request, in UTC format (for example,--- /YYYY/-/MM/-/DD/T/HH/:/MM/:/SS/Z). The request becomes active at this--- date and time.-sirValidFrom :: Lens' SpotInstanceRequest (Maybe UTCTime)-sirValidFrom = lens _sirValidFrom (\ s a -> s{_sirValidFrom = a}) . mapping _Time;---- | The date and time when the Spot instance request was created, in UTC--- format (for example, /YYYY/-/MM/-/DD/T/HH/:/MM/:/SS/Z).-sirCreateTime :: Lens' SpotInstanceRequest (Maybe UTCTime)-sirCreateTime = lens _sirCreateTime (\ s a -> s{_sirCreateTime = a}) . mapping _Time;---- | Any tags assigned to the resource.-sirTags :: Lens' SpotInstanceRequest [Tag]-sirTags = lens _sirTags (\ s a -> s{_sirTags = a}) . _Default . _Coerce;--instance FromXML SpotInstanceRequest where-        parseXML x-          = SpotInstanceRequest' <$>-              (x .@? "instanceId") <*> (x .@? "status") <*>-                (x .@? "state")-                <*> (x .@? "actualBlockHourlyPrice")-                <*> (x .@? "blockDurationMinutes")-                <*> (x .@? "productDescription")-                <*> (x .@? "spotPrice")-                <*> (x .@? "launchSpecification")-                <*> (x .@? "availabilityZoneGroup")-                <*> (x .@? "launchedAvailabilityZone")-                <*> (x .@? "validUntil")-                <*> (x .@? "launchGroup")-                <*> (x .@? "fault")-                <*> (x .@? "spotInstanceRequestId")-                <*> (x .@? "type")-                <*> (x .@? "validFrom")-                <*> (x .@? "createTime")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))---- | Describes a Spot instance state change.------ /See:/ 'spotInstanceStateFault' smart constructor.-data SpotInstanceStateFault = SpotInstanceStateFault'-    { _sisfCode    :: !(Maybe Text)-    , _sisfMessage :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SpotInstanceStateFault' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sisfCode'------ * 'sisfMessage'-spotInstanceStateFault-    :: SpotInstanceStateFault-spotInstanceStateFault =-    SpotInstanceStateFault'-    { _sisfCode = Nothing-    , _sisfMessage = Nothing-    }---- | The reason code for the Spot instance state change.-sisfCode :: Lens' SpotInstanceStateFault (Maybe Text)-sisfCode = lens _sisfCode (\ s a -> s{_sisfCode = a});---- | The message for the Spot instance state change.-sisfMessage :: Lens' SpotInstanceStateFault (Maybe Text)-sisfMessage = lens _sisfMessage (\ s a -> s{_sisfMessage = a});--instance FromXML SpotInstanceStateFault where-        parseXML x-          = SpotInstanceStateFault' <$>-              (x .@? "code") <*> (x .@? "message")---- | Describes the status of a Spot instance request.------ /See:/ 'spotInstanceStatus' smart constructor.-data SpotInstanceStatus = SpotInstanceStatus'-    { _sisUpdateTime :: !(Maybe ISO8601)-    , _sisCode       :: !(Maybe Text)-    , _sisMessage    :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SpotInstanceStatus' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sisUpdateTime'------ * 'sisCode'------ * 'sisMessage'-spotInstanceStatus-    :: SpotInstanceStatus-spotInstanceStatus =-    SpotInstanceStatus'-    { _sisUpdateTime = Nothing-    , _sisCode = Nothing-    , _sisMessage = Nothing-    }---- | The date and time of the most recent status update, in UTC format (for--- example, /YYYY/-/MM/-/DD/T/HH/:/MM/:/SS/Z).-sisUpdateTime :: Lens' SpotInstanceStatus (Maybe UTCTime)-sisUpdateTime = lens _sisUpdateTime (\ s a -> s{_sisUpdateTime = a}) . mapping _Time;---- | The status code. For a list of status codes, see--- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html#spot-instance-bid-status-understand Spot Bid Status Codes>--- in the /Amazon Elastic Compute Cloud User Guide/.-sisCode :: Lens' SpotInstanceStatus (Maybe Text)-sisCode = lens _sisCode (\ s a -> s{_sisCode = a});---- | The description for the status code.-sisMessage :: Lens' SpotInstanceStatus (Maybe Text)-sisMessage = lens _sisMessage (\ s a -> s{_sisMessage = a});--instance FromXML SpotInstanceStatus where-        parseXML x-          = SpotInstanceStatus' <$>-              (x .@? "updateTime") <*> (x .@? "code") <*>-                (x .@? "message")---- | Describes Spot instance placement.------ /See:/ 'spotPlacement' smart constructor.-data SpotPlacement = SpotPlacement'-    { _spAvailabilityZone :: !(Maybe Text)-    , _spGroupName        :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SpotPlacement' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'spAvailabilityZone'------ * 'spGroupName'-spotPlacement-    :: SpotPlacement-spotPlacement =-    SpotPlacement'-    { _spAvailabilityZone = Nothing-    , _spGroupName = Nothing-    }---- | The Availability Zones. To specify multiple Availability Zones, separate--- them using commas; for example, \"us-west-2a, us-west-2b\".-spAvailabilityZone :: Lens' SpotPlacement (Maybe Text)-spAvailabilityZone = lens _spAvailabilityZone (\ s a -> s{_spAvailabilityZone = a});---- | The name of the placement group (for cluster instances).-spGroupName :: Lens' SpotPlacement (Maybe Text)-spGroupName = lens _spGroupName (\ s a -> s{_spGroupName = a});--instance FromXML SpotPlacement where-        parseXML x-          = SpotPlacement' <$>-              (x .@? "availabilityZone") <*> (x .@? "groupName")--instance ToQuery SpotPlacement where-        toQuery SpotPlacement'{..}-          = mconcat-              ["AvailabilityZone" =: _spAvailabilityZone,-               "GroupName" =: _spGroupName]---- | Describes the maximum hourly price (bid) for any Spot instance launched--- to fulfill the request.------ /See:/ 'spotPrice' smart constructor.-data SpotPrice = SpotPrice'-    { _sProductDescription :: !(Maybe RIProductDescription)-    , _sSpotPrice          :: !(Maybe Text)-    , _sInstanceType       :: !(Maybe InstanceType)-    , _sAvailabilityZone   :: !(Maybe Text)-    , _sTimestamp          :: !(Maybe ISO8601)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SpotPrice' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sProductDescription'------ * 'sSpotPrice'------ * 'sInstanceType'------ * 'sAvailabilityZone'------ * 'sTimestamp'-spotPrice-    :: SpotPrice-spotPrice =-    SpotPrice'-    { _sProductDescription = Nothing-    , _sSpotPrice = Nothing-    , _sInstanceType = Nothing-    , _sAvailabilityZone = Nothing-    , _sTimestamp = Nothing-    }---- | A general description of the AMI.-sProductDescription :: Lens' SpotPrice (Maybe RIProductDescription)-sProductDescription = lens _sProductDescription (\ s a -> s{_sProductDescription = a});---- | The maximum price (bid) that you are willing to pay for a Spot instance.-sSpotPrice :: Lens' SpotPrice (Maybe Text)-sSpotPrice = lens _sSpotPrice (\ s a -> s{_sSpotPrice = a});---- | The instance type.-sInstanceType :: Lens' SpotPrice (Maybe InstanceType)-sInstanceType = lens _sInstanceType (\ s a -> s{_sInstanceType = a});---- | The Availability Zone.-sAvailabilityZone :: Lens' SpotPrice (Maybe Text)-sAvailabilityZone = lens _sAvailabilityZone (\ s a -> s{_sAvailabilityZone = a});---- | The date and time the request was created, in UTC format (for example,--- /YYYY/-/MM/-/DD/T/HH/:/MM/:/SS/Z).-sTimestamp :: Lens' SpotPrice (Maybe UTCTime)-sTimestamp = lens _sTimestamp (\ s a -> s{_sTimestamp = a}) . mapping _Time;--instance FromXML SpotPrice where-        parseXML x-          = SpotPrice' <$>-              (x .@? "productDescription") <*> (x .@? "spotPrice")-                <*> (x .@? "instanceType")-                <*> (x .@? "availabilityZone")-                <*> (x .@? "timestamp")---- | Describes a state change.------ /See:/ 'stateReason' smart constructor.-data StateReason = StateReason'-    { _srCode    :: !(Maybe Text)-    , _srMessage :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'StateReason' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'srCode'------ * 'srMessage'-stateReason-    :: StateReason-stateReason =-    StateReason'-    { _srCode = Nothing-    , _srMessage = Nothing-    }---- | The reason code for the state change.-srCode :: Lens' StateReason (Maybe Text)-srCode = lens _srCode (\ s a -> s{_srCode = a});---- | The message for the state change.------ -   'Server.SpotInstanceTermination': A Spot instance was terminated due---     to an increase in the market price.------ -   'Server.InternalError': An internal error occurred during instance---     launch, resulting in termination.------ -   'Server.InsufficientInstanceCapacity': There was insufficient---     instance capacity to satisfy the launch request.------ -   'Client.InternalError': A client error caused the instance to---     terminate on launch.------ -   'Client.InstanceInitiatedShutdown': The instance was shut down using---     the 'shutdown -h' command from the instance.------ -   'Client.UserInitiatedShutdown': The instance was shut down using the---     Amazon EC2 API.------ -   'Client.VolumeLimitExceeded': The volume limit was exceeded.------ -   'Client.InvalidSnapshot.NotFound': The specified snapshot was not---     found.----srMessage :: Lens' StateReason (Maybe Text)-srMessage = lens _srMessage (\ s a -> s{_srMessage = a});--instance FromXML StateReason where-        parseXML x-          = StateReason' <$>-              (x .@? "code") <*> (x .@? "message")---- | Describes the storage location for an instance store-backed AMI.------ /See:/ 'storage' smart constructor.-newtype Storage = Storage'-    { _sS3 :: Maybe S3Storage-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Storage' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sS3'-storage-    :: Storage-storage =-    Storage'-    { _sS3 = Nothing-    }---- | An Amazon S3 storage location.-sS3 :: Lens' Storage (Maybe S3Storage)-sS3 = lens _sS3 (\ s a -> s{_sS3 = a});--instance FromXML Storage where-        parseXML x = Storage' <$> (x .@? "S3")--instance ToQuery Storage where-        toQuery Storage'{..} = mconcat ["S3" =: _sS3]---- | Describes a subnet.------ /See:/ 'subnet' smart constructor.-data Subnet = Subnet'-    { _subMapPublicIPOnLaunch     :: !(Maybe Bool)-    , _subDefaultForAz            :: !(Maybe Bool)-    , _subTags                    :: !(Maybe [Tag])-    , _subAvailabilityZone        :: !Text-    , _subAvailableIPAddressCount :: !Int-    , _subCIdRBlock               :: !Text-    , _subState                   :: !SubnetState-    , _subSubnetId                :: !Text-    , _subVPCId                   :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Subnet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'subMapPublicIPOnLaunch'------ * 'subDefaultForAz'------ * 'subTags'------ * 'subAvailabilityZone'------ * 'subAvailableIPAddressCount'------ * 'subCIdRBlock'------ * 'subState'------ * 'subSubnetId'------ * 'subVPCId'-subnet-    :: Text -- ^ 'subAvailabilityZone'-    -> Int -- ^ 'subAvailableIPAddressCount'-    -> Text -- ^ 'subCIdRBlock'-    -> SubnetState -- ^ 'subState'-    -> Text -- ^ 'subSubnetId'-    -> Text -- ^ 'subVPCId'-    -> Subnet-subnet pAvailabilityZone_ pAvailableIPAddressCount_ pCIdRBlock_ pState_ pSubnetId_ pVPCId_ =-    Subnet'-    { _subMapPublicIPOnLaunch = Nothing-    , _subDefaultForAz = Nothing-    , _subTags = Nothing-    , _subAvailabilityZone = pAvailabilityZone_-    , _subAvailableIPAddressCount = pAvailableIPAddressCount_-    , _subCIdRBlock = pCIdRBlock_-    , _subState = pState_-    , _subSubnetId = pSubnetId_-    , _subVPCId = pVPCId_-    }---- | Indicates whether instances launched in this subnet receive a public IP--- address.-subMapPublicIPOnLaunch :: Lens' Subnet (Maybe Bool)-subMapPublicIPOnLaunch = lens _subMapPublicIPOnLaunch (\ s a -> s{_subMapPublicIPOnLaunch = a});---- | Indicates whether this is the default subnet for the Availability Zone.-subDefaultForAz :: Lens' Subnet (Maybe Bool)-subDefaultForAz = lens _subDefaultForAz (\ s a -> s{_subDefaultForAz = a});---- | Any tags assigned to the subnet.-subTags :: Lens' Subnet [Tag]-subTags = lens _subTags (\ s a -> s{_subTags = a}) . _Default . _Coerce;---- | The Availability Zone of the subnet.-subAvailabilityZone :: Lens' Subnet Text-subAvailabilityZone = lens _subAvailabilityZone (\ s a -> s{_subAvailabilityZone = a});---- | The number of unused IP addresses in the subnet. Note that the IP--- addresses for any stopped instances are considered unavailable.-subAvailableIPAddressCount :: Lens' Subnet Int-subAvailableIPAddressCount = lens _subAvailableIPAddressCount (\ s a -> s{_subAvailableIPAddressCount = a});---- | The CIDR block assigned to the subnet.-subCIdRBlock :: Lens' Subnet Text-subCIdRBlock = lens _subCIdRBlock (\ s a -> s{_subCIdRBlock = a});---- | The current state of the subnet.-subState :: Lens' Subnet SubnetState-subState = lens _subState (\ s a -> s{_subState = a});---- | The ID of the subnet.-subSubnetId :: Lens' Subnet Text-subSubnetId = lens _subSubnetId (\ s a -> s{_subSubnetId = a});---- | The ID of the VPC the subnet is in.-subVPCId :: Lens' Subnet Text-subVPCId = lens _subVPCId (\ s a -> s{_subVPCId = a});--instance FromXML Subnet where-        parseXML x-          = Subnet' <$>-              (x .@? "mapPublicIpOnLaunch") <*>-                (x .@? "defaultForAz")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@ "availabilityZone")-                <*> (x .@ "availableIpAddressCount")-                <*> (x .@ "cidrBlock")-                <*> (x .@ "state")-                <*> (x .@ "subnetId")-                <*> (x .@ "vpcId")---- | Describes a tag.------ /See:/ 'tag' smart constructor.-data Tag = Tag'-    { _tagKey   :: !Text-    , _tagValue :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Tag' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tagKey'------ * 'tagValue'-tag-    :: Text -- ^ 'tagKey'-    -> Text -- ^ 'tagValue'-    -> Tag-tag pKey_ pValue_ =-    Tag'-    { _tagKey = pKey_-    , _tagValue = pValue_-    }---- | The key of the tag.------ Constraints: Tag keys are case-sensitive and accept a maximum of 127--- Unicode characters. May not begin with 'aws:'-tagKey :: Lens' Tag Text-tagKey = lens _tagKey (\ s a -> s{_tagKey = a});---- | The value of the tag.------ Constraints: Tag values are case-sensitive and accept a maximum of 255--- Unicode characters.-tagValue :: Lens' Tag Text-tagValue = lens _tagValue (\ s a -> s{_tagValue = a});--instance FromXML Tag where-        parseXML x = Tag' <$> (x .@ "key") <*> (x .@ "value")--instance ToQuery Tag where-        toQuery Tag'{..}-          = mconcat ["Key" =: _tagKey, "Value" =: _tagValue]---- | Describes a tag.------ /See:/ 'tagDescription' smart constructor.-data TagDescription = TagDescription'-    { _tdResourceId   :: !Text-    , _tdResourceType :: !ResourceType-    , _tdKey          :: !Text-    , _tdValue        :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'TagDescription' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tdResourceId'------ * 'tdResourceType'------ * 'tdKey'------ * 'tdValue'-tagDescription-    :: Text -- ^ 'tdResourceId'-    -> ResourceType -- ^ 'tdResourceType'-    -> Text -- ^ 'tdKey'-    -> Text -- ^ 'tdValue'-    -> TagDescription-tagDescription pResourceId_ pResourceType_ pKey_ pValue_ =-    TagDescription'-    { _tdResourceId = pResourceId_-    , _tdResourceType = pResourceType_-    , _tdKey = pKey_-    , _tdValue = pValue_-    }---- | The ID of the resource. For example, 'ami-1a2b3c4d'.-tdResourceId :: Lens' TagDescription Text-tdResourceId = lens _tdResourceId (\ s a -> s{_tdResourceId = a});---- | The resource type.-tdResourceType :: Lens' TagDescription ResourceType-tdResourceType = lens _tdResourceType (\ s a -> s{_tdResourceType = a});---- | The tag key.-tdKey :: Lens' TagDescription Text-tdKey = lens _tdKey (\ s a -> s{_tdKey = a});---- | The tag value.-tdValue :: Lens' TagDescription Text-tdValue = lens _tdValue (\ s a -> s{_tdValue = a});--instance FromXML TagDescription where-        parseXML x-          = TagDescription' <$>-              (x .@ "resourceId") <*> (x .@ "resourceType") <*>-                (x .@ "key")-                <*> (x .@ "value")---- | Information about items that were not successfully processed in a batch--- call.------ /See:/ 'unsuccessfulItem' smart constructor.-data UnsuccessfulItem = UnsuccessfulItem'-    { _uiResourceId :: !(Maybe Text)-    , _uiError      :: !UnsuccessfulItemError-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'UnsuccessfulItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'uiResourceId'------ * 'uiError'-unsuccessfulItem-    :: UnsuccessfulItemError -- ^ 'uiError'-    -> UnsuccessfulItem-unsuccessfulItem pError_ =-    UnsuccessfulItem'-    { _uiResourceId = Nothing-    , _uiError = pError_-    }---- | The ID of the resource.-uiResourceId :: Lens' UnsuccessfulItem (Maybe Text)-uiResourceId = lens _uiResourceId (\ s a -> s{_uiResourceId = a});---- | Information about the error.-uiError :: Lens' UnsuccessfulItem UnsuccessfulItemError-uiError = lens _uiError (\ s a -> s{_uiError = a});--instance FromXML UnsuccessfulItem where-        parseXML x-          = UnsuccessfulItem' <$>-              (x .@? "resourceId") <*> (x .@ "error")---- | Information about the error that occurred. For more information about--- errors, see--- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html Error Codes>.------ /See:/ 'unsuccessfulItemError' smart constructor.-data UnsuccessfulItemError = UnsuccessfulItemError'-    { _uieCode    :: !Text-    , _uieMessage :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'UnsuccessfulItemError' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'uieCode'------ * 'uieMessage'-unsuccessfulItemError-    :: Text -- ^ 'uieCode'-    -> Text -- ^ 'uieMessage'-    -> UnsuccessfulItemError-unsuccessfulItemError pCode_ pMessage_ =-    UnsuccessfulItemError'-    { _uieCode = pCode_-    , _uieMessage = pMessage_-    }---- | The error code.-uieCode :: Lens' UnsuccessfulItemError Text-uieCode = lens _uieCode (\ s a -> s{_uieCode = a});---- | The error message accompanying the error code.-uieMessage :: Lens' UnsuccessfulItemError Text-uieMessage = lens _uieMessage (\ s a -> s{_uieMessage = a});--instance FromXML UnsuccessfulItemError where-        parseXML x-          = UnsuccessfulItemError' <$>-              (x .@ "code") <*> (x .@ "message")---- | Describes the S3 bucket for the disk image.------ /See:/ 'userBucket' smart constructor.-data UserBucket = UserBucket'-    { _ubS3Key    :: !(Maybe Text)-    , _ubS3Bucket :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'UserBucket' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ubS3Key'------ * 'ubS3Bucket'-userBucket-    :: UserBucket-userBucket =-    UserBucket'-    { _ubS3Key = Nothing-    , _ubS3Bucket = Nothing-    }---- | The key for the disk image.-ubS3Key :: Lens' UserBucket (Maybe Text)-ubS3Key = lens _ubS3Key (\ s a -> s{_ubS3Key = a});---- | The name of the S3 bucket where the disk image is located.-ubS3Bucket :: Lens' UserBucket (Maybe Text)-ubS3Bucket = lens _ubS3Bucket (\ s a -> s{_ubS3Bucket = a});--instance ToQuery UserBucket where-        toQuery UserBucket'{..}-          = mconcat-              ["S3Key" =: _ubS3Key, "S3Bucket" =: _ubS3Bucket]---- | Describes the S3 bucket for the disk image.------ /See:/ 'userBucketDetails' smart constructor.-data UserBucketDetails = UserBucketDetails'-    { _ubdS3Key    :: !(Maybe Text)-    , _ubdS3Bucket :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'UserBucketDetails' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ubdS3Key'------ * 'ubdS3Bucket'-userBucketDetails-    :: UserBucketDetails-userBucketDetails =-    UserBucketDetails'-    { _ubdS3Key = Nothing-    , _ubdS3Bucket = Nothing-    }---- | The key from which the disk image was created.-ubdS3Key :: Lens' UserBucketDetails (Maybe Text)-ubdS3Key = lens _ubdS3Key (\ s a -> s{_ubdS3Key = a});---- | The S3 bucket from which the disk image was created.-ubdS3Bucket :: Lens' UserBucketDetails (Maybe Text)-ubdS3Bucket = lens _ubdS3Bucket (\ s a -> s{_ubdS3Bucket = a});--instance FromXML UserBucketDetails where-        parseXML x-          = UserBucketDetails' <$>-              (x .@? "s3Key") <*> (x .@? "s3Bucket")---- | Describes the user data to be made available to an instance.------ /See:/ 'userData' smart constructor.-newtype UserData = UserData'-    { _udData :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'UserData' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'udData'-userData-    :: UserData-userData =-    UserData'-    { _udData = Nothing-    }---- | The Base64-encoded MIME user data for the instance.-udData :: Lens' UserData (Maybe Text)-udData = lens _udData (\ s a -> s{_udData = a});--instance ToQuery UserData where-        toQuery UserData'{..} = mconcat ["Data" =: _udData]---- | Describes a security group and AWS account ID pair.------ /See:/ 'userIdGroupPair' smart constructor.-data UserIdGroupPair = UserIdGroupPair'-    { _uigpUserId    :: !(Maybe Text)-    , _uigpGroupId   :: !(Maybe Text)-    , _uigpGroupName :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'UserIdGroupPair' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'uigpUserId'------ * 'uigpGroupId'------ * 'uigpGroupName'-userIdGroupPair-    :: UserIdGroupPair-userIdGroupPair =-    UserIdGroupPair'-    { _uigpUserId = Nothing-    , _uigpGroupId = Nothing-    , _uigpGroupName = Nothing-    }---- | The ID of an AWS account. EC2-Classic only.-uigpUserId :: Lens' UserIdGroupPair (Maybe Text)-uigpUserId = lens _uigpUserId (\ s a -> s{_uigpUserId = a});---- | The ID of the security group.-uigpGroupId :: Lens' UserIdGroupPair (Maybe Text)-uigpGroupId = lens _uigpGroupId (\ s a -> s{_uigpGroupId = a});---- | The name of the security group. In a request, use this parameter for a--- security group in EC2-Classic or a default VPC only. For a security--- group in a nondefault VPC, use 'GroupId'.-uigpGroupName :: Lens' UserIdGroupPair (Maybe Text)-uigpGroupName = lens _uigpGroupName (\ s a -> s{_uigpGroupName = a});--instance FromXML UserIdGroupPair where-        parseXML x-          = UserIdGroupPair' <$>-              (x .@? "userId") <*> (x .@? "groupId") <*>-                (x .@? "groupName")--instance ToQuery UserIdGroupPair where-        toQuery UserIdGroupPair'{..}-          = mconcat-              ["UserId" =: _uigpUserId, "GroupId" =: _uigpGroupId,-               "GroupName" =: _uigpGroupName]---- | Describes telemetry for a VPN tunnel.------ /See:/ 'vgwTelemetry' smart constructor.-data VGWTelemetry = VGWTelemetry'-    { _vtStatus             :: !(Maybe TelemetryStatus)-    , _vtOutsideIPAddress   :: !(Maybe Text)-    , _vtLastStatusChange   :: !(Maybe ISO8601)-    , _vtAcceptedRouteCount :: !(Maybe Int)-    , _vtStatusMessage      :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VGWTelemetry' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vtStatus'------ * 'vtOutsideIPAddress'------ * 'vtLastStatusChange'------ * 'vtAcceptedRouteCount'------ * 'vtStatusMessage'-vgwTelemetry-    :: VGWTelemetry-vgwTelemetry =-    VGWTelemetry'-    { _vtStatus = Nothing-    , _vtOutsideIPAddress = Nothing-    , _vtLastStatusChange = Nothing-    , _vtAcceptedRouteCount = Nothing-    , _vtStatusMessage = Nothing-    }---- | The status of the VPN tunnel.-vtStatus :: Lens' VGWTelemetry (Maybe TelemetryStatus)-vtStatus = lens _vtStatus (\ s a -> s{_vtStatus = a});---- | The Internet-routable IP address of the virtual private gateway\'s--- outside interface.-vtOutsideIPAddress :: Lens' VGWTelemetry (Maybe Text)-vtOutsideIPAddress = lens _vtOutsideIPAddress (\ s a -> s{_vtOutsideIPAddress = a});---- | The date and time of the last change in status.-vtLastStatusChange :: Lens' VGWTelemetry (Maybe UTCTime)-vtLastStatusChange = lens _vtLastStatusChange (\ s a -> s{_vtLastStatusChange = a}) . mapping _Time;---- | The number of accepted routes.-vtAcceptedRouteCount :: Lens' VGWTelemetry (Maybe Int)-vtAcceptedRouteCount = lens _vtAcceptedRouteCount (\ s a -> s{_vtAcceptedRouteCount = a});---- | If an error occurs, a description of the error.-vtStatusMessage :: Lens' VGWTelemetry (Maybe Text)-vtStatusMessage = lens _vtStatusMessage (\ s a -> s{_vtStatusMessage = a});--instance FromXML VGWTelemetry where-        parseXML x-          = VGWTelemetry' <$>-              (x .@? "status") <*> (x .@? "outsideIpAddress") <*>-                (x .@? "lastStatusChange")-                <*> (x .@? "acceptedRouteCount")-                <*> (x .@? "statusMessage")---- | Describes a VPC.------ /See:/ 'vpc' smart constructor.-data VPC = VPC'-    { _vpcTags            :: !(Maybe [Tag])-    , _vpcIsDefault       :: !(Maybe Bool)-    , _vpcCIdRBlock       :: !Text-    , _vpcDHCPOptionsId   :: !Text-    , _vpcInstanceTenancy :: !Tenancy-    , _vpcState           :: !VPCState-    , _vpcVPCId           :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPC' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vpcTags'------ * 'vpcIsDefault'------ * 'vpcCIdRBlock'------ * 'vpcDHCPOptionsId'------ * 'vpcInstanceTenancy'------ * 'vpcState'------ * 'vpcVPCId'-vpc-    :: Text -- ^ 'vpcCIdRBlock'-    -> Text -- ^ 'vpcDHCPOptionsId'-    -> Tenancy -- ^ 'vpcInstanceTenancy'-    -> VPCState -- ^ 'vpcState'-    -> Text -- ^ 'vpcVPCId'-    -> VPC-vpc pCIdRBlock_ pDHCPOptionsId_ pInstanceTenancy_ pState_ pVPCId_ =-    VPC'-    { _vpcTags = Nothing-    , _vpcIsDefault = Nothing-    , _vpcCIdRBlock = pCIdRBlock_-    , _vpcDHCPOptionsId = pDHCPOptionsId_-    , _vpcInstanceTenancy = pInstanceTenancy_-    , _vpcState = pState_-    , _vpcVPCId = pVPCId_-    }---- | Any tags assigned to the VPC.-vpcTags :: Lens' VPC [Tag]-vpcTags = lens _vpcTags (\ s a -> s{_vpcTags = a}) . _Default . _Coerce;---- | Indicates whether the VPC is the default VPC.-vpcIsDefault :: Lens' VPC (Maybe Bool)-vpcIsDefault = lens _vpcIsDefault (\ s a -> s{_vpcIsDefault = a});---- | The CIDR block for the VPC.-vpcCIdRBlock :: Lens' VPC Text-vpcCIdRBlock = lens _vpcCIdRBlock (\ s a -> s{_vpcCIdRBlock = a});---- | The ID of the set of DHCP options you\'ve associated with the VPC (or--- 'default' if the default options are associated with the VPC).-vpcDHCPOptionsId :: Lens' VPC Text-vpcDHCPOptionsId = lens _vpcDHCPOptionsId (\ s a -> s{_vpcDHCPOptionsId = a});---- | The allowed tenancy of instances launched into the VPC.-vpcInstanceTenancy :: Lens' VPC Tenancy-vpcInstanceTenancy = lens _vpcInstanceTenancy (\ s a -> s{_vpcInstanceTenancy = a});---- | The current state of the VPC.-vpcState :: Lens' VPC VPCState-vpcState = lens _vpcState (\ s a -> s{_vpcState = a});---- | The ID of the VPC.-vpcVPCId :: Lens' VPC Text-vpcVPCId = lens _vpcVPCId (\ s a -> s{_vpcVPCId = a});--instance FromXML VPC where-        parseXML x-          = VPC' <$>-              (x .@? "tagSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "isDefault")-                <*> (x .@ "cidrBlock")-                <*> (x .@ "dhcpOptionsId")-                <*> (x .@ "instanceTenancy")-                <*> (x .@ "state")-                <*> (x .@ "vpcId")---- | Describes an attachment between a virtual private gateway and a VPC.------ /See:/ 'vpcAttachment' smart constructor.-data VPCAttachment = VPCAttachment'-    { _vaState :: !(Maybe AttachmentStatus)-    , _vaVPCId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPCAttachment' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vaState'------ * 'vaVPCId'-vpcAttachment-    :: VPCAttachment-vpcAttachment =-    VPCAttachment'-    { _vaState = Nothing-    , _vaVPCId = Nothing-    }---- | The current state of the attachment.-vaState :: Lens' VPCAttachment (Maybe AttachmentStatus)-vaState = lens _vaState (\ s a -> s{_vaState = a});---- | The ID of the VPC.-vaVPCId :: Lens' VPCAttachment (Maybe Text)-vaVPCId = lens _vaVPCId (\ s a -> s{_vaVPCId = a});--instance FromXML VPCAttachment where-        parseXML x-          = VPCAttachment' <$>-              (x .@? "state") <*> (x .@? "vpcId")---- | Describes whether a VPC is enabled for ClassicLink.------ /See:/ 'vpcClassicLink' smart constructor.-data VPCClassicLink = VPCClassicLink'-    { _vclVPCId              :: !(Maybe Text)-    , _vclTags               :: !(Maybe [Tag])-    , _vclClassicLinkEnabled :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPCClassicLink' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vclVPCId'------ * 'vclTags'------ * 'vclClassicLinkEnabled'-vpcClassicLink-    :: VPCClassicLink-vpcClassicLink =-    VPCClassicLink'-    { _vclVPCId = Nothing-    , _vclTags = Nothing-    , _vclClassicLinkEnabled = Nothing-    }---- | The ID of the VPC.-vclVPCId :: Lens' VPCClassicLink (Maybe Text)-vclVPCId = lens _vclVPCId (\ s a -> s{_vclVPCId = a});---- | Any tags assigned to the VPC.-vclTags :: Lens' VPCClassicLink [Tag]-vclTags = lens _vclTags (\ s a -> s{_vclTags = a}) . _Default . _Coerce;---- | Indicates whether the VPC is enabled for ClassicLink.-vclClassicLinkEnabled :: Lens' VPCClassicLink (Maybe Bool)-vclClassicLinkEnabled = lens _vclClassicLinkEnabled (\ s a -> s{_vclClassicLinkEnabled = a});--instance FromXML VPCClassicLink where-        parseXML x-          = VPCClassicLink' <$>-              (x .@? "vpcId") <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "classicLinkEnabled")---- | Describes a VPC endpoint.------ /See:/ 'vpcEndpoint' smart constructor.-data VPCEndpoint = VPCEndpoint'-    { _veState             :: !(Maybe State)-    , _vePolicyDocument    :: !(Maybe Text)-    , _veVPCId             :: !(Maybe Text)-    , _veCreationTimestamp :: !(Maybe ISO8601)-    , _veServiceName       :: !(Maybe Text)-    , _veVPCEndpointId     :: !(Maybe Text)-    , _veRouteTableIds     :: !(Maybe [Text])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPCEndpoint' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'veState'------ * 'vePolicyDocument'------ * 'veVPCId'------ * 'veCreationTimestamp'------ * 'veServiceName'------ * 'veVPCEndpointId'------ * 'veRouteTableIds'-vpcEndpoint-    :: VPCEndpoint-vpcEndpoint =-    VPCEndpoint'-    { _veState = Nothing-    , _vePolicyDocument = Nothing-    , _veVPCId = Nothing-    , _veCreationTimestamp = Nothing-    , _veServiceName = Nothing-    , _veVPCEndpointId = Nothing-    , _veRouteTableIds = Nothing-    }---- | The state of the VPC endpoint.-veState :: Lens' VPCEndpoint (Maybe State)-veState = lens _veState (\ s a -> s{_veState = a});---- | The policy document associated with the endpoint.-vePolicyDocument :: Lens' VPCEndpoint (Maybe Text)-vePolicyDocument = lens _vePolicyDocument (\ s a -> s{_vePolicyDocument = a});---- | The ID of the VPC to which the endpoint is associated.-veVPCId :: Lens' VPCEndpoint (Maybe Text)-veVPCId = lens _veVPCId (\ s a -> s{_veVPCId = a});---- | The date and time the VPC endpoint was created.-veCreationTimestamp :: Lens' VPCEndpoint (Maybe UTCTime)-veCreationTimestamp = lens _veCreationTimestamp (\ s a -> s{_veCreationTimestamp = a}) . mapping _Time;---- | The name of the AWS service to which the endpoint is associated.-veServiceName :: Lens' VPCEndpoint (Maybe Text)-veServiceName = lens _veServiceName (\ s a -> s{_veServiceName = a});---- | The ID of the VPC endpoint.-veVPCEndpointId :: Lens' VPCEndpoint (Maybe Text)-veVPCEndpointId = lens _veVPCEndpointId (\ s a -> s{_veVPCEndpointId = a});---- | One or more route tables associated with the endpoint.-veRouteTableIds :: Lens' VPCEndpoint [Text]-veRouteTableIds = lens _veRouteTableIds (\ s a -> s{_veRouteTableIds = a}) . _Default . _Coerce;--instance FromXML VPCEndpoint where-        parseXML x-          = VPCEndpoint' <$>-              (x .@? "state") <*> (x .@? "policyDocument") <*>-                (x .@? "vpcId")-                <*> (x .@? "creationTimestamp")-                <*> (x .@? "serviceName")-                <*> (x .@? "vpcEndpointId")-                <*>-                (x .@? "routeTableIdSet" .!@ mempty >>=-                   may (parseXMLList "item"))---- | Describes a VPC peering connection.------ /See:/ 'vpcPeeringConnection' smart constructor.-data VPCPeeringConnection = VPCPeeringConnection'-    { _vpcpcVPCPeeringConnectionId :: !(Maybe Text)-    , _vpcpcStatus                 :: !(Maybe VPCPeeringConnectionStateReason)-    , _vpcpcAccepterVPCInfo        :: !(Maybe VPCPeeringConnectionVPCInfo)-    , _vpcpcRequesterVPCInfo       :: !(Maybe VPCPeeringConnectionVPCInfo)-    , _vpcpcExpirationTime         :: !(Maybe ISO8601)-    , _vpcpcTags                   :: !(Maybe [Tag])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPCPeeringConnection' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vpcpcVPCPeeringConnectionId'------ * 'vpcpcStatus'------ * 'vpcpcAccepterVPCInfo'------ * 'vpcpcRequesterVPCInfo'------ * 'vpcpcExpirationTime'------ * 'vpcpcTags'-vpcPeeringConnection-    :: VPCPeeringConnection-vpcPeeringConnection =-    VPCPeeringConnection'-    { _vpcpcVPCPeeringConnectionId = Nothing-    , _vpcpcStatus = Nothing-    , _vpcpcAccepterVPCInfo = Nothing-    , _vpcpcRequesterVPCInfo = Nothing-    , _vpcpcExpirationTime = Nothing-    , _vpcpcTags = Nothing-    }---- | The ID of the VPC peering connection.-vpcpcVPCPeeringConnectionId :: Lens' VPCPeeringConnection (Maybe Text)-vpcpcVPCPeeringConnectionId = lens _vpcpcVPCPeeringConnectionId (\ s a -> s{_vpcpcVPCPeeringConnectionId = a});---- | The status of the VPC peering connection.-vpcpcStatus :: Lens' VPCPeeringConnection (Maybe VPCPeeringConnectionStateReason)-vpcpcStatus = lens _vpcpcStatus (\ s a -> s{_vpcpcStatus = a});---- | The information of the peer VPC.-vpcpcAccepterVPCInfo :: Lens' VPCPeeringConnection (Maybe VPCPeeringConnectionVPCInfo)-vpcpcAccepterVPCInfo = lens _vpcpcAccepterVPCInfo (\ s a -> s{_vpcpcAccepterVPCInfo = a});---- | The information of the requester VPC.-vpcpcRequesterVPCInfo :: Lens' VPCPeeringConnection (Maybe VPCPeeringConnectionVPCInfo)-vpcpcRequesterVPCInfo = lens _vpcpcRequesterVPCInfo (\ s a -> s{_vpcpcRequesterVPCInfo = a});---- | The time that an unaccepted VPC peering connection will expire.-vpcpcExpirationTime :: Lens' VPCPeeringConnection (Maybe UTCTime)-vpcpcExpirationTime = lens _vpcpcExpirationTime (\ s a -> s{_vpcpcExpirationTime = a}) . mapping _Time;---- | Any tags assigned to the resource.-vpcpcTags :: Lens' VPCPeeringConnection [Tag]-vpcpcTags = lens _vpcpcTags (\ s a -> s{_vpcpcTags = a}) . _Default . _Coerce;--instance FromXML VPCPeeringConnection where-        parseXML x-          = VPCPeeringConnection' <$>-              (x .@? "vpcPeeringConnectionId") <*> (x .@? "status")-                <*> (x .@? "accepterVpcInfo")-                <*> (x .@? "requesterVpcInfo")-                <*> (x .@? "expirationTime")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))---- | Describes the status of a VPC peering connection.------ /See:/ 'vpcPeeringConnectionStateReason' smart constructor.-data VPCPeeringConnectionStateReason = VPCPeeringConnectionStateReason'-    { _vpcsrCode    :: !(Maybe VPCPeeringConnectionStateReasonCode)-    , _vpcsrMessage :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPCPeeringConnectionStateReason' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vpcsrCode'------ * 'vpcsrMessage'-vpcPeeringConnectionStateReason-    :: VPCPeeringConnectionStateReason-vpcPeeringConnectionStateReason =-    VPCPeeringConnectionStateReason'-    { _vpcsrCode = Nothing-    , _vpcsrMessage = Nothing-    }---- | The status of the VPC peering connection.-vpcsrCode :: Lens' VPCPeeringConnectionStateReason (Maybe VPCPeeringConnectionStateReasonCode)-vpcsrCode = lens _vpcsrCode (\ s a -> s{_vpcsrCode = a});---- | A message that provides more information about the status, if--- applicable.-vpcsrMessage :: Lens' VPCPeeringConnectionStateReason (Maybe Text)-vpcsrMessage = lens _vpcsrMessage (\ s a -> s{_vpcsrMessage = a});--instance FromXML VPCPeeringConnectionStateReason-         where-        parseXML x-          = VPCPeeringConnectionStateReason' <$>-              (x .@? "code") <*> (x .@? "message")---- | Describes a VPC in a VPC peering connection.------ /See:/ 'vpcPeeringConnectionVPCInfo' smart constructor.-data VPCPeeringConnectionVPCInfo = VPCPeeringConnectionVPCInfo'-    { _vpcviVPCId     :: !(Maybe Text)-    , _vpcviOwnerId   :: !(Maybe Text)-    , _vpcviCIdRBlock :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPCPeeringConnectionVPCInfo' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vpcviVPCId'------ * 'vpcviOwnerId'------ * 'vpcviCIdRBlock'-vpcPeeringConnectionVPCInfo-    :: VPCPeeringConnectionVPCInfo-vpcPeeringConnectionVPCInfo =-    VPCPeeringConnectionVPCInfo'-    { _vpcviVPCId = Nothing-    , _vpcviOwnerId = Nothing-    , _vpcviCIdRBlock = Nothing-    }---- | The ID of the VPC.-vpcviVPCId :: Lens' VPCPeeringConnectionVPCInfo (Maybe Text)-vpcviVPCId = lens _vpcviVPCId (\ s a -> s{_vpcviVPCId = a});---- | The AWS account ID of the VPC owner.-vpcviOwnerId :: Lens' VPCPeeringConnectionVPCInfo (Maybe Text)-vpcviOwnerId = lens _vpcviOwnerId (\ s a -> s{_vpcviOwnerId = a});---- | The CIDR block for the VPC.-vpcviCIdRBlock :: Lens' VPCPeeringConnectionVPCInfo (Maybe Text)-vpcviCIdRBlock = lens _vpcviCIdRBlock (\ s a -> s{_vpcviCIdRBlock = a});--instance FromXML VPCPeeringConnectionVPCInfo where-        parseXML x-          = VPCPeeringConnectionVPCInfo' <$>-              (x .@? "vpcId") <*> (x .@? "ownerId") <*>-                (x .@? "cidrBlock")---- | Describes a VPN connection.------ /See:/ 'vpnConnection' smart constructor.-data VPNConnection = VPNConnection'-    { _vcCustomerGatewayConfiguration :: !(Maybe Text)-    , _vcRoutes                       :: !(Maybe [VPNStaticRoute])-    , _vcVPNGatewayId                 :: !(Maybe Text)-    , _vcOptions                      :: !(Maybe VPNConnectionOptions)-    , _vcTags                         :: !(Maybe [Tag])-    , _vcVGWTelemetry                 :: !(Maybe [VGWTelemetry])-    , _vcVPNConnectionId              :: !Text-    , _vcCustomerGatewayId            :: !Text-    , _vcState                        :: !VPNState-    , _vcType                         :: !GatewayType-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPNConnection' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vcCustomerGatewayConfiguration'------ * 'vcRoutes'------ * 'vcVPNGatewayId'------ * 'vcOptions'------ * 'vcTags'------ * 'vcVGWTelemetry'------ * 'vcVPNConnectionId'------ * 'vcCustomerGatewayId'------ * 'vcState'------ * 'vcType'-vpnConnection-    :: Text -- ^ 'vcVPNConnectionId'-    -> Text -- ^ 'vcCustomerGatewayId'-    -> VPNState -- ^ 'vcState'-    -> GatewayType -- ^ 'vcType'-    -> VPNConnection-vpnConnection pVPNConnectionId_ pCustomerGatewayId_ pState_ pType_ =-    VPNConnection'-    { _vcCustomerGatewayConfiguration = Nothing-    , _vcRoutes = Nothing-    , _vcVPNGatewayId = Nothing-    , _vcOptions = Nothing-    , _vcTags = Nothing-    , _vcVGWTelemetry = Nothing-    , _vcVPNConnectionId = pVPNConnectionId_-    , _vcCustomerGatewayId = pCustomerGatewayId_-    , _vcState = pState_-    , _vcType = pType_-    }---- | The configuration information for the VPN connection\'s customer gateway--- (in the native XML format). This element is always present in the--- CreateVpnConnection response; however, it\'s present in the--- DescribeVpnConnections response only if the VPN connection is in the--- 'pending' or 'available' state.-vcCustomerGatewayConfiguration :: Lens' VPNConnection (Maybe Text)-vcCustomerGatewayConfiguration = lens _vcCustomerGatewayConfiguration (\ s a -> s{_vcCustomerGatewayConfiguration = a});---- | The static routes associated with the VPN connection.-vcRoutes :: Lens' VPNConnection [VPNStaticRoute]-vcRoutes = lens _vcRoutes (\ s a -> s{_vcRoutes = a}) . _Default . _Coerce;---- | The ID of the virtual private gateway at the AWS side of the VPN--- connection.-vcVPNGatewayId :: Lens' VPNConnection (Maybe Text)-vcVPNGatewayId = lens _vcVPNGatewayId (\ s a -> s{_vcVPNGatewayId = a});---- | The VPN connection options.-vcOptions :: Lens' VPNConnection (Maybe VPNConnectionOptions)-vcOptions = lens _vcOptions (\ s a -> s{_vcOptions = a});---- | Any tags assigned to the VPN connection.-vcTags :: Lens' VPNConnection [Tag]-vcTags = lens _vcTags (\ s a -> s{_vcTags = a}) . _Default . _Coerce;---- | Information about the VPN tunnel.-vcVGWTelemetry :: Lens' VPNConnection [VGWTelemetry]-vcVGWTelemetry = lens _vcVGWTelemetry (\ s a -> s{_vcVGWTelemetry = a}) . _Default . _Coerce;---- | The ID of the VPN connection.-vcVPNConnectionId :: Lens' VPNConnection Text-vcVPNConnectionId = lens _vcVPNConnectionId (\ s a -> s{_vcVPNConnectionId = a});---- | The ID of the customer gateway at your end of the VPN connection.-vcCustomerGatewayId :: Lens' VPNConnection Text-vcCustomerGatewayId = lens _vcCustomerGatewayId (\ s a -> s{_vcCustomerGatewayId = a});---- | The current state of the VPN connection.-vcState :: Lens' VPNConnection VPNState-vcState = lens _vcState (\ s a -> s{_vcState = a});---- | The type of VPN connection.-vcType :: Lens' VPNConnection GatewayType-vcType = lens _vcType (\ s a -> s{_vcType = a});--instance FromXML VPNConnection where-        parseXML x-          = VPNConnection' <$>-              (x .@? "customerGatewayConfiguration") <*>-                (x .@? "routes" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "vpnGatewayId")-                <*> (x .@? "options")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "vgwTelemetry" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@ "vpnConnectionId")-                <*> (x .@ "customerGatewayId")-                <*> (x .@ "state")-                <*> (x .@ "type")---- | Describes VPN connection options.------ /See:/ 'vpnConnectionOptions' smart constructor.-newtype VPNConnectionOptions = VPNConnectionOptions'-    { _vcoStaticRoutesOnly :: Maybe Bool-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPNConnectionOptions' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vcoStaticRoutesOnly'-vpnConnectionOptions-    :: VPNConnectionOptions-vpnConnectionOptions =-    VPNConnectionOptions'-    { _vcoStaticRoutesOnly = Nothing-    }---- | Indicates whether the VPN connection uses static routes only. Static--- routes must be used for devices that don\'t support BGP.-vcoStaticRoutesOnly :: Lens' VPNConnectionOptions (Maybe Bool)-vcoStaticRoutesOnly = lens _vcoStaticRoutesOnly (\ s a -> s{_vcoStaticRoutesOnly = a});--instance FromXML VPNConnectionOptions where-        parseXML x-          = VPNConnectionOptions' <$>-              (x .@? "staticRoutesOnly")---- | Describes VPN connection options.------ /See:/ 'vpnConnectionOptionsSpecification' smart constructor.-newtype VPNConnectionOptionsSpecification = VPNConnectionOptionsSpecification'-    { _vcosStaticRoutesOnly :: Maybe Bool-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPNConnectionOptionsSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vcosStaticRoutesOnly'-vpnConnectionOptionsSpecification-    :: VPNConnectionOptionsSpecification-vpnConnectionOptionsSpecification =-    VPNConnectionOptionsSpecification'-    { _vcosStaticRoutesOnly = Nothing-    }---- | Indicates whether the VPN connection uses static routes only. Static--- routes must be used for devices that don\'t support BGP.-vcosStaticRoutesOnly :: Lens' VPNConnectionOptionsSpecification (Maybe Bool)-vcosStaticRoutesOnly = lens _vcosStaticRoutesOnly (\ s a -> s{_vcosStaticRoutesOnly = a});--instance ToQuery VPNConnectionOptionsSpecification-         where-        toQuery VPNConnectionOptionsSpecification'{..}-          = mconcat-              ["StaticRoutesOnly" =: _vcosStaticRoutesOnly]---- | Describes a virtual private gateway.------ /See:/ 'vpnGateway' smart constructor.-data VPNGateway = VPNGateway'-    { _vgState            :: !(Maybe VPNState)-    , _vgVPCAttachments   :: !(Maybe [VPCAttachment])-    , _vgVPNGatewayId     :: !(Maybe Text)-    , _vgAvailabilityZone :: !(Maybe Text)-    , _vgType             :: !(Maybe GatewayType)-    , _vgTags             :: !(Maybe [Tag])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPNGateway' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vgState'------ * 'vgVPCAttachments'------ * 'vgVPNGatewayId'------ * 'vgAvailabilityZone'------ * 'vgType'------ * 'vgTags'-vpnGateway-    :: VPNGateway-vpnGateway =-    VPNGateway'-    { _vgState = Nothing-    , _vgVPCAttachments = Nothing-    , _vgVPNGatewayId = Nothing-    , _vgAvailabilityZone = Nothing-    , _vgType = Nothing-    , _vgTags = Nothing-    }---- | The current state of the virtual private gateway.-vgState :: Lens' VPNGateway (Maybe VPNState)-vgState = lens _vgState (\ s a -> s{_vgState = a});---- | Any VPCs attached to the virtual private gateway.-vgVPCAttachments :: Lens' VPNGateway [VPCAttachment]-vgVPCAttachments = lens _vgVPCAttachments (\ s a -> s{_vgVPCAttachments = a}) . _Default . _Coerce;---- | The ID of the virtual private gateway.-vgVPNGatewayId :: Lens' VPNGateway (Maybe Text)-vgVPNGatewayId = lens _vgVPNGatewayId (\ s a -> s{_vgVPNGatewayId = a});---- | The Availability Zone where the virtual private gateway was created.-vgAvailabilityZone :: Lens' VPNGateway (Maybe Text)-vgAvailabilityZone = lens _vgAvailabilityZone (\ s a -> s{_vgAvailabilityZone = a});---- | The type of VPN connection the virtual private gateway supports.-vgType :: Lens' VPNGateway (Maybe GatewayType)-vgType = lens _vgType (\ s a -> s{_vgType = a});---- | Any tags assigned to the virtual private gateway.-vgTags :: Lens' VPNGateway [Tag]-vgTags = lens _vgTags (\ s a -> s{_vgTags = a}) . _Default . _Coerce;--instance FromXML VPNGateway where-        parseXML x-          = VPNGateway' <$>-              (x .@? "state") <*>-                (x .@? "attachments" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "vpnGatewayId")-                <*> (x .@? "availabilityZone")-                <*> (x .@? "type")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))---- | Describes a static route for a VPN connection.------ /See:/ 'vpnStaticRoute' smart constructor.-data VPNStaticRoute = VPNStaticRoute'-    { _vsrState                :: !(Maybe VPNState)-    , _vsrSource               :: !(Maybe VPNStaticRouteSource)-    , _vsrDestinationCIdRBlock :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPNStaticRoute' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vsrState'------ * 'vsrSource'------ * 'vsrDestinationCIdRBlock'-vpnStaticRoute-    :: VPNStaticRoute-vpnStaticRoute =-    VPNStaticRoute'-    { _vsrState = Nothing-    , _vsrSource = Nothing-    , _vsrDestinationCIdRBlock = Nothing-    }---- | The current state of the static route.-vsrState :: Lens' VPNStaticRoute (Maybe VPNState)-vsrState = lens _vsrState (\ s a -> s{_vsrState = a});---- | Indicates how the routes were provided.-vsrSource :: Lens' VPNStaticRoute (Maybe VPNStaticRouteSource)-vsrSource = lens _vsrSource (\ s a -> s{_vsrSource = a});---- | The CIDR block associated with the local subnet of the customer data--- center.-vsrDestinationCIdRBlock :: Lens' VPNStaticRoute (Maybe Text)-vsrDestinationCIdRBlock = lens _vsrDestinationCIdRBlock (\ s a -> s{_vsrDestinationCIdRBlock = a});--instance FromXML VPNStaticRoute where-        parseXML x-          = VPNStaticRoute' <$>-              (x .@? "state") <*> (x .@? "source") <*>-                (x .@? "destinationCidrBlock")---- | Describes a volume.------ /See:/ 'volume' smart constructor.-data Volume = Volume'-    { _vAttachments      :: !(Maybe [VolumeAttachment])-    , _vIOPS             :: !(Maybe Int)-    , _vKMSKeyId         :: !(Maybe Text)-    , _vTags             :: !(Maybe [Tag])-    , _vAvailabilityZone :: !Text-    , _vCreateTime       :: !ISO8601-    , _vEncrypted        :: !Bool-    , _vSize             :: !Int-    , _vSnapshotId       :: !Text-    , _vState            :: !VolumeState-    , _vVolumeId         :: !Text-    , _vVolumeType       :: !VolumeType-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Volume' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vAttachments'------ * 'vIOPS'------ * 'vKMSKeyId'------ * 'vTags'------ * 'vAvailabilityZone'------ * 'vCreateTime'------ * 'vEncrypted'------ * 'vSize'------ * 'vSnapshotId'------ * 'vState'------ * 'vVolumeId'------ * 'vVolumeType'-volume-    :: Text -- ^ 'vAvailabilityZone'-    -> UTCTime -- ^ 'vCreateTime'-    -> Bool -- ^ 'vEncrypted'-    -> Int -- ^ 'vSize'-    -> Text -- ^ 'vSnapshotId'-    -> VolumeState -- ^ 'vState'-    -> Text -- ^ 'vVolumeId'-    -> VolumeType -- ^ 'vVolumeType'-    -> Volume-volume pAvailabilityZone_ pCreateTime_ pEncrypted_ pSize_ pSnapshotId_ pState_ pVolumeId_ pVolumeType_ =-    Volume'-    { _vAttachments = Nothing-    , _vIOPS = Nothing-    , _vKMSKeyId = Nothing-    , _vTags = Nothing-    , _vAvailabilityZone = pAvailabilityZone_-    , _vCreateTime = _Time # pCreateTime_-    , _vEncrypted = pEncrypted_-    , _vSize = pSize_-    , _vSnapshotId = pSnapshotId_-    , _vState = pState_-    , _vVolumeId = pVolumeId_-    , _vVolumeType = pVolumeType_-    }---- | Information about the volume attachments.-vAttachments :: Lens' Volume [VolumeAttachment]-vAttachments = lens _vAttachments (\ s a -> s{_vAttachments = a}) . _Default . _Coerce;---- | The number of I\/O operations per second (IOPS) that the volume--- supports. For Provisioned IOPS (SSD) volumes, this represents the number--- of IOPS that are provisioned for the volume. For General Purpose (SSD)--- volumes, this represents the baseline performance of the volume and the--- rate at which the volume accumulates I\/O credits for bursting. For more--- information on General Purpose (SSD) baseline performance, I\/O credits,--- and bursting, see--- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBS Volume Types>--- in the /Amazon Elastic Compute Cloud User Guide/.------ Constraint: Range is 100 to 20000 for Provisioned IOPS (SSD) volumes and--- 3 to 10000 for General Purpose (SSD) volumes.------ Condition: This parameter is required for requests to create 'io1'--- volumes; it is not used in requests to create 'standard' or 'gp2'--- volumes.-vIOPS :: Lens' Volume (Maybe Int)-vIOPS = lens _vIOPS (\ s a -> s{_vIOPS = a});---- | The full ARN of the AWS Key Management Service (AWS KMS) customer master--- key (CMK) that was used to protect the volume encryption key for the--- volume.-vKMSKeyId :: Lens' Volume (Maybe Text)-vKMSKeyId = lens _vKMSKeyId (\ s a -> s{_vKMSKeyId = a});---- | Any tags assigned to the volume.-vTags :: Lens' Volume [Tag]-vTags = lens _vTags (\ s a -> s{_vTags = a}) . _Default . _Coerce;---- | The Availability Zone for the volume.-vAvailabilityZone :: Lens' Volume Text-vAvailabilityZone = lens _vAvailabilityZone (\ s a -> s{_vAvailabilityZone = a});---- | The time stamp when volume creation was initiated.-vCreateTime :: Lens' Volume UTCTime-vCreateTime = lens _vCreateTime (\ s a -> s{_vCreateTime = a}) . _Time;---- | Indicates whether the volume will be encrypted.-vEncrypted :: Lens' Volume Bool-vEncrypted = lens _vEncrypted (\ s a -> s{_vEncrypted = a});---- | The size of the volume, in GiBs.-vSize :: Lens' Volume Int-vSize = lens _vSize (\ s a -> s{_vSize = a});---- | The snapshot from which the volume was created, if applicable.-vSnapshotId :: Lens' Volume Text-vSnapshotId = lens _vSnapshotId (\ s a -> s{_vSnapshotId = a});---- | The volume state.-vState :: Lens' Volume VolumeState-vState = lens _vState (\ s a -> s{_vState = a});---- | The ID of the volume.-vVolumeId :: Lens' Volume Text-vVolumeId = lens _vVolumeId (\ s a -> s{_vVolumeId = a});---- | The volume type. This can be 'gp2' for General Purpose (SSD) volumes,--- 'io1' for Provisioned IOPS (SSD) volumes, or 'standard' for Magnetic--- volumes.-vVolumeType :: Lens' Volume VolumeType-vVolumeType = lens _vVolumeType (\ s a -> s{_vVolumeType = a});--instance FromXML Volume where-        parseXML x-          = Volume' <$>-              (x .@? "attachmentSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "iops")-                <*> (x .@? "kmsKeyId")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@ "availabilityZone")-                <*> (x .@ "createTime")-                <*> (x .@ "encrypted")-                <*> (x .@ "size")-                <*> (x .@ "snapshotId")-                <*> (x .@ "status")-                <*> (x .@ "volumeId")-                <*> (x .@ "volumeType")---- | Describes volume attachment details.------ /See:/ 'volumeAttachment' smart constructor.-data VolumeAttachment = VolumeAttachment'-    { _volInstanceId          :: !(Maybe Text)-    , _volDeleteOnTermination :: !(Maybe Bool)-    , _volState               :: !(Maybe VolumeAttachmentState)-    , _volDevice              :: !(Maybe Text)-    , _volVolumeId            :: !(Maybe Text)-    , _volAttachTime          :: !(Maybe ISO8601)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VolumeAttachment' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'volInstanceId'------ * 'volDeleteOnTermination'------ * 'volState'------ * 'volDevice'------ * 'volVolumeId'------ * 'volAttachTime'-volumeAttachment-    :: VolumeAttachment-volumeAttachment =-    VolumeAttachment'-    { _volInstanceId = Nothing-    , _volDeleteOnTermination = Nothing-    , _volState = Nothing-    , _volDevice = Nothing-    , _volVolumeId = Nothing-    , _volAttachTime = Nothing-    }---- | The ID of the instance.-volInstanceId :: Lens' VolumeAttachment (Maybe Text)-volInstanceId = lens _volInstanceId (\ s a -> s{_volInstanceId = a});---- | Indicates whether the EBS volume is deleted on instance termination.-volDeleteOnTermination :: Lens' VolumeAttachment (Maybe Bool)-volDeleteOnTermination = lens _volDeleteOnTermination (\ s a -> s{_volDeleteOnTermination = a});---- | The attachment state of the volume.-volState :: Lens' VolumeAttachment (Maybe VolumeAttachmentState)-volState = lens _volState (\ s a -> s{_volState = a});---- | The device name.-volDevice :: Lens' VolumeAttachment (Maybe Text)-volDevice = lens _volDevice (\ s a -> s{_volDevice = a});---- | The ID of the volume.-volVolumeId :: Lens' VolumeAttachment (Maybe Text)-volVolumeId = lens _volVolumeId (\ s a -> s{_volVolumeId = a});---- | The time stamp when the attachment initiated.-volAttachTime :: Lens' VolumeAttachment (Maybe UTCTime)-volAttachTime = lens _volAttachTime (\ s a -> s{_volAttachTime = a}) . mapping _Time;--instance FromXML VolumeAttachment where-        parseXML x-          = VolumeAttachment' <$>-              (x .@? "instanceId") <*>-                (x .@? "deleteOnTermination")-                <*> (x .@? "status")-                <*> (x .@? "device")-                <*> (x .@? "volumeId")-                <*> (x .@? "attachTime")---- | Describes an EBS volume.------ /See:/ 'volumeDetail' smart constructor.-newtype VolumeDetail = VolumeDetail'-    { _vdSize :: Integer-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VolumeDetail' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vdSize'-volumeDetail-    :: Integer -- ^ 'vdSize'-    -> VolumeDetail-volumeDetail pSize_ =-    VolumeDetail'-    { _vdSize = pSize_-    }---- | The size of the volume, in GiB.-vdSize :: Lens' VolumeDetail Integer-vdSize = lens _vdSize (\ s a -> s{_vdSize = a});--instance ToQuery VolumeDetail where-        toQuery VolumeDetail'{..}-          = mconcat ["Size" =: _vdSize]---- | Describes a volume status operation code.------ /See:/ 'volumeStatusAction' smart constructor.-data VolumeStatusAction = VolumeStatusAction'-    { _vsaEventType   :: !(Maybe Text)-    , _vsaCode        :: !(Maybe Text)-    , _vsaDescription :: !(Maybe Text)-    , _vsaEventId     :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VolumeStatusAction' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vsaEventType'------ * 'vsaCode'------ * 'vsaDescription'------ * 'vsaEventId'-volumeStatusAction-    :: VolumeStatusAction-volumeStatusAction =-    VolumeStatusAction'-    { _vsaEventType = Nothing-    , _vsaCode = Nothing-    , _vsaDescription = Nothing-    , _vsaEventId = Nothing-    }---- | The event type associated with this operation.-vsaEventType :: Lens' VolumeStatusAction (Maybe Text)-vsaEventType = lens _vsaEventType (\ s a -> s{_vsaEventType = a});---- | The code identifying the operation, for example, 'enable-volume-io'.-vsaCode :: Lens' VolumeStatusAction (Maybe Text)-vsaCode = lens _vsaCode (\ s a -> s{_vsaCode = a});---- | A description of the operation.-vsaDescription :: Lens' VolumeStatusAction (Maybe Text)-vsaDescription = lens _vsaDescription (\ s a -> s{_vsaDescription = a});---- | The ID of the event associated with this operation.-vsaEventId :: Lens' VolumeStatusAction (Maybe Text)-vsaEventId = lens _vsaEventId (\ s a -> s{_vsaEventId = a});--instance FromXML VolumeStatusAction where-        parseXML x-          = VolumeStatusAction' <$>-              (x .@? "eventType") <*> (x .@? "code") <*>-                (x .@? "description")-                <*> (x .@? "eventId")---- | Describes a volume status.------ /See:/ 'volumeStatusDetails' smart constructor.-data VolumeStatusDetails = VolumeStatusDetails'-    { _vsdStatus :: !(Maybe Text)-    , _vsdName   :: !(Maybe VolumeStatusName)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VolumeStatusDetails' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vsdStatus'------ * 'vsdName'-volumeStatusDetails-    :: VolumeStatusDetails-volumeStatusDetails =-    VolumeStatusDetails'-    { _vsdStatus = Nothing-    , _vsdName = Nothing-    }---- | The intended status of the volume status.-vsdStatus :: Lens' VolumeStatusDetails (Maybe Text)-vsdStatus = lens _vsdStatus (\ s a -> s{_vsdStatus = a});---- | The name of the volume status.-vsdName :: Lens' VolumeStatusDetails (Maybe VolumeStatusName)-vsdName = lens _vsdName (\ s a -> s{_vsdName = a});--instance FromXML VolumeStatusDetails where-        parseXML x-          = VolumeStatusDetails' <$>-              (x .@? "status") <*> (x .@? "name")---- | Describes a volume status event.------ /See:/ 'volumeStatusEvent' smart constructor.-data VolumeStatusEvent = VolumeStatusEvent'-    { _vseNotBefore   :: !(Maybe ISO8601)-    , _vseEventType   :: !(Maybe Text)-    , _vseDescription :: !(Maybe Text)-    , _vseNotAfter    :: !(Maybe ISO8601)-    , _vseEventId     :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VolumeStatusEvent' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vseNotBefore'------ * 'vseEventType'------ * 'vseDescription'------ * 'vseNotAfter'------ * 'vseEventId'-volumeStatusEvent-    :: VolumeStatusEvent-volumeStatusEvent =-    VolumeStatusEvent'-    { _vseNotBefore = Nothing-    , _vseEventType = Nothing-    , _vseDescription = Nothing-    , _vseNotAfter = Nothing-    , _vseEventId = Nothing-    }---- | The earliest start time of the event.-vseNotBefore :: Lens' VolumeStatusEvent (Maybe UTCTime)-vseNotBefore = lens _vseNotBefore (\ s a -> s{_vseNotBefore = a}) . mapping _Time;---- | The type of this event.-vseEventType :: Lens' VolumeStatusEvent (Maybe Text)-vseEventType = lens _vseEventType (\ s a -> s{_vseEventType = a});---- | A description of the event.-vseDescription :: Lens' VolumeStatusEvent (Maybe Text)-vseDescription = lens _vseDescription (\ s a -> s{_vseDescription = a});---- | The latest end time of the event.-vseNotAfter :: Lens' VolumeStatusEvent (Maybe UTCTime)-vseNotAfter = lens _vseNotAfter (\ s a -> s{_vseNotAfter = a}) . mapping _Time;---- | The ID of this event.-vseEventId :: Lens' VolumeStatusEvent (Maybe Text)-vseEventId = lens _vseEventId (\ s a -> s{_vseEventId = a});--instance FromXML VolumeStatusEvent where-        parseXML x-          = VolumeStatusEvent' <$>-              (x .@? "notBefore") <*> (x .@? "eventType") <*>-                (x .@? "description")-                <*> (x .@? "notAfter")-                <*> (x .@? "eventId")---- | Describes the status of a volume.------ /See:/ 'volumeStatusInfo' smart constructor.-data VolumeStatusInfo = VolumeStatusInfo'-    { _vsiStatus  :: !(Maybe VolumeStatusInfoStatus)-    , _vsiDetails :: !(Maybe [VolumeStatusDetails])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VolumeStatusInfo' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vsiStatus'------ * 'vsiDetails'-volumeStatusInfo-    :: VolumeStatusInfo-volumeStatusInfo =-    VolumeStatusInfo'-    { _vsiStatus = Nothing-    , _vsiDetails = Nothing-    }---- | The status of the volume.-vsiStatus :: Lens' VolumeStatusInfo (Maybe VolumeStatusInfoStatus)-vsiStatus = lens _vsiStatus (\ s a -> s{_vsiStatus = a});---- | The details of the volume status.-vsiDetails :: Lens' VolumeStatusInfo [VolumeStatusDetails]-vsiDetails = lens _vsiDetails (\ s a -> s{_vsiDetails = a}) . _Default . _Coerce;--instance FromXML VolumeStatusInfo where-        parseXML x-          = VolumeStatusInfo' <$>-              (x .@? "status") <*>-                (x .@? "details" .!@ mempty >>=-                   may (parseXMLList "item"))---- | Describes the volume status.------ /See:/ 'volumeStatusItem' smart constructor.-data VolumeStatusItem = VolumeStatusItem'-    { _vsiVolumeStatus     :: !(Maybe VolumeStatusInfo)-    , _vsiActions          :: !(Maybe [VolumeStatusAction])-    , _vsiEvents           :: !(Maybe [VolumeStatusEvent])-    , _vsiAvailabilityZone :: !(Maybe Text)-    , _vsiVolumeId         :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VolumeStatusItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vsiVolumeStatus'------ * 'vsiActions'------ * 'vsiEvents'------ * 'vsiAvailabilityZone'------ * 'vsiVolumeId'-volumeStatusItem-    :: VolumeStatusItem-volumeStatusItem =-    VolumeStatusItem'-    { _vsiVolumeStatus = Nothing-    , _vsiActions = Nothing-    , _vsiEvents = Nothing-    , _vsiAvailabilityZone = Nothing-    , _vsiVolumeId = Nothing-    }---- | The volume status.-vsiVolumeStatus :: Lens' VolumeStatusItem (Maybe VolumeStatusInfo)-vsiVolumeStatus = lens _vsiVolumeStatus (\ s a -> s{_vsiVolumeStatus = a});---- | The details of the operation.-vsiActions :: Lens' VolumeStatusItem [VolumeStatusAction]-vsiActions = lens _vsiActions (\ s a -> s{_vsiActions = a}) . _Default . _Coerce;---- | A list of events associated with the volume.-vsiEvents :: Lens' VolumeStatusItem [VolumeStatusEvent]-vsiEvents = lens _vsiEvents (\ s a -> s{_vsiEvents = a}) . _Default . _Coerce;---- | The Availability Zone of the volume.-vsiAvailabilityZone :: Lens' VolumeStatusItem (Maybe Text)-vsiAvailabilityZone = lens _vsiAvailabilityZone (\ s a -> s{_vsiAvailabilityZone = a});---- | The volume ID.-vsiVolumeId :: Lens' VolumeStatusItem (Maybe Text)-vsiVolumeId = lens _vsiVolumeId (\ s a -> s{_vsiVolumeId = a});--instance FromXML VolumeStatusItem where-        parseXML x-          = VolumeStatusItem' <$>-              (x .@? "volumeStatus") <*>-                (x .@? "actionsSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "eventsSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "availabilityZone")-                <*> (x .@? "volumeId")+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.EC2.Types.Product where++import           Network.AWS.EC2.Internal+import           Network.AWS.EC2.Types.Sum+import           Network.AWS.Lens+import           Network.AWS.Prelude++-- | Describes an account attribute.+--+-- /See:/ 'accountAttribute' smart constructor.+data AccountAttribute = AccountAttribute'+    { _aaAttributeValues :: !(Maybe [AccountAttributeValue])+    , _aaAttributeName   :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'AccountAttribute' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aaAttributeValues'+--+-- * 'aaAttributeName'+accountAttribute+    :: AccountAttribute+accountAttribute =+    AccountAttribute'+    { _aaAttributeValues = Nothing+    , _aaAttributeName = Nothing+    }++-- | One or more values for the account attribute.+aaAttributeValues :: Lens' AccountAttribute [AccountAttributeValue]+aaAttributeValues = lens _aaAttributeValues (\ s a -> s{_aaAttributeValues = a}) . _Default . _Coerce;++-- | The name of the account attribute.+aaAttributeName :: Lens' AccountAttribute (Maybe Text)+aaAttributeName = lens _aaAttributeName (\ s a -> s{_aaAttributeName = a});++instance FromXML AccountAttribute where+        parseXML x+          = AccountAttribute' <$>+              (x .@? "attributeValueSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "attributeName")++instance Hashable AccountAttribute++-- | Describes a value of an account attribute.+--+-- /See:/ 'accountAttributeValue' smart constructor.+newtype AccountAttributeValue = AccountAttributeValue'+    { _aavAttributeValue :: Maybe Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'AccountAttributeValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aavAttributeValue'+accountAttributeValue+    :: AccountAttributeValue+accountAttributeValue =+    AccountAttributeValue'+    { _aavAttributeValue = Nothing+    }++-- | The value of the attribute.+aavAttributeValue :: Lens' AccountAttributeValue (Maybe Text)+aavAttributeValue = lens _aavAttributeValue (\ s a -> s{_aavAttributeValue = a});++instance FromXML AccountAttributeValue where+        parseXML x+          = AccountAttributeValue' <$> (x .@? "attributeValue")++instance Hashable AccountAttributeValue++-- | Describes a running instance in a Spot fleet.+--+-- /See:/ 'activeInstance' smart constructor.+data ActiveInstance = ActiveInstance'+    { _aiInstanceId            :: !(Maybe Text)+    , _aiInstanceType          :: !(Maybe Text)+    , _aiSpotInstanceRequestId :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ActiveInstance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aiInstanceId'+--+-- * 'aiInstanceType'+--+-- * 'aiSpotInstanceRequestId'+activeInstance+    :: ActiveInstance+activeInstance =+    ActiveInstance'+    { _aiInstanceId = Nothing+    , _aiInstanceType = Nothing+    , _aiSpotInstanceRequestId = Nothing+    }++-- | The ID of the instance.+aiInstanceId :: Lens' ActiveInstance (Maybe Text)+aiInstanceId = lens _aiInstanceId (\ s a -> s{_aiInstanceId = a});++-- | The instance type.+aiInstanceType :: Lens' ActiveInstance (Maybe Text)+aiInstanceType = lens _aiInstanceType (\ s a -> s{_aiInstanceType = a});++-- | The ID of the Spot instance request.+aiSpotInstanceRequestId :: Lens' ActiveInstance (Maybe Text)+aiSpotInstanceRequestId = lens _aiSpotInstanceRequestId (\ s a -> s{_aiSpotInstanceRequestId = a});++instance FromXML ActiveInstance where+        parseXML x+          = ActiveInstance' <$>+              (x .@? "instanceId") <*> (x .@? "instanceType") <*>+                (x .@? "spotInstanceRequestId")++instance Hashable ActiveInstance++-- | Describes an Elastic IP address.+--+-- /See:/ 'address' smart constructor.+data Address = Address'+    { _aAssociationId           :: !(Maybe Text)+    , _aInstanceId              :: !(Maybe Text)+    , _aNetworkInterfaceOwnerId :: !(Maybe Text)+    , _aAllocationId            :: !(Maybe Text)+    , _aDomain                  :: !(Maybe DomainType)+    , _aNetworkInterfaceId      :: !(Maybe Text)+    , _aPrivateIPAddress        :: !(Maybe Text)+    , _aPublicIP                :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Address' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aAssociationId'+--+-- * 'aInstanceId'+--+-- * 'aNetworkInterfaceOwnerId'+--+-- * 'aAllocationId'+--+-- * 'aDomain'+--+-- * 'aNetworkInterfaceId'+--+-- * 'aPrivateIPAddress'+--+-- * 'aPublicIP'+address+    :: Address+address =+    Address'+    { _aAssociationId = Nothing+    , _aInstanceId = Nothing+    , _aNetworkInterfaceOwnerId = Nothing+    , _aAllocationId = Nothing+    , _aDomain = Nothing+    , _aNetworkInterfaceId = Nothing+    , _aPrivateIPAddress = Nothing+    , _aPublicIP = Nothing+    }++-- | The ID representing the association of the address with an instance in a+-- VPC.+aAssociationId :: Lens' Address (Maybe Text)+aAssociationId = lens _aAssociationId (\ s a -> s{_aAssociationId = a});++-- | The ID of the instance that the address is associated with (if any).+aInstanceId :: Lens' Address (Maybe Text)+aInstanceId = lens _aInstanceId (\ s a -> s{_aInstanceId = a});++-- | The ID of the AWS account that owns the network interface.+aNetworkInterfaceOwnerId :: Lens' Address (Maybe Text)+aNetworkInterfaceOwnerId = lens _aNetworkInterfaceOwnerId (\ s a -> s{_aNetworkInterfaceOwnerId = a});++-- | The ID representing the allocation of the address for use with EC2-VPC.+aAllocationId :: Lens' Address (Maybe Text)+aAllocationId = lens _aAllocationId (\ s a -> s{_aAllocationId = a});++-- | Indicates whether this Elastic IP address is for use with instances in+-- EC2-Classic ('standard') or instances in a VPC ('vpc').+aDomain :: Lens' Address (Maybe DomainType)+aDomain = lens _aDomain (\ s a -> s{_aDomain = a});++-- | The ID of the network interface.+aNetworkInterfaceId :: Lens' Address (Maybe Text)+aNetworkInterfaceId = lens _aNetworkInterfaceId (\ s a -> s{_aNetworkInterfaceId = a});++-- | The private IP address associated with the Elastic IP address.+aPrivateIPAddress :: Lens' Address (Maybe Text)+aPrivateIPAddress = lens _aPrivateIPAddress (\ s a -> s{_aPrivateIPAddress = a});++-- | The Elastic IP address.+aPublicIP :: Lens' Address (Maybe Text)+aPublicIP = lens _aPublicIP (\ s a -> s{_aPublicIP = a});++instance FromXML Address where+        parseXML x+          = Address' <$>+              (x .@? "associationId") <*> (x .@? "instanceId") <*>+                (x .@? "networkInterfaceOwnerId")+                <*> (x .@? "allocationId")+                <*> (x .@? "domain")+                <*> (x .@? "networkInterfaceId")+                <*> (x .@? "privateIpAddress")+                <*> (x .@? "publicIp")++instance Hashable Address++-- | The value to use when a resource attribute accepts a Boolean value.+--+-- /See:/ 'attributeBooleanValue' smart constructor.+newtype AttributeBooleanValue = AttributeBooleanValue'+    { _abvValue :: Maybe Bool+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'AttributeBooleanValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'abvValue'+attributeBooleanValue+    :: AttributeBooleanValue+attributeBooleanValue =+    AttributeBooleanValue'+    { _abvValue = Nothing+    }++-- | Valid values are 'true' or 'false'.+abvValue :: Lens' AttributeBooleanValue (Maybe Bool)+abvValue = lens _abvValue (\ s a -> s{_abvValue = a});++instance FromXML AttributeBooleanValue where+        parseXML x+          = AttributeBooleanValue' <$> (x .@? "value")++instance Hashable AttributeBooleanValue++instance ToQuery AttributeBooleanValue where+        toQuery AttributeBooleanValue'{..}+          = mconcat ["Value" =: _abvValue]++-- | The value to use for a resource attribute.+--+-- /See:/ 'attributeValue' smart constructor.+newtype AttributeValue = AttributeValue'+    { _avValue :: Maybe Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'AttributeValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'avValue'+attributeValue+    :: AttributeValue+attributeValue =+    AttributeValue'+    { _avValue = Nothing+    }++-- | Valid values are case-sensitive and vary by action.+avValue :: Lens' AttributeValue (Maybe Text)+avValue = lens _avValue (\ s a -> s{_avValue = a});++instance FromXML AttributeValue where+        parseXML x = AttributeValue' <$> (x .@? "value")++instance Hashable AttributeValue++instance ToQuery AttributeValue where+        toQuery AttributeValue'{..}+          = mconcat ["Value" =: _avValue]++-- | Describes an Availability Zone.+--+-- /See:/ 'availabilityZone' smart constructor.+data AvailabilityZone = AvailabilityZone'+    { _azState      :: !(Maybe AvailabilityZoneState)+    , _azRegionName :: !(Maybe Text)+    , _azZoneName   :: !(Maybe Text)+    , _azMessages   :: !(Maybe [AvailabilityZoneMessage])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'AvailabilityZone' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'azState'+--+-- * 'azRegionName'+--+-- * 'azZoneName'+--+-- * 'azMessages'+availabilityZone+    :: AvailabilityZone+availabilityZone =+    AvailabilityZone'+    { _azState = Nothing+    , _azRegionName = Nothing+    , _azZoneName = Nothing+    , _azMessages = Nothing+    }++-- | The state of the Availability Zone.+azState :: Lens' AvailabilityZone (Maybe AvailabilityZoneState)+azState = lens _azState (\ s a -> s{_azState = a});++-- | The name of the region.+azRegionName :: Lens' AvailabilityZone (Maybe Text)+azRegionName = lens _azRegionName (\ s a -> s{_azRegionName = a});++-- | The name of the Availability Zone.+azZoneName :: Lens' AvailabilityZone (Maybe Text)+azZoneName = lens _azZoneName (\ s a -> s{_azZoneName = a});++-- | Any messages about the Availability Zone.+azMessages :: Lens' AvailabilityZone [AvailabilityZoneMessage]+azMessages = lens _azMessages (\ s a -> s{_azMessages = a}) . _Default . _Coerce;++instance FromXML AvailabilityZone where+        parseXML x+          = AvailabilityZone' <$>+              (x .@? "zoneState") <*> (x .@? "regionName") <*>+                (x .@? "zoneName")+                <*>+                (x .@? "messageSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable AvailabilityZone++-- | Describes a message about an Availability Zone.+--+-- /See:/ 'availabilityZoneMessage' smart constructor.+newtype AvailabilityZoneMessage = AvailabilityZoneMessage'+    { _azmMessage :: Maybe Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'AvailabilityZoneMessage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'azmMessage'+availabilityZoneMessage+    :: AvailabilityZoneMessage+availabilityZoneMessage =+    AvailabilityZoneMessage'+    { _azmMessage = Nothing+    }++-- | The message about the Availability Zone.+azmMessage :: Lens' AvailabilityZoneMessage (Maybe Text)+azmMessage = lens _azmMessage (\ s a -> s{_azmMessage = a});++instance FromXML AvailabilityZoneMessage where+        parseXML x+          = AvailabilityZoneMessage' <$> (x .@? "message")++instance Hashable AvailabilityZoneMessage++-- | The capacity information for instances launched onto the Dedicated host.+--+-- /See:/ 'availableCapacity' smart constructor.+data AvailableCapacity = AvailableCapacity'+    { _acAvailableInstanceCapacity :: !(Maybe [InstanceCapacity])+    , _acAvailableVCPUs            :: !(Maybe Int)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'AvailableCapacity' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'acAvailableInstanceCapacity'+--+-- * 'acAvailableVCPUs'+availableCapacity+    :: AvailableCapacity+availableCapacity =+    AvailableCapacity'+    { _acAvailableInstanceCapacity = Nothing+    , _acAvailableVCPUs = Nothing+    }++-- | The total number of instances that the Dedicated host supports.+acAvailableInstanceCapacity :: Lens' AvailableCapacity [InstanceCapacity]+acAvailableInstanceCapacity = lens _acAvailableInstanceCapacity (\ s a -> s{_acAvailableInstanceCapacity = a}) . _Default . _Coerce;++-- | The number of vCPUs available on the Dedicated host.+acAvailableVCPUs :: Lens' AvailableCapacity (Maybe Int)+acAvailableVCPUs = lens _acAvailableVCPUs (\ s a -> s{_acAvailableVCPUs = a});++instance FromXML AvailableCapacity where+        parseXML x+          = AvailableCapacity' <$>+              (x .@? "availableInstanceCapacity" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "availableVCpus")++instance Hashable AvailableCapacity++-- | /See:/ 'blobAttributeValue' smart constructor.+newtype BlobAttributeValue = BlobAttributeValue'+    { _bavValue :: Maybe Base64+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'BlobAttributeValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bavValue'+blobAttributeValue+    :: BlobAttributeValue+blobAttributeValue =+    BlobAttributeValue'+    { _bavValue = Nothing+    }++-- | Undocumented member.+--+-- /Note:/ This 'Lens' automatically encodes and decodes Base64 data,+-- despite what the AWS documentation might say.+-- The underlying isomorphism will encode to Base64 representation during+-- serialisation, and decode from Base64 representation during deserialisation.+-- This 'Lens' accepts and returns only raw unencoded data.+bavValue :: Lens' BlobAttributeValue (Maybe ByteString)+bavValue = lens _bavValue (\ s a -> s{_bavValue = a}) . mapping _Base64;++instance Hashable BlobAttributeValue++instance ToQuery BlobAttributeValue where+        toQuery BlobAttributeValue'{..}+          = mconcat ["Value" =: _bavValue]++-- | Describes a block device mapping.+--+-- /See:/ 'blockDeviceMapping' smart constructor.+data BlockDeviceMapping = BlockDeviceMapping'+    { _bdmVirtualName :: !(Maybe Text)+    , _bdmNoDevice    :: !(Maybe Text)+    , _bdmEBS         :: !(Maybe EBSBlockDevice)+    , _bdmDeviceName  :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'BlockDeviceMapping' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bdmVirtualName'+--+-- * 'bdmNoDevice'+--+-- * 'bdmEBS'+--+-- * 'bdmDeviceName'+blockDeviceMapping+    :: Text -- ^ 'bdmDeviceName'+    -> BlockDeviceMapping+blockDeviceMapping pDeviceName_ =+    BlockDeviceMapping'+    { _bdmVirtualName = Nothing+    , _bdmNoDevice = Nothing+    , _bdmEBS = Nothing+    , _bdmDeviceName = pDeviceName_+    }++-- | The virtual device name ('ephemeral'N). Instance store volumes are+-- numbered starting from 0. An instance type with 2 available instance+-- store volumes can specify mappings for 'ephemeral0' and 'ephemeral1'.The+-- number of available instance store volumes depends on the instance type.+-- After you connect to the instance, you must mount the volume.+--+-- Constraints: For M3 instances, you must specify instance store volumes+-- in the block device mapping for the instance. When you launch an M3+-- instance, we ignore any instance store volumes specified in the block+-- device mapping for the AMI.+bdmVirtualName :: Lens' BlockDeviceMapping (Maybe Text)+bdmVirtualName = lens _bdmVirtualName (\ s a -> s{_bdmVirtualName = a});++-- | Suppresses the specified device included in the block device mapping of+-- the AMI.+bdmNoDevice :: Lens' BlockDeviceMapping (Maybe Text)+bdmNoDevice = lens _bdmNoDevice (\ s a -> s{_bdmNoDevice = a});++-- | Parameters used to automatically set up EBS volumes when the instance is+-- launched.+bdmEBS :: Lens' BlockDeviceMapping (Maybe EBSBlockDevice)+bdmEBS = lens _bdmEBS (\ s a -> s{_bdmEBS = a});++-- | The device name exposed to the instance (for example, '\/dev\/sdh' or+-- 'xvdh').+bdmDeviceName :: Lens' BlockDeviceMapping Text+bdmDeviceName = lens _bdmDeviceName (\ s a -> s{_bdmDeviceName = a});++instance FromXML BlockDeviceMapping where+        parseXML x+          = BlockDeviceMapping' <$>+              (x .@? "virtualName") <*> (x .@? "noDevice") <*>+                (x .@? "ebs")+                <*> (x .@ "deviceName")++instance Hashable BlockDeviceMapping++instance ToQuery BlockDeviceMapping where+        toQuery BlockDeviceMapping'{..}+          = mconcat+              ["VirtualName" =: _bdmVirtualName,+               "NoDevice" =: _bdmNoDevice, "Ebs" =: _bdmEBS,+               "DeviceName" =: _bdmDeviceName]++-- | Describes a bundle task.+--+-- /See:/ 'bundleTask' smart constructor.+data BundleTask = BundleTask'+    { _btBundleTaskError :: !(Maybe BundleTaskError)+    , _btBundleId        :: !Text+    , _btInstanceId      :: !Text+    , _btProgress        :: !Text+    , _btStartTime       :: !ISO8601+    , _btState           :: !BundleTaskState+    , _btStorage         :: !Storage+    , _btUpdateTime      :: !ISO8601+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'BundleTask' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'btBundleTaskError'+--+-- * 'btBundleId'+--+-- * 'btInstanceId'+--+-- * 'btProgress'+--+-- * 'btStartTime'+--+-- * 'btState'+--+-- * 'btStorage'+--+-- * 'btUpdateTime'+bundleTask+    :: Text -- ^ 'btBundleId'+    -> Text -- ^ 'btInstanceId'+    -> Text -- ^ 'btProgress'+    -> UTCTime -- ^ 'btStartTime'+    -> BundleTaskState -- ^ 'btState'+    -> Storage -- ^ 'btStorage'+    -> UTCTime -- ^ 'btUpdateTime'+    -> BundleTask+bundleTask pBundleId_ pInstanceId_ pProgress_ pStartTime_ pState_ pStorage_ pUpdateTime_ =+    BundleTask'+    { _btBundleTaskError = Nothing+    , _btBundleId = pBundleId_+    , _btInstanceId = pInstanceId_+    , _btProgress = pProgress_+    , _btStartTime = _Time # pStartTime_+    , _btState = pState_+    , _btStorage = pStorage_+    , _btUpdateTime = _Time # pUpdateTime_+    }++-- | If the task fails, a description of the error.+btBundleTaskError :: Lens' BundleTask (Maybe BundleTaskError)+btBundleTaskError = lens _btBundleTaskError (\ s a -> s{_btBundleTaskError = a});++-- | The ID of the bundle task.+btBundleId :: Lens' BundleTask Text+btBundleId = lens _btBundleId (\ s a -> s{_btBundleId = a});++-- | The ID of the instance associated with this bundle task.+btInstanceId :: Lens' BundleTask Text+btInstanceId = lens _btInstanceId (\ s a -> s{_btInstanceId = a});++-- | The level of task completion, as a percent (for example, 20%).+btProgress :: Lens' BundleTask Text+btProgress = lens _btProgress (\ s a -> s{_btProgress = a});++-- | The time this task started.+btStartTime :: Lens' BundleTask UTCTime+btStartTime = lens _btStartTime (\ s a -> s{_btStartTime = a}) . _Time;++-- | The state of the task.+btState :: Lens' BundleTask BundleTaskState+btState = lens _btState (\ s a -> s{_btState = a});++-- | The Amazon S3 storage locations.+btStorage :: Lens' BundleTask Storage+btStorage = lens _btStorage (\ s a -> s{_btStorage = a});++-- | The time of the most recent update for the task.+btUpdateTime :: Lens' BundleTask UTCTime+btUpdateTime = lens _btUpdateTime (\ s a -> s{_btUpdateTime = a}) . _Time;++instance FromXML BundleTask where+        parseXML x+          = BundleTask' <$>+              (x .@? "error") <*> (x .@ "bundleId") <*>+                (x .@ "instanceId")+                <*> (x .@ "progress")+                <*> (x .@ "startTime")+                <*> (x .@ "state")+                <*> (x .@ "storage")+                <*> (x .@ "updateTime")++instance Hashable BundleTask++-- | Describes an error for < BundleInstance>.+--+-- /See:/ 'bundleTaskError' smart constructor.+data BundleTaskError = BundleTaskError'+    { _bteCode    :: !(Maybe Text)+    , _bteMessage :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'BundleTaskError' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bteCode'+--+-- * 'bteMessage'+bundleTaskError+    :: BundleTaskError+bundleTaskError =+    BundleTaskError'+    { _bteCode = Nothing+    , _bteMessage = Nothing+    }++-- | The error code.+bteCode :: Lens' BundleTaskError (Maybe Text)+bteCode = lens _bteCode (\ s a -> s{_bteCode = a});++-- | The error message.+bteMessage :: Lens' BundleTaskError (Maybe Text)+bteMessage = lens _bteMessage (\ s a -> s{_bteMessage = a});++instance FromXML BundleTaskError where+        parseXML x+          = BundleTaskError' <$>+              (x .@? "code") <*> (x .@? "message")++instance Hashable BundleTaskError++-- | Describes a Spot fleet error.+--+-- /See:/ 'cancelSpotFleetRequestsError' smart constructor.+data CancelSpotFleetRequestsError = CancelSpotFleetRequestsError'+    { _csfreCode    :: !CancelBatchErrorCode+    , _csfreMessage :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CancelSpotFleetRequestsError' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csfreCode'+--+-- * 'csfreMessage'+cancelSpotFleetRequestsError+    :: CancelBatchErrorCode -- ^ 'csfreCode'+    -> Text -- ^ 'csfreMessage'+    -> CancelSpotFleetRequestsError+cancelSpotFleetRequestsError pCode_ pMessage_ =+    CancelSpotFleetRequestsError'+    { _csfreCode = pCode_+    , _csfreMessage = pMessage_+    }++-- | The error code.+csfreCode :: Lens' CancelSpotFleetRequestsError CancelBatchErrorCode+csfreCode = lens _csfreCode (\ s a -> s{_csfreCode = a});++-- | The description for the error code.+csfreMessage :: Lens' CancelSpotFleetRequestsError Text+csfreMessage = lens _csfreMessage (\ s a -> s{_csfreMessage = a});++instance FromXML CancelSpotFleetRequestsError where+        parseXML x+          = CancelSpotFleetRequestsError' <$>+              (x .@ "code") <*> (x .@ "message")++instance Hashable CancelSpotFleetRequestsError++-- | Describes a Spot fleet request that was not successfully canceled.+--+-- /See:/ 'cancelSpotFleetRequestsErrorItem' smart constructor.+data CancelSpotFleetRequestsErrorItem = CancelSpotFleetRequestsErrorItem'+    { _csfreiSpotFleetRequestId :: !Text+    , _csfreiError              :: !CancelSpotFleetRequestsError+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CancelSpotFleetRequestsErrorItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csfreiSpotFleetRequestId'+--+-- * 'csfreiError'+cancelSpotFleetRequestsErrorItem+    :: Text -- ^ 'csfreiSpotFleetRequestId'+    -> CancelSpotFleetRequestsError -- ^ 'csfreiError'+    -> CancelSpotFleetRequestsErrorItem+cancelSpotFleetRequestsErrorItem pSpotFleetRequestId_ pError_ =+    CancelSpotFleetRequestsErrorItem'+    { _csfreiSpotFleetRequestId = pSpotFleetRequestId_+    , _csfreiError = pError_+    }++-- | The ID of the Spot fleet request.+csfreiSpotFleetRequestId :: Lens' CancelSpotFleetRequestsErrorItem Text+csfreiSpotFleetRequestId = lens _csfreiSpotFleetRequestId (\ s a -> s{_csfreiSpotFleetRequestId = a});++-- | The error.+csfreiError :: Lens' CancelSpotFleetRequestsErrorItem CancelSpotFleetRequestsError+csfreiError = lens _csfreiError (\ s a -> s{_csfreiError = a});++instance FromXML CancelSpotFleetRequestsErrorItem+         where+        parseXML x+          = CancelSpotFleetRequestsErrorItem' <$>+              (x .@ "spotFleetRequestId") <*> (x .@ "error")++instance Hashable CancelSpotFleetRequestsErrorItem++-- | Describes a Spot fleet request that was successfully canceled.+--+-- /See:/ 'cancelSpotFleetRequestsSuccessItem' smart constructor.+data CancelSpotFleetRequestsSuccessItem = CancelSpotFleetRequestsSuccessItem'+    { _csfrsiSpotFleetRequestId            :: !Text+    , _csfrsiCurrentSpotFleetRequestState  :: !BatchState+    , _csfrsiPreviousSpotFleetRequestState :: !BatchState+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CancelSpotFleetRequestsSuccessItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csfrsiSpotFleetRequestId'+--+-- * 'csfrsiCurrentSpotFleetRequestState'+--+-- * 'csfrsiPreviousSpotFleetRequestState'+cancelSpotFleetRequestsSuccessItem+    :: Text -- ^ 'csfrsiSpotFleetRequestId'+    -> BatchState -- ^ 'csfrsiCurrentSpotFleetRequestState'+    -> BatchState -- ^ 'csfrsiPreviousSpotFleetRequestState'+    -> CancelSpotFleetRequestsSuccessItem+cancelSpotFleetRequestsSuccessItem pSpotFleetRequestId_ pCurrentSpotFleetRequestState_ pPreviousSpotFleetRequestState_ =+    CancelSpotFleetRequestsSuccessItem'+    { _csfrsiSpotFleetRequestId = pSpotFleetRequestId_+    , _csfrsiCurrentSpotFleetRequestState = pCurrentSpotFleetRequestState_+    , _csfrsiPreviousSpotFleetRequestState = pPreviousSpotFleetRequestState_+    }++-- | The ID of the Spot fleet request.+csfrsiSpotFleetRequestId :: Lens' CancelSpotFleetRequestsSuccessItem Text+csfrsiSpotFleetRequestId = lens _csfrsiSpotFleetRequestId (\ s a -> s{_csfrsiSpotFleetRequestId = a});++-- | The current state of the Spot fleet request.+csfrsiCurrentSpotFleetRequestState :: Lens' CancelSpotFleetRequestsSuccessItem BatchState+csfrsiCurrentSpotFleetRequestState = lens _csfrsiCurrentSpotFleetRequestState (\ s a -> s{_csfrsiCurrentSpotFleetRequestState = a});++-- | The previous state of the Spot fleet request.+csfrsiPreviousSpotFleetRequestState :: Lens' CancelSpotFleetRequestsSuccessItem BatchState+csfrsiPreviousSpotFleetRequestState = lens _csfrsiPreviousSpotFleetRequestState (\ s a -> s{_csfrsiPreviousSpotFleetRequestState = a});++instance FromXML CancelSpotFleetRequestsSuccessItem+         where+        parseXML x+          = CancelSpotFleetRequestsSuccessItem' <$>+              (x .@ "spotFleetRequestId") <*>+                (x .@ "currentSpotFleetRequestState")+                <*> (x .@ "previousSpotFleetRequestState")++instance Hashable CancelSpotFleetRequestsSuccessItem++-- | Describes a request to cancel a Spot instance.+--+-- /See:/ 'cancelledSpotInstanceRequest' smart constructor.+data CancelledSpotInstanceRequest = CancelledSpotInstanceRequest'+    { _csirState                 :: !(Maybe CancelSpotInstanceRequestState)+    , _csirSpotInstanceRequestId :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CancelledSpotInstanceRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csirState'+--+-- * 'csirSpotInstanceRequestId'+cancelledSpotInstanceRequest+    :: CancelledSpotInstanceRequest+cancelledSpotInstanceRequest =+    CancelledSpotInstanceRequest'+    { _csirState = Nothing+    , _csirSpotInstanceRequestId = Nothing+    }++-- | The state of the Spot instance request.+csirState :: Lens' CancelledSpotInstanceRequest (Maybe CancelSpotInstanceRequestState)+csirState = lens _csirState (\ s a -> s{_csirState = a});++-- | The ID of the Spot instance request.+csirSpotInstanceRequestId :: Lens' CancelledSpotInstanceRequest (Maybe Text)+csirSpotInstanceRequestId = lens _csirSpotInstanceRequestId (\ s a -> s{_csirSpotInstanceRequestId = a});++instance FromXML CancelledSpotInstanceRequest where+        parseXML x+          = CancelledSpotInstanceRequest' <$>+              (x .@? "state") <*> (x .@? "spotInstanceRequestId")++instance Hashable CancelledSpotInstanceRequest++-- | Describes the ClassicLink DNS support status of a VPC.+--+-- /See:/ 'classicLinkDNSSupport' smart constructor.+data ClassicLinkDNSSupport = ClassicLinkDNSSupport'+    { _cldsVPCId                   :: !(Maybe Text)+    , _cldsClassicLinkDNSSupported :: !(Maybe Bool)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ClassicLinkDNSSupport' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cldsVPCId'+--+-- * 'cldsClassicLinkDNSSupported'+classicLinkDNSSupport+    :: ClassicLinkDNSSupport+classicLinkDNSSupport =+    ClassicLinkDNSSupport'+    { _cldsVPCId = Nothing+    , _cldsClassicLinkDNSSupported = Nothing+    }++-- | The ID of the VPC.+cldsVPCId :: Lens' ClassicLinkDNSSupport (Maybe Text)+cldsVPCId = lens _cldsVPCId (\ s a -> s{_cldsVPCId = a});++-- | Indicates whether ClassicLink DNS support is enabled for the VPC.+cldsClassicLinkDNSSupported :: Lens' ClassicLinkDNSSupport (Maybe Bool)+cldsClassicLinkDNSSupported = lens _cldsClassicLinkDNSSupported (\ s a -> s{_cldsClassicLinkDNSSupported = a});++instance FromXML ClassicLinkDNSSupport where+        parseXML x+          = ClassicLinkDNSSupport' <$>+              (x .@? "vpcId") <*> (x .@? "classicLinkDnsSupported")++instance Hashable ClassicLinkDNSSupport++-- | Describes a linked EC2-Classic instance.+--+-- /See:/ 'classicLinkInstance' smart constructor.+data ClassicLinkInstance = ClassicLinkInstance'+    { _cliInstanceId :: !(Maybe Text)+    , _cliGroups     :: !(Maybe [GroupIdentifier])+    , _cliVPCId      :: !(Maybe Text)+    , _cliTags       :: !(Maybe [Tag])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ClassicLinkInstance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cliInstanceId'+--+-- * 'cliGroups'+--+-- * 'cliVPCId'+--+-- * 'cliTags'+classicLinkInstance+    :: ClassicLinkInstance+classicLinkInstance =+    ClassicLinkInstance'+    { _cliInstanceId = Nothing+    , _cliGroups = Nothing+    , _cliVPCId = Nothing+    , _cliTags = Nothing+    }++-- | The ID of the instance.+cliInstanceId :: Lens' ClassicLinkInstance (Maybe Text)+cliInstanceId = lens _cliInstanceId (\ s a -> s{_cliInstanceId = a});++-- | A list of security groups.+cliGroups :: Lens' ClassicLinkInstance [GroupIdentifier]+cliGroups = lens _cliGroups (\ s a -> s{_cliGroups = a}) . _Default . _Coerce;++-- | The ID of the VPC.+cliVPCId :: Lens' ClassicLinkInstance (Maybe Text)+cliVPCId = lens _cliVPCId (\ s a -> s{_cliVPCId = a});++-- | Any tags assigned to the instance.+cliTags :: Lens' ClassicLinkInstance [Tag]+cliTags = lens _cliTags (\ s a -> s{_cliTags = a}) . _Default . _Coerce;++instance FromXML ClassicLinkInstance where+        parseXML x+          = ClassicLinkInstance' <$>+              (x .@? "instanceId") <*>+                (x .@? "groupSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "vpcId")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable ClassicLinkInstance++-- | Describes the client-specific data.+--+-- /See:/ 'clientData' smart constructor.+data ClientData = ClientData'+    { _cdUploadStart :: !(Maybe ISO8601)+    , _cdUploadSize  :: !(Maybe Double)+    , _cdUploadEnd   :: !(Maybe ISO8601)+    , _cdComment     :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ClientData' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdUploadStart'+--+-- * 'cdUploadSize'+--+-- * 'cdUploadEnd'+--+-- * 'cdComment'+clientData+    :: ClientData+clientData =+    ClientData'+    { _cdUploadStart = Nothing+    , _cdUploadSize = Nothing+    , _cdUploadEnd = Nothing+    , _cdComment = Nothing+    }++-- | The time that the disk upload starts.+cdUploadStart :: Lens' ClientData (Maybe UTCTime)+cdUploadStart = lens _cdUploadStart (\ s a -> s{_cdUploadStart = a}) . mapping _Time;++-- | The size of the uploaded disk image, in GiB.+cdUploadSize :: Lens' ClientData (Maybe Double)+cdUploadSize = lens _cdUploadSize (\ s a -> s{_cdUploadSize = a});++-- | The time that the disk upload ends.+cdUploadEnd :: Lens' ClientData (Maybe UTCTime)+cdUploadEnd = lens _cdUploadEnd (\ s a -> s{_cdUploadEnd = a}) . mapping _Time;++-- | A user-defined comment about the disk upload.+cdComment :: Lens' ClientData (Maybe Text)+cdComment = lens _cdComment (\ s a -> s{_cdComment = a});++instance Hashable ClientData++instance ToQuery ClientData where+        toQuery ClientData'{..}+          = mconcat+              ["UploadStart" =: _cdUploadStart,+               "UploadSize" =: _cdUploadSize,+               "UploadEnd" =: _cdUploadEnd, "Comment" =: _cdComment]++-- | Describes a conversion task.+--+-- /See:/ 'conversionTask' smart constructor.+data ConversionTask = ConversionTask'+    { _ctImportInstance   :: !(Maybe ImportInstanceTaskDetails)+    , _ctStatusMessage    :: !(Maybe Text)+    , _ctImportVolume     :: !(Maybe ImportVolumeTaskDetails)+    , _ctExpirationTime   :: !(Maybe Text)+    , _ctTags             :: !(Maybe [Tag])+    , _ctConversionTaskId :: !Text+    , _ctState            :: !ConversionTaskState+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ConversionTask' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ctImportInstance'+--+-- * 'ctStatusMessage'+--+-- * 'ctImportVolume'+--+-- * 'ctExpirationTime'+--+-- * 'ctTags'+--+-- * 'ctConversionTaskId'+--+-- * 'ctState'+conversionTask+    :: Text -- ^ 'ctConversionTaskId'+    -> ConversionTaskState -- ^ 'ctState'+    -> ConversionTask+conversionTask pConversionTaskId_ pState_ =+    ConversionTask'+    { _ctImportInstance = Nothing+    , _ctStatusMessage = Nothing+    , _ctImportVolume = Nothing+    , _ctExpirationTime = Nothing+    , _ctTags = Nothing+    , _ctConversionTaskId = pConversionTaskId_+    , _ctState = pState_+    }++-- | If the task is for importing an instance, this contains information+-- about the import instance task.+ctImportInstance :: Lens' ConversionTask (Maybe ImportInstanceTaskDetails)+ctImportInstance = lens _ctImportInstance (\ s a -> s{_ctImportInstance = a});++-- | The status message related to the conversion task.+ctStatusMessage :: Lens' ConversionTask (Maybe Text)+ctStatusMessage = lens _ctStatusMessage (\ s a -> s{_ctStatusMessage = a});++-- | If the task is for importing a volume, this contains information about+-- the import volume task.+ctImportVolume :: Lens' ConversionTask (Maybe ImportVolumeTaskDetails)+ctImportVolume = lens _ctImportVolume (\ s a -> s{_ctImportVolume = a});++-- | The time when the task expires. If the upload isn\'t complete before the+-- expiration time, we automatically cancel the task.+ctExpirationTime :: Lens' ConversionTask (Maybe Text)+ctExpirationTime = lens _ctExpirationTime (\ s a -> s{_ctExpirationTime = a});++-- | Any tags assigned to the task.+ctTags :: Lens' ConversionTask [Tag]+ctTags = lens _ctTags (\ s a -> s{_ctTags = a}) . _Default . _Coerce;++-- | The ID of the conversion task.+ctConversionTaskId :: Lens' ConversionTask Text+ctConversionTaskId = lens _ctConversionTaskId (\ s a -> s{_ctConversionTaskId = a});++-- | The state of the conversion task.+ctState :: Lens' ConversionTask ConversionTaskState+ctState = lens _ctState (\ s a -> s{_ctState = a});++instance FromXML ConversionTask where+        parseXML x+          = ConversionTask' <$>+              (x .@? "importInstance") <*> (x .@? "statusMessage")+                <*> (x .@? "importVolume")+                <*> (x .@? "expirationTime")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@ "conversionTaskId")+                <*> (x .@ "state")++instance Hashable ConversionTask++-- | Describes the user or group to be added or removed from the permissions+-- for a volume.+--+-- /See:/ 'createVolumePermission' smart constructor.+data CreateVolumePermission = CreateVolumePermission'+    { _cvpGroup  :: !(Maybe PermissionGroup)+    , _cvpUserId :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateVolumePermission' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cvpGroup'+--+-- * 'cvpUserId'+createVolumePermission+    :: CreateVolumePermission+createVolumePermission =+    CreateVolumePermission'+    { _cvpGroup = Nothing+    , _cvpUserId = Nothing+    }++-- | The specific group that is to be added or removed from a volume\'s list+-- of create volume permissions.+cvpGroup :: Lens' CreateVolumePermission (Maybe PermissionGroup)+cvpGroup = lens _cvpGroup (\ s a -> s{_cvpGroup = a});++-- | The specific AWS account ID that is to be added or removed from a+-- volume\'s list of create volume permissions.+cvpUserId :: Lens' CreateVolumePermission (Maybe Text)+cvpUserId = lens _cvpUserId (\ s a -> s{_cvpUserId = a});++instance FromXML CreateVolumePermission where+        parseXML x+          = CreateVolumePermission' <$>+              (x .@? "group") <*> (x .@? "userId")++instance Hashable CreateVolumePermission++instance ToQuery CreateVolumePermission where+        toQuery CreateVolumePermission'{..}+          = mconcat+              ["Group" =: _cvpGroup, "UserId" =: _cvpUserId]++-- | Describes modifications to the permissions for a volume.+--+-- /See:/ 'createVolumePermissionModifications' smart constructor.+data CreateVolumePermissionModifications = CreateVolumePermissionModifications'+    { _cvpmRemove :: !(Maybe [CreateVolumePermission])+    , _cvpmAdd    :: !(Maybe [CreateVolumePermission])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateVolumePermissionModifications' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cvpmRemove'+--+-- * 'cvpmAdd'+createVolumePermissionModifications+    :: CreateVolumePermissionModifications+createVolumePermissionModifications =+    CreateVolumePermissionModifications'+    { _cvpmRemove = Nothing+    , _cvpmAdd = Nothing+    }++-- | Removes a specific AWS account ID or group from a volume\'s list of+-- create volume permissions.+cvpmRemove :: Lens' CreateVolumePermissionModifications [CreateVolumePermission]+cvpmRemove = lens _cvpmRemove (\ s a -> s{_cvpmRemove = a}) . _Default . _Coerce;++-- | Adds a specific AWS account ID or group to a volume\'s list of create+-- volume permissions.+cvpmAdd :: Lens' CreateVolumePermissionModifications [CreateVolumePermission]+cvpmAdd = lens _cvpmAdd (\ s a -> s{_cvpmAdd = a}) . _Default . _Coerce;++instance Hashable CreateVolumePermissionModifications++instance ToQuery CreateVolumePermissionModifications+         where+        toQuery CreateVolumePermissionModifications'{..}+          = mconcat+              [toQuery (toQueryList "Remove" <$> _cvpmRemove),+               toQuery (toQueryList "Add" <$> _cvpmAdd)]++-- | Describes a customer gateway.+--+-- /See:/ 'customerGateway' smart constructor.+data CustomerGateway = CustomerGateway'+    { _cgTags              :: !(Maybe [Tag])+    , _cgBGPASN            :: !Text+    , _cgCustomerGatewayId :: !Text+    , _cgIPAddress         :: !Text+    , _cgState             :: !Text+    , _cgType              :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CustomerGateway' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cgTags'+--+-- * 'cgBGPASN'+--+-- * 'cgCustomerGatewayId'+--+-- * 'cgIPAddress'+--+-- * 'cgState'+--+-- * 'cgType'+customerGateway+    :: Text -- ^ 'cgBGPASN'+    -> Text -- ^ 'cgCustomerGatewayId'+    -> Text -- ^ 'cgIPAddress'+    -> Text -- ^ 'cgState'+    -> Text -- ^ 'cgType'+    -> CustomerGateway+customerGateway pBGPASN_ pCustomerGatewayId_ pIPAddress_ pState_ pType_ =+    CustomerGateway'+    { _cgTags = Nothing+    , _cgBGPASN = pBGPASN_+    , _cgCustomerGatewayId = pCustomerGatewayId_+    , _cgIPAddress = pIPAddress_+    , _cgState = pState_+    , _cgType = pType_+    }++-- | Any tags assigned to the customer gateway.+cgTags :: Lens' CustomerGateway [Tag]+cgTags = lens _cgTags (\ s a -> s{_cgTags = a}) . _Default . _Coerce;++-- | The customer gateway\'s Border Gateway Protocol (BGP) Autonomous System+-- Number (ASN).+cgBGPASN :: Lens' CustomerGateway Text+cgBGPASN = lens _cgBGPASN (\ s a -> s{_cgBGPASN = a});++-- | The ID of the customer gateway.+cgCustomerGatewayId :: Lens' CustomerGateway Text+cgCustomerGatewayId = lens _cgCustomerGatewayId (\ s a -> s{_cgCustomerGatewayId = a});++-- | The Internet-routable IP address of the customer gateway\'s outside+-- interface.+cgIPAddress :: Lens' CustomerGateway Text+cgIPAddress = lens _cgIPAddress (\ s a -> s{_cgIPAddress = a});++-- | The current state of the customer gateway+-- ('pending | available | deleting | deleted').+cgState :: Lens' CustomerGateway Text+cgState = lens _cgState (\ s a -> s{_cgState = a});++-- | The type of VPN connection the customer gateway supports ('ipsec.1').+cgType :: Lens' CustomerGateway Text+cgType = lens _cgType (\ s a -> s{_cgType = a});++instance FromXML CustomerGateway where+        parseXML x+          = CustomerGateway' <$>+              (x .@? "tagSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@ "bgpAsn")+                <*> (x .@ "customerGatewayId")+                <*> (x .@ "ipAddress")+                <*> (x .@ "state")+                <*> (x .@ "type")++instance Hashable CustomerGateway++-- | Describes a DHCP configuration option.+--+-- /See:/ 'dhcpConfiguration' smart constructor.+data DHCPConfiguration = DHCPConfiguration'+    { _dcValues :: !(Maybe [AttributeValue])+    , _dcKey    :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DHCPConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dcValues'+--+-- * 'dcKey'+dhcpConfiguration+    :: DHCPConfiguration+dhcpConfiguration =+    DHCPConfiguration'+    { _dcValues = Nothing+    , _dcKey = Nothing+    }++-- | One or more values for the DHCP option.+dcValues :: Lens' DHCPConfiguration [AttributeValue]+dcValues = lens _dcValues (\ s a -> s{_dcValues = a}) . _Default . _Coerce;++-- | The name of a DHCP option.+dcKey :: Lens' DHCPConfiguration (Maybe Text)+dcKey = lens _dcKey (\ s a -> s{_dcKey = a});++instance FromXML DHCPConfiguration where+        parseXML x+          = DHCPConfiguration' <$>+              (x .@? "valueSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "key")++instance Hashable DHCPConfiguration++-- | Describes a set of DHCP options.+--+-- /See:/ 'dhcpOptions' smart constructor.+data DHCPOptions = DHCPOptions'+    { _doDHCPConfigurations :: !(Maybe [DHCPConfiguration])+    , _doDHCPOptionsId      :: !(Maybe Text)+    , _doTags               :: !(Maybe [Tag])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DHCPOptions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'doDHCPConfigurations'+--+-- * 'doDHCPOptionsId'+--+-- * 'doTags'+dhcpOptions+    :: DHCPOptions+dhcpOptions =+    DHCPOptions'+    { _doDHCPConfigurations = Nothing+    , _doDHCPOptionsId = Nothing+    , _doTags = Nothing+    }++-- | One or more DHCP options in the set.+doDHCPConfigurations :: Lens' DHCPOptions [DHCPConfiguration]+doDHCPConfigurations = lens _doDHCPConfigurations (\ s a -> s{_doDHCPConfigurations = a}) . _Default . _Coerce;++-- | The ID of the set of DHCP options.+doDHCPOptionsId :: Lens' DHCPOptions (Maybe Text)+doDHCPOptionsId = lens _doDHCPOptionsId (\ s a -> s{_doDHCPOptionsId = a});++-- | Any tags assigned to the DHCP options set.+doTags :: Lens' DHCPOptions [Tag]+doTags = lens _doTags (\ s a -> s{_doTags = a}) . _Default . _Coerce;++instance FromXML DHCPOptions where+        parseXML x+          = DHCPOptions' <$>+              (x .@? "dhcpConfigurationSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "dhcpOptionsId")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable DHCPOptions++-- | Describes a disk image.+--+-- /See:/ 'diskImage' smart constructor.+data DiskImage = DiskImage'+    { _diImage       :: !(Maybe DiskImageDetail)+    , _diVolume      :: !(Maybe VolumeDetail)+    , _diDescription :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DiskImage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'diImage'+--+-- * 'diVolume'+--+-- * 'diDescription'+diskImage+    :: DiskImage+diskImage =+    DiskImage'+    { _diImage = Nothing+    , _diVolume = Nothing+    , _diDescription = Nothing+    }++-- | Information about the disk image.+diImage :: Lens' DiskImage (Maybe DiskImageDetail)+diImage = lens _diImage (\ s a -> s{_diImage = a});++-- | Information about the volume.+diVolume :: Lens' DiskImage (Maybe VolumeDetail)+diVolume = lens _diVolume (\ s a -> s{_diVolume = a});++-- | A description of the disk image.+diDescription :: Lens' DiskImage (Maybe Text)+diDescription = lens _diDescription (\ s a -> s{_diDescription = a});++instance Hashable DiskImage++instance ToQuery DiskImage where+        toQuery DiskImage'{..}+          = mconcat+              ["Image" =: _diImage, "Volume" =: _diVolume,+               "Description" =: _diDescription]++-- | Describes a disk image.+--+-- /See:/ 'diskImageDescription' smart constructor.+data DiskImageDescription = DiskImageDescription'+    { _dChecksum          :: !(Maybe Text)+    , _dFormat            :: !DiskImageFormat+    , _dSize              :: !Integer+    , _dImportManifestURL :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DiskImageDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dChecksum'+--+-- * 'dFormat'+--+-- * 'dSize'+--+-- * 'dImportManifestURL'+diskImageDescription+    :: DiskImageFormat -- ^ 'dFormat'+    -> Integer -- ^ 'dSize'+    -> Text -- ^ 'dImportManifestURL'+    -> DiskImageDescription+diskImageDescription pFormat_ pSize_ pImportManifestURL_ =+    DiskImageDescription'+    { _dChecksum = Nothing+    , _dFormat = pFormat_+    , _dSize = pSize_+    , _dImportManifestURL = pImportManifestURL_+    }++-- | The checksum computed for the disk image.+dChecksum :: Lens' DiskImageDescription (Maybe Text)+dChecksum = lens _dChecksum (\ s a -> s{_dChecksum = a});++-- | The disk image format.+dFormat :: Lens' DiskImageDescription DiskImageFormat+dFormat = lens _dFormat (\ s a -> s{_dFormat = a});++-- | The size of the disk image, in GiB.+dSize :: Lens' DiskImageDescription Integer+dSize = lens _dSize (\ s a -> s{_dSize = a});++-- | A presigned URL for the import manifest stored in Amazon S3. For+-- information about creating a presigned URL for an Amazon S3 object, read+-- the \"Query String Request Authentication Alternative\" section of the+-- <http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html Authenticating REST Requests>+-- topic in the /Amazon Simple Storage Service Developer Guide/.+--+-- For information about the import manifest referenced by this API action,+-- see+-- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html VM Import Manifest>.+dImportManifestURL :: Lens' DiskImageDescription Text+dImportManifestURL = lens _dImportManifestURL (\ s a -> s{_dImportManifestURL = a});++instance FromXML DiskImageDescription where+        parseXML x+          = DiskImageDescription' <$>+              (x .@? "checksum") <*> (x .@ "format") <*>+                (x .@ "size")+                <*> (x .@ "importManifestUrl")++instance Hashable DiskImageDescription++-- | Describes a disk image.+--+-- /See:/ 'diskImageDetail' smart constructor.+data DiskImageDetail = DiskImageDetail'+    { _didFormat            :: !DiskImageFormat+    , _didBytes             :: !Integer+    , _didImportManifestURL :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DiskImageDetail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'didFormat'+--+-- * 'didBytes'+--+-- * 'didImportManifestURL'+diskImageDetail+    :: DiskImageFormat -- ^ 'didFormat'+    -> Integer -- ^ 'didBytes'+    -> Text -- ^ 'didImportManifestURL'+    -> DiskImageDetail+diskImageDetail pFormat_ pBytes_ pImportManifestURL_ =+    DiskImageDetail'+    { _didFormat = pFormat_+    , _didBytes = pBytes_+    , _didImportManifestURL = pImportManifestURL_+    }++-- | The disk image format.+didFormat :: Lens' DiskImageDetail DiskImageFormat+didFormat = lens _didFormat (\ s a -> s{_didFormat = a});++-- | The size of the disk image, in GiB.+didBytes :: Lens' DiskImageDetail Integer+didBytes = lens _didBytes (\ s a -> s{_didBytes = a});++-- | A presigned URL for the import manifest stored in Amazon S3 and+-- presented here as an Amazon S3 presigned URL. For information about+-- creating a presigned URL for an Amazon S3 object, read the \"Query+-- String Request Authentication Alternative\" section of the+-- <http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html Authenticating REST Requests>+-- topic in the /Amazon Simple Storage Service Developer Guide/.+--+-- For information about the import manifest referenced by this API action,+-- see+-- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html VM Import Manifest>.+didImportManifestURL :: Lens' DiskImageDetail Text+didImportManifestURL = lens _didImportManifestURL (\ s a -> s{_didImportManifestURL = a});++instance Hashable DiskImageDetail++instance ToQuery DiskImageDetail where+        toQuery DiskImageDetail'{..}+          = mconcat+              ["Format" =: _didFormat, "Bytes" =: _didBytes,+               "ImportManifestUrl" =: _didImportManifestURL]++-- | Describes a disk image volume.+--+-- /See:/ 'diskImageVolumeDescription' smart constructor.+data DiskImageVolumeDescription = DiskImageVolumeDescription'+    { _divdSize :: !(Maybe Integer)+    , _divdId   :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DiskImageVolumeDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'divdSize'+--+-- * 'divdId'+diskImageVolumeDescription+    :: Text -- ^ 'divdId'+    -> DiskImageVolumeDescription+diskImageVolumeDescription pId_ =+    DiskImageVolumeDescription'+    { _divdSize = Nothing+    , _divdId = pId_+    }++-- | The size of the volume, in GiB.+divdSize :: Lens' DiskImageVolumeDescription (Maybe Integer)+divdSize = lens _divdSize (\ s a -> s{_divdSize = a});++-- | The volume identifier.+divdId :: Lens' DiskImageVolumeDescription Text+divdId = lens _divdId (\ s a -> s{_divdId = a});++instance FromXML DiskImageVolumeDescription where+        parseXML x+          = DiskImageVolumeDescription' <$>+              (x .@? "size") <*> (x .@ "id")++instance Hashable DiskImageVolumeDescription++-- | Describes a block device for an EBS volume.+--+-- /See:/ 'ebsBlockDevice' smart constructor.+data EBSBlockDevice = EBSBlockDevice'+    { _ebdDeleteOnTermination :: !(Maybe Bool)+    , _ebdVolumeSize          :: !(Maybe Int)+    , _ebdIOPS                :: !(Maybe Int)+    , _ebdEncrypted           :: !(Maybe Bool)+    , _ebdVolumeType          :: !(Maybe VolumeType)+    , _ebdSnapshotId          :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'EBSBlockDevice' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ebdDeleteOnTermination'+--+-- * 'ebdVolumeSize'+--+-- * 'ebdIOPS'+--+-- * 'ebdEncrypted'+--+-- * 'ebdVolumeType'+--+-- * 'ebdSnapshotId'+ebsBlockDevice+    :: EBSBlockDevice+ebsBlockDevice =+    EBSBlockDevice'+    { _ebdDeleteOnTermination = Nothing+    , _ebdVolumeSize = Nothing+    , _ebdIOPS = Nothing+    , _ebdEncrypted = Nothing+    , _ebdVolumeType = Nothing+    , _ebdSnapshotId = Nothing+    }++-- | Indicates whether the EBS volume is deleted on instance termination.+ebdDeleteOnTermination :: Lens' EBSBlockDevice (Maybe Bool)+ebdDeleteOnTermination = lens _ebdDeleteOnTermination (\ s a -> s{_ebdDeleteOnTermination = a});++-- | The size of the volume, in GiB.+--+-- Constraints: '1-1024' for 'standard' volumes, '1-16384' for 'gp2'+-- volumes, and '4-16384' for 'io1' volumes. If you specify a snapshot, the+-- volume size must be equal to or larger than the snapshot size.+--+-- Default: If you\'re creating the volume from a snapshot and don\'t+-- specify a volume size, the default is the snapshot size.+ebdVolumeSize :: Lens' EBSBlockDevice (Maybe Int)+ebdVolumeSize = lens _ebdVolumeSize (\ s a -> s{_ebdVolumeSize = a});++-- | The number of I\/O operations per second (IOPS) that the volume+-- supports. For Provisioned IOPS (SSD) volumes, this represents the number+-- of IOPS that are provisioned for the volume. For General Purpose (SSD)+-- volumes, this represents the baseline performance of the volume and the+-- rate at which the volume accumulates I\/O credits for bursting. For more+-- information on General Purpose (SSD) baseline performance, I\/O credits,+-- and bursting, see+-- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBS Volume Types>+-- in the /Amazon Elastic Compute Cloud User Guide/.+--+-- Constraint: Range is 100 to 20000 for Provisioned IOPS (SSD) volumes and+-- 3 to 10000 for General Purpose (SSD) volumes.+--+-- Condition: This parameter is required for requests to create 'io1'+-- volumes; it is not used in requests to create 'standard' or 'gp2'+-- volumes.+ebdIOPS :: Lens' EBSBlockDevice (Maybe Int)+ebdIOPS = lens _ebdIOPS (\ s a -> s{_ebdIOPS = a});++-- | Indicates whether the EBS volume is encrypted. Encrypted Amazon EBS+-- volumes may only be attached to instances that support Amazon EBS+-- encryption.+ebdEncrypted :: Lens' EBSBlockDevice (Maybe Bool)+ebdEncrypted = lens _ebdEncrypted (\ s a -> s{_ebdEncrypted = a});++-- | The volume type. 'gp2' for General Purpose (SSD) volumes, 'io1' for+-- Provisioned IOPS (SSD) volumes, and 'standard' for Magnetic volumes.+--+-- Default: 'standard'+ebdVolumeType :: Lens' EBSBlockDevice (Maybe VolumeType)+ebdVolumeType = lens _ebdVolumeType (\ s a -> s{_ebdVolumeType = a});++-- | The ID of the snapshot.+ebdSnapshotId :: Lens' EBSBlockDevice (Maybe Text)+ebdSnapshotId = lens _ebdSnapshotId (\ s a -> s{_ebdSnapshotId = a});++instance FromXML EBSBlockDevice where+        parseXML x+          = EBSBlockDevice' <$>+              (x .@? "deleteOnTermination") <*>+                (x .@? "volumeSize")+                <*> (x .@? "iops")+                <*> (x .@? "encrypted")+                <*> (x .@? "volumeType")+                <*> (x .@? "snapshotId")++instance Hashable EBSBlockDevice++instance ToQuery EBSBlockDevice where+        toQuery EBSBlockDevice'{..}+          = mconcat+              ["DeleteOnTermination" =: _ebdDeleteOnTermination,+               "VolumeSize" =: _ebdVolumeSize, "Iops" =: _ebdIOPS,+               "Encrypted" =: _ebdEncrypted,+               "VolumeType" =: _ebdVolumeType,+               "SnapshotId" =: _ebdSnapshotId]++-- | Describes a parameter used to set up an EBS volume in a block device+-- mapping.+--+-- /See:/ 'ebsInstanceBlockDevice' smart constructor.+data EBSInstanceBlockDevice = EBSInstanceBlockDevice'+    { _eibdStatus              :: !(Maybe AttachmentStatus)+    , _eibdDeleteOnTermination :: !(Maybe Bool)+    , _eibdVolumeId            :: !(Maybe Text)+    , _eibdAttachTime          :: !(Maybe ISO8601)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'EBSInstanceBlockDevice' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eibdStatus'+--+-- * 'eibdDeleteOnTermination'+--+-- * 'eibdVolumeId'+--+-- * 'eibdAttachTime'+ebsInstanceBlockDevice+    :: EBSInstanceBlockDevice+ebsInstanceBlockDevice =+    EBSInstanceBlockDevice'+    { _eibdStatus = Nothing+    , _eibdDeleteOnTermination = Nothing+    , _eibdVolumeId = Nothing+    , _eibdAttachTime = Nothing+    }++-- | The attachment state.+eibdStatus :: Lens' EBSInstanceBlockDevice (Maybe AttachmentStatus)+eibdStatus = lens _eibdStatus (\ s a -> s{_eibdStatus = a});++-- | Indicates whether the volume is deleted on instance termination.+eibdDeleteOnTermination :: Lens' EBSInstanceBlockDevice (Maybe Bool)+eibdDeleteOnTermination = lens _eibdDeleteOnTermination (\ s a -> s{_eibdDeleteOnTermination = a});++-- | The ID of the EBS volume.+eibdVolumeId :: Lens' EBSInstanceBlockDevice (Maybe Text)+eibdVolumeId = lens _eibdVolumeId (\ s a -> s{_eibdVolumeId = a});++-- | The time stamp when the attachment initiated.+eibdAttachTime :: Lens' EBSInstanceBlockDevice (Maybe UTCTime)+eibdAttachTime = lens _eibdAttachTime (\ s a -> s{_eibdAttachTime = a}) . mapping _Time;++instance FromXML EBSInstanceBlockDevice where+        parseXML x+          = EBSInstanceBlockDevice' <$>+              (x .@? "status") <*> (x .@? "deleteOnTermination")+                <*> (x .@? "volumeId")+                <*> (x .@? "attachTime")++instance Hashable EBSInstanceBlockDevice++-- | /See:/ 'ebsInstanceBlockDeviceSpecification' smart constructor.+data EBSInstanceBlockDeviceSpecification = EBSInstanceBlockDeviceSpecification'+    { _eibdsDeleteOnTermination :: !(Maybe Bool)+    , _eibdsVolumeId            :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'EBSInstanceBlockDeviceSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eibdsDeleteOnTermination'+--+-- * 'eibdsVolumeId'+ebsInstanceBlockDeviceSpecification+    :: EBSInstanceBlockDeviceSpecification+ebsInstanceBlockDeviceSpecification =+    EBSInstanceBlockDeviceSpecification'+    { _eibdsDeleteOnTermination = Nothing+    , _eibdsVolumeId = Nothing+    }++-- | Indicates whether the volume is deleted on instance termination.+eibdsDeleteOnTermination :: Lens' EBSInstanceBlockDeviceSpecification (Maybe Bool)+eibdsDeleteOnTermination = lens _eibdsDeleteOnTermination (\ s a -> s{_eibdsDeleteOnTermination = a});++-- | The ID of the EBS volume.+eibdsVolumeId :: Lens' EBSInstanceBlockDeviceSpecification (Maybe Text)+eibdsVolumeId = lens _eibdsVolumeId (\ s a -> s{_eibdsVolumeId = a});++instance Hashable EBSInstanceBlockDeviceSpecification++instance ToQuery EBSInstanceBlockDeviceSpecification+         where+        toQuery EBSInstanceBlockDeviceSpecification'{..}+          = mconcat+              ["DeleteOnTermination" =: _eibdsDeleteOnTermination,+               "VolumeId" =: _eibdsVolumeId]++-- | Describes a Spot fleet event.+--+-- /See:/ 'eventInformation' smart constructor.+data EventInformation = EventInformation'+    { _eiInstanceId       :: !(Maybe Text)+    , _eiEventDescription :: !(Maybe Text)+    , _eiEventSubType     :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventInformation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eiInstanceId'+--+-- * 'eiEventDescription'+--+-- * 'eiEventSubType'+eventInformation+    :: EventInformation+eventInformation =+    EventInformation'+    { _eiInstanceId = Nothing+    , _eiEventDescription = Nothing+    , _eiEventSubType = Nothing+    }++-- | The ID of the instance. This information is available only for+-- 'instanceChange' events.+eiInstanceId :: Lens' EventInformation (Maybe Text)+eiInstanceId = lens _eiInstanceId (\ s a -> s{_eiInstanceId = a});++-- | The description of the event.+eiEventDescription :: Lens' EventInformation (Maybe Text)+eiEventDescription = lens _eiEventDescription (\ s a -> s{_eiEventDescription = a});++-- | The event.+--+-- The following are the 'error' events.+--+-- -   'iamFleetRoleInvalid' - The Spot fleet did not have the required+--     permissions either to launch or terminate an instance.+--+-- -   'launchSpecTemporarilyBlacklisted' - The configuration is not valid+--     and several attempts to launch instances have failed. For more+--     information, see the description of the event.+--+-- -   'spotFleetRequestConfigurationInvalid' - The configuration is not+--     valid. For more information, see the description of the event.+--+-- -   'spotInstanceCountLimitExceeded' - You\'ve reached the limit on the+--     number of Spot instances that you can launch.+--+-- The following are the 'fleetRequestChange' events.+--+-- -   'active' - The Spot fleet has been validated and Amazon EC2 is+--     attempting to maintain the target number of running Spot instances.+--+-- -   'cancelled' - The Spot fleet is canceled and has no running Spot+--     instances. The Spot fleet will be deleted two days after its+--     instances were terminated.+--+-- -   'cancelled_running' - The Spot fleet is canceled and will not launch+--     additional Spot instances, but its existing Spot instances continue+--     to run until they are interrupted or terminated.+--+-- -   'cancelled_terminating' - The Spot fleet is canceled and its Spot+--     instances are terminating.+--+-- -   'expired' - The Spot fleet request has expired. A subsequent event+--     indicates that the instances were terminated, if the request was+--     created with 'TerminateInstancesWithExpiration' set.+--+-- -   'modify_in_progress' - A request to modify the Spot fleet request+--     was accepted and is in progress.+--+-- -   'modify_successful' - The Spot fleet request was modified.+--+-- -   'price_update' - The bid price for a launch configuration was+--     adjusted because it was too high. This change is permanent.+--+-- -   'submitted' - The Spot fleet request is being evaluated and Amazon+--     EC2 is preparing to launch the target number of Spot instances.+--+-- The following are the 'instanceChange' events.+--+-- -   'launched' - A bid was fulfilled and a new instance was launched.+--+-- -   'terminated' - An instance was terminated by the user.+--+eiEventSubType :: Lens' EventInformation (Maybe Text)+eiEventSubType = lens _eiEventSubType (\ s a -> s{_eiEventSubType = a});++instance FromXML EventInformation where+        parseXML x+          = EventInformation' <$>+              (x .@? "instanceId") <*> (x .@? "eventDescription")+                <*> (x .@? "eventSubType")++instance Hashable EventInformation++-- | Describes an instance export task.+--+-- /See:/ 'exportTask' smart constructor.+data ExportTask = ExportTask'+    { _etDescription           :: !Text+    , _etExportTaskId          :: !Text+    , _etExportToS3Task        :: !ExportToS3Task+    , _etInstanceExportDetails :: !InstanceExportDetails+    , _etState                 :: !ExportTaskState+    , _etStatusMessage         :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ExportTask' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'etDescription'+--+-- * 'etExportTaskId'+--+-- * 'etExportToS3Task'+--+-- * 'etInstanceExportDetails'+--+-- * 'etState'+--+-- * 'etStatusMessage'+exportTask+    :: Text -- ^ 'etDescription'+    -> Text -- ^ 'etExportTaskId'+    -> ExportToS3Task -- ^ 'etExportToS3Task'+    -> InstanceExportDetails -- ^ 'etInstanceExportDetails'+    -> ExportTaskState -- ^ 'etState'+    -> Text -- ^ 'etStatusMessage'+    -> ExportTask+exportTask pDescription_ pExportTaskId_ pExportToS3Task_ pInstanceExportDetails_ pState_ pStatusMessage_ =+    ExportTask'+    { _etDescription = pDescription_+    , _etExportTaskId = pExportTaskId_+    , _etExportToS3Task = pExportToS3Task_+    , _etInstanceExportDetails = pInstanceExportDetails_+    , _etState = pState_+    , _etStatusMessage = pStatusMessage_+    }++-- | A description of the resource being exported.+etDescription :: Lens' ExportTask Text+etDescription = lens _etDescription (\ s a -> s{_etDescription = a});++-- | The ID of the export task.+etExportTaskId :: Lens' ExportTask Text+etExportTaskId = lens _etExportTaskId (\ s a -> s{_etExportTaskId = a});++-- | Information about the export task.+etExportToS3Task :: Lens' ExportTask ExportToS3Task+etExportToS3Task = lens _etExportToS3Task (\ s a -> s{_etExportToS3Task = a});++-- | Information about the instance to export.+etInstanceExportDetails :: Lens' ExportTask InstanceExportDetails+etInstanceExportDetails = lens _etInstanceExportDetails (\ s a -> s{_etInstanceExportDetails = a});++-- | The state of the export task.+etState :: Lens' ExportTask ExportTaskState+etState = lens _etState (\ s a -> s{_etState = a});++-- | The status message related to the export task.+etStatusMessage :: Lens' ExportTask Text+etStatusMessage = lens _etStatusMessage (\ s a -> s{_etStatusMessage = a});++instance FromXML ExportTask where+        parseXML x+          = ExportTask' <$>+              (x .@ "description") <*> (x .@ "exportTaskId") <*>+                (x .@ "exportToS3")+                <*> (x .@ "instanceExport")+                <*> (x .@ "state")+                <*> (x .@ "statusMessage")++instance Hashable ExportTask++-- | Describes the format and location for an instance export task.+--+-- /See:/ 'exportToS3Task' smart constructor.+data ExportToS3Task = ExportToS3Task'+    { _etstS3Key           :: !(Maybe Text)+    , _etstContainerFormat :: !(Maybe ContainerFormat)+    , _etstS3Bucket        :: !(Maybe Text)+    , _etstDiskImageFormat :: !(Maybe DiskImageFormat)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ExportToS3Task' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'etstS3Key'+--+-- * 'etstContainerFormat'+--+-- * 'etstS3Bucket'+--+-- * 'etstDiskImageFormat'+exportToS3Task+    :: ExportToS3Task+exportToS3Task =+    ExportToS3Task'+    { _etstS3Key = Nothing+    , _etstContainerFormat = Nothing+    , _etstS3Bucket = Nothing+    , _etstDiskImageFormat = Nothing+    }++-- | The encryption key for your S3 bucket.+etstS3Key :: Lens' ExportToS3Task (Maybe Text)+etstS3Key = lens _etstS3Key (\ s a -> s{_etstS3Key = a});++-- | The container format used to combine disk images with metadata (such as+-- OVF). If absent, only the disk image is exported.+etstContainerFormat :: Lens' ExportToS3Task (Maybe ContainerFormat)+etstContainerFormat = lens _etstContainerFormat (\ s a -> s{_etstContainerFormat = a});++-- | The S3 bucket for the destination image. The destination bucket must+-- exist and grant WRITE and READ_ACP permissions to the AWS account+-- 'vm-import-export\'amazon.com'.+etstS3Bucket :: Lens' ExportToS3Task (Maybe Text)+etstS3Bucket = lens _etstS3Bucket (\ s a -> s{_etstS3Bucket = a});++-- | The format for the exported image.+etstDiskImageFormat :: Lens' ExportToS3Task (Maybe DiskImageFormat)+etstDiskImageFormat = lens _etstDiskImageFormat (\ s a -> s{_etstDiskImageFormat = a});++instance FromXML ExportToS3Task where+        parseXML x+          = ExportToS3Task' <$>+              (x .@? "s3Key") <*> (x .@? "containerFormat") <*>+                (x .@? "s3Bucket")+                <*> (x .@? "diskImageFormat")++instance Hashable ExportToS3Task++-- | Describes an instance export task.+--+-- /See:/ 'exportToS3TaskSpecification' smart constructor.+data ExportToS3TaskSpecification = ExportToS3TaskSpecification'+    { _etstsContainerFormat :: !(Maybe ContainerFormat)+    , _etstsS3Prefix        :: !(Maybe Text)+    , _etstsS3Bucket        :: !(Maybe Text)+    , _etstsDiskImageFormat :: !(Maybe DiskImageFormat)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ExportToS3TaskSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'etstsContainerFormat'+--+-- * 'etstsS3Prefix'+--+-- * 'etstsS3Bucket'+--+-- * 'etstsDiskImageFormat'+exportToS3TaskSpecification+    :: ExportToS3TaskSpecification+exportToS3TaskSpecification =+    ExportToS3TaskSpecification'+    { _etstsContainerFormat = Nothing+    , _etstsS3Prefix = Nothing+    , _etstsS3Bucket = Nothing+    , _etstsDiskImageFormat = Nothing+    }++-- | The container format used to combine disk images with metadata (such as+-- OVF). If absent, only the disk image is exported.+etstsContainerFormat :: Lens' ExportToS3TaskSpecification (Maybe ContainerFormat)+etstsContainerFormat = lens _etstsContainerFormat (\ s a -> s{_etstsContainerFormat = a});++-- | The image is written to a single object in the S3 bucket at the S3 key+-- s3prefix + exportTaskId + \'.\' + diskImageFormat.+etstsS3Prefix :: Lens' ExportToS3TaskSpecification (Maybe Text)+etstsS3Prefix = lens _etstsS3Prefix (\ s a -> s{_etstsS3Prefix = a});++-- | The S3 bucket for the destination image. The destination bucket must+-- exist and grant WRITE and READ_ACP permissions to the AWS account+-- 'vm-import-export\'amazon.com'.+etstsS3Bucket :: Lens' ExportToS3TaskSpecification (Maybe Text)+etstsS3Bucket = lens _etstsS3Bucket (\ s a -> s{_etstsS3Bucket = a});++-- | The format for the exported image.+etstsDiskImageFormat :: Lens' ExportToS3TaskSpecification (Maybe DiskImageFormat)+etstsDiskImageFormat = lens _etstsDiskImageFormat (\ s a -> s{_etstsDiskImageFormat = a});++instance Hashable ExportToS3TaskSpecification++instance ToQuery ExportToS3TaskSpecification where+        toQuery ExportToS3TaskSpecification'{..}+          = mconcat+              ["ContainerFormat" =: _etstsContainerFormat,+               "S3Prefix" =: _etstsS3Prefix,+               "S3Bucket" =: _etstsS3Bucket,+               "DiskImageFormat" =: _etstsDiskImageFormat]++-- | A filter name and value pair that is used to return a more specific list+-- of results. Filters can be used to match a set of resources by various+-- criteria, such as tags, attributes, or IDs.+--+-- /See:/ 'filter'' smart constructor.+data Filter = Filter'+    { _fValues :: !(Maybe [Text])+    , _fName   :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Filter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fValues'+--+-- * 'fName'+filter'+    :: Text -- ^ 'fName'+    -> Filter+filter' pName_ =+    Filter'+    { _fValues = Nothing+    , _fName = pName_+    }++-- | One or more filter values. Filter values are case-sensitive.+fValues :: Lens' Filter [Text]+fValues = lens _fValues (\ s a -> s{_fValues = a}) . _Default . _Coerce;++-- | The name of the filter. Filter names are case-sensitive.+fName :: Lens' Filter Text+fName = lens _fName (\ s a -> s{_fName = a});++instance Hashable Filter++instance ToQuery Filter where+        toQuery Filter'{..}+          = mconcat+              [toQuery (toQueryList "Value" <$> _fValues),+               "Name" =: _fName]++-- | Describes a flow log.+--+-- /See:/ 'flowLog' smart constructor.+data FlowLog = FlowLog'+    { _flCreationTime             :: !(Maybe ISO8601)+    , _flResourceId               :: !(Maybe Text)+    , _flFlowLogStatus            :: !(Maybe Text)+    , _flTrafficType              :: !(Maybe TrafficType)+    , _flDeliverLogsStatus        :: !(Maybe Text)+    , _flDeliverLogsErrorMessage  :: !(Maybe Text)+    , _flLogGroupName             :: !(Maybe Text)+    , _flDeliverLogsPermissionARN :: !(Maybe Text)+    , _flFlowLogId                :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'FlowLog' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'flCreationTime'+--+-- * 'flResourceId'+--+-- * 'flFlowLogStatus'+--+-- * 'flTrafficType'+--+-- * 'flDeliverLogsStatus'+--+-- * 'flDeliverLogsErrorMessage'+--+-- * 'flLogGroupName'+--+-- * 'flDeliverLogsPermissionARN'+--+-- * 'flFlowLogId'+flowLog+    :: FlowLog+flowLog =+    FlowLog'+    { _flCreationTime = Nothing+    , _flResourceId = Nothing+    , _flFlowLogStatus = Nothing+    , _flTrafficType = Nothing+    , _flDeliverLogsStatus = Nothing+    , _flDeliverLogsErrorMessage = Nothing+    , _flLogGroupName = Nothing+    , _flDeliverLogsPermissionARN = Nothing+    , _flFlowLogId = Nothing+    }++-- | The date and time the flow log was created.+flCreationTime :: Lens' FlowLog (Maybe UTCTime)+flCreationTime = lens _flCreationTime (\ s a -> s{_flCreationTime = a}) . mapping _Time;++-- | The ID of the resource on which the flow log was created.+flResourceId :: Lens' FlowLog (Maybe Text)+flResourceId = lens _flResourceId (\ s a -> s{_flResourceId = a});++-- | The status of the flow log ('ACTIVE').+flFlowLogStatus :: Lens' FlowLog (Maybe Text)+flFlowLogStatus = lens _flFlowLogStatus (\ s a -> s{_flFlowLogStatus = a});++-- | The type of traffic captured for the flow log.+flTrafficType :: Lens' FlowLog (Maybe TrafficType)+flTrafficType = lens _flTrafficType (\ s a -> s{_flTrafficType = a});++-- | The status of the logs delivery ('SUCCESS' | 'FAILED').+flDeliverLogsStatus :: Lens' FlowLog (Maybe Text)+flDeliverLogsStatus = lens _flDeliverLogsStatus (\ s a -> s{_flDeliverLogsStatus = a});++-- | Information about the error that occurred. 'Rate limited' indicates that+-- CloudWatch logs throttling has been applied for one or more network+-- interfaces, or that you\'ve reached the limit on the number of+-- CloudWatch Logs log groups that you can create. 'Access error' indicates+-- that the IAM role associated with the flow log does not have sufficient+-- permissions to publish to CloudWatch Logs. 'Unknown error' indicates an+-- internal error.+flDeliverLogsErrorMessage :: Lens' FlowLog (Maybe Text)+flDeliverLogsErrorMessage = lens _flDeliverLogsErrorMessage (\ s a -> s{_flDeliverLogsErrorMessage = a});++-- | The name of the flow log group.+flLogGroupName :: Lens' FlowLog (Maybe Text)+flLogGroupName = lens _flLogGroupName (\ s a -> s{_flLogGroupName = a});++-- | The ARN of the IAM role that posts logs to CloudWatch Logs.+flDeliverLogsPermissionARN :: Lens' FlowLog (Maybe Text)+flDeliverLogsPermissionARN = lens _flDeliverLogsPermissionARN (\ s a -> s{_flDeliverLogsPermissionARN = a});++-- | The flow log ID.+flFlowLogId :: Lens' FlowLog (Maybe Text)+flFlowLogId = lens _flFlowLogId (\ s a -> s{_flFlowLogId = a});++instance FromXML FlowLog where+        parseXML x+          = FlowLog' <$>+              (x .@? "creationTime") <*> (x .@? "resourceId") <*>+                (x .@? "flowLogStatus")+                <*> (x .@? "trafficType")+                <*> (x .@? "deliverLogsStatus")+                <*> (x .@? "deliverLogsErrorMessage")+                <*> (x .@? "logGroupName")+                <*> (x .@? "deliverLogsPermissionArn")+                <*> (x .@? "flowLogId")++instance Hashable FlowLog++-- | Describes a security group.+--+-- /See:/ 'groupIdentifier' smart constructor.+data GroupIdentifier = GroupIdentifier'+    { _giGroupId   :: !(Maybe Text)+    , _giGroupName :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GroupIdentifier' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'giGroupId'+--+-- * 'giGroupName'+groupIdentifier+    :: GroupIdentifier+groupIdentifier =+    GroupIdentifier'+    { _giGroupId = Nothing+    , _giGroupName = Nothing+    }++-- | The ID of the security group.+giGroupId :: Lens' GroupIdentifier (Maybe Text)+giGroupId = lens _giGroupId (\ s a -> s{_giGroupId = a});++-- | The name of the security group.+giGroupName :: Lens' GroupIdentifier (Maybe Text)+giGroupName = lens _giGroupName (\ s a -> s{_giGroupName = a});++instance FromXML GroupIdentifier where+        parseXML x+          = GroupIdentifier' <$>+              (x .@? "groupId") <*> (x .@? "groupName")++instance Hashable GroupIdentifier++instance ToQuery GroupIdentifier where+        toQuery GroupIdentifier'{..}+          = mconcat+              ["GroupId" =: _giGroupId,+               "GroupName" =: _giGroupName]++-- | Describes an event in the history of the Spot fleet request.+--+-- /See:/ 'historyRecord' smart constructor.+data HistoryRecord = HistoryRecord'+    { _hrTimestamp        :: !ISO8601+    , _hrEventType        :: !EventType+    , _hrEventInformation :: !EventInformation+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'HistoryRecord' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hrTimestamp'+--+-- * 'hrEventType'+--+-- * 'hrEventInformation'+historyRecord+    :: UTCTime -- ^ 'hrTimestamp'+    -> EventType -- ^ 'hrEventType'+    -> EventInformation -- ^ 'hrEventInformation'+    -> HistoryRecord+historyRecord pTimestamp_ pEventType_ pEventInformation_ =+    HistoryRecord'+    { _hrTimestamp = _Time # pTimestamp_+    , _hrEventType = pEventType_+    , _hrEventInformation = pEventInformation_+    }++-- | The date and time of the event, in UTC format (for example,+-- /YYYY/-/MM/-/DD/T/HH/:/MM/:/SS/Z).+hrTimestamp :: Lens' HistoryRecord UTCTime+hrTimestamp = lens _hrTimestamp (\ s a -> s{_hrTimestamp = a}) . _Time;++-- | The event type.+--+-- -   'error' - Indicates an error with the Spot fleet request.+--+-- -   'fleetRequestChange' - Indicates a change in the status or+--     configuration of the Spot fleet request.+--+-- -   'instanceChange' - Indicates that an instance was launched or+--     terminated.+--+hrEventType :: Lens' HistoryRecord EventType+hrEventType = lens _hrEventType (\ s a -> s{_hrEventType = a});++-- | Information about the event.+hrEventInformation :: Lens' HistoryRecord EventInformation+hrEventInformation = lens _hrEventInformation (\ s a -> s{_hrEventInformation = a});++instance FromXML HistoryRecord where+        parseXML x+          = HistoryRecord' <$>+              (x .@ "timestamp") <*> (x .@ "eventType") <*>+                (x .@ "eventInformation")++instance Hashable HistoryRecord++-- | Describes the properties of the Dedicated host.+--+-- /See:/ 'host' smart constructor.+data Host = Host'+    { _hState             :: !(Maybe AllocationState)+    , _hClientToken       :: !(Maybe Text)+    , _hHostId            :: !(Maybe Text)+    , _hAvailableCapacity :: !(Maybe AvailableCapacity)+    , _hHostReservationId :: !(Maybe Text)+    , _hHostProperties    :: !(Maybe HostProperties)+    , _hAvailabilityZone  :: !(Maybe Text)+    , _hInstances         :: !(Maybe [HostInstance])+    , _hAutoPlacement     :: !(Maybe AutoPlacement)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Host' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hState'+--+-- * 'hClientToken'+--+-- * 'hHostId'+--+-- * 'hAvailableCapacity'+--+-- * 'hHostReservationId'+--+-- * 'hHostProperties'+--+-- * 'hAvailabilityZone'+--+-- * 'hInstances'+--+-- * 'hAutoPlacement'+host+    :: Host+host =+    Host'+    { _hState = Nothing+    , _hClientToken = Nothing+    , _hHostId = Nothing+    , _hAvailableCapacity = Nothing+    , _hHostReservationId = Nothing+    , _hHostProperties = Nothing+    , _hAvailabilityZone = Nothing+    , _hInstances = Nothing+    , _hAutoPlacement = Nothing+    }++-- | The Dedicated host\'s state.+hState :: Lens' Host (Maybe AllocationState)+hState = lens _hState (\ s a -> s{_hState = a});++-- | Unique, case-sensitive identifier you provide to ensure idempotency of+-- the request. For more information, see+-- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html How to Ensure Idempotency>+-- in the /Amazon Elastic Compute Cloud User Guide/.+hClientToken :: Lens' Host (Maybe Text)+hClientToken = lens _hClientToken (\ s a -> s{_hClientToken = a});++-- | The ID of the Dedicated host.+hHostId :: Lens' Host (Maybe Text)+hHostId = lens _hHostId (\ s a -> s{_hHostId = a});++-- | The number of new instances that can be launched onto the Dedicated+-- host.+hAvailableCapacity :: Lens' Host (Maybe AvailableCapacity)+hAvailableCapacity = lens _hAvailableCapacity (\ s a -> s{_hAvailableCapacity = a});++-- | The reservation ID of the Dedicated host. This returns a 'null' response+-- if the Dedicated host doesn\'t have an associated reservation.+hHostReservationId :: Lens' Host (Maybe Text)+hHostReservationId = lens _hHostReservationId (\ s a -> s{_hHostReservationId = a});++-- | The hardware specifications of the Dedicated host.+hHostProperties :: Lens' Host (Maybe HostProperties)+hHostProperties = lens _hHostProperties (\ s a -> s{_hHostProperties = a});++-- | The Availability Zone of the Dedicated host.+hAvailabilityZone :: Lens' Host (Maybe Text)+hAvailabilityZone = lens _hAvailabilityZone (\ s a -> s{_hAvailabilityZone = a});++-- | The IDs and instance type that are currently running on the Dedicated+-- host.+hInstances :: Lens' Host [HostInstance]+hInstances = lens _hInstances (\ s a -> s{_hInstances = a}) . _Default . _Coerce;++-- | Whether auto-placement is on or off.+hAutoPlacement :: Lens' Host (Maybe AutoPlacement)+hAutoPlacement = lens _hAutoPlacement (\ s a -> s{_hAutoPlacement = a});++instance FromXML Host where+        parseXML x+          = Host' <$>+              (x .@? "state") <*> (x .@? "clientToken") <*>+                (x .@? "hostId")+                <*> (x .@? "availableCapacity")+                <*> (x .@? "hostReservationId")+                <*> (x .@? "hostProperties")+                <*> (x .@? "availabilityZone")+                <*>+                (x .@? "instances" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "autoPlacement")++instance Hashable Host++-- | /See:/ 'hostInstance' smart constructor.+data HostInstance = HostInstance'+    { _hiInstanceId   :: !(Maybe Text)+    , _hiInstanceType :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'HostInstance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hiInstanceId'+--+-- * 'hiInstanceType'+hostInstance+    :: HostInstance+hostInstance =+    HostInstance'+    { _hiInstanceId = Nothing+    , _hiInstanceType = Nothing+    }++-- | the IDs of instances that are running on the Dedicated host.+hiInstanceId :: Lens' HostInstance (Maybe Text)+hiInstanceId = lens _hiInstanceId (\ s a -> s{_hiInstanceId = a});++-- | The instance type size (e.g., m3.medium) of the running instance.+hiInstanceType :: Lens' HostInstance (Maybe Text)+hiInstanceType = lens _hiInstanceType (\ s a -> s{_hiInstanceType = a});++instance FromXML HostInstance where+        parseXML x+          = HostInstance' <$>+              (x .@? "instanceId") <*> (x .@? "instanceType")++instance Hashable HostInstance++-- | /See:/ 'hostProperties' smart constructor.+data HostProperties = HostProperties'+    { _hpInstanceType :: !(Maybe Text)+    , _hpTotalVCPUs   :: !(Maybe Int)+    , _hpCores        :: !(Maybe Int)+    , _hpSockets      :: !(Maybe Int)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'HostProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hpInstanceType'+--+-- * 'hpTotalVCPUs'+--+-- * 'hpCores'+--+-- * 'hpSockets'+hostProperties+    :: HostProperties+hostProperties =+    HostProperties'+    { _hpInstanceType = Nothing+    , _hpTotalVCPUs = Nothing+    , _hpCores = Nothing+    , _hpSockets = Nothing+    }++-- | The instance type size that the Dedicated host supports (e.g.,+-- m3.medium).+hpInstanceType :: Lens' HostProperties (Maybe Text)+hpInstanceType = lens _hpInstanceType (\ s a -> s{_hpInstanceType = a});++-- | The number of vCPUs on the Dedicated host.+hpTotalVCPUs :: Lens' HostProperties (Maybe Int)+hpTotalVCPUs = lens _hpTotalVCPUs (\ s a -> s{_hpTotalVCPUs = a});++-- | The number of cores on the Dedicated host.+hpCores :: Lens' HostProperties (Maybe Int)+hpCores = lens _hpCores (\ s a -> s{_hpCores = a});++-- | The number of sockets on the Dedicated host.+hpSockets :: Lens' HostProperties (Maybe Int)+hpSockets = lens _hpSockets (\ s a -> s{_hpSockets = a});++instance FromXML HostProperties where+        parseXML x+          = HostProperties' <$>+              (x .@? "instanceType") <*> (x .@? "totalVCpus") <*>+                (x .@? "cores")+                <*> (x .@? "sockets")++instance Hashable HostProperties++-- | Describes an IAM instance profile.+--+-- /See:/ 'iamInstanceProfile' smart constructor.+data IAMInstanceProfile = IAMInstanceProfile'+    { _iapARN :: !(Maybe Text)+    , _iapId  :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'IAMInstanceProfile' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iapARN'+--+-- * 'iapId'+iamInstanceProfile+    :: IAMInstanceProfile+iamInstanceProfile =+    IAMInstanceProfile'+    { _iapARN = Nothing+    , _iapId = Nothing+    }++-- | The Amazon Resource Name (ARN) of the instance profile.+iapARN :: Lens' IAMInstanceProfile (Maybe Text)+iapARN = lens _iapARN (\ s a -> s{_iapARN = a});++-- | The ID of the instance profile.+iapId :: Lens' IAMInstanceProfile (Maybe Text)+iapId = lens _iapId (\ s a -> s{_iapId = a});++instance FromXML IAMInstanceProfile where+        parseXML x+          = IAMInstanceProfile' <$>+              (x .@? "arn") <*> (x .@? "id")++instance Hashable IAMInstanceProfile++-- | Describes an IAM instance profile.+--+-- /See:/ 'iamInstanceProfileSpecification' smart constructor.+data IAMInstanceProfileSpecification = IAMInstanceProfileSpecification'+    { _iapsARN  :: !(Maybe Text)+    , _iapsName :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'IAMInstanceProfileSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iapsARN'+--+-- * 'iapsName'+iamInstanceProfileSpecification+    :: IAMInstanceProfileSpecification+iamInstanceProfileSpecification =+    IAMInstanceProfileSpecification'+    { _iapsARN = Nothing+    , _iapsName = Nothing+    }++-- | The Amazon Resource Name (ARN) of the instance profile.+iapsARN :: Lens' IAMInstanceProfileSpecification (Maybe Text)+iapsARN = lens _iapsARN (\ s a -> s{_iapsARN = a});++-- | The name of the instance profile.+iapsName :: Lens' IAMInstanceProfileSpecification (Maybe Text)+iapsName = lens _iapsName (\ s a -> s{_iapsName = a});++instance FromXML IAMInstanceProfileSpecification+         where+        parseXML x+          = IAMInstanceProfileSpecification' <$>+              (x .@? "arn") <*> (x .@? "name")++instance Hashable IAMInstanceProfileSpecification++instance ToQuery IAMInstanceProfileSpecification+         where+        toQuery IAMInstanceProfileSpecification'{..}+          = mconcat ["Arn" =: _iapsARN, "Name" =: _iapsName]++-- | Describes the ICMP type and code.+--+-- /See:/ 'icmpTypeCode' smart constructor.+data ICMPTypeCode = ICMPTypeCode'+    { _itcCode :: !(Maybe Int)+    , _itcType :: !(Maybe Int)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ICMPTypeCode' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'itcCode'+--+-- * 'itcType'+icmpTypeCode+    :: ICMPTypeCode+icmpTypeCode =+    ICMPTypeCode'+    { _itcCode = Nothing+    , _itcType = Nothing+    }++-- | The ICMP type. A value of -1 means all types.+itcCode :: Lens' ICMPTypeCode (Maybe Int)+itcCode = lens _itcCode (\ s a -> s{_itcCode = a});++-- | The ICMP code. A value of -1 means all codes for the specified ICMP+-- type.+itcType :: Lens' ICMPTypeCode (Maybe Int)+itcType = lens _itcType (\ s a -> s{_itcType = a});++instance FromXML ICMPTypeCode where+        parseXML x+          = ICMPTypeCode' <$> (x .@? "code") <*> (x .@? "type")++instance Hashable ICMPTypeCode++instance ToQuery ICMPTypeCode where+        toQuery ICMPTypeCode'{..}+          = mconcat ["Code" =: _itcCode, "Type" =: _itcType]++-- | Describes a security group rule.+--+-- /See:/ 'ipPermission' smart constructor.+data IPPermission = IPPermission'+    { _ipFromPort         :: !(Maybe Int)+    , _ipUserIdGroupPairs :: !(Maybe [UserIdGroupPair])+    , _ipPrefixListIds    :: !(Maybe [PrefixListId])+    , _ipToPort           :: !(Maybe Int)+    , _ipIPRanges         :: !(Maybe [IPRange])+    , _ipIPProtocol       :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'IPPermission' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ipFromPort'+--+-- * 'ipUserIdGroupPairs'+--+-- * 'ipPrefixListIds'+--+-- * 'ipToPort'+--+-- * 'ipIPRanges'+--+-- * 'ipIPProtocol'+ipPermission+    :: Text -- ^ 'ipIPProtocol'+    -> IPPermission+ipPermission pIPProtocol_ =+    IPPermission'+    { _ipFromPort = Nothing+    , _ipUserIdGroupPairs = Nothing+    , _ipPrefixListIds = Nothing+    , _ipToPort = Nothing+    , _ipIPRanges = Nothing+    , _ipIPProtocol = pIPProtocol_+    }++-- | The start of port range for the TCP and UDP protocols, or an ICMP type+-- number. A value of '-1' indicates all ICMP types.+ipFromPort :: Lens' IPPermission (Maybe Int)+ipFromPort = lens _ipFromPort (\ s a -> s{_ipFromPort = a});++-- | One or more security group and AWS account ID pairs.+ipUserIdGroupPairs :: Lens' IPPermission [UserIdGroupPair]+ipUserIdGroupPairs = lens _ipUserIdGroupPairs (\ s a -> s{_ipUserIdGroupPairs = a}) . _Default . _Coerce;++-- | (Valid for < AuthorizeSecurityGroupEgress>, < RevokeSecurityGroupEgress>+-- and < DescribeSecurityGroups> only) One or more prefix list IDs for an+-- AWS service. In an < AuthorizeSecurityGroupEgress> request, this is the+-- AWS service that you want to access through a VPC endpoint from+-- instances associated with the security group.+ipPrefixListIds :: Lens' IPPermission [PrefixListId]+ipPrefixListIds = lens _ipPrefixListIds (\ s a -> s{_ipPrefixListIds = a}) . _Default . _Coerce;++-- | The end of port range for the TCP and UDP protocols, or an ICMP code. A+-- value of '-1' indicates all ICMP codes for the specified ICMP type.+ipToPort :: Lens' IPPermission (Maybe Int)+ipToPort = lens _ipToPort (\ s a -> s{_ipToPort = a});++-- | One or more IP ranges.+ipIPRanges :: Lens' IPPermission [IPRange]+ipIPRanges = lens _ipIPRanges (\ s a -> s{_ipIPRanges = a}) . _Default . _Coerce;++-- | The IP protocol name (for 'tcp', 'udp', and 'icmp') or number (see+-- <http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml Protocol Numbers>).+--+-- [EC2-VPC only] When you authorize or revoke security group rules, you+-- can use '-1' to specify all.+ipIPProtocol :: Lens' IPPermission Text+ipIPProtocol = lens _ipIPProtocol (\ s a -> s{_ipIPProtocol = a});++instance FromXML IPPermission where+        parseXML x+          = IPPermission' <$>+              (x .@? "fromPort") <*>+                (x .@? "groups" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "prefixListIds" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "toPort")+                <*>+                (x .@? "ipRanges" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@ "ipProtocol")++instance Hashable IPPermission++instance ToQuery IPPermission where+        toQuery IPPermission'{..}+          = mconcat+              ["FromPort" =: _ipFromPort,+               toQuery+                 (toQueryList "Groups" <$> _ipUserIdGroupPairs),+               toQuery+                 (toQueryList "PrefixListIds" <$> _ipPrefixListIds),+               "ToPort" =: _ipToPort,+               toQuery (toQueryList "IpRanges" <$> _ipIPRanges),+               "IpProtocol" =: _ipIPProtocol]++-- | Describes an IP range.+--+-- /See:/ 'ipRange' smart constructor.+newtype IPRange = IPRange'+    { _irCIdRIP :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'IPRange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'irCIdRIP'+ipRange+    :: Text -- ^ 'irCIdRIP'+    -> IPRange+ipRange pCIdRIP_ =+    IPRange'+    { _irCIdRIP = pCIdRIP_+    }++-- | The CIDR range. You can either specify a CIDR range or a source security+-- group, not both.+irCIdRIP :: Lens' IPRange Text+irCIdRIP = lens _irCIdRIP (\ s a -> s{_irCIdRIP = a});++instance FromXML IPRange where+        parseXML x = IPRange' <$> (x .@ "cidrIp")++instance Hashable IPRange++instance ToQuery IPRange where+        toQuery IPRange'{..}+          = mconcat ["CidrIp" =: _irCIdRIP]++-- | Describes the ID format for a resource.+--+-- /See:/ 'idFormat' smart constructor.+data IdFormat = IdFormat'+    { _ifUseLongIds :: !(Maybe Bool)+    , _ifDeadline   :: !(Maybe ISO8601)+    , _ifResource   :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'IdFormat' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ifUseLongIds'+--+-- * 'ifDeadline'+--+-- * 'ifResource'+idFormat+    :: IdFormat+idFormat =+    IdFormat'+    { _ifUseLongIds = Nothing+    , _ifDeadline = Nothing+    , _ifResource = Nothing+    }++-- | Indicates whether longer IDs (17-character IDs) are enabled for the+-- resource.+ifUseLongIds :: Lens' IdFormat (Maybe Bool)+ifUseLongIds = lens _ifUseLongIds (\ s a -> s{_ifUseLongIds = a});++-- | The date in UTC at which you are permanently switched over to using+-- longer IDs. If a deadline is not yet available for this resource type,+-- this field is not returned.+ifDeadline :: Lens' IdFormat (Maybe UTCTime)+ifDeadline = lens _ifDeadline (\ s a -> s{_ifDeadline = a}) . mapping _Time;++-- | The type of resource.+ifResource :: Lens' IdFormat (Maybe Text)+ifResource = lens _ifResource (\ s a -> s{_ifResource = a});++instance FromXML IdFormat where+        parseXML x+          = IdFormat' <$>+              (x .@? "useLongIds") <*> (x .@? "deadline") <*>+                (x .@? "resource")++instance Hashable IdFormat++-- | Describes an image.+--+-- /See:/ 'image' smart constructor.+data Image = Image'+    { _iPlatform            :: !(Maybe PlatformValues)+    , _iImageOwnerAlias     :: !(Maybe Text)+    , _iRAMDiskId           :: !(Maybe Text)+    , _iKernelId            :: !(Maybe Text)+    , _iRootDeviceName      :: !(Maybe Text)+    , _iSRIOVNetSupport     :: !(Maybe Text)+    , _iName                :: !(Maybe Text)+    , _iCreationDate        :: !(Maybe Text)+    , _iProductCodes        :: !(Maybe [ProductCode])+    , _iStateReason         :: !(Maybe StateReason)+    , _iDescription         :: !(Maybe Text)+    , _iBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])+    , _iTags                :: !(Maybe [Tag])+    , _iImageId             :: !Text+    , _iImageLocation       :: !Text+    , _iState               :: !ImageState+    , _iOwnerId             :: !Text+    , _iPublic              :: !Bool+    , _iArchitecture        :: !ArchitectureValues+    , _iImageType           :: !ImageTypeValues+    , _iRootDeviceType      :: !DeviceType+    , _iVirtualizationType  :: !VirtualizationType+    , _iHypervisor          :: !HypervisorType+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Image' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iPlatform'+--+-- * 'iImageOwnerAlias'+--+-- * 'iRAMDiskId'+--+-- * 'iKernelId'+--+-- * 'iRootDeviceName'+--+-- * 'iSRIOVNetSupport'+--+-- * 'iName'+--+-- * 'iCreationDate'+--+-- * 'iProductCodes'+--+-- * 'iStateReason'+--+-- * 'iDescription'+--+-- * 'iBlockDeviceMappings'+--+-- * 'iTags'+--+-- * 'iImageId'+--+-- * 'iImageLocation'+--+-- * 'iState'+--+-- * 'iOwnerId'+--+-- * 'iPublic'+--+-- * 'iArchitecture'+--+-- * 'iImageType'+--+-- * 'iRootDeviceType'+--+-- * 'iVirtualizationType'+--+-- * 'iHypervisor'+image+    :: Text -- ^ 'iImageId'+    -> Text -- ^ 'iImageLocation'+    -> ImageState -- ^ 'iState'+    -> Text -- ^ 'iOwnerId'+    -> Bool -- ^ 'iPublic'+    -> ArchitectureValues -- ^ 'iArchitecture'+    -> ImageTypeValues -- ^ 'iImageType'+    -> DeviceType -- ^ 'iRootDeviceType'+    -> VirtualizationType -- ^ 'iVirtualizationType'+    -> HypervisorType -- ^ 'iHypervisor'+    -> Image+image pImageId_ pImageLocation_ pState_ pOwnerId_ pPublic_ pArchitecture_ pImageType_ pRootDeviceType_ pVirtualizationType_ pHypervisor_ =+    Image'+    { _iPlatform = Nothing+    , _iImageOwnerAlias = Nothing+    , _iRAMDiskId = Nothing+    , _iKernelId = Nothing+    , _iRootDeviceName = Nothing+    , _iSRIOVNetSupport = Nothing+    , _iName = Nothing+    , _iCreationDate = Nothing+    , _iProductCodes = Nothing+    , _iStateReason = Nothing+    , _iDescription = Nothing+    , _iBlockDeviceMappings = Nothing+    , _iTags = Nothing+    , _iImageId = pImageId_+    , _iImageLocation = pImageLocation_+    , _iState = pState_+    , _iOwnerId = pOwnerId_+    , _iPublic = pPublic_+    , _iArchitecture = pArchitecture_+    , _iImageType = pImageType_+    , _iRootDeviceType = pRootDeviceType_+    , _iVirtualizationType = pVirtualizationType_+    , _iHypervisor = pHypervisor_+    }++-- | The value is 'Windows' for Windows AMIs; otherwise blank.+iPlatform :: Lens' Image (Maybe PlatformValues)+iPlatform = lens _iPlatform (\ s a -> s{_iPlatform = a});++-- | The AWS account alias (for example, 'amazon', 'self') or the AWS account+-- ID of the AMI owner.+iImageOwnerAlias :: Lens' Image (Maybe Text)+iImageOwnerAlias = lens _iImageOwnerAlias (\ s a -> s{_iImageOwnerAlias = a});++-- | The RAM disk associated with the image, if any. Only applicable for+-- machine images.+iRAMDiskId :: Lens' Image (Maybe Text)+iRAMDiskId = lens _iRAMDiskId (\ s a -> s{_iRAMDiskId = a});++-- | The kernel associated with the image, if any. Only applicable for+-- machine images.+iKernelId :: Lens' Image (Maybe Text)+iKernelId = lens _iKernelId (\ s a -> s{_iKernelId = a});++-- | The device name of the root device (for example, '\/dev\/sda1' or+-- '\/dev\/xvda').+iRootDeviceName :: Lens' Image (Maybe Text)+iRootDeviceName = lens _iRootDeviceName (\ s a -> s{_iRootDeviceName = a});++-- | Specifies whether enhanced networking is enabled.+iSRIOVNetSupport :: Lens' Image (Maybe Text)+iSRIOVNetSupport = lens _iSRIOVNetSupport (\ s a -> s{_iSRIOVNetSupport = a});++-- | The name of the AMI that was provided during image creation.+iName :: Lens' Image (Maybe Text)+iName = lens _iName (\ s a -> s{_iName = a});++-- | The date and time the image was created.+iCreationDate :: Lens' Image (Maybe Text)+iCreationDate = lens _iCreationDate (\ s a -> s{_iCreationDate = a});++-- | Any product codes associated with the AMI.+iProductCodes :: Lens' Image [ProductCode]+iProductCodes = lens _iProductCodes (\ s a -> s{_iProductCodes = a}) . _Default . _Coerce;++-- | The reason for the state change.+iStateReason :: Lens' Image (Maybe StateReason)+iStateReason = lens _iStateReason (\ s a -> s{_iStateReason = a});++-- | The description of the AMI that was provided during image creation.+iDescription :: Lens' Image (Maybe Text)+iDescription = lens _iDescription (\ s a -> s{_iDescription = a});++-- | Any block device mapping entries.+iBlockDeviceMappings :: Lens' Image [BlockDeviceMapping]+iBlockDeviceMappings = lens _iBlockDeviceMappings (\ s a -> s{_iBlockDeviceMappings = a}) . _Default . _Coerce;++-- | Any tags assigned to the image.+iTags :: Lens' Image [Tag]+iTags = lens _iTags (\ s a -> s{_iTags = a}) . _Default . _Coerce;++-- | The ID of the AMI.+iImageId :: Lens' Image Text+iImageId = lens _iImageId (\ s a -> s{_iImageId = a});++-- | The location of the AMI.+iImageLocation :: Lens' Image Text+iImageLocation = lens _iImageLocation (\ s a -> s{_iImageLocation = a});++-- | The current state of the AMI. If the state is 'available', the image is+-- successfully registered and can be used to launch an instance.+iState :: Lens' Image ImageState+iState = lens _iState (\ s a -> s{_iState = a});++-- | The AWS account ID of the image owner.+iOwnerId :: Lens' Image Text+iOwnerId = lens _iOwnerId (\ s a -> s{_iOwnerId = a});++-- | Indicates whether the image has public launch permissions. The value is+-- 'true' if this image has public launch permissions or 'false' if it has+-- only implicit and explicit launch permissions.+iPublic :: Lens' Image Bool+iPublic = lens _iPublic (\ s a -> s{_iPublic = a});++-- | The architecture of the image.+iArchitecture :: Lens' Image ArchitectureValues+iArchitecture = lens _iArchitecture (\ s a -> s{_iArchitecture = a});++-- | The type of image.+iImageType :: Lens' Image ImageTypeValues+iImageType = lens _iImageType (\ s a -> s{_iImageType = a});++-- | The type of root device used by the AMI. The AMI can use an EBS volume+-- or an instance store volume.+iRootDeviceType :: Lens' Image DeviceType+iRootDeviceType = lens _iRootDeviceType (\ s a -> s{_iRootDeviceType = a});++-- | The type of virtualization of the AMI.+iVirtualizationType :: Lens' Image VirtualizationType+iVirtualizationType = lens _iVirtualizationType (\ s a -> s{_iVirtualizationType = a});++-- | The hypervisor type of the image.+iHypervisor :: Lens' Image HypervisorType+iHypervisor = lens _iHypervisor (\ s a -> s{_iHypervisor = a});++instance FromXML Image where+        parseXML x+          = Image' <$>+              (x .@? "platform") <*> (x .@? "imageOwnerAlias") <*>+                (x .@? "ramdiskId")+                <*> (x .@? "kernelId")+                <*> (x .@? "rootDeviceName")+                <*> (x .@? "sriovNetSupport")+                <*> (x .@? "name")+                <*> (x .@? "creationDate")+                <*>+                (x .@? "productCodes" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "stateReason")+                <*> (x .@? "description")+                <*>+                (x .@? "blockDeviceMapping" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@ "imageId")+                <*> (x .@ "imageLocation")+                <*> (x .@ "imageState")+                <*> (x .@ "imageOwnerId")+                <*> (x .@ "isPublic")+                <*> (x .@ "architecture")+                <*> (x .@ "imageType")+                <*> (x .@ "rootDeviceType")+                <*> (x .@ "virtualizationType")+                <*> (x .@ "hypervisor")++instance Hashable Image++-- | Describes the disk container object for an import image task.+--+-- /See:/ 'imageDiskContainer' smart constructor.+data ImageDiskContainer = ImageDiskContainer'+    { _idcFormat      :: !(Maybe Text)+    , _idcURL         :: !(Maybe Text)+    , _idcDeviceName  :: !(Maybe Text)+    , _idcUserBucket  :: !(Maybe UserBucket)+    , _idcDescription :: !(Maybe Text)+    , _idcSnapshotId  :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ImageDiskContainer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'idcFormat'+--+-- * 'idcURL'+--+-- * 'idcDeviceName'+--+-- * 'idcUserBucket'+--+-- * 'idcDescription'+--+-- * 'idcSnapshotId'+imageDiskContainer+    :: ImageDiskContainer+imageDiskContainer =+    ImageDiskContainer'+    { _idcFormat = Nothing+    , _idcURL = Nothing+    , _idcDeviceName = Nothing+    , _idcUserBucket = Nothing+    , _idcDescription = Nothing+    , _idcSnapshotId = Nothing+    }++-- | The format of the disk image being imported.+--+-- Valid values: 'RAW' | 'VHD' | 'VMDK' | 'OVA'+idcFormat :: Lens' ImageDiskContainer (Maybe Text)+idcFormat = lens _idcFormat (\ s a -> s{_idcFormat = a});++-- | The URL to the Amazon S3-based disk image being imported. The URL can+-- either be a https URL (https:\/\/..) or an Amazon S3 URL (s3:\/\/..)+idcURL :: Lens' ImageDiskContainer (Maybe Text)+idcURL = lens _idcURL (\ s a -> s{_idcURL = a});++-- | The block device mapping for the disk.+idcDeviceName :: Lens' ImageDiskContainer (Maybe Text)+idcDeviceName = lens _idcDeviceName (\ s a -> s{_idcDeviceName = a});++-- | The S3 bucket for the disk image.+idcUserBucket :: Lens' ImageDiskContainer (Maybe UserBucket)+idcUserBucket = lens _idcUserBucket (\ s a -> s{_idcUserBucket = a});++-- | The description of the disk image.+idcDescription :: Lens' ImageDiskContainer (Maybe Text)+idcDescription = lens _idcDescription (\ s a -> s{_idcDescription = a});++-- | The ID of the EBS snapshot to be used for importing the snapshot.+idcSnapshotId :: Lens' ImageDiskContainer (Maybe Text)+idcSnapshotId = lens _idcSnapshotId (\ s a -> s{_idcSnapshotId = a});++instance Hashable ImageDiskContainer++instance ToQuery ImageDiskContainer where+        toQuery ImageDiskContainer'{..}+          = mconcat+              ["Format" =: _idcFormat, "Url" =: _idcURL,+               "DeviceName" =: _idcDeviceName,+               "UserBucket" =: _idcUserBucket,+               "Description" =: _idcDescription,+               "SnapshotId" =: _idcSnapshotId]++-- | Describes an import image task.+--+-- /See:/ 'importImageTask' smart constructor.+data ImportImageTask = ImportImageTask'+    { _iitStatus          :: !(Maybe Text)+    , _iitHypervisor      :: !(Maybe Text)+    , _iitPlatform        :: !(Maybe Text)+    , _iitProgress        :: !(Maybe Text)+    , _iitLicenseType     :: !(Maybe Text)+    , _iitSnapshotDetails :: !(Maybe [SnapshotDetail])+    , _iitStatusMessage   :: !(Maybe Text)+    , _iitImageId         :: !(Maybe Text)+    , _iitImportTaskId    :: !(Maybe Text)+    , _iitArchitecture    :: !(Maybe Text)+    , _iitDescription     :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ImportImageTask' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iitStatus'+--+-- * 'iitHypervisor'+--+-- * 'iitPlatform'+--+-- * 'iitProgress'+--+-- * 'iitLicenseType'+--+-- * 'iitSnapshotDetails'+--+-- * 'iitStatusMessage'+--+-- * 'iitImageId'+--+-- * 'iitImportTaskId'+--+-- * 'iitArchitecture'+--+-- * 'iitDescription'+importImageTask+    :: ImportImageTask+importImageTask =+    ImportImageTask'+    { _iitStatus = Nothing+    , _iitHypervisor = Nothing+    , _iitPlatform = Nothing+    , _iitProgress = Nothing+    , _iitLicenseType = Nothing+    , _iitSnapshotDetails = Nothing+    , _iitStatusMessage = Nothing+    , _iitImageId = Nothing+    , _iitImportTaskId = Nothing+    , _iitArchitecture = Nothing+    , _iitDescription = Nothing+    }++-- | A brief status for the import image task.+iitStatus :: Lens' ImportImageTask (Maybe Text)+iitStatus = lens _iitStatus (\ s a -> s{_iitStatus = a});++-- | The target hypervisor for the import task.+--+-- Valid values: 'xen'+iitHypervisor :: Lens' ImportImageTask (Maybe Text)+iitHypervisor = lens _iitHypervisor (\ s a -> s{_iitHypervisor = a});++-- | The description string for the import image task.+iitPlatform :: Lens' ImportImageTask (Maybe Text)+iitPlatform = lens _iitPlatform (\ s a -> s{_iitPlatform = a});++-- | The percentage of progress of the import image task.+iitProgress :: Lens' ImportImageTask (Maybe Text)+iitProgress = lens _iitProgress (\ s a -> s{_iitProgress = a});++-- | The license type of the virtual machine.+iitLicenseType :: Lens' ImportImageTask (Maybe Text)+iitLicenseType = lens _iitLicenseType (\ s a -> s{_iitLicenseType = a});++-- | Information about the snapshots.+iitSnapshotDetails :: Lens' ImportImageTask [SnapshotDetail]+iitSnapshotDetails = lens _iitSnapshotDetails (\ s a -> s{_iitSnapshotDetails = a}) . _Default . _Coerce;++-- | A descriptive status message for the import image task.+iitStatusMessage :: Lens' ImportImageTask (Maybe Text)+iitStatusMessage = lens _iitStatusMessage (\ s a -> s{_iitStatusMessage = a});++-- | The ID of the Amazon Machine Image (AMI) of the imported virtual+-- machine.+iitImageId :: Lens' ImportImageTask (Maybe Text)+iitImageId = lens _iitImageId (\ s a -> s{_iitImageId = a});++-- | The ID of the import image task.+iitImportTaskId :: Lens' ImportImageTask (Maybe Text)+iitImportTaskId = lens _iitImportTaskId (\ s a -> s{_iitImportTaskId = a});++-- | The architecture of the virtual machine.+--+-- Valid values: 'i386' | 'x86_64'+iitArchitecture :: Lens' ImportImageTask (Maybe Text)+iitArchitecture = lens _iitArchitecture (\ s a -> s{_iitArchitecture = a});++-- | A description of the import task.+iitDescription :: Lens' ImportImageTask (Maybe Text)+iitDescription = lens _iitDescription (\ s a -> s{_iitDescription = a});++instance FromXML ImportImageTask where+        parseXML x+          = ImportImageTask' <$>+              (x .@? "status") <*> (x .@? "hypervisor") <*>+                (x .@? "platform")+                <*> (x .@? "progress")+                <*> (x .@? "licenseType")+                <*>+                (x .@? "snapshotDetailSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "statusMessage")+                <*> (x .@? "imageId")+                <*> (x .@? "importTaskId")+                <*> (x .@? "architecture")+                <*> (x .@? "description")++instance Hashable ImportImageTask++-- | Describes the launch specification for VM import.+--+-- /See:/ 'importInstanceLaunchSpecification' smart constructor.+data ImportInstanceLaunchSpecification = ImportInstanceLaunchSpecification'+    { _iilsAdditionalInfo                    :: !(Maybe Text)+    , _iilsGroupNames                        :: !(Maybe [Text])+    , _iilsSubnetId                          :: !(Maybe Text)+    , _iilsInstanceType                      :: !(Maybe InstanceType)+    , _iilsGroupIds                          :: !(Maybe [Text])+    , _iilsUserData                          :: !(Maybe UserData)+    , _iilsMonitoring                        :: !(Maybe Bool)+    , _iilsPrivateIPAddress                  :: !(Maybe Text)+    , _iilsInstanceInitiatedShutdownBehavior :: !(Maybe ShutdownBehavior)+    , _iilsArchitecture                      :: !(Maybe ArchitectureValues)+    , _iilsPlacement                         :: !(Maybe Placement)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ImportInstanceLaunchSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iilsAdditionalInfo'+--+-- * 'iilsGroupNames'+--+-- * 'iilsSubnetId'+--+-- * 'iilsInstanceType'+--+-- * 'iilsGroupIds'+--+-- * 'iilsUserData'+--+-- * 'iilsMonitoring'+--+-- * 'iilsPrivateIPAddress'+--+-- * 'iilsInstanceInitiatedShutdownBehavior'+--+-- * 'iilsArchitecture'+--+-- * 'iilsPlacement'+importInstanceLaunchSpecification+    :: ImportInstanceLaunchSpecification+importInstanceLaunchSpecification =+    ImportInstanceLaunchSpecification'+    { _iilsAdditionalInfo = Nothing+    , _iilsGroupNames = Nothing+    , _iilsSubnetId = Nothing+    , _iilsInstanceType = Nothing+    , _iilsGroupIds = Nothing+    , _iilsUserData = Nothing+    , _iilsMonitoring = Nothing+    , _iilsPrivateIPAddress = Nothing+    , _iilsInstanceInitiatedShutdownBehavior = Nothing+    , _iilsArchitecture = Nothing+    , _iilsPlacement = Nothing+    }++-- | Reserved.+iilsAdditionalInfo :: Lens' ImportInstanceLaunchSpecification (Maybe Text)+iilsAdditionalInfo = lens _iilsAdditionalInfo (\ s a -> s{_iilsAdditionalInfo = a});++-- | One or more security group names.+iilsGroupNames :: Lens' ImportInstanceLaunchSpecification [Text]+iilsGroupNames = lens _iilsGroupNames (\ s a -> s{_iilsGroupNames = a}) . _Default . _Coerce;++-- | [EC2-VPC] The ID of the subnet in which to launch the instance.+iilsSubnetId :: Lens' ImportInstanceLaunchSpecification (Maybe Text)+iilsSubnetId = lens _iilsSubnetId (\ s a -> s{_iilsSubnetId = a});++-- | The instance type. For more information about the instance types that+-- you can import, see+-- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/VMImportPrerequisites.html Before You Get Started>+-- in the Amazon Elastic Compute Cloud User Guide.+iilsInstanceType :: Lens' ImportInstanceLaunchSpecification (Maybe InstanceType)+iilsInstanceType = lens _iilsInstanceType (\ s a -> s{_iilsInstanceType = a});++-- | One or more security group IDs.+iilsGroupIds :: Lens' ImportInstanceLaunchSpecification [Text]+iilsGroupIds = lens _iilsGroupIds (\ s a -> s{_iilsGroupIds = a}) . _Default . _Coerce;++-- | The Base64-encoded MIME user data to be made available to the instance.+iilsUserData :: Lens' ImportInstanceLaunchSpecification (Maybe UserData)+iilsUserData = lens _iilsUserData (\ s a -> s{_iilsUserData = a});++-- | Indicates whether monitoring is enabled.+iilsMonitoring :: Lens' ImportInstanceLaunchSpecification (Maybe Bool)+iilsMonitoring = lens _iilsMonitoring (\ s a -> s{_iilsMonitoring = a});++-- | [EC2-VPC] An available IP address from the IP address range of the+-- subnet.+iilsPrivateIPAddress :: Lens' ImportInstanceLaunchSpecification (Maybe Text)+iilsPrivateIPAddress = lens _iilsPrivateIPAddress (\ s a -> s{_iilsPrivateIPAddress = a});++-- | Indicates whether an instance stops or terminates when you initiate+-- shutdown from the instance (using the operating system command for+-- system shutdown).+iilsInstanceInitiatedShutdownBehavior :: Lens' ImportInstanceLaunchSpecification (Maybe ShutdownBehavior)+iilsInstanceInitiatedShutdownBehavior = lens _iilsInstanceInitiatedShutdownBehavior (\ s a -> s{_iilsInstanceInitiatedShutdownBehavior = a});++-- | The architecture of the instance.+iilsArchitecture :: Lens' ImportInstanceLaunchSpecification (Maybe ArchitectureValues)+iilsArchitecture = lens _iilsArchitecture (\ s a -> s{_iilsArchitecture = a});++-- | The placement information for the instance.+iilsPlacement :: Lens' ImportInstanceLaunchSpecification (Maybe Placement)+iilsPlacement = lens _iilsPlacement (\ s a -> s{_iilsPlacement = a});++instance Hashable ImportInstanceLaunchSpecification++instance ToQuery ImportInstanceLaunchSpecification+         where+        toQuery ImportInstanceLaunchSpecification'{..}+          = mconcat+              ["AdditionalInfo" =: _iilsAdditionalInfo,+               toQuery+                 (toQueryList "GroupName" <$> _iilsGroupNames),+               "SubnetId" =: _iilsSubnetId,+               "InstanceType" =: _iilsInstanceType,+               toQuery (toQueryList "GroupId" <$> _iilsGroupIds),+               "UserData" =: _iilsUserData,+               "Monitoring" =: _iilsMonitoring,+               "PrivateIpAddress" =: _iilsPrivateIPAddress,+               "InstanceInitiatedShutdownBehavior" =:+                 _iilsInstanceInitiatedShutdownBehavior,+               "Architecture" =: _iilsArchitecture,+               "Placement" =: _iilsPlacement]++-- | Describes an import instance task.+--+-- /See:/ 'importInstanceTaskDetails' smart constructor.+data ImportInstanceTaskDetails = ImportInstanceTaskDetails'+    { _iitdInstanceId  :: !(Maybe Text)+    , _iitdPlatform    :: !(Maybe PlatformValues)+    , _iitdDescription :: !(Maybe Text)+    , _iitdVolumes     :: ![ImportInstanceVolumeDetailItem]+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ImportInstanceTaskDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iitdInstanceId'+--+-- * 'iitdPlatform'+--+-- * 'iitdDescription'+--+-- * 'iitdVolumes'+importInstanceTaskDetails+    :: ImportInstanceTaskDetails+importInstanceTaskDetails =+    ImportInstanceTaskDetails'+    { _iitdInstanceId = Nothing+    , _iitdPlatform = Nothing+    , _iitdDescription = Nothing+    , _iitdVolumes = mempty+    }++-- | The ID of the instance.+iitdInstanceId :: Lens' ImportInstanceTaskDetails (Maybe Text)+iitdInstanceId = lens _iitdInstanceId (\ s a -> s{_iitdInstanceId = a});++-- | The instance operating system.+iitdPlatform :: Lens' ImportInstanceTaskDetails (Maybe PlatformValues)+iitdPlatform = lens _iitdPlatform (\ s a -> s{_iitdPlatform = a});++-- | A description of the task.+iitdDescription :: Lens' ImportInstanceTaskDetails (Maybe Text)+iitdDescription = lens _iitdDescription (\ s a -> s{_iitdDescription = a});++-- | One or more volumes.+iitdVolumes :: Lens' ImportInstanceTaskDetails [ImportInstanceVolumeDetailItem]+iitdVolumes = lens _iitdVolumes (\ s a -> s{_iitdVolumes = a}) . _Coerce;++instance FromXML ImportInstanceTaskDetails where+        parseXML x+          = ImportInstanceTaskDetails' <$>+              (x .@? "instanceId") <*> (x .@? "platform") <*>+                (x .@? "description")+                <*>+                (x .@? "volumes" .!@ mempty >>= parseXMLList "item")++instance Hashable ImportInstanceTaskDetails++-- | Describes an import volume task.+--+-- /See:/ 'importInstanceVolumeDetailItem' smart constructor.+data ImportInstanceVolumeDetailItem = ImportInstanceVolumeDetailItem'+    { _iivdiStatusMessage    :: !(Maybe Text)+    , _iivdiDescription      :: !(Maybe Text)+    , _iivdiBytesConverted   :: !Integer+    , _iivdiAvailabilityZone :: !Text+    , _iivdiImage            :: !DiskImageDescription+    , _iivdiVolume           :: !DiskImageVolumeDescription+    , _iivdiStatus           :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ImportInstanceVolumeDetailItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iivdiStatusMessage'+--+-- * 'iivdiDescription'+--+-- * 'iivdiBytesConverted'+--+-- * 'iivdiAvailabilityZone'+--+-- * 'iivdiImage'+--+-- * 'iivdiVolume'+--+-- * 'iivdiStatus'+importInstanceVolumeDetailItem+    :: Integer -- ^ 'iivdiBytesConverted'+    -> Text -- ^ 'iivdiAvailabilityZone'+    -> DiskImageDescription -- ^ 'iivdiImage'+    -> DiskImageVolumeDescription -- ^ 'iivdiVolume'+    -> Text -- ^ 'iivdiStatus'+    -> ImportInstanceVolumeDetailItem+importInstanceVolumeDetailItem pBytesConverted_ pAvailabilityZone_ pImage_ pVolume_ pStatus_ =+    ImportInstanceVolumeDetailItem'+    { _iivdiStatusMessage = Nothing+    , _iivdiDescription = Nothing+    , _iivdiBytesConverted = pBytesConverted_+    , _iivdiAvailabilityZone = pAvailabilityZone_+    , _iivdiImage = pImage_+    , _iivdiVolume = pVolume_+    , _iivdiStatus = pStatus_+    }++-- | The status information or errors related to the disk image.+iivdiStatusMessage :: Lens' ImportInstanceVolumeDetailItem (Maybe Text)+iivdiStatusMessage = lens _iivdiStatusMessage (\ s a -> s{_iivdiStatusMessage = a});++-- | A description of the task.+iivdiDescription :: Lens' ImportInstanceVolumeDetailItem (Maybe Text)+iivdiDescription = lens _iivdiDescription (\ s a -> s{_iivdiDescription = a});++-- | The number of bytes converted so far.+iivdiBytesConverted :: Lens' ImportInstanceVolumeDetailItem Integer+iivdiBytesConverted = lens _iivdiBytesConverted (\ s a -> s{_iivdiBytesConverted = a});++-- | The Availability Zone where the resulting instance will reside.+iivdiAvailabilityZone :: Lens' ImportInstanceVolumeDetailItem Text+iivdiAvailabilityZone = lens _iivdiAvailabilityZone (\ s a -> s{_iivdiAvailabilityZone = a});++-- | The image.+iivdiImage :: Lens' ImportInstanceVolumeDetailItem DiskImageDescription+iivdiImage = lens _iivdiImage (\ s a -> s{_iivdiImage = a});++-- | The volume.+iivdiVolume :: Lens' ImportInstanceVolumeDetailItem DiskImageVolumeDescription+iivdiVolume = lens _iivdiVolume (\ s a -> s{_iivdiVolume = a});++-- | The status of the import of this particular disk image.+iivdiStatus :: Lens' ImportInstanceVolumeDetailItem Text+iivdiStatus = lens _iivdiStatus (\ s a -> s{_iivdiStatus = a});++instance FromXML ImportInstanceVolumeDetailItem where+        parseXML x+          = ImportInstanceVolumeDetailItem' <$>+              (x .@? "statusMessage") <*> (x .@? "description") <*>+                (x .@ "bytesConverted")+                <*> (x .@ "availabilityZone")+                <*> (x .@ "image")+                <*> (x .@ "volume")+                <*> (x .@ "status")++instance Hashable ImportInstanceVolumeDetailItem++-- | Describes an import snapshot task.+--+-- /See:/ 'importSnapshotTask' smart constructor.+data ImportSnapshotTask = ImportSnapshotTask'+    { _istSnapshotTaskDetail :: !(Maybe SnapshotTaskDetail)+    , _istImportTaskId       :: !(Maybe Text)+    , _istDescription        :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ImportSnapshotTask' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'istSnapshotTaskDetail'+--+-- * 'istImportTaskId'+--+-- * 'istDescription'+importSnapshotTask+    :: ImportSnapshotTask+importSnapshotTask =+    ImportSnapshotTask'+    { _istSnapshotTaskDetail = Nothing+    , _istImportTaskId = Nothing+    , _istDescription = Nothing+    }++-- | Describes an import snapshot task.+istSnapshotTaskDetail :: Lens' ImportSnapshotTask (Maybe SnapshotTaskDetail)+istSnapshotTaskDetail = lens _istSnapshotTaskDetail (\ s a -> s{_istSnapshotTaskDetail = a});++-- | The ID of the import snapshot task.+istImportTaskId :: Lens' ImportSnapshotTask (Maybe Text)+istImportTaskId = lens _istImportTaskId (\ s a -> s{_istImportTaskId = a});++-- | A description of the import snapshot task.+istDescription :: Lens' ImportSnapshotTask (Maybe Text)+istDescription = lens _istDescription (\ s a -> s{_istDescription = a});++instance FromXML ImportSnapshotTask where+        parseXML x+          = ImportSnapshotTask' <$>+              (x .@? "snapshotTaskDetail") <*>+                (x .@? "importTaskId")+                <*> (x .@? "description")++instance Hashable ImportSnapshotTask++-- | Describes an import volume task.+--+-- /See:/ 'importVolumeTaskDetails' smart constructor.+data ImportVolumeTaskDetails = ImportVolumeTaskDetails'+    { _ivtdDescription      :: !(Maybe Text)+    , _ivtdBytesConverted   :: !Integer+    , _ivtdAvailabilityZone :: !Text+    , _ivtdImage            :: !DiskImageDescription+    , _ivtdVolume           :: !DiskImageVolumeDescription+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ImportVolumeTaskDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ivtdDescription'+--+-- * 'ivtdBytesConverted'+--+-- * 'ivtdAvailabilityZone'+--+-- * 'ivtdImage'+--+-- * 'ivtdVolume'+importVolumeTaskDetails+    :: Integer -- ^ 'ivtdBytesConverted'+    -> Text -- ^ 'ivtdAvailabilityZone'+    -> DiskImageDescription -- ^ 'ivtdImage'+    -> DiskImageVolumeDescription -- ^ 'ivtdVolume'+    -> ImportVolumeTaskDetails+importVolumeTaskDetails pBytesConverted_ pAvailabilityZone_ pImage_ pVolume_ =+    ImportVolumeTaskDetails'+    { _ivtdDescription = Nothing+    , _ivtdBytesConverted = pBytesConverted_+    , _ivtdAvailabilityZone = pAvailabilityZone_+    , _ivtdImage = pImage_+    , _ivtdVolume = pVolume_+    }++-- | The description you provided when starting the import volume task.+ivtdDescription :: Lens' ImportVolumeTaskDetails (Maybe Text)+ivtdDescription = lens _ivtdDescription (\ s a -> s{_ivtdDescription = a});++-- | The number of bytes converted so far.+ivtdBytesConverted :: Lens' ImportVolumeTaskDetails Integer+ivtdBytesConverted = lens _ivtdBytesConverted (\ s a -> s{_ivtdBytesConverted = a});++-- | The Availability Zone where the resulting volume will reside.+ivtdAvailabilityZone :: Lens' ImportVolumeTaskDetails Text+ivtdAvailabilityZone = lens _ivtdAvailabilityZone (\ s a -> s{_ivtdAvailabilityZone = a});++-- | The image.+ivtdImage :: Lens' ImportVolumeTaskDetails DiskImageDescription+ivtdImage = lens _ivtdImage (\ s a -> s{_ivtdImage = a});++-- | The volume.+ivtdVolume :: Lens' ImportVolumeTaskDetails DiskImageVolumeDescription+ivtdVolume = lens _ivtdVolume (\ s a -> s{_ivtdVolume = a});++instance FromXML ImportVolumeTaskDetails where+        parseXML x+          = ImportVolumeTaskDetails' <$>+              (x .@? "description") <*> (x .@ "bytesConverted") <*>+                (x .@ "availabilityZone")+                <*> (x .@ "image")+                <*> (x .@ "volume")++instance Hashable ImportVolumeTaskDetails++-- | Describes an instance.+--+-- /See:/ 'instance'' smart constructor.+data Instance = Instance'+    { _insPublicDNSName         :: !(Maybe Text)+    , _insPlatform              :: !(Maybe PlatformValues)+    , _insSecurityGroups        :: !(Maybe [GroupIdentifier])+    , _insClientToken           :: !(Maybe Text)+    , _insSourceDestCheck       :: !(Maybe Bool)+    , _insVPCId                 :: !(Maybe Text)+    , _insKeyName               :: !(Maybe Text)+    , _insNetworkInterfaces     :: !(Maybe [InstanceNetworkInterface])+    , _insRAMDiskId             :: !(Maybe Text)+    , _insSubnetId              :: !(Maybe Text)+    , _insKernelId              :: !(Maybe Text)+    , _insRootDeviceName        :: !(Maybe Text)+    , _insSRIOVNetSupport       :: !(Maybe Text)+    , _insEBSOptimized          :: !(Maybe Bool)+    , _insStateTransitionReason :: !(Maybe Text)+    , _insInstanceLifecycle     :: !(Maybe InstanceLifecycleType)+    , _insIAMInstanceProfile    :: !(Maybe IAMInstanceProfile)+    , _insPrivateIPAddress      :: !(Maybe Text)+    , _insProductCodes          :: !(Maybe [ProductCode])+    , _insSpotInstanceRequestId :: !(Maybe Text)+    , _insPrivateDNSName        :: !(Maybe Text)+    , _insStateReason           :: !(Maybe StateReason)+    , _insBlockDeviceMappings   :: !(Maybe [InstanceBlockDeviceMapping])+    , _insPublicIPAddress       :: !(Maybe Text)+    , _insTags                  :: !(Maybe [Tag])+    , _insInstanceId            :: !Text+    , _insImageId               :: !Text+    , _insAMILaunchIndex        :: !Int+    , _insInstanceType          :: !InstanceType+    , _insLaunchTime            :: !ISO8601+    , _insPlacement             :: !Placement+    , _insMonitoring            :: !Monitoring+    , _insArchitecture          :: !ArchitectureValues+    , _insRootDeviceType        :: !DeviceType+    , _insVirtualizationType    :: !VirtualizationType+    , _insHypervisor            :: !HypervisorType+    , _insState                 :: !InstanceState+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Instance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'insPublicDNSName'+--+-- * 'insPlatform'+--+-- * 'insSecurityGroups'+--+-- * 'insClientToken'+--+-- * 'insSourceDestCheck'+--+-- * 'insVPCId'+--+-- * 'insKeyName'+--+-- * 'insNetworkInterfaces'+--+-- * 'insRAMDiskId'+--+-- * 'insSubnetId'+--+-- * 'insKernelId'+--+-- * 'insRootDeviceName'+--+-- * 'insSRIOVNetSupport'+--+-- * 'insEBSOptimized'+--+-- * 'insStateTransitionReason'+--+-- * 'insInstanceLifecycle'+--+-- * 'insIAMInstanceProfile'+--+-- * 'insPrivateIPAddress'+--+-- * 'insProductCodes'+--+-- * 'insSpotInstanceRequestId'+--+-- * 'insPrivateDNSName'+--+-- * 'insStateReason'+--+-- * 'insBlockDeviceMappings'+--+-- * 'insPublicIPAddress'+--+-- * 'insTags'+--+-- * 'insInstanceId'+--+-- * 'insImageId'+--+-- * 'insAMILaunchIndex'+--+-- * 'insInstanceType'+--+-- * 'insLaunchTime'+--+-- * 'insPlacement'+--+-- * 'insMonitoring'+--+-- * 'insArchitecture'+--+-- * 'insRootDeviceType'+--+-- * 'insVirtualizationType'+--+-- * 'insHypervisor'+--+-- * 'insState'+instance'+    :: Text -- ^ 'insInstanceId'+    -> Text -- ^ 'insImageId'+    -> Int -- ^ 'insAMILaunchIndex'+    -> InstanceType -- ^ 'insInstanceType'+    -> UTCTime -- ^ 'insLaunchTime'+    -> Placement -- ^ 'insPlacement'+    -> Monitoring -- ^ 'insMonitoring'+    -> ArchitectureValues -- ^ 'insArchitecture'+    -> DeviceType -- ^ 'insRootDeviceType'+    -> VirtualizationType -- ^ 'insVirtualizationType'+    -> HypervisorType -- ^ 'insHypervisor'+    -> InstanceState -- ^ 'insState'+    -> Instance+instance' pInstanceId_ pImageId_ pAMILaunchIndex_ pInstanceType_ pLaunchTime_ pPlacement_ pMonitoring_ pArchitecture_ pRootDeviceType_ pVirtualizationType_ pHypervisor_ pState_ =+    Instance'+    { _insPublicDNSName = Nothing+    , _insPlatform = Nothing+    , _insSecurityGroups = Nothing+    , _insClientToken = Nothing+    , _insSourceDestCheck = Nothing+    , _insVPCId = Nothing+    , _insKeyName = Nothing+    , _insNetworkInterfaces = Nothing+    , _insRAMDiskId = Nothing+    , _insSubnetId = Nothing+    , _insKernelId = Nothing+    , _insRootDeviceName = Nothing+    , _insSRIOVNetSupport = Nothing+    , _insEBSOptimized = Nothing+    , _insStateTransitionReason = Nothing+    , _insInstanceLifecycle = Nothing+    , _insIAMInstanceProfile = Nothing+    , _insPrivateIPAddress = Nothing+    , _insProductCodes = Nothing+    , _insSpotInstanceRequestId = Nothing+    , _insPrivateDNSName = Nothing+    , _insStateReason = Nothing+    , _insBlockDeviceMappings = Nothing+    , _insPublicIPAddress = Nothing+    , _insTags = Nothing+    , _insInstanceId = pInstanceId_+    , _insImageId = pImageId_+    , _insAMILaunchIndex = pAMILaunchIndex_+    , _insInstanceType = pInstanceType_+    , _insLaunchTime = _Time # pLaunchTime_+    , _insPlacement = pPlacement_+    , _insMonitoring = pMonitoring_+    , _insArchitecture = pArchitecture_+    , _insRootDeviceType = pRootDeviceType_+    , _insVirtualizationType = pVirtualizationType_+    , _insHypervisor = pHypervisor_+    , _insState = pState_+    }++-- | The public DNS name assigned to the instance. This name is not available+-- until the instance enters the 'running' state. For EC2-VPC, this name is+-- only available if you\'ve enabled DNS hostnames for your VPC.+insPublicDNSName :: Lens' Instance (Maybe Text)+insPublicDNSName = lens _insPublicDNSName (\ s a -> s{_insPublicDNSName = a});++-- | The value is 'Windows' for Windows instances; otherwise blank.+insPlatform :: Lens' Instance (Maybe PlatformValues)+insPlatform = lens _insPlatform (\ s a -> s{_insPlatform = a});++-- | One or more security groups for the instance.+insSecurityGroups :: Lens' Instance [GroupIdentifier]+insSecurityGroups = lens _insSecurityGroups (\ s a -> s{_insSecurityGroups = a}) . _Default . _Coerce;++-- | The idempotency token you provided when you launched the instance, if+-- applicable.+insClientToken :: Lens' Instance (Maybe Text)+insClientToken = lens _insClientToken (\ s a -> s{_insClientToken = a});++-- | Specifies whether to enable an instance launched in a VPC to perform+-- NAT. This controls whether source\/destination checking is enabled on+-- the instance. A value of 'true' means checking is enabled, and 'false'+-- means checking is disabled. The value must be 'false' for the instance+-- to perform NAT. For more information, see+-- <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html NAT Instances>+-- in the /Amazon Virtual Private Cloud User Guide/.+insSourceDestCheck :: Lens' Instance (Maybe Bool)+insSourceDestCheck = lens _insSourceDestCheck (\ s a -> s{_insSourceDestCheck = a});++-- | [EC2-VPC] The ID of the VPC in which the instance is running.+insVPCId :: Lens' Instance (Maybe Text)+insVPCId = lens _insVPCId (\ s a -> s{_insVPCId = a});++-- | The name of the key pair, if this instance was launched with an+-- associated key pair.+insKeyName :: Lens' Instance (Maybe Text)+insKeyName = lens _insKeyName (\ s a -> s{_insKeyName = a});++-- | [EC2-VPC] One or more network interfaces for the instance.+insNetworkInterfaces :: Lens' Instance [InstanceNetworkInterface]+insNetworkInterfaces = lens _insNetworkInterfaces (\ s a -> s{_insNetworkInterfaces = a}) . _Default . _Coerce;++-- | The RAM disk associated with this instance, if applicable.+insRAMDiskId :: Lens' Instance (Maybe Text)+insRAMDiskId = lens _insRAMDiskId (\ s a -> s{_insRAMDiskId = a});++-- | [EC2-VPC] The ID of the subnet in which the instance is running.+insSubnetId :: Lens' Instance (Maybe Text)+insSubnetId = lens _insSubnetId (\ s a -> s{_insSubnetId = a});++-- | The kernel associated with this instance, if applicable.+insKernelId :: Lens' Instance (Maybe Text)+insKernelId = lens _insKernelId (\ s a -> s{_insKernelId = a});++-- | The root device name (for example, '\/dev\/sda1' or '\/dev\/xvda').+insRootDeviceName :: Lens' Instance (Maybe Text)+insRootDeviceName = lens _insRootDeviceName (\ s a -> s{_insRootDeviceName = a});++-- | Specifies whether enhanced networking is enabled.+insSRIOVNetSupport :: Lens' Instance (Maybe Text)+insSRIOVNetSupport = lens _insSRIOVNetSupport (\ s a -> s{_insSRIOVNetSupport = a});++-- | Indicates whether the instance is optimized for EBS I\/O. This+-- optimization provides dedicated throughput to Amazon EBS and an+-- optimized configuration stack to provide optimal I\/O performance. This+-- optimization isn\'t available with all instance types. Additional usage+-- charges apply when using an EBS Optimized instance.+insEBSOptimized :: Lens' Instance (Maybe Bool)+insEBSOptimized = lens _insEBSOptimized (\ s a -> s{_insEBSOptimized = a});++-- | The reason for the most recent state transition. This might be an empty+-- string.+insStateTransitionReason :: Lens' Instance (Maybe Text)+insStateTransitionReason = lens _insStateTransitionReason (\ s a -> s{_insStateTransitionReason = a});++-- | Indicates whether this is a Spot instance or a Scheduled Instance.+insInstanceLifecycle :: Lens' Instance (Maybe InstanceLifecycleType)+insInstanceLifecycle = lens _insInstanceLifecycle (\ s a -> s{_insInstanceLifecycle = a});++-- | The IAM instance profile associated with the instance, if applicable.+insIAMInstanceProfile :: Lens' Instance (Maybe IAMInstanceProfile)+insIAMInstanceProfile = lens _insIAMInstanceProfile (\ s a -> s{_insIAMInstanceProfile = a});++-- | The private IP address assigned to the instance.+insPrivateIPAddress :: Lens' Instance (Maybe Text)+insPrivateIPAddress = lens _insPrivateIPAddress (\ s a -> s{_insPrivateIPAddress = a});++-- | The product codes attached to this instance, if applicable.+insProductCodes :: Lens' Instance [ProductCode]+insProductCodes = lens _insProductCodes (\ s a -> s{_insProductCodes = a}) . _Default . _Coerce;++-- | If the request is a Spot instance request, the ID of the request.+insSpotInstanceRequestId :: Lens' Instance (Maybe Text)+insSpotInstanceRequestId = lens _insSpotInstanceRequestId (\ s a -> s{_insSpotInstanceRequestId = a});++-- | The private DNS name assigned to the instance. This DNS name can only be+-- used inside the Amazon EC2 network. This name is not available until the+-- instance enters the 'running' state. For EC2-VPC, this name is only+-- available if you\'ve enabled DNS hostnames for your VPC.+insPrivateDNSName :: Lens' Instance (Maybe Text)+insPrivateDNSName = lens _insPrivateDNSName (\ s a -> s{_insPrivateDNSName = a});++-- | The reason for the most recent state transition.+insStateReason :: Lens' Instance (Maybe StateReason)+insStateReason = lens _insStateReason (\ s a -> s{_insStateReason = a});++-- | Any block device mapping entries for the instance.+insBlockDeviceMappings :: Lens' Instance [InstanceBlockDeviceMapping]+insBlockDeviceMappings = lens _insBlockDeviceMappings (\ s a -> s{_insBlockDeviceMappings = a}) . _Default . _Coerce;++-- | The public IP address assigned to the instance, if applicable.+insPublicIPAddress :: Lens' Instance (Maybe Text)+insPublicIPAddress = lens _insPublicIPAddress (\ s a -> s{_insPublicIPAddress = a});++-- | Any tags assigned to the instance.+insTags :: Lens' Instance [Tag]+insTags = lens _insTags (\ s a -> s{_insTags = a}) . _Default . _Coerce;++-- | The ID of the instance.+insInstanceId :: Lens' Instance Text+insInstanceId = lens _insInstanceId (\ s a -> s{_insInstanceId = a});++-- | The ID of the AMI used to launch the instance.+insImageId :: Lens' Instance Text+insImageId = lens _insImageId (\ s a -> s{_insImageId = a});++-- | The AMI launch index, which can be used to find this instance in the+-- launch group.+insAMILaunchIndex :: Lens' Instance Int+insAMILaunchIndex = lens _insAMILaunchIndex (\ s a -> s{_insAMILaunchIndex = a});++-- | The instance type.+insInstanceType :: Lens' Instance InstanceType+insInstanceType = lens _insInstanceType (\ s a -> s{_insInstanceType = a});++-- | The time the instance was launched.+insLaunchTime :: Lens' Instance UTCTime+insLaunchTime = lens _insLaunchTime (\ s a -> s{_insLaunchTime = a}) . _Time;++-- | The location where the instance launched, if applicable.+insPlacement :: Lens' Instance Placement+insPlacement = lens _insPlacement (\ s a -> s{_insPlacement = a});++-- | The monitoring information for the instance.+insMonitoring :: Lens' Instance Monitoring+insMonitoring = lens _insMonitoring (\ s a -> s{_insMonitoring = a});++-- | The architecture of the image.+insArchitecture :: Lens' Instance ArchitectureValues+insArchitecture = lens _insArchitecture (\ s a -> s{_insArchitecture = a});++-- | The root device type used by the AMI. The AMI can use an EBS volume or+-- an instance store volume.+insRootDeviceType :: Lens' Instance DeviceType+insRootDeviceType = lens _insRootDeviceType (\ s a -> s{_insRootDeviceType = a});++-- | The virtualization type of the instance.+insVirtualizationType :: Lens' Instance VirtualizationType+insVirtualizationType = lens _insVirtualizationType (\ s a -> s{_insVirtualizationType = a});++-- | The hypervisor type of the instance.+insHypervisor :: Lens' Instance HypervisorType+insHypervisor = lens _insHypervisor (\ s a -> s{_insHypervisor = a});++-- | The current state of the instance.+insState :: Lens' Instance InstanceState+insState = lens _insState (\ s a -> s{_insState = a});++instance FromXML Instance where+        parseXML x+          = Instance' <$>+              (x .@? "dnsName") <*> (x .@? "platform") <*>+                (x .@? "groupSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "clientToken")+                <*> (x .@? "sourceDestCheck")+                <*> (x .@? "vpcId")+                <*> (x .@? "keyName")+                <*>+                (x .@? "networkInterfaceSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "ramdiskId")+                <*> (x .@? "subnetId")+                <*> (x .@? "kernelId")+                <*> (x .@? "rootDeviceName")+                <*> (x .@? "sriovNetSupport")+                <*> (x .@? "ebsOptimized")+                <*> (x .@? "reason")+                <*> (x .@? "instanceLifecycle")+                <*> (x .@? "iamInstanceProfile")+                <*> (x .@? "privateIpAddress")+                <*>+                (x .@? "productCodes" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "spotInstanceRequestId")+                <*> (x .@? "privateDnsName")+                <*> (x .@? "stateReason")+                <*>+                (x .@? "blockDeviceMapping" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "ipAddress")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@ "instanceId")+                <*> (x .@ "imageId")+                <*> (x .@ "amiLaunchIndex")+                <*> (x .@ "instanceType")+                <*> (x .@ "launchTime")+                <*> (x .@ "placement")+                <*> (x .@ "monitoring")+                <*> (x .@ "architecture")+                <*> (x .@ "rootDeviceType")+                <*> (x .@ "virtualizationType")+                <*> (x .@ "hypervisor")+                <*> (x .@ "instanceState")++instance Hashable Instance++-- | Describes a block device mapping.+--+-- /See:/ 'instanceBlockDeviceMapping' smart constructor.+data InstanceBlockDeviceMapping = InstanceBlockDeviceMapping'+    { _ibdmEBS        :: !(Maybe EBSInstanceBlockDevice)+    , _ibdmDeviceName :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceBlockDeviceMapping' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ibdmEBS'+--+-- * 'ibdmDeviceName'+instanceBlockDeviceMapping+    :: InstanceBlockDeviceMapping+instanceBlockDeviceMapping =+    InstanceBlockDeviceMapping'+    { _ibdmEBS = Nothing+    , _ibdmDeviceName = Nothing+    }++-- | Parameters used to automatically set up EBS volumes when the instance is+-- launched.+ibdmEBS :: Lens' InstanceBlockDeviceMapping (Maybe EBSInstanceBlockDevice)+ibdmEBS = lens _ibdmEBS (\ s a -> s{_ibdmEBS = a});++-- | The device name exposed to the instance (for example, '\/dev\/sdh' or+-- 'xvdh').+ibdmDeviceName :: Lens' InstanceBlockDeviceMapping (Maybe Text)+ibdmDeviceName = lens _ibdmDeviceName (\ s a -> s{_ibdmDeviceName = a});++instance FromXML InstanceBlockDeviceMapping where+        parseXML x+          = InstanceBlockDeviceMapping' <$>+              (x .@? "ebs") <*> (x .@? "deviceName")++instance Hashable InstanceBlockDeviceMapping++-- | Describes a block device mapping entry.+--+-- /See:/ 'instanceBlockDeviceMappingSpecification' smart constructor.+data InstanceBlockDeviceMappingSpecification = InstanceBlockDeviceMappingSpecification'+    { _ibdmsVirtualName :: !(Maybe Text)+    , _ibdmsNoDevice    :: !(Maybe Text)+    , _ibdmsEBS         :: !(Maybe EBSInstanceBlockDeviceSpecification)+    , _ibdmsDeviceName  :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceBlockDeviceMappingSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ibdmsVirtualName'+--+-- * 'ibdmsNoDevice'+--+-- * 'ibdmsEBS'+--+-- * 'ibdmsDeviceName'+instanceBlockDeviceMappingSpecification+    :: InstanceBlockDeviceMappingSpecification+instanceBlockDeviceMappingSpecification =+    InstanceBlockDeviceMappingSpecification'+    { _ibdmsVirtualName = Nothing+    , _ibdmsNoDevice = Nothing+    , _ibdmsEBS = Nothing+    , _ibdmsDeviceName = Nothing+    }++-- | The virtual device name.+ibdmsVirtualName :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)+ibdmsVirtualName = lens _ibdmsVirtualName (\ s a -> s{_ibdmsVirtualName = a});++-- | suppress the specified device included in the block device mapping.+ibdmsNoDevice :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)+ibdmsNoDevice = lens _ibdmsNoDevice (\ s a -> s{_ibdmsNoDevice = a});++-- | Parameters used to automatically set up EBS volumes when the instance is+-- launched.+ibdmsEBS :: Lens' InstanceBlockDeviceMappingSpecification (Maybe EBSInstanceBlockDeviceSpecification)+ibdmsEBS = lens _ibdmsEBS (\ s a -> s{_ibdmsEBS = a});++-- | The device name exposed to the instance (for example, '\/dev\/sdh' or+-- 'xvdh').+ibdmsDeviceName :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)+ibdmsDeviceName = lens _ibdmsDeviceName (\ s a -> s{_ibdmsDeviceName = a});++instance Hashable+         InstanceBlockDeviceMappingSpecification++instance ToQuery+         InstanceBlockDeviceMappingSpecification where+        toQuery InstanceBlockDeviceMappingSpecification'{..}+          = mconcat+              ["VirtualName" =: _ibdmsVirtualName,+               "NoDevice" =: _ibdmsNoDevice, "Ebs" =: _ibdmsEBS,+               "DeviceName" =: _ibdmsDeviceName]++-- | Information about the instance type that the Dedicated host supports.+--+-- /See:/ 'instanceCapacity' smart constructor.+data InstanceCapacity = InstanceCapacity'+    { _icAvailableCapacity :: !(Maybe Int)+    , _icInstanceType      :: !(Maybe Text)+    , _icTotalCapacity     :: !(Maybe Int)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceCapacity' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'icAvailableCapacity'+--+-- * 'icInstanceType'+--+-- * 'icTotalCapacity'+instanceCapacity+    :: InstanceCapacity+instanceCapacity =+    InstanceCapacity'+    { _icAvailableCapacity = Nothing+    , _icInstanceType = Nothing+    , _icTotalCapacity = Nothing+    }++-- | The number of instances that can still be launched onto the Dedicated+-- host.+icAvailableCapacity :: Lens' InstanceCapacity (Maybe Int)+icAvailableCapacity = lens _icAvailableCapacity (\ s a -> s{_icAvailableCapacity = a});++-- | The instance type size supported by the Dedicated host.+icInstanceType :: Lens' InstanceCapacity (Maybe Text)+icInstanceType = lens _icInstanceType (\ s a -> s{_icInstanceType = a});++-- | The total number of instances that can be launched onto the Dedicated+-- host.+icTotalCapacity :: Lens' InstanceCapacity (Maybe Int)+icTotalCapacity = lens _icTotalCapacity (\ s a -> s{_icTotalCapacity = a});++instance FromXML InstanceCapacity where+        parseXML x+          = InstanceCapacity' <$>+              (x .@? "availableCapacity") <*>+                (x .@? "instanceType")+                <*> (x .@? "totalCapacity")++instance Hashable InstanceCapacity++-- | Describes a Reserved Instance listing state.+--+-- /See:/ 'instanceCount' smart constructor.+data InstanceCount = InstanceCount'+    { _icState         :: !(Maybe ListingState)+    , _icInstanceCount :: !(Maybe Int)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceCount' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'icState'+--+-- * 'icInstanceCount'+instanceCount+    :: InstanceCount+instanceCount =+    InstanceCount'+    { _icState = Nothing+    , _icInstanceCount = Nothing+    }++-- | The states of the listed Reserved Instances.+icState :: Lens' InstanceCount (Maybe ListingState)+icState = lens _icState (\ s a -> s{_icState = a});++-- | The number of listed Reserved Instances in the state specified by the+-- 'state'.+icInstanceCount :: Lens' InstanceCount (Maybe Int)+icInstanceCount = lens _icInstanceCount (\ s a -> s{_icInstanceCount = a});++instance FromXML InstanceCount where+        parseXML x+          = InstanceCount' <$>+              (x .@? "state") <*> (x .@? "instanceCount")++instance Hashable InstanceCount++-- | Describes an instance to export.+--+-- /See:/ 'instanceExportDetails' smart constructor.+data InstanceExportDetails = InstanceExportDetails'+    { _iedTargetEnvironment :: !(Maybe ExportEnvironment)+    , _iedInstanceId        :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceExportDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iedTargetEnvironment'+--+-- * 'iedInstanceId'+instanceExportDetails+    :: InstanceExportDetails+instanceExportDetails =+    InstanceExportDetails'+    { _iedTargetEnvironment = Nothing+    , _iedInstanceId = Nothing+    }++-- | The target virtualization environment.+iedTargetEnvironment :: Lens' InstanceExportDetails (Maybe ExportEnvironment)+iedTargetEnvironment = lens _iedTargetEnvironment (\ s a -> s{_iedTargetEnvironment = a});++-- | The ID of the resource being exported.+iedInstanceId :: Lens' InstanceExportDetails (Maybe Text)+iedInstanceId = lens _iedInstanceId (\ s a -> s{_iedInstanceId = a});++instance FromXML InstanceExportDetails where+        parseXML x+          = InstanceExportDetails' <$>+              (x .@? "targetEnvironment") <*> (x .@? "instanceId")++instance Hashable InstanceExportDetails++-- | Describes the monitoring information of the instance.+--+-- /See:/ 'instanceMonitoring' smart constructor.+data InstanceMonitoring = InstanceMonitoring'+    { _imInstanceId :: !(Maybe Text)+    , _imMonitoring :: !(Maybe Monitoring)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceMonitoring' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'imInstanceId'+--+-- * 'imMonitoring'+instanceMonitoring+    :: InstanceMonitoring+instanceMonitoring =+    InstanceMonitoring'+    { _imInstanceId = Nothing+    , _imMonitoring = Nothing+    }++-- | The ID of the instance.+imInstanceId :: Lens' InstanceMonitoring (Maybe Text)+imInstanceId = lens _imInstanceId (\ s a -> s{_imInstanceId = a});++-- | The monitoring information.+imMonitoring :: Lens' InstanceMonitoring (Maybe Monitoring)+imMonitoring = lens _imMonitoring (\ s a -> s{_imMonitoring = a});++instance FromXML InstanceMonitoring where+        parseXML x+          = InstanceMonitoring' <$>+              (x .@? "instanceId") <*> (x .@? "monitoring")++instance Hashable InstanceMonitoring++-- | Describes a network interface.+--+-- /See:/ 'instanceNetworkInterface' smart constructor.+data InstanceNetworkInterface = InstanceNetworkInterface'+    { _iniGroups             :: !(Maybe [GroupIdentifier])+    , _iniStatus             :: !(Maybe NetworkInterfaceStatus)+    , _iniPrivateIPAddresses :: !(Maybe [InstancePrivateIPAddress])+    , _iniSourceDestCheck    :: !(Maybe Bool)+    , _iniVPCId              :: !(Maybe Text)+    , _iniNetworkInterfaceId :: !(Maybe Text)+    , _iniSubnetId           :: !(Maybe Text)+    , _iniMACAddress         :: !(Maybe Text)+    , _iniAttachment         :: !(Maybe InstanceNetworkInterfaceAttachment)+    , _iniOwnerId            :: !(Maybe Text)+    , _iniPrivateIPAddress   :: !(Maybe Text)+    , _iniPrivateDNSName     :: !(Maybe Text)+    , _iniDescription        :: !(Maybe Text)+    , _iniAssociation        :: !(Maybe InstanceNetworkInterfaceAssociation)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceNetworkInterface' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iniGroups'+--+-- * 'iniStatus'+--+-- * 'iniPrivateIPAddresses'+--+-- * 'iniSourceDestCheck'+--+-- * 'iniVPCId'+--+-- * 'iniNetworkInterfaceId'+--+-- * 'iniSubnetId'+--+-- * 'iniMACAddress'+--+-- * 'iniAttachment'+--+-- * 'iniOwnerId'+--+-- * 'iniPrivateIPAddress'+--+-- * 'iniPrivateDNSName'+--+-- * 'iniDescription'+--+-- * 'iniAssociation'+instanceNetworkInterface+    :: InstanceNetworkInterface+instanceNetworkInterface =+    InstanceNetworkInterface'+    { _iniGroups = Nothing+    , _iniStatus = Nothing+    , _iniPrivateIPAddresses = Nothing+    , _iniSourceDestCheck = Nothing+    , _iniVPCId = Nothing+    , _iniNetworkInterfaceId = Nothing+    , _iniSubnetId = Nothing+    , _iniMACAddress = Nothing+    , _iniAttachment = Nothing+    , _iniOwnerId = Nothing+    , _iniPrivateIPAddress = Nothing+    , _iniPrivateDNSName = Nothing+    , _iniDescription = Nothing+    , _iniAssociation = Nothing+    }++-- | One or more security groups.+iniGroups :: Lens' InstanceNetworkInterface [GroupIdentifier]+iniGroups = lens _iniGroups (\ s a -> s{_iniGroups = a}) . _Default . _Coerce;++-- | The status of the network interface.+iniStatus :: Lens' InstanceNetworkInterface (Maybe NetworkInterfaceStatus)+iniStatus = lens _iniStatus (\ s a -> s{_iniStatus = a});++-- | The private IP addresses associated with the network interface.+iniPrivateIPAddresses :: Lens' InstanceNetworkInterface [InstancePrivateIPAddress]+iniPrivateIPAddresses = lens _iniPrivateIPAddresses (\ s a -> s{_iniPrivateIPAddresses = a}) . _Default . _Coerce;++-- | Indicates whether to validate network traffic to or from this network+-- interface.+iniSourceDestCheck :: Lens' InstanceNetworkInterface (Maybe Bool)+iniSourceDestCheck = lens _iniSourceDestCheck (\ s a -> s{_iniSourceDestCheck = a});++-- | The ID of the VPC.+iniVPCId :: Lens' InstanceNetworkInterface (Maybe Text)+iniVPCId = lens _iniVPCId (\ s a -> s{_iniVPCId = a});++-- | The ID of the network interface.+iniNetworkInterfaceId :: Lens' InstanceNetworkInterface (Maybe Text)+iniNetworkInterfaceId = lens _iniNetworkInterfaceId (\ s a -> s{_iniNetworkInterfaceId = a});++-- | The ID of the subnet.+iniSubnetId :: Lens' InstanceNetworkInterface (Maybe Text)+iniSubnetId = lens _iniSubnetId (\ s a -> s{_iniSubnetId = a});++-- | The MAC address.+iniMACAddress :: Lens' InstanceNetworkInterface (Maybe Text)+iniMACAddress = lens _iniMACAddress (\ s a -> s{_iniMACAddress = a});++-- | The network interface attachment.+iniAttachment :: Lens' InstanceNetworkInterface (Maybe InstanceNetworkInterfaceAttachment)+iniAttachment = lens _iniAttachment (\ s a -> s{_iniAttachment = a});++-- | The ID of the AWS account that created the network interface.+iniOwnerId :: Lens' InstanceNetworkInterface (Maybe Text)+iniOwnerId = lens _iniOwnerId (\ s a -> s{_iniOwnerId = a});++-- | The IP address of the network interface within the subnet.+iniPrivateIPAddress :: Lens' InstanceNetworkInterface (Maybe Text)+iniPrivateIPAddress = lens _iniPrivateIPAddress (\ s a -> s{_iniPrivateIPAddress = a});++-- | The private DNS name.+iniPrivateDNSName :: Lens' InstanceNetworkInterface (Maybe Text)+iniPrivateDNSName = lens _iniPrivateDNSName (\ s a -> s{_iniPrivateDNSName = a});++-- | The description.+iniDescription :: Lens' InstanceNetworkInterface (Maybe Text)+iniDescription = lens _iniDescription (\ s a -> s{_iniDescription = a});++-- | The association information for an Elastic IP associated with the+-- network interface.+iniAssociation :: Lens' InstanceNetworkInterface (Maybe InstanceNetworkInterfaceAssociation)+iniAssociation = lens _iniAssociation (\ s a -> s{_iniAssociation = a});++instance FromXML InstanceNetworkInterface where+        parseXML x+          = InstanceNetworkInterface' <$>+              (x .@? "groupSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "status")+                <*>+                (x .@? "privateIpAddressesSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "sourceDestCheck")+                <*> (x .@? "vpcId")+                <*> (x .@? "networkInterfaceId")+                <*> (x .@? "subnetId")+                <*> (x .@? "macAddress")+                <*> (x .@? "attachment")+                <*> (x .@? "ownerId")+                <*> (x .@? "privateIpAddress")+                <*> (x .@? "privateDnsName")+                <*> (x .@? "description")+                <*> (x .@? "association")++instance Hashable InstanceNetworkInterface++-- | Describes association information for an Elastic IP address.+--+-- /See:/ 'instanceNetworkInterfaceAssociation' smart constructor.+data InstanceNetworkInterfaceAssociation = InstanceNetworkInterfaceAssociation'+    { _iniaPublicDNSName :: !(Maybe Text)+    , _iniaIPOwnerId     :: !(Maybe Text)+    , _iniaPublicIP      :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceNetworkInterfaceAssociation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iniaPublicDNSName'+--+-- * 'iniaIPOwnerId'+--+-- * 'iniaPublicIP'+instanceNetworkInterfaceAssociation+    :: InstanceNetworkInterfaceAssociation+instanceNetworkInterfaceAssociation =+    InstanceNetworkInterfaceAssociation'+    { _iniaPublicDNSName = Nothing+    , _iniaIPOwnerId = Nothing+    , _iniaPublicIP = Nothing+    }++-- | The public DNS name.+iniaPublicDNSName :: Lens' InstanceNetworkInterfaceAssociation (Maybe Text)+iniaPublicDNSName = lens _iniaPublicDNSName (\ s a -> s{_iniaPublicDNSName = a});++-- | The ID of the owner of the Elastic IP address.+iniaIPOwnerId :: Lens' InstanceNetworkInterfaceAssociation (Maybe Text)+iniaIPOwnerId = lens _iniaIPOwnerId (\ s a -> s{_iniaIPOwnerId = a});++-- | The public IP address or Elastic IP address bound to the network+-- interface.+iniaPublicIP :: Lens' InstanceNetworkInterfaceAssociation (Maybe Text)+iniaPublicIP = lens _iniaPublicIP (\ s a -> s{_iniaPublicIP = a});++instance FromXML InstanceNetworkInterfaceAssociation+         where+        parseXML x+          = InstanceNetworkInterfaceAssociation' <$>+              (x .@? "publicDnsName") <*> (x .@? "ipOwnerId") <*>+                (x .@? "publicIp")++instance Hashable InstanceNetworkInterfaceAssociation++-- | Describes a network interface attachment.+--+-- /See:/ 'instanceNetworkInterfaceAttachment' smart constructor.+data InstanceNetworkInterfaceAttachment = InstanceNetworkInterfaceAttachment'+    { _iniaStatus              :: !(Maybe AttachmentStatus)+    , _iniaDeleteOnTermination :: !(Maybe Bool)+    , _iniaAttachmentId        :: !(Maybe Text)+    , _iniaAttachTime          :: !(Maybe ISO8601)+    , _iniaDeviceIndex         :: !(Maybe Int)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceNetworkInterfaceAttachment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iniaStatus'+--+-- * 'iniaDeleteOnTermination'+--+-- * 'iniaAttachmentId'+--+-- * 'iniaAttachTime'+--+-- * 'iniaDeviceIndex'+instanceNetworkInterfaceAttachment+    :: InstanceNetworkInterfaceAttachment+instanceNetworkInterfaceAttachment =+    InstanceNetworkInterfaceAttachment'+    { _iniaStatus = Nothing+    , _iniaDeleteOnTermination = Nothing+    , _iniaAttachmentId = Nothing+    , _iniaAttachTime = Nothing+    , _iniaDeviceIndex = Nothing+    }++-- | The attachment state.+iniaStatus :: Lens' InstanceNetworkInterfaceAttachment (Maybe AttachmentStatus)+iniaStatus = lens _iniaStatus (\ s a -> s{_iniaStatus = a});++-- | Indicates whether the network interface is deleted when the instance is+-- terminated.+iniaDeleteOnTermination :: Lens' InstanceNetworkInterfaceAttachment (Maybe Bool)+iniaDeleteOnTermination = lens _iniaDeleteOnTermination (\ s a -> s{_iniaDeleteOnTermination = a});++-- | The ID of the network interface attachment.+iniaAttachmentId :: Lens' InstanceNetworkInterfaceAttachment (Maybe Text)+iniaAttachmentId = lens _iniaAttachmentId (\ s a -> s{_iniaAttachmentId = a});++-- | The time stamp when the attachment initiated.+iniaAttachTime :: Lens' InstanceNetworkInterfaceAttachment (Maybe UTCTime)+iniaAttachTime = lens _iniaAttachTime (\ s a -> s{_iniaAttachTime = a}) . mapping _Time;++-- | The index of the device on the instance for the network interface+-- attachment.+iniaDeviceIndex :: Lens' InstanceNetworkInterfaceAttachment (Maybe Int)+iniaDeviceIndex = lens _iniaDeviceIndex (\ s a -> s{_iniaDeviceIndex = a});++instance FromXML InstanceNetworkInterfaceAttachment+         where+        parseXML x+          = InstanceNetworkInterfaceAttachment' <$>+              (x .@? "status") <*> (x .@? "deleteOnTermination")+                <*> (x .@? "attachmentId")+                <*> (x .@? "attachTime")+                <*> (x .@? "deviceIndex")++instance Hashable InstanceNetworkInterfaceAttachment++-- | Describes a network interface.+--+-- /See:/ 'instanceNetworkInterfaceSpecification' smart constructor.+data InstanceNetworkInterfaceSpecification = InstanceNetworkInterfaceSpecification'+    { _inisGroups                         :: !(Maybe [Text])+    , _inisPrivateIPAddresses             :: !(Maybe [PrivateIPAddressSpecification])+    , _inisDeleteOnTermination            :: !(Maybe Bool)+    , _inisAssociatePublicIPAddress       :: !(Maybe Bool)+    , _inisNetworkInterfaceId             :: !(Maybe Text)+    , _inisSubnetId                       :: !(Maybe Text)+    , _inisPrivateIPAddress               :: !(Maybe Text)+    , _inisSecondaryPrivateIPAddressCount :: !(Maybe Int)+    , _inisDescription                    :: !(Maybe Text)+    , _inisDeviceIndex                    :: !(Maybe Int)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceNetworkInterfaceSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'inisGroups'+--+-- * 'inisPrivateIPAddresses'+--+-- * 'inisDeleteOnTermination'+--+-- * 'inisAssociatePublicIPAddress'+--+-- * 'inisNetworkInterfaceId'+--+-- * 'inisSubnetId'+--+-- * 'inisPrivateIPAddress'+--+-- * 'inisSecondaryPrivateIPAddressCount'+--+-- * 'inisDescription'+--+-- * 'inisDeviceIndex'+instanceNetworkInterfaceSpecification+    :: InstanceNetworkInterfaceSpecification+instanceNetworkInterfaceSpecification =+    InstanceNetworkInterfaceSpecification'+    { _inisGroups = Nothing+    , _inisPrivateIPAddresses = Nothing+    , _inisDeleteOnTermination = Nothing+    , _inisAssociatePublicIPAddress = Nothing+    , _inisNetworkInterfaceId = Nothing+    , _inisSubnetId = Nothing+    , _inisPrivateIPAddress = Nothing+    , _inisSecondaryPrivateIPAddressCount = Nothing+    , _inisDescription = Nothing+    , _inisDeviceIndex = Nothing+    }++-- | The IDs of the security groups for the network interface. Applies only+-- if creating a network interface when launching an instance.+inisGroups :: Lens' InstanceNetworkInterfaceSpecification [Text]+inisGroups = lens _inisGroups (\ s a -> s{_inisGroups = a}) . _Default . _Coerce;++-- | One or more private IP addresses to assign to the network interface.+-- Only one private IP address can be designated as primary.+inisPrivateIPAddresses :: Lens' InstanceNetworkInterfaceSpecification [PrivateIPAddressSpecification]+inisPrivateIPAddresses = lens _inisPrivateIPAddresses (\ s a -> s{_inisPrivateIPAddresses = a}) . _Default . _Coerce;++-- | If set to 'true', the interface is deleted when the instance is+-- terminated. You can specify 'true' only if creating a new network+-- interface when launching an instance.+inisDeleteOnTermination :: Lens' InstanceNetworkInterfaceSpecification (Maybe Bool)+inisDeleteOnTermination = lens _inisDeleteOnTermination (\ s a -> s{_inisDeleteOnTermination = a});++-- | Indicates whether to assign a public IP address to an instance you+-- launch in a VPC. The public IP address can only be assigned to a network+-- interface for eth0, and can only be assigned to a new network interface,+-- not an existing one. You cannot specify more than one network interface+-- in the request. If launching into a default subnet, the default value is+-- 'true'.+inisAssociatePublicIPAddress :: Lens' InstanceNetworkInterfaceSpecification (Maybe Bool)+inisAssociatePublicIPAddress = lens _inisAssociatePublicIPAddress (\ s a -> s{_inisAssociatePublicIPAddress = a});++-- | The ID of the network interface.+inisNetworkInterfaceId :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)+inisNetworkInterfaceId = lens _inisNetworkInterfaceId (\ s a -> s{_inisNetworkInterfaceId = a});++-- | The ID of the subnet associated with the network string. Applies only if+-- creating a network interface when launching an instance.+inisSubnetId :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)+inisSubnetId = lens _inisSubnetId (\ s a -> s{_inisSubnetId = a});++-- | The private IP address of the network interface. Applies only if+-- creating a network interface when launching an instance.+inisPrivateIPAddress :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)+inisPrivateIPAddress = lens _inisPrivateIPAddress (\ s a -> s{_inisPrivateIPAddress = a});++-- | The number of secondary private IP addresses. You can\'t specify this+-- option and specify more than one private IP address using the private IP+-- addresses option.+inisSecondaryPrivateIPAddressCount :: Lens' InstanceNetworkInterfaceSpecification (Maybe Int)+inisSecondaryPrivateIPAddressCount = lens _inisSecondaryPrivateIPAddressCount (\ s a -> s{_inisSecondaryPrivateIPAddressCount = a});++-- | The description of the network interface. Applies only if creating a+-- network interface when launching an instance.+inisDescription :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)+inisDescription = lens _inisDescription (\ s a -> s{_inisDescription = a});++-- | The index of the device on the instance for the network interface+-- attachment. If you are specifying a network interface in a+-- < RunInstances> request, you must provide the device index.+inisDeviceIndex :: Lens' InstanceNetworkInterfaceSpecification (Maybe Int)+inisDeviceIndex = lens _inisDeviceIndex (\ s a -> s{_inisDeviceIndex = a});++instance FromXML+         InstanceNetworkInterfaceSpecification where+        parseXML x+          = InstanceNetworkInterfaceSpecification' <$>+              (x .@? "SecurityGroupId" .!@ mempty >>=+                 may (parseXMLList "SecurityGroupId"))+                <*>+                (x .@? "privateIpAddressesSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "deleteOnTermination")+                <*> (x .@? "associatePublicIpAddress")+                <*> (x .@? "networkInterfaceId")+                <*> (x .@? "subnetId")+                <*> (x .@? "privateIpAddress")+                <*> (x .@? "secondaryPrivateIpAddressCount")+                <*> (x .@? "description")+                <*> (x .@? "deviceIndex")++instance Hashable+         InstanceNetworkInterfaceSpecification++instance ToQuery+         InstanceNetworkInterfaceSpecification where+        toQuery InstanceNetworkInterfaceSpecification'{..}+          = mconcat+              [toQuery+                 (toQueryList "SecurityGroupId" <$> _inisGroups),+               toQuery+                 (toQueryList "PrivateIpAddresses" <$>+                    _inisPrivateIPAddresses),+               "DeleteOnTermination" =: _inisDeleteOnTermination,+               "AssociatePublicIpAddress" =:+                 _inisAssociatePublicIPAddress,+               "NetworkInterfaceId" =: _inisNetworkInterfaceId,+               "SubnetId" =: _inisSubnetId,+               "PrivateIpAddress" =: _inisPrivateIPAddress,+               "SecondaryPrivateIpAddressCount" =:+                 _inisSecondaryPrivateIPAddressCount,+               "Description" =: _inisDescription,+               "DeviceIndex" =: _inisDeviceIndex]++-- | Describes a private IP address.+--+-- /See:/ 'instancePrivateIPAddress' smart constructor.+data InstancePrivateIPAddress = InstancePrivateIPAddress'+    { _ipiaPrimary          :: !(Maybe Bool)+    , _ipiaPrivateIPAddress :: !(Maybe Text)+    , _ipiaPrivateDNSName   :: !(Maybe Text)+    , _ipiaAssociation      :: !(Maybe InstanceNetworkInterfaceAssociation)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstancePrivateIPAddress' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ipiaPrimary'+--+-- * 'ipiaPrivateIPAddress'+--+-- * 'ipiaPrivateDNSName'+--+-- * 'ipiaAssociation'+instancePrivateIPAddress+    :: InstancePrivateIPAddress+instancePrivateIPAddress =+    InstancePrivateIPAddress'+    { _ipiaPrimary = Nothing+    , _ipiaPrivateIPAddress = Nothing+    , _ipiaPrivateDNSName = Nothing+    , _ipiaAssociation = Nothing+    }++-- | Indicates whether this IP address is the primary private IP address of+-- the network interface.+ipiaPrimary :: Lens' InstancePrivateIPAddress (Maybe Bool)+ipiaPrimary = lens _ipiaPrimary (\ s a -> s{_ipiaPrimary = a});++-- | The private IP address of the network interface.+ipiaPrivateIPAddress :: Lens' InstancePrivateIPAddress (Maybe Text)+ipiaPrivateIPAddress = lens _ipiaPrivateIPAddress (\ s a -> s{_ipiaPrivateIPAddress = a});++-- | The private DNS name.+ipiaPrivateDNSName :: Lens' InstancePrivateIPAddress (Maybe Text)+ipiaPrivateDNSName = lens _ipiaPrivateDNSName (\ s a -> s{_ipiaPrivateDNSName = a});++-- | The association information for an Elastic IP address for the network+-- interface.+ipiaAssociation :: Lens' InstancePrivateIPAddress (Maybe InstanceNetworkInterfaceAssociation)+ipiaAssociation = lens _ipiaAssociation (\ s a -> s{_ipiaAssociation = a});++instance FromXML InstancePrivateIPAddress where+        parseXML x+          = InstancePrivateIPAddress' <$>+              (x .@? "primary") <*> (x .@? "privateIpAddress") <*>+                (x .@? "privateDnsName")+                <*> (x .@? "association")++instance Hashable InstancePrivateIPAddress++-- | Describes the current state of the instance.+--+-- /See:/ 'instanceState' smart constructor.+data InstanceState = InstanceState'+    { _isName :: !InstanceStateName+    , _isCode :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'isName'+--+-- * 'isCode'+instanceState+    :: InstanceStateName -- ^ 'isName'+    -> Int -- ^ 'isCode'+    -> InstanceState+instanceState pName_ pCode_ =+    InstanceState'+    { _isName = pName_+    , _isCode = pCode_+    }++-- | The current state of the instance.+isName :: Lens' InstanceState InstanceStateName+isName = lens _isName (\ s a -> s{_isName = a});++-- | The low byte represents the state. The high byte is an opaque internal+-- value and should be ignored.+--+-- -   '0' : 'pending'+--+-- -   '16' : 'running'+--+-- -   '32' : 'shutting-down'+--+-- -   '48' : 'terminated'+--+-- -   '64' : 'stopping'+--+-- -   '80' : 'stopped'+--+isCode :: Lens' InstanceState Int+isCode = lens _isCode (\ s a -> s{_isCode = a});++instance FromXML InstanceState where+        parseXML x+          = InstanceState' <$> (x .@ "name") <*> (x .@ "code")++instance Hashable InstanceState++-- | Describes an instance state change.+--+-- /See:/ 'instanceStateChange' smart constructor.+data InstanceStateChange = InstanceStateChange'+    { _iscInstanceId    :: !(Maybe Text)+    , _iscCurrentState  :: !(Maybe InstanceState)+    , _iscPreviousState :: !(Maybe InstanceState)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceStateChange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iscInstanceId'+--+-- * 'iscCurrentState'+--+-- * 'iscPreviousState'+instanceStateChange+    :: InstanceStateChange+instanceStateChange =+    InstanceStateChange'+    { _iscInstanceId = Nothing+    , _iscCurrentState = Nothing+    , _iscPreviousState = Nothing+    }++-- | The ID of the instance.+iscInstanceId :: Lens' InstanceStateChange (Maybe Text)+iscInstanceId = lens _iscInstanceId (\ s a -> s{_iscInstanceId = a});++-- | The current state of the instance.+iscCurrentState :: Lens' InstanceStateChange (Maybe InstanceState)+iscCurrentState = lens _iscCurrentState (\ s a -> s{_iscCurrentState = a});++-- | The previous state of the instance.+iscPreviousState :: Lens' InstanceStateChange (Maybe InstanceState)+iscPreviousState = lens _iscPreviousState (\ s a -> s{_iscPreviousState = a});++instance FromXML InstanceStateChange where+        parseXML x+          = InstanceStateChange' <$>+              (x .@? "instanceId") <*> (x .@? "currentState") <*>+                (x .@? "previousState")++instance Hashable InstanceStateChange++-- | Describes the status of an instance.+--+-- /See:/ 'instanceStatus' smart constructor.+data InstanceStatus = InstanceStatus'+    { _isInstanceId       :: !(Maybe Text)+    , _isSystemStatus     :: !(Maybe InstanceStatusSummary)+    , _isEvents           :: !(Maybe [InstanceStatusEvent])+    , _isAvailabilityZone :: !(Maybe Text)+    , _isInstanceStatus   :: !(Maybe InstanceStatusSummary)+    , _isInstanceState    :: !(Maybe InstanceState)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'isInstanceId'+--+-- * 'isSystemStatus'+--+-- * 'isEvents'+--+-- * 'isAvailabilityZone'+--+-- * 'isInstanceStatus'+--+-- * 'isInstanceState'+instanceStatus+    :: InstanceStatus+instanceStatus =+    InstanceStatus'+    { _isInstanceId = Nothing+    , _isSystemStatus = Nothing+    , _isEvents = Nothing+    , _isAvailabilityZone = Nothing+    , _isInstanceStatus = Nothing+    , _isInstanceState = Nothing+    }++-- | The ID of the instance.+isInstanceId :: Lens' InstanceStatus (Maybe Text)+isInstanceId = lens _isInstanceId (\ s a -> s{_isInstanceId = a});++-- | Reports impaired functionality that stems from issues related to the+-- systems that support an instance, such as hardware failures and network+-- connectivity problems.+isSystemStatus :: Lens' InstanceStatus (Maybe InstanceStatusSummary)+isSystemStatus = lens _isSystemStatus (\ s a -> s{_isSystemStatus = a});++-- | Any scheduled events associated with the instance.+isEvents :: Lens' InstanceStatus [InstanceStatusEvent]+isEvents = lens _isEvents (\ s a -> s{_isEvents = a}) . _Default . _Coerce;++-- | The Availability Zone of the instance.+isAvailabilityZone :: Lens' InstanceStatus (Maybe Text)+isAvailabilityZone = lens _isAvailabilityZone (\ s a -> s{_isAvailabilityZone = a});++-- | Reports impaired functionality that stems from issues internal to the+-- instance, such as impaired reachability.+isInstanceStatus :: Lens' InstanceStatus (Maybe InstanceStatusSummary)+isInstanceStatus = lens _isInstanceStatus (\ s a -> s{_isInstanceStatus = a});++-- | The intended state of the instance. < DescribeInstanceStatus> requires+-- that an instance be in the 'running' state.+isInstanceState :: Lens' InstanceStatus (Maybe InstanceState)+isInstanceState = lens _isInstanceState (\ s a -> s{_isInstanceState = a});++instance FromXML InstanceStatus where+        parseXML x+          = InstanceStatus' <$>+              (x .@? "instanceId") <*> (x .@? "systemStatus") <*>+                (x .@? "eventsSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "availabilityZone")+                <*> (x .@? "instanceStatus")+                <*> (x .@? "instanceState")++instance Hashable InstanceStatus++-- | Describes the instance status.+--+-- /See:/ 'instanceStatusDetails' smart constructor.+data InstanceStatusDetails = InstanceStatusDetails'+    { _isdStatus        :: !(Maybe StatusType)+    , _isdImpairedSince :: !(Maybe ISO8601)+    , _isdName          :: !(Maybe StatusName)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceStatusDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'isdStatus'+--+-- * 'isdImpairedSince'+--+-- * 'isdName'+instanceStatusDetails+    :: InstanceStatusDetails+instanceStatusDetails =+    InstanceStatusDetails'+    { _isdStatus = Nothing+    , _isdImpairedSince = Nothing+    , _isdName = Nothing+    }++-- | The status.+isdStatus :: Lens' InstanceStatusDetails (Maybe StatusType)+isdStatus = lens _isdStatus (\ s a -> s{_isdStatus = a});++-- | The time when a status check failed. For an instance that was launched+-- and impaired, this is the time when the instance was launched.+isdImpairedSince :: Lens' InstanceStatusDetails (Maybe UTCTime)+isdImpairedSince = lens _isdImpairedSince (\ s a -> s{_isdImpairedSince = a}) . mapping _Time;++-- | The type of instance status.+isdName :: Lens' InstanceStatusDetails (Maybe StatusName)+isdName = lens _isdName (\ s a -> s{_isdName = a});++instance FromXML InstanceStatusDetails where+        parseXML x+          = InstanceStatusDetails' <$>+              (x .@? "status") <*> (x .@? "impairedSince") <*>+                (x .@? "name")++instance Hashable InstanceStatusDetails++-- | Describes a scheduled event for an instance.+--+-- /See:/ 'instanceStatusEvent' smart constructor.+data InstanceStatusEvent = InstanceStatusEvent'+    { _iseNotBefore   :: !(Maybe ISO8601)+    , _iseCode        :: !(Maybe EventCode)+    , _iseDescription :: !(Maybe Text)+    , _iseNotAfter    :: !(Maybe ISO8601)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceStatusEvent' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iseNotBefore'+--+-- * 'iseCode'+--+-- * 'iseDescription'+--+-- * 'iseNotAfter'+instanceStatusEvent+    :: InstanceStatusEvent+instanceStatusEvent =+    InstanceStatusEvent'+    { _iseNotBefore = Nothing+    , _iseCode = Nothing+    , _iseDescription = Nothing+    , _iseNotAfter = Nothing+    }++-- | The earliest scheduled start time for the event.+iseNotBefore :: Lens' InstanceStatusEvent (Maybe UTCTime)+iseNotBefore = lens _iseNotBefore (\ s a -> s{_iseNotBefore = a}) . mapping _Time;++-- | The event code.+iseCode :: Lens' InstanceStatusEvent (Maybe EventCode)+iseCode = lens _iseCode (\ s a -> s{_iseCode = a});++-- | A description of the event.+--+-- After a scheduled event is completed, it can still be described for up+-- to a week. If the event has been completed, this description starts with+-- the following text: [Completed].+iseDescription :: Lens' InstanceStatusEvent (Maybe Text)+iseDescription = lens _iseDescription (\ s a -> s{_iseDescription = a});++-- | The latest scheduled end time for the event.+iseNotAfter :: Lens' InstanceStatusEvent (Maybe UTCTime)+iseNotAfter = lens _iseNotAfter (\ s a -> s{_iseNotAfter = a}) . mapping _Time;++instance FromXML InstanceStatusEvent where+        parseXML x+          = InstanceStatusEvent' <$>+              (x .@? "notBefore") <*> (x .@? "code") <*>+                (x .@? "description")+                <*> (x .@? "notAfter")++instance Hashable InstanceStatusEvent++-- | Describes the status of an instance.+--+-- /See:/ 'instanceStatusSummary' smart constructor.+data InstanceStatusSummary = InstanceStatusSummary'+    { _issDetails :: !(Maybe [InstanceStatusDetails])+    , _issStatus  :: !SummaryStatus+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceStatusSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'issDetails'+--+-- * 'issStatus'+instanceStatusSummary+    :: SummaryStatus -- ^ 'issStatus'+    -> InstanceStatusSummary+instanceStatusSummary pStatus_ =+    InstanceStatusSummary'+    { _issDetails = Nothing+    , _issStatus = pStatus_+    }++-- | The system instance health or application instance health.+issDetails :: Lens' InstanceStatusSummary [InstanceStatusDetails]+issDetails = lens _issDetails (\ s a -> s{_issDetails = a}) . _Default . _Coerce;++-- | The status.+issStatus :: Lens' InstanceStatusSummary SummaryStatus+issStatus = lens _issStatus (\ s a -> s{_issStatus = a});++instance FromXML InstanceStatusSummary where+        parseXML x+          = InstanceStatusSummary' <$>+              (x .@? "details" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@ "status")++instance Hashable InstanceStatusSummary++-- | Describes an Internet gateway.+--+-- /See:/ 'internetGateway' smart constructor.+data InternetGateway = InternetGateway'+    { _igAttachments       :: !(Maybe [InternetGatewayAttachment])+    , _igTags              :: !(Maybe [Tag])+    , _igInternetGatewayId :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InternetGateway' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igAttachments'+--+-- * 'igTags'+--+-- * 'igInternetGatewayId'+internetGateway+    :: Text -- ^ 'igInternetGatewayId'+    -> InternetGateway+internetGateway pInternetGatewayId_ =+    InternetGateway'+    { _igAttachments = Nothing+    , _igTags = Nothing+    , _igInternetGatewayId = pInternetGatewayId_+    }++-- | Any VPCs attached to the Internet gateway.+igAttachments :: Lens' InternetGateway [InternetGatewayAttachment]+igAttachments = lens _igAttachments (\ s a -> s{_igAttachments = a}) . _Default . _Coerce;++-- | Any tags assigned to the Internet gateway.+igTags :: Lens' InternetGateway [Tag]+igTags = lens _igTags (\ s a -> s{_igTags = a}) . _Default . _Coerce;++-- | The ID of the Internet gateway.+igInternetGatewayId :: Lens' InternetGateway Text+igInternetGatewayId = lens _igInternetGatewayId (\ s a -> s{_igInternetGatewayId = a});++instance FromXML InternetGateway where+        parseXML x+          = InternetGateway' <$>+              (x .@? "attachmentSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@ "internetGatewayId")++instance Hashable InternetGateway++-- | Describes the attachment of a VPC to an Internet gateway.+--+-- /See:/ 'internetGatewayAttachment' smart constructor.+data InternetGatewayAttachment = InternetGatewayAttachment'+    { _igaState :: !AttachmentStatus+    , _igaVPCId :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InternetGatewayAttachment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igaState'+--+-- * 'igaVPCId'+internetGatewayAttachment+    :: AttachmentStatus -- ^ 'igaState'+    -> Text -- ^ 'igaVPCId'+    -> InternetGatewayAttachment+internetGatewayAttachment pState_ pVPCId_ =+    InternetGatewayAttachment'+    { _igaState = pState_+    , _igaVPCId = pVPCId_+    }++-- | The current state of the attachment.+igaState :: Lens' InternetGatewayAttachment AttachmentStatus+igaState = lens _igaState (\ s a -> s{_igaState = a});++-- | The ID of the VPC.+igaVPCId :: Lens' InternetGatewayAttachment Text+igaVPCId = lens _igaVPCId (\ s a -> s{_igaVPCId = a});++instance FromXML InternetGatewayAttachment where+        parseXML x+          = InternetGatewayAttachment' <$>+              (x .@ "state") <*> (x .@ "vpcId")++instance Hashable InternetGatewayAttachment++-- | Describes a key pair.+--+-- /See:/ 'keyPairInfo' smart constructor.+data KeyPairInfo = KeyPairInfo'+    { _kpiKeyFingerprint :: !(Maybe Text)+    , _kpiKeyName        :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'KeyPairInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'kpiKeyFingerprint'+--+-- * 'kpiKeyName'+keyPairInfo+    :: KeyPairInfo+keyPairInfo =+    KeyPairInfo'+    { _kpiKeyFingerprint = Nothing+    , _kpiKeyName = Nothing+    }++-- | If you used < CreateKeyPair> to create the key pair, this is the SHA-1+-- digest of the DER encoded private key. If you used < ImportKeyPair> to+-- provide AWS the public key, this is the MD5 public key fingerprint as+-- specified in section 4 of RFC4716.+kpiKeyFingerprint :: Lens' KeyPairInfo (Maybe Text)+kpiKeyFingerprint = lens _kpiKeyFingerprint (\ s a -> s{_kpiKeyFingerprint = a});++-- | The name of the key pair.+kpiKeyName :: Lens' KeyPairInfo (Maybe Text)+kpiKeyName = lens _kpiKeyName (\ s a -> s{_kpiKeyName = a});++instance FromXML KeyPairInfo where+        parseXML x+          = KeyPairInfo' <$>+              (x .@? "keyFingerprint") <*> (x .@? "keyName")++instance Hashable KeyPairInfo++-- | Describes a launch permission.+--+-- /See:/ 'launchPermission' smart constructor.+data LaunchPermission = LaunchPermission'+    { _lpGroup  :: !(Maybe PermissionGroup)+    , _lpUserId :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'LaunchPermission' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lpGroup'+--+-- * 'lpUserId'+launchPermission+    :: LaunchPermission+launchPermission =+    LaunchPermission'+    { _lpGroup = Nothing+    , _lpUserId = Nothing+    }++-- | The name of the group.+lpGroup :: Lens' LaunchPermission (Maybe PermissionGroup)+lpGroup = lens _lpGroup (\ s a -> s{_lpGroup = a});++-- | The AWS account ID.+lpUserId :: Lens' LaunchPermission (Maybe Text)+lpUserId = lens _lpUserId (\ s a -> s{_lpUserId = a});++instance FromXML LaunchPermission where+        parseXML x+          = LaunchPermission' <$>+              (x .@? "group") <*> (x .@? "userId")++instance Hashable LaunchPermission++instance ToQuery LaunchPermission where+        toQuery LaunchPermission'{..}+          = mconcat+              ["Group" =: _lpGroup, "UserId" =: _lpUserId]++-- | Describes a launch permission modification.+--+-- /See:/ 'launchPermissionModifications' smart constructor.+data LaunchPermissionModifications = LaunchPermissionModifications'+    { _lpmRemove :: !(Maybe [LaunchPermission])+    , _lpmAdd    :: !(Maybe [LaunchPermission])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'LaunchPermissionModifications' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lpmRemove'+--+-- * 'lpmAdd'+launchPermissionModifications+    :: LaunchPermissionModifications+launchPermissionModifications =+    LaunchPermissionModifications'+    { _lpmRemove = Nothing+    , _lpmAdd = Nothing+    }++-- | The AWS account ID to remove from the list of launch permissions for the+-- AMI.+lpmRemove :: Lens' LaunchPermissionModifications [LaunchPermission]+lpmRemove = lens _lpmRemove (\ s a -> s{_lpmRemove = a}) . _Default . _Coerce;++-- | The AWS account ID to add to the list of launch permissions for the AMI.+lpmAdd :: Lens' LaunchPermissionModifications [LaunchPermission]+lpmAdd = lens _lpmAdd (\ s a -> s{_lpmAdd = a}) . _Default . _Coerce;++instance Hashable LaunchPermissionModifications++instance ToQuery LaunchPermissionModifications where+        toQuery LaunchPermissionModifications'{..}+          = mconcat+              [toQuery (toQueryList "Remove" <$> _lpmRemove),+               toQuery (toQueryList "Add" <$> _lpmAdd)]++-- | Describes the launch specification for an instance.+--+-- /See:/ 'launchSpecification' smart constructor.+data LaunchSpecification = LaunchSpecification'+    { _lsSecurityGroups      :: !(Maybe [GroupIdentifier])+    , _lsKeyName             :: !(Maybe Text)+    , _lsNetworkInterfaces   :: !(Maybe [InstanceNetworkInterfaceSpecification])+    , _lsRAMDiskId           :: !(Maybe Text)+    , _lsSubnetId            :: !(Maybe Text)+    , _lsKernelId            :: !(Maybe Text)+    , _lsInstanceType        :: !(Maybe InstanceType)+    , _lsEBSOptimized        :: !(Maybe Bool)+    , _lsUserData            :: !(Maybe Text)+    , _lsMonitoring          :: !(Maybe RunInstancesMonitoringEnabled)+    , _lsIAMInstanceProfile  :: !(Maybe IAMInstanceProfileSpecification)+    , _lsImageId             :: !(Maybe Text)+    , _lsAddressingType      :: !(Maybe Text)+    , _lsBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])+    , _lsPlacement           :: !(Maybe SpotPlacement)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'LaunchSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lsSecurityGroups'+--+-- * 'lsKeyName'+--+-- * 'lsNetworkInterfaces'+--+-- * 'lsRAMDiskId'+--+-- * 'lsSubnetId'+--+-- * 'lsKernelId'+--+-- * 'lsInstanceType'+--+-- * 'lsEBSOptimized'+--+-- * 'lsUserData'+--+-- * 'lsMonitoring'+--+-- * 'lsIAMInstanceProfile'+--+-- * 'lsImageId'+--+-- * 'lsAddressingType'+--+-- * 'lsBlockDeviceMappings'+--+-- * 'lsPlacement'+launchSpecification+    :: LaunchSpecification+launchSpecification =+    LaunchSpecification'+    { _lsSecurityGroups = Nothing+    , _lsKeyName = Nothing+    , _lsNetworkInterfaces = Nothing+    , _lsRAMDiskId = Nothing+    , _lsSubnetId = Nothing+    , _lsKernelId = Nothing+    , _lsInstanceType = Nothing+    , _lsEBSOptimized = Nothing+    , _lsUserData = Nothing+    , _lsMonitoring = Nothing+    , _lsIAMInstanceProfile = Nothing+    , _lsImageId = Nothing+    , _lsAddressingType = Nothing+    , _lsBlockDeviceMappings = Nothing+    , _lsPlacement = Nothing+    }++-- | One or more security groups. When requesting instances in a VPC, you+-- must specify the IDs of the security groups. When requesting instances+-- in EC2-Classic, you can specify the names or the IDs of the security+-- groups.+lsSecurityGroups :: Lens' LaunchSpecification [GroupIdentifier]+lsSecurityGroups = lens _lsSecurityGroups (\ s a -> s{_lsSecurityGroups = a}) . _Default . _Coerce;++-- | The name of the key pair.+lsKeyName :: Lens' LaunchSpecification (Maybe Text)+lsKeyName = lens _lsKeyName (\ s a -> s{_lsKeyName = a});++-- | One or more network interfaces.+lsNetworkInterfaces :: Lens' LaunchSpecification [InstanceNetworkInterfaceSpecification]+lsNetworkInterfaces = lens _lsNetworkInterfaces (\ s a -> s{_lsNetworkInterfaces = a}) . _Default . _Coerce;++-- | The ID of the RAM disk.+lsRAMDiskId :: Lens' LaunchSpecification (Maybe Text)+lsRAMDiskId = lens _lsRAMDiskId (\ s a -> s{_lsRAMDiskId = a});++-- | The ID of the subnet in which to launch the instance.+lsSubnetId :: Lens' LaunchSpecification (Maybe Text)+lsSubnetId = lens _lsSubnetId (\ s a -> s{_lsSubnetId = a});++-- | The ID of the kernel.+lsKernelId :: Lens' LaunchSpecification (Maybe Text)+lsKernelId = lens _lsKernelId (\ s a -> s{_lsKernelId = a});++-- | The instance type.+lsInstanceType :: Lens' LaunchSpecification (Maybe InstanceType)+lsInstanceType = lens _lsInstanceType (\ s a -> s{_lsInstanceType = a});++-- | Indicates whether the instance is optimized for EBS I\/O. This+-- optimization provides dedicated throughput to Amazon EBS and an+-- optimized configuration stack to provide optimal EBS I\/O performance.+-- This optimization isn\'t available with all instance types. Additional+-- usage charges apply when using an EBS Optimized instance.+--+-- Default: 'false'+lsEBSOptimized :: Lens' LaunchSpecification (Maybe Bool)+lsEBSOptimized = lens _lsEBSOptimized (\ s a -> s{_lsEBSOptimized = a});++-- | The Base64-encoded MIME user data to make available to the instances.+lsUserData :: Lens' LaunchSpecification (Maybe Text)+lsUserData = lens _lsUserData (\ s a -> s{_lsUserData = a});++-- | Undocumented member.+lsMonitoring :: Lens' LaunchSpecification (Maybe RunInstancesMonitoringEnabled)+lsMonitoring = lens _lsMonitoring (\ s a -> s{_lsMonitoring = a});++-- | The IAM instance profile.+lsIAMInstanceProfile :: Lens' LaunchSpecification (Maybe IAMInstanceProfileSpecification)+lsIAMInstanceProfile = lens _lsIAMInstanceProfile (\ s a -> s{_lsIAMInstanceProfile = a});++-- | The ID of the AMI.+lsImageId :: Lens' LaunchSpecification (Maybe Text)+lsImageId = lens _lsImageId (\ s a -> s{_lsImageId = a});++-- | Deprecated.+lsAddressingType :: Lens' LaunchSpecification (Maybe Text)+lsAddressingType = lens _lsAddressingType (\ s a -> s{_lsAddressingType = a});++-- | One or more block device mapping entries.+lsBlockDeviceMappings :: Lens' LaunchSpecification [BlockDeviceMapping]+lsBlockDeviceMappings = lens _lsBlockDeviceMappings (\ s a -> s{_lsBlockDeviceMappings = a}) . _Default . _Coerce;++-- | The placement information for the instance.+lsPlacement :: Lens' LaunchSpecification (Maybe SpotPlacement)+lsPlacement = lens _lsPlacement (\ s a -> s{_lsPlacement = a});++instance FromXML LaunchSpecification where+        parseXML x+          = LaunchSpecification' <$>+              (x .@? "groupSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "keyName")+                <*>+                (x .@? "networkInterfaceSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "ramdiskId")+                <*> (x .@? "subnetId")+                <*> (x .@? "kernelId")+                <*> (x .@? "instanceType")+                <*> (x .@? "ebsOptimized")+                <*> (x .@? "userData")+                <*> (x .@? "monitoring")+                <*> (x .@? "iamInstanceProfile")+                <*> (x .@? "imageId")+                <*> (x .@? "addressingType")+                <*>+                (x .@? "blockDeviceMapping" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "placement")++instance Hashable LaunchSpecification++-- | Describes the monitoring for the instance.+--+-- /See:/ 'monitoring' smart constructor.+newtype Monitoring = Monitoring'+    { _mState :: Maybe MonitoringState+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Monitoring' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mState'+monitoring+    :: Monitoring+monitoring =+    Monitoring'+    { _mState = Nothing+    }++-- | Indicates whether monitoring is enabled for the instance.+mState :: Lens' Monitoring (Maybe MonitoringState)+mState = lens _mState (\ s a -> s{_mState = a});++instance FromXML Monitoring where+        parseXML x = Monitoring' <$> (x .@? "state")++instance Hashable Monitoring++-- | Describes the status of a moving Elastic IP address.+--+-- /See:/ 'movingAddressStatus' smart constructor.+data MovingAddressStatus = MovingAddressStatus'+    { _masMoveStatus :: !(Maybe MoveStatus)+    , _masPublicIP   :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'MovingAddressStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'masMoveStatus'+--+-- * 'masPublicIP'+movingAddressStatus+    :: MovingAddressStatus+movingAddressStatus =+    MovingAddressStatus'+    { _masMoveStatus = Nothing+    , _masPublicIP = Nothing+    }++-- | The status of the Elastic IP address that\'s being moved to the EC2-VPC+-- platform, or restored to the EC2-Classic platform.+masMoveStatus :: Lens' MovingAddressStatus (Maybe MoveStatus)+masMoveStatus = lens _masMoveStatus (\ s a -> s{_masMoveStatus = a});++-- | The Elastic IP address.+masPublicIP :: Lens' MovingAddressStatus (Maybe Text)+masPublicIP = lens _masPublicIP (\ s a -> s{_masPublicIP = a});++instance FromXML MovingAddressStatus where+        parseXML x+          = MovingAddressStatus' <$>+              (x .@? "moveStatus") <*> (x .@? "publicIp")++instance Hashable MovingAddressStatus++-- | Describes a NAT gateway.+--+-- /See:/ 'natGateway' smart constructor.+data NatGateway = NatGateway'+    { _ngState               :: !(Maybe NatGatewayState)+    , _ngFailureCode         :: !(Maybe Text)+    , _ngVPCId               :: !(Maybe Text)+    , _ngFailureMessage      :: !(Maybe Text)+    , _ngNatGatewayId        :: !(Maybe Text)+    , _ngSubnetId            :: !(Maybe Text)+    , _ngDeleteTime          :: !(Maybe ISO8601)+    , _ngNatGatewayAddresses :: !(Maybe [NatGatewayAddress])+    , _ngCreateTime          :: !(Maybe ISO8601)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'NatGateway' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ngState'+--+-- * 'ngFailureCode'+--+-- * 'ngVPCId'+--+-- * 'ngFailureMessage'+--+-- * 'ngNatGatewayId'+--+-- * 'ngSubnetId'+--+-- * 'ngDeleteTime'+--+-- * 'ngNatGatewayAddresses'+--+-- * 'ngCreateTime'+natGateway+    :: NatGateway+natGateway =+    NatGateway'+    { _ngState = Nothing+    , _ngFailureCode = Nothing+    , _ngVPCId = Nothing+    , _ngFailureMessage = Nothing+    , _ngNatGatewayId = Nothing+    , _ngSubnetId = Nothing+    , _ngDeleteTime = Nothing+    , _ngNatGatewayAddresses = Nothing+    , _ngCreateTime = Nothing+    }++-- | The state of the NAT gateway.+ngState :: Lens' NatGateway (Maybe NatGatewayState)+ngState = lens _ngState (\ s a -> s{_ngState = a});++-- | If the NAT gateway could not be created, specifies the error code for+-- the failure. ('InsufficientFreeAddressesInSubnet' |+-- 'Gateway.NotAttached' | 'InvalidAllocationID.NotFound' |+-- 'Resource.AlreadyAssociated' | 'InternalError' |+-- 'InvalidSubnetID.NotFound')+ngFailureCode :: Lens' NatGateway (Maybe Text)+ngFailureCode = lens _ngFailureCode (\ s a -> s{_ngFailureCode = a});++-- | The ID of the VPC in which the NAT gateway is located.+ngVPCId :: Lens' NatGateway (Maybe Text)+ngVPCId = lens _ngVPCId (\ s a -> s{_ngVPCId = a});++-- | If the NAT gateway could not be created, specifies the error message for+-- the failure, that corresponds to the error code.+--+-- -   For InsufficientFreeAddressesInSubnet:+--     'Subnet has insufficient free addresses to create this NAT gateway'+-- -   For Gateway.NotAttached:+--     'Network vpc-xxxxxxxx has no Internet gateway attached'+-- -   For InvalidAllocationID.NotFound:+--     'Elastic IP address eipalloc-xxxxxxxx could not be associated with this NAT gateway'+-- -   For Resource.AlreadyAssociated:+--     'Elastic IP address eipalloc-xxxxxxxx is already associated'+-- -   For InternalError:+--     'Network interface eni-xxxxxxxx, created and used internally by this NAT gateway is in an invalid state. Please try again.'+-- -   For InvalidSubnetID.NotFound:+--     'The specified subnet subnet-xxxxxxxx does not exist or could not be found.'+ngFailureMessage :: Lens' NatGateway (Maybe Text)+ngFailureMessage = lens _ngFailureMessage (\ s a -> s{_ngFailureMessage = a});++-- | The ID of the NAT gateway.+ngNatGatewayId :: Lens' NatGateway (Maybe Text)+ngNatGatewayId = lens _ngNatGatewayId (\ s a -> s{_ngNatGatewayId = a});++-- | The ID of the subnet in which the NAT gateway is located.+ngSubnetId :: Lens' NatGateway (Maybe Text)+ngSubnetId = lens _ngSubnetId (\ s a -> s{_ngSubnetId = a});++-- | The date and time the NAT gateway was deleted, if applicable.+ngDeleteTime :: Lens' NatGateway (Maybe UTCTime)+ngDeleteTime = lens _ngDeleteTime (\ s a -> s{_ngDeleteTime = a}) . mapping _Time;++-- | Information about the IP addresses and network interface associated with+-- the NAT gateway.+ngNatGatewayAddresses :: Lens' NatGateway [NatGatewayAddress]+ngNatGatewayAddresses = lens _ngNatGatewayAddresses (\ s a -> s{_ngNatGatewayAddresses = a}) . _Default . _Coerce;++-- | The date and time the NAT gateway was created.+ngCreateTime :: Lens' NatGateway (Maybe UTCTime)+ngCreateTime = lens _ngCreateTime (\ s a -> s{_ngCreateTime = a}) . mapping _Time;++instance FromXML NatGateway where+        parseXML x+          = NatGateway' <$>+              (x .@? "state") <*> (x .@? "failureCode") <*>+                (x .@? "vpcId")+                <*> (x .@? "failureMessage")+                <*> (x .@? "natGatewayId")+                <*> (x .@? "subnetId")+                <*> (x .@? "deleteTime")+                <*>+                (x .@? "natGatewayAddressSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "createTime")++instance Hashable NatGateway++-- | Describes the IP addresses and network interface associated with a NAT+-- gateway.+--+-- /See:/ 'natGatewayAddress' smart constructor.+data NatGatewayAddress = NatGatewayAddress'+    { _ngaPrivateIP          :: !(Maybe Text)+    , _ngaAllocationId       :: !(Maybe Text)+    , _ngaNetworkInterfaceId :: !(Maybe Text)+    , _ngaPublicIP           :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'NatGatewayAddress' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ngaPrivateIP'+--+-- * 'ngaAllocationId'+--+-- * 'ngaNetworkInterfaceId'+--+-- * 'ngaPublicIP'+natGatewayAddress+    :: NatGatewayAddress+natGatewayAddress =+    NatGatewayAddress'+    { _ngaPrivateIP = Nothing+    , _ngaAllocationId = Nothing+    , _ngaNetworkInterfaceId = Nothing+    , _ngaPublicIP = Nothing+    }++-- | The private IP address associated with the Elastic IP address.+ngaPrivateIP :: Lens' NatGatewayAddress (Maybe Text)+ngaPrivateIP = lens _ngaPrivateIP (\ s a -> s{_ngaPrivateIP = a});++-- | The allocation ID of the Elastic IP address that\'s associated with the+-- NAT gateway.+ngaAllocationId :: Lens' NatGatewayAddress (Maybe Text)+ngaAllocationId = lens _ngaAllocationId (\ s a -> s{_ngaAllocationId = a});++-- | The ID of the network interface associated with the NAT gateway.+ngaNetworkInterfaceId :: Lens' NatGatewayAddress (Maybe Text)+ngaNetworkInterfaceId = lens _ngaNetworkInterfaceId (\ s a -> s{_ngaNetworkInterfaceId = a});++-- | The Elastic IP address associated with the NAT gateway.+ngaPublicIP :: Lens' NatGatewayAddress (Maybe Text)+ngaPublicIP = lens _ngaPublicIP (\ s a -> s{_ngaPublicIP = a});++instance FromXML NatGatewayAddress where+        parseXML x+          = NatGatewayAddress' <$>+              (x .@? "privateIp") <*> (x .@? "allocationId") <*>+                (x .@? "networkInterfaceId")+                <*> (x .@? "publicIp")++instance Hashable NatGatewayAddress++-- | Describes a network ACL.+--+-- /See:/ 'networkACL' smart constructor.+data NetworkACL = NetworkACL'+    { _naEntries      :: !(Maybe [NetworkACLEntry])+    , _naNetworkACLId :: !(Maybe Text)+    , _naVPCId        :: !(Maybe Text)+    , _naAssociations :: !(Maybe [NetworkACLAssociation])+    , _naTags         :: !(Maybe [Tag])+    , _naIsDefault    :: !(Maybe Bool)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'NetworkACL' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'naEntries'+--+-- * 'naNetworkACLId'+--+-- * 'naVPCId'+--+-- * 'naAssociations'+--+-- * 'naTags'+--+-- * 'naIsDefault'+networkACL+    :: NetworkACL+networkACL =+    NetworkACL'+    { _naEntries = Nothing+    , _naNetworkACLId = Nothing+    , _naVPCId = Nothing+    , _naAssociations = Nothing+    , _naTags = Nothing+    , _naIsDefault = Nothing+    }++-- | One or more entries (rules) in the network ACL.+naEntries :: Lens' NetworkACL [NetworkACLEntry]+naEntries = lens _naEntries (\ s a -> s{_naEntries = a}) . _Default . _Coerce;++-- | The ID of the network ACL.+naNetworkACLId :: Lens' NetworkACL (Maybe Text)+naNetworkACLId = lens _naNetworkACLId (\ s a -> s{_naNetworkACLId = a});++-- | The ID of the VPC for the network ACL.+naVPCId :: Lens' NetworkACL (Maybe Text)+naVPCId = lens _naVPCId (\ s a -> s{_naVPCId = a});++-- | Any associations between the network ACL and one or more subnets+naAssociations :: Lens' NetworkACL [NetworkACLAssociation]+naAssociations = lens _naAssociations (\ s a -> s{_naAssociations = a}) . _Default . _Coerce;++-- | Any tags assigned to the network ACL.+naTags :: Lens' NetworkACL [Tag]+naTags = lens _naTags (\ s a -> s{_naTags = a}) . _Default . _Coerce;++-- | Indicates whether this is the default network ACL for the VPC.+naIsDefault :: Lens' NetworkACL (Maybe Bool)+naIsDefault = lens _naIsDefault (\ s a -> s{_naIsDefault = a});++instance FromXML NetworkACL where+        parseXML x+          = NetworkACL' <$>+              (x .@? "entrySet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "networkAclId")+                <*> (x .@? "vpcId")+                <*>+                (x .@? "associationSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "default")++instance Hashable NetworkACL++-- | Describes an association between a network ACL and a subnet.+--+-- /See:/ 'networkACLAssociation' smart constructor.+data NetworkACLAssociation = NetworkACLAssociation'+    { _naaNetworkACLId            :: !(Maybe Text)+    , _naaSubnetId                :: !(Maybe Text)+    , _naaNetworkACLAssociationId :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'NetworkACLAssociation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'naaNetworkACLId'+--+-- * 'naaSubnetId'+--+-- * 'naaNetworkACLAssociationId'+networkACLAssociation+    :: NetworkACLAssociation+networkACLAssociation =+    NetworkACLAssociation'+    { _naaNetworkACLId = Nothing+    , _naaSubnetId = Nothing+    , _naaNetworkACLAssociationId = Nothing+    }++-- | The ID of the network ACL.+naaNetworkACLId :: Lens' NetworkACLAssociation (Maybe Text)+naaNetworkACLId = lens _naaNetworkACLId (\ s a -> s{_naaNetworkACLId = a});++-- | The ID of the subnet.+naaSubnetId :: Lens' NetworkACLAssociation (Maybe Text)+naaSubnetId = lens _naaSubnetId (\ s a -> s{_naaSubnetId = a});++-- | The ID of the association between a network ACL and a subnet.+naaNetworkACLAssociationId :: Lens' NetworkACLAssociation (Maybe Text)+naaNetworkACLAssociationId = lens _naaNetworkACLAssociationId (\ s a -> s{_naaNetworkACLAssociationId = a});++instance FromXML NetworkACLAssociation where+        parseXML x+          = NetworkACLAssociation' <$>+              (x .@? "networkAclId") <*> (x .@? "subnetId") <*>+                (x .@? "networkAclAssociationId")++instance Hashable NetworkACLAssociation++-- | Describes an entry in a network ACL.+--+-- /See:/ 'networkACLEntry' smart constructor.+data NetworkACLEntry = NetworkACLEntry'+    { _naeICMPTypeCode :: !(Maybe ICMPTypeCode)+    , _naeRuleNumber   :: !(Maybe Int)+    , _naeRuleAction   :: !(Maybe RuleAction)+    , _naeProtocol     :: !(Maybe Text)+    , _naePortRange    :: !(Maybe PortRange)+    , _naeCIdRBlock    :: !(Maybe Text)+    , _naeEgress       :: !(Maybe Bool)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'NetworkACLEntry' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'naeICMPTypeCode'+--+-- * 'naeRuleNumber'+--+-- * 'naeRuleAction'+--+-- * 'naeProtocol'+--+-- * 'naePortRange'+--+-- * 'naeCIdRBlock'+--+-- * 'naeEgress'+networkACLEntry+    :: NetworkACLEntry+networkACLEntry =+    NetworkACLEntry'+    { _naeICMPTypeCode = Nothing+    , _naeRuleNumber = Nothing+    , _naeRuleAction = Nothing+    , _naeProtocol = Nothing+    , _naePortRange = Nothing+    , _naeCIdRBlock = Nothing+    , _naeEgress = Nothing+    }++-- | ICMP protocol: The ICMP type and code.+naeICMPTypeCode :: Lens' NetworkACLEntry (Maybe ICMPTypeCode)+naeICMPTypeCode = lens _naeICMPTypeCode (\ s a -> s{_naeICMPTypeCode = a});++-- | The rule number for the entry. ACL entries are processed in ascending+-- order by rule number.+naeRuleNumber :: Lens' NetworkACLEntry (Maybe Int)+naeRuleNumber = lens _naeRuleNumber (\ s a -> s{_naeRuleNumber = a});++-- | Indicates whether to allow or deny the traffic that matches the rule.+naeRuleAction :: Lens' NetworkACLEntry (Maybe RuleAction)+naeRuleAction = lens _naeRuleAction (\ s a -> s{_naeRuleAction = a});++-- | The protocol. A value of '-1' means all protocols.+naeProtocol :: Lens' NetworkACLEntry (Maybe Text)+naeProtocol = lens _naeProtocol (\ s a -> s{_naeProtocol = a});++-- | TCP or UDP protocols: The range of ports the rule applies to.+naePortRange :: Lens' NetworkACLEntry (Maybe PortRange)+naePortRange = lens _naePortRange (\ s a -> s{_naePortRange = a});++-- | The network range to allow or deny, in CIDR notation.+naeCIdRBlock :: Lens' NetworkACLEntry (Maybe Text)+naeCIdRBlock = lens _naeCIdRBlock (\ s a -> s{_naeCIdRBlock = a});++-- | Indicates whether the rule is an egress rule (applied to traffic leaving+-- the subnet).+naeEgress :: Lens' NetworkACLEntry (Maybe Bool)+naeEgress = lens _naeEgress (\ s a -> s{_naeEgress = a});++instance FromXML NetworkACLEntry where+        parseXML x+          = NetworkACLEntry' <$>+              (x .@? "icmpTypeCode") <*> (x .@? "ruleNumber") <*>+                (x .@? "ruleAction")+                <*> (x .@? "protocol")+                <*> (x .@? "portRange")+                <*> (x .@? "cidrBlock")+                <*> (x .@? "egress")++instance Hashable NetworkACLEntry++-- | Describes a network interface.+--+-- /See:/ 'networkInterface' smart constructor.+data NetworkInterface = NetworkInterface'+    { _niGroups             :: !(Maybe [GroupIdentifier])+    , _niStatus             :: !(Maybe NetworkInterfaceStatus)+    , _niPrivateIPAddresses :: !(Maybe [NetworkInterfacePrivateIPAddress])+    , _niSourceDestCheck    :: !(Maybe Bool)+    , _niInterfaceType      :: !(Maybe NetworkInterfaceType)+    , _niVPCId              :: !(Maybe Text)+    , _niTagSet             :: !(Maybe [Tag])+    , _niRequesterManaged   :: !(Maybe Bool)+    , _niNetworkInterfaceId :: !(Maybe Text)+    , _niSubnetId           :: !(Maybe Text)+    , _niMACAddress         :: !(Maybe Text)+    , _niAttachment         :: !(Maybe NetworkInterfaceAttachment)+    , _niOwnerId            :: !(Maybe Text)+    , _niAvailabilityZone   :: !(Maybe Text)+    , _niPrivateIPAddress   :: !(Maybe Text)+    , _niPrivateDNSName     :: !(Maybe Text)+    , _niRequesterId        :: !(Maybe Text)+    , _niDescription        :: !(Maybe Text)+    , _niAssociation        :: !(Maybe NetworkInterfaceAssociation)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'NetworkInterface' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'niGroups'+--+-- * 'niStatus'+--+-- * 'niPrivateIPAddresses'+--+-- * 'niSourceDestCheck'+--+-- * 'niInterfaceType'+--+-- * 'niVPCId'+--+-- * 'niTagSet'+--+-- * 'niRequesterManaged'+--+-- * 'niNetworkInterfaceId'+--+-- * 'niSubnetId'+--+-- * 'niMACAddress'+--+-- * 'niAttachment'+--+-- * 'niOwnerId'+--+-- * 'niAvailabilityZone'+--+-- * 'niPrivateIPAddress'+--+-- * 'niPrivateDNSName'+--+-- * 'niRequesterId'+--+-- * 'niDescription'+--+-- * 'niAssociation'+networkInterface+    :: NetworkInterface+networkInterface =+    NetworkInterface'+    { _niGroups = Nothing+    , _niStatus = Nothing+    , _niPrivateIPAddresses = Nothing+    , _niSourceDestCheck = Nothing+    , _niInterfaceType = Nothing+    , _niVPCId = Nothing+    , _niTagSet = Nothing+    , _niRequesterManaged = Nothing+    , _niNetworkInterfaceId = Nothing+    , _niSubnetId = Nothing+    , _niMACAddress = Nothing+    , _niAttachment = Nothing+    , _niOwnerId = Nothing+    , _niAvailabilityZone = Nothing+    , _niPrivateIPAddress = Nothing+    , _niPrivateDNSName = Nothing+    , _niRequesterId = Nothing+    , _niDescription = Nothing+    , _niAssociation = Nothing+    }++-- | Any security groups for the network interface.+niGroups :: Lens' NetworkInterface [GroupIdentifier]+niGroups = lens _niGroups (\ s a -> s{_niGroups = a}) . _Default . _Coerce;++-- | The status of the network interface.+niStatus :: Lens' NetworkInterface (Maybe NetworkInterfaceStatus)+niStatus = lens _niStatus (\ s a -> s{_niStatus = a});++-- | The private IP addresses associated with the network interface.+niPrivateIPAddresses :: Lens' NetworkInterface [NetworkInterfacePrivateIPAddress]+niPrivateIPAddresses = lens _niPrivateIPAddresses (\ s a -> s{_niPrivateIPAddresses = a}) . _Default . _Coerce;++-- | Indicates whether traffic to or from the instance is validated.+niSourceDestCheck :: Lens' NetworkInterface (Maybe Bool)+niSourceDestCheck = lens _niSourceDestCheck (\ s a -> s{_niSourceDestCheck = a});++-- | The type of interface.+niInterfaceType :: Lens' NetworkInterface (Maybe NetworkInterfaceType)+niInterfaceType = lens _niInterfaceType (\ s a -> s{_niInterfaceType = a});++-- | The ID of the VPC.+niVPCId :: Lens' NetworkInterface (Maybe Text)+niVPCId = lens _niVPCId (\ s a -> s{_niVPCId = a});++-- | Any tags assigned to the network interface.+niTagSet :: Lens' NetworkInterface [Tag]+niTagSet = lens _niTagSet (\ s a -> s{_niTagSet = a}) . _Default . _Coerce;++-- | Indicates whether the network interface is being managed by AWS.+niRequesterManaged :: Lens' NetworkInterface (Maybe Bool)+niRequesterManaged = lens _niRequesterManaged (\ s a -> s{_niRequesterManaged = a});++-- | The ID of the network interface.+niNetworkInterfaceId :: Lens' NetworkInterface (Maybe Text)+niNetworkInterfaceId = lens _niNetworkInterfaceId (\ s a -> s{_niNetworkInterfaceId = a});++-- | The ID of the subnet.+niSubnetId :: Lens' NetworkInterface (Maybe Text)+niSubnetId = lens _niSubnetId (\ s a -> s{_niSubnetId = a});++-- | The MAC address.+niMACAddress :: Lens' NetworkInterface (Maybe Text)+niMACAddress = lens _niMACAddress (\ s a -> s{_niMACAddress = a});++-- | The network interface attachment.+niAttachment :: Lens' NetworkInterface (Maybe NetworkInterfaceAttachment)+niAttachment = lens _niAttachment (\ s a -> s{_niAttachment = a});++-- | The AWS account ID of the owner of the network interface.+niOwnerId :: Lens' NetworkInterface (Maybe Text)+niOwnerId = lens _niOwnerId (\ s a -> s{_niOwnerId = a});++-- | The Availability Zone.+niAvailabilityZone :: Lens' NetworkInterface (Maybe Text)+niAvailabilityZone = lens _niAvailabilityZone (\ s a -> s{_niAvailabilityZone = a});++-- | The IP address of the network interface within the subnet.+niPrivateIPAddress :: Lens' NetworkInterface (Maybe Text)+niPrivateIPAddress = lens _niPrivateIPAddress (\ s a -> s{_niPrivateIPAddress = a});++-- | The private DNS name.+niPrivateDNSName :: Lens' NetworkInterface (Maybe Text)+niPrivateDNSName = lens _niPrivateDNSName (\ s a -> s{_niPrivateDNSName = a});++-- | The ID of the entity that launched the instance on your behalf (for+-- example, AWS Management Console or Auto Scaling).+niRequesterId :: Lens' NetworkInterface (Maybe Text)+niRequesterId = lens _niRequesterId (\ s a -> s{_niRequesterId = a});++-- | A description.+niDescription :: Lens' NetworkInterface (Maybe Text)+niDescription = lens _niDescription (\ s a -> s{_niDescription = a});++-- | The association information for an Elastic IP associated with the+-- network interface.+niAssociation :: Lens' NetworkInterface (Maybe NetworkInterfaceAssociation)+niAssociation = lens _niAssociation (\ s a -> s{_niAssociation = a});++instance FromXML NetworkInterface where+        parseXML x+          = NetworkInterface' <$>+              (x .@? "groupSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "status")+                <*>+                (x .@? "privateIpAddressesSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "sourceDestCheck")+                <*> (x .@? "interfaceType")+                <*> (x .@? "vpcId")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "requesterManaged")+                <*> (x .@? "networkInterfaceId")+                <*> (x .@? "subnetId")+                <*> (x .@? "macAddress")+                <*> (x .@? "attachment")+                <*> (x .@? "ownerId")+                <*> (x .@? "availabilityZone")+                <*> (x .@? "privateIpAddress")+                <*> (x .@? "privateDnsName")+                <*> (x .@? "requesterId")+                <*> (x .@? "description")+                <*> (x .@? "association")++instance Hashable NetworkInterface++-- | Describes association information for an Elastic IP address.+--+-- /See:/ 'networkInterfaceAssociation' smart constructor.+data NetworkInterfaceAssociation = NetworkInterfaceAssociation'+    { _niaAssociationId :: !(Maybe Text)+    , _niaPublicDNSName :: !(Maybe Text)+    , _niaAllocationId  :: !(Maybe Text)+    , _niaIPOwnerId     :: !(Maybe Text)+    , _niaPublicIP      :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'NetworkInterfaceAssociation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'niaAssociationId'+--+-- * 'niaPublicDNSName'+--+-- * 'niaAllocationId'+--+-- * 'niaIPOwnerId'+--+-- * 'niaPublicIP'+networkInterfaceAssociation+    :: NetworkInterfaceAssociation+networkInterfaceAssociation =+    NetworkInterfaceAssociation'+    { _niaAssociationId = Nothing+    , _niaPublicDNSName = Nothing+    , _niaAllocationId = Nothing+    , _niaIPOwnerId = Nothing+    , _niaPublicIP = Nothing+    }++-- | The association ID.+niaAssociationId :: Lens' NetworkInterfaceAssociation (Maybe Text)+niaAssociationId = lens _niaAssociationId (\ s a -> s{_niaAssociationId = a});++-- | The public DNS name.+niaPublicDNSName :: Lens' NetworkInterfaceAssociation (Maybe Text)+niaPublicDNSName = lens _niaPublicDNSName (\ s a -> s{_niaPublicDNSName = a});++-- | The allocation ID.+niaAllocationId :: Lens' NetworkInterfaceAssociation (Maybe Text)+niaAllocationId = lens _niaAllocationId (\ s a -> s{_niaAllocationId = a});++-- | The ID of the Elastic IP address owner.+niaIPOwnerId :: Lens' NetworkInterfaceAssociation (Maybe Text)+niaIPOwnerId = lens _niaIPOwnerId (\ s a -> s{_niaIPOwnerId = a});++-- | The address of the Elastic IP address bound to the network interface.+niaPublicIP :: Lens' NetworkInterfaceAssociation (Maybe Text)+niaPublicIP = lens _niaPublicIP (\ s a -> s{_niaPublicIP = a});++instance FromXML NetworkInterfaceAssociation where+        parseXML x+          = NetworkInterfaceAssociation' <$>+              (x .@? "associationId") <*> (x .@? "publicDnsName")+                <*> (x .@? "allocationId")+                <*> (x .@? "ipOwnerId")+                <*> (x .@? "publicIp")++instance Hashable NetworkInterfaceAssociation++-- | Describes a network interface attachment.+--+-- /See:/ 'networkInterfaceAttachment' smart constructor.+data NetworkInterfaceAttachment = NetworkInterfaceAttachment'+    { _niaInstanceId          :: !(Maybe Text)+    , _niaStatus              :: !(Maybe AttachmentStatus)+    , _niaDeleteOnTermination :: !(Maybe Bool)+    , _niaAttachmentId        :: !(Maybe Text)+    , _niaInstanceOwnerId     :: !(Maybe Text)+    , _niaAttachTime          :: !(Maybe ISO8601)+    , _niaDeviceIndex         :: !(Maybe Int)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'NetworkInterfaceAttachment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'niaInstanceId'+--+-- * 'niaStatus'+--+-- * 'niaDeleteOnTermination'+--+-- * 'niaAttachmentId'+--+-- * 'niaInstanceOwnerId'+--+-- * 'niaAttachTime'+--+-- * 'niaDeviceIndex'+networkInterfaceAttachment+    :: NetworkInterfaceAttachment+networkInterfaceAttachment =+    NetworkInterfaceAttachment'+    { _niaInstanceId = Nothing+    , _niaStatus = Nothing+    , _niaDeleteOnTermination = Nothing+    , _niaAttachmentId = Nothing+    , _niaInstanceOwnerId = Nothing+    , _niaAttachTime = Nothing+    , _niaDeviceIndex = Nothing+    }++-- | The ID of the instance.+niaInstanceId :: Lens' NetworkInterfaceAttachment (Maybe Text)+niaInstanceId = lens _niaInstanceId (\ s a -> s{_niaInstanceId = a});++-- | The attachment state.+niaStatus :: Lens' NetworkInterfaceAttachment (Maybe AttachmentStatus)+niaStatus = lens _niaStatus (\ s a -> s{_niaStatus = a});++-- | Indicates whether the network interface is deleted when the instance is+-- terminated.+niaDeleteOnTermination :: Lens' NetworkInterfaceAttachment (Maybe Bool)+niaDeleteOnTermination = lens _niaDeleteOnTermination (\ s a -> s{_niaDeleteOnTermination = a});++-- | The ID of the network interface attachment.+niaAttachmentId :: Lens' NetworkInterfaceAttachment (Maybe Text)+niaAttachmentId = lens _niaAttachmentId (\ s a -> s{_niaAttachmentId = a});++-- | The AWS account ID of the owner of the instance.+niaInstanceOwnerId :: Lens' NetworkInterfaceAttachment (Maybe Text)+niaInstanceOwnerId = lens _niaInstanceOwnerId (\ s a -> s{_niaInstanceOwnerId = a});++-- | The timestamp indicating when the attachment initiated.+niaAttachTime :: Lens' NetworkInterfaceAttachment (Maybe UTCTime)+niaAttachTime = lens _niaAttachTime (\ s a -> s{_niaAttachTime = a}) . mapping _Time;++-- | The device index of the network interface attachment on the instance.+niaDeviceIndex :: Lens' NetworkInterfaceAttachment (Maybe Int)+niaDeviceIndex = lens _niaDeviceIndex (\ s a -> s{_niaDeviceIndex = a});++instance FromXML NetworkInterfaceAttachment where+        parseXML x+          = NetworkInterfaceAttachment' <$>+              (x .@? "instanceId") <*> (x .@? "status") <*>+                (x .@? "deleteOnTermination")+                <*> (x .@? "attachmentId")+                <*> (x .@? "instanceOwnerId")+                <*> (x .@? "attachTime")+                <*> (x .@? "deviceIndex")++instance Hashable NetworkInterfaceAttachment++-- | Describes an attachment change.+--+-- /See:/ 'networkInterfaceAttachmentChanges' smart constructor.+data NetworkInterfaceAttachmentChanges = NetworkInterfaceAttachmentChanges'+    { _niacDeleteOnTermination :: !(Maybe Bool)+    , _niacAttachmentId        :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'NetworkInterfaceAttachmentChanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'niacDeleteOnTermination'+--+-- * 'niacAttachmentId'+networkInterfaceAttachmentChanges+    :: NetworkInterfaceAttachmentChanges+networkInterfaceAttachmentChanges =+    NetworkInterfaceAttachmentChanges'+    { _niacDeleteOnTermination = Nothing+    , _niacAttachmentId = Nothing+    }++-- | Indicates whether the network interface is deleted when the instance is+-- terminated.+niacDeleteOnTermination :: Lens' NetworkInterfaceAttachmentChanges (Maybe Bool)+niacDeleteOnTermination = lens _niacDeleteOnTermination (\ s a -> s{_niacDeleteOnTermination = a});++-- | The ID of the network interface attachment.+niacAttachmentId :: Lens' NetworkInterfaceAttachmentChanges (Maybe Text)+niacAttachmentId = lens _niacAttachmentId (\ s a -> s{_niacAttachmentId = a});++instance Hashable NetworkInterfaceAttachmentChanges++instance ToQuery NetworkInterfaceAttachmentChanges+         where+        toQuery NetworkInterfaceAttachmentChanges'{..}+          = mconcat+              ["DeleteOnTermination" =: _niacDeleteOnTermination,+               "AttachmentId" =: _niacAttachmentId]++-- | Describes the private IP address of a network interface.+--+-- /See:/ 'networkInterfacePrivateIPAddress' smart constructor.+data NetworkInterfacePrivateIPAddress = NetworkInterfacePrivateIPAddress'+    { _nipiaPrimary          :: !(Maybe Bool)+    , _nipiaPrivateIPAddress :: !(Maybe Text)+    , _nipiaPrivateDNSName   :: !(Maybe Text)+    , _nipiaAssociation      :: !(Maybe NetworkInterfaceAssociation)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'NetworkInterfacePrivateIPAddress' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nipiaPrimary'+--+-- * 'nipiaPrivateIPAddress'+--+-- * 'nipiaPrivateDNSName'+--+-- * 'nipiaAssociation'+networkInterfacePrivateIPAddress+    :: NetworkInterfacePrivateIPAddress+networkInterfacePrivateIPAddress =+    NetworkInterfacePrivateIPAddress'+    { _nipiaPrimary = Nothing+    , _nipiaPrivateIPAddress = Nothing+    , _nipiaPrivateDNSName = Nothing+    , _nipiaAssociation = Nothing+    }++-- | Indicates whether this IP address is the primary private IP address of+-- the network interface.+nipiaPrimary :: Lens' NetworkInterfacePrivateIPAddress (Maybe Bool)+nipiaPrimary = lens _nipiaPrimary (\ s a -> s{_nipiaPrimary = a});++-- | The private IP address.+nipiaPrivateIPAddress :: Lens' NetworkInterfacePrivateIPAddress (Maybe Text)+nipiaPrivateIPAddress = lens _nipiaPrivateIPAddress (\ s a -> s{_nipiaPrivateIPAddress = a});++-- | The private DNS name.+nipiaPrivateDNSName :: Lens' NetworkInterfacePrivateIPAddress (Maybe Text)+nipiaPrivateDNSName = lens _nipiaPrivateDNSName (\ s a -> s{_nipiaPrivateDNSName = a});++-- | The association information for an Elastic IP address associated with+-- the network interface.+nipiaAssociation :: Lens' NetworkInterfacePrivateIPAddress (Maybe NetworkInterfaceAssociation)+nipiaAssociation = lens _nipiaAssociation (\ s a -> s{_nipiaAssociation = a});++instance FromXML NetworkInterfacePrivateIPAddress+         where+        parseXML x+          = NetworkInterfacePrivateIPAddress' <$>+              (x .@? "primary") <*> (x .@? "privateIpAddress") <*>+                (x .@? "privateDnsName")+                <*> (x .@? "association")++instance Hashable NetworkInterfacePrivateIPAddress++-- | /See:/ 'newDHCPConfiguration' smart constructor.+data NewDHCPConfiguration = NewDHCPConfiguration'+    { _ndcValues :: !(Maybe [Text])+    , _ndcKey    :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'NewDHCPConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ndcValues'+--+-- * 'ndcKey'+newDHCPConfiguration+    :: NewDHCPConfiguration+newDHCPConfiguration =+    NewDHCPConfiguration'+    { _ndcValues = Nothing+    , _ndcKey = Nothing+    }++-- | Undocumented member.+ndcValues :: Lens' NewDHCPConfiguration [Text]+ndcValues = lens _ndcValues (\ s a -> s{_ndcValues = a}) . _Default . _Coerce;++-- | Undocumented member.+ndcKey :: Lens' NewDHCPConfiguration (Maybe Text)+ndcKey = lens _ndcKey (\ s a -> s{_ndcKey = a});++instance Hashable NewDHCPConfiguration++instance ToQuery NewDHCPConfiguration where+        toQuery NewDHCPConfiguration'{..}+          = mconcat+              [toQuery (toQueryList "Value" <$> _ndcValues),+               "Key" =: _ndcKey]++-- | Describes the placement for the instance.+--+-- /See:/ 'placement' smart constructor.+data Placement = Placement'+    { _pAffinity         :: !(Maybe Text)+    , _pHostId           :: !(Maybe Text)+    , _pAvailabilityZone :: !(Maybe Text)+    , _pTenancy          :: !(Maybe Tenancy)+    , _pGroupName        :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Placement' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pAffinity'+--+-- * 'pHostId'+--+-- * 'pAvailabilityZone'+--+-- * 'pTenancy'+--+-- * 'pGroupName'+placement+    :: Placement+placement =+    Placement'+    { _pAffinity = Nothing+    , _pHostId = Nothing+    , _pAvailabilityZone = Nothing+    , _pTenancy = Nothing+    , _pGroupName = Nothing+    }++-- | The affinity setting for the instance on the Dedicated host. This+-- parameter is not supported for the < ImportInstance> command.+pAffinity :: Lens' Placement (Maybe Text)+pAffinity = lens _pAffinity (\ s a -> s{_pAffinity = a});++-- | The ID of the Dedicted host on which the instance resides. This+-- parameter is not support for the < ImportInstance> command.+pHostId :: Lens' Placement (Maybe Text)+pHostId = lens _pHostId (\ s a -> s{_pHostId = a});++-- | The Availability Zone of the instance.+pAvailabilityZone :: Lens' Placement (Maybe Text)+pAvailabilityZone = lens _pAvailabilityZone (\ s a -> s{_pAvailabilityZone = a});++-- | The tenancy of the instance (if the instance is running in a VPC). An+-- instance with a tenancy of 'dedicated' runs on single-tenant hardware.+-- The 'host' tenancy is not supported for the < ImportInstance> command.+pTenancy :: Lens' Placement (Maybe Tenancy)+pTenancy = lens _pTenancy (\ s a -> s{_pTenancy = a});++-- | The name of the placement group the instance is in (for cluster compute+-- instances).+pGroupName :: Lens' Placement (Maybe Text)+pGroupName = lens _pGroupName (\ s a -> s{_pGroupName = a});++instance FromXML Placement where+        parseXML x+          = Placement' <$>+              (x .@? "affinity") <*> (x .@? "hostId") <*>+                (x .@? "availabilityZone")+                <*> (x .@? "tenancy")+                <*> (x .@? "groupName")++instance Hashable Placement++instance ToQuery Placement where+        toQuery Placement'{..}+          = mconcat+              ["Affinity" =: _pAffinity, "HostId" =: _pHostId,+               "AvailabilityZone" =: _pAvailabilityZone,+               "Tenancy" =: _pTenancy, "GroupName" =: _pGroupName]++-- | Describes a placement group.+--+-- /See:/ 'placementGroup' smart constructor.+data PlacementGroup = PlacementGroup'+    { _pgState     :: !(Maybe PlacementGroupState)+    , _pgStrategy  :: !(Maybe PlacementStrategy)+    , _pgGroupName :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PlacementGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pgState'+--+-- * 'pgStrategy'+--+-- * 'pgGroupName'+placementGroup+    :: PlacementGroup+placementGroup =+    PlacementGroup'+    { _pgState = Nothing+    , _pgStrategy = Nothing+    , _pgGroupName = Nothing+    }++-- | The state of the placement group.+pgState :: Lens' PlacementGroup (Maybe PlacementGroupState)+pgState = lens _pgState (\ s a -> s{_pgState = a});++-- | The placement strategy.+pgStrategy :: Lens' PlacementGroup (Maybe PlacementStrategy)+pgStrategy = lens _pgStrategy (\ s a -> s{_pgStrategy = a});++-- | The name of the placement group.+pgGroupName :: Lens' PlacementGroup (Maybe Text)+pgGroupName = lens _pgGroupName (\ s a -> s{_pgGroupName = a});++instance FromXML PlacementGroup where+        parseXML x+          = PlacementGroup' <$>+              (x .@? "state") <*> (x .@? "strategy") <*>+                (x .@? "groupName")++instance Hashable PlacementGroup++-- | Describes a range of ports.+--+-- /See:/ 'portRange' smart constructor.+data PortRange = PortRange'+    { _prTo   :: !(Maybe Int)+    , _prFrom :: !(Maybe Int)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PortRange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'prTo'+--+-- * 'prFrom'+portRange+    :: PortRange+portRange =+    PortRange'+    { _prTo = Nothing+    , _prFrom = Nothing+    }++-- | The last port in the range.+prTo :: Lens' PortRange (Maybe Int)+prTo = lens _prTo (\ s a -> s{_prTo = a});++-- | The first port in the range.+prFrom :: Lens' PortRange (Maybe Int)+prFrom = lens _prFrom (\ s a -> s{_prFrom = a});++instance FromXML PortRange where+        parseXML x+          = PortRange' <$> (x .@? "to") <*> (x .@? "from")++instance Hashable PortRange++instance ToQuery PortRange where+        toQuery PortRange'{..}+          = mconcat ["To" =: _prTo, "From" =: _prFrom]++-- | Describes prefixes for AWS services.+--+-- /See:/ 'prefixList' smart constructor.+data PrefixList = PrefixList'+    { _plCIdRs          :: !(Maybe [Text])+    , _plPrefixListId   :: !(Maybe Text)+    , _plPrefixListName :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PrefixList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plCIdRs'+--+-- * 'plPrefixListId'+--+-- * 'plPrefixListName'+prefixList+    :: PrefixList+prefixList =+    PrefixList'+    { _plCIdRs = Nothing+    , _plPrefixListId = Nothing+    , _plPrefixListName = Nothing+    }++-- | The IP address range of the AWS service.+plCIdRs :: Lens' PrefixList [Text]+plCIdRs = lens _plCIdRs (\ s a -> s{_plCIdRs = a}) . _Default . _Coerce;++-- | The ID of the prefix.+plPrefixListId :: Lens' PrefixList (Maybe Text)+plPrefixListId = lens _plPrefixListId (\ s a -> s{_plPrefixListId = a});++-- | The name of the prefix.+plPrefixListName :: Lens' PrefixList (Maybe Text)+plPrefixListName = lens _plPrefixListName (\ s a -> s{_plPrefixListName = a});++instance FromXML PrefixList where+        parseXML x+          = PrefixList' <$>+              (x .@? "cidrSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "prefixListId")+                <*> (x .@? "prefixListName")++instance Hashable PrefixList++-- | The ID of the prefix.+--+-- /See:/ 'prefixListId' smart constructor.+newtype PrefixListId = PrefixListId'+    { _pliPrefixListId :: Maybe Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PrefixListId' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pliPrefixListId'+prefixListId+    :: PrefixListId+prefixListId =+    PrefixListId'+    { _pliPrefixListId = Nothing+    }++-- | The ID of the prefix.+pliPrefixListId :: Lens' PrefixListId (Maybe Text)+pliPrefixListId = lens _pliPrefixListId (\ s a -> s{_pliPrefixListId = a});++instance FromXML PrefixListId where+        parseXML x = PrefixListId' <$> (x .@? "prefixListId")++instance Hashable PrefixListId++instance ToQuery PrefixListId where+        toQuery PrefixListId'{..}+          = mconcat ["PrefixListId" =: _pliPrefixListId]++-- | Describes the price for a Reserved Instance.+--+-- /See:/ 'priceSchedule' smart constructor.+data PriceSchedule = PriceSchedule'+    { _psCurrencyCode :: !(Maybe CurrencyCodeValues)+    , _psTerm         :: !(Maybe Integer)+    , _psActive       :: !(Maybe Bool)+    , _psPrice        :: !(Maybe Double)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PriceSchedule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'psCurrencyCode'+--+-- * 'psTerm'+--+-- * 'psActive'+--+-- * 'psPrice'+priceSchedule+    :: PriceSchedule+priceSchedule =+    PriceSchedule'+    { _psCurrencyCode = Nothing+    , _psTerm = Nothing+    , _psActive = Nothing+    , _psPrice = Nothing+    }++-- | The currency for transacting the Reserved Instance resale. At this time,+-- the only supported currency is 'USD'.+psCurrencyCode :: Lens' PriceSchedule (Maybe CurrencyCodeValues)+psCurrencyCode = lens _psCurrencyCode (\ s a -> s{_psCurrencyCode = a});++-- | The number of months remaining in the reservation. For example, 2 is the+-- second to the last month before the capacity reservation expires.+psTerm :: Lens' PriceSchedule (Maybe Integer)+psTerm = lens _psTerm (\ s a -> s{_psTerm = a});++-- | The current price schedule, as determined by the term remaining for the+-- Reserved Instance in the listing.+--+-- A specific price schedule is always in effect, but only one price+-- schedule can be active at any time. Take, for example, a Reserved+-- Instance listing that has five months remaining in its term. When you+-- specify price schedules for five months and two months, this means that+-- schedule 1, covering the first three months of the remaining term, will+-- be active during months 5, 4, and 3. Then schedule 2, covering the last+-- two months of the term, will be active for months 2 and 1.+psActive :: Lens' PriceSchedule (Maybe Bool)+psActive = lens _psActive (\ s a -> s{_psActive = a});++-- | The fixed price for the term.+psPrice :: Lens' PriceSchedule (Maybe Double)+psPrice = lens _psPrice (\ s a -> s{_psPrice = a});++instance FromXML PriceSchedule where+        parseXML x+          = PriceSchedule' <$>+              (x .@? "currencyCode") <*> (x .@? "term") <*>+                (x .@? "active")+                <*> (x .@? "price")++instance Hashable PriceSchedule++-- | Describes the price for a Reserved Instance.+--+-- /See:/ 'priceScheduleSpecification' smart constructor.+data PriceScheduleSpecification = PriceScheduleSpecification'+    { _pssCurrencyCode :: !(Maybe CurrencyCodeValues)+    , _pssTerm         :: !(Maybe Integer)+    , _pssPrice        :: !(Maybe Double)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PriceScheduleSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pssCurrencyCode'+--+-- * 'pssTerm'+--+-- * 'pssPrice'+priceScheduleSpecification+    :: PriceScheduleSpecification+priceScheduleSpecification =+    PriceScheduleSpecification'+    { _pssCurrencyCode = Nothing+    , _pssTerm = Nothing+    , _pssPrice = Nothing+    }++-- | The currency for transacting the Reserved Instance resale. At this time,+-- the only supported currency is 'USD'.+pssCurrencyCode :: Lens' PriceScheduleSpecification (Maybe CurrencyCodeValues)+pssCurrencyCode = lens _pssCurrencyCode (\ s a -> s{_pssCurrencyCode = a});++-- | The number of months remaining in the reservation. For example, 2 is the+-- second to the last month before the capacity reservation expires.+pssTerm :: Lens' PriceScheduleSpecification (Maybe Integer)+pssTerm = lens _pssTerm (\ s a -> s{_pssTerm = a});++-- | The fixed price for the term.+pssPrice :: Lens' PriceScheduleSpecification (Maybe Double)+pssPrice = lens _pssPrice (\ s a -> s{_pssPrice = a});++instance Hashable PriceScheduleSpecification++instance ToQuery PriceScheduleSpecification where+        toQuery PriceScheduleSpecification'{..}+          = mconcat+              ["CurrencyCode" =: _pssCurrencyCode,+               "Term" =: _pssTerm, "Price" =: _pssPrice]++-- | Describes a Reserved Instance offering.+--+-- /See:/ 'pricingDetail' smart constructor.+data PricingDetail = PricingDetail'+    { _pdCount :: !(Maybe Int)+    , _pdPrice :: !(Maybe Double)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PricingDetail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdCount'+--+-- * 'pdPrice'+pricingDetail+    :: PricingDetail+pricingDetail =+    PricingDetail'+    { _pdCount = Nothing+    , _pdPrice = Nothing+    }++-- | The number of reservations available for the price.+pdCount :: Lens' PricingDetail (Maybe Int)+pdCount = lens _pdCount (\ s a -> s{_pdCount = a});++-- | The price per instance.+pdPrice :: Lens' PricingDetail (Maybe Double)+pdPrice = lens _pdPrice (\ s a -> s{_pdPrice = a});++instance FromXML PricingDetail where+        parseXML x+          = PricingDetail' <$>+              (x .@? "count") <*> (x .@? "price")++instance Hashable PricingDetail++-- | Describes a secondary private IP address for a network interface.+--+-- /See:/ 'privateIPAddressSpecification' smart constructor.+data PrivateIPAddressSpecification = PrivateIPAddressSpecification'+    { _piasPrimary          :: !(Maybe Bool)+    , _piasPrivateIPAddress :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PrivateIPAddressSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'piasPrimary'+--+-- * 'piasPrivateIPAddress'+privateIPAddressSpecification+    :: Text -- ^ 'piasPrivateIPAddress'+    -> PrivateIPAddressSpecification+privateIPAddressSpecification pPrivateIPAddress_ =+    PrivateIPAddressSpecification'+    { _piasPrimary = Nothing+    , _piasPrivateIPAddress = pPrivateIPAddress_+    }++-- | Indicates whether the private IP address is the primary private IP+-- address. Only one IP address can be designated as primary.+piasPrimary :: Lens' PrivateIPAddressSpecification (Maybe Bool)+piasPrimary = lens _piasPrimary (\ s a -> s{_piasPrimary = a});++-- | The private IP addresses.+piasPrivateIPAddress :: Lens' PrivateIPAddressSpecification Text+piasPrivateIPAddress = lens _piasPrivateIPAddress (\ s a -> s{_piasPrivateIPAddress = a});++instance FromXML PrivateIPAddressSpecification where+        parseXML x+          = PrivateIPAddressSpecification' <$>+              (x .@? "primary") <*> (x .@ "privateIpAddress")++instance Hashable PrivateIPAddressSpecification++instance ToQuery PrivateIPAddressSpecification where+        toQuery PrivateIPAddressSpecification'{..}+          = mconcat+              ["Primary" =: _piasPrimary,+               "PrivateIpAddress" =: _piasPrivateIPAddress]++-- | Describes a product code.+--+-- /See:/ 'productCode' smart constructor.+data ProductCode = ProductCode'+    { _pcProductCodeType :: !(Maybe ProductCodeValues)+    , _pcProductCodeId   :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProductCode' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pcProductCodeType'+--+-- * 'pcProductCodeId'+productCode+    :: ProductCode+productCode =+    ProductCode'+    { _pcProductCodeType = Nothing+    , _pcProductCodeId = Nothing+    }++-- | The type of product code.+pcProductCodeType :: Lens' ProductCode (Maybe ProductCodeValues)+pcProductCodeType = lens _pcProductCodeType (\ s a -> s{_pcProductCodeType = a});++-- | The product code.+pcProductCodeId :: Lens' ProductCode (Maybe Text)+pcProductCodeId = lens _pcProductCodeId (\ s a -> s{_pcProductCodeId = a});++instance FromXML ProductCode where+        parseXML x+          = ProductCode' <$>+              (x .@? "type") <*> (x .@? "productCode")++instance Hashable ProductCode++-- | Describes a virtual private gateway propagating route.+--+-- /See:/ 'propagatingVGW' smart constructor.+newtype PropagatingVGW = PropagatingVGW'+    { _pvGatewayId :: Maybe Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PropagatingVGW' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pvGatewayId'+propagatingVGW+    :: PropagatingVGW+propagatingVGW =+    PropagatingVGW'+    { _pvGatewayId = Nothing+    }++-- | The ID of the virtual private gateway (VGW).+pvGatewayId :: Lens' PropagatingVGW (Maybe Text)+pvGatewayId = lens _pvGatewayId (\ s a -> s{_pvGatewayId = a});++instance FromXML PropagatingVGW where+        parseXML x = PropagatingVGW' <$> (x .@? "gatewayId")++instance Hashable PropagatingVGW++-- | Describes a request to purchase Scheduled Instances.+--+-- /See:/ 'purchaseRequest' smart constructor.+data PurchaseRequest = PurchaseRequest'+    { _prPurchaseToken :: !Text+    , _prInstanceCount :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PurchaseRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'prPurchaseToken'+--+-- * 'prInstanceCount'+purchaseRequest+    :: Text -- ^ 'prPurchaseToken'+    -> Int -- ^ 'prInstanceCount'+    -> PurchaseRequest+purchaseRequest pPurchaseToken_ pInstanceCount_ =+    PurchaseRequest'+    { _prPurchaseToken = pPurchaseToken_+    , _prInstanceCount = pInstanceCount_+    }++-- | The purchase token.+prPurchaseToken :: Lens' PurchaseRequest Text+prPurchaseToken = lens _prPurchaseToken (\ s a -> s{_prPurchaseToken = a});++-- | The number of instances.+prInstanceCount :: Lens' PurchaseRequest Int+prInstanceCount = lens _prInstanceCount (\ s a -> s{_prInstanceCount = a});++instance Hashable PurchaseRequest++instance ToQuery PurchaseRequest where+        toQuery PurchaseRequest'{..}+          = mconcat+              ["PurchaseToken" =: _prPurchaseToken,+               "InstanceCount" =: _prInstanceCount]++-- | Describes a recurring charge.+--+-- /See:/ 'recurringCharge' smart constructor.+data RecurringCharge = RecurringCharge'+    { _rcAmount    :: !(Maybe Double)+    , _rcFrequency :: !(Maybe RecurringChargeFrequency)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RecurringCharge' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rcAmount'+--+-- * 'rcFrequency'+recurringCharge+    :: RecurringCharge+recurringCharge =+    RecurringCharge'+    { _rcAmount = Nothing+    , _rcFrequency = Nothing+    }++-- | The amount of the recurring charge.+rcAmount :: Lens' RecurringCharge (Maybe Double)+rcAmount = lens _rcAmount (\ s a -> s{_rcAmount = a});++-- | The frequency of the recurring charge.+rcFrequency :: Lens' RecurringCharge (Maybe RecurringChargeFrequency)+rcFrequency = lens _rcFrequency (\ s a -> s{_rcFrequency = a});++instance FromXML RecurringCharge where+        parseXML x+          = RecurringCharge' <$>+              (x .@? "amount") <*> (x .@? "frequency")++instance Hashable RecurringCharge++-- | Describes a region.+--+-- /See:/ 'regionInfo' smart constructor.+data RegionInfo = RegionInfo'+    { _riRegionName :: !(Maybe Text)+    , _riEndpoint   :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RegionInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'riRegionName'+--+-- * 'riEndpoint'+regionInfo+    :: RegionInfo+regionInfo =+    RegionInfo'+    { _riRegionName = Nothing+    , _riEndpoint = Nothing+    }++-- | The name of the region.+riRegionName :: Lens' RegionInfo (Maybe Text)+riRegionName = lens _riRegionName (\ s a -> s{_riRegionName = a});++-- | The region service endpoint.+riEndpoint :: Lens' RegionInfo (Maybe Text)+riEndpoint = lens _riEndpoint (\ s a -> s{_riEndpoint = a});++instance FromXML RegionInfo where+        parseXML x+          = RegionInfo' <$>+              (x .@? "regionName") <*> (x .@? "regionEndpoint")++instance Hashable RegionInfo++-- | Describes the launch specification for an instance.+--+-- /See:/ 'requestSpotLaunchSpecification' smart constructor.+data RequestSpotLaunchSpecification = RequestSpotLaunchSpecification'+    { _rslsSecurityGroupIds    :: !(Maybe [Text])+    , _rslsSecurityGroups      :: !(Maybe [Text])+    , _rslsKeyName             :: !(Maybe Text)+    , _rslsNetworkInterfaces   :: !(Maybe [InstanceNetworkInterfaceSpecification])+    , _rslsRAMDiskId           :: !(Maybe Text)+    , _rslsSubnetId            :: !(Maybe Text)+    , _rslsKernelId            :: !(Maybe Text)+    , _rslsInstanceType        :: !(Maybe InstanceType)+    , _rslsEBSOptimized        :: !(Maybe Bool)+    , _rslsUserData            :: !(Maybe Text)+    , _rslsMonitoring          :: !(Maybe RunInstancesMonitoringEnabled)+    , _rslsIAMInstanceProfile  :: !(Maybe IAMInstanceProfileSpecification)+    , _rslsImageId             :: !(Maybe Text)+    , _rslsAddressingType      :: !(Maybe Text)+    , _rslsBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])+    , _rslsPlacement           :: !(Maybe SpotPlacement)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RequestSpotLaunchSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rslsSecurityGroupIds'+--+-- * 'rslsSecurityGroups'+--+-- * 'rslsKeyName'+--+-- * 'rslsNetworkInterfaces'+--+-- * 'rslsRAMDiskId'+--+-- * 'rslsSubnetId'+--+-- * 'rslsKernelId'+--+-- * 'rslsInstanceType'+--+-- * 'rslsEBSOptimized'+--+-- * 'rslsUserData'+--+-- * 'rslsMonitoring'+--+-- * 'rslsIAMInstanceProfile'+--+-- * 'rslsImageId'+--+-- * 'rslsAddressingType'+--+-- * 'rslsBlockDeviceMappings'+--+-- * 'rslsPlacement'+requestSpotLaunchSpecification+    :: RequestSpotLaunchSpecification+requestSpotLaunchSpecification =+    RequestSpotLaunchSpecification'+    { _rslsSecurityGroupIds = Nothing+    , _rslsSecurityGroups = Nothing+    , _rslsKeyName = Nothing+    , _rslsNetworkInterfaces = Nothing+    , _rslsRAMDiskId = Nothing+    , _rslsSubnetId = Nothing+    , _rslsKernelId = Nothing+    , _rslsInstanceType = Nothing+    , _rslsEBSOptimized = Nothing+    , _rslsUserData = Nothing+    , _rslsMonitoring = Nothing+    , _rslsIAMInstanceProfile = Nothing+    , _rslsImageId = Nothing+    , _rslsAddressingType = Nothing+    , _rslsBlockDeviceMappings = Nothing+    , _rslsPlacement = Nothing+    }++-- | Undocumented member.+rslsSecurityGroupIds :: Lens' RequestSpotLaunchSpecification [Text]+rslsSecurityGroupIds = lens _rslsSecurityGroupIds (\ s a -> s{_rslsSecurityGroupIds = a}) . _Default . _Coerce;++-- | Undocumented member.+rslsSecurityGroups :: Lens' RequestSpotLaunchSpecification [Text]+rslsSecurityGroups = lens _rslsSecurityGroups (\ s a -> s{_rslsSecurityGroups = a}) . _Default . _Coerce;++-- | The name of the key pair.+rslsKeyName :: Lens' RequestSpotLaunchSpecification (Maybe Text)+rslsKeyName = lens _rslsKeyName (\ s a -> s{_rslsKeyName = a});++-- | One or more network interfaces.+rslsNetworkInterfaces :: Lens' RequestSpotLaunchSpecification [InstanceNetworkInterfaceSpecification]+rslsNetworkInterfaces = lens _rslsNetworkInterfaces (\ s a -> s{_rslsNetworkInterfaces = a}) . _Default . _Coerce;++-- | The ID of the RAM disk.+rslsRAMDiskId :: Lens' RequestSpotLaunchSpecification (Maybe Text)+rslsRAMDiskId = lens _rslsRAMDiskId (\ s a -> s{_rslsRAMDiskId = a});++-- | The ID of the subnet in which to launch the instance.+rslsSubnetId :: Lens' RequestSpotLaunchSpecification (Maybe Text)+rslsSubnetId = lens _rslsSubnetId (\ s a -> s{_rslsSubnetId = a});++-- | The ID of the kernel.+rslsKernelId :: Lens' RequestSpotLaunchSpecification (Maybe Text)+rslsKernelId = lens _rslsKernelId (\ s a -> s{_rslsKernelId = a});++-- | The instance type.+rslsInstanceType :: Lens' RequestSpotLaunchSpecification (Maybe InstanceType)+rslsInstanceType = lens _rslsInstanceType (\ s a -> s{_rslsInstanceType = a});++-- | Indicates whether the instance is optimized for EBS I\/O. This+-- optimization provides dedicated throughput to Amazon EBS and an+-- optimized configuration stack to provide optimal EBS I\/O performance.+-- This optimization isn\'t available with all instance types. Additional+-- usage charges apply when using an EBS Optimized instance.+--+-- Default: 'false'+rslsEBSOptimized :: Lens' RequestSpotLaunchSpecification (Maybe Bool)+rslsEBSOptimized = lens _rslsEBSOptimized (\ s a -> s{_rslsEBSOptimized = a});++-- | The Base64-encoded MIME user data to make available to the instances.+rslsUserData :: Lens' RequestSpotLaunchSpecification (Maybe Text)+rslsUserData = lens _rslsUserData (\ s a -> s{_rslsUserData = a});++-- | Undocumented member.+rslsMonitoring :: Lens' RequestSpotLaunchSpecification (Maybe RunInstancesMonitoringEnabled)+rslsMonitoring = lens _rslsMonitoring (\ s a -> s{_rslsMonitoring = a});++-- | The IAM instance profile.+rslsIAMInstanceProfile :: Lens' RequestSpotLaunchSpecification (Maybe IAMInstanceProfileSpecification)+rslsIAMInstanceProfile = lens _rslsIAMInstanceProfile (\ s a -> s{_rslsIAMInstanceProfile = a});++-- | The ID of the AMI.+rslsImageId :: Lens' RequestSpotLaunchSpecification (Maybe Text)+rslsImageId = lens _rslsImageId (\ s a -> s{_rslsImageId = a});++-- | Deprecated.+rslsAddressingType :: Lens' RequestSpotLaunchSpecification (Maybe Text)+rslsAddressingType = lens _rslsAddressingType (\ s a -> s{_rslsAddressingType = a});++-- | One or more block device mapping entries.+rslsBlockDeviceMappings :: Lens' RequestSpotLaunchSpecification [BlockDeviceMapping]+rslsBlockDeviceMappings = lens _rslsBlockDeviceMappings (\ s a -> s{_rslsBlockDeviceMappings = a}) . _Default . _Coerce;++-- | The placement information for the instance.+rslsPlacement :: Lens' RequestSpotLaunchSpecification (Maybe SpotPlacement)+rslsPlacement = lens _rslsPlacement (\ s a -> s{_rslsPlacement = a});++instance Hashable RequestSpotLaunchSpecification++instance ToQuery RequestSpotLaunchSpecification where+        toQuery RequestSpotLaunchSpecification'{..}+          = mconcat+              [toQuery+                 (toQueryList "SecurityGroupId" <$>+                    _rslsSecurityGroupIds),+               toQuery+                 (toQueryList "SecurityGroup" <$>+                    _rslsSecurityGroups),+               "KeyName" =: _rslsKeyName,+               toQuery+                 (toQueryList "NetworkInterface" <$>+                    _rslsNetworkInterfaces),+               "RamdiskId" =: _rslsRAMDiskId,+               "SubnetId" =: _rslsSubnetId,+               "KernelId" =: _rslsKernelId,+               "InstanceType" =: _rslsInstanceType,+               "EbsOptimized" =: _rslsEBSOptimized,+               "UserData" =: _rslsUserData,+               "Monitoring" =: _rslsMonitoring,+               "IamInstanceProfile" =: _rslsIAMInstanceProfile,+               "ImageId" =: _rslsImageId,+               "AddressingType" =: _rslsAddressingType,+               toQuery+                 (toQueryList "BlockDeviceMapping" <$>+                    _rslsBlockDeviceMappings),+               "Placement" =: _rslsPlacement]++-- | Describes a reservation.+--+-- /See:/ 'reservation' smart constructor.+data Reservation = Reservation'+    { _rGroups        :: !(Maybe [GroupIdentifier])+    , _rInstances     :: !(Maybe [Instance])+    , _rRequesterId   :: !(Maybe Text)+    , _rReservationId :: !Text+    , _rOwnerId       :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Reservation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rGroups'+--+-- * 'rInstances'+--+-- * 'rRequesterId'+--+-- * 'rReservationId'+--+-- * 'rOwnerId'+reservation+    :: Text -- ^ 'rReservationId'+    -> Text -- ^ 'rOwnerId'+    -> Reservation+reservation pReservationId_ pOwnerId_ =+    Reservation'+    { _rGroups = Nothing+    , _rInstances = Nothing+    , _rRequesterId = Nothing+    , _rReservationId = pReservationId_+    , _rOwnerId = pOwnerId_+    }++-- | [EC2-Classic only] One or more security groups.+rGroups :: Lens' Reservation [GroupIdentifier]+rGroups = lens _rGroups (\ s a -> s{_rGroups = a}) . _Default . _Coerce;++-- | One or more instances.+rInstances :: Lens' Reservation [Instance]+rInstances = lens _rInstances (\ s a -> s{_rInstances = a}) . _Default . _Coerce;++-- | The ID of the requester that launched the instances on your behalf (for+-- example, AWS Management Console or Auto Scaling).+rRequesterId :: Lens' Reservation (Maybe Text)+rRequesterId = lens _rRequesterId (\ s a -> s{_rRequesterId = a});++-- | The ID of the reservation.+rReservationId :: Lens' Reservation Text+rReservationId = lens _rReservationId (\ s a -> s{_rReservationId = a});++-- | The ID of the AWS account that owns the reservation.+rOwnerId :: Lens' Reservation Text+rOwnerId = lens _rOwnerId (\ s a -> s{_rOwnerId = a});++instance FromXML Reservation where+        parseXML x+          = Reservation' <$>+              (x .@? "groupSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*>+                (x .@? "instancesSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "requesterId")+                <*> (x .@ "reservationId")+                <*> (x .@ "ownerId")++instance Hashable Reservation++-- | Describes the limit price of a Reserved Instance offering.+--+-- /See:/ 'reservedInstanceLimitPrice' smart constructor.+data ReservedInstanceLimitPrice = ReservedInstanceLimitPrice'+    { _rilpAmount       :: !(Maybe Double)+    , _rilpCurrencyCode :: !(Maybe CurrencyCodeValues)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ReservedInstanceLimitPrice' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rilpAmount'+--+-- * 'rilpCurrencyCode'+reservedInstanceLimitPrice+    :: ReservedInstanceLimitPrice+reservedInstanceLimitPrice =+    ReservedInstanceLimitPrice'+    { _rilpAmount = Nothing+    , _rilpCurrencyCode = Nothing+    }++-- | Used for Reserved Instance Marketplace offerings. Specifies the limit+-- price on the total order (instanceCount * price).+rilpAmount :: Lens' ReservedInstanceLimitPrice (Maybe Double)+rilpAmount = lens _rilpAmount (\ s a -> s{_rilpAmount = a});++-- | The currency in which the 'limitPrice' amount is specified. At this+-- time, the only supported currency is 'USD'.+rilpCurrencyCode :: Lens' ReservedInstanceLimitPrice (Maybe CurrencyCodeValues)+rilpCurrencyCode = lens _rilpCurrencyCode (\ s a -> s{_rilpCurrencyCode = a});++instance Hashable ReservedInstanceLimitPrice++instance ToQuery ReservedInstanceLimitPrice where+        toQuery ReservedInstanceLimitPrice'{..}+          = mconcat+              ["Amount" =: _rilpAmount,+               "CurrencyCode" =: _rilpCurrencyCode]++-- | Describes a Reserved Instance.+--+-- /See:/ 'reservedInstances' smart constructor.+data ReservedInstances = ReservedInstances'+    { _riState               :: !(Maybe ReservedInstanceState)+    , _riCurrencyCode        :: !(Maybe CurrencyCodeValues)+    , _riInstanceCount       :: !(Maybe Int)+    , _riProductDescription  :: !(Maybe RIProductDescription)+    , _riStart               :: !(Maybe ISO8601)+    , _riInstanceType        :: !(Maybe InstanceType)+    , _riEnd                 :: !(Maybe ISO8601)+    , _riAvailabilityZone    :: !(Maybe Text)+    , _riRecurringCharges    :: !(Maybe [RecurringCharge])+    , _riOfferingType        :: !(Maybe OfferingTypeValues)+    , _riUsagePrice          :: !(Maybe Double)+    , _riFixedPrice          :: !(Maybe Double)+    , _riReservedInstancesId :: !(Maybe Text)+    , _riInstanceTenancy     :: !(Maybe Tenancy)+    , _riDuration            :: !(Maybe Integer)+    , _riTags                :: !(Maybe [Tag])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ReservedInstances' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'riState'+--+-- * 'riCurrencyCode'+--+-- * 'riInstanceCount'+--+-- * 'riProductDescription'+--+-- * 'riStart'+--+-- * 'riInstanceType'+--+-- * 'riEnd'+--+-- * 'riAvailabilityZone'+--+-- * 'riRecurringCharges'+--+-- * 'riOfferingType'+--+-- * 'riUsagePrice'+--+-- * 'riFixedPrice'+--+-- * 'riReservedInstancesId'+--+-- * 'riInstanceTenancy'+--+-- * 'riDuration'+--+-- * 'riTags'+reservedInstances+    :: ReservedInstances+reservedInstances =+    ReservedInstances'+    { _riState = Nothing+    , _riCurrencyCode = Nothing+    , _riInstanceCount = Nothing+    , _riProductDescription = Nothing+    , _riStart = Nothing+    , _riInstanceType = Nothing+    , _riEnd = Nothing+    , _riAvailabilityZone = Nothing+    , _riRecurringCharges = Nothing+    , _riOfferingType = Nothing+    , _riUsagePrice = Nothing+    , _riFixedPrice = Nothing+    , _riReservedInstancesId = Nothing+    , _riInstanceTenancy = Nothing+    , _riDuration = Nothing+    , _riTags = Nothing+    }++-- | The state of the Reserved Instance purchase.+riState :: Lens' ReservedInstances (Maybe ReservedInstanceState)+riState = lens _riState (\ s a -> s{_riState = a});++-- | The currency of the Reserved Instance. It\'s specified using ISO 4217+-- standard currency codes. At this time, the only supported currency is+-- 'USD'.+riCurrencyCode :: Lens' ReservedInstances (Maybe CurrencyCodeValues)+riCurrencyCode = lens _riCurrencyCode (\ s a -> s{_riCurrencyCode = a});++-- | The number of reservations purchased.+riInstanceCount :: Lens' ReservedInstances (Maybe Int)+riInstanceCount = lens _riInstanceCount (\ s a -> s{_riInstanceCount = a});++-- | The Reserved Instance product platform description.+riProductDescription :: Lens' ReservedInstances (Maybe RIProductDescription)+riProductDescription = lens _riProductDescription (\ s a -> s{_riProductDescription = a});++-- | The date and time the Reserved Instance started.+riStart :: Lens' ReservedInstances (Maybe UTCTime)+riStart = lens _riStart (\ s a -> s{_riStart = a}) . mapping _Time;++-- | The instance type on which the Reserved Instance can be used.+riInstanceType :: Lens' ReservedInstances (Maybe InstanceType)+riInstanceType = lens _riInstanceType (\ s a -> s{_riInstanceType = a});++-- | The time when the Reserved Instance expires.+riEnd :: Lens' ReservedInstances (Maybe UTCTime)+riEnd = lens _riEnd (\ s a -> s{_riEnd = a}) . mapping _Time;++-- | The Availability Zone in which the Reserved Instance can be used.+riAvailabilityZone :: Lens' ReservedInstances (Maybe Text)+riAvailabilityZone = lens _riAvailabilityZone (\ s a -> s{_riAvailabilityZone = a});++-- | The recurring charge tag assigned to the resource.+riRecurringCharges :: Lens' ReservedInstances [RecurringCharge]+riRecurringCharges = lens _riRecurringCharges (\ s a -> s{_riRecurringCharges = a}) . _Default . _Coerce;++-- | The Reserved Instance offering type.+riOfferingType :: Lens' ReservedInstances (Maybe OfferingTypeValues)+riOfferingType = lens _riOfferingType (\ s a -> s{_riOfferingType = a});++-- | The usage price of the Reserved Instance, per hour.+riUsagePrice :: Lens' ReservedInstances (Maybe Double)+riUsagePrice = lens _riUsagePrice (\ s a -> s{_riUsagePrice = a});++-- | The purchase price of the Reserved Instance.+riFixedPrice :: Lens' ReservedInstances (Maybe Double)+riFixedPrice = lens _riFixedPrice (\ s a -> s{_riFixedPrice = a});++-- | The ID of the Reserved Instance.+riReservedInstancesId :: Lens' ReservedInstances (Maybe Text)+riReservedInstancesId = lens _riReservedInstancesId (\ s a -> s{_riReservedInstancesId = a});++-- | The tenancy of the instance.+riInstanceTenancy :: Lens' ReservedInstances (Maybe Tenancy)+riInstanceTenancy = lens _riInstanceTenancy (\ s a -> s{_riInstanceTenancy = a});++-- | The duration of the Reserved Instance, in seconds.+riDuration :: Lens' ReservedInstances (Maybe Integer)+riDuration = lens _riDuration (\ s a -> s{_riDuration = a});++-- | Any tags assigned to the resource.+riTags :: Lens' ReservedInstances [Tag]+riTags = lens _riTags (\ s a -> s{_riTags = a}) . _Default . _Coerce;++instance FromXML ReservedInstances where+        parseXML x+          = ReservedInstances' <$>+              (x .@? "state") <*> (x .@? "currencyCode") <*>+                (x .@? "instanceCount")+                <*> (x .@? "productDescription")+                <*> (x .@? "start")+                <*> (x .@? "instanceType")+                <*> (x .@? "end")+                <*> (x .@? "availabilityZone")+                <*>+                (x .@? "recurringCharges" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "offeringType")+                <*> (x .@? "usagePrice")+                <*> (x .@? "fixedPrice")+                <*> (x .@? "reservedInstancesId")+                <*> (x .@? "instanceTenancy")+                <*> (x .@? "duration")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable ReservedInstances++-- | Describes the configuration settings for the modified Reserved+-- Instances.+--+-- /See:/ 'reservedInstancesConfiguration' smart constructor.+data ReservedInstancesConfiguration = ReservedInstancesConfiguration'+    { _ricPlatform         :: !(Maybe Text)+    , _ricInstanceCount    :: !(Maybe Int)+    , _ricInstanceType     :: !(Maybe InstanceType)+    , _ricAvailabilityZone :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ReservedInstancesConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ricPlatform'+--+-- * 'ricInstanceCount'+--+-- * 'ricInstanceType'+--+-- * 'ricAvailabilityZone'+reservedInstancesConfiguration+    :: ReservedInstancesConfiguration+reservedInstancesConfiguration =+    ReservedInstancesConfiguration'+    { _ricPlatform = Nothing+    , _ricInstanceCount = Nothing+    , _ricInstanceType = Nothing+    , _ricAvailabilityZone = Nothing+    }++-- | The network platform of the modified Reserved Instances, which is either+-- EC2-Classic or EC2-VPC.+ricPlatform :: Lens' ReservedInstancesConfiguration (Maybe Text)+ricPlatform = lens _ricPlatform (\ s a -> s{_ricPlatform = a});++-- | The number of modified Reserved Instances.+ricInstanceCount :: Lens' ReservedInstancesConfiguration (Maybe Int)+ricInstanceCount = lens _ricInstanceCount (\ s a -> s{_ricInstanceCount = a});++-- | The instance type for the modified Reserved Instances.+ricInstanceType :: Lens' ReservedInstancesConfiguration (Maybe InstanceType)+ricInstanceType = lens _ricInstanceType (\ s a -> s{_ricInstanceType = a});++-- | The Availability Zone for the modified Reserved Instances.+ricAvailabilityZone :: Lens' ReservedInstancesConfiguration (Maybe Text)+ricAvailabilityZone = lens _ricAvailabilityZone (\ s a -> s{_ricAvailabilityZone = a});++instance FromXML ReservedInstancesConfiguration where+        parseXML x+          = ReservedInstancesConfiguration' <$>+              (x .@? "platform") <*> (x .@? "instanceCount") <*>+                (x .@? "instanceType")+                <*> (x .@? "availabilityZone")++instance Hashable ReservedInstancesConfiguration++instance ToQuery ReservedInstancesConfiguration where+        toQuery ReservedInstancesConfiguration'{..}+          = mconcat+              ["Platform" =: _ricPlatform,+               "InstanceCount" =: _ricInstanceCount,+               "InstanceType" =: _ricInstanceType,+               "AvailabilityZone" =: _ricAvailabilityZone]++-- | Describes the ID of a Reserved Instance.+--+-- /See:/ 'reservedInstancesId' smart constructor.+newtype ReservedInstancesId = ReservedInstancesId'+    { _riiReservedInstancesId :: Maybe Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ReservedInstancesId' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'riiReservedInstancesId'+reservedInstancesId+    :: ReservedInstancesId+reservedInstancesId =+    ReservedInstancesId'+    { _riiReservedInstancesId = Nothing+    }++-- | The ID of the Reserved Instance.+riiReservedInstancesId :: Lens' ReservedInstancesId (Maybe Text)+riiReservedInstancesId = lens _riiReservedInstancesId (\ s a -> s{_riiReservedInstancesId = a});++instance FromXML ReservedInstancesId where+        parseXML x+          = ReservedInstancesId' <$>+              (x .@? "reservedInstancesId")++instance Hashable ReservedInstancesId++-- | Describes a Reserved Instance listing.+--+-- /See:/ 'reservedInstancesListing' smart constructor.+data ReservedInstancesListing = ReservedInstancesListing'+    { _rilStatus                     :: !(Maybe ListingStatus)+    , _rilClientToken                :: !(Maybe Text)+    , _rilUpdateDate                 :: !(Maybe ISO8601)+    , _rilCreateDate                 :: !(Maybe ISO8601)+    , _rilPriceSchedules             :: !(Maybe [PriceSchedule])+    , _rilStatusMessage              :: !(Maybe Text)+    , _rilReservedInstancesId        :: !(Maybe Text)+    , _rilTags                       :: !(Maybe [Tag])+    , _rilInstanceCounts             :: !(Maybe [InstanceCount])+    , _rilReservedInstancesListingId :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ReservedInstancesListing' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rilStatus'+--+-- * 'rilClientToken'+--+-- * 'rilUpdateDate'+--+-- * 'rilCreateDate'+--+-- * 'rilPriceSchedules'+--+-- * 'rilStatusMessage'+--+-- * 'rilReservedInstancesId'+--+-- * 'rilTags'+--+-- * 'rilInstanceCounts'+--+-- * 'rilReservedInstancesListingId'+reservedInstancesListing+    :: ReservedInstancesListing+reservedInstancesListing =+    ReservedInstancesListing'+    { _rilStatus = Nothing+    , _rilClientToken = Nothing+    , _rilUpdateDate = Nothing+    , _rilCreateDate = Nothing+    , _rilPriceSchedules = Nothing+    , _rilStatusMessage = Nothing+    , _rilReservedInstancesId = Nothing+    , _rilTags = Nothing+    , _rilInstanceCounts = Nothing+    , _rilReservedInstancesListingId = Nothing+    }++-- | The status of the Reserved Instance listing.+rilStatus :: Lens' ReservedInstancesListing (Maybe ListingStatus)+rilStatus = lens _rilStatus (\ s a -> s{_rilStatus = a});++-- | A unique, case-sensitive key supplied by the client to ensure that the+-- request is idempotent. For more information, see+-- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency>.+rilClientToken :: Lens' ReservedInstancesListing (Maybe Text)+rilClientToken = lens _rilClientToken (\ s a -> s{_rilClientToken = a});++-- | The last modified timestamp of the listing.+rilUpdateDate :: Lens' ReservedInstancesListing (Maybe UTCTime)+rilUpdateDate = lens _rilUpdateDate (\ s a -> s{_rilUpdateDate = a}) . mapping _Time;++-- | The time the listing was created.+rilCreateDate :: Lens' ReservedInstancesListing (Maybe UTCTime)+rilCreateDate = lens _rilCreateDate (\ s a -> s{_rilCreateDate = a}) . mapping _Time;++-- | The price of the Reserved Instance listing.+rilPriceSchedules :: Lens' ReservedInstancesListing [PriceSchedule]+rilPriceSchedules = lens _rilPriceSchedules (\ s a -> s{_rilPriceSchedules = a}) . _Default . _Coerce;++-- | The reason for the current status of the Reserved Instance listing. The+-- response can be blank.+rilStatusMessage :: Lens' ReservedInstancesListing (Maybe Text)+rilStatusMessage = lens _rilStatusMessage (\ s a -> s{_rilStatusMessage = a});++-- | The ID of the Reserved Instance.+rilReservedInstancesId :: Lens' ReservedInstancesListing (Maybe Text)+rilReservedInstancesId = lens _rilReservedInstancesId (\ s a -> s{_rilReservedInstancesId = a});++-- | Any tags assigned to the resource.+rilTags :: Lens' ReservedInstancesListing [Tag]+rilTags = lens _rilTags (\ s a -> s{_rilTags = a}) . _Default . _Coerce;++-- | The number of instances in this state.+rilInstanceCounts :: Lens' ReservedInstancesListing [InstanceCount]+rilInstanceCounts = lens _rilInstanceCounts (\ s a -> s{_rilInstanceCounts = a}) . _Default . _Coerce;++-- | The ID of the Reserved Instance listing.+rilReservedInstancesListingId :: Lens' ReservedInstancesListing (Maybe Text)+rilReservedInstancesListingId = lens _rilReservedInstancesListingId (\ s a -> s{_rilReservedInstancesListingId = a});++instance FromXML ReservedInstancesListing where+        parseXML x+          = ReservedInstancesListing' <$>+              (x .@? "status") <*> (x .@? "clientToken") <*>+                (x .@? "updateDate")+                <*> (x .@? "createDate")+                <*>+                (x .@? "priceSchedules" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "statusMessage")+                <*> (x .@? "reservedInstancesId")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "instanceCounts" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "reservedInstancesListingId")++instance Hashable ReservedInstancesListing++-- | Describes a Reserved Instance modification.+--+-- /See:/ 'reservedInstancesModification' smart constructor.+data ReservedInstancesModification = ReservedInstancesModification'+    { _rimModificationResults             :: !(Maybe [ReservedInstancesModificationResult])+    , _rimStatus                          :: !(Maybe Text)+    , _rimClientToken                     :: !(Maybe Text)+    , _rimUpdateDate                      :: !(Maybe ISO8601)+    , _rimCreateDate                      :: !(Maybe ISO8601)+    , _rimEffectiveDate                   :: !(Maybe ISO8601)+    , _rimStatusMessage                   :: !(Maybe Text)+    , _rimReservedInstancesModificationId :: !(Maybe Text)+    , _rimReservedInstancesIds            :: !(Maybe [ReservedInstancesId])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ReservedInstancesModification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rimModificationResults'+--+-- * 'rimStatus'+--+-- * 'rimClientToken'+--+-- * 'rimUpdateDate'+--+-- * 'rimCreateDate'+--+-- * 'rimEffectiveDate'+--+-- * 'rimStatusMessage'+--+-- * 'rimReservedInstancesModificationId'+--+-- * 'rimReservedInstancesIds'+reservedInstancesModification+    :: ReservedInstancesModification+reservedInstancesModification =+    ReservedInstancesModification'+    { _rimModificationResults = Nothing+    , _rimStatus = Nothing+    , _rimClientToken = Nothing+    , _rimUpdateDate = Nothing+    , _rimCreateDate = Nothing+    , _rimEffectiveDate = Nothing+    , _rimStatusMessage = Nothing+    , _rimReservedInstancesModificationId = Nothing+    , _rimReservedInstancesIds = Nothing+    }++-- | Contains target configurations along with their corresponding new+-- Reserved Instance IDs.+rimModificationResults :: Lens' ReservedInstancesModification [ReservedInstancesModificationResult]+rimModificationResults = lens _rimModificationResults (\ s a -> s{_rimModificationResults = a}) . _Default . _Coerce;++-- | The status of the Reserved Instances modification request.+rimStatus :: Lens' ReservedInstancesModification (Maybe Text)+rimStatus = lens _rimStatus (\ s a -> s{_rimStatus = a});++-- | A unique, case-sensitive key supplied by the client to ensure that the+-- request is idempotent. For more information, see+-- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency>.+rimClientToken :: Lens' ReservedInstancesModification (Maybe Text)+rimClientToken = lens _rimClientToken (\ s a -> s{_rimClientToken = a});++-- | The time when the modification request was last updated.+rimUpdateDate :: Lens' ReservedInstancesModification (Maybe UTCTime)+rimUpdateDate = lens _rimUpdateDate (\ s a -> s{_rimUpdateDate = a}) . mapping _Time;++-- | The time when the modification request was created.+rimCreateDate :: Lens' ReservedInstancesModification (Maybe UTCTime)+rimCreateDate = lens _rimCreateDate (\ s a -> s{_rimCreateDate = a}) . mapping _Time;++-- | The time for the modification to become effective.+rimEffectiveDate :: Lens' ReservedInstancesModification (Maybe UTCTime)+rimEffectiveDate = lens _rimEffectiveDate (\ s a -> s{_rimEffectiveDate = a}) . mapping _Time;++-- | The reason for the status.+rimStatusMessage :: Lens' ReservedInstancesModification (Maybe Text)+rimStatusMessage = lens _rimStatusMessage (\ s a -> s{_rimStatusMessage = a});++-- | A unique ID for the Reserved Instance modification.+rimReservedInstancesModificationId :: Lens' ReservedInstancesModification (Maybe Text)+rimReservedInstancesModificationId = lens _rimReservedInstancesModificationId (\ s a -> s{_rimReservedInstancesModificationId = a});++-- | The IDs of one or more Reserved Instances.+rimReservedInstancesIds :: Lens' ReservedInstancesModification [ReservedInstancesId]+rimReservedInstancesIds = lens _rimReservedInstancesIds (\ s a -> s{_rimReservedInstancesIds = a}) . _Default . _Coerce;++instance FromXML ReservedInstancesModification where+        parseXML x+          = ReservedInstancesModification' <$>+              (x .@? "modificationResultSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "status")+                <*> (x .@? "clientToken")+                <*> (x .@? "updateDate")+                <*> (x .@? "createDate")+                <*> (x .@? "effectiveDate")+                <*> (x .@? "statusMessage")+                <*> (x .@? "reservedInstancesModificationId")+                <*>+                (x .@? "reservedInstancesSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable ReservedInstancesModification++-- | /See:/ 'reservedInstancesModificationResult' smart constructor.+data ReservedInstancesModificationResult = ReservedInstancesModificationResult'+    { _rimrReservedInstancesId :: !(Maybe Text)+    , _rimrTargetConfiguration :: !(Maybe ReservedInstancesConfiguration)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ReservedInstancesModificationResult' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rimrReservedInstancesId'+--+-- * 'rimrTargetConfiguration'+reservedInstancesModificationResult+    :: ReservedInstancesModificationResult+reservedInstancesModificationResult =+    ReservedInstancesModificationResult'+    { _rimrReservedInstancesId = Nothing+    , _rimrTargetConfiguration = Nothing+    }++-- | The ID for the Reserved Instances that were created as part of the+-- modification request. This field is only available when the modification+-- is fulfilled.+rimrReservedInstancesId :: Lens' ReservedInstancesModificationResult (Maybe Text)+rimrReservedInstancesId = lens _rimrReservedInstancesId (\ s a -> s{_rimrReservedInstancesId = a});++-- | The target Reserved Instances configurations supplied as part of the+-- modification request.+rimrTargetConfiguration :: Lens' ReservedInstancesModificationResult (Maybe ReservedInstancesConfiguration)+rimrTargetConfiguration = lens _rimrTargetConfiguration (\ s a -> s{_rimrTargetConfiguration = a});++instance FromXML ReservedInstancesModificationResult+         where+        parseXML x+          = ReservedInstancesModificationResult' <$>+              (x .@? "reservedInstancesId") <*>+                (x .@? "targetConfiguration")++instance Hashable ReservedInstancesModificationResult++-- | Describes a Reserved Instance offering.+--+-- /See:/ 'reservedInstancesOffering' smart constructor.+data ReservedInstancesOffering = ReservedInstancesOffering'+    { _rioMarketplace                 :: !(Maybe Bool)+    , _rioCurrencyCode                :: !(Maybe CurrencyCodeValues)+    , _rioProductDescription          :: !(Maybe RIProductDescription)+    , _rioInstanceType                :: !(Maybe InstanceType)+    , _rioAvailabilityZone            :: !(Maybe Text)+    , _rioPricingDetails              :: !(Maybe [PricingDetail])+    , _rioRecurringCharges            :: !(Maybe [RecurringCharge])+    , _rioOfferingType                :: !(Maybe OfferingTypeValues)+    , _rioUsagePrice                  :: !(Maybe Double)+    , _rioFixedPrice                  :: !(Maybe Double)+    , _rioInstanceTenancy             :: !(Maybe Tenancy)+    , _rioReservedInstancesOfferingId :: !(Maybe Text)+    , _rioDuration                    :: !(Maybe Integer)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ReservedInstancesOffering' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rioMarketplace'+--+-- * 'rioCurrencyCode'+--+-- * 'rioProductDescription'+--+-- * 'rioInstanceType'+--+-- * 'rioAvailabilityZone'+--+-- * 'rioPricingDetails'+--+-- * 'rioRecurringCharges'+--+-- * 'rioOfferingType'+--+-- * 'rioUsagePrice'+--+-- * 'rioFixedPrice'+--+-- * 'rioInstanceTenancy'+--+-- * 'rioReservedInstancesOfferingId'+--+-- * 'rioDuration'+reservedInstancesOffering+    :: ReservedInstancesOffering+reservedInstancesOffering =+    ReservedInstancesOffering'+    { _rioMarketplace = Nothing+    , _rioCurrencyCode = Nothing+    , _rioProductDescription = Nothing+    , _rioInstanceType = Nothing+    , _rioAvailabilityZone = Nothing+    , _rioPricingDetails = Nothing+    , _rioRecurringCharges = Nothing+    , _rioOfferingType = Nothing+    , _rioUsagePrice = Nothing+    , _rioFixedPrice = Nothing+    , _rioInstanceTenancy = Nothing+    , _rioReservedInstancesOfferingId = Nothing+    , _rioDuration = Nothing+    }++-- | Indicates whether the offering is available through the Reserved+-- Instance Marketplace (resale) or AWS. If it\'s a Reserved Instance+-- Marketplace offering, this is 'true'.+rioMarketplace :: Lens' ReservedInstancesOffering (Maybe Bool)+rioMarketplace = lens _rioMarketplace (\ s a -> s{_rioMarketplace = a});++-- | The currency of the Reserved Instance offering you are purchasing. It\'s+-- specified using ISO 4217 standard currency codes. At this time, the only+-- supported currency is 'USD'.+rioCurrencyCode :: Lens' ReservedInstancesOffering (Maybe CurrencyCodeValues)+rioCurrencyCode = lens _rioCurrencyCode (\ s a -> s{_rioCurrencyCode = a});++-- | The Reserved Instance product platform description.+rioProductDescription :: Lens' ReservedInstancesOffering (Maybe RIProductDescription)+rioProductDescription = lens _rioProductDescription (\ s a -> s{_rioProductDescription = a});++-- | The instance type on which the Reserved Instance can be used.+rioInstanceType :: Lens' ReservedInstancesOffering (Maybe InstanceType)+rioInstanceType = lens _rioInstanceType (\ s a -> s{_rioInstanceType = a});++-- | The Availability Zone in which the Reserved Instance can be used.+rioAvailabilityZone :: Lens' ReservedInstancesOffering (Maybe Text)+rioAvailabilityZone = lens _rioAvailabilityZone (\ s a -> s{_rioAvailabilityZone = a});++-- | The pricing details of the Reserved Instance offering.+rioPricingDetails :: Lens' ReservedInstancesOffering [PricingDetail]+rioPricingDetails = lens _rioPricingDetails (\ s a -> s{_rioPricingDetails = a}) . _Default . _Coerce;++-- | The recurring charge tag assigned to the resource.+rioRecurringCharges :: Lens' ReservedInstancesOffering [RecurringCharge]+rioRecurringCharges = lens _rioRecurringCharges (\ s a -> s{_rioRecurringCharges = a}) . _Default . _Coerce;++-- | The Reserved Instance offering type.+rioOfferingType :: Lens' ReservedInstancesOffering (Maybe OfferingTypeValues)+rioOfferingType = lens _rioOfferingType (\ s a -> s{_rioOfferingType = a});++-- | The usage price of the Reserved Instance, per hour.+rioUsagePrice :: Lens' ReservedInstancesOffering (Maybe Double)+rioUsagePrice = lens _rioUsagePrice (\ s a -> s{_rioUsagePrice = a});++-- | The purchase price of the Reserved Instance.+rioFixedPrice :: Lens' ReservedInstancesOffering (Maybe Double)+rioFixedPrice = lens _rioFixedPrice (\ s a -> s{_rioFixedPrice = a});++-- | The tenancy of the instance.+rioInstanceTenancy :: Lens' ReservedInstancesOffering (Maybe Tenancy)+rioInstanceTenancy = lens _rioInstanceTenancy (\ s a -> s{_rioInstanceTenancy = a});++-- | The ID of the Reserved Instance offering.+rioReservedInstancesOfferingId :: Lens' ReservedInstancesOffering (Maybe Text)+rioReservedInstancesOfferingId = lens _rioReservedInstancesOfferingId (\ s a -> s{_rioReservedInstancesOfferingId = a});++-- | The duration of the Reserved Instance, in seconds.+rioDuration :: Lens' ReservedInstancesOffering (Maybe Integer)+rioDuration = lens _rioDuration (\ s a -> s{_rioDuration = a});++instance FromXML ReservedInstancesOffering where+        parseXML x+          = ReservedInstancesOffering' <$>+              (x .@? "marketplace") <*> (x .@? "currencyCode") <*>+                (x .@? "productDescription")+                <*> (x .@? "instanceType")+                <*> (x .@? "availabilityZone")+                <*>+                (x .@? "pricingDetailsSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "recurringCharges" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "offeringType")+                <*> (x .@? "usagePrice")+                <*> (x .@? "fixedPrice")+                <*> (x .@? "instanceTenancy")+                <*> (x .@? "reservedInstancesOfferingId")+                <*> (x .@? "duration")++instance Hashable ReservedInstancesOffering++-- | Describes a route in a route table.+--+-- /See:/ 'route' smart constructor.+data Route = Route'+    { _rVPCPeeringConnectionId  :: !(Maybe Text)+    , _rInstanceId              :: !(Maybe Text)+    , _rOrigin                  :: !(Maybe RouteOrigin)+    , _rState                   :: !(Maybe RouteState)+    , _rNatGatewayId            :: !(Maybe Text)+    , _rNetworkInterfaceId      :: !(Maybe Text)+    , _rGatewayId               :: !(Maybe Text)+    , _rInstanceOwnerId         :: !(Maybe Text)+    , _rDestinationPrefixListId :: !(Maybe Text)+    , _rDestinationCIdRBlock    :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Route' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rVPCPeeringConnectionId'+--+-- * 'rInstanceId'+--+-- * 'rOrigin'+--+-- * 'rState'+--+-- * 'rNatGatewayId'+--+-- * 'rNetworkInterfaceId'+--+-- * 'rGatewayId'+--+-- * 'rInstanceOwnerId'+--+-- * 'rDestinationPrefixListId'+--+-- * 'rDestinationCIdRBlock'+route+    :: Route+route =+    Route'+    { _rVPCPeeringConnectionId = Nothing+    , _rInstanceId = Nothing+    , _rOrigin = Nothing+    , _rState = Nothing+    , _rNatGatewayId = Nothing+    , _rNetworkInterfaceId = Nothing+    , _rGatewayId = Nothing+    , _rInstanceOwnerId = Nothing+    , _rDestinationPrefixListId = Nothing+    , _rDestinationCIdRBlock = Nothing+    }++-- | The ID of the VPC peering connection.+rVPCPeeringConnectionId :: Lens' Route (Maybe Text)+rVPCPeeringConnectionId = lens _rVPCPeeringConnectionId (\ s a -> s{_rVPCPeeringConnectionId = a});++-- | The ID of a NAT instance in your VPC.+rInstanceId :: Lens' Route (Maybe Text)+rInstanceId = lens _rInstanceId (\ s a -> s{_rInstanceId = a});++-- | Describes how the route was created.+--+-- -   'CreateRouteTable' indicates that route was automatically created+--     when the route table was created.+-- -   'CreateRoute' indicates that the route was manually added to the+--     route table.+-- -   'EnableVgwRoutePropagation' indicates that the route was propagated+--     by route propagation.+rOrigin :: Lens' Route (Maybe RouteOrigin)+rOrigin = lens _rOrigin (\ s a -> s{_rOrigin = a});++-- | The state of the route. The 'blackhole' state indicates that the+-- route\'s target isn\'t available (for example, the specified gateway+-- isn\'t attached to the VPC, or the specified NAT instance has been+-- terminated).+rState :: Lens' Route (Maybe RouteState)+rState = lens _rState (\ s a -> s{_rState = a});++-- | The ID of a NAT gateway.+rNatGatewayId :: Lens' Route (Maybe Text)+rNatGatewayId = lens _rNatGatewayId (\ s a -> s{_rNatGatewayId = a});++-- | The ID of the network interface.+rNetworkInterfaceId :: Lens' Route (Maybe Text)+rNetworkInterfaceId = lens _rNetworkInterfaceId (\ s a -> s{_rNetworkInterfaceId = a});++-- | The ID of a gateway attached to your VPC.+rGatewayId :: Lens' Route (Maybe Text)+rGatewayId = lens _rGatewayId (\ s a -> s{_rGatewayId = a});++-- | The AWS account ID of the owner of the instance.+rInstanceOwnerId :: Lens' Route (Maybe Text)+rInstanceOwnerId = lens _rInstanceOwnerId (\ s a -> s{_rInstanceOwnerId = a});++-- | The prefix of the AWS service.+rDestinationPrefixListId :: Lens' Route (Maybe Text)+rDestinationPrefixListId = lens _rDestinationPrefixListId (\ s a -> s{_rDestinationPrefixListId = a});++-- | The CIDR block used for the destination match.+rDestinationCIdRBlock :: Lens' Route (Maybe Text)+rDestinationCIdRBlock = lens _rDestinationCIdRBlock (\ s a -> s{_rDestinationCIdRBlock = a});++instance FromXML Route where+        parseXML x+          = Route' <$>+              (x .@? "vpcPeeringConnectionId") <*>+                (x .@? "instanceId")+                <*> (x .@? "origin")+                <*> (x .@? "state")+                <*> (x .@? "natGatewayId")+                <*> (x .@? "networkInterfaceId")+                <*> (x .@? "gatewayId")+                <*> (x .@? "instanceOwnerId")+                <*> (x .@? "destinationPrefixListId")+                <*> (x .@? "destinationCidrBlock")++instance Hashable Route++-- | Describes a route table.+--+-- /See:/ 'routeTable' smart constructor.+data RouteTable = RouteTable'+    { _rtRouteTableId    :: !(Maybe Text)+    , _rtRoutes          :: !(Maybe [Route])+    , _rtVPCId           :: !(Maybe Text)+    , _rtPropagatingVGWs :: !(Maybe [PropagatingVGW])+    , _rtAssociations    :: !(Maybe [RouteTableAssociation])+    , _rtTags            :: !(Maybe [Tag])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RouteTable' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rtRouteTableId'+--+-- * 'rtRoutes'+--+-- * 'rtVPCId'+--+-- * 'rtPropagatingVGWs'+--+-- * 'rtAssociations'+--+-- * 'rtTags'+routeTable+    :: RouteTable+routeTable =+    RouteTable'+    { _rtRouteTableId = Nothing+    , _rtRoutes = Nothing+    , _rtVPCId = Nothing+    , _rtPropagatingVGWs = Nothing+    , _rtAssociations = Nothing+    , _rtTags = Nothing+    }++-- | The ID of the route table.+rtRouteTableId :: Lens' RouteTable (Maybe Text)+rtRouteTableId = lens _rtRouteTableId (\ s a -> s{_rtRouteTableId = a});++-- | The routes in the route table.+rtRoutes :: Lens' RouteTable [Route]+rtRoutes = lens _rtRoutes (\ s a -> s{_rtRoutes = a}) . _Default . _Coerce;++-- | The ID of the VPC.+rtVPCId :: Lens' RouteTable (Maybe Text)+rtVPCId = lens _rtVPCId (\ s a -> s{_rtVPCId = a});++-- | Any virtual private gateway (VGW) propagating routes.+rtPropagatingVGWs :: Lens' RouteTable [PropagatingVGW]+rtPropagatingVGWs = lens _rtPropagatingVGWs (\ s a -> s{_rtPropagatingVGWs = a}) . _Default . _Coerce;++-- | The associations between the route table and one or more subnets.+rtAssociations :: Lens' RouteTable [RouteTableAssociation]+rtAssociations = lens _rtAssociations (\ s a -> s{_rtAssociations = a}) . _Default . _Coerce;++-- | Any tags assigned to the route table.+rtTags :: Lens' RouteTable [Tag]+rtTags = lens _rtTags (\ s a -> s{_rtTags = a}) . _Default . _Coerce;++instance FromXML RouteTable where+        parseXML x+          = RouteTable' <$>+              (x .@? "routeTableId") <*>+                (x .@? "routeSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "vpcId")+                <*>+                (x .@? "propagatingVgwSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "associationSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable RouteTable++-- | Describes an association between a route table and a subnet.+--+-- /See:/ 'routeTableAssociation' smart constructor.+data RouteTableAssociation = RouteTableAssociation'+    { _rtaRouteTableId            :: !(Maybe Text)+    , _rtaRouteTableAssociationId :: !(Maybe Text)+    , _rtaMain                    :: !(Maybe Bool)+    , _rtaSubnetId                :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RouteTableAssociation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rtaRouteTableId'+--+-- * 'rtaRouteTableAssociationId'+--+-- * 'rtaMain'+--+-- * 'rtaSubnetId'+routeTableAssociation+    :: RouteTableAssociation+routeTableAssociation =+    RouteTableAssociation'+    { _rtaRouteTableId = Nothing+    , _rtaRouteTableAssociationId = Nothing+    , _rtaMain = Nothing+    , _rtaSubnetId = Nothing+    }++-- | The ID of the route table.+rtaRouteTableId :: Lens' RouteTableAssociation (Maybe Text)+rtaRouteTableId = lens _rtaRouteTableId (\ s a -> s{_rtaRouteTableId = a});++-- | The ID of the association between a route table and a subnet.+rtaRouteTableAssociationId :: Lens' RouteTableAssociation (Maybe Text)+rtaRouteTableAssociationId = lens _rtaRouteTableAssociationId (\ s a -> s{_rtaRouteTableAssociationId = a});++-- | Indicates whether this is the main route table.+rtaMain :: Lens' RouteTableAssociation (Maybe Bool)+rtaMain = lens _rtaMain (\ s a -> s{_rtaMain = a});++-- | The ID of the subnet. A subnet ID is not returned for an implicit+-- association.+rtaSubnetId :: Lens' RouteTableAssociation (Maybe Text)+rtaSubnetId = lens _rtaSubnetId (\ s a -> s{_rtaSubnetId = a});++instance FromXML RouteTableAssociation where+        parseXML x+          = RouteTableAssociation' <$>+              (x .@? "routeTableId") <*>+                (x .@? "routeTableAssociationId")+                <*> (x .@? "main")+                <*> (x .@? "subnetId")++instance Hashable RouteTableAssociation++-- | Describes the monitoring for the instance.+--+-- /See:/ 'runInstancesMonitoringEnabled' smart constructor.+newtype RunInstancesMonitoringEnabled = RunInstancesMonitoringEnabled'+    { _rimeEnabled :: Bool+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RunInstancesMonitoringEnabled' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rimeEnabled'+runInstancesMonitoringEnabled+    :: Bool -- ^ 'rimeEnabled'+    -> RunInstancesMonitoringEnabled+runInstancesMonitoringEnabled pEnabled_ =+    RunInstancesMonitoringEnabled'+    { _rimeEnabled = pEnabled_+    }++-- | Indicates whether monitoring is enabled for the instance.+rimeEnabled :: Lens' RunInstancesMonitoringEnabled Bool+rimeEnabled = lens _rimeEnabled (\ s a -> s{_rimeEnabled = a});++instance FromXML RunInstancesMonitoringEnabled where+        parseXML x+          = RunInstancesMonitoringEnabled' <$> (x .@ "enabled")++instance Hashable RunInstancesMonitoringEnabled++instance ToQuery RunInstancesMonitoringEnabled where+        toQuery RunInstancesMonitoringEnabled'{..}+          = mconcat ["Enabled" =: _rimeEnabled]++-- | Describes the storage parameters for S3 and S3 buckets for an instance+-- store-backed AMI.+--+-- /See:/ 's3Storage' smart constructor.+data S3Storage = S3Storage'+    { _ssPrefix                :: !(Maybe Text)+    , _ssUploadPolicy          :: !(Maybe Base64)+    , _ssBucket                :: !(Maybe Text)+    , _ssUploadPolicySignature :: !(Maybe Text)+    , _ssAWSAccessKeyId        :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'S3Storage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ssPrefix'+--+-- * 'ssUploadPolicy'+--+-- * 'ssBucket'+--+-- * 'ssUploadPolicySignature'+--+-- * 'ssAWSAccessKeyId'+s3Storage+    :: S3Storage+s3Storage =+    S3Storage'+    { _ssPrefix = Nothing+    , _ssUploadPolicy = Nothing+    , _ssBucket = Nothing+    , _ssUploadPolicySignature = Nothing+    , _ssAWSAccessKeyId = Nothing+    }++-- | The beginning of the file name of the AMI.+ssPrefix :: Lens' S3Storage (Maybe Text)+ssPrefix = lens _ssPrefix (\ s a -> s{_ssPrefix = a});++-- | A Base64-encoded Amazon S3 upload policy that gives Amazon EC2+-- permission to upload items into Amazon S3 on your behalf.+--+-- /Note:/ This 'Lens' automatically encodes and decodes Base64 data,+-- despite what the AWS documentation might say.+-- The underlying isomorphism will encode to Base64 representation during+-- serialisation, and decode from Base64 representation during deserialisation.+-- This 'Lens' accepts and returns only raw unencoded data.+ssUploadPolicy :: Lens' S3Storage (Maybe ByteString)+ssUploadPolicy = lens _ssUploadPolicy (\ s a -> s{_ssUploadPolicy = a}) . mapping _Base64;++-- | The bucket in which to store the AMI. You can specify a bucket that you+-- already own or a new bucket that Amazon EC2 creates on your behalf. If+-- you specify a bucket that belongs to someone else, Amazon EC2 returns an+-- error.+ssBucket :: Lens' S3Storage (Maybe Text)+ssBucket = lens _ssBucket (\ s a -> s{_ssBucket = a});++-- | The signature of the Base64 encoded JSON document.+ssUploadPolicySignature :: Lens' S3Storage (Maybe Text)+ssUploadPolicySignature = lens _ssUploadPolicySignature (\ s a -> s{_ssUploadPolicySignature = a});++-- | The access key ID of the owner of the bucket. Before you specify a value+-- for your access key ID, review and follow the guidance in+-- <http://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html Best Practices for Managing AWS Access Keys>.+ssAWSAccessKeyId :: Lens' S3Storage (Maybe Text)+ssAWSAccessKeyId = lens _ssAWSAccessKeyId (\ s a -> s{_ssAWSAccessKeyId = a});++instance FromXML S3Storage where+        parseXML x+          = S3Storage' <$>+              (x .@? "prefix") <*> (x .@? "uploadPolicy") <*>+                (x .@? "bucket")+                <*> (x .@? "uploadPolicySignature")+                <*> (x .@? "AWSAccessKeyId")++instance Hashable S3Storage++instance ToQuery S3Storage where+        toQuery S3Storage'{..}+          = mconcat+              ["Prefix" =: _ssPrefix,+               "UploadPolicy" =: _ssUploadPolicy,+               "Bucket" =: _ssBucket,+               "UploadPolicySignature" =: _ssUploadPolicySignature,+               "AWSAccessKeyId" =: _ssAWSAccessKeyId]++-- | Describes a Scheduled Instance.+--+-- /See:/ 'scheduledInstance' smart constructor.+data ScheduledInstance = ScheduledInstance'+    { _siPreviousSlotEndTime         :: !(Maybe ISO8601)+    , _siPlatform                    :: !(Maybe Text)+    , _siTermStartDate               :: !(Maybe ISO8601)+    , _siInstanceCount               :: !(Maybe Int)+    , _siScheduledInstanceId         :: !(Maybe Text)+    , _siHourlyPrice                 :: !(Maybe Text)+    , _siCreateDate                  :: !(Maybe ISO8601)+    , _siSlotDurationInHours         :: !(Maybe Int)+    , _siTotalScheduledInstanceHours :: !(Maybe Int)+    , _siInstanceType                :: !(Maybe Text)+    , _siRecurrence                  :: !(Maybe ScheduledInstanceRecurrence)+    , _siAvailabilityZone            :: !(Maybe Text)+    , _siTermEndDate                 :: !(Maybe ISO8601)+    , _siNextSlotStartTime           :: !(Maybe ISO8601)+    , _siNetworkPlatform             :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ScheduledInstance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'siPreviousSlotEndTime'+--+-- * 'siPlatform'+--+-- * 'siTermStartDate'+--+-- * 'siInstanceCount'+--+-- * 'siScheduledInstanceId'+--+-- * 'siHourlyPrice'+--+-- * 'siCreateDate'+--+-- * 'siSlotDurationInHours'+--+-- * 'siTotalScheduledInstanceHours'+--+-- * 'siInstanceType'+--+-- * 'siRecurrence'+--+-- * 'siAvailabilityZone'+--+-- * 'siTermEndDate'+--+-- * 'siNextSlotStartTime'+--+-- * 'siNetworkPlatform'+scheduledInstance+    :: ScheduledInstance+scheduledInstance =+    ScheduledInstance'+    { _siPreviousSlotEndTime = Nothing+    , _siPlatform = Nothing+    , _siTermStartDate = Nothing+    , _siInstanceCount = Nothing+    , _siScheduledInstanceId = Nothing+    , _siHourlyPrice = Nothing+    , _siCreateDate = Nothing+    , _siSlotDurationInHours = Nothing+    , _siTotalScheduledInstanceHours = Nothing+    , _siInstanceType = Nothing+    , _siRecurrence = Nothing+    , _siAvailabilityZone = Nothing+    , _siTermEndDate = Nothing+    , _siNextSlotStartTime = Nothing+    , _siNetworkPlatform = Nothing+    }++-- | The time that the previous schedule ended or will end.+siPreviousSlotEndTime :: Lens' ScheduledInstance (Maybe UTCTime)+siPreviousSlotEndTime = lens _siPreviousSlotEndTime (\ s a -> s{_siPreviousSlotEndTime = a}) . mapping _Time;++-- | The platform ('Linux\/UNIX' or 'Windows').+siPlatform :: Lens' ScheduledInstance (Maybe Text)+siPlatform = lens _siPlatform (\ s a -> s{_siPlatform = a});++-- | The start date for the Scheduled Instance.+siTermStartDate :: Lens' ScheduledInstance (Maybe UTCTime)+siTermStartDate = lens _siTermStartDate (\ s a -> s{_siTermStartDate = a}) . mapping _Time;++-- | The number of instances.+siInstanceCount :: Lens' ScheduledInstance (Maybe Int)+siInstanceCount = lens _siInstanceCount (\ s a -> s{_siInstanceCount = a});++-- | The Scheduled Instance ID.+siScheduledInstanceId :: Lens' ScheduledInstance (Maybe Text)+siScheduledInstanceId = lens _siScheduledInstanceId (\ s a -> s{_siScheduledInstanceId = a});++-- | The hourly price for a single instance.+siHourlyPrice :: Lens' ScheduledInstance (Maybe Text)+siHourlyPrice = lens _siHourlyPrice (\ s a -> s{_siHourlyPrice = a});++-- | The date when the Scheduled Instance was purchased.+siCreateDate :: Lens' ScheduledInstance (Maybe UTCTime)+siCreateDate = lens _siCreateDate (\ s a -> s{_siCreateDate = a}) . mapping _Time;++-- | The number of hours in the schedule.+siSlotDurationInHours :: Lens' ScheduledInstance (Maybe Int)+siSlotDurationInHours = lens _siSlotDurationInHours (\ s a -> s{_siSlotDurationInHours = a});++-- | The total number of hours for a single instance for the entire term.+siTotalScheduledInstanceHours :: Lens' ScheduledInstance (Maybe Int)+siTotalScheduledInstanceHours = lens _siTotalScheduledInstanceHours (\ s a -> s{_siTotalScheduledInstanceHours = a});++-- | The instance type.+siInstanceType :: Lens' ScheduledInstance (Maybe Text)+siInstanceType = lens _siInstanceType (\ s a -> s{_siInstanceType = a});++-- | The schedule recurrence.+siRecurrence :: Lens' ScheduledInstance (Maybe ScheduledInstanceRecurrence)+siRecurrence = lens _siRecurrence (\ s a -> s{_siRecurrence = a});++-- | The Availability Zone.+siAvailabilityZone :: Lens' ScheduledInstance (Maybe Text)+siAvailabilityZone = lens _siAvailabilityZone (\ s a -> s{_siAvailabilityZone = a});++-- | The end date for the Scheduled Instance.+siTermEndDate :: Lens' ScheduledInstance (Maybe UTCTime)+siTermEndDate = lens _siTermEndDate (\ s a -> s{_siTermEndDate = a}) . mapping _Time;++-- | The time for the next schedule to start.+siNextSlotStartTime :: Lens' ScheduledInstance (Maybe UTCTime)+siNextSlotStartTime = lens _siNextSlotStartTime (\ s a -> s{_siNextSlotStartTime = a}) . mapping _Time;++-- | The network platform ('EC2-Classic' or 'EC2-VPC').+siNetworkPlatform :: Lens' ScheduledInstance (Maybe Text)+siNetworkPlatform = lens _siNetworkPlatform (\ s a -> s{_siNetworkPlatform = a});++instance FromXML ScheduledInstance where+        parseXML x+          = ScheduledInstance' <$>+              (x .@? "previousSlotEndTime") <*> (x .@? "platform")+                <*> (x .@? "termStartDate")+                <*> (x .@? "instanceCount")+                <*> (x .@? "scheduledInstanceId")+                <*> (x .@? "hourlyPrice")+                <*> (x .@? "createDate")+                <*> (x .@? "slotDurationInHours")+                <*> (x .@? "totalScheduledInstanceHours")+                <*> (x .@? "instanceType")+                <*> (x .@? "recurrence")+                <*> (x .@? "availabilityZone")+                <*> (x .@? "termEndDate")+                <*> (x .@? "nextSlotStartTime")+                <*> (x .@? "networkPlatform")++instance Hashable ScheduledInstance++-- | Describes a schedule that is available for your Scheduled Instances.+--+-- /See:/ 'scheduledInstanceAvailability' smart constructor.+data ScheduledInstanceAvailability = ScheduledInstanceAvailability'+    { _siaMaxTermDurationInDays       :: !(Maybe Int)+    , _siaPlatform                    :: !(Maybe Text)+    , _siaPurchaseToken               :: !(Maybe Text)+    , _siaHourlyPrice                 :: !(Maybe Text)+    , _siaAvailableInstanceCount      :: !(Maybe Int)+    , _siaSlotDurationInHours         :: !(Maybe Int)+    , _siaTotalScheduledInstanceHours :: !(Maybe Int)+    , _siaInstanceType                :: !(Maybe Text)+    , _siaRecurrence                  :: !(Maybe ScheduledInstanceRecurrence)+    , _siaAvailabilityZone            :: !(Maybe Text)+    , _siaMinTermDurationInDays       :: !(Maybe Int)+    , _siaFirstSlotStartTime          :: !(Maybe ISO8601)+    , _siaNetworkPlatform             :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ScheduledInstanceAvailability' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'siaMaxTermDurationInDays'+--+-- * 'siaPlatform'+--+-- * 'siaPurchaseToken'+--+-- * 'siaHourlyPrice'+--+-- * 'siaAvailableInstanceCount'+--+-- * 'siaSlotDurationInHours'+--+-- * 'siaTotalScheduledInstanceHours'+--+-- * 'siaInstanceType'+--+-- * 'siaRecurrence'+--+-- * 'siaAvailabilityZone'+--+-- * 'siaMinTermDurationInDays'+--+-- * 'siaFirstSlotStartTime'+--+-- * 'siaNetworkPlatform'+scheduledInstanceAvailability+    :: ScheduledInstanceAvailability+scheduledInstanceAvailability =+    ScheduledInstanceAvailability'+    { _siaMaxTermDurationInDays = Nothing+    , _siaPlatform = Nothing+    , _siaPurchaseToken = Nothing+    , _siaHourlyPrice = Nothing+    , _siaAvailableInstanceCount = Nothing+    , _siaSlotDurationInHours = Nothing+    , _siaTotalScheduledInstanceHours = Nothing+    , _siaInstanceType = Nothing+    , _siaRecurrence = Nothing+    , _siaAvailabilityZone = Nothing+    , _siaMinTermDurationInDays = Nothing+    , _siaFirstSlotStartTime = Nothing+    , _siaNetworkPlatform = Nothing+    }++-- | The maximum term. The only possible value is 365 days.+siaMaxTermDurationInDays :: Lens' ScheduledInstanceAvailability (Maybe Int)+siaMaxTermDurationInDays = lens _siaMaxTermDurationInDays (\ s a -> s{_siaMaxTermDurationInDays = a});++-- | The platform ('Linux\/UNIX' or 'Windows').+siaPlatform :: Lens' ScheduledInstanceAvailability (Maybe Text)+siaPlatform = lens _siaPlatform (\ s a -> s{_siaPlatform = a});++-- | The purchase token. This token expires in two hours.+siaPurchaseToken :: Lens' ScheduledInstanceAvailability (Maybe Text)+siaPurchaseToken = lens _siaPurchaseToken (\ s a -> s{_siaPurchaseToken = a});++-- | The hourly price for a single instance.+siaHourlyPrice :: Lens' ScheduledInstanceAvailability (Maybe Text)+siaHourlyPrice = lens _siaHourlyPrice (\ s a -> s{_siaHourlyPrice = a});++-- | The number of available instances.+siaAvailableInstanceCount :: Lens' ScheduledInstanceAvailability (Maybe Int)+siaAvailableInstanceCount = lens _siaAvailableInstanceCount (\ s a -> s{_siaAvailableInstanceCount = a});++-- | The number of hours in the schedule.+siaSlotDurationInHours :: Lens' ScheduledInstanceAvailability (Maybe Int)+siaSlotDurationInHours = lens _siaSlotDurationInHours (\ s a -> s{_siaSlotDurationInHours = a});++-- | The total number of hours for a single instance for the entire term.+siaTotalScheduledInstanceHours :: Lens' ScheduledInstanceAvailability (Maybe Int)+siaTotalScheduledInstanceHours = lens _siaTotalScheduledInstanceHours (\ s a -> s{_siaTotalScheduledInstanceHours = a});++-- | The instance type. You can specify one of the C3, C4, M4, or R3 instance+-- types.+siaInstanceType :: Lens' ScheduledInstanceAvailability (Maybe Text)+siaInstanceType = lens _siaInstanceType (\ s a -> s{_siaInstanceType = a});++-- | The schedule recurrence.+siaRecurrence :: Lens' ScheduledInstanceAvailability (Maybe ScheduledInstanceRecurrence)+siaRecurrence = lens _siaRecurrence (\ s a -> s{_siaRecurrence = a});++-- | The Availability Zone.+siaAvailabilityZone :: Lens' ScheduledInstanceAvailability (Maybe Text)+siaAvailabilityZone = lens _siaAvailabilityZone (\ s a -> s{_siaAvailabilityZone = a});++-- | The minimum term. The only possible value is 365 days.+siaMinTermDurationInDays :: Lens' ScheduledInstanceAvailability (Maybe Int)+siaMinTermDurationInDays = lens _siaMinTermDurationInDays (\ s a -> s{_siaMinTermDurationInDays = a});++-- | The time period for the first schedule to start.+siaFirstSlotStartTime :: Lens' ScheduledInstanceAvailability (Maybe UTCTime)+siaFirstSlotStartTime = lens _siaFirstSlotStartTime (\ s a -> s{_siaFirstSlotStartTime = a}) . mapping _Time;++-- | The network platform ('EC2-Classic' or 'EC2-VPC').+siaNetworkPlatform :: Lens' ScheduledInstanceAvailability (Maybe Text)+siaNetworkPlatform = lens _siaNetworkPlatform (\ s a -> s{_siaNetworkPlatform = a});++instance FromXML ScheduledInstanceAvailability where+        parseXML x+          = ScheduledInstanceAvailability' <$>+              (x .@? "maxTermDurationInDays") <*>+                (x .@? "platform")+                <*> (x .@? "purchaseToken")+                <*> (x .@? "hourlyPrice")+                <*> (x .@? "availableInstanceCount")+                <*> (x .@? "slotDurationInHours")+                <*> (x .@? "totalScheduledInstanceHours")+                <*> (x .@? "instanceType")+                <*> (x .@? "recurrence")+                <*> (x .@? "availabilityZone")+                <*> (x .@? "minTermDurationInDays")+                <*> (x .@? "firstSlotStartTime")+                <*> (x .@? "networkPlatform")++instance Hashable ScheduledInstanceAvailability++-- | Describes the recurring schedule for a Scheduled Instance.+--+-- /See:/ 'scheduledInstanceRecurrence' smart constructor.+data ScheduledInstanceRecurrence = ScheduledInstanceRecurrence'+    { _sirFrequency               :: !(Maybe Text)+    , _sirOccurrenceRelativeToEnd :: !(Maybe Bool)+    , _sirOccurrenceUnit          :: !(Maybe Text)+    , _sirInterval                :: !(Maybe Int)+    , _sirOccurrenceDaySet        :: !(Maybe [Int])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ScheduledInstanceRecurrence' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sirFrequency'+--+-- * 'sirOccurrenceRelativeToEnd'+--+-- * 'sirOccurrenceUnit'+--+-- * 'sirInterval'+--+-- * 'sirOccurrenceDaySet'+scheduledInstanceRecurrence+    :: ScheduledInstanceRecurrence+scheduledInstanceRecurrence =+    ScheduledInstanceRecurrence'+    { _sirFrequency = Nothing+    , _sirOccurrenceRelativeToEnd = Nothing+    , _sirOccurrenceUnit = Nothing+    , _sirInterval = Nothing+    , _sirOccurrenceDaySet = Nothing+    }++-- | The frequency ('Daily', 'Weekly', or 'Monthly').+sirFrequency :: Lens' ScheduledInstanceRecurrence (Maybe Text)+sirFrequency = lens _sirFrequency (\ s a -> s{_sirFrequency = a});++-- | Indicates whether the occurrence is relative to the end of the specified+-- week or month.+sirOccurrenceRelativeToEnd :: Lens' ScheduledInstanceRecurrence (Maybe Bool)+sirOccurrenceRelativeToEnd = lens _sirOccurrenceRelativeToEnd (\ s a -> s{_sirOccurrenceRelativeToEnd = a});++-- | The unit for 'occurrenceDaySet' ('DayOfWeek' or 'DayOfMonth').+sirOccurrenceUnit :: Lens' ScheduledInstanceRecurrence (Maybe Text)+sirOccurrenceUnit = lens _sirOccurrenceUnit (\ s a -> s{_sirOccurrenceUnit = a});++-- | The interval quantity. The interval unit depends on the value of+-- 'frequency'. For example, every 2 weeks or every 2 months.+sirInterval :: Lens' ScheduledInstanceRecurrence (Maybe Int)+sirInterval = lens _sirInterval (\ s a -> s{_sirInterval = a});++-- | The days. For a monthly schedule, this is one or more days of the month+-- (1-31). For a weekly schedule, this is one or more days of the week+-- (1-7, where 1 is Sunday).+sirOccurrenceDaySet :: Lens' ScheduledInstanceRecurrence [Int]+sirOccurrenceDaySet = lens _sirOccurrenceDaySet (\ s a -> s{_sirOccurrenceDaySet = a}) . _Default . _Coerce;++instance FromXML ScheduledInstanceRecurrence where+        parseXML x+          = ScheduledInstanceRecurrence' <$>+              (x .@? "frequency") <*>+                (x .@? "occurrenceRelativeToEnd")+                <*> (x .@? "occurrenceUnit")+                <*> (x .@? "interval")+                <*>+                (x .@? "occurrenceDaySet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable ScheduledInstanceRecurrence++-- | Describes the recurring schedule for a Scheduled Instance.+--+-- /See:/ 'scheduledInstanceRecurrenceRequest' smart constructor.+data ScheduledInstanceRecurrenceRequest = ScheduledInstanceRecurrenceRequest'+    { _sirrFrequency               :: !(Maybe Text)+    , _sirrOccurrenceRelativeToEnd :: !(Maybe Bool)+    , _sirrOccurrenceDays          :: !(Maybe [Int])+    , _sirrOccurrenceUnit          :: !(Maybe Text)+    , _sirrInterval                :: !(Maybe Int)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ScheduledInstanceRecurrenceRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sirrFrequency'+--+-- * 'sirrOccurrenceRelativeToEnd'+--+-- * 'sirrOccurrenceDays'+--+-- * 'sirrOccurrenceUnit'+--+-- * 'sirrInterval'+scheduledInstanceRecurrenceRequest+    :: ScheduledInstanceRecurrenceRequest+scheduledInstanceRecurrenceRequest =+    ScheduledInstanceRecurrenceRequest'+    { _sirrFrequency = Nothing+    , _sirrOccurrenceRelativeToEnd = Nothing+    , _sirrOccurrenceDays = Nothing+    , _sirrOccurrenceUnit = Nothing+    , _sirrInterval = Nothing+    }++-- | The frequency ('Daily', 'Weekly', or 'Monthly').+sirrFrequency :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Text)+sirrFrequency = lens _sirrFrequency (\ s a -> s{_sirrFrequency = a});++-- | Indicates whether the occurrence is relative to the end of the specified+-- week or month. You can\'t specify this value with a daily schedule.+sirrOccurrenceRelativeToEnd :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Bool)+sirrOccurrenceRelativeToEnd = lens _sirrOccurrenceRelativeToEnd (\ s a -> s{_sirrOccurrenceRelativeToEnd = a});++-- | The days. For a monthly schedule, this is one or more days of the month+-- (1-31). For a weekly schedule, this is one or more days of the week+-- (1-7, where 1 is Sunday). You can\'t specify this value with a daily+-- schedule. If the occurrence is relative to the end of the month, you can+-- specify only a single day.+sirrOccurrenceDays :: Lens' ScheduledInstanceRecurrenceRequest [Int]+sirrOccurrenceDays = lens _sirrOccurrenceDays (\ s a -> s{_sirrOccurrenceDays = a}) . _Default . _Coerce;++-- | The unit for 'OccurrenceDays' ('DayOfWeek' or 'DayOfMonth'). This value+-- is required for a monthly schedule. You can\'t specify 'DayOfWeek' with+-- a weekly schedule. You can\'t specify this value with a daily schedule.+sirrOccurrenceUnit :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Text)+sirrOccurrenceUnit = lens _sirrOccurrenceUnit (\ s a -> s{_sirrOccurrenceUnit = a});++-- | The interval quantity. The interval unit depends on the value of+-- 'Frequency'. For example, every 2 weeks or every 2 months.+sirrInterval :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Int)+sirrInterval = lens _sirrInterval (\ s a -> s{_sirrInterval = a});++instance Hashable ScheduledInstanceRecurrenceRequest++instance ToQuery ScheduledInstanceRecurrenceRequest+         where+        toQuery ScheduledInstanceRecurrenceRequest'{..}+          = mconcat+              ["Frequency" =: _sirrFrequency,+               "OccurrenceRelativeToEnd" =:+                 _sirrOccurrenceRelativeToEnd,+               toQuery+                 (toQueryList "OccurrenceDay" <$>+                    _sirrOccurrenceDays),+               "OccurrenceUnit" =: _sirrOccurrenceUnit,+               "Interval" =: _sirrInterval]++-- | Describes a block device mapping for a Scheduled Instance.+--+-- /See:/ 'scheduledInstancesBlockDeviceMapping' smart constructor.+data ScheduledInstancesBlockDeviceMapping = ScheduledInstancesBlockDeviceMapping'+    { _sibdmVirtualName :: !(Maybe Text)+    , _sibdmNoDevice    :: !(Maybe Text)+    , _sibdmEBS         :: !(Maybe ScheduledInstancesEBS)+    , _sibdmDeviceName  :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ScheduledInstancesBlockDeviceMapping' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sibdmVirtualName'+--+-- * 'sibdmNoDevice'+--+-- * 'sibdmEBS'+--+-- * 'sibdmDeviceName'+scheduledInstancesBlockDeviceMapping+    :: ScheduledInstancesBlockDeviceMapping+scheduledInstancesBlockDeviceMapping =+    ScheduledInstancesBlockDeviceMapping'+    { _sibdmVirtualName = Nothing+    , _sibdmNoDevice = Nothing+    , _sibdmEBS = Nothing+    , _sibdmDeviceName = Nothing+    }++-- | The virtual device name ('ephemeral'N). Instance store volumes are+-- numbered starting from 0. An instance type with two available instance+-- store volumes can specify mappings for 'ephemeral0' and 'ephemeral1'.The+-- number of available instance store volumes depends on the instance type.+-- After you connect to the instance, you must mount the volume.+--+-- Constraints: For M3 instances, you must specify instance store volumes+-- in the block device mapping for the instance. When you launch an M3+-- instance, we ignore any instance store volumes specified in the block+-- device mapping for the AMI.+sibdmVirtualName :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe Text)+sibdmVirtualName = lens _sibdmVirtualName (\ s a -> s{_sibdmVirtualName = a});++-- | Suppresses the specified device included in the block device mapping of+-- the AMI.+sibdmNoDevice :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe Text)+sibdmNoDevice = lens _sibdmNoDevice (\ s a -> s{_sibdmNoDevice = a});++-- | Parameters used to set up EBS volumes automatically when the instance is+-- launched.+sibdmEBS :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe ScheduledInstancesEBS)+sibdmEBS = lens _sibdmEBS (\ s a -> s{_sibdmEBS = a});++-- | The device name exposed to the instance (for example, '\/dev\/sdh' or+-- 'xvdh').+sibdmDeviceName :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe Text)+sibdmDeviceName = lens _sibdmDeviceName (\ s a -> s{_sibdmDeviceName = a});++instance Hashable+         ScheduledInstancesBlockDeviceMapping++instance ToQuery ScheduledInstancesBlockDeviceMapping+         where+        toQuery ScheduledInstancesBlockDeviceMapping'{..}+          = mconcat+              ["VirtualName" =: _sibdmVirtualName,+               "NoDevice" =: _sibdmNoDevice, "Ebs" =: _sibdmEBS,+               "DeviceName" =: _sibdmDeviceName]++-- | Describes an EBS volume for a Scheduled Instance.+--+-- /See:/ 'scheduledInstancesEBS' smart constructor.+data ScheduledInstancesEBS = ScheduledInstancesEBS'+    { _sieDeleteOnTermination :: !(Maybe Bool)+    , _sieVolumeSize          :: !(Maybe Int)+    , _sieIOPS                :: !(Maybe Int)+    , _sieEncrypted           :: !(Maybe Bool)+    , _sieVolumeType          :: !(Maybe Text)+    , _sieSnapshotId          :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ScheduledInstancesEBS' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sieDeleteOnTermination'+--+-- * 'sieVolumeSize'+--+-- * 'sieIOPS'+--+-- * 'sieEncrypted'+--+-- * 'sieVolumeType'+--+-- * 'sieSnapshotId'+scheduledInstancesEBS+    :: ScheduledInstancesEBS+scheduledInstancesEBS =+    ScheduledInstancesEBS'+    { _sieDeleteOnTermination = Nothing+    , _sieVolumeSize = Nothing+    , _sieIOPS = Nothing+    , _sieEncrypted = Nothing+    , _sieVolumeType = Nothing+    , _sieSnapshotId = Nothing+    }++-- | Indicates whether the volume is deleted on instance termination.+sieDeleteOnTermination :: Lens' ScheduledInstancesEBS (Maybe Bool)+sieDeleteOnTermination = lens _sieDeleteOnTermination (\ s a -> s{_sieDeleteOnTermination = a});++-- | The size of the volume, in GiB.+--+-- Default: If you\'re creating the volume from a snapshot and don\'t+-- specify a volume size, the default is the snapshot size.+sieVolumeSize :: Lens' ScheduledInstancesEBS (Maybe Int)+sieVolumeSize = lens _sieVolumeSize (\ s a -> s{_sieVolumeSize = a});++-- | The number of I\/O operations per second (IOPS) that the volume+-- supports. For Provisioned IOPS (SSD) volumes, this represents the number+-- of IOPS that are provisioned for the volume. For General Purpose (SSD)+-- volumes, this represents the baseline performance of the volume and the+-- rate at which the volume accumulates I\/O credits for bursting. For more+-- information about General Purpose (SSD) baseline performance, I\/O+-- credits, and bursting, see+-- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBS Volume Types>+-- in the /Amazon Elastic Compute Cloud User Guide/.+--+-- Constraint: Range is 100 to 20000 for Provisioned IOPS (SSD) volumes and+-- 3 to 10000 for General Purpose (SSD) volumes.+--+-- Condition: This parameter is required for requests to create 'io1'+-- volumes; it is not used in requests to create 'standard' or 'gp2'+-- volumes.+sieIOPS :: Lens' ScheduledInstancesEBS (Maybe Int)+sieIOPS = lens _sieIOPS (\ s a -> s{_sieIOPS = a});++-- | Indicates whether the volume is encrypted. You can attached encrypted+-- volumes only to instances that support them.+sieEncrypted :: Lens' ScheduledInstancesEBS (Maybe Bool)+sieEncrypted = lens _sieEncrypted (\ s a -> s{_sieEncrypted = a});++-- | The volume type. 'gp2' for General Purpose (SSD) volumes, 'io1' for+-- Provisioned IOPS (SSD) volumes, and 'standard' for Magnetic volumes.+--+-- Default: 'standard'+sieVolumeType :: Lens' ScheduledInstancesEBS (Maybe Text)+sieVolumeType = lens _sieVolumeType (\ s a -> s{_sieVolumeType = a});++-- | The ID of the snapshot.+sieSnapshotId :: Lens' ScheduledInstancesEBS (Maybe Text)+sieSnapshotId = lens _sieSnapshotId (\ s a -> s{_sieSnapshotId = a});++instance Hashable ScheduledInstancesEBS++instance ToQuery ScheduledInstancesEBS where+        toQuery ScheduledInstancesEBS'{..}+          = mconcat+              ["DeleteOnTermination" =: _sieDeleteOnTermination,+               "VolumeSize" =: _sieVolumeSize, "Iops" =: _sieIOPS,+               "Encrypted" =: _sieEncrypted,+               "VolumeType" =: _sieVolumeType,+               "SnapshotId" =: _sieSnapshotId]++-- | Describes an IAM instance profile for a Scheduled Instance.+--+-- /See:/ 'scheduledInstancesIAMInstanceProfile' smart constructor.+data ScheduledInstancesIAMInstanceProfile = ScheduledInstancesIAMInstanceProfile'+    { _siiapARN  :: !(Maybe Text)+    , _siiapName :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ScheduledInstancesIAMInstanceProfile' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'siiapARN'+--+-- * 'siiapName'+scheduledInstancesIAMInstanceProfile+    :: ScheduledInstancesIAMInstanceProfile+scheduledInstancesIAMInstanceProfile =+    ScheduledInstancesIAMInstanceProfile'+    { _siiapARN = Nothing+    , _siiapName = Nothing+    }++-- | The Amazon Resource Name (ARN).+siiapARN :: Lens' ScheduledInstancesIAMInstanceProfile (Maybe Text)+siiapARN = lens _siiapARN (\ s a -> s{_siiapARN = a});++-- | The name.+siiapName :: Lens' ScheduledInstancesIAMInstanceProfile (Maybe Text)+siiapName = lens _siiapName (\ s a -> s{_siiapName = a});++instance Hashable+         ScheduledInstancesIAMInstanceProfile++instance ToQuery ScheduledInstancesIAMInstanceProfile+         where+        toQuery ScheduledInstancesIAMInstanceProfile'{..}+          = mconcat ["Arn" =: _siiapARN, "Name" =: _siiapName]++-- | Describes the launch specification for a Scheduled Instance.+--+-- If you are launching the Scheduled Instance in EC2-VPC, you must specify+-- the ID of the subnet. You can specify the subnet using either 'SubnetId'+-- or 'NetworkInterface'.+--+-- /See:/ 'scheduledInstancesLaunchSpecification' smart constructor.+data ScheduledInstancesLaunchSpecification = ScheduledInstancesLaunchSpecification'+    { _silsSecurityGroupIds    :: !(Maybe [Text])+    , _silsKeyName             :: !(Maybe Text)+    , _silsNetworkInterfaces   :: !(Maybe [ScheduledInstancesNetworkInterface])+    , _silsRAMDiskId           :: !(Maybe Text)+    , _silsSubnetId            :: !(Maybe Text)+    , _silsKernelId            :: !(Maybe Text)+    , _silsInstanceType        :: !(Maybe Text)+    , _silsEBSOptimized        :: !(Maybe Bool)+    , _silsUserData            :: !(Maybe Text)+    , _silsMonitoring          :: !(Maybe ScheduledInstancesMonitoring)+    , _silsIAMInstanceProfile  :: !(Maybe ScheduledInstancesIAMInstanceProfile)+    , _silsBlockDeviceMappings :: !(Maybe [ScheduledInstancesBlockDeviceMapping])+    , _silsPlacement           :: !(Maybe ScheduledInstancesPlacement)+    , _silsImageId             :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ScheduledInstancesLaunchSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'silsSecurityGroupIds'+--+-- * 'silsKeyName'+--+-- * 'silsNetworkInterfaces'+--+-- * 'silsRAMDiskId'+--+-- * 'silsSubnetId'+--+-- * 'silsKernelId'+--+-- * 'silsInstanceType'+--+-- * 'silsEBSOptimized'+--+-- * 'silsUserData'+--+-- * 'silsMonitoring'+--+-- * 'silsIAMInstanceProfile'+--+-- * 'silsBlockDeviceMappings'+--+-- * 'silsPlacement'+--+-- * 'silsImageId'+scheduledInstancesLaunchSpecification+    :: Text -- ^ 'silsImageId'+    -> ScheduledInstancesLaunchSpecification+scheduledInstancesLaunchSpecification pImageId_ =+    ScheduledInstancesLaunchSpecification'+    { _silsSecurityGroupIds = Nothing+    , _silsKeyName = Nothing+    , _silsNetworkInterfaces = Nothing+    , _silsRAMDiskId = Nothing+    , _silsSubnetId = Nothing+    , _silsKernelId = Nothing+    , _silsInstanceType = Nothing+    , _silsEBSOptimized = Nothing+    , _silsUserData = Nothing+    , _silsMonitoring = Nothing+    , _silsIAMInstanceProfile = Nothing+    , _silsBlockDeviceMappings = Nothing+    , _silsPlacement = Nothing+    , _silsImageId = pImageId_+    }++-- | The IDs of one or more security groups.+silsSecurityGroupIds :: Lens' ScheduledInstancesLaunchSpecification [Text]+silsSecurityGroupIds = lens _silsSecurityGroupIds (\ s a -> s{_silsSecurityGroupIds = a}) . _Default . _Coerce;++-- | The name of the key pair.+silsKeyName :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)+silsKeyName = lens _silsKeyName (\ s a -> s{_silsKeyName = a});++-- | One or more network interfaces.+silsNetworkInterfaces :: Lens' ScheduledInstancesLaunchSpecification [ScheduledInstancesNetworkInterface]+silsNetworkInterfaces = lens _silsNetworkInterfaces (\ s a -> s{_silsNetworkInterfaces = a}) . _Default . _Coerce;++-- | The ID of the RAM disk.+silsRAMDiskId :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)+silsRAMDiskId = lens _silsRAMDiskId (\ s a -> s{_silsRAMDiskId = a});++-- | The ID of the subnet in which to launch the instances.+silsSubnetId :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)+silsSubnetId = lens _silsSubnetId (\ s a -> s{_silsSubnetId = a});++-- | The ID of the kernel.+silsKernelId :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)+silsKernelId = lens _silsKernelId (\ s a -> s{_silsKernelId = a});++-- | The instance type.+silsInstanceType :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)+silsInstanceType = lens _silsInstanceType (\ s a -> s{_silsInstanceType = a});++-- | Indicates whether the instances are optimized for EBS I\/O. This+-- optimization provides dedicated throughput to Amazon EBS and an+-- optimized configuration stack to provide optimal EBS I\/O performance.+-- This optimization isn\'t available with all instance types. Additional+-- usage charges apply when using an EBS-optimized instance.+--+-- Default: 'false'+silsEBSOptimized :: Lens' ScheduledInstancesLaunchSpecification (Maybe Bool)+silsEBSOptimized = lens _silsEBSOptimized (\ s a -> s{_silsEBSOptimized = a});++-- | The base64-encoded MIME user data.+silsUserData :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)+silsUserData = lens _silsUserData (\ s a -> s{_silsUserData = a});++-- | Enable or disable monitoring for the instances.+silsMonitoring :: Lens' ScheduledInstancesLaunchSpecification (Maybe ScheduledInstancesMonitoring)+silsMonitoring = lens _silsMonitoring (\ s a -> s{_silsMonitoring = a});++-- | The IAM instance profile.+silsIAMInstanceProfile :: Lens' ScheduledInstancesLaunchSpecification (Maybe ScheduledInstancesIAMInstanceProfile)+silsIAMInstanceProfile = lens _silsIAMInstanceProfile (\ s a -> s{_silsIAMInstanceProfile = a});++-- | One or more block device mapping entries.+silsBlockDeviceMappings :: Lens' ScheduledInstancesLaunchSpecification [ScheduledInstancesBlockDeviceMapping]+silsBlockDeviceMappings = lens _silsBlockDeviceMappings (\ s a -> s{_silsBlockDeviceMappings = a}) . _Default . _Coerce;++-- | The placement information.+silsPlacement :: Lens' ScheduledInstancesLaunchSpecification (Maybe ScheduledInstancesPlacement)+silsPlacement = lens _silsPlacement (\ s a -> s{_silsPlacement = a});++-- | The ID of the Amazon Machine Image (AMI).+silsImageId :: Lens' ScheduledInstancesLaunchSpecification Text+silsImageId = lens _silsImageId (\ s a -> s{_silsImageId = a});++instance Hashable+         ScheduledInstancesLaunchSpecification++instance ToQuery+         ScheduledInstancesLaunchSpecification where+        toQuery ScheduledInstancesLaunchSpecification'{..}+          = mconcat+              [toQuery+                 (toQueryList "SecurityGroupId" <$>+                    _silsSecurityGroupIds),+               "KeyName" =: _silsKeyName,+               toQuery+                 (toQueryList "NetworkInterface" <$>+                    _silsNetworkInterfaces),+               "RamdiskId" =: _silsRAMDiskId,+               "SubnetId" =: _silsSubnetId,+               "KernelId" =: _silsKernelId,+               "InstanceType" =: _silsInstanceType,+               "EbsOptimized" =: _silsEBSOptimized,+               "UserData" =: _silsUserData,+               "Monitoring" =: _silsMonitoring,+               "IamInstanceProfile" =: _silsIAMInstanceProfile,+               toQuery+                 (toQueryList "BlockDeviceMapping" <$>+                    _silsBlockDeviceMappings),+               "Placement" =: _silsPlacement,+               "ImageId" =: _silsImageId]++-- | Describes whether monitoring is enabled for a Scheduled Instance.+--+-- /See:/ 'scheduledInstancesMonitoring' smart constructor.+newtype ScheduledInstancesMonitoring = ScheduledInstancesMonitoring'+    { _simEnabled :: Maybe Bool+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ScheduledInstancesMonitoring' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'simEnabled'+scheduledInstancesMonitoring+    :: ScheduledInstancesMonitoring+scheduledInstancesMonitoring =+    ScheduledInstancesMonitoring'+    { _simEnabled = Nothing+    }++-- | Indicates whether monitoring is enabled.+simEnabled :: Lens' ScheduledInstancesMonitoring (Maybe Bool)+simEnabled = lens _simEnabled (\ s a -> s{_simEnabled = a});++instance Hashable ScheduledInstancesMonitoring++instance ToQuery ScheduledInstancesMonitoring where+        toQuery ScheduledInstancesMonitoring'{..}+          = mconcat ["Enabled" =: _simEnabled]++-- | Describes a network interface for a Scheduled Instance.+--+-- /See:/ 'scheduledInstancesNetworkInterface' smart constructor.+data ScheduledInstancesNetworkInterface = ScheduledInstancesNetworkInterface'+    { _siniGroups                         :: !(Maybe [Text])+    , _siniDeleteOnTermination            :: !(Maybe Bool)+    , _siniAssociatePublicIPAddress       :: !(Maybe Bool)+    , _siniPrivateIPAddressConfigs        :: !(Maybe [ScheduledInstancesPrivateIPAddressConfig])+    , _siniNetworkInterfaceId             :: !(Maybe Text)+    , _siniSubnetId                       :: !(Maybe Text)+    , _siniPrivateIPAddress               :: !(Maybe Text)+    , _siniSecondaryPrivateIPAddressCount :: !(Maybe Int)+    , _siniDescription                    :: !(Maybe Text)+    , _siniDeviceIndex                    :: !(Maybe Int)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ScheduledInstancesNetworkInterface' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'siniGroups'+--+-- * 'siniDeleteOnTermination'+--+-- * 'siniAssociatePublicIPAddress'+--+-- * 'siniPrivateIPAddressConfigs'+--+-- * 'siniNetworkInterfaceId'+--+-- * 'siniSubnetId'+--+-- * 'siniPrivateIPAddress'+--+-- * 'siniSecondaryPrivateIPAddressCount'+--+-- * 'siniDescription'+--+-- * 'siniDeviceIndex'+scheduledInstancesNetworkInterface+    :: ScheduledInstancesNetworkInterface+scheduledInstancesNetworkInterface =+    ScheduledInstancesNetworkInterface'+    { _siniGroups = Nothing+    , _siniDeleteOnTermination = Nothing+    , _siniAssociatePublicIPAddress = Nothing+    , _siniPrivateIPAddressConfigs = Nothing+    , _siniNetworkInterfaceId = Nothing+    , _siniSubnetId = Nothing+    , _siniPrivateIPAddress = Nothing+    , _siniSecondaryPrivateIPAddressCount = Nothing+    , _siniDescription = Nothing+    , _siniDeviceIndex = Nothing+    }++-- | The IDs of one or more security groups.+siniGroups :: Lens' ScheduledInstancesNetworkInterface [Text]+siniGroups = lens _siniGroups (\ s a -> s{_siniGroups = a}) . _Default . _Coerce;++-- | Indicates whether to delete the interface when the instance is+-- terminated.+siniDeleteOnTermination :: Lens' ScheduledInstancesNetworkInterface (Maybe Bool)+siniDeleteOnTermination = lens _siniDeleteOnTermination (\ s a -> s{_siniDeleteOnTermination = a});++-- | Indicates whether to assign a public IP address to instances launched in+-- a VPC. The public IP address can only be assigned to a network interface+-- for eth0, and can only be assigned to a new network interface, not an+-- existing one. You cannot specify more than one network interface in the+-- request. If launching into a default subnet, the default value is+-- 'true'.+siniAssociatePublicIPAddress :: Lens' ScheduledInstancesNetworkInterface (Maybe Bool)+siniAssociatePublicIPAddress = lens _siniAssociatePublicIPAddress (\ s a -> s{_siniAssociatePublicIPAddress = a});++-- | The private IP addresses.+siniPrivateIPAddressConfigs :: Lens' ScheduledInstancesNetworkInterface [ScheduledInstancesPrivateIPAddressConfig]+siniPrivateIPAddressConfigs = lens _siniPrivateIPAddressConfigs (\ s a -> s{_siniPrivateIPAddressConfigs = a}) . _Default . _Coerce;++-- | The ID of the network interface.+siniNetworkInterfaceId :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)+siniNetworkInterfaceId = lens _siniNetworkInterfaceId (\ s a -> s{_siniNetworkInterfaceId = a});++-- | The ID of the subnet.+siniSubnetId :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)+siniSubnetId = lens _siniSubnetId (\ s a -> s{_siniSubnetId = a});++-- | The IP address of the network interface within the subnet.+siniPrivateIPAddress :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)+siniPrivateIPAddress = lens _siniPrivateIPAddress (\ s a -> s{_siniPrivateIPAddress = a});++-- | The number of secondary private IP addresses.+siniSecondaryPrivateIPAddressCount :: Lens' ScheduledInstancesNetworkInterface (Maybe Int)+siniSecondaryPrivateIPAddressCount = lens _siniSecondaryPrivateIPAddressCount (\ s a -> s{_siniSecondaryPrivateIPAddressCount = a});++-- | The description.+siniDescription :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)+siniDescription = lens _siniDescription (\ s a -> s{_siniDescription = a});++-- | The index of the device for the network interface attachment.+siniDeviceIndex :: Lens' ScheduledInstancesNetworkInterface (Maybe Int)+siniDeviceIndex = lens _siniDeviceIndex (\ s a -> s{_siniDeviceIndex = a});++instance Hashable ScheduledInstancesNetworkInterface++instance ToQuery ScheduledInstancesNetworkInterface+         where+        toQuery ScheduledInstancesNetworkInterface'{..}+          = mconcat+              [toQuery (toQueryList "Group" <$> _siniGroups),+               "DeleteOnTermination" =: _siniDeleteOnTermination,+               "AssociatePublicIpAddress" =:+                 _siniAssociatePublicIPAddress,+               toQuery+                 (toQueryList "PrivateIpAddressConfig" <$>+                    _siniPrivateIPAddressConfigs),+               "NetworkInterfaceId" =: _siniNetworkInterfaceId,+               "SubnetId" =: _siniSubnetId,+               "PrivateIpAddress" =: _siniPrivateIPAddress,+               "SecondaryPrivateIpAddressCount" =:+                 _siniSecondaryPrivateIPAddressCount,+               "Description" =: _siniDescription,+               "DeviceIndex" =: _siniDeviceIndex]++-- | Describes the placement for a Scheduled Instance.+--+-- /See:/ 'scheduledInstancesPlacement' smart constructor.+data ScheduledInstancesPlacement = ScheduledInstancesPlacement'+    { _sipAvailabilityZone :: !(Maybe Text)+    , _sipGroupName        :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ScheduledInstancesPlacement' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sipAvailabilityZone'+--+-- * 'sipGroupName'+scheduledInstancesPlacement+    :: ScheduledInstancesPlacement+scheduledInstancesPlacement =+    ScheduledInstancesPlacement'+    { _sipAvailabilityZone = Nothing+    , _sipGroupName = Nothing+    }++-- | The Availability Zone.+sipAvailabilityZone :: Lens' ScheduledInstancesPlacement (Maybe Text)+sipAvailabilityZone = lens _sipAvailabilityZone (\ s a -> s{_sipAvailabilityZone = a});++-- | The name of the placement group.+sipGroupName :: Lens' ScheduledInstancesPlacement (Maybe Text)+sipGroupName = lens _sipGroupName (\ s a -> s{_sipGroupName = a});++instance Hashable ScheduledInstancesPlacement++instance ToQuery ScheduledInstancesPlacement where+        toQuery ScheduledInstancesPlacement'{..}+          = mconcat+              ["AvailabilityZone" =: _sipAvailabilityZone,+               "GroupName" =: _sipGroupName]++-- | Describes a private IP address for a Scheduled Instance.+--+-- /See:/ 'scheduledInstancesPrivateIPAddressConfig' smart constructor.+data ScheduledInstancesPrivateIPAddressConfig = ScheduledInstancesPrivateIPAddressConfig'+    { _sipiacPrimary          :: !(Maybe Bool)+    , _sipiacPrivateIPAddress :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ScheduledInstancesPrivateIPAddressConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sipiacPrimary'+--+-- * 'sipiacPrivateIPAddress'+scheduledInstancesPrivateIPAddressConfig+    :: ScheduledInstancesPrivateIPAddressConfig+scheduledInstancesPrivateIPAddressConfig =+    ScheduledInstancesPrivateIPAddressConfig'+    { _sipiacPrimary = Nothing+    , _sipiacPrivateIPAddress = Nothing+    }++-- | Indicates whether this is a primary IP address. Otherwise, this is a+-- secondary IP address.+sipiacPrimary :: Lens' ScheduledInstancesPrivateIPAddressConfig (Maybe Bool)+sipiacPrimary = lens _sipiacPrimary (\ s a -> s{_sipiacPrimary = a});++-- | The IP address.+sipiacPrivateIPAddress :: Lens' ScheduledInstancesPrivateIPAddressConfig (Maybe Text)+sipiacPrivateIPAddress = lens _sipiacPrivateIPAddress (\ s a -> s{_sipiacPrivateIPAddress = a});++instance Hashable+         ScheduledInstancesPrivateIPAddressConfig++instance ToQuery+         ScheduledInstancesPrivateIPAddressConfig where+        toQuery ScheduledInstancesPrivateIPAddressConfig'{..}+          = mconcat+              ["Primary" =: _sipiacPrimary,+               "PrivateIpAddress" =: _sipiacPrivateIPAddress]++-- | Describes a security group+--+-- /See:/ 'securityGroup' smart constructor.+data SecurityGroup = SecurityGroup'+    { _sgVPCId               :: !(Maybe Text)+    , _sgIPPermissions       :: !(Maybe [IPPermission])+    , _sgIPPermissionsEgress :: !(Maybe [IPPermission])+    , _sgTags                :: !(Maybe [Tag])+    , _sgOwnerId             :: !Text+    , _sgGroupId             :: !Text+    , _sgGroupName           :: !Text+    , _sgDescription         :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SecurityGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sgVPCId'+--+-- * 'sgIPPermissions'+--+-- * 'sgIPPermissionsEgress'+--+-- * 'sgTags'+--+-- * 'sgOwnerId'+--+-- * 'sgGroupId'+--+-- * 'sgGroupName'+--+-- * 'sgDescription'+securityGroup+    :: Text -- ^ 'sgOwnerId'+    -> Text -- ^ 'sgGroupId'+    -> Text -- ^ 'sgGroupName'+    -> Text -- ^ 'sgDescription'+    -> SecurityGroup+securityGroup pOwnerId_ pGroupId_ pGroupName_ pDescription_ =+    SecurityGroup'+    { _sgVPCId = Nothing+    , _sgIPPermissions = Nothing+    , _sgIPPermissionsEgress = Nothing+    , _sgTags = Nothing+    , _sgOwnerId = pOwnerId_+    , _sgGroupId = pGroupId_+    , _sgGroupName = pGroupName_+    , _sgDescription = pDescription_+    }++-- | [EC2-VPC] The ID of the VPC for the security group.+sgVPCId :: Lens' SecurityGroup (Maybe Text)+sgVPCId = lens _sgVPCId (\ s a -> s{_sgVPCId = a});++-- | One or more inbound rules associated with the security group.+sgIPPermissions :: Lens' SecurityGroup [IPPermission]+sgIPPermissions = lens _sgIPPermissions (\ s a -> s{_sgIPPermissions = a}) . _Default . _Coerce;++-- | [EC2-VPC] One or more outbound rules associated with the security group.+sgIPPermissionsEgress :: Lens' SecurityGroup [IPPermission]+sgIPPermissionsEgress = lens _sgIPPermissionsEgress (\ s a -> s{_sgIPPermissionsEgress = a}) . _Default . _Coerce;++-- | Any tags assigned to the security group.+sgTags :: Lens' SecurityGroup [Tag]+sgTags = lens _sgTags (\ s a -> s{_sgTags = a}) . _Default . _Coerce;++-- | The AWS account ID of the owner of the security group.+sgOwnerId :: Lens' SecurityGroup Text+sgOwnerId = lens _sgOwnerId (\ s a -> s{_sgOwnerId = a});++-- | The ID of the security group.+sgGroupId :: Lens' SecurityGroup Text+sgGroupId = lens _sgGroupId (\ s a -> s{_sgGroupId = a});++-- | The name of the security group.+sgGroupName :: Lens' SecurityGroup Text+sgGroupName = lens _sgGroupName (\ s a -> s{_sgGroupName = a});++-- | A description of the security group.+sgDescription :: Lens' SecurityGroup Text+sgDescription = lens _sgDescription (\ s a -> s{_sgDescription = a});++instance FromXML SecurityGroup where+        parseXML x+          = SecurityGroup' <$>+              (x .@? "vpcId") <*>+                (x .@? "ipPermissions" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "ipPermissionsEgress" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@ "ownerId")+                <*> (x .@ "groupId")+                <*> (x .@ "groupName")+                <*> (x .@ "groupDescription")++instance Hashable SecurityGroup++-- | Describes the time period for a Scheduled Instance to start its first+-- schedule. The time period must span less than one day.+--+-- /See:/ 'slotDateTimeRangeRequest' smart constructor.+data SlotDateTimeRangeRequest = SlotDateTimeRangeRequest'+    { _sdtrrEarliestTime :: !ISO8601+    , _sdtrrLatestTime   :: !ISO8601+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SlotDateTimeRangeRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdtrrEarliestTime'+--+-- * 'sdtrrLatestTime'+slotDateTimeRangeRequest+    :: UTCTime -- ^ 'sdtrrEarliestTime'+    -> UTCTime -- ^ 'sdtrrLatestTime'+    -> SlotDateTimeRangeRequest+slotDateTimeRangeRequest pEarliestTime_ pLatestTime_ =+    SlotDateTimeRangeRequest'+    { _sdtrrEarliestTime = _Time # pEarliestTime_+    , _sdtrrLatestTime = _Time # pLatestTime_+    }++-- | The earliest date and time, in UTC, for the Scheduled Instance to start.+sdtrrEarliestTime :: Lens' SlotDateTimeRangeRequest UTCTime+sdtrrEarliestTime = lens _sdtrrEarliestTime (\ s a -> s{_sdtrrEarliestTime = a}) . _Time;++-- | The latest date and time, in UTC, for the Scheduled Instance to start.+-- This value must be later than or equal to the earliest date and at most+-- three months in the future.+sdtrrLatestTime :: Lens' SlotDateTimeRangeRequest UTCTime+sdtrrLatestTime = lens _sdtrrLatestTime (\ s a -> s{_sdtrrLatestTime = a}) . _Time;++instance Hashable SlotDateTimeRangeRequest++instance ToQuery SlotDateTimeRangeRequest where+        toQuery SlotDateTimeRangeRequest'{..}+          = mconcat+              ["EarliestTime" =: _sdtrrEarliestTime,+               "LatestTime" =: _sdtrrLatestTime]++-- | Describes the time period for a Scheduled Instance to start its first+-- schedule.+--+-- /See:/ 'slotStartTimeRangeRequest' smart constructor.+data SlotStartTimeRangeRequest = SlotStartTimeRangeRequest'+    { _sstrrLatestTime   :: !(Maybe ISO8601)+    , _sstrrEarliestTime :: !(Maybe ISO8601)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SlotStartTimeRangeRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sstrrLatestTime'+--+-- * 'sstrrEarliestTime'+slotStartTimeRangeRequest+    :: SlotStartTimeRangeRequest+slotStartTimeRangeRequest =+    SlotStartTimeRangeRequest'+    { _sstrrLatestTime = Nothing+    , _sstrrEarliestTime = Nothing+    }++-- | The latest date and time, in UTC, for the Scheduled Instance to start.+sstrrLatestTime :: Lens' SlotStartTimeRangeRequest (Maybe UTCTime)+sstrrLatestTime = lens _sstrrLatestTime (\ s a -> s{_sstrrLatestTime = a}) . mapping _Time;++-- | The earliest date and time, in UTC, for the Scheduled Instance to start.+sstrrEarliestTime :: Lens' SlotStartTimeRangeRequest (Maybe UTCTime)+sstrrEarliestTime = lens _sstrrEarliestTime (\ s a -> s{_sstrrEarliestTime = a}) . mapping _Time;++instance Hashable SlotStartTimeRangeRequest++instance ToQuery SlotStartTimeRangeRequest where+        toQuery SlotStartTimeRangeRequest'{..}+          = mconcat+              ["LatestTime" =: _sstrrLatestTime,+               "EarliestTime" =: _sstrrEarliestTime]++-- | Describes a snapshot.+--+-- /See:/ 'snapshot' smart constructor.+data Snapshot = Snapshot'+    { _sStateMessage        :: !(Maybe Text)+    , _sOwnerAlias          :: !(Maybe Text)+    , _sDataEncryptionKeyId :: !(Maybe Text)+    , _sKMSKeyId            :: !(Maybe Text)+    , _sTags                :: !(Maybe [Tag])+    , _sSnapshotId          :: !Text+    , _sOwnerId             :: !Text+    , _sVolumeId            :: !Text+    , _sVolumeSize          :: !Int+    , _sDescription         :: !Text+    , _sStartTime           :: !ISO8601+    , _sProgress            :: !Text+    , _sState               :: !SnapshotState+    , _sEncrypted           :: !Bool+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Snapshot' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sStateMessage'+--+-- * 'sOwnerAlias'+--+-- * 'sDataEncryptionKeyId'+--+-- * 'sKMSKeyId'+--+-- * 'sTags'+--+-- * 'sSnapshotId'+--+-- * 'sOwnerId'+--+-- * 'sVolumeId'+--+-- * 'sVolumeSize'+--+-- * 'sDescription'+--+-- * 'sStartTime'+--+-- * 'sProgress'+--+-- * 'sState'+--+-- * 'sEncrypted'+snapshot+    :: Text -- ^ 'sSnapshotId'+    -> Text -- ^ 'sOwnerId'+    -> Text -- ^ 'sVolumeId'+    -> Int -- ^ 'sVolumeSize'+    -> Text -- ^ 'sDescription'+    -> UTCTime -- ^ 'sStartTime'+    -> Text -- ^ 'sProgress'+    -> SnapshotState -- ^ 'sState'+    -> Bool -- ^ 'sEncrypted'+    -> Snapshot+snapshot pSnapshotId_ pOwnerId_ pVolumeId_ pVolumeSize_ pDescription_ pStartTime_ pProgress_ pState_ pEncrypted_ =+    Snapshot'+    { _sStateMessage = Nothing+    , _sOwnerAlias = Nothing+    , _sDataEncryptionKeyId = Nothing+    , _sKMSKeyId = Nothing+    , _sTags = Nothing+    , _sSnapshotId = pSnapshotId_+    , _sOwnerId = pOwnerId_+    , _sVolumeId = pVolumeId_+    , _sVolumeSize = pVolumeSize_+    , _sDescription = pDescription_+    , _sStartTime = _Time # pStartTime_+    , _sProgress = pProgress_+    , _sState = pState_+    , _sEncrypted = pEncrypted_+    }++-- | Encrypted Amazon EBS snapshots are copied asynchronously. If a snapshot+-- copy operation fails (for example, if the proper AWS Key Management+-- Service (AWS KMS) permissions are not obtained) this field displays+-- error state details to help you diagnose why the error occurred. This+-- parameter is only returned by the < DescribeSnapshots> API operation.+sStateMessage :: Lens' Snapshot (Maybe Text)+sStateMessage = lens _sStateMessage (\ s a -> s{_sStateMessage = a});++-- | The AWS account alias (for example, 'amazon', 'self') or AWS account ID+-- that owns the snapshot.+sOwnerAlias :: Lens' Snapshot (Maybe Text)+sOwnerAlias = lens _sOwnerAlias (\ s a -> s{_sOwnerAlias = a});++-- | The data encryption key identifier for the snapshot. This value is a+-- unique identifier that corresponds to the data encryption key that was+-- used to encrypt the original volume or snapshot copy. Because data+-- encryption keys are inherited by volumes created from snapshots, and+-- vice versa, if snapshots share the same data encryption key identifier,+-- then they belong to the same volume\/snapshot lineage. This parameter is+-- only returned by the < DescribeSnapshots> API operation.+sDataEncryptionKeyId :: Lens' Snapshot (Maybe Text)+sDataEncryptionKeyId = lens _sDataEncryptionKeyId (\ s a -> s{_sDataEncryptionKeyId = a});++-- | The full ARN of the AWS Key Management Service (AWS KMS) customer master+-- key (CMK) that was used to protect the volume encryption key for the+-- parent volume.+sKMSKeyId :: Lens' Snapshot (Maybe Text)+sKMSKeyId = lens _sKMSKeyId (\ s a -> s{_sKMSKeyId = a});++-- | Any tags assigned to the snapshot.+sTags :: Lens' Snapshot [Tag]+sTags = lens _sTags (\ s a -> s{_sTags = a}) . _Default . _Coerce;++-- | The ID of the snapshot. Each snapshot receives a unique identifier when+-- it is created.+sSnapshotId :: Lens' Snapshot Text+sSnapshotId = lens _sSnapshotId (\ s a -> s{_sSnapshotId = a});++-- | The AWS account ID of the EBS snapshot owner.+sOwnerId :: Lens' Snapshot Text+sOwnerId = lens _sOwnerId (\ s a -> s{_sOwnerId = a});++-- | The ID of the volume that was used to create the snapshot.+sVolumeId :: Lens' Snapshot Text+sVolumeId = lens _sVolumeId (\ s a -> s{_sVolumeId = a});++-- | The size of the volume, in GiB.+sVolumeSize :: Lens' Snapshot Int+sVolumeSize = lens _sVolumeSize (\ s a -> s{_sVolumeSize = a});++-- | The description for the snapshot.+sDescription :: Lens' Snapshot Text+sDescription = lens _sDescription (\ s a -> s{_sDescription = a});++-- | The time stamp when the snapshot was initiated.+sStartTime :: Lens' Snapshot UTCTime+sStartTime = lens _sStartTime (\ s a -> s{_sStartTime = a}) . _Time;++-- | The progress of the snapshot, as a percentage.+sProgress :: Lens' Snapshot Text+sProgress = lens _sProgress (\ s a -> s{_sProgress = a});++-- | The snapshot state.+sState :: Lens' Snapshot SnapshotState+sState = lens _sState (\ s a -> s{_sState = a});++-- | Indicates whether the snapshot is encrypted.+sEncrypted :: Lens' Snapshot Bool+sEncrypted = lens _sEncrypted (\ s a -> s{_sEncrypted = a});++instance FromXML Snapshot where+        parseXML x+          = Snapshot' <$>+              (x .@? "statusMessage") <*> (x .@? "ownerAlias") <*>+                (x .@? "dataEncryptionKeyId")+                <*> (x .@? "kmsKeyId")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@ "snapshotId")+                <*> (x .@ "ownerId")+                <*> (x .@ "volumeId")+                <*> (x .@ "volumeSize")+                <*> (x .@ "description")+                <*> (x .@ "startTime")+                <*> (x .@ "progress")+                <*> (x .@ "status")+                <*> (x .@ "encrypted")++instance Hashable Snapshot++-- | Describes the snapshot created from the imported disk.+--+-- /See:/ 'snapshotDetail' smart constructor.+data SnapshotDetail = SnapshotDetail'+    { _sdStatus        :: !(Maybe Text)+    , _sdProgress      :: !(Maybe Text)+    , _sdFormat        :: !(Maybe Text)+    , _sdURL           :: !(Maybe Text)+    , _sdDeviceName    :: !(Maybe Text)+    , _sdStatusMessage :: !(Maybe Text)+    , _sdUserBucket    :: !(Maybe UserBucketDetails)+    , _sdDiskImageSize :: !(Maybe Double)+    , _sdDescription   :: !(Maybe Text)+    , _sdSnapshotId    :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SnapshotDetail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdStatus'+--+-- * 'sdProgress'+--+-- * 'sdFormat'+--+-- * 'sdURL'+--+-- * 'sdDeviceName'+--+-- * 'sdStatusMessage'+--+-- * 'sdUserBucket'+--+-- * 'sdDiskImageSize'+--+-- * 'sdDescription'+--+-- * 'sdSnapshotId'+snapshotDetail+    :: SnapshotDetail+snapshotDetail =+    SnapshotDetail'+    { _sdStatus = Nothing+    , _sdProgress = Nothing+    , _sdFormat = Nothing+    , _sdURL = Nothing+    , _sdDeviceName = Nothing+    , _sdStatusMessage = Nothing+    , _sdUserBucket = Nothing+    , _sdDiskImageSize = Nothing+    , _sdDescription = Nothing+    , _sdSnapshotId = Nothing+    }++-- | A brief status of the snapshot creation.+sdStatus :: Lens' SnapshotDetail (Maybe Text)+sdStatus = lens _sdStatus (\ s a -> s{_sdStatus = a});++-- | The percentage of progress for the task.+sdProgress :: Lens' SnapshotDetail (Maybe Text)+sdProgress = lens _sdProgress (\ s a -> s{_sdProgress = a});++-- | The format of the disk image from which the snapshot is created.+sdFormat :: Lens' SnapshotDetail (Maybe Text)+sdFormat = lens _sdFormat (\ s a -> s{_sdFormat = a});++-- | The URL used to access the disk image.+sdURL :: Lens' SnapshotDetail (Maybe Text)+sdURL = lens _sdURL (\ s a -> s{_sdURL = a});++-- | The block device mapping for the snapshot.+sdDeviceName :: Lens' SnapshotDetail (Maybe Text)+sdDeviceName = lens _sdDeviceName (\ s a -> s{_sdDeviceName = a});++-- | A detailed status message for the snapshot creation.+sdStatusMessage :: Lens' SnapshotDetail (Maybe Text)+sdStatusMessage = lens _sdStatusMessage (\ s a -> s{_sdStatusMessage = a});++-- | Undocumented member.+sdUserBucket :: Lens' SnapshotDetail (Maybe UserBucketDetails)+sdUserBucket = lens _sdUserBucket (\ s a -> s{_sdUserBucket = a});++-- | The size of the disk in the snapshot, in GiB.+sdDiskImageSize :: Lens' SnapshotDetail (Maybe Double)+sdDiskImageSize = lens _sdDiskImageSize (\ s a -> s{_sdDiskImageSize = a});++-- | A description for the snapshot.+sdDescription :: Lens' SnapshotDetail (Maybe Text)+sdDescription = lens _sdDescription (\ s a -> s{_sdDescription = a});++-- | The snapshot ID of the disk being imported.+sdSnapshotId :: Lens' SnapshotDetail (Maybe Text)+sdSnapshotId = lens _sdSnapshotId (\ s a -> s{_sdSnapshotId = a});++instance FromXML SnapshotDetail where+        parseXML x+          = SnapshotDetail' <$>+              (x .@? "status") <*> (x .@? "progress") <*>+                (x .@? "format")+                <*> (x .@? "url")+                <*> (x .@? "deviceName")+                <*> (x .@? "statusMessage")+                <*> (x .@? "userBucket")+                <*> (x .@? "diskImageSize")+                <*> (x .@? "description")+                <*> (x .@? "snapshotId")++instance Hashable SnapshotDetail++-- | The disk container object for the import snapshot request.+--+-- /See:/ 'snapshotDiskContainer' smart constructor.+data SnapshotDiskContainer = SnapshotDiskContainer'+    { _sdcFormat      :: !(Maybe Text)+    , _sdcURL         :: !(Maybe Text)+    , _sdcUserBucket  :: !(Maybe UserBucket)+    , _sdcDescription :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SnapshotDiskContainer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdcFormat'+--+-- * 'sdcURL'+--+-- * 'sdcUserBucket'+--+-- * 'sdcDescription'+snapshotDiskContainer+    :: SnapshotDiskContainer+snapshotDiskContainer =+    SnapshotDiskContainer'+    { _sdcFormat = Nothing+    , _sdcURL = Nothing+    , _sdcUserBucket = Nothing+    , _sdcDescription = Nothing+    }++-- | The format of the disk image being imported.+--+-- Valid values: 'RAW' | 'VHD' | 'VMDK' | 'OVA'+sdcFormat :: Lens' SnapshotDiskContainer (Maybe Text)+sdcFormat = lens _sdcFormat (\ s a -> s{_sdcFormat = a});++-- | The URL to the Amazon S3-based disk image being imported. It can either+-- be a https URL (https:\/\/..) or an Amazon S3 URL (s3:\/\/..).+sdcURL :: Lens' SnapshotDiskContainer (Maybe Text)+sdcURL = lens _sdcURL (\ s a -> s{_sdcURL = a});++-- | Undocumented member.+sdcUserBucket :: Lens' SnapshotDiskContainer (Maybe UserBucket)+sdcUserBucket = lens _sdcUserBucket (\ s a -> s{_sdcUserBucket = a});++-- | The description of the disk image being imported.+sdcDescription :: Lens' SnapshotDiskContainer (Maybe Text)+sdcDescription = lens _sdcDescription (\ s a -> s{_sdcDescription = a});++instance Hashable SnapshotDiskContainer++instance ToQuery SnapshotDiskContainer where+        toQuery SnapshotDiskContainer'{..}+          = mconcat+              ["Format" =: _sdcFormat, "Url" =: _sdcURL,+               "UserBucket" =: _sdcUserBucket,+               "Description" =: _sdcDescription]++-- | Details about the import snapshot task.+--+-- /See:/ 'snapshotTaskDetail' smart constructor.+data SnapshotTaskDetail = SnapshotTaskDetail'+    { _stdStatus        :: !(Maybe Text)+    , _stdProgress      :: !(Maybe Text)+    , _stdFormat        :: !(Maybe Text)+    , _stdURL           :: !(Maybe Text)+    , _stdStatusMessage :: !(Maybe Text)+    , _stdUserBucket    :: !(Maybe UserBucketDetails)+    , _stdDiskImageSize :: !(Maybe Double)+    , _stdDescription   :: !(Maybe Text)+    , _stdSnapshotId    :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SnapshotTaskDetail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'stdStatus'+--+-- * 'stdProgress'+--+-- * 'stdFormat'+--+-- * 'stdURL'+--+-- * 'stdStatusMessage'+--+-- * 'stdUserBucket'+--+-- * 'stdDiskImageSize'+--+-- * 'stdDescription'+--+-- * 'stdSnapshotId'+snapshotTaskDetail+    :: SnapshotTaskDetail+snapshotTaskDetail =+    SnapshotTaskDetail'+    { _stdStatus = Nothing+    , _stdProgress = Nothing+    , _stdFormat = Nothing+    , _stdURL = Nothing+    , _stdStatusMessage = Nothing+    , _stdUserBucket = Nothing+    , _stdDiskImageSize = Nothing+    , _stdDescription = Nothing+    , _stdSnapshotId = Nothing+    }++-- | A brief status for the import snapshot task.+stdStatus :: Lens' SnapshotTaskDetail (Maybe Text)+stdStatus = lens _stdStatus (\ s a -> s{_stdStatus = a});++-- | The percentage of completion for the import snapshot task.+stdProgress :: Lens' SnapshotTaskDetail (Maybe Text)+stdProgress = lens _stdProgress (\ s a -> s{_stdProgress = a});++-- | The format of the disk image from which the snapshot is created.+stdFormat :: Lens' SnapshotTaskDetail (Maybe Text)+stdFormat = lens _stdFormat (\ s a -> s{_stdFormat = a});++-- | The URL of the disk image from which the snapshot is created.+stdURL :: Lens' SnapshotTaskDetail (Maybe Text)+stdURL = lens _stdURL (\ s a -> s{_stdURL = a});++-- | A detailed status message for the import snapshot task.+stdStatusMessage :: Lens' SnapshotTaskDetail (Maybe Text)+stdStatusMessage = lens _stdStatusMessage (\ s a -> s{_stdStatusMessage = a});++-- | The S3 bucket for the disk image.+stdUserBucket :: Lens' SnapshotTaskDetail (Maybe UserBucketDetails)+stdUserBucket = lens _stdUserBucket (\ s a -> s{_stdUserBucket = a});++-- | The size of the disk in the snapshot, in GiB.+stdDiskImageSize :: Lens' SnapshotTaskDetail (Maybe Double)+stdDiskImageSize = lens _stdDiskImageSize (\ s a -> s{_stdDiskImageSize = a});++-- | The description of the snapshot.+stdDescription :: Lens' SnapshotTaskDetail (Maybe Text)+stdDescription = lens _stdDescription (\ s a -> s{_stdDescription = a});++-- | The snapshot ID of the disk being imported.+stdSnapshotId :: Lens' SnapshotTaskDetail (Maybe Text)+stdSnapshotId = lens _stdSnapshotId (\ s a -> s{_stdSnapshotId = a});++instance FromXML SnapshotTaskDetail where+        parseXML x+          = SnapshotTaskDetail' <$>+              (x .@? "status") <*> (x .@? "progress") <*>+                (x .@? "format")+                <*> (x .@? "url")+                <*> (x .@? "statusMessage")+                <*> (x .@? "userBucket")+                <*> (x .@? "diskImageSize")+                <*> (x .@? "description")+                <*> (x .@? "snapshotId")++instance Hashable SnapshotTaskDetail++-- | Describes the data feed for a Spot instance.+--+-- /See:/ 'spotDatafeedSubscription' smart constructor.+data SpotDatafeedSubscription = SpotDatafeedSubscription'+    { _sdsState   :: !(Maybe DatafeedSubscriptionState)+    , _sdsPrefix  :: !(Maybe Text)+    , _sdsBucket  :: !(Maybe Text)+    , _sdsOwnerId :: !(Maybe Text)+    , _sdsFault   :: !(Maybe SpotInstanceStateFault)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpotDatafeedSubscription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdsState'+--+-- * 'sdsPrefix'+--+-- * 'sdsBucket'+--+-- * 'sdsOwnerId'+--+-- * 'sdsFault'+spotDatafeedSubscription+    :: SpotDatafeedSubscription+spotDatafeedSubscription =+    SpotDatafeedSubscription'+    { _sdsState = Nothing+    , _sdsPrefix = Nothing+    , _sdsBucket = Nothing+    , _sdsOwnerId = Nothing+    , _sdsFault = Nothing+    }++-- | The state of the Spot instance data feed subscription.+sdsState :: Lens' SpotDatafeedSubscription (Maybe DatafeedSubscriptionState)+sdsState = lens _sdsState (\ s a -> s{_sdsState = a});++-- | The prefix that is prepended to data feed files.+sdsPrefix :: Lens' SpotDatafeedSubscription (Maybe Text)+sdsPrefix = lens _sdsPrefix (\ s a -> s{_sdsPrefix = a});++-- | The Amazon S3 bucket where the Spot instance data feed is located.+sdsBucket :: Lens' SpotDatafeedSubscription (Maybe Text)+sdsBucket = lens _sdsBucket (\ s a -> s{_sdsBucket = a});++-- | The AWS account ID of the account.+sdsOwnerId :: Lens' SpotDatafeedSubscription (Maybe Text)+sdsOwnerId = lens _sdsOwnerId (\ s a -> s{_sdsOwnerId = a});++-- | The fault codes for the Spot instance request, if any.+sdsFault :: Lens' SpotDatafeedSubscription (Maybe SpotInstanceStateFault)+sdsFault = lens _sdsFault (\ s a -> s{_sdsFault = a});++instance FromXML SpotDatafeedSubscription where+        parseXML x+          = SpotDatafeedSubscription' <$>+              (x .@? "state") <*> (x .@? "prefix") <*>+                (x .@? "bucket")+                <*> (x .@? "ownerId")+                <*> (x .@? "fault")++instance Hashable SpotDatafeedSubscription++-- | Describes the launch specification for one or more Spot instances.+--+-- /See:/ 'spotFleetLaunchSpecification' smart constructor.+data SpotFleetLaunchSpecification = SpotFleetLaunchSpecification'+    { _sflsSecurityGroups      :: !(Maybe [GroupIdentifier])+    , _sflsSpotPrice           :: !(Maybe Text)+    , _sflsWeightedCapacity    :: !(Maybe Double)+    , _sflsKeyName             :: !(Maybe Text)+    , _sflsNetworkInterfaces   :: !(Maybe [InstanceNetworkInterfaceSpecification])+    , _sflsRAMDiskId           :: !(Maybe Text)+    , _sflsSubnetId            :: !(Maybe Text)+    , _sflsKernelId            :: !(Maybe Text)+    , _sflsInstanceType        :: !(Maybe InstanceType)+    , _sflsEBSOptimized        :: !(Maybe Bool)+    , _sflsUserData            :: !(Maybe Text)+    , _sflsMonitoring          :: !(Maybe SpotFleetMonitoring)+    , _sflsIAMInstanceProfile  :: !(Maybe IAMInstanceProfileSpecification)+    , _sflsImageId             :: !(Maybe Text)+    , _sflsAddressingType      :: !(Maybe Text)+    , _sflsBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])+    , _sflsPlacement           :: !(Maybe SpotPlacement)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpotFleetLaunchSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sflsSecurityGroups'+--+-- * 'sflsSpotPrice'+--+-- * 'sflsWeightedCapacity'+--+-- * 'sflsKeyName'+--+-- * 'sflsNetworkInterfaces'+--+-- * 'sflsRAMDiskId'+--+-- * 'sflsSubnetId'+--+-- * 'sflsKernelId'+--+-- * 'sflsInstanceType'+--+-- * 'sflsEBSOptimized'+--+-- * 'sflsUserData'+--+-- * 'sflsMonitoring'+--+-- * 'sflsIAMInstanceProfile'+--+-- * 'sflsImageId'+--+-- * 'sflsAddressingType'+--+-- * 'sflsBlockDeviceMappings'+--+-- * 'sflsPlacement'+spotFleetLaunchSpecification+    :: SpotFleetLaunchSpecification+spotFleetLaunchSpecification =+    SpotFleetLaunchSpecification'+    { _sflsSecurityGroups = Nothing+    , _sflsSpotPrice = Nothing+    , _sflsWeightedCapacity = Nothing+    , _sflsKeyName = Nothing+    , _sflsNetworkInterfaces = Nothing+    , _sflsRAMDiskId = Nothing+    , _sflsSubnetId = Nothing+    , _sflsKernelId = Nothing+    , _sflsInstanceType = Nothing+    , _sflsEBSOptimized = Nothing+    , _sflsUserData = Nothing+    , _sflsMonitoring = Nothing+    , _sflsIAMInstanceProfile = Nothing+    , _sflsImageId = Nothing+    , _sflsAddressingType = Nothing+    , _sflsBlockDeviceMappings = Nothing+    , _sflsPlacement = Nothing+    }++-- | One or more security groups. When requesting instances in a VPC, you+-- must specify the IDs of the security groups. When requesting instances+-- in EC2-Classic, you can specify the names or the IDs of the security+-- groups.+sflsSecurityGroups :: Lens' SpotFleetLaunchSpecification [GroupIdentifier]+sflsSecurityGroups = lens _sflsSecurityGroups (\ s a -> s{_sflsSecurityGroups = a}) . _Default . _Coerce;++-- | The bid price per unit hour for the specified instance type. If this+-- value is not specified, the default is the Spot bid price specified for+-- the fleet. To determine the bid price per unit hour, divide the Spot bid+-- price by the value of 'WeightedCapacity'.+sflsSpotPrice :: Lens' SpotFleetLaunchSpecification (Maybe Text)+sflsSpotPrice = lens _sflsSpotPrice (\ s a -> s{_sflsSpotPrice = a});++-- | The number of units provided by the specified instance type. These are+-- the same units that you chose to set the target capacity in terms+-- (instances or a performance characteristic such as vCPUs, memory, or+-- I\/O).+--+-- If the target capacity divided by this value is not a whole number, we+-- round the number of instances to the next whole number. If this value is+-- not specified, the default is 1.+sflsWeightedCapacity :: Lens' SpotFleetLaunchSpecification (Maybe Double)+sflsWeightedCapacity = lens _sflsWeightedCapacity (\ s a -> s{_sflsWeightedCapacity = a});++-- | The name of the key pair.+sflsKeyName :: Lens' SpotFleetLaunchSpecification (Maybe Text)+sflsKeyName = lens _sflsKeyName (\ s a -> s{_sflsKeyName = a});++-- | One or more network interfaces.+sflsNetworkInterfaces :: Lens' SpotFleetLaunchSpecification [InstanceNetworkInterfaceSpecification]+sflsNetworkInterfaces = lens _sflsNetworkInterfaces (\ s a -> s{_sflsNetworkInterfaces = a}) . _Default . _Coerce;++-- | The ID of the RAM disk.+sflsRAMDiskId :: Lens' SpotFleetLaunchSpecification (Maybe Text)+sflsRAMDiskId = lens _sflsRAMDiskId (\ s a -> s{_sflsRAMDiskId = a});++-- | The ID of the subnet in which to launch the instances. To specify+-- multiple subnets, separate them using commas; for example,+-- \"subnet-a61dafcf, subnet-65ea5f08\".+sflsSubnetId :: Lens' SpotFleetLaunchSpecification (Maybe Text)+sflsSubnetId = lens _sflsSubnetId (\ s a -> s{_sflsSubnetId = a});++-- | The ID of the kernel.+sflsKernelId :: Lens' SpotFleetLaunchSpecification (Maybe Text)+sflsKernelId = lens _sflsKernelId (\ s a -> s{_sflsKernelId = a});++-- | The instance type.+sflsInstanceType :: Lens' SpotFleetLaunchSpecification (Maybe InstanceType)+sflsInstanceType = lens _sflsInstanceType (\ s a -> s{_sflsInstanceType = a});++-- | Indicates whether the instances are optimized for EBS I\/O. This+-- optimization provides dedicated throughput to Amazon EBS and an+-- optimized configuration stack to provide optimal EBS I\/O performance.+-- This optimization isn\'t available with all instance types. Additional+-- usage charges apply when using an EBS Optimized instance.+--+-- Default: 'false'+sflsEBSOptimized :: Lens' SpotFleetLaunchSpecification (Maybe Bool)+sflsEBSOptimized = lens _sflsEBSOptimized (\ s a -> s{_sflsEBSOptimized = a});++-- | The Base64-encoded MIME user data to make available to the instances.+sflsUserData :: Lens' SpotFleetLaunchSpecification (Maybe Text)+sflsUserData = lens _sflsUserData (\ s a -> s{_sflsUserData = a});++-- | Enable or disable monitoring for the instances.+sflsMonitoring :: Lens' SpotFleetLaunchSpecification (Maybe SpotFleetMonitoring)+sflsMonitoring = lens _sflsMonitoring (\ s a -> s{_sflsMonitoring = a});++-- | The IAM instance profile.+sflsIAMInstanceProfile :: Lens' SpotFleetLaunchSpecification (Maybe IAMInstanceProfileSpecification)+sflsIAMInstanceProfile = lens _sflsIAMInstanceProfile (\ s a -> s{_sflsIAMInstanceProfile = a});++-- | The ID of the AMI.+sflsImageId :: Lens' SpotFleetLaunchSpecification (Maybe Text)+sflsImageId = lens _sflsImageId (\ s a -> s{_sflsImageId = a});++-- | Deprecated.+sflsAddressingType :: Lens' SpotFleetLaunchSpecification (Maybe Text)+sflsAddressingType = lens _sflsAddressingType (\ s a -> s{_sflsAddressingType = a});++-- | One or more block device mapping entries.+sflsBlockDeviceMappings :: Lens' SpotFleetLaunchSpecification [BlockDeviceMapping]+sflsBlockDeviceMappings = lens _sflsBlockDeviceMappings (\ s a -> s{_sflsBlockDeviceMappings = a}) . _Default . _Coerce;++-- | The placement information.+sflsPlacement :: Lens' SpotFleetLaunchSpecification (Maybe SpotPlacement)+sflsPlacement = lens _sflsPlacement (\ s a -> s{_sflsPlacement = a});++instance FromXML SpotFleetLaunchSpecification where+        parseXML x+          = SpotFleetLaunchSpecification' <$>+              (x .@? "groupSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "spotPrice")+                <*> (x .@? "weightedCapacity")+                <*> (x .@? "keyName")+                <*>+                (x .@? "networkInterfaceSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "ramdiskId")+                <*> (x .@? "subnetId")+                <*> (x .@? "kernelId")+                <*> (x .@? "instanceType")+                <*> (x .@? "ebsOptimized")+                <*> (x .@? "userData")+                <*> (x .@? "monitoring")+                <*> (x .@? "iamInstanceProfile")+                <*> (x .@? "imageId")+                <*> (x .@? "addressingType")+                <*>+                (x .@? "blockDeviceMapping" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "placement")++instance Hashable SpotFleetLaunchSpecification++instance ToQuery SpotFleetLaunchSpecification where+        toQuery SpotFleetLaunchSpecification'{..}+          = mconcat+              [toQuery+                 (toQueryList "GroupSet" <$> _sflsSecurityGroups),+               "SpotPrice" =: _sflsSpotPrice,+               "WeightedCapacity" =: _sflsWeightedCapacity,+               "KeyName" =: _sflsKeyName,+               toQuery+                 (toQueryList "NetworkInterfaceSet" <$>+                    _sflsNetworkInterfaces),+               "RamdiskId" =: _sflsRAMDiskId,+               "SubnetId" =: _sflsSubnetId,+               "KernelId" =: _sflsKernelId,+               "InstanceType" =: _sflsInstanceType,+               "EbsOptimized" =: _sflsEBSOptimized,+               "UserData" =: _sflsUserData,+               "Monitoring" =: _sflsMonitoring,+               "IamInstanceProfile" =: _sflsIAMInstanceProfile,+               "ImageId" =: _sflsImageId,+               "AddressingType" =: _sflsAddressingType,+               toQuery+                 (toQueryList "BlockDeviceMapping" <$>+                    _sflsBlockDeviceMappings),+               "Placement" =: _sflsPlacement]++-- | Describes whether monitoring is enabled.+--+-- /See:/ 'spotFleetMonitoring' smart constructor.+newtype SpotFleetMonitoring = SpotFleetMonitoring'+    { _sfmEnabled :: Maybe Bool+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpotFleetMonitoring' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sfmEnabled'+spotFleetMonitoring+    :: SpotFleetMonitoring+spotFleetMonitoring =+    SpotFleetMonitoring'+    { _sfmEnabled = Nothing+    }++-- | Enables monitoring for the instance.+--+-- Default: 'false'+sfmEnabled :: Lens' SpotFleetMonitoring (Maybe Bool)+sfmEnabled = lens _sfmEnabled (\ s a -> s{_sfmEnabled = a});++instance FromXML SpotFleetMonitoring where+        parseXML x+          = SpotFleetMonitoring' <$> (x .@? "enabled")++instance Hashable SpotFleetMonitoring++instance ToQuery SpotFleetMonitoring where+        toQuery SpotFleetMonitoring'{..}+          = mconcat ["Enabled" =: _sfmEnabled]++-- | Describes a Spot fleet request.+--+-- /See:/ 'spotFleetRequestConfig' smart constructor.+data SpotFleetRequestConfig = SpotFleetRequestConfig'+    { _sfrcSpotFleetRequestId     :: !Text+    , _sfrcSpotFleetRequestState  :: !BatchState+    , _sfrcSpotFleetRequestConfig :: !SpotFleetRequestConfigData+    , _sfrcCreateTime             :: !ISO8601+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpotFleetRequestConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sfrcSpotFleetRequestId'+--+-- * 'sfrcSpotFleetRequestState'+--+-- * 'sfrcSpotFleetRequestConfig'+--+-- * 'sfrcCreateTime'+spotFleetRequestConfig+    :: Text -- ^ 'sfrcSpotFleetRequestId'+    -> BatchState -- ^ 'sfrcSpotFleetRequestState'+    -> SpotFleetRequestConfigData -- ^ 'sfrcSpotFleetRequestConfig'+    -> UTCTime -- ^ 'sfrcCreateTime'+    -> SpotFleetRequestConfig+spotFleetRequestConfig pSpotFleetRequestId_ pSpotFleetRequestState_ pSpotFleetRequestConfig_ pCreateTime_ =+    SpotFleetRequestConfig'+    { _sfrcSpotFleetRequestId = pSpotFleetRequestId_+    , _sfrcSpotFleetRequestState = pSpotFleetRequestState_+    , _sfrcSpotFleetRequestConfig = pSpotFleetRequestConfig_+    , _sfrcCreateTime = _Time # pCreateTime_+    }++-- | The ID of the Spot fleet request.+sfrcSpotFleetRequestId :: Lens' SpotFleetRequestConfig Text+sfrcSpotFleetRequestId = lens _sfrcSpotFleetRequestId (\ s a -> s{_sfrcSpotFleetRequestId = a});++-- | The state of the Spot fleet request.+sfrcSpotFleetRequestState :: Lens' SpotFleetRequestConfig BatchState+sfrcSpotFleetRequestState = lens _sfrcSpotFleetRequestState (\ s a -> s{_sfrcSpotFleetRequestState = a});++-- | Information about the configuration of the Spot fleet request.+sfrcSpotFleetRequestConfig :: Lens' SpotFleetRequestConfig SpotFleetRequestConfigData+sfrcSpotFleetRequestConfig = lens _sfrcSpotFleetRequestConfig (\ s a -> s{_sfrcSpotFleetRequestConfig = a});++-- | The creation date and time of the request.+sfrcCreateTime :: Lens' SpotFleetRequestConfig UTCTime+sfrcCreateTime = lens _sfrcCreateTime (\ s a -> s{_sfrcCreateTime = a}) . _Time;++instance FromXML SpotFleetRequestConfig where+        parseXML x+          = SpotFleetRequestConfig' <$>+              (x .@ "spotFleetRequestId") <*>+                (x .@ "spotFleetRequestState")+                <*> (x .@ "spotFleetRequestConfig")+                <*> (x .@ "createTime")++instance Hashable SpotFleetRequestConfig++-- | Describes the configuration of a Spot fleet request.+--+-- /See:/ 'spotFleetRequestConfigData' smart constructor.+data SpotFleetRequestConfigData = SpotFleetRequestConfigData'+    { _sfrcdClientToken                      :: !(Maybe Text)+    , _sfrcdExcessCapacityTerminationPolicy  :: !(Maybe ExcessCapacityTerminationPolicy)+    , _sfrcdValidUntil                       :: !(Maybe ISO8601)+    , _sfrcdTerminateInstancesWithExpiration :: !(Maybe Bool)+    , _sfrcdValidFrom                        :: !(Maybe ISO8601)+    , _sfrcdAllocationStrategy               :: !(Maybe AllocationStrategy)+    , _sfrcdSpotPrice                        :: !Text+    , _sfrcdTargetCapacity                   :: !Int+    , _sfrcdIAMFleetRole                     :: !Text+    , _sfrcdLaunchSpecifications             :: !(List1 SpotFleetLaunchSpecification)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpotFleetRequestConfigData' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sfrcdClientToken'+--+-- * 'sfrcdExcessCapacityTerminationPolicy'+--+-- * 'sfrcdValidUntil'+--+-- * 'sfrcdTerminateInstancesWithExpiration'+--+-- * 'sfrcdValidFrom'+--+-- * 'sfrcdAllocationStrategy'+--+-- * 'sfrcdSpotPrice'+--+-- * 'sfrcdTargetCapacity'+--+-- * 'sfrcdIAMFleetRole'+--+-- * 'sfrcdLaunchSpecifications'+spotFleetRequestConfigData+    :: Text -- ^ 'sfrcdSpotPrice'+    -> Int -- ^ 'sfrcdTargetCapacity'+    -> Text -- ^ 'sfrcdIAMFleetRole'+    -> NonEmpty SpotFleetLaunchSpecification -- ^ 'sfrcdLaunchSpecifications'+    -> SpotFleetRequestConfigData+spotFleetRequestConfigData pSpotPrice_ pTargetCapacity_ pIAMFleetRole_ pLaunchSpecifications_ =+    SpotFleetRequestConfigData'+    { _sfrcdClientToken = Nothing+    , _sfrcdExcessCapacityTerminationPolicy = Nothing+    , _sfrcdValidUntil = Nothing+    , _sfrcdTerminateInstancesWithExpiration = Nothing+    , _sfrcdValidFrom = Nothing+    , _sfrcdAllocationStrategy = Nothing+    , _sfrcdSpotPrice = pSpotPrice_+    , _sfrcdTargetCapacity = pTargetCapacity_+    , _sfrcdIAMFleetRole = pIAMFleetRole_+    , _sfrcdLaunchSpecifications = _List1 # pLaunchSpecifications_+    }++-- | A unique, case-sensitive identifier you provide to ensure idempotency of+-- your listings. This helps avoid duplicate listings. For more+-- information, see+-- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency>.+sfrcdClientToken :: Lens' SpotFleetRequestConfigData (Maybe Text)+sfrcdClientToken = lens _sfrcdClientToken (\ s a -> s{_sfrcdClientToken = a});++-- | Indicates whether running Spot instances should be terminated if the+-- target capacity of the Spot fleet request is decreased below the current+-- size of the Spot fleet.+sfrcdExcessCapacityTerminationPolicy :: Lens' SpotFleetRequestConfigData (Maybe ExcessCapacityTerminationPolicy)+sfrcdExcessCapacityTerminationPolicy = lens _sfrcdExcessCapacityTerminationPolicy (\ s a -> s{_sfrcdExcessCapacityTerminationPolicy = a});++-- | The end date and time of the request, in UTC format (for example,+-- /YYYY/-/MM/-/DD/T/HH/:/MM/:/SS/Z). At this point, no new Spot instance+-- requests are placed or enabled to fulfill the request.+sfrcdValidUntil :: Lens' SpotFleetRequestConfigData (Maybe UTCTime)+sfrcdValidUntil = lens _sfrcdValidUntil (\ s a -> s{_sfrcdValidUntil = a}) . mapping _Time;++-- | Indicates whether running Spot instances should be terminated when the+-- Spot fleet request expires.+sfrcdTerminateInstancesWithExpiration :: Lens' SpotFleetRequestConfigData (Maybe Bool)+sfrcdTerminateInstancesWithExpiration = lens _sfrcdTerminateInstancesWithExpiration (\ s a -> s{_sfrcdTerminateInstancesWithExpiration = a});++-- | The start date and time of the request, in UTC format (for example,+-- /YYYY/-/MM/-/DD/T/HH/:/MM/:/SS/Z). The default is to start fulfilling+-- the request immediately.+sfrcdValidFrom :: Lens' SpotFleetRequestConfigData (Maybe UTCTime)+sfrcdValidFrom = lens _sfrcdValidFrom (\ s a -> s{_sfrcdValidFrom = a}) . mapping _Time;++-- | Indicates how to allocate the target capacity across the Spot pools+-- specified by the Spot fleet request. The default is 'lowestPrice'.+sfrcdAllocationStrategy :: Lens' SpotFleetRequestConfigData (Maybe AllocationStrategy)+sfrcdAllocationStrategy = lens _sfrcdAllocationStrategy (\ s a -> s{_sfrcdAllocationStrategy = a});++-- | The bid price per unit hour.+sfrcdSpotPrice :: Lens' SpotFleetRequestConfigData Text+sfrcdSpotPrice = lens _sfrcdSpotPrice (\ s a -> s{_sfrcdSpotPrice = a});++-- | The number of units to request. You can choose to set the target+-- capacity in terms of instances or a performance characteristic that is+-- important to your application workload, such as vCPUs, memory, or I\/O.+sfrcdTargetCapacity :: Lens' SpotFleetRequestConfigData Int+sfrcdTargetCapacity = lens _sfrcdTargetCapacity (\ s a -> s{_sfrcdTargetCapacity = a});++-- | Grants the Spot fleet permission to terminate Spot instances on your+-- behalf when you cancel its Spot fleet request using+-- < CancelSpotFleetRequests> or when the Spot fleet request expires, if+-- you set 'terminateInstancesWithExpiration'.+sfrcdIAMFleetRole :: Lens' SpotFleetRequestConfigData Text+sfrcdIAMFleetRole = lens _sfrcdIAMFleetRole (\ s a -> s{_sfrcdIAMFleetRole = a});++-- | Information about the launch specifications for the Spot fleet request.+sfrcdLaunchSpecifications :: Lens' SpotFleetRequestConfigData (NonEmpty SpotFleetLaunchSpecification)+sfrcdLaunchSpecifications = lens _sfrcdLaunchSpecifications (\ s a -> s{_sfrcdLaunchSpecifications = a}) . _List1;++instance FromXML SpotFleetRequestConfigData where+        parseXML x+          = SpotFleetRequestConfigData' <$>+              (x .@? "clientToken") <*>+                (x .@? "excessCapacityTerminationPolicy")+                <*> (x .@? "validUntil")+                <*> (x .@? "terminateInstancesWithExpiration")+                <*> (x .@? "validFrom")+                <*> (x .@? "allocationStrategy")+                <*> (x .@ "spotPrice")+                <*> (x .@ "targetCapacity")+                <*> (x .@ "iamFleetRole")+                <*>+                (x .@? "launchSpecifications" .!@ mempty >>=+                   parseXMLList1 "item")++instance Hashable SpotFleetRequestConfigData++instance ToQuery SpotFleetRequestConfigData where+        toQuery SpotFleetRequestConfigData'{..}+          = mconcat+              ["ClientToken" =: _sfrcdClientToken,+               "ExcessCapacityTerminationPolicy" =:+                 _sfrcdExcessCapacityTerminationPolicy,+               "ValidUntil" =: _sfrcdValidUntil,+               "TerminateInstancesWithExpiration" =:+                 _sfrcdTerminateInstancesWithExpiration,+               "ValidFrom" =: _sfrcdValidFrom,+               "AllocationStrategy" =: _sfrcdAllocationStrategy,+               "SpotPrice" =: _sfrcdSpotPrice,+               "TargetCapacity" =: _sfrcdTargetCapacity,+               "IamFleetRole" =: _sfrcdIAMFleetRole,+               toQueryList "LaunchSpecifications"+                 _sfrcdLaunchSpecifications]++-- | Describes a Spot instance request.+--+-- /See:/ 'spotInstanceRequest' smart constructor.+data SpotInstanceRequest = SpotInstanceRequest'+    { _sirInstanceId               :: !(Maybe Text)+    , _sirStatus                   :: !(Maybe SpotInstanceStatus)+    , _sirState                    :: !(Maybe SpotInstanceState)+    , _sirActualBlockHourlyPrice   :: !(Maybe Text)+    , _sirBlockDurationMinutes     :: !(Maybe Int)+    , _sirProductDescription       :: !(Maybe RIProductDescription)+    , _sirSpotPrice                :: !(Maybe Text)+    , _sirLaunchSpecification      :: !(Maybe LaunchSpecification)+    , _sirAvailabilityZoneGroup    :: !(Maybe Text)+    , _sirLaunchedAvailabilityZone :: !(Maybe Text)+    , _sirValidUntil               :: !(Maybe ISO8601)+    , _sirLaunchGroup              :: !(Maybe Text)+    , _sirFault                    :: !(Maybe SpotInstanceStateFault)+    , _sirSpotInstanceRequestId    :: !(Maybe Text)+    , _sirType                     :: !(Maybe SpotInstanceType)+    , _sirValidFrom                :: !(Maybe ISO8601)+    , _sirCreateTime               :: !(Maybe ISO8601)+    , _sirTags                     :: !(Maybe [Tag])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpotInstanceRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sirInstanceId'+--+-- * 'sirStatus'+--+-- * 'sirState'+--+-- * 'sirActualBlockHourlyPrice'+--+-- * 'sirBlockDurationMinutes'+--+-- * 'sirProductDescription'+--+-- * 'sirSpotPrice'+--+-- * 'sirLaunchSpecification'+--+-- * 'sirAvailabilityZoneGroup'+--+-- * 'sirLaunchedAvailabilityZone'+--+-- * 'sirValidUntil'+--+-- * 'sirLaunchGroup'+--+-- * 'sirFault'+--+-- * 'sirSpotInstanceRequestId'+--+-- * 'sirType'+--+-- * 'sirValidFrom'+--+-- * 'sirCreateTime'+--+-- * 'sirTags'+spotInstanceRequest+    :: SpotInstanceRequest+spotInstanceRequest =+    SpotInstanceRequest'+    { _sirInstanceId = Nothing+    , _sirStatus = Nothing+    , _sirState = Nothing+    , _sirActualBlockHourlyPrice = Nothing+    , _sirBlockDurationMinutes = Nothing+    , _sirProductDescription = Nothing+    , _sirSpotPrice = Nothing+    , _sirLaunchSpecification = Nothing+    , _sirAvailabilityZoneGroup = Nothing+    , _sirLaunchedAvailabilityZone = Nothing+    , _sirValidUntil = Nothing+    , _sirLaunchGroup = Nothing+    , _sirFault = Nothing+    , _sirSpotInstanceRequestId = Nothing+    , _sirType = Nothing+    , _sirValidFrom = Nothing+    , _sirCreateTime = Nothing+    , _sirTags = Nothing+    }++-- | The instance ID, if an instance has been launched to fulfill the Spot+-- instance request.+sirInstanceId :: Lens' SpotInstanceRequest (Maybe Text)+sirInstanceId = lens _sirInstanceId (\ s a -> s{_sirInstanceId = a});++-- | The status code and status message describing the Spot instance request.+sirStatus :: Lens' SpotInstanceRequest (Maybe SpotInstanceStatus)+sirStatus = lens _sirStatus (\ s a -> s{_sirStatus = a});++-- | The state of the Spot instance request. Spot bid status information can+-- help you track your Spot instance requests. For more information, see+-- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html Spot Bid Status>+-- in the /Amazon Elastic Compute Cloud User Guide/.+sirState :: Lens' SpotInstanceRequest (Maybe SpotInstanceState)+sirState = lens _sirState (\ s a -> s{_sirState = a});++-- | If you specified a duration and your Spot instance request was+-- fulfilled, this is the fixed hourly price in effect for the Spot+-- instance while it runs.+sirActualBlockHourlyPrice :: Lens' SpotInstanceRequest (Maybe Text)+sirActualBlockHourlyPrice = lens _sirActualBlockHourlyPrice (\ s a -> s{_sirActualBlockHourlyPrice = a});++-- | The duration for the Spot instance, in minutes.+sirBlockDurationMinutes :: Lens' SpotInstanceRequest (Maybe Int)+sirBlockDurationMinutes = lens _sirBlockDurationMinutes (\ s a -> s{_sirBlockDurationMinutes = a});++-- | The product description associated with the Spot instance.+sirProductDescription :: Lens' SpotInstanceRequest (Maybe RIProductDescription)+sirProductDescription = lens _sirProductDescription (\ s a -> s{_sirProductDescription = a});++-- | The maximum hourly price (bid) for the Spot instance launched to fulfill+-- the request.+sirSpotPrice :: Lens' SpotInstanceRequest (Maybe Text)+sirSpotPrice = lens _sirSpotPrice (\ s a -> s{_sirSpotPrice = a});++-- | Additional information for launching instances.+sirLaunchSpecification :: Lens' SpotInstanceRequest (Maybe LaunchSpecification)+sirLaunchSpecification = lens _sirLaunchSpecification (\ s a -> s{_sirLaunchSpecification = a});++-- | The Availability Zone group. If you specify the same Availability Zone+-- group for all Spot instance requests, all Spot instances are launched in+-- the same Availability Zone.+sirAvailabilityZoneGroup :: Lens' SpotInstanceRequest (Maybe Text)+sirAvailabilityZoneGroup = lens _sirAvailabilityZoneGroup (\ s a -> s{_sirAvailabilityZoneGroup = a});++-- | The Availability Zone in which the bid is launched.+sirLaunchedAvailabilityZone :: Lens' SpotInstanceRequest (Maybe Text)+sirLaunchedAvailabilityZone = lens _sirLaunchedAvailabilityZone (\ s a -> s{_sirLaunchedAvailabilityZone = a});++-- | The end date of the request, in UTC format (for example,+-- /YYYY/-/MM/-/DD/T/HH/:/MM/:/SS/Z). If this is a one-time request, it+-- remains active until all instances launch, the request is canceled, or+-- this date is reached. If the request is persistent, it remains active+-- until it is canceled or this date is reached.+sirValidUntil :: Lens' SpotInstanceRequest (Maybe UTCTime)+sirValidUntil = lens _sirValidUntil (\ s a -> s{_sirValidUntil = a}) . mapping _Time;++-- | The instance launch group. Launch groups are Spot instances that launch+-- together and terminate together.+sirLaunchGroup :: Lens' SpotInstanceRequest (Maybe Text)+sirLaunchGroup = lens _sirLaunchGroup (\ s a -> s{_sirLaunchGroup = a});++-- | The fault codes for the Spot instance request, if any.+sirFault :: Lens' SpotInstanceRequest (Maybe SpotInstanceStateFault)+sirFault = lens _sirFault (\ s a -> s{_sirFault = a});++-- | The ID of the Spot instance request.+sirSpotInstanceRequestId :: Lens' SpotInstanceRequest (Maybe Text)+sirSpotInstanceRequestId = lens _sirSpotInstanceRequestId (\ s a -> s{_sirSpotInstanceRequestId = a});++-- | The Spot instance request type.+sirType :: Lens' SpotInstanceRequest (Maybe SpotInstanceType)+sirType = lens _sirType (\ s a -> s{_sirType = a});++-- | The start date of the request, in UTC format (for example,+-- /YYYY/-/MM/-/DD/T/HH/:/MM/:/SS/Z). The request becomes active at this+-- date and time.+sirValidFrom :: Lens' SpotInstanceRequest (Maybe UTCTime)+sirValidFrom = lens _sirValidFrom (\ s a -> s{_sirValidFrom = a}) . mapping _Time;++-- | The date and time when the Spot instance request was created, in UTC+-- format (for example, /YYYY/-/MM/-/DD/T/HH/:/MM/:/SS/Z).+sirCreateTime :: Lens' SpotInstanceRequest (Maybe UTCTime)+sirCreateTime = lens _sirCreateTime (\ s a -> s{_sirCreateTime = a}) . mapping _Time;++-- | Any tags assigned to the resource.+sirTags :: Lens' SpotInstanceRequest [Tag]+sirTags = lens _sirTags (\ s a -> s{_sirTags = a}) . _Default . _Coerce;++instance FromXML SpotInstanceRequest where+        parseXML x+          = SpotInstanceRequest' <$>+              (x .@? "instanceId") <*> (x .@? "status") <*>+                (x .@? "state")+                <*> (x .@? "actualBlockHourlyPrice")+                <*> (x .@? "blockDurationMinutes")+                <*> (x .@? "productDescription")+                <*> (x .@? "spotPrice")+                <*> (x .@? "launchSpecification")+                <*> (x .@? "availabilityZoneGroup")+                <*> (x .@? "launchedAvailabilityZone")+                <*> (x .@? "validUntil")+                <*> (x .@? "launchGroup")+                <*> (x .@? "fault")+                <*> (x .@? "spotInstanceRequestId")+                <*> (x .@? "type")+                <*> (x .@? "validFrom")+                <*> (x .@? "createTime")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable SpotInstanceRequest++-- | Describes a Spot instance state change.+--+-- /See:/ 'spotInstanceStateFault' smart constructor.+data SpotInstanceStateFault = SpotInstanceStateFault'+    { _sisfCode    :: !(Maybe Text)+    , _sisfMessage :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpotInstanceStateFault' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sisfCode'+--+-- * 'sisfMessage'+spotInstanceStateFault+    :: SpotInstanceStateFault+spotInstanceStateFault =+    SpotInstanceStateFault'+    { _sisfCode = Nothing+    , _sisfMessage = Nothing+    }++-- | The reason code for the Spot instance state change.+sisfCode :: Lens' SpotInstanceStateFault (Maybe Text)+sisfCode = lens _sisfCode (\ s a -> s{_sisfCode = a});++-- | The message for the Spot instance state change.+sisfMessage :: Lens' SpotInstanceStateFault (Maybe Text)+sisfMessage = lens _sisfMessage (\ s a -> s{_sisfMessage = a});++instance FromXML SpotInstanceStateFault where+        parseXML x+          = SpotInstanceStateFault' <$>+              (x .@? "code") <*> (x .@? "message")++instance Hashable SpotInstanceStateFault++-- | Describes the status of a Spot instance request.+--+-- /See:/ 'spotInstanceStatus' smart constructor.+data SpotInstanceStatus = SpotInstanceStatus'+    { _sisUpdateTime :: !(Maybe ISO8601)+    , _sisCode       :: !(Maybe Text)+    , _sisMessage    :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpotInstanceStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sisUpdateTime'+--+-- * 'sisCode'+--+-- * 'sisMessage'+spotInstanceStatus+    :: SpotInstanceStatus+spotInstanceStatus =+    SpotInstanceStatus'+    { _sisUpdateTime = Nothing+    , _sisCode = Nothing+    , _sisMessage = Nothing+    }++-- | The date and time of the most recent status update, in UTC format (for+-- example, /YYYY/-/MM/-/DD/T/HH/:/MM/:/SS/Z).+sisUpdateTime :: Lens' SpotInstanceStatus (Maybe UTCTime)+sisUpdateTime = lens _sisUpdateTime (\ s a -> s{_sisUpdateTime = a}) . mapping _Time;++-- | The status code. For a list of status codes, see+-- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html#spot-instance-bid-status-understand Spot Bid Status Codes>+-- in the /Amazon Elastic Compute Cloud User Guide/.+sisCode :: Lens' SpotInstanceStatus (Maybe Text)+sisCode = lens _sisCode (\ s a -> s{_sisCode = a});++-- | The description for the status code.+sisMessage :: Lens' SpotInstanceStatus (Maybe Text)+sisMessage = lens _sisMessage (\ s a -> s{_sisMessage = a});++instance FromXML SpotInstanceStatus where+        parseXML x+          = SpotInstanceStatus' <$>+              (x .@? "updateTime") <*> (x .@? "code") <*>+                (x .@? "message")++instance Hashable SpotInstanceStatus++-- | Describes Spot instance placement.+--+-- /See:/ 'spotPlacement' smart constructor.+data SpotPlacement = SpotPlacement'+    { _spAvailabilityZone :: !(Maybe Text)+    , _spGroupName        :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpotPlacement' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'spAvailabilityZone'+--+-- * 'spGroupName'+spotPlacement+    :: SpotPlacement+spotPlacement =+    SpotPlacement'+    { _spAvailabilityZone = Nothing+    , _spGroupName = Nothing+    }++-- | The Availability Zone.+--+-- [Spot fleet only] To specify multiple Availability Zones, separate them+-- using commas; for example, \"us-west-2a, us-west-2b\".+spAvailabilityZone :: Lens' SpotPlacement (Maybe Text)+spAvailabilityZone = lens _spAvailabilityZone (\ s a -> s{_spAvailabilityZone = a});++-- | The name of the placement group (for cluster instances).+spGroupName :: Lens' SpotPlacement (Maybe Text)+spGroupName = lens _spGroupName (\ s a -> s{_spGroupName = a});++instance FromXML SpotPlacement where+        parseXML x+          = SpotPlacement' <$>+              (x .@? "availabilityZone") <*> (x .@? "groupName")++instance Hashable SpotPlacement++instance ToQuery SpotPlacement where+        toQuery SpotPlacement'{..}+          = mconcat+              ["AvailabilityZone" =: _spAvailabilityZone,+               "GroupName" =: _spGroupName]++-- | Describes the maximum hourly price (bid) for any Spot instance launched+-- to fulfill the request.+--+-- /See:/ 'spotPrice' smart constructor.+data SpotPrice = SpotPrice'+    { _sProductDescription :: !(Maybe RIProductDescription)+    , _sSpotPrice          :: !(Maybe Text)+    , _sInstanceType       :: !(Maybe InstanceType)+    , _sAvailabilityZone   :: !(Maybe Text)+    , _sTimestamp          :: !(Maybe ISO8601)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpotPrice' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sProductDescription'+--+-- * 'sSpotPrice'+--+-- * 'sInstanceType'+--+-- * 'sAvailabilityZone'+--+-- * 'sTimestamp'+spotPrice+    :: SpotPrice+spotPrice =+    SpotPrice'+    { _sProductDescription = Nothing+    , _sSpotPrice = Nothing+    , _sInstanceType = Nothing+    , _sAvailabilityZone = Nothing+    , _sTimestamp = Nothing+    }++-- | A general description of the AMI.+sProductDescription :: Lens' SpotPrice (Maybe RIProductDescription)+sProductDescription = lens _sProductDescription (\ s a -> s{_sProductDescription = a});++-- | The maximum price (bid) that you are willing to pay for a Spot instance.+sSpotPrice :: Lens' SpotPrice (Maybe Text)+sSpotPrice = lens _sSpotPrice (\ s a -> s{_sSpotPrice = a});++-- | The instance type.+sInstanceType :: Lens' SpotPrice (Maybe InstanceType)+sInstanceType = lens _sInstanceType (\ s a -> s{_sInstanceType = a});++-- | The Availability Zone.+sAvailabilityZone :: Lens' SpotPrice (Maybe Text)+sAvailabilityZone = lens _sAvailabilityZone (\ s a -> s{_sAvailabilityZone = a});++-- | The date and time the request was created, in UTC format (for example,+-- /YYYY/-/MM/-/DD/T/HH/:/MM/:/SS/Z).+sTimestamp :: Lens' SpotPrice (Maybe UTCTime)+sTimestamp = lens _sTimestamp (\ s a -> s{_sTimestamp = a}) . mapping _Time;++instance FromXML SpotPrice where+        parseXML x+          = SpotPrice' <$>+              (x .@? "productDescription") <*> (x .@? "spotPrice")+                <*> (x .@? "instanceType")+                <*> (x .@? "availabilityZone")+                <*> (x .@? "timestamp")++instance Hashable SpotPrice++-- | Describes a state change.+--+-- /See:/ 'stateReason' smart constructor.+data StateReason = StateReason'+    { _srCode    :: !(Maybe Text)+    , _srMessage :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'StateReason' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'srCode'+--+-- * 'srMessage'+stateReason+    :: StateReason+stateReason =+    StateReason'+    { _srCode = Nothing+    , _srMessage = Nothing+    }++-- | The reason code for the state change.+srCode :: Lens' StateReason (Maybe Text)+srCode = lens _srCode (\ s a -> s{_srCode = a});++-- | The message for the state change.+--+-- -   'Server.SpotInstanceTermination': A Spot instance was terminated due+--     to an increase in the market price.+--+-- -   'Server.InternalError': An internal error occurred during instance+--     launch, resulting in termination.+--+-- -   'Server.InsufficientInstanceCapacity': There was insufficient+--     instance capacity to satisfy the launch request.+--+-- -   'Client.InternalError': A client error caused the instance to+--     terminate on launch.+--+-- -   'Client.InstanceInitiatedShutdown': The instance was shut down using+--     the 'shutdown -h' command from the instance.+--+-- -   'Client.UserInitiatedShutdown': The instance was shut down using the+--     Amazon EC2 API.+--+-- -   'Client.VolumeLimitExceeded': The limit on the number of EBS volumes+--     or total storage was exceeded. Decrease usage or request an increase+--     in your limits.+--+-- -   'Client.InvalidSnapshot.NotFound': The specified snapshot was not+--     found.+--+srMessage :: Lens' StateReason (Maybe Text)+srMessage = lens _srMessage (\ s a -> s{_srMessage = a});++instance FromXML StateReason where+        parseXML x+          = StateReason' <$>+              (x .@? "code") <*> (x .@? "message")++instance Hashable StateReason++-- | Describes the storage location for an instance store-backed AMI.+--+-- /See:/ 'storage' smart constructor.+newtype Storage = Storage'+    { _sS3 :: Maybe S3Storage+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Storage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sS3'+storage+    :: Storage+storage =+    Storage'+    { _sS3 = Nothing+    }++-- | An Amazon S3 storage location.+sS3 :: Lens' Storage (Maybe S3Storage)+sS3 = lens _sS3 (\ s a -> s{_sS3 = a});++instance FromXML Storage where+        parseXML x = Storage' <$> (x .@? "S3")++instance Hashable Storage++instance ToQuery Storage where+        toQuery Storage'{..} = mconcat ["S3" =: _sS3]++-- | Describes a subnet.+--+-- /See:/ 'subnet' smart constructor.+data Subnet = Subnet'+    { _subMapPublicIPOnLaunch     :: !(Maybe Bool)+    , _subDefaultForAz            :: !(Maybe Bool)+    , _subTags                    :: !(Maybe [Tag])+    , _subAvailabilityZone        :: !Text+    , _subAvailableIPAddressCount :: !Int+    , _subCIdRBlock               :: !Text+    , _subState                   :: !SubnetState+    , _subSubnetId                :: !Text+    , _subVPCId                   :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Subnet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'subMapPublicIPOnLaunch'+--+-- * 'subDefaultForAz'+--+-- * 'subTags'+--+-- * 'subAvailabilityZone'+--+-- * 'subAvailableIPAddressCount'+--+-- * 'subCIdRBlock'+--+-- * 'subState'+--+-- * 'subSubnetId'+--+-- * 'subVPCId'+subnet+    :: Text -- ^ 'subAvailabilityZone'+    -> Int -- ^ 'subAvailableIPAddressCount'+    -> Text -- ^ 'subCIdRBlock'+    -> SubnetState -- ^ 'subState'+    -> Text -- ^ 'subSubnetId'+    -> Text -- ^ 'subVPCId'+    -> Subnet+subnet pAvailabilityZone_ pAvailableIPAddressCount_ pCIdRBlock_ pState_ pSubnetId_ pVPCId_ =+    Subnet'+    { _subMapPublicIPOnLaunch = Nothing+    , _subDefaultForAz = Nothing+    , _subTags = Nothing+    , _subAvailabilityZone = pAvailabilityZone_+    , _subAvailableIPAddressCount = pAvailableIPAddressCount_+    , _subCIdRBlock = pCIdRBlock_+    , _subState = pState_+    , _subSubnetId = pSubnetId_+    , _subVPCId = pVPCId_+    }++-- | Indicates whether instances launched in this subnet receive a public IP+-- address.+subMapPublicIPOnLaunch :: Lens' Subnet (Maybe Bool)+subMapPublicIPOnLaunch = lens _subMapPublicIPOnLaunch (\ s a -> s{_subMapPublicIPOnLaunch = a});++-- | Indicates whether this is the default subnet for the Availability Zone.+subDefaultForAz :: Lens' Subnet (Maybe Bool)+subDefaultForAz = lens _subDefaultForAz (\ s a -> s{_subDefaultForAz = a});++-- | Any tags assigned to the subnet.+subTags :: Lens' Subnet [Tag]+subTags = lens _subTags (\ s a -> s{_subTags = a}) . _Default . _Coerce;++-- | The Availability Zone of the subnet.+subAvailabilityZone :: Lens' Subnet Text+subAvailabilityZone = lens _subAvailabilityZone (\ s a -> s{_subAvailabilityZone = a});++-- | The number of unused IP addresses in the subnet. Note that the IP+-- addresses for any stopped instances are considered unavailable.+subAvailableIPAddressCount :: Lens' Subnet Int+subAvailableIPAddressCount = lens _subAvailableIPAddressCount (\ s a -> s{_subAvailableIPAddressCount = a});++-- | The CIDR block assigned to the subnet.+subCIdRBlock :: Lens' Subnet Text+subCIdRBlock = lens _subCIdRBlock (\ s a -> s{_subCIdRBlock = a});++-- | The current state of the subnet.+subState :: Lens' Subnet SubnetState+subState = lens _subState (\ s a -> s{_subState = a});++-- | The ID of the subnet.+subSubnetId :: Lens' Subnet Text+subSubnetId = lens _subSubnetId (\ s a -> s{_subSubnetId = a});++-- | The ID of the VPC the subnet is in.+subVPCId :: Lens' Subnet Text+subVPCId = lens _subVPCId (\ s a -> s{_subVPCId = a});++instance FromXML Subnet where+        parseXML x+          = Subnet' <$>+              (x .@? "mapPublicIpOnLaunch") <*>+                (x .@? "defaultForAz")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@ "availabilityZone")+                <*> (x .@ "availableIpAddressCount")+                <*> (x .@ "cidrBlock")+                <*> (x .@ "state")+                <*> (x .@ "subnetId")+                <*> (x .@ "vpcId")++instance Hashable Subnet++-- | Describes a tag.+--+-- /See:/ 'tag' smart constructor.+data Tag = Tag'+    { _tagKey   :: !Text+    , _tagValue :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Tag' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tagKey'+--+-- * 'tagValue'+tag+    :: Text -- ^ 'tagKey'+    -> Text -- ^ 'tagValue'+    -> Tag+tag pKey_ pValue_ =+    Tag'+    { _tagKey = pKey_+    , _tagValue = pValue_+    }++-- | The key of the tag.+--+-- Constraints: Tag keys are case-sensitive and accept a maximum of 127+-- Unicode characters. May not begin with 'aws:'+tagKey :: Lens' Tag Text+tagKey = lens _tagKey (\ s a -> s{_tagKey = a});++-- | The value of the tag.+--+-- Constraints: Tag values are case-sensitive and accept a maximum of 255+-- Unicode characters.+tagValue :: Lens' Tag Text+tagValue = lens _tagValue (\ s a -> s{_tagValue = a});++instance FromXML Tag where+        parseXML x = Tag' <$> (x .@ "key") <*> (x .@ "value")++instance Hashable Tag++instance ToQuery Tag where+        toQuery Tag'{..}+          = mconcat ["Key" =: _tagKey, "Value" =: _tagValue]++-- | Describes a tag.+--+-- /See:/ 'tagDescription' smart constructor.+data TagDescription = TagDescription'+    { _tdResourceId   :: !Text+    , _tdResourceType :: !ResourceType+    , _tdKey          :: !Text+    , _tdValue        :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'TagDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tdResourceId'+--+-- * 'tdResourceType'+--+-- * 'tdKey'+--+-- * 'tdValue'+tagDescription+    :: Text -- ^ 'tdResourceId'+    -> ResourceType -- ^ 'tdResourceType'+    -> Text -- ^ 'tdKey'+    -> Text -- ^ 'tdValue'+    -> TagDescription+tagDescription pResourceId_ pResourceType_ pKey_ pValue_ =+    TagDescription'+    { _tdResourceId = pResourceId_+    , _tdResourceType = pResourceType_+    , _tdKey = pKey_+    , _tdValue = pValue_+    }++-- | The ID of the resource. For example, 'ami-1a2b3c4d'.+tdResourceId :: Lens' TagDescription Text+tdResourceId = lens _tdResourceId (\ s a -> s{_tdResourceId = a});++-- | The resource type.+tdResourceType :: Lens' TagDescription ResourceType+tdResourceType = lens _tdResourceType (\ s a -> s{_tdResourceType = a});++-- | The tag key.+tdKey :: Lens' TagDescription Text+tdKey = lens _tdKey (\ s a -> s{_tdKey = a});++-- | The tag value.+tdValue :: Lens' TagDescription Text+tdValue = lens _tdValue (\ s a -> s{_tdValue = a});++instance FromXML TagDescription where+        parseXML x+          = TagDescription' <$>+              (x .@ "resourceId") <*> (x .@ "resourceType") <*>+                (x .@ "key")+                <*> (x .@ "value")++instance Hashable TagDescription++-- | Information about items that were not successfully processed in a batch+-- call.+--+-- /See:/ 'unsuccessfulItem' smart constructor.+data UnsuccessfulItem = UnsuccessfulItem'+    { _uiResourceId :: !(Maybe Text)+    , _uiError      :: !UnsuccessfulItemError+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UnsuccessfulItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uiResourceId'+--+-- * 'uiError'+unsuccessfulItem+    :: UnsuccessfulItemError -- ^ 'uiError'+    -> UnsuccessfulItem+unsuccessfulItem pError_ =+    UnsuccessfulItem'+    { _uiResourceId = Nothing+    , _uiError = pError_+    }++-- | The ID of the resource.+uiResourceId :: Lens' UnsuccessfulItem (Maybe Text)+uiResourceId = lens _uiResourceId (\ s a -> s{_uiResourceId = a});++-- | Information about the error.+uiError :: Lens' UnsuccessfulItem UnsuccessfulItemError+uiError = lens _uiError (\ s a -> s{_uiError = a});++instance FromXML UnsuccessfulItem where+        parseXML x+          = UnsuccessfulItem' <$>+              (x .@? "resourceId") <*> (x .@ "error")++instance Hashable UnsuccessfulItem++-- | Information about the error that occurred. For more information about+-- errors, see+-- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html Error Codes>.+--+-- /See:/ 'unsuccessfulItemError' smart constructor.+data UnsuccessfulItemError = UnsuccessfulItemError'+    { _uieCode    :: !Text+    , _uieMessage :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UnsuccessfulItemError' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uieCode'+--+-- * 'uieMessage'+unsuccessfulItemError+    :: Text -- ^ 'uieCode'+    -> Text -- ^ 'uieMessage'+    -> UnsuccessfulItemError+unsuccessfulItemError pCode_ pMessage_ =+    UnsuccessfulItemError'+    { _uieCode = pCode_+    , _uieMessage = pMessage_+    }++-- | The error code.+uieCode :: Lens' UnsuccessfulItemError Text+uieCode = lens _uieCode (\ s a -> s{_uieCode = a});++-- | The error message accompanying the error code.+uieMessage :: Lens' UnsuccessfulItemError Text+uieMessage = lens _uieMessage (\ s a -> s{_uieMessage = a});++instance FromXML UnsuccessfulItemError where+        parseXML x+          = UnsuccessfulItemError' <$>+              (x .@ "code") <*> (x .@ "message")++instance Hashable UnsuccessfulItemError++-- | Describes the S3 bucket for the disk image.+--+-- /See:/ 'userBucket' smart constructor.+data UserBucket = UserBucket'+    { _ubS3Key    :: !(Maybe Text)+    , _ubS3Bucket :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserBucket' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ubS3Key'+--+-- * 'ubS3Bucket'+userBucket+    :: UserBucket+userBucket =+    UserBucket'+    { _ubS3Key = Nothing+    , _ubS3Bucket = Nothing+    }++-- | The file name of the disk image.+ubS3Key :: Lens' UserBucket (Maybe Text)+ubS3Key = lens _ubS3Key (\ s a -> s{_ubS3Key = a});++-- | The name of the S3 bucket where the disk image is located.+ubS3Bucket :: Lens' UserBucket (Maybe Text)+ubS3Bucket = lens _ubS3Bucket (\ s a -> s{_ubS3Bucket = a});++instance Hashable UserBucket++instance ToQuery UserBucket where+        toQuery UserBucket'{..}+          = mconcat+              ["S3Key" =: _ubS3Key, "S3Bucket" =: _ubS3Bucket]++-- | Describes the S3 bucket for the disk image.+--+-- /See:/ 'userBucketDetails' smart constructor.+data UserBucketDetails = UserBucketDetails'+    { _ubdS3Key    :: !(Maybe Text)+    , _ubdS3Bucket :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserBucketDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ubdS3Key'+--+-- * 'ubdS3Bucket'+userBucketDetails+    :: UserBucketDetails+userBucketDetails =+    UserBucketDetails'+    { _ubdS3Key = Nothing+    , _ubdS3Bucket = Nothing+    }++-- | The file name of the disk image.+ubdS3Key :: Lens' UserBucketDetails (Maybe Text)+ubdS3Key = lens _ubdS3Key (\ s a -> s{_ubdS3Key = a});++-- | The S3 bucket from which the disk image was created.+ubdS3Bucket :: Lens' UserBucketDetails (Maybe Text)+ubdS3Bucket = lens _ubdS3Bucket (\ s a -> s{_ubdS3Bucket = a});++instance FromXML UserBucketDetails where+        parseXML x+          = UserBucketDetails' <$>+              (x .@? "s3Key") <*> (x .@? "s3Bucket")++instance Hashable UserBucketDetails++-- | Describes the user data to be made available to an instance.+--+-- /See:/ 'userData' smart constructor.+newtype UserData = UserData'+    { _udData :: Maybe Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserData' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'udData'+userData+    :: UserData+userData =+    UserData'+    { _udData = Nothing+    }++-- | The Base64-encoded MIME user data for the instance.+udData :: Lens' UserData (Maybe Text)+udData = lens _udData (\ s a -> s{_udData = a});++instance Hashable UserData++instance ToQuery UserData where+        toQuery UserData'{..} = mconcat ["Data" =: _udData]++-- | Describes a security group and AWS account ID pair.+--+-- /See:/ 'userIdGroupPair' smart constructor.+data UserIdGroupPair = UserIdGroupPair'+    { _uigpVPCPeeringConnectionId :: !(Maybe Text)+    , _uigpVPCId                  :: !(Maybe Text)+    , _uigpUserId                 :: !(Maybe Text)+    , _uigpGroupId                :: !(Maybe Text)+    , _uigpGroupName              :: !(Maybe Text)+    , _uigpPeeringStatus          :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserIdGroupPair' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uigpVPCPeeringConnectionId'+--+-- * 'uigpVPCId'+--+-- * 'uigpUserId'+--+-- * 'uigpGroupId'+--+-- * 'uigpGroupName'+--+-- * 'uigpPeeringStatus'+userIdGroupPair+    :: UserIdGroupPair+userIdGroupPair =+    UserIdGroupPair'+    { _uigpVPCPeeringConnectionId = Nothing+    , _uigpVPCId = Nothing+    , _uigpUserId = Nothing+    , _uigpGroupId = Nothing+    , _uigpGroupName = Nothing+    , _uigpPeeringStatus = Nothing+    }++-- | The ID of the VPC peering connection, if applicable.+uigpVPCPeeringConnectionId :: Lens' UserIdGroupPair (Maybe Text)+uigpVPCPeeringConnectionId = lens _uigpVPCPeeringConnectionId (\ s a -> s{_uigpVPCPeeringConnectionId = a});++-- | The ID of the VPC for the referenced security group, if applicable.+uigpVPCId :: Lens' UserIdGroupPair (Maybe Text)+uigpVPCId = lens _uigpVPCId (\ s a -> s{_uigpVPCId = a});++-- | The ID of an AWS account.+uigpUserId :: Lens' UserIdGroupPair (Maybe Text)+uigpUserId = lens _uigpUserId (\ s a -> s{_uigpUserId = a});++-- | The ID of the security group.+uigpGroupId :: Lens' UserIdGroupPair (Maybe Text)+uigpGroupId = lens _uigpGroupId (\ s a -> s{_uigpGroupId = a});++-- | The name of the security group. In a request, use this parameter for a+-- security group in EC2-Classic or a default VPC only. For a security+-- group in a nondefault VPC, use 'GroupId'.+uigpGroupName :: Lens' UserIdGroupPair (Maybe Text)+uigpGroupName = lens _uigpGroupName (\ s a -> s{_uigpGroupName = a});++-- | The status of a VPC peering connection, if applicable.+uigpPeeringStatus :: Lens' UserIdGroupPair (Maybe Text)+uigpPeeringStatus = lens _uigpPeeringStatus (\ s a -> s{_uigpPeeringStatus = a});++instance FromXML UserIdGroupPair where+        parseXML x+          = UserIdGroupPair' <$>+              (x .@? "vpcPeeringConnectionId") <*> (x .@? "vpcId")+                <*> (x .@? "userId")+                <*> (x .@? "groupId")+                <*> (x .@? "groupName")+                <*> (x .@? "peeringStatus")++instance Hashable UserIdGroupPair++instance ToQuery UserIdGroupPair where+        toQuery UserIdGroupPair'{..}+          = mconcat+              ["VpcPeeringConnectionId" =:+                 _uigpVPCPeeringConnectionId,+               "VpcId" =: _uigpVPCId, "UserId" =: _uigpUserId,+               "GroupId" =: _uigpGroupId,+               "GroupName" =: _uigpGroupName,+               "PeeringStatus" =: _uigpPeeringStatus]++-- | Describes telemetry for a VPN tunnel.+--+-- /See:/ 'vgwTelemetry' smart constructor.+data VGWTelemetry = VGWTelemetry'+    { _vtStatus             :: !(Maybe TelemetryStatus)+    , _vtOutsideIPAddress   :: !(Maybe Text)+    , _vtLastStatusChange   :: !(Maybe ISO8601)+    , _vtAcceptedRouteCount :: !(Maybe Int)+    , _vtStatusMessage      :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'VGWTelemetry' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vtStatus'+--+-- * 'vtOutsideIPAddress'+--+-- * 'vtLastStatusChange'+--+-- * 'vtAcceptedRouteCount'+--+-- * 'vtStatusMessage'+vgwTelemetry+    :: VGWTelemetry+vgwTelemetry =+    VGWTelemetry'+    { _vtStatus = Nothing+    , _vtOutsideIPAddress = Nothing+    , _vtLastStatusChange = Nothing+    , _vtAcceptedRouteCount = Nothing+    , _vtStatusMessage = Nothing+    }++-- | The status of the VPN tunnel.+vtStatus :: Lens' VGWTelemetry (Maybe TelemetryStatus)+vtStatus = lens _vtStatus (\ s a -> s{_vtStatus = a});++-- | The Internet-routable IP address of the virtual private gateway\'s+-- outside interface.+vtOutsideIPAddress :: Lens' VGWTelemetry (Maybe Text)+vtOutsideIPAddress = lens _vtOutsideIPAddress (\ s a -> s{_vtOutsideIPAddress = a});++-- | The date and time of the last change in status.+vtLastStatusChange :: Lens' VGWTelemetry (Maybe UTCTime)+vtLastStatusChange = lens _vtLastStatusChange (\ s a -> s{_vtLastStatusChange = a}) . mapping _Time;++-- | The number of accepted routes.+vtAcceptedRouteCount :: Lens' VGWTelemetry (Maybe Int)+vtAcceptedRouteCount = lens _vtAcceptedRouteCount (\ s a -> s{_vtAcceptedRouteCount = a});++-- | If an error occurs, a description of the error.+vtStatusMessage :: Lens' VGWTelemetry (Maybe Text)+vtStatusMessage = lens _vtStatusMessage (\ s a -> s{_vtStatusMessage = a});++instance FromXML VGWTelemetry where+        parseXML x+          = VGWTelemetry' <$>+              (x .@? "status") <*> (x .@? "outsideIpAddress") <*>+                (x .@? "lastStatusChange")+                <*> (x .@? "acceptedRouteCount")+                <*> (x .@? "statusMessage")++instance Hashable VGWTelemetry++-- | Describes a VPC.+--+-- /See:/ 'vpc' smart constructor.+data VPC = VPC'+    { _vpcTags            :: !(Maybe [Tag])+    , _vpcIsDefault       :: !(Maybe Bool)+    , _vpcCIdRBlock       :: !Text+    , _vpcDHCPOptionsId   :: !Text+    , _vpcInstanceTenancy :: !Tenancy+    , _vpcState           :: !VPCState+    , _vpcVPCId           :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPC' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vpcTags'+--+-- * 'vpcIsDefault'+--+-- * 'vpcCIdRBlock'+--+-- * 'vpcDHCPOptionsId'+--+-- * 'vpcInstanceTenancy'+--+-- * 'vpcState'+--+-- * 'vpcVPCId'+vpc+    :: Text -- ^ 'vpcCIdRBlock'+    -> Text -- ^ 'vpcDHCPOptionsId'+    -> Tenancy -- ^ 'vpcInstanceTenancy'+    -> VPCState -- ^ 'vpcState'+    -> Text -- ^ 'vpcVPCId'+    -> VPC+vpc pCIdRBlock_ pDHCPOptionsId_ pInstanceTenancy_ pState_ pVPCId_ =+    VPC'+    { _vpcTags = Nothing+    , _vpcIsDefault = Nothing+    , _vpcCIdRBlock = pCIdRBlock_+    , _vpcDHCPOptionsId = pDHCPOptionsId_+    , _vpcInstanceTenancy = pInstanceTenancy_+    , _vpcState = pState_+    , _vpcVPCId = pVPCId_+    }++-- | Any tags assigned to the VPC.+vpcTags :: Lens' VPC [Tag]+vpcTags = lens _vpcTags (\ s a -> s{_vpcTags = a}) . _Default . _Coerce;++-- | Indicates whether the VPC is the default VPC.+vpcIsDefault :: Lens' VPC (Maybe Bool)+vpcIsDefault = lens _vpcIsDefault (\ s a -> s{_vpcIsDefault = a});++-- | The CIDR block for the VPC.+vpcCIdRBlock :: Lens' VPC Text+vpcCIdRBlock = lens _vpcCIdRBlock (\ s a -> s{_vpcCIdRBlock = a});++-- | The ID of the set of DHCP options you\'ve associated with the VPC (or+-- 'default' if the default options are associated with the VPC).+vpcDHCPOptionsId :: Lens' VPC Text+vpcDHCPOptionsId = lens _vpcDHCPOptionsId (\ s a -> s{_vpcDHCPOptionsId = a});++-- | The allowed tenancy of instances launched into the VPC.+vpcInstanceTenancy :: Lens' VPC Tenancy+vpcInstanceTenancy = lens _vpcInstanceTenancy (\ s a -> s{_vpcInstanceTenancy = a});++-- | The current state of the VPC.+vpcState :: Lens' VPC VPCState+vpcState = lens _vpcState (\ s a -> s{_vpcState = a});++-- | The ID of the VPC.+vpcVPCId :: Lens' VPC Text+vpcVPCId = lens _vpcVPCId (\ s a -> s{_vpcVPCId = a});++instance FromXML VPC where+        parseXML x+          = VPC' <$>+              (x .@? "tagSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "isDefault")+                <*> (x .@ "cidrBlock")+                <*> (x .@ "dhcpOptionsId")+                <*> (x .@ "instanceTenancy")+                <*> (x .@ "state")+                <*> (x .@ "vpcId")++instance Hashable VPC++-- | Describes an attachment between a virtual private gateway and a VPC.+--+-- /See:/ 'vpcAttachment' smart constructor.+data VPCAttachment = VPCAttachment'+    { _vaState :: !(Maybe AttachmentStatus)+    , _vaVPCId :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPCAttachment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vaState'+--+-- * 'vaVPCId'+vpcAttachment+    :: VPCAttachment+vpcAttachment =+    VPCAttachment'+    { _vaState = Nothing+    , _vaVPCId = Nothing+    }++-- | The current state of the attachment.+vaState :: Lens' VPCAttachment (Maybe AttachmentStatus)+vaState = lens _vaState (\ s a -> s{_vaState = a});++-- | The ID of the VPC.+vaVPCId :: Lens' VPCAttachment (Maybe Text)+vaVPCId = lens _vaVPCId (\ s a -> s{_vaVPCId = a});++instance FromXML VPCAttachment where+        parseXML x+          = VPCAttachment' <$>+              (x .@? "state") <*> (x .@? "vpcId")++instance Hashable VPCAttachment++-- | Describes whether a VPC is enabled for ClassicLink.+--+-- /See:/ 'vpcClassicLink' smart constructor.+data VPCClassicLink = VPCClassicLink'+    { _vclVPCId              :: !(Maybe Text)+    , _vclTags               :: !(Maybe [Tag])+    , _vclClassicLinkEnabled :: !(Maybe Bool)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPCClassicLink' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vclVPCId'+--+-- * 'vclTags'+--+-- * 'vclClassicLinkEnabled'+vpcClassicLink+    :: VPCClassicLink+vpcClassicLink =+    VPCClassicLink'+    { _vclVPCId = Nothing+    , _vclTags = Nothing+    , _vclClassicLinkEnabled = Nothing+    }++-- | The ID of the VPC.+vclVPCId :: Lens' VPCClassicLink (Maybe Text)+vclVPCId = lens _vclVPCId (\ s a -> s{_vclVPCId = a});++-- | Any tags assigned to the VPC.+vclTags :: Lens' VPCClassicLink [Tag]+vclTags = lens _vclTags (\ s a -> s{_vclTags = a}) . _Default . _Coerce;++-- | Indicates whether the VPC is enabled for ClassicLink.+vclClassicLinkEnabled :: Lens' VPCClassicLink (Maybe Bool)+vclClassicLinkEnabled = lens _vclClassicLinkEnabled (\ s a -> s{_vclClassicLinkEnabled = a});++instance FromXML VPCClassicLink where+        parseXML x+          = VPCClassicLink' <$>+              (x .@? "vpcId") <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "classicLinkEnabled")++instance Hashable VPCClassicLink++-- | Describes a VPC endpoint.+--+-- /See:/ 'vpcEndpoint' smart constructor.+data VPCEndpoint = VPCEndpoint'+    { _veState             :: !(Maybe State)+    , _vePolicyDocument    :: !(Maybe Text)+    , _veVPCId             :: !(Maybe Text)+    , _veCreationTimestamp :: !(Maybe ISO8601)+    , _veServiceName       :: !(Maybe Text)+    , _veVPCEndpointId     :: !(Maybe Text)+    , _veRouteTableIds     :: !(Maybe [Text])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPCEndpoint' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'veState'+--+-- * 'vePolicyDocument'+--+-- * 'veVPCId'+--+-- * 'veCreationTimestamp'+--+-- * 'veServiceName'+--+-- * 'veVPCEndpointId'+--+-- * 'veRouteTableIds'+vpcEndpoint+    :: VPCEndpoint+vpcEndpoint =+    VPCEndpoint'+    { _veState = Nothing+    , _vePolicyDocument = Nothing+    , _veVPCId = Nothing+    , _veCreationTimestamp = Nothing+    , _veServiceName = Nothing+    , _veVPCEndpointId = Nothing+    , _veRouteTableIds = Nothing+    }++-- | The state of the VPC endpoint.+veState :: Lens' VPCEndpoint (Maybe State)+veState = lens _veState (\ s a -> s{_veState = a});++-- | The policy document associated with the endpoint.+vePolicyDocument :: Lens' VPCEndpoint (Maybe Text)+vePolicyDocument = lens _vePolicyDocument (\ s a -> s{_vePolicyDocument = a});++-- | The ID of the VPC to which the endpoint is associated.+veVPCId :: Lens' VPCEndpoint (Maybe Text)+veVPCId = lens _veVPCId (\ s a -> s{_veVPCId = a});++-- | The date and time the VPC endpoint was created.+veCreationTimestamp :: Lens' VPCEndpoint (Maybe UTCTime)+veCreationTimestamp = lens _veCreationTimestamp (\ s a -> s{_veCreationTimestamp = a}) . mapping _Time;++-- | The name of the AWS service to which the endpoint is associated.+veServiceName :: Lens' VPCEndpoint (Maybe Text)+veServiceName = lens _veServiceName (\ s a -> s{_veServiceName = a});++-- | The ID of the VPC endpoint.+veVPCEndpointId :: Lens' VPCEndpoint (Maybe Text)+veVPCEndpointId = lens _veVPCEndpointId (\ s a -> s{_veVPCEndpointId = a});++-- | One or more route tables associated with the endpoint.+veRouteTableIds :: Lens' VPCEndpoint [Text]+veRouteTableIds = lens _veRouteTableIds (\ s a -> s{_veRouteTableIds = a}) . _Default . _Coerce;++instance FromXML VPCEndpoint where+        parseXML x+          = VPCEndpoint' <$>+              (x .@? "state") <*> (x .@? "policyDocument") <*>+                (x .@? "vpcId")+                <*> (x .@? "creationTimestamp")+                <*> (x .@? "serviceName")+                <*> (x .@? "vpcEndpointId")+                <*>+                (x .@? "routeTableIdSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable VPCEndpoint++-- | Describes a VPC peering connection.+--+-- /See:/ 'vpcPeeringConnection' smart constructor.+data VPCPeeringConnection = VPCPeeringConnection'+    { _vpcpcVPCPeeringConnectionId :: !(Maybe Text)+    , _vpcpcStatus                 :: !(Maybe VPCPeeringConnectionStateReason)+    , _vpcpcAccepterVPCInfo        :: !(Maybe VPCPeeringConnectionVPCInfo)+    , _vpcpcRequesterVPCInfo       :: !(Maybe VPCPeeringConnectionVPCInfo)+    , _vpcpcExpirationTime         :: !(Maybe ISO8601)+    , _vpcpcTags                   :: !(Maybe [Tag])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPCPeeringConnection' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vpcpcVPCPeeringConnectionId'+--+-- * 'vpcpcStatus'+--+-- * 'vpcpcAccepterVPCInfo'+--+-- * 'vpcpcRequesterVPCInfo'+--+-- * 'vpcpcExpirationTime'+--+-- * 'vpcpcTags'+vpcPeeringConnection+    :: VPCPeeringConnection+vpcPeeringConnection =+    VPCPeeringConnection'+    { _vpcpcVPCPeeringConnectionId = Nothing+    , _vpcpcStatus = Nothing+    , _vpcpcAccepterVPCInfo = Nothing+    , _vpcpcRequesterVPCInfo = Nothing+    , _vpcpcExpirationTime = Nothing+    , _vpcpcTags = Nothing+    }++-- | The ID of the VPC peering connection.+vpcpcVPCPeeringConnectionId :: Lens' VPCPeeringConnection (Maybe Text)+vpcpcVPCPeeringConnectionId = lens _vpcpcVPCPeeringConnectionId (\ s a -> s{_vpcpcVPCPeeringConnectionId = a});++-- | The status of the VPC peering connection.+vpcpcStatus :: Lens' VPCPeeringConnection (Maybe VPCPeeringConnectionStateReason)+vpcpcStatus = lens _vpcpcStatus (\ s a -> s{_vpcpcStatus = a});++-- | The information of the peer VPC.+vpcpcAccepterVPCInfo :: Lens' VPCPeeringConnection (Maybe VPCPeeringConnectionVPCInfo)+vpcpcAccepterVPCInfo = lens _vpcpcAccepterVPCInfo (\ s a -> s{_vpcpcAccepterVPCInfo = a});++-- | The information of the requester VPC.+vpcpcRequesterVPCInfo :: Lens' VPCPeeringConnection (Maybe VPCPeeringConnectionVPCInfo)+vpcpcRequesterVPCInfo = lens _vpcpcRequesterVPCInfo (\ s a -> s{_vpcpcRequesterVPCInfo = a});++-- | The time that an unaccepted VPC peering connection will expire.+vpcpcExpirationTime :: Lens' VPCPeeringConnection (Maybe UTCTime)+vpcpcExpirationTime = lens _vpcpcExpirationTime (\ s a -> s{_vpcpcExpirationTime = a}) . mapping _Time;++-- | Any tags assigned to the resource.+vpcpcTags :: Lens' VPCPeeringConnection [Tag]+vpcpcTags = lens _vpcpcTags (\ s a -> s{_vpcpcTags = a}) . _Default . _Coerce;++instance FromXML VPCPeeringConnection where+        parseXML x+          = VPCPeeringConnection' <$>+              (x .@? "vpcPeeringConnectionId") <*> (x .@? "status")+                <*> (x .@? "accepterVpcInfo")+                <*> (x .@? "requesterVpcInfo")+                <*> (x .@? "expirationTime")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable VPCPeeringConnection++-- | Describes the status of a VPC peering connection.+--+-- /See:/ 'vpcPeeringConnectionStateReason' smart constructor.+data VPCPeeringConnectionStateReason = VPCPeeringConnectionStateReason'+    { _vpcsrCode    :: !(Maybe VPCPeeringConnectionStateReasonCode)+    , _vpcsrMessage :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPCPeeringConnectionStateReason' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vpcsrCode'+--+-- * 'vpcsrMessage'+vpcPeeringConnectionStateReason+    :: VPCPeeringConnectionStateReason+vpcPeeringConnectionStateReason =+    VPCPeeringConnectionStateReason'+    { _vpcsrCode = Nothing+    , _vpcsrMessage = Nothing+    }++-- | The status of the VPC peering connection.+vpcsrCode :: Lens' VPCPeeringConnectionStateReason (Maybe VPCPeeringConnectionStateReasonCode)+vpcsrCode = lens _vpcsrCode (\ s a -> s{_vpcsrCode = a});++-- | A message that provides more information about the status, if+-- applicable.+vpcsrMessage :: Lens' VPCPeeringConnectionStateReason (Maybe Text)+vpcsrMessage = lens _vpcsrMessage (\ s a -> s{_vpcsrMessage = a});++instance FromXML VPCPeeringConnectionStateReason+         where+        parseXML x+          = VPCPeeringConnectionStateReason' <$>+              (x .@? "code") <*> (x .@? "message")++instance Hashable VPCPeeringConnectionStateReason++-- | Describes a VPC in a VPC peering connection.+--+-- /See:/ 'vpcPeeringConnectionVPCInfo' smart constructor.+data VPCPeeringConnectionVPCInfo = VPCPeeringConnectionVPCInfo'+    { _vpcviVPCId     :: !(Maybe Text)+    , _vpcviOwnerId   :: !(Maybe Text)+    , _vpcviCIdRBlock :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPCPeeringConnectionVPCInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vpcviVPCId'+--+-- * 'vpcviOwnerId'+--+-- * 'vpcviCIdRBlock'+vpcPeeringConnectionVPCInfo+    :: VPCPeeringConnectionVPCInfo+vpcPeeringConnectionVPCInfo =+    VPCPeeringConnectionVPCInfo'+    { _vpcviVPCId = Nothing+    , _vpcviOwnerId = Nothing+    , _vpcviCIdRBlock = Nothing+    }++-- | The ID of the VPC.+vpcviVPCId :: Lens' VPCPeeringConnectionVPCInfo (Maybe Text)+vpcviVPCId = lens _vpcviVPCId (\ s a -> s{_vpcviVPCId = a});++-- | The AWS account ID of the VPC owner.+vpcviOwnerId :: Lens' VPCPeeringConnectionVPCInfo (Maybe Text)+vpcviOwnerId = lens _vpcviOwnerId (\ s a -> s{_vpcviOwnerId = a});++-- | The CIDR block for the VPC.+vpcviCIdRBlock :: Lens' VPCPeeringConnectionVPCInfo (Maybe Text)+vpcviCIdRBlock = lens _vpcviCIdRBlock (\ s a -> s{_vpcviCIdRBlock = a});++instance FromXML VPCPeeringConnectionVPCInfo where+        parseXML x+          = VPCPeeringConnectionVPCInfo' <$>+              (x .@? "vpcId") <*> (x .@? "ownerId") <*>+                (x .@? "cidrBlock")++instance Hashable VPCPeeringConnectionVPCInfo++-- | Describes a VPN connection.+--+-- /See:/ 'vpnConnection' smart constructor.+data VPNConnection = VPNConnection'+    { _vcCustomerGatewayConfiguration :: !(Maybe Text)+    , _vcRoutes                       :: !(Maybe [VPNStaticRoute])+    , _vcVPNGatewayId                 :: !(Maybe Text)+    , _vcOptions                      :: !(Maybe VPNConnectionOptions)+    , _vcTags                         :: !(Maybe [Tag])+    , _vcVGWTelemetry                 :: !(Maybe [VGWTelemetry])+    , _vcVPNConnectionId              :: !Text+    , _vcCustomerGatewayId            :: !Text+    , _vcState                        :: !VPNState+    , _vcType                         :: !GatewayType+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPNConnection' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vcCustomerGatewayConfiguration'+--+-- * 'vcRoutes'+--+-- * 'vcVPNGatewayId'+--+-- * 'vcOptions'+--+-- * 'vcTags'+--+-- * 'vcVGWTelemetry'+--+-- * 'vcVPNConnectionId'+--+-- * 'vcCustomerGatewayId'+--+-- * 'vcState'+--+-- * 'vcType'+vpnConnection+    :: Text -- ^ 'vcVPNConnectionId'+    -> Text -- ^ 'vcCustomerGatewayId'+    -> VPNState -- ^ 'vcState'+    -> GatewayType -- ^ 'vcType'+    -> VPNConnection+vpnConnection pVPNConnectionId_ pCustomerGatewayId_ pState_ pType_ =+    VPNConnection'+    { _vcCustomerGatewayConfiguration = Nothing+    , _vcRoutes = Nothing+    , _vcVPNGatewayId = Nothing+    , _vcOptions = Nothing+    , _vcTags = Nothing+    , _vcVGWTelemetry = Nothing+    , _vcVPNConnectionId = pVPNConnectionId_+    , _vcCustomerGatewayId = pCustomerGatewayId_+    , _vcState = pState_+    , _vcType = pType_+    }++-- | The configuration information for the VPN connection\'s customer gateway+-- (in the native XML format). This element is always present in the+-- < CreateVpnConnection> response; however, it\'s present in the+-- < DescribeVpnConnections> response only if the VPN connection is in the+-- 'pending' or 'available' state.+vcCustomerGatewayConfiguration :: Lens' VPNConnection (Maybe Text)+vcCustomerGatewayConfiguration = lens _vcCustomerGatewayConfiguration (\ s a -> s{_vcCustomerGatewayConfiguration = a});++-- | The static routes associated with the VPN connection.+vcRoutes :: Lens' VPNConnection [VPNStaticRoute]+vcRoutes = lens _vcRoutes (\ s a -> s{_vcRoutes = a}) . _Default . _Coerce;++-- | The ID of the virtual private gateway at the AWS side of the VPN+-- connection.+vcVPNGatewayId :: Lens' VPNConnection (Maybe Text)+vcVPNGatewayId = lens _vcVPNGatewayId (\ s a -> s{_vcVPNGatewayId = a});++-- | The VPN connection options.+vcOptions :: Lens' VPNConnection (Maybe VPNConnectionOptions)+vcOptions = lens _vcOptions (\ s a -> s{_vcOptions = a});++-- | Any tags assigned to the VPN connection.+vcTags :: Lens' VPNConnection [Tag]+vcTags = lens _vcTags (\ s a -> s{_vcTags = a}) . _Default . _Coerce;++-- | Information about the VPN tunnel.+vcVGWTelemetry :: Lens' VPNConnection [VGWTelemetry]+vcVGWTelemetry = lens _vcVGWTelemetry (\ s a -> s{_vcVGWTelemetry = a}) . _Default . _Coerce;++-- | The ID of the VPN connection.+vcVPNConnectionId :: Lens' VPNConnection Text+vcVPNConnectionId = lens _vcVPNConnectionId (\ s a -> s{_vcVPNConnectionId = a});++-- | The ID of the customer gateway at your end of the VPN connection.+vcCustomerGatewayId :: Lens' VPNConnection Text+vcCustomerGatewayId = lens _vcCustomerGatewayId (\ s a -> s{_vcCustomerGatewayId = a});++-- | The current state of the VPN connection.+vcState :: Lens' VPNConnection VPNState+vcState = lens _vcState (\ s a -> s{_vcState = a});++-- | The type of VPN connection.+vcType :: Lens' VPNConnection GatewayType+vcType = lens _vcType (\ s a -> s{_vcType = a});++instance FromXML VPNConnection where+        parseXML x+          = VPNConnection' <$>+              (x .@? "customerGatewayConfiguration") <*>+                (x .@? "routes" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "vpnGatewayId")+                <*> (x .@? "options")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "vgwTelemetry" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@ "vpnConnectionId")+                <*> (x .@ "customerGatewayId")+                <*> (x .@ "state")+                <*> (x .@ "type")++instance Hashable VPNConnection++-- | Describes VPN connection options.+--+-- /See:/ 'vpnConnectionOptions' smart constructor.+newtype VPNConnectionOptions = VPNConnectionOptions'+    { _vcoStaticRoutesOnly :: Maybe Bool+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPNConnectionOptions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vcoStaticRoutesOnly'+vpnConnectionOptions+    :: VPNConnectionOptions+vpnConnectionOptions =+    VPNConnectionOptions'+    { _vcoStaticRoutesOnly = Nothing+    }++-- | Indicates whether the VPN connection uses static routes only. Static+-- routes must be used for devices that don\'t support BGP.+vcoStaticRoutesOnly :: Lens' VPNConnectionOptions (Maybe Bool)+vcoStaticRoutesOnly = lens _vcoStaticRoutesOnly (\ s a -> s{_vcoStaticRoutesOnly = a});++instance FromXML VPNConnectionOptions where+        parseXML x+          = VPNConnectionOptions' <$>+              (x .@? "staticRoutesOnly")++instance Hashable VPNConnectionOptions++-- | Describes VPN connection options.+--+-- /See:/ 'vpnConnectionOptionsSpecification' smart constructor.+newtype VPNConnectionOptionsSpecification = VPNConnectionOptionsSpecification'+    { _vcosStaticRoutesOnly :: Maybe Bool+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPNConnectionOptionsSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vcosStaticRoutesOnly'+vpnConnectionOptionsSpecification+    :: VPNConnectionOptionsSpecification+vpnConnectionOptionsSpecification =+    VPNConnectionOptionsSpecification'+    { _vcosStaticRoutesOnly = Nothing+    }++-- | Indicates whether the VPN connection uses static routes only. Static+-- routes must be used for devices that don\'t support BGP.+vcosStaticRoutesOnly :: Lens' VPNConnectionOptionsSpecification (Maybe Bool)+vcosStaticRoutesOnly = lens _vcosStaticRoutesOnly (\ s a -> s{_vcosStaticRoutesOnly = a});++instance Hashable VPNConnectionOptionsSpecification++instance ToQuery VPNConnectionOptionsSpecification+         where+        toQuery VPNConnectionOptionsSpecification'{..}+          = mconcat+              ["StaticRoutesOnly" =: _vcosStaticRoutesOnly]++-- | Describes a virtual private gateway.+--+-- /See:/ 'vpnGateway' smart constructor.+data VPNGateway = VPNGateway'+    { _vgState            :: !(Maybe VPNState)+    , _vgVPCAttachments   :: !(Maybe [VPCAttachment])+    , _vgVPNGatewayId     :: !(Maybe Text)+    , _vgAvailabilityZone :: !(Maybe Text)+    , _vgType             :: !(Maybe GatewayType)+    , _vgTags             :: !(Maybe [Tag])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPNGateway' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vgState'+--+-- * 'vgVPCAttachments'+--+-- * 'vgVPNGatewayId'+--+-- * 'vgAvailabilityZone'+--+-- * 'vgType'+--+-- * 'vgTags'+vpnGateway+    :: VPNGateway+vpnGateway =+    VPNGateway'+    { _vgState = Nothing+    , _vgVPCAttachments = Nothing+    , _vgVPNGatewayId = Nothing+    , _vgAvailabilityZone = Nothing+    , _vgType = Nothing+    , _vgTags = Nothing+    }++-- | The current state of the virtual private gateway.+vgState :: Lens' VPNGateway (Maybe VPNState)+vgState = lens _vgState (\ s a -> s{_vgState = a});++-- | Any VPCs attached to the virtual private gateway.+vgVPCAttachments :: Lens' VPNGateway [VPCAttachment]+vgVPCAttachments = lens _vgVPCAttachments (\ s a -> s{_vgVPCAttachments = a}) . _Default . _Coerce;++-- | The ID of the virtual private gateway.+vgVPNGatewayId :: Lens' VPNGateway (Maybe Text)+vgVPNGatewayId = lens _vgVPNGatewayId (\ s a -> s{_vgVPNGatewayId = a});++-- | The Availability Zone where the virtual private gateway was created, if+-- applicable. This field may be empty or not returned.+vgAvailabilityZone :: Lens' VPNGateway (Maybe Text)+vgAvailabilityZone = lens _vgAvailabilityZone (\ s a -> s{_vgAvailabilityZone = a});++-- | The type of VPN connection the virtual private gateway supports.+vgType :: Lens' VPNGateway (Maybe GatewayType)+vgType = lens _vgType (\ s a -> s{_vgType = a});++-- | Any tags assigned to the virtual private gateway.+vgTags :: Lens' VPNGateway [Tag]+vgTags = lens _vgTags (\ s a -> s{_vgTags = a}) . _Default . _Coerce;++instance FromXML VPNGateway where+        parseXML x+          = VPNGateway' <$>+              (x .@? "state") <*>+                (x .@? "attachments" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "vpnGatewayId")+                <*> (x .@? "availabilityZone")+                <*> (x .@? "type")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable VPNGateway++-- | Describes a static route for a VPN connection.+--+-- /See:/ 'vpnStaticRoute' smart constructor.+data VPNStaticRoute = VPNStaticRoute'+    { _vsrState                :: !(Maybe VPNState)+    , _vsrSource               :: !(Maybe VPNStaticRouteSource)+    , _vsrDestinationCIdRBlock :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPNStaticRoute' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vsrState'+--+-- * 'vsrSource'+--+-- * 'vsrDestinationCIdRBlock'+vpnStaticRoute+    :: VPNStaticRoute+vpnStaticRoute =+    VPNStaticRoute'+    { _vsrState = Nothing+    , _vsrSource = Nothing+    , _vsrDestinationCIdRBlock = Nothing+    }++-- | The current state of the static route.+vsrState :: Lens' VPNStaticRoute (Maybe VPNState)+vsrState = lens _vsrState (\ s a -> s{_vsrState = a});++-- | Indicates how the routes were provided.+vsrSource :: Lens' VPNStaticRoute (Maybe VPNStaticRouteSource)+vsrSource = lens _vsrSource (\ s a -> s{_vsrSource = a});++-- | The CIDR block associated with the local subnet of the customer data+-- center.+vsrDestinationCIdRBlock :: Lens' VPNStaticRoute (Maybe Text)+vsrDestinationCIdRBlock = lens _vsrDestinationCIdRBlock (\ s a -> s{_vsrDestinationCIdRBlock = a});++instance FromXML VPNStaticRoute where+        parseXML x+          = VPNStaticRoute' <$>+              (x .@? "state") <*> (x .@? "source") <*>+                (x .@? "destinationCidrBlock")++instance Hashable VPNStaticRoute++-- | Describes a volume.+--+-- /See:/ 'volume' smart constructor.+data Volume = Volume'+    { _vAttachments      :: !(Maybe [VolumeAttachment])+    , _vIOPS             :: !(Maybe Int)+    , _vKMSKeyId         :: !(Maybe Text)+    , _vTags             :: !(Maybe [Tag])+    , _vAvailabilityZone :: !Text+    , _vCreateTime       :: !ISO8601+    , _vEncrypted        :: !Bool+    , _vSize             :: !Int+    , _vSnapshotId       :: !Text+    , _vState            :: !VolumeState+    , _vVolumeId         :: !Text+    , _vVolumeType       :: !VolumeType+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Volume' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vAttachments'+--+-- * 'vIOPS'+--+-- * 'vKMSKeyId'+--+-- * 'vTags'+--+-- * 'vAvailabilityZone'+--+-- * 'vCreateTime'+--+-- * 'vEncrypted'+--+-- * 'vSize'+--+-- * 'vSnapshotId'+--+-- * 'vState'+--+-- * 'vVolumeId'+--+-- * 'vVolumeType'+volume+    :: Text -- ^ 'vAvailabilityZone'+    -> UTCTime -- ^ 'vCreateTime'+    -> Bool -- ^ 'vEncrypted'+    -> Int -- ^ 'vSize'+    -> Text -- ^ 'vSnapshotId'+    -> VolumeState -- ^ 'vState'+    -> Text -- ^ 'vVolumeId'+    -> VolumeType -- ^ 'vVolumeType'+    -> Volume+volume pAvailabilityZone_ pCreateTime_ pEncrypted_ pSize_ pSnapshotId_ pState_ pVolumeId_ pVolumeType_ =+    Volume'+    { _vAttachments = Nothing+    , _vIOPS = Nothing+    , _vKMSKeyId = Nothing+    , _vTags = Nothing+    , _vAvailabilityZone = pAvailabilityZone_+    , _vCreateTime = _Time # pCreateTime_+    , _vEncrypted = pEncrypted_+    , _vSize = pSize_+    , _vSnapshotId = pSnapshotId_+    , _vState = pState_+    , _vVolumeId = pVolumeId_+    , _vVolumeType = pVolumeType_+    }++-- | Information about the volume attachments.+vAttachments :: Lens' Volume [VolumeAttachment]+vAttachments = lens _vAttachments (\ s a -> s{_vAttachments = a}) . _Default . _Coerce;++-- | The number of I\/O operations per second (IOPS) that the volume+-- supports. For Provisioned IOPS (SSD) volumes, this represents the number+-- of IOPS that are provisioned for the volume. For General Purpose (SSD)+-- volumes, this represents the baseline performance of the volume and the+-- rate at which the volume accumulates I\/O credits for bursting. For more+-- information on General Purpose (SSD) baseline performance, I\/O credits,+-- and bursting, see+-- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBS Volume Types>+-- in the /Amazon Elastic Compute Cloud User Guide/.+--+-- Constraint: Range is 100 to 20000 for Provisioned IOPS (SSD) volumes and+-- 3 to 10000 for General Purpose (SSD) volumes.+--+-- Condition: This parameter is required for requests to create 'io1'+-- volumes; it is not used in requests to create 'standard' or 'gp2'+-- volumes.+vIOPS :: Lens' Volume (Maybe Int)+vIOPS = lens _vIOPS (\ s a -> s{_vIOPS = a});++-- | The full ARN of the AWS Key Management Service (AWS KMS) customer master+-- key (CMK) that was used to protect the volume encryption key for the+-- volume.+vKMSKeyId :: Lens' Volume (Maybe Text)+vKMSKeyId = lens _vKMSKeyId (\ s a -> s{_vKMSKeyId = a});++-- | Any tags assigned to the volume.+vTags :: Lens' Volume [Tag]+vTags = lens _vTags (\ s a -> s{_vTags = a}) . _Default . _Coerce;++-- | The Availability Zone for the volume.+vAvailabilityZone :: Lens' Volume Text+vAvailabilityZone = lens _vAvailabilityZone (\ s a -> s{_vAvailabilityZone = a});++-- | The time stamp when volume creation was initiated.+vCreateTime :: Lens' Volume UTCTime+vCreateTime = lens _vCreateTime (\ s a -> s{_vCreateTime = a}) . _Time;++-- | Indicates whether the volume will be encrypted.+vEncrypted :: Lens' Volume Bool+vEncrypted = lens _vEncrypted (\ s a -> s{_vEncrypted = a});++-- | The size of the volume, in GiBs.+vSize :: Lens' Volume Int+vSize = lens _vSize (\ s a -> s{_vSize = a});++-- | The snapshot from which the volume was created, if applicable.+vSnapshotId :: Lens' Volume Text+vSnapshotId = lens _vSnapshotId (\ s a -> s{_vSnapshotId = a});++-- | The volume state.+vState :: Lens' Volume VolumeState+vState = lens _vState (\ s a -> s{_vState = a});++-- | The ID of the volume.+vVolumeId :: Lens' Volume Text+vVolumeId = lens _vVolumeId (\ s a -> s{_vVolumeId = a});++-- | The volume type. This can be 'gp2' for General Purpose (SSD) volumes,+-- 'io1' for Provisioned IOPS (SSD) volumes, or 'standard' for Magnetic+-- volumes.+vVolumeType :: Lens' Volume VolumeType+vVolumeType = lens _vVolumeType (\ s a -> s{_vVolumeType = a});++instance FromXML Volume where+        parseXML x+          = Volume' <$>+              (x .@? "attachmentSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "iops")+                <*> (x .@? "kmsKeyId")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@ "availabilityZone")+                <*> (x .@ "createTime")+                <*> (x .@ "encrypted")+                <*> (x .@ "size")+                <*> (x .@ "snapshotId")+                <*> (x .@ "status")+                <*> (x .@ "volumeId")+                <*> (x .@ "volumeType")++instance Hashable Volume++-- | Describes volume attachment details.+--+-- /See:/ 'volumeAttachment' smart constructor.+data VolumeAttachment = VolumeAttachment'+    { _volInstanceId          :: !(Maybe Text)+    , _volDeleteOnTermination :: !(Maybe Bool)+    , _volState               :: !(Maybe VolumeAttachmentState)+    , _volDevice              :: !(Maybe Text)+    , _volVolumeId            :: !(Maybe Text)+    , _volAttachTime          :: !(Maybe ISO8601)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeAttachment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'volInstanceId'+--+-- * 'volDeleteOnTermination'+--+-- * 'volState'+--+-- * 'volDevice'+--+-- * 'volVolumeId'+--+-- * 'volAttachTime'+volumeAttachment+    :: VolumeAttachment+volumeAttachment =+    VolumeAttachment'+    { _volInstanceId = Nothing+    , _volDeleteOnTermination = Nothing+    , _volState = Nothing+    , _volDevice = Nothing+    , _volVolumeId = Nothing+    , _volAttachTime = Nothing+    }++-- | The ID of the instance.+volInstanceId :: Lens' VolumeAttachment (Maybe Text)+volInstanceId = lens _volInstanceId (\ s a -> s{_volInstanceId = a});++-- | Indicates whether the EBS volume is deleted on instance termination.+volDeleteOnTermination :: Lens' VolumeAttachment (Maybe Bool)+volDeleteOnTermination = lens _volDeleteOnTermination (\ s a -> s{_volDeleteOnTermination = a});++-- | The attachment state of the volume.+volState :: Lens' VolumeAttachment (Maybe VolumeAttachmentState)+volState = lens _volState (\ s a -> s{_volState = a});++-- | The device name.+volDevice :: Lens' VolumeAttachment (Maybe Text)+volDevice = lens _volDevice (\ s a -> s{_volDevice = a});++-- | The ID of the volume.+volVolumeId :: Lens' VolumeAttachment (Maybe Text)+volVolumeId = lens _volVolumeId (\ s a -> s{_volVolumeId = a});++-- | The time stamp when the attachment initiated.+volAttachTime :: Lens' VolumeAttachment (Maybe UTCTime)+volAttachTime = lens _volAttachTime (\ s a -> s{_volAttachTime = a}) . mapping _Time;++instance FromXML VolumeAttachment where+        parseXML x+          = VolumeAttachment' <$>+              (x .@? "instanceId") <*>+                (x .@? "deleteOnTermination")+                <*> (x .@? "status")+                <*> (x .@? "device")+                <*> (x .@? "volumeId")+                <*> (x .@? "attachTime")++instance Hashable VolumeAttachment++-- | Describes an EBS volume.+--+-- /See:/ 'volumeDetail' smart constructor.+newtype VolumeDetail = VolumeDetail'+    { _vdSize :: Integer+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeDetail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vdSize'+volumeDetail+    :: Integer -- ^ 'vdSize'+    -> VolumeDetail+volumeDetail pSize_ =+    VolumeDetail'+    { _vdSize = pSize_+    }++-- | The size of the volume, in GiB.+vdSize :: Lens' VolumeDetail Integer+vdSize = lens _vdSize (\ s a -> s{_vdSize = a});++instance Hashable VolumeDetail++instance ToQuery VolumeDetail where+        toQuery VolumeDetail'{..}+          = mconcat ["Size" =: _vdSize]++-- | Describes a volume status operation code.+--+-- /See:/ 'volumeStatusAction' smart constructor.+data VolumeStatusAction = VolumeStatusAction'+    { _vsaEventType   :: !(Maybe Text)+    , _vsaCode        :: !(Maybe Text)+    , _vsaDescription :: !(Maybe Text)+    , _vsaEventId     :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeStatusAction' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vsaEventType'+--+-- * 'vsaCode'+--+-- * 'vsaDescription'+--+-- * 'vsaEventId'+volumeStatusAction+    :: VolumeStatusAction+volumeStatusAction =+    VolumeStatusAction'+    { _vsaEventType = Nothing+    , _vsaCode = Nothing+    , _vsaDescription = Nothing+    , _vsaEventId = Nothing+    }++-- | The event type associated with this operation.+vsaEventType :: Lens' VolumeStatusAction (Maybe Text)+vsaEventType = lens _vsaEventType (\ s a -> s{_vsaEventType = a});++-- | The code identifying the operation, for example, 'enable-volume-io'.+vsaCode :: Lens' VolumeStatusAction (Maybe Text)+vsaCode = lens _vsaCode (\ s a -> s{_vsaCode = a});++-- | A description of the operation.+vsaDescription :: Lens' VolumeStatusAction (Maybe Text)+vsaDescription = lens _vsaDescription (\ s a -> s{_vsaDescription = a});++-- | The ID of the event associated with this operation.+vsaEventId :: Lens' VolumeStatusAction (Maybe Text)+vsaEventId = lens _vsaEventId (\ s a -> s{_vsaEventId = a});++instance FromXML VolumeStatusAction where+        parseXML x+          = VolumeStatusAction' <$>+              (x .@? "eventType") <*> (x .@? "code") <*>+                (x .@? "description")+                <*> (x .@? "eventId")++instance Hashable VolumeStatusAction++-- | Describes a volume status.+--+-- /See:/ 'volumeStatusDetails' smart constructor.+data VolumeStatusDetails = VolumeStatusDetails'+    { _vsdStatus :: !(Maybe Text)+    , _vsdName   :: !(Maybe VolumeStatusName)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeStatusDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vsdStatus'+--+-- * 'vsdName'+volumeStatusDetails+    :: VolumeStatusDetails+volumeStatusDetails =+    VolumeStatusDetails'+    { _vsdStatus = Nothing+    , _vsdName = Nothing+    }++-- | The intended status of the volume status.+vsdStatus :: Lens' VolumeStatusDetails (Maybe Text)+vsdStatus = lens _vsdStatus (\ s a -> s{_vsdStatus = a});++-- | The name of the volume status.+vsdName :: Lens' VolumeStatusDetails (Maybe VolumeStatusName)+vsdName = lens _vsdName (\ s a -> s{_vsdName = a});++instance FromXML VolumeStatusDetails where+        parseXML x+          = VolumeStatusDetails' <$>+              (x .@? "status") <*> (x .@? "name")++instance Hashable VolumeStatusDetails++-- | Describes a volume status event.+--+-- /See:/ 'volumeStatusEvent' smart constructor.+data VolumeStatusEvent = VolumeStatusEvent'+    { _vseNotBefore   :: !(Maybe ISO8601)+    , _vseEventType   :: !(Maybe Text)+    , _vseDescription :: !(Maybe Text)+    , _vseNotAfter    :: !(Maybe ISO8601)+    , _vseEventId     :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeStatusEvent' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vseNotBefore'+--+-- * 'vseEventType'+--+-- * 'vseDescription'+--+-- * 'vseNotAfter'+--+-- * 'vseEventId'+volumeStatusEvent+    :: VolumeStatusEvent+volumeStatusEvent =+    VolumeStatusEvent'+    { _vseNotBefore = Nothing+    , _vseEventType = Nothing+    , _vseDescription = Nothing+    , _vseNotAfter = Nothing+    , _vseEventId = Nothing+    }++-- | The earliest start time of the event.+vseNotBefore :: Lens' VolumeStatusEvent (Maybe UTCTime)+vseNotBefore = lens _vseNotBefore (\ s a -> s{_vseNotBefore = a}) . mapping _Time;++-- | The type of this event.+vseEventType :: Lens' VolumeStatusEvent (Maybe Text)+vseEventType = lens _vseEventType (\ s a -> s{_vseEventType = a});++-- | A description of the event.+vseDescription :: Lens' VolumeStatusEvent (Maybe Text)+vseDescription = lens _vseDescription (\ s a -> s{_vseDescription = a});++-- | The latest end time of the event.+vseNotAfter :: Lens' VolumeStatusEvent (Maybe UTCTime)+vseNotAfter = lens _vseNotAfter (\ s a -> s{_vseNotAfter = a}) . mapping _Time;++-- | The ID of this event.+vseEventId :: Lens' VolumeStatusEvent (Maybe Text)+vseEventId = lens _vseEventId (\ s a -> s{_vseEventId = a});++instance FromXML VolumeStatusEvent where+        parseXML x+          = VolumeStatusEvent' <$>+              (x .@? "notBefore") <*> (x .@? "eventType") <*>+                (x .@? "description")+                <*> (x .@? "notAfter")+                <*> (x .@? "eventId")++instance Hashable VolumeStatusEvent++-- | Describes the status of a volume.+--+-- /See:/ 'volumeStatusInfo' smart constructor.+data VolumeStatusInfo = VolumeStatusInfo'+    { _vsiStatus  :: !(Maybe VolumeStatusInfoStatus)+    , _vsiDetails :: !(Maybe [VolumeStatusDetails])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeStatusInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vsiStatus'+--+-- * 'vsiDetails'+volumeStatusInfo+    :: VolumeStatusInfo+volumeStatusInfo =+    VolumeStatusInfo'+    { _vsiStatus = Nothing+    , _vsiDetails = Nothing+    }++-- | The status of the volume.+vsiStatus :: Lens' VolumeStatusInfo (Maybe VolumeStatusInfoStatus)+vsiStatus = lens _vsiStatus (\ s a -> s{_vsiStatus = a});++-- | The details of the volume status.+vsiDetails :: Lens' VolumeStatusInfo [VolumeStatusDetails]+vsiDetails = lens _vsiDetails (\ s a -> s{_vsiDetails = a}) . _Default . _Coerce;++instance FromXML VolumeStatusInfo where+        parseXML x+          = VolumeStatusInfo' <$>+              (x .@? "status") <*>+                (x .@? "details" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable VolumeStatusInfo++-- | Describes the volume status.+--+-- /See:/ 'volumeStatusItem' smart constructor.+data VolumeStatusItem = VolumeStatusItem'+    { _vsiVolumeStatus     :: !(Maybe VolumeStatusInfo)+    , _vsiActions          :: !(Maybe [VolumeStatusAction])+    , _vsiEvents           :: !(Maybe [VolumeStatusEvent])+    , _vsiAvailabilityZone :: !(Maybe Text)+    , _vsiVolumeId         :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeStatusItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vsiVolumeStatus'+--+-- * 'vsiActions'+--+-- * 'vsiEvents'+--+-- * 'vsiAvailabilityZone'+--+-- * 'vsiVolumeId'+volumeStatusItem+    :: VolumeStatusItem+volumeStatusItem =+    VolumeStatusItem'+    { _vsiVolumeStatus = Nothing+    , _vsiActions = Nothing+    , _vsiEvents = Nothing+    , _vsiAvailabilityZone = Nothing+    , _vsiVolumeId = Nothing+    }++-- | The volume status.+vsiVolumeStatus :: Lens' VolumeStatusItem (Maybe VolumeStatusInfo)+vsiVolumeStatus = lens _vsiVolumeStatus (\ s a -> s{_vsiVolumeStatus = a});++-- | The details of the operation.+vsiActions :: Lens' VolumeStatusItem [VolumeStatusAction]+vsiActions = lens _vsiActions (\ s a -> s{_vsiActions = a}) . _Default . _Coerce;++-- | A list of events associated with the volume.+vsiEvents :: Lens' VolumeStatusItem [VolumeStatusEvent]+vsiEvents = lens _vsiEvents (\ s a -> s{_vsiEvents = a}) . _Default . _Coerce;++-- | The Availability Zone of the volume.+vsiAvailabilityZone :: Lens' VolumeStatusItem (Maybe Text)+vsiAvailabilityZone = lens _vsiAvailabilityZone (\ s a -> s{_vsiAvailabilityZone = a});++-- | The volume ID.+vsiVolumeId :: Lens' VolumeStatusItem (Maybe Text)+vsiVolumeId = lens _vsiVolumeId (\ s a -> s{_vsiVolumeId = a});++instance FromXML VolumeStatusItem where+        parseXML x+          = VolumeStatusItem' <$>+              (x .@? "volumeStatus") <*>+                (x .@? "actionsSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "eventsSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "availabilityZone")+                <*> (x .@? "volumeId")++instance Hashable VolumeStatusItem
gen/Network/AWS/EC2/Types/Sum.hs view
@@ -9,7 +9,7 @@  -- | -- Module      : Network.AWS.EC2.Types.Sum--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -17,6 +17,7 @@ -- module Network.AWS.EC2.Types.Sum where +import           Network.AWS.EC2.Internal import           Network.AWS.Prelude  data AccountAttributeName@@ -176,30 +177,33 @@     parseXML = parseXMLText "ArchitectureValues"  data AttachmentStatus-    = Attached-    | Attaching-    | Busy-    | Detached-    | Detaching+    = AAttached+    | AAttaching+    | AAvailable+    | ABusy+    | ADetached+    | ADetaching     deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)  instance FromText AttachmentStatus where     parser = takeLowerText >>= \case-        "attached" -> pure Attached-        "attaching" -> pure Attaching-        "busy" -> pure Busy-        "detached" -> pure Detached-        "detaching" -> pure Detaching+        "attached" -> pure AAttached+        "attaching" -> pure AAttaching+        "available" -> pure AAvailable+        "busy" -> pure ABusy+        "detached" -> pure ADetached+        "detaching" -> pure ADetaching         e -> fromTextError $ "Failure parsing AttachmentStatus from value: '" <> e-           <> "'. Accepted values: attached, attaching, busy, detached, detaching"+           <> "'. Accepted values: attached, attaching, available, busy, detached, detaching"  instance ToText AttachmentStatus where     toText = \case-        Attached -> "attached"-        Attaching -> "attaching"-        Busy -> "busy"-        Detached -> "detached"-        Detaching -> "detaching"+        AAttached -> "attached"+        AAttaching -> "attaching"+        AAvailable -> "available"+        ABusy -> "busy"+        ADetached -> "detached"+        ADetaching -> "detaching"  instance Hashable     AttachmentStatus instance ToByteString AttachmentStatus@@ -988,18 +992,21 @@ instance ToQuery      InstanceAttributeName instance ToHeader     InstanceAttributeName -data InstanceLifecycleType =-    Spot+data InstanceLifecycleType+    = Scheduled+    | Spot     deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)  instance FromText InstanceLifecycleType where     parser = takeLowerText >>= \case+        "scheduled" -> pure Scheduled         "spot" -> pure Spot         e -> fromTextError $ "Failure parsing InstanceLifecycleType from value: '" <> e-           <> "'. Accepted values: spot"+           <> "'. Accepted values: scheduled, spot"  instance ToText InstanceLifecycleType where     toText = \case+        Scheduled -> "scheduled"         Spot -> "spot"  instance Hashable     InstanceLifecycleType@@ -1069,6 +1076,7 @@     | D2_8XLarge     | D2_XLarge     | G2_2XLarge+    | G2_8XLarge     | HI1_4XLarge     | HS1_8XLarge     | I2_2XLarge@@ -1100,6 +1108,7 @@     | T2_Large     | T2_Medium     | T2_Micro+    | T2_Nano     | T2_Small     deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic) @@ -1126,6 +1135,7 @@         "d2.8xlarge" -> pure D2_8XLarge         "d2.xlarge" -> pure D2_XLarge         "g2.2xlarge" -> pure G2_2XLarge+        "g2.8xlarge" -> pure G2_8XLarge         "hi1.4xlarge" -> pure HI1_4XLarge         "hs1.8xlarge" -> pure HS1_8XLarge         "i2.2xlarge" -> pure I2_2XLarge@@ -1157,9 +1167,10 @@         "t2.large" -> pure T2_Large         "t2.medium" -> pure T2_Medium         "t2.micro" -> pure T2_Micro+        "t2.nano" -> pure T2_Nano         "t2.small" -> pure T2_Small         e -> fromTextError $ "Failure parsing InstanceType from value: '" <> e-           <> "'. Accepted values: c1.medium, c1.xlarge, c3.2xlarge, c3.4xlarge, c3.8xlarge, c3.large, c3.xlarge, c4.2xlarge, c4.4xlarge, c4.8xlarge, c4.large, c4.xlarge, cc1.4xlarge, cc2.8xlarge, cg1.4xlarge, cr1.8xlarge, d2.2xlarge, d2.4xlarge, d2.8xlarge, d2.xlarge, g2.2xlarge, hi1.4xlarge, hs1.8xlarge, i2.2xlarge, i2.4xlarge, i2.8xlarge, i2.xlarge, m1.large, m1.medium, m1.small, m1.xlarge, m2.2xlarge, m2.4xlarge, m2.xlarge, m3.2xlarge, m3.large, m3.medium, m3.xlarge, m4.10xlarge, m4.2xlarge, m4.4xlarge, m4.large, m4.xlarge, r3.2xlarge, r3.4xlarge, r3.8xlarge, r3.large, r3.xlarge, t1.micro, t2.large, t2.medium, t2.micro, t2.small"+           <> "'. Accepted values: c1.medium, c1.xlarge, c3.2xlarge, c3.4xlarge, c3.8xlarge, c3.large, c3.xlarge, c4.2xlarge, c4.4xlarge, c4.8xlarge, c4.large, c4.xlarge, cc1.4xlarge, cc2.8xlarge, cg1.4xlarge, cr1.8xlarge, d2.2xlarge, d2.4xlarge, d2.8xlarge, d2.xlarge, g2.2xlarge, g2.8xlarge, hi1.4xlarge, hs1.8xlarge, i2.2xlarge, i2.4xlarge, i2.8xlarge, i2.xlarge, m1.large, m1.medium, m1.small, m1.xlarge, m2.2xlarge, m2.4xlarge, m2.xlarge, m3.2xlarge, m3.large, m3.medium, m3.xlarge, m4.10xlarge, m4.2xlarge, m4.4xlarge, m4.large, m4.xlarge, r3.2xlarge, r3.4xlarge, r3.8xlarge, r3.large, r3.xlarge, t1.micro, t2.large, t2.medium, t2.micro, t2.nano, t2.small"  instance ToText InstanceType where     toText = \case@@ -1184,6 +1195,7 @@         D2_8XLarge -> "d2.8xlarge"         D2_XLarge -> "d2.xlarge"         G2_2XLarge -> "g2.2xlarge"+        G2_8XLarge -> "g2.8xlarge"         HI1_4XLarge -> "hi1.4xlarge"         HS1_8XLarge -> "hs1.8xlarge"         I2_2XLarge -> "i2.2xlarge"@@ -1215,6 +1227,7 @@         T2_Large -> "t2.large"         T2_Medium -> "t2.medium"         T2_Micro -> "t2.micro"+        T2_Nano -> "t2.nano"         T2_Small -> "t2.small"  instance Hashable     InstanceType@@ -2485,30 +2498,30 @@     parseXML = parseXMLText "VirtualizationType"  data VolumeAttachmentState-    = VASAttached-    | VASAttaching-    | VASBusy-    | VASDetached-    | VASDetaching+    = VAttached+    | VAttaching+    | VBusy+    | VDetached+    | VDetaching     deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)  instance FromText VolumeAttachmentState where     parser = takeLowerText >>= \case-        "attached" -> pure VASAttached-        "attaching" -> pure VASAttaching-        "busy" -> pure VASBusy-        "detached" -> pure VASDetached-        "detaching" -> pure VASDetaching+        "attached" -> pure VAttached+        "attaching" -> pure VAttaching+        "busy" -> pure VBusy+        "detached" -> pure VDetached+        "detaching" -> pure VDetaching         e -> fromTextError $ "Failure parsing VolumeAttachmentState from value: '" <> e            <> "'. Accepted values: attached, attaching, busy, detached, detaching"  instance ToText VolumeAttachmentState where     toText = \case-        VASAttached -> "attached"-        VASAttaching -> "attaching"-        VASBusy -> "busy"-        VASDetached -> "detached"-        VASDetaching -> "detaching"+        VAttached -> "attached"+        VAttaching -> "attaching"+        VBusy -> "busy"+        VDetached -> "detached"+        VDetaching -> "detaching"  instance Hashable     VolumeAttachmentState instance ToByteString VolumeAttachmentState
gen/Network/AWS/EC2/UnassignPrivateIPAddresses.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.UnassignPrivateIPAddresses--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Unassigns one or more secondary private IP addresses from a network -- interface.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-UnassignPrivateIPAddresses.html AWS API Reference> for UnassignPrivateIPAddresses. module Network.AWS.EC2.UnassignPrivateIPAddresses     (     -- * Creating a Request@@ -78,9 +76,11 @@ instance AWSRequest UnassignPrivateIPAddresses where         type Rs UnassignPrivateIPAddresses =              UnassignPrivateIPAddressesResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveNull UnassignPrivateIPAddressesResponse'++instance Hashable UnassignPrivateIPAddresses  instance ToHeaders UnassignPrivateIPAddresses where         toHeaders = const mempty
gen/Network/AWS/EC2/UnmonitorInstances.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EC2.UnmonitorInstances--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -22,8 +22,6 @@ -- monitoring instances, see -- <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch.html Monitoring Your Instances and Volumes> -- in the /Amazon Elastic Compute Cloud User Guide/.------ /See:/ <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-UnmonitorInstances.html AWS API Reference> for UnmonitorInstances. module Network.AWS.EC2.UnmonitorInstances     (     -- * Creating a Request@@ -83,7 +81,7 @@ instance AWSRequest UnmonitorInstances where         type Rs UnmonitorInstances =              UnmonitorInstancesResponse-        request = postQuery eC2+        request = postQuery ec2         response           = receiveXML               (\ s h x ->@@ -91,6 +89,8 @@                    (x .@? "instancesSet" .!@ mempty >>=                       may (parseXMLList "item"))                      <*> (pure (fromEnum s)))++instance Hashable UnmonitorInstances  instance ToHeaders UnmonitorInstances where         toHeaders = const mempty
gen/Network/AWS/EC2/Waiters.hs view
@@ -7,7 +7,7 @@  -- | -- Module      : Network.AWS.EC2.Waiters--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -29,12 +29,15 @@ import           Network.AWS.EC2.DescribeInstances import           Network.AWS.EC2.DescribeInstanceStatus import           Network.AWS.EC2.DescribeInstanceStatus+import           Network.AWS.EC2.DescribeNatGateways+import           Network.AWS.EC2.DescribeNetworkInterfaces import           Network.AWS.EC2.DescribeSnapshots import           Network.AWS.EC2.DescribeSpotInstanceRequests import           Network.AWS.EC2.DescribeSubnets import           Network.AWS.EC2.DescribeVolumes import           Network.AWS.EC2.DescribeVolumes import           Network.AWS.EC2.DescribeVolumes+import           Network.AWS.EC2.DescribeVPCPeeringConnections import           Network.AWS.EC2.DescribeVPCs import           Network.AWS.EC2.DescribeVPNConnections import           Network.AWS.EC2.DescribeVPNConnections@@ -92,6 +95,37 @@                               vState . to toTextCI)]     } +-- | Polls 'Network.AWS.EC2.DescribeNatGateways' every 15 seconds until a+-- successful state is reached. An error is returned after 40 failed checks.+natGatewayAvailable :: Wait DescribeNatGateways+natGatewayAvailable =+    Wait+    { _waitName = "NatGatewayAvailable"+    , _waitAttempts = 40+    , _waitDelay = 15+    , _waitAcceptors = [ matchAll+                             "available"+                             AcceptSuccess+                             (folding (concatOf dngrsNatGateways) .+                              ngState . _Just . to toTextCI)+                       , matchAny+                             "failed"+                             AcceptFailure+                             (folding (concatOf dngrsNatGateways) .+                              ngState . _Just . to toTextCI)+                       , matchAny+                             "deleting"+                             AcceptFailure+                             (folding (concatOf dngrsNatGateways) .+                              ngState . _Just . to toTextCI)+                       , matchAny+                             "deleted"+                             AcceptFailure+                             (folding (concatOf dngrsNatGateways) .+                              ngState . _Just . to toTextCI)+                       , matchError "InvalidNatGatewayIDNotFound" AcceptRetry]+    }+ -- | Polls 'Network.AWS.EC2.DescribeSubnets' every 15 seconds until a -- successful state is reached. An error is returned after 40 failed checks. subnetAvailable :: Wait DescribeSubnets@@ -107,6 +141,24 @@                               subState . to toTextCI)]     } +-- | Polls 'Network.AWS.EC2.DescribeNetworkInterfaces' every 20 seconds until a+-- successful state is reached. An error is returned after 10 failed checks.+networkInterfaceAvailable :: Wait DescribeNetworkInterfaces+networkInterfaceAvailable =+    Wait+    { _waitName = "NetworkInterfaceAvailable"+    , _waitAttempts = 10+    , _waitDelay = 20+    , _waitAcceptors = [ matchAll+                             "available"+                             AcceptSuccess+                             (folding (concatOf dnirsNetworkInterfaces) .+                              niStatus . _Just . to toTextCI)+                       , matchError+                             "InvalidNetworkInterfaceIDNotFound"+                             AcceptFailure]+    }+ -- | Polls 'Network.AWS.EC2.DescribeInstanceStatus' every 15 seconds until a -- successful state is reached. An error is returned after 40 failed checks. systemStatusOK :: Wait DescribeInstanceStatus@@ -260,7 +312,8 @@                              AcceptFailure                              (folding (concatOf dirsReservations) .                               folding (concatOf rInstances) .-                              insState . isName . to toTextCI)]+                              insState . isName . to toTextCI)+                       , matchError "InvalidInstanceIDNotFound" AcceptRetry]     }  -- | Polls 'Network.AWS.EC2.DescribeSpotInstanceRequests' every 15 seconds until a@@ -459,6 +512,20 @@                               iState . to toTextCI)]     } +-- | Polls 'Network.AWS.EC2.DescribeVPCPeeringConnections' every 15 seconds until a+-- successful state is reached. An error is returned after 40 failed checks.+vpcPeeringConnectionExists :: Wait DescribeVPCPeeringConnections+vpcPeeringConnectionExists =+    Wait+    { _waitName = "VpcPeeringConnectionExists"+    , _waitAttempts = 40+    , _waitDelay = 15+    , _waitAcceptors = [ matchStatus 200 AcceptSuccess+                       , matchError+                             "InvalidVpcPeeringConnectionIDNotFound"+                             AcceptRetry]+    }+ -- | Polls 'Network.AWS.EC2.DescribeSnapshots' every 15 seconds until a -- successful state is reached. An error is returned after 40 failed checks. snapshotCompleted :: Wait DescribeSnapshots@@ -499,7 +566,8 @@                              AcceptSuccess                              (folding (concatOf disrsInstanceStatuses) .                               isInstanceStatus .-                              _Just . issStatus . to toTextCI)]+                              _Just . issStatus . to toTextCI)+                       , matchError "InvalidInstanceIDNotFound" AcceptRetry]     }  -- | Polls 'Network.AWS.EC2.DescribeVolumes' every 15 seconds until a
+ src/Network/AWS/EC2/Internal.hs view
@@ -0,0 +1,52 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}++-- |+-- Module      : Network.AWS.EC2.Internal+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.EC2.Internal where++import           Network.AWS.Lens+import           Network.AWS.Prelude++-- | Custom 'Tag' type which has an optional value component.+--+-- /See:/ 'tag' smart constructor.+data DeleteTag = DeleteTag+    { _deleteTagKey   :: !Text+    , _deleteTagValue :: !(Maybe Text)+    } deriving (Eq, Read, Show, Data, Typeable, Generic)++deleteTag :: Text -- ^ 'deleteTagKey'+          -> DeleteTag+deleteTag k = DeleteTag k Nothing++-- | The key of the tag to delete.+--+-- Constraints: Tag keys are case-sensitive and accept a maximum of 127+-- Unicode characters. May not begin with 'aws:'+deleteTagKey :: Lens' DeleteTag Text+deleteTagKey = lens _deleteTagKey (\s a -> s { _deleteTagKey = a })++-- | The optional value of the tag to delete.+--+-- Constraints: Tag values are case-sensitive and accept a maximum of 255+-- Unicode characters.+deleteTagValue :: Lens' DeleteTag (Maybe Text)+deleteTagValue = lens _deleteTagValue (\ s a -> s{_deleteTagValue = a});++instance FromXML DeleteTag where+    parseXML x = DeleteTag <$> (x .@ "key") <*> (x .@? "value")++instance ToQuery DeleteTag where+    toQuery DeleteTag {..} = mconcat+        [ "Key"   =: _deleteTagKey+        , "Value" =: _deleteTagValue+        ]
test/Main.hs view
@@ -2,7 +2,7 @@  -- | -- Module      : Main--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated
test/Test/AWS/EC2.hs view
@@ -3,7 +3,7 @@  -- | -- Module      : Test.AWS.EC2--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : experimental@@ -97,7 +97,7 @@                                         & ibdmEBS        ?~                                             (ebsInstanceBlockDevice                                                 & eibdDeleteOnTermination ?~ True-                                                & eibdStatus              ?~ Attached+                                                & eibdStatus              ?~ AAttached                                                 & eibdVolumeId            ?~ "vol-1a2b3c4d"                                                 & eibdAttachTime          ?~ $(mkTime "2014-03-18T21:47:02+0000"))                                     ]@@ -116,7 +116,7 @@                                         & iniAttachment          ?~                                             (instanceNetworkInterfaceAttachment                                                 & iniaDeleteOnTermination ?~ True-                                                & iniaStatus              ?~ Attached+                                                & iniaStatus              ?~ AAttached                                                 & iniaAttachmentId        ?~ "eni-attach-1a2b3c4d"                                                 & iniaAttachTime          ?~ $(mkTime "2014-03-18T21:47:02+0000")                                                 & iniaDeviceIndex         ?~ 0)
test/Test/AWS/EC2/Internal.hs view
@@ -2,7 +2,7 @@ {-# OPTIONS_GHC -fno-warn-unused-imports #-}  -- Module      : Test.AWS.EC2.Internal--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : This Source Code Form is subject to the terms of --               the Mozilla Public License, v. 2.0. --               A copy of the MPL can be found in the LICENSE file or
test/Test/AWS/Gen/EC2.hs view
@@ -5,7 +5,7 @@  -- | -- Module      : Test.AWS.Gen.EC2--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -97,6 +97,12 @@ --         , testAttachClassicLinkVPC $ --             attachClassicLinkVPC --+--         , testDescribeVPCClassicLinkDNSSupport $+--             describeVPCClassicLinkDNSSupport+--+--         , testRunScheduledInstances $+--             runScheduledInstances+-- --         , testCancelSpotFleetRequests $ --             cancelSpotFleetRequests --@@ -235,6 +241,9 @@ --         , testDescribeConversionTasks $ --             describeConversionTasks --+--         , testDisableVPCClassicLinkDNSSupport $+--             disableVPCClassicLinkDNSSupport+-- --         , testAllocateAddress $ --             allocateAddress --@@ -277,9 +286,15 @@ --         , testRevokeSecurityGroupIngress $ --             revokeSecurityGroupIngress --+--         , testEnableVPCClassicLinkDNSSupport $+--             enableVPCClassicLinkDNSSupport+-- --         , testModifyReservedInstances $ --             modifyReservedInstances --+--         , testDescribeScheduledInstances $+--             describeScheduledInstances+-- --         , testCreateFlowLogs $ --             createFlowLogs --@@ -328,6 +343,9 @@ --         , testCreateVolume $ --             createVolume --+--         , testDescribeScheduledInstanceAvailability $+--             describeScheduledInstanceAvailability+-- --         , testModifyVolumeAttribute $ --             modifyVolumeAttribute --@@ -475,6 +493,9 @@ --         , testDescribePlacementGroups $ --             describePlacementGroups --+--         , testPurchaseScheduledInstances $+--             purchaseScheduledInstances+-- --         , testEnableVGWRoutePropagation $ --             enableVGWRoutePropagation --@@ -679,6 +700,12 @@ --         , testAttachClassicLinkVPCResponse $ --             attachClassicLinkVPCResponse --+--         , testDescribeVPCClassicLinkDNSSupportResponse $+--             describeVPCClassicLinkDNSSupportResponse+--+--         , testRunScheduledInstancesResponse $+--             runScheduledInstancesResponse+-- --         , testCancelSpotFleetRequestsResponse $ --             cancelSpotFleetRequestsResponse --@@ -817,6 +844,9 @@ --         , testDescribeConversionTasksResponse $ --             describeConversionTasksResponse --+--         , testDisableVPCClassicLinkDNSSupportResponse $+--             disableVPCClassicLinkDNSSupportResponse+-- --         , testAllocateAddressResponse $ --             allocateAddressResponse --@@ -859,9 +889,15 @@ --         , testRevokeSecurityGroupIngressResponse $ --             revokeSecurityGroupIngressResponse --+--         , testEnableVPCClassicLinkDNSSupportResponse $+--             enableVPCClassicLinkDNSSupportResponse+-- --         , testModifyReservedInstancesResponse $ --             modifyReservedInstancesResponse --+--         , testDescribeScheduledInstancesResponse $+--             describeScheduledInstancesResponse+-- --         , testCreateFlowLogsResponse $ --             createFlowLogsResponse --@@ -910,6 +946,9 @@ --         , testCreateVolumeResponse $ --             volume --+--         , testDescribeScheduledInstanceAvailabilityResponse $+--             describeScheduledInstanceAvailabilityResponse+-- --         , testModifyVolumeAttributeResponse $ --             modifyVolumeAttributeResponse --@@ -1057,6 +1096,9 @@ --         , testDescribePlacementGroupsResponse $ --             describePlacementGroupsResponse --+--         , testPurchaseScheduledInstancesResponse $+--             purchaseScheduledInstancesResponse+-- --         , testEnableVGWRoutePropagationResponse $ --             enableVGWRoutePropagationResponse --@@ -1309,6 +1351,16 @@     "AttachClassicLinkVPC"     "fixture/AttachClassicLinkVPC.yaml" +testDescribeVPCClassicLinkDNSSupport :: DescribeVPCClassicLinkDNSSupport -> TestTree+testDescribeVPCClassicLinkDNSSupport = req+    "DescribeVPCClassicLinkDNSSupport"+    "fixture/DescribeVPCClassicLinkDNSSupport.yaml"++testRunScheduledInstances :: RunScheduledInstances -> TestTree+testRunScheduledInstances = req+    "RunScheduledInstances"+    "fixture/RunScheduledInstances.yaml"+ testCancelSpotFleetRequests :: CancelSpotFleetRequests -> TestTree testCancelSpotFleetRequests = req     "CancelSpotFleetRequests"@@ -1539,6 +1591,11 @@     "DescribeConversionTasks"     "fixture/DescribeConversionTasks.yaml" +testDisableVPCClassicLinkDNSSupport :: DisableVPCClassicLinkDNSSupport -> TestTree+testDisableVPCClassicLinkDNSSupport = req+    "DisableVPCClassicLinkDNSSupport"+    "fixture/DisableVPCClassicLinkDNSSupport.yaml"+ testAllocateAddress :: AllocateAddress -> TestTree testAllocateAddress = req     "AllocateAddress"@@ -1609,11 +1666,21 @@     "RevokeSecurityGroupIngress"     "fixture/RevokeSecurityGroupIngress.yaml" +testEnableVPCClassicLinkDNSSupport :: EnableVPCClassicLinkDNSSupport -> TestTree+testEnableVPCClassicLinkDNSSupport = req+    "EnableVPCClassicLinkDNSSupport"+    "fixture/EnableVPCClassicLinkDNSSupport.yaml"+ testModifyReservedInstances :: ModifyReservedInstances -> TestTree testModifyReservedInstances = req     "ModifyReservedInstances"     "fixture/ModifyReservedInstances.yaml" +testDescribeScheduledInstances :: DescribeScheduledInstances -> TestTree+testDescribeScheduledInstances = req+    "DescribeScheduledInstances"+    "fixture/DescribeScheduledInstances.yaml"+ testCreateFlowLogs :: CreateFlowLogs -> TestTree testCreateFlowLogs = req     "CreateFlowLogs"@@ -1694,6 +1761,11 @@     "CreateVolume"     "fixture/CreateVolume.yaml" +testDescribeScheduledInstanceAvailability :: DescribeScheduledInstanceAvailability -> TestTree+testDescribeScheduledInstanceAvailability = req+    "DescribeScheduledInstanceAvailability"+    "fixture/DescribeScheduledInstanceAvailability.yaml"+ testModifyVolumeAttribute :: ModifyVolumeAttribute -> TestTree testModifyVolumeAttribute = req     "ModifyVolumeAttribute"@@ -1939,6 +2011,11 @@     "DescribePlacementGroups"     "fixture/DescribePlacementGroups.yaml" +testPurchaseScheduledInstances :: PurchaseScheduledInstances -> TestTree+testPurchaseScheduledInstances = req+    "PurchaseScheduledInstances"+    "fixture/PurchaseScheduledInstances.yaml"+ testEnableVGWRoutePropagation :: EnableVGWRoutePropagation -> TestTree testEnableVGWRoutePropagation = req     "EnableVGWRoutePropagation"@@ -2165,1349 +2242,1398 @@ testImportInstanceResponse = res     "ImportInstanceResponse"     "fixture/ImportInstanceResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ImportInstance)  testRevokeSecurityGroupEgressResponse :: RevokeSecurityGroupEgressResponse -> TestTree testRevokeSecurityGroupEgressResponse = res     "RevokeSecurityGroupEgressResponse"     "fixture/RevokeSecurityGroupEgressResponse.proto"-    eC2+    ec2     (Proxy :: Proxy RevokeSecurityGroupEgress)  testCreateVPNGatewayResponse :: CreateVPNGatewayResponse -> TestTree testCreateVPNGatewayResponse = res     "CreateVPNGatewayResponse"     "fixture/CreateVPNGatewayResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateVPNGateway)  testCreateNetworkACLResponse :: CreateNetworkACLResponse -> TestTree testCreateNetworkACLResponse = res     "CreateNetworkACLResponse"     "fixture/CreateNetworkACLResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateNetworkACL)  testDeleteKeyPairResponse :: DeleteKeyPairResponse -> TestTree testDeleteKeyPairResponse = res     "DeleteKeyPairResponse"     "fixture/DeleteKeyPairResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteKeyPair)  testDescribeTagsResponse :: DescribeTagsResponse -> TestTree testDescribeTagsResponse = res     "DescribeTagsResponse"     "fixture/DescribeTagsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeTags)  testDetachNetworkInterfaceResponse :: DetachNetworkInterfaceResponse -> TestTree testDetachNetworkInterfaceResponse = res     "DetachNetworkInterfaceResponse"     "fixture/DetachNetworkInterfaceResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DetachNetworkInterface)  testDetachInternetGatewayResponse :: DetachInternetGatewayResponse -> TestTree testDetachInternetGatewayResponse = res     "DetachInternetGatewayResponse"     "fixture/DetachInternetGatewayResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DetachInternetGateway)  testDeleteVPCEndpointsResponse :: DeleteVPCEndpointsResponse -> TestTree testDeleteVPCEndpointsResponse = res     "DeleteVPCEndpointsResponse"     "fixture/DeleteVPCEndpointsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteVPCEndpoints)  testDeleteFlowLogsResponse :: DeleteFlowLogsResponse -> TestTree testDeleteFlowLogsResponse = res     "DeleteFlowLogsResponse"     "fixture/DeleteFlowLogsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteFlowLogs)  testDescribeVPCClassicLinkResponse :: DescribeVPCClassicLinkResponse -> TestTree testDescribeVPCClassicLinkResponse = res     "DescribeVPCClassicLinkResponse"     "fixture/DescribeVPCClassicLinkResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeVPCClassicLink)  testModifySubnetAttributeResponse :: ModifySubnetAttributeResponse -> TestTree testModifySubnetAttributeResponse = res     "ModifySubnetAttributeResponse"     "fixture/ModifySubnetAttributeResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ModifySubnetAttribute)  testDetachVolumeResponse :: VolumeAttachment -> TestTree testDetachVolumeResponse = res     "DetachVolumeResponse"     "fixture/DetachVolumeResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DetachVolume)  testCancelBundleTaskResponse :: CancelBundleTaskResponse -> TestTree testCancelBundleTaskResponse = res     "CancelBundleTaskResponse"     "fixture/CancelBundleTaskResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CancelBundleTask)  testReleaseAddressResponse :: ReleaseAddressResponse -> TestTree testReleaseAddressResponse = res     "ReleaseAddressResponse"     "fixture/ReleaseAddressResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ReleaseAddress)  testCreateInternetGatewayResponse :: CreateInternetGatewayResponse -> TestTree testCreateInternetGatewayResponse = res     "CreateInternetGatewayResponse"     "fixture/CreateInternetGatewayResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateInternetGateway)  testDeleteVPNConnectionResponse :: DeleteVPNConnectionResponse -> TestTree testDeleteVPNConnectionResponse = res     "DeleteVPNConnectionResponse"     "fixture/DeleteVPNConnectionResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteVPNConnection)  testDescribeBundleTasksResponse :: DescribeBundleTasksResponse -> TestTree testDescribeBundleTasksResponse = res     "DescribeBundleTasksResponse"     "fixture/DescribeBundleTasksResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeBundleTasks)  testAuthorizeSecurityGroupEgressResponse :: AuthorizeSecurityGroupEgressResponse -> TestTree testAuthorizeSecurityGroupEgressResponse = res     "AuthorizeSecurityGroupEgressResponse"     "fixture/AuthorizeSecurityGroupEgressResponse.proto"-    eC2+    ec2     (Proxy :: Proxy AuthorizeSecurityGroupEgress)  testDeregisterImageResponse :: DeregisterImageResponse -> TestTree testDeregisterImageResponse = res     "DeregisterImageResponse"     "fixture/DeregisterImageResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeregisterImage)  testModifyNetworkInterfaceAttributeResponse :: ModifyNetworkInterfaceAttributeResponse -> TestTree testModifyNetworkInterfaceAttributeResponse = res     "ModifyNetworkInterfaceAttributeResponse"     "fixture/ModifyNetworkInterfaceAttributeResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ModifyNetworkInterfaceAttribute)  testCancelReservedInstancesListingResponse :: CancelReservedInstancesListingResponse -> TestTree testCancelReservedInstancesListingResponse = res     "CancelReservedInstancesListingResponse"     "fixture/CancelReservedInstancesListingResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CancelReservedInstancesListing)  testAttachClassicLinkVPCResponse :: AttachClassicLinkVPCResponse -> TestTree testAttachClassicLinkVPCResponse = res     "AttachClassicLinkVPCResponse"     "fixture/AttachClassicLinkVPCResponse.proto"-    eC2+    ec2     (Proxy :: Proxy AttachClassicLinkVPC) +testDescribeVPCClassicLinkDNSSupportResponse :: DescribeVPCClassicLinkDNSSupportResponse -> TestTree+testDescribeVPCClassicLinkDNSSupportResponse = res+    "DescribeVPCClassicLinkDNSSupportResponse"+    "fixture/DescribeVPCClassicLinkDNSSupportResponse.proto"+    ec2+    (Proxy :: Proxy DescribeVPCClassicLinkDNSSupport)++testRunScheduledInstancesResponse :: RunScheduledInstancesResponse -> TestTree+testRunScheduledInstancesResponse = res+    "RunScheduledInstancesResponse"+    "fixture/RunScheduledInstancesResponse.proto"+    ec2+    (Proxy :: Proxy RunScheduledInstances)+ testCancelSpotFleetRequestsResponse :: CancelSpotFleetRequestsResponse -> TestTree testCancelSpotFleetRequestsResponse = res     "CancelSpotFleetRequestsResponse"     "fixture/CancelSpotFleetRequestsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CancelSpotFleetRequests)  testDescribeSpotPriceHistoryResponse :: DescribeSpotPriceHistoryResponse -> TestTree testDescribeSpotPriceHistoryResponse = res     "DescribeSpotPriceHistoryResponse"     "fixture/DescribeSpotPriceHistoryResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeSpotPriceHistory)  testDescribeDHCPOptionsResponse :: DescribeDHCPOptionsResponse -> TestTree testDescribeDHCPOptionsResponse = res     "DescribeDHCPOptionsResponse"     "fixture/DescribeDHCPOptionsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeDHCPOptions)  testImportImageResponse :: ImportImageResponse -> TestTree testImportImageResponse = res     "ImportImageResponse"     "fixture/ImportImageResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ImportImage)  testStopInstancesResponse :: StopInstancesResponse -> TestTree testStopInstancesResponse = res     "StopInstancesResponse"     "fixture/StopInstancesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy StopInstances)  testDescribeInternetGatewaysResponse :: DescribeInternetGatewaysResponse -> TestTree testDescribeInternetGatewaysResponse = res     "DescribeInternetGatewaysResponse"     "fixture/DescribeInternetGatewaysResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeInternetGateways)  testDisableVPCClassicLinkResponse :: DisableVPCClassicLinkResponse -> TestTree testDisableVPCClassicLinkResponse = res     "DisableVPCClassicLinkResponse"     "fixture/DisableVPCClassicLinkResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DisableVPCClassicLink)  testBundleInstanceResponse :: BundleInstanceResponse -> TestTree testBundleInstanceResponse = res     "BundleInstanceResponse"     "fixture/BundleInstanceResponse.proto"-    eC2+    ec2     (Proxy :: Proxy BundleInstance)  testDescribeNetworkInterfacesResponse :: DescribeNetworkInterfacesResponse -> TestTree testDescribeNetworkInterfacesResponse = res     "DescribeNetworkInterfacesResponse"     "fixture/DescribeNetworkInterfacesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeNetworkInterfaces)  testReplaceNetworkACLAssociationResponse :: ReplaceNetworkACLAssociationResponse -> TestTree testReplaceNetworkACLAssociationResponse = res     "ReplaceNetworkACLAssociationResponse"     "fixture/ReplaceNetworkACLAssociationResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ReplaceNetworkACLAssociation)  testDescribeNatGatewaysResponse :: DescribeNatGatewaysResponse -> TestTree testDescribeNatGatewaysResponse = res     "DescribeNatGatewaysResponse"     "fixture/DescribeNatGatewaysResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeNatGateways)  testDescribeAddressesResponse :: DescribeAddressesResponse -> TestTree testDescribeAddressesResponse = res     "DescribeAddressesResponse"     "fixture/DescribeAddressesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeAddresses)  testDescribeSnapshotAttributeResponse :: DescribeSnapshotAttributeResponse -> TestTree testDescribeSnapshotAttributeResponse = res     "DescribeSnapshotAttributeResponse"     "fixture/DescribeSnapshotAttributeResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeSnapshotAttribute)  testReplaceRouteResponse :: ReplaceRouteResponse -> TestTree testReplaceRouteResponse = res     "ReplaceRouteResponse"     "fixture/ReplaceRouteResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ReplaceRoute)  testDescribeVPCEndpointServicesResponse :: DescribeVPCEndpointServicesResponse -> TestTree testDescribeVPCEndpointServicesResponse = res     "DescribeVPCEndpointServicesResponse"     "fixture/DescribeVPCEndpointServicesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeVPCEndpointServices)  testAuthorizeSecurityGroupIngressResponse :: AuthorizeSecurityGroupIngressResponse -> TestTree testAuthorizeSecurityGroupIngressResponse = res     "AuthorizeSecurityGroupIngressResponse"     "fixture/AuthorizeSecurityGroupIngressResponse.proto"-    eC2+    ec2     (Proxy :: Proxy AuthorizeSecurityGroupIngress)  testCreateVPCPeeringConnectionResponse :: CreateVPCPeeringConnectionResponse -> TestTree testCreateVPCPeeringConnectionResponse = res     "CreateVPCPeeringConnectionResponse"     "fixture/CreateVPCPeeringConnectionResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateVPCPeeringConnection)  testDescribeSubnetsResponse :: DescribeSubnetsResponse -> TestTree testDescribeSubnetsResponse = res     "DescribeSubnetsResponse"     "fixture/DescribeSubnetsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeSubnets)  testCreateTagsResponse :: CreateTagsResponse -> TestTree testCreateTagsResponse = res     "CreateTagsResponse"     "fixture/CreateTagsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateTags)  testPurchaseReservedInstancesOfferingResponse :: PurchaseReservedInstancesOfferingResponse -> TestTree testPurchaseReservedInstancesOfferingResponse = res     "PurchaseReservedInstancesOfferingResponse"     "fixture/PurchaseReservedInstancesOfferingResponse.proto"-    eC2+    ec2     (Proxy :: Proxy PurchaseReservedInstancesOffering)  testDeleteNetworkACLEntryResponse :: DeleteNetworkACLEntryResponse -> TestTree testDeleteNetworkACLEntryResponse = res     "DeleteNetworkACLEntryResponse"     "fixture/DeleteNetworkACLEntryResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteNetworkACLEntry)  testResetSnapshotAttributeResponse :: ResetSnapshotAttributeResponse -> TestTree testResetSnapshotAttributeResponse = res     "ResetSnapshotAttributeResponse"     "fixture/ResetSnapshotAttributeResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ResetSnapshotAttribute)  testDescribeVPNConnectionsResponse :: DescribeVPNConnectionsResponse -> TestTree testDescribeVPNConnectionsResponse = res     "DescribeVPNConnectionsResponse"     "fixture/DescribeVPNConnectionsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeVPNConnections)  testDeleteRouteResponse :: DeleteRouteResponse -> TestTree testDeleteRouteResponse = res     "DeleteRouteResponse"     "fixture/DeleteRouteResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteRoute)  testReplaceNetworkACLEntryResponse :: ReplaceNetworkACLEntryResponse -> TestTree testReplaceNetworkACLEntryResponse = res     "ReplaceNetworkACLEntryResponse"     "fixture/ReplaceNetworkACLEntryResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ReplaceNetworkACLEntry)  testDescribeVPCEndpointsResponse :: DescribeVPCEndpointsResponse -> TestTree testDescribeVPCEndpointsResponse = res     "DescribeVPCEndpointsResponse"     "fixture/DescribeVPCEndpointsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeVPCEndpoints)  testResetInstanceAttributeResponse :: ResetInstanceAttributeResponse -> TestTree testResetInstanceAttributeResponse = res     "ResetInstanceAttributeResponse"     "fixture/ResetInstanceAttributeResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ResetInstanceAttribute)  testAttachNetworkInterfaceResponse :: AttachNetworkInterfaceResponse -> TestTree testAttachNetworkInterfaceResponse = res     "AttachNetworkInterfaceResponse"     "fixture/AttachNetworkInterfaceResponse.proto"-    eC2+    ec2     (Proxy :: Proxy AttachNetworkInterface)  testDescribeInstanceStatusResponse :: DescribeInstanceStatusResponse -> TestTree testDescribeInstanceStatusResponse = res     "DescribeInstanceStatusResponse"     "fixture/DescribeInstanceStatusResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeInstanceStatus)  testImportKeyPairResponse :: ImportKeyPairResponse -> TestTree testImportKeyPairResponse = res     "ImportKeyPairResponse"     "fixture/ImportKeyPairResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ImportKeyPair)  testDeleteTagsResponse :: DeleteTagsResponse -> TestTree testDeleteTagsResponse = res     "DeleteTagsResponse"     "fixture/DeleteTagsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteTags)  testConfirmProductInstanceResponse :: ConfirmProductInstanceResponse -> TestTree testConfirmProductInstanceResponse = res     "ConfirmProductInstanceResponse"     "fixture/ConfirmProductInstanceResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ConfirmProductInstance)  testDescribeInstanceAttributeResponse :: DescribeInstanceAttributeResponse -> TestTree testDescribeInstanceAttributeResponse = res     "DescribeInstanceAttributeResponse"     "fixture/DescribeInstanceAttributeResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeInstanceAttribute)  testDescribeReservedInstancesOfferingsResponse :: DescribeReservedInstancesOfferingsResponse -> TestTree testDescribeReservedInstancesOfferingsResponse = res     "DescribeReservedInstancesOfferingsResponse"     "fixture/DescribeReservedInstancesOfferingsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeReservedInstancesOfferings)  testCreateCustomerGatewayResponse :: CreateCustomerGatewayResponse -> TestTree testCreateCustomerGatewayResponse = res     "CreateCustomerGatewayResponse"     "fixture/CreateCustomerGatewayResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateCustomerGateway)  testDeleteSecurityGroupResponse :: DeleteSecurityGroupResponse -> TestTree testDeleteSecurityGroupResponse = res     "DeleteSecurityGroupResponse"     "fixture/DeleteSecurityGroupResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteSecurityGroup)  testDeleteVPCPeeringConnectionResponse :: DeleteVPCPeeringConnectionResponse -> TestTree testDeleteVPCPeeringConnectionResponse = res     "DeleteVPCPeeringConnectionResponse"     "fixture/DeleteVPCPeeringConnectionResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteVPCPeeringConnection)  testAttachInternetGatewayResponse :: AttachInternetGatewayResponse -> TestTree testAttachInternetGatewayResponse = res     "AttachInternetGatewayResponse"     "fixture/AttachInternetGatewayResponse.proto"-    eC2+    ec2     (Proxy :: Proxy AttachInternetGateway)  testModifyInstancePlacementResponse :: ModifyInstancePlacementResponse -> TestTree testModifyInstancePlacementResponse = res     "ModifyInstancePlacementResponse"     "fixture/ModifyInstancePlacementResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ModifyInstancePlacement)  testDescribeFlowLogsResponse :: DescribeFlowLogsResponse -> TestTree testDescribeFlowLogsResponse = res     "DescribeFlowLogsResponse"     "fixture/DescribeFlowLogsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeFlowLogs)  testRunInstancesResponse :: Reservation -> TestTree testRunInstancesResponse = res     "RunInstancesResponse"     "fixture/RunInstancesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy RunInstances)  testAssociateDHCPOptionsResponse :: AssociateDHCPOptionsResponse -> TestTree testAssociateDHCPOptionsResponse = res     "AssociateDHCPOptionsResponse"     "fixture/AssociateDHCPOptionsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy AssociateDHCPOptions)  testDescribeReservedInstancesResponse :: DescribeReservedInstancesResponse -> TestTree testDescribeReservedInstancesResponse = res     "DescribeReservedInstancesResponse"     "fixture/DescribeReservedInstancesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeReservedInstances)  testDescribeIdFormatResponse :: DescribeIdFormatResponse -> TestTree testDescribeIdFormatResponse = res     "DescribeIdFormatResponse"     "fixture/DescribeIdFormatResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeIdFormat)  testDescribeVPCsResponse :: DescribeVPCsResponse -> TestTree testDescribeVPCsResponse = res     "DescribeVPCsResponse"     "fixture/DescribeVPCsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeVPCs)  testDescribeConversionTasksResponse :: DescribeConversionTasksResponse -> TestTree testDescribeConversionTasksResponse = res     "DescribeConversionTasksResponse"     "fixture/DescribeConversionTasksResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeConversionTasks) +testDisableVPCClassicLinkDNSSupportResponse :: DisableVPCClassicLinkDNSSupportResponse -> TestTree+testDisableVPCClassicLinkDNSSupportResponse = res+    "DisableVPCClassicLinkDNSSupportResponse"+    "fixture/DisableVPCClassicLinkDNSSupportResponse.proto"+    ec2+    (Proxy :: Proxy DisableVPCClassicLinkDNSSupport)+ testAllocateAddressResponse :: AllocateAddressResponse -> TestTree testAllocateAddressResponse = res     "AllocateAddressResponse"     "fixture/AllocateAddressResponse.proto"-    eC2+    ec2     (Proxy :: Proxy AllocateAddress)  testCancelConversionTaskResponse :: CancelConversionTaskResponse -> TestTree testCancelConversionTaskResponse = res     "CancelConversionTaskResponse"     "fixture/CancelConversionTaskResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CancelConversionTask)  testModifyImageAttributeResponse :: ModifyImageAttributeResponse -> TestTree testModifyImageAttributeResponse = res     "ModifyImageAttributeResponse"     "fixture/ModifyImageAttributeResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ModifyImageAttribute)  testCreateRouteTableResponse :: CreateRouteTableResponse -> TestTree testCreateRouteTableResponse = res     "CreateRouteTableResponse"     "fixture/CreateRouteTableResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateRouteTable)  testReportInstanceStatusResponse :: ReportInstanceStatusResponse -> TestTree testReportInstanceStatusResponse = res     "ReportInstanceStatusResponse"     "fixture/ReportInstanceStatusResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ReportInstanceStatus)  testAttachVolumeResponse :: VolumeAttachment -> TestTree testAttachVolumeResponse = res     "AttachVolumeResponse"     "fixture/AttachVolumeResponse.proto"-    eC2+    ec2     (Proxy :: Proxy AttachVolume)  testRequestSpotInstancesResponse :: RequestSpotInstancesResponse -> TestTree testRequestSpotInstancesResponse = res     "RequestSpotInstancesResponse"     "fixture/RequestSpotInstancesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy RequestSpotInstances)  testDescribeVolumesResponse :: DescribeVolumesResponse -> TestTree testDescribeVolumesResponse = res     "DescribeVolumesResponse"     "fixture/DescribeVolumesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeVolumes)  testRejectVPCPeeringConnectionResponse :: RejectVPCPeeringConnectionResponse -> TestTree testRejectVPCPeeringConnectionResponse = res     "RejectVPCPeeringConnectionResponse"     "fixture/RejectVPCPeeringConnectionResponse.proto"-    eC2+    ec2     (Proxy :: Proxy RejectVPCPeeringConnection)  testDeleteVPNConnectionRouteResponse :: DeleteVPNConnectionRouteResponse -> TestTree testDeleteVPNConnectionRouteResponse = res     "DeleteVPNConnectionRouteResponse"     "fixture/DeleteVPNConnectionRouteResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteVPNConnectionRoute)  testModifyVPCEndpointResponse :: ModifyVPCEndpointResponse -> TestTree testModifyVPCEndpointResponse = res     "ModifyVPCEndpointResponse"     "fixture/ModifyVPCEndpointResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ModifyVPCEndpoint)  testAllocateHostsResponse :: AllocateHostsResponse -> TestTree testAllocateHostsResponse = res     "AllocateHostsResponse"     "fixture/AllocateHostsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy AllocateHosts)  testRegisterImageResponse :: RegisterImageResponse -> TestTree testRegisterImageResponse = res     "RegisterImageResponse"     "fixture/RegisterImageResponse.proto"-    eC2+    ec2     (Proxy :: Proxy RegisterImage)  testRevokeSecurityGroupIngressResponse :: RevokeSecurityGroupIngressResponse -> TestTree testRevokeSecurityGroupIngressResponse = res     "RevokeSecurityGroupIngressResponse"     "fixture/RevokeSecurityGroupIngressResponse.proto"-    eC2+    ec2     (Proxy :: Proxy RevokeSecurityGroupIngress) +testEnableVPCClassicLinkDNSSupportResponse :: EnableVPCClassicLinkDNSSupportResponse -> TestTree+testEnableVPCClassicLinkDNSSupportResponse = res+    "EnableVPCClassicLinkDNSSupportResponse"+    "fixture/EnableVPCClassicLinkDNSSupportResponse.proto"+    ec2+    (Proxy :: Proxy EnableVPCClassicLinkDNSSupport)+ testModifyReservedInstancesResponse :: ModifyReservedInstancesResponse -> TestTree testModifyReservedInstancesResponse = res     "ModifyReservedInstancesResponse"     "fixture/ModifyReservedInstancesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ModifyReservedInstances) +testDescribeScheduledInstancesResponse :: DescribeScheduledInstancesResponse -> TestTree+testDescribeScheduledInstancesResponse = res+    "DescribeScheduledInstancesResponse"+    "fixture/DescribeScheduledInstancesResponse.proto"+    ec2+    (Proxy :: Proxy DescribeScheduledInstances)+ testCreateFlowLogsResponse :: CreateFlowLogsResponse -> TestTree testCreateFlowLogsResponse = res     "CreateFlowLogsResponse"     "fixture/CreateFlowLogsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateFlowLogs)  testDescribeSpotFleetRequestsResponse :: DescribeSpotFleetRequestsResponse -> TestTree testDescribeSpotFleetRequestsResponse = res     "DescribeSpotFleetRequestsResponse"     "fixture/DescribeSpotFleetRequestsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeSpotFleetRequests)  testMoveAddressToVPCResponse :: MoveAddressToVPCResponse -> TestTree testMoveAddressToVPCResponse = res     "MoveAddressToVPCResponse"     "fixture/MoveAddressToVPCResponse.proto"-    eC2+    ec2     (Proxy :: Proxy MoveAddressToVPC)  testDeleteNetworkACLResponse :: DeleteNetworkACLResponse -> TestTree testDeleteNetworkACLResponse = res     "DeleteNetworkACLResponse"     "fixture/DeleteNetworkACLResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteNetworkACL)  testDeleteVPNGatewayResponse :: DeleteVPNGatewayResponse -> TestTree testDeleteVPNGatewayResponse = res     "DeleteVPNGatewayResponse"     "fixture/DeleteVPNGatewayResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteVPNGateway)  testDescribeImportImageTasksResponse :: DescribeImportImageTasksResponse -> TestTree testDescribeImportImageTasksResponse = res     "DescribeImportImageTasksResponse"     "fixture/DescribeImportImageTasksResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeImportImageTasks)  testDescribeVolumeAttributeResponse :: DescribeVolumeAttributeResponse -> TestTree testDescribeVolumeAttributeResponse = res     "DescribeVolumeAttributeResponse"     "fixture/DescribeVolumeAttributeResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeVolumeAttribute)  testDescribeMovingAddressesResponse :: DescribeMovingAddressesResponse -> TestTree testDescribeMovingAddressesResponse = res     "DescribeMovingAddressesResponse"     "fixture/DescribeMovingAddressesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeMovingAddresses)  testGetPasswordDataResponse :: GetPasswordDataResponse -> TestTree testGetPasswordDataResponse = res     "GetPasswordDataResponse"     "fixture/GetPasswordDataResponse.proto"-    eC2+    ec2     (Proxy :: Proxy GetPasswordData)  testCreateVPCResponse :: CreateVPCResponse -> TestTree testCreateVPCResponse = res     "CreateVPCResponse"     "fixture/CreateVPCResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateVPC)  testCopySnapshotResponse :: CopySnapshotResponse -> TestTree testCopySnapshotResponse = res     "CopySnapshotResponse"     "fixture/CopySnapshotResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CopySnapshot)  testDisassociateAddressResponse :: DisassociateAddressResponse -> TestTree testDisassociateAddressResponse = res     "DisassociateAddressResponse"     "fixture/DisassociateAddressResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DisassociateAddress)  testDeleteVPCResponse :: DeleteVPCResponse -> TestTree testDeleteVPCResponse = res     "DeleteVPCResponse"     "fixture/DeleteVPCResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteVPC)  testCreateInstanceExportTaskResponse :: CreateInstanceExportTaskResponse -> TestTree testCreateInstanceExportTaskResponse = res     "CreateInstanceExportTaskResponse"     "fixture/CreateInstanceExportTaskResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateInstanceExportTask)  testDescribeVPCAttributeResponse :: DescribeVPCAttributeResponse -> TestTree testDescribeVPCAttributeResponse = res     "DescribeVPCAttributeResponse"     "fixture/DescribeVPCAttributeResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeVPCAttribute)  testCreateVolumeResponse :: Volume -> TestTree testCreateVolumeResponse = res     "CreateVolumeResponse"     "fixture/CreateVolumeResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateVolume) +testDescribeScheduledInstanceAvailabilityResponse :: DescribeScheduledInstanceAvailabilityResponse -> TestTree+testDescribeScheduledInstanceAvailabilityResponse = res+    "DescribeScheduledInstanceAvailabilityResponse"+    "fixture/DescribeScheduledInstanceAvailabilityResponse.proto"+    ec2+    (Proxy :: Proxy DescribeScheduledInstanceAvailability)+ testModifyVolumeAttributeResponse :: ModifyVolumeAttributeResponse -> TestTree testModifyVolumeAttributeResponse = res     "ModifyVolumeAttributeResponse"     "fixture/ModifyVolumeAttributeResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ModifyVolumeAttribute)  testDescribeSpotDatafeedSubscriptionResponse :: DescribeSpotDatafeedSubscriptionResponse -> TestTree testDescribeSpotDatafeedSubscriptionResponse = res     "DescribeSpotDatafeedSubscriptionResponse"     "fixture/DescribeSpotDatafeedSubscriptionResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeSpotDatafeedSubscription)  testDescribePrefixListsResponse :: DescribePrefixListsResponse -> TestTree testDescribePrefixListsResponse = res     "DescribePrefixListsResponse"     "fixture/DescribePrefixListsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribePrefixLists)  testDeletePlacementGroupResponse :: DeletePlacementGroupResponse -> TestTree testDeletePlacementGroupResponse = res     "DeletePlacementGroupResponse"     "fixture/DeletePlacementGroupResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeletePlacementGroup)  testRequestSpotFleetResponse :: RequestSpotFleetResponse -> TestTree testRequestSpotFleetResponse = res     "RequestSpotFleetResponse"     "fixture/RequestSpotFleetResponse.proto"-    eC2+    ec2     (Proxy :: Proxy RequestSpotFleet)  testCreateSubnetResponse :: CreateSubnetResponse -> TestTree testCreateSubnetResponse = res     "CreateSubnetResponse"     "fixture/CreateSubnetResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateSubnet)  testCreateNetworkInterfaceResponse :: CreateNetworkInterfaceResponse -> TestTree testCreateNetworkInterfaceResponse = res     "CreateNetworkInterfaceResponse"     "fixture/CreateNetworkInterfaceResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateNetworkInterface)  testDescribeSecurityGroupsResponse :: DescribeSecurityGroupsResponse -> TestTree testDescribeSecurityGroupsResponse = res     "DescribeSecurityGroupsResponse"     "fixture/DescribeSecurityGroupsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeSecurityGroups)  testDescribeExportTasksResponse :: DescribeExportTasksResponse -> TestTree testDescribeExportTasksResponse = res     "DescribeExportTasksResponse"     "fixture/DescribeExportTasksResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeExportTasks)  testModifySpotFleetRequestResponse :: ModifySpotFleetRequestResponse -> TestTree testModifySpotFleetRequestResponse = res     "ModifySpotFleetRequestResponse"     "fixture/ModifySpotFleetRequestResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ModifySpotFleetRequest)  testDetachVPNGatewayResponse :: DetachVPNGatewayResponse -> TestTree testDetachVPNGatewayResponse = res     "DetachVPNGatewayResponse"     "fixture/DetachVPNGatewayResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DetachVPNGateway)  testEnableVolumeIOResponse :: EnableVolumeIOResponse -> TestTree testEnableVolumeIOResponse = res     "EnableVolumeIOResponse"     "fixture/EnableVolumeIOResponse.proto"-    eC2+    ec2     (Proxy :: Proxy EnableVolumeIO)  testDescribeInstancesResponse :: DescribeInstancesResponse -> TestTree testDescribeInstancesResponse = res     "DescribeInstancesResponse"     "fixture/DescribeInstancesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeInstances)  testCreateNatGatewayResponse :: CreateNatGatewayResponse -> TestTree testCreateNatGatewayResponse = res     "CreateNatGatewayResponse"     "fixture/CreateNatGatewayResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateNatGateway)  testDescribeVPCPeeringConnectionsResponse :: DescribeVPCPeeringConnectionsResponse -> TestTree testDescribeVPCPeeringConnectionsResponse = res     "DescribeVPCPeeringConnectionsResponse"     "fixture/DescribeVPCPeeringConnectionsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeVPCPeeringConnections)  testCancelExportTaskResponse :: CancelExportTaskResponse -> TestTree testCancelExportTaskResponse = res     "CancelExportTaskResponse"     "fixture/CancelExportTaskResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CancelExportTask)  testDeleteNetworkInterfaceResponse :: DeleteNetworkInterfaceResponse -> TestTree testDeleteNetworkInterfaceResponse = res     "DeleteNetworkInterfaceResponse"     "fixture/DeleteNetworkInterfaceResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteNetworkInterface)  testReplaceRouteTableAssociationResponse :: ReplaceRouteTableAssociationResponse -> TestTree testReplaceRouteTableAssociationResponse = res     "ReplaceRouteTableAssociationResponse"     "fixture/ReplaceRouteTableAssociationResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ReplaceRouteTableAssociation)  testStartInstancesResponse :: StartInstancesResponse -> TestTree testStartInstancesResponse = res     "StartInstancesResponse"     "fixture/StartInstancesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy StartInstances)  testCreatePlacementGroupResponse :: CreatePlacementGroupResponse -> TestTree testCreatePlacementGroupResponse = res     "CreatePlacementGroupResponse"     "fixture/CreatePlacementGroupResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreatePlacementGroup)  testDescribeSnapshotsResponse :: DescribeSnapshotsResponse -> TestTree testDescribeSnapshotsResponse = res     "DescribeSnapshotsResponse"     "fixture/DescribeSnapshotsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeSnapshots)  testAssociateAddressResponse :: AssociateAddressResponse -> TestTree testAssociateAddressResponse = res     "AssociateAddressResponse"     "fixture/AssociateAddressResponse.proto"-    eC2+    ec2     (Proxy :: Proxy AssociateAddress)  testDescribeNetworkInterfaceAttributeResponse :: DescribeNetworkInterfaceAttributeResponse -> TestTree testDescribeNetworkInterfaceAttributeResponse = res     "DescribeNetworkInterfaceAttributeResponse"     "fixture/DescribeNetworkInterfaceAttributeResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeNetworkInterfaceAttribute)  testReleaseHostsResponse :: ReleaseHostsResponse -> TestTree testReleaseHostsResponse = res     "ReleaseHostsResponse"     "fixture/ReleaseHostsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ReleaseHosts)  testResetNetworkInterfaceAttributeResponse :: ResetNetworkInterfaceAttributeResponse -> TestTree testResetNetworkInterfaceAttributeResponse = res     "ResetNetworkInterfaceAttributeResponse"     "fixture/ResetNetworkInterfaceAttributeResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ResetNetworkInterfaceAttribute)  testDeleteInternetGatewayResponse :: DeleteInternetGatewayResponse -> TestTree testDeleteInternetGatewayResponse = res     "DeleteInternetGatewayResponse"     "fixture/DeleteInternetGatewayResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteInternetGateway)  testDescribeReservedInstancesListingsResponse :: DescribeReservedInstancesListingsResponse -> TestTree testDescribeReservedInstancesListingsResponse = res     "DescribeReservedInstancesListingsResponse"     "fixture/DescribeReservedInstancesListingsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeReservedInstancesListings)  testCreateVPNConnectionResponse :: CreateVPNConnectionResponse -> TestTree testCreateVPNConnectionResponse = res     "CreateVPNConnectionResponse"     "fixture/CreateVPNConnectionResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateVPNConnection)  testDeleteNatGatewayResponse :: DeleteNatGatewayResponse -> TestTree testDeleteNatGatewayResponse = res     "DeleteNatGatewayResponse"     "fixture/DeleteNatGatewayResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteNatGateway)  testDescribeImportSnapshotTasksResponse :: DescribeImportSnapshotTasksResponse -> TestTree testDescribeImportSnapshotTasksResponse = res     "DescribeImportSnapshotTasksResponse"     "fixture/DescribeImportSnapshotTasksResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeImportSnapshotTasks)  testDescribeCustomerGatewaysResponse :: DescribeCustomerGatewaysResponse -> TestTree testDescribeCustomerGatewaysResponse = res     "DescribeCustomerGatewaysResponse"     "fixture/DescribeCustomerGatewaysResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeCustomerGateways)  testDeleteSubnetResponse :: DeleteSubnetResponse -> TestTree testDeleteSubnetResponse = res     "DeleteSubnetResponse"     "fixture/DeleteSubnetResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteSubnet)  testCopyImageResponse :: CopyImageResponse -> TestTree testCopyImageResponse = res     "CopyImageResponse"     "fixture/CopyImageResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CopyImage)  testCreateVPCEndpointResponse :: CreateVPCEndpointResponse -> TestTree testCreateVPCEndpointResponse = res     "CreateVPCEndpointResponse"     "fixture/CreateVPCEndpointResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateVPCEndpoint)  testUnmonitorInstancesResponse :: UnmonitorInstancesResponse -> TestTree testUnmonitorInstancesResponse = res     "UnmonitorInstancesResponse"     "fixture/UnmonitorInstancesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy UnmonitorInstances)  testCreateSecurityGroupResponse :: CreateSecurityGroupResponse -> TestTree testCreateSecurityGroupResponse = res     "CreateSecurityGroupResponse"     "fixture/CreateSecurityGroupResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateSecurityGroup)  testImportVolumeResponse :: ImportVolumeResponse -> TestTree testImportVolumeResponse = res     "ImportVolumeResponse"     "fixture/ImportVolumeResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ImportVolume)  testDisableVGWRoutePropagationResponse :: DisableVGWRoutePropagationResponse -> TestTree testDisableVGWRoutePropagationResponse = res     "DisableVGWRoutePropagationResponse"     "fixture/DisableVGWRoutePropagationResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DisableVGWRoutePropagation)  testCreateSpotDatafeedSubscriptionResponse :: CreateSpotDatafeedSubscriptionResponse -> TestTree testCreateSpotDatafeedSubscriptionResponse = res     "CreateSpotDatafeedSubscriptionResponse"     "fixture/CreateSpotDatafeedSubscriptionResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateSpotDatafeedSubscription)  testCancelSpotInstanceRequestsResponse :: CancelSpotInstanceRequestsResponse -> TestTree testCancelSpotInstanceRequestsResponse = res     "CancelSpotInstanceRequestsResponse"     "fixture/CancelSpotInstanceRequestsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CancelSpotInstanceRequests)  testCreateRouteResponse :: CreateRouteResponse -> TestTree testCreateRouteResponse = res     "CreateRouteResponse"     "fixture/CreateRouteResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateRoute)  testDeleteSnapshotResponse :: DeleteSnapshotResponse -> TestTree testDeleteSnapshotResponse = res     "DeleteSnapshotResponse"     "fixture/DeleteSnapshotResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteSnapshot)  testAssignPrivateIPAddressesResponse :: AssignPrivateIPAddressesResponse -> TestTree testAssignPrivateIPAddressesResponse = res     "AssignPrivateIPAddressesResponse"     "fixture/AssignPrivateIPAddressesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy AssignPrivateIPAddresses)  testModifyInstanceAttributeResponse :: ModifyInstanceAttributeResponse -> TestTree testModifyInstanceAttributeResponse = res     "ModifyInstanceAttributeResponse"     "fixture/ModifyInstanceAttributeResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ModifyInstanceAttribute)  testDeleteCustomerGatewayResponse :: DeleteCustomerGatewayResponse -> TestTree testDeleteCustomerGatewayResponse = res     "DeleteCustomerGatewayResponse"     "fixture/DeleteCustomerGatewayResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteCustomerGateway)  testDisassociateRouteTableResponse :: DisassociateRouteTableResponse -> TestTree testDisassociateRouteTableResponse = res     "DisassociateRouteTableResponse"     "fixture/DisassociateRouteTableResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DisassociateRouteTable)  testDeleteSpotDatafeedSubscriptionResponse :: DeleteSpotDatafeedSubscriptionResponse -> TestTree testDeleteSpotDatafeedSubscriptionResponse = res     "DeleteSpotDatafeedSubscriptionResponse"     "fixture/DeleteSpotDatafeedSubscriptionResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteSpotDatafeedSubscription)  testEnableVPCClassicLinkResponse :: EnableVPCClassicLinkResponse -> TestTree testEnableVPCClassicLinkResponse = res     "EnableVPCClassicLinkResponse"     "fixture/EnableVPCClassicLinkResponse.proto"-    eC2+    ec2     (Proxy :: Proxy EnableVPCClassicLink)  testDescribePlacementGroupsResponse :: DescribePlacementGroupsResponse -> TestTree testDescribePlacementGroupsResponse = res     "DescribePlacementGroupsResponse"     "fixture/DescribePlacementGroupsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribePlacementGroups) +testPurchaseScheduledInstancesResponse :: PurchaseScheduledInstancesResponse -> TestTree+testPurchaseScheduledInstancesResponse = res+    "PurchaseScheduledInstancesResponse"+    "fixture/PurchaseScheduledInstancesResponse.proto"+    ec2+    (Proxy :: Proxy PurchaseScheduledInstances)+ testEnableVGWRoutePropagationResponse :: EnableVGWRoutePropagationResponse -> TestTree testEnableVGWRoutePropagationResponse = res     "EnableVGWRoutePropagationResponse"     "fixture/EnableVGWRoutePropagationResponse.proto"-    eC2+    ec2     (Proxy :: Proxy EnableVGWRoutePropagation)  testDescribeSpotFleetRequestHistoryResponse :: DescribeSpotFleetRequestHistoryResponse -> TestTree testDescribeSpotFleetRequestHistoryResponse = res     "DescribeSpotFleetRequestHistoryResponse"     "fixture/DescribeSpotFleetRequestHistoryResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeSpotFleetRequestHistory)  testModifySnapshotAttributeResponse :: ModifySnapshotAttributeResponse -> TestTree testModifySnapshotAttributeResponse = res     "ModifySnapshotAttributeResponse"     "fixture/ModifySnapshotAttributeResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ModifySnapshotAttribute)  testCreateSnapshotResponse :: Snapshot -> TestTree testCreateSnapshotResponse = res     "CreateSnapshotResponse"     "fixture/CreateSnapshotResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateSnapshot)  testCreateNetworkACLEntryResponse :: CreateNetworkACLEntryResponse -> TestTree testCreateNetworkACLEntryResponse = res     "CreateNetworkACLEntryResponse"     "fixture/CreateNetworkACLEntryResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateNetworkACLEntry)  testCreateReservedInstancesListingResponse :: CreateReservedInstancesListingResponse -> TestTree testCreateReservedInstancesListingResponse = res     "CreateReservedInstancesListingResponse"     "fixture/CreateReservedInstancesListingResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateReservedInstancesListing)  testAttachVPNGatewayResponse :: AttachVPNGatewayResponse -> TestTree testAttachVPNGatewayResponse = res     "AttachVPNGatewayResponse"     "fixture/AttachVPNGatewayResponse.proto"-    eC2+    ec2     (Proxy :: Proxy AttachVPNGateway)  testCreateDHCPOptionsResponse :: CreateDHCPOptionsResponse -> TestTree testCreateDHCPOptionsResponse = res     "CreateDHCPOptionsResponse"     "fixture/CreateDHCPOptionsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateDHCPOptions)  testDescribeAccountAttributesResponse :: DescribeAccountAttributesResponse -> TestTree testDescribeAccountAttributesResponse = res     "DescribeAccountAttributesResponse"     "fixture/DescribeAccountAttributesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeAccountAttributes)  testModifyHostsResponse :: ModifyHostsResponse -> TestTree testModifyHostsResponse = res     "ModifyHostsResponse"     "fixture/ModifyHostsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ModifyHosts)  testRebootInstancesResponse :: RebootInstancesResponse -> TestTree testRebootInstancesResponse = res     "RebootInstancesResponse"     "fixture/RebootInstancesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy RebootInstances)  testCreateImageResponse :: CreateImageResponse -> TestTree testCreateImageResponse = res     "CreateImageResponse"     "fixture/CreateImageResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateImage)  testDescribeClassicLinkInstancesResponse :: DescribeClassicLinkInstancesResponse -> TestTree testDescribeClassicLinkInstancesResponse = res     "DescribeClassicLinkInstancesResponse"     "fixture/DescribeClassicLinkInstancesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeClassicLinkInstances)  testTerminateInstancesResponse :: TerminateInstancesResponse -> TestTree testTerminateInstancesResponse = res     "TerminateInstancesResponse"     "fixture/TerminateInstancesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy TerminateInstances)  testDescribeKeyPairsResponse :: DescribeKeyPairsResponse -> TestTree testDescribeKeyPairsResponse = res     "DescribeKeyPairsResponse"     "fixture/DescribeKeyPairsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeKeyPairs)  testCreateVPNConnectionRouteResponse :: CreateVPNConnectionRouteResponse -> TestTree testCreateVPNConnectionRouteResponse = res     "CreateVPNConnectionRouteResponse"     "fixture/CreateVPNConnectionRouteResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateVPNConnectionRoute)  testAssociateRouteTableResponse :: AssociateRouteTableResponse -> TestTree testAssociateRouteTableResponse = res     "AssociateRouteTableResponse"     "fixture/AssociateRouteTableResponse.proto"-    eC2+    ec2     (Proxy :: Proxy AssociateRouteTable)  testDescribeVPNGatewaysResponse :: DescribeVPNGatewaysResponse -> TestTree testDescribeVPNGatewaysResponse = res     "DescribeVPNGatewaysResponse"     "fixture/DescribeVPNGatewaysResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeVPNGateways)  testGetConsoleOutputResponse :: GetConsoleOutputResponse -> TestTree testGetConsoleOutputResponse = res     "GetConsoleOutputResponse"     "fixture/GetConsoleOutputResponse.proto"-    eC2+    ec2     (Proxy :: Proxy GetConsoleOutput)  testDescribeHostsResponse :: DescribeHostsResponse -> TestTree testDescribeHostsResponse = res     "DescribeHostsResponse"     "fixture/DescribeHostsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeHosts)  testDescribeImageAttributeResponse :: DescribeImageAttributeResponse -> TestTree testDescribeImageAttributeResponse = res     "DescribeImageAttributeResponse"     "fixture/DescribeImageAttributeResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeImageAttribute)  testModifyIdFormatResponse :: ModifyIdFormatResponse -> TestTree testModifyIdFormatResponse = res     "ModifyIdFormatResponse"     "fixture/ModifyIdFormatResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ModifyIdFormat)  testDeleteRouteTableResponse :: DeleteRouteTableResponse -> TestTree testDeleteRouteTableResponse = res     "DeleteRouteTableResponse"     "fixture/DeleteRouteTableResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteRouteTable)  testResetImageAttributeResponse :: ResetImageAttributeResponse -> TestTree testResetImageAttributeResponse = res     "ResetImageAttributeResponse"     "fixture/ResetImageAttributeResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ResetImageAttribute)  testDescribeReservedInstancesModificationsResponse :: DescribeReservedInstancesModificationsResponse -> TestTree testDescribeReservedInstancesModificationsResponse = res     "DescribeReservedInstancesModificationsResponse"     "fixture/DescribeReservedInstancesModificationsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeReservedInstancesModifications)  testDescribeSpotInstanceRequestsResponse :: DescribeSpotInstanceRequestsResponse -> TestTree testDescribeSpotInstanceRequestsResponse = res     "DescribeSpotInstanceRequestsResponse"     "fixture/DescribeSpotInstanceRequestsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeSpotInstanceRequests)  testUnassignPrivateIPAddressesResponse :: UnassignPrivateIPAddressesResponse -> TestTree testUnassignPrivateIPAddressesResponse = res     "UnassignPrivateIPAddressesResponse"     "fixture/UnassignPrivateIPAddressesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy UnassignPrivateIPAddresses)  testDeleteDHCPOptionsResponse :: DeleteDHCPOptionsResponse -> TestTree testDeleteDHCPOptionsResponse = res     "DeleteDHCPOptionsResponse"     "fixture/DeleteDHCPOptionsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteDHCPOptions)  testDescribeNetworkACLsResponse :: DescribeNetworkACLsResponse -> TestTree testDescribeNetworkACLsResponse = res     "DescribeNetworkACLsResponse"     "fixture/DescribeNetworkACLsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeNetworkACLs)  testCancelImportTaskResponse :: CancelImportTaskResponse -> TestTree testCancelImportTaskResponse = res     "CancelImportTaskResponse"     "fixture/CancelImportTaskResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CancelImportTask)  testDetachClassicLinkVPCResponse :: DetachClassicLinkVPCResponse -> TestTree testDetachClassicLinkVPCResponse = res     "DetachClassicLinkVPCResponse"     "fixture/DetachClassicLinkVPCResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DetachClassicLinkVPC)  testDescribeRegionsResponse :: DescribeRegionsResponse -> TestTree testDescribeRegionsResponse = res     "DescribeRegionsResponse"     "fixture/DescribeRegionsResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeRegions)  testMonitorInstancesResponse :: MonitorInstancesResponse -> TestTree testMonitorInstancesResponse = res     "MonitorInstancesResponse"     "fixture/MonitorInstancesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy MonitorInstances)  testAcceptVPCPeeringConnectionResponse :: AcceptVPCPeeringConnectionResponse -> TestTree testAcceptVPCPeeringConnectionResponse = res     "AcceptVPCPeeringConnectionResponse"     "fixture/AcceptVPCPeeringConnectionResponse.proto"-    eC2+    ec2     (Proxy :: Proxy AcceptVPCPeeringConnection)  testImportSnapshotResponse :: ImportSnapshotResponse -> TestTree testImportSnapshotResponse = res     "ImportSnapshotResponse"     "fixture/ImportSnapshotResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ImportSnapshot)  testDescribeVolumeStatusResponse :: DescribeVolumeStatusResponse -> TestTree testDescribeVolumeStatusResponse = res     "DescribeVolumeStatusResponse"     "fixture/DescribeVolumeStatusResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeVolumeStatus)  testDescribeRouteTablesResponse :: DescribeRouteTablesResponse -> TestTree testDescribeRouteTablesResponse = res     "DescribeRouteTablesResponse"     "fixture/DescribeRouteTablesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeRouteTables)  testDescribeAvailabilityZonesResponse :: DescribeAvailabilityZonesResponse -> TestTree testDescribeAvailabilityZonesResponse = res     "DescribeAvailabilityZonesResponse"     "fixture/DescribeAvailabilityZonesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeAvailabilityZones)  testModifyVPCAttributeResponse :: ModifyVPCAttributeResponse -> TestTree testModifyVPCAttributeResponse = res     "ModifyVPCAttributeResponse"     "fixture/ModifyVPCAttributeResponse.proto"-    eC2+    ec2     (Proxy :: Proxy ModifyVPCAttribute)  testDescribeImagesResponse :: DescribeImagesResponse -> TestTree testDescribeImagesResponse = res     "DescribeImagesResponse"     "fixture/DescribeImagesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeImages)  testRestoreAddressToClassicResponse :: RestoreAddressToClassicResponse -> TestTree testRestoreAddressToClassicResponse = res     "RestoreAddressToClassicResponse"     "fixture/RestoreAddressToClassicResponse.proto"-    eC2+    ec2     (Proxy :: Proxy RestoreAddressToClassic)  testCreateKeyPairResponse :: CreateKeyPairResponse -> TestTree testCreateKeyPairResponse = res     "CreateKeyPairResponse"     "fixture/CreateKeyPairResponse.proto"-    eC2+    ec2     (Proxy :: Proxy CreateKeyPair)  testDeleteVolumeResponse :: DeleteVolumeResponse -> TestTree testDeleteVolumeResponse = res     "DeleteVolumeResponse"     "fixture/DeleteVolumeResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DeleteVolume)  testDescribeSpotFleetInstancesResponse :: DescribeSpotFleetInstancesResponse -> TestTree testDescribeSpotFleetInstancesResponse = res     "DescribeSpotFleetInstancesResponse"     "fixture/DescribeSpotFleetInstancesResponse.proto"-    eC2+    ec2     (Proxy :: Proxy DescribeSpotFleetInstances)