spotInstanceBlockDeviceMappingsConv :: (MonadThrow m, Applicative m)
    => XmlElement -> m [SpotInstanceBlockDeviceMapping]
spotInstanceBlockDeviceMappingsConv = itemsSet "blockDeviceMapping" conv
  where
    conv e = SpotInstanceBlockDeviceMapping
        <$> e .< "deviceName"
        <*> element "ebs" ebsConv e
    ebsConv e = EbsSpotInstanceBlockDevice
        <$> e .< "volumeSize"
        <*> e .< "deleteOnTermination"
        <*> e .< "volumeType"
spotInstanceBlockDeviceMappingsConv :: (MonadThrow m, Applicative m)
    => XmlElement -> m [SpotInstanceBlockDeviceMapping]
spotInstanceBlockDeviceMappingsConv = itemsSet "blockDeviceMapping" conv
  where
    conv e = SpotInstanceBlockDeviceMapping
        <$> e .< "deviceName"
        <*> element "ebs" ebsConv e
    ebsConv e = EbsSpotInstanceBlockDevice
        <$> e .< "volumeSize"
        <*> e .< "deleteOnTermination"
        <*> e .< "volumeType"
spotInstanceBlockDeviceMappingsConv = itemsSet "blockDeviceMapping" conv
  where
    conv e = SpotInstanceBlockDeviceMapping
        <$> e .< "deviceName"
        <*> element "ebs" ebsConv e
    ebsConv e = EbsSpotInstanceBlockDevice
        <$> e .< "volumeSize"
        <*> e .< "deleteOnTermination"
        <*> e .< "volumeType"