diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Change Log
 
+## 0.52.0
+
+* Update resource specification document to version 12.3.0
+
 ## 0.51.0
 
 * Update resource specification document to version 11.6.0
diff --git a/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionContainerProperties.hs b/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionContainerProperties.hs
--- a/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionContainerProperties.hs
+++ b/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionContainerProperties.hs
@@ -26,14 +26,14 @@
   , _batchJobDefinitionContainerPropertiesInstanceType :: Maybe (Val Text)
   , _batchJobDefinitionContainerPropertiesJobRoleArn :: Maybe (Val Text)
   , _batchJobDefinitionContainerPropertiesLinuxParameters :: Maybe BatchJobDefinitionLinuxParameters
-  , _batchJobDefinitionContainerPropertiesMemory :: Val Integer
+  , _batchJobDefinitionContainerPropertiesMemory :: Maybe (Val Integer)
   , _batchJobDefinitionContainerPropertiesMountPoints :: Maybe [BatchJobDefinitionMountPoints]
   , _batchJobDefinitionContainerPropertiesPrivileged :: Maybe (Val Bool)
   , _batchJobDefinitionContainerPropertiesReadonlyRootFilesystem :: Maybe (Val Bool)
   , _batchJobDefinitionContainerPropertiesResourceRequirements :: Maybe [BatchJobDefinitionResourceRequirement]
   , _batchJobDefinitionContainerPropertiesUlimits :: Maybe [BatchJobDefinitionUlimit]
   , _batchJobDefinitionContainerPropertiesUser :: Maybe (Val Text)
-  , _batchJobDefinitionContainerPropertiesVcpus :: Val Integer
+  , _batchJobDefinitionContainerPropertiesVcpus :: Maybe (Val Integer)
   , _batchJobDefinitionContainerPropertiesVolumes :: Maybe [BatchJobDefinitionVolumes]
   } deriving (Show, Eq)
 
@@ -47,14 +47,14 @@
     , fmap (("InstanceType",) . toJSON) _batchJobDefinitionContainerPropertiesInstanceType
     , fmap (("JobRoleArn",) . toJSON) _batchJobDefinitionContainerPropertiesJobRoleArn
     , fmap (("LinuxParameters",) . toJSON) _batchJobDefinitionContainerPropertiesLinuxParameters
-    , (Just . ("Memory",) . toJSON) _batchJobDefinitionContainerPropertiesMemory
+    , fmap (("Memory",) . toJSON) _batchJobDefinitionContainerPropertiesMemory
     , fmap (("MountPoints",) . toJSON) _batchJobDefinitionContainerPropertiesMountPoints
     , fmap (("Privileged",) . toJSON) _batchJobDefinitionContainerPropertiesPrivileged
     , fmap (("ReadonlyRootFilesystem",) . toJSON) _batchJobDefinitionContainerPropertiesReadonlyRootFilesystem
     , fmap (("ResourceRequirements",) . toJSON) _batchJobDefinitionContainerPropertiesResourceRequirements
     , fmap (("Ulimits",) . toJSON) _batchJobDefinitionContainerPropertiesUlimits
     , fmap (("User",) . toJSON) _batchJobDefinitionContainerPropertiesUser
-    , (Just . ("Vcpus",) . toJSON) _batchJobDefinitionContainerPropertiesVcpus
+    , fmap (("Vcpus",) . toJSON) _batchJobDefinitionContainerPropertiesVcpus
     , fmap (("Volumes",) . toJSON) _batchJobDefinitionContainerPropertiesVolumes
     ]
 
@@ -62,10 +62,8 @@
 -- required fields as arguments.
 batchJobDefinitionContainerProperties
   :: Val Text -- ^ 'bjdcpImage'
-  -> Val Integer -- ^ 'bjdcpMemory'
-  -> Val Integer -- ^ 'bjdcpVcpus'
   -> BatchJobDefinitionContainerProperties
-batchJobDefinitionContainerProperties imagearg memoryarg vcpusarg =
+batchJobDefinitionContainerProperties imagearg =
   BatchJobDefinitionContainerProperties
   { _batchJobDefinitionContainerPropertiesCommand = Nothing
   , _batchJobDefinitionContainerPropertiesEnvironment = Nothing
@@ -73,14 +71,14 @@
   , _batchJobDefinitionContainerPropertiesInstanceType = Nothing
   , _batchJobDefinitionContainerPropertiesJobRoleArn = Nothing
   , _batchJobDefinitionContainerPropertiesLinuxParameters = Nothing
-  , _batchJobDefinitionContainerPropertiesMemory = memoryarg
+  , _batchJobDefinitionContainerPropertiesMemory = Nothing
   , _batchJobDefinitionContainerPropertiesMountPoints = Nothing
   , _batchJobDefinitionContainerPropertiesPrivileged = Nothing
   , _batchJobDefinitionContainerPropertiesReadonlyRootFilesystem = Nothing
   , _batchJobDefinitionContainerPropertiesResourceRequirements = Nothing
   , _batchJobDefinitionContainerPropertiesUlimits = Nothing
   , _batchJobDefinitionContainerPropertiesUser = Nothing
-  , _batchJobDefinitionContainerPropertiesVcpus = vcpusarg
+  , _batchJobDefinitionContainerPropertiesVcpus = Nothing
   , _batchJobDefinitionContainerPropertiesVolumes = Nothing
   }
 
@@ -109,7 +107,7 @@
 bjdcpLinuxParameters = lens _batchJobDefinitionContainerPropertiesLinuxParameters (\s a -> s { _batchJobDefinitionContainerPropertiesLinuxParameters = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-memory
-bjdcpMemory :: Lens' BatchJobDefinitionContainerProperties (Val Integer)
+bjdcpMemory :: Lens' BatchJobDefinitionContainerProperties (Maybe (Val Integer))
 bjdcpMemory = lens _batchJobDefinitionContainerPropertiesMemory (\s a -> s { _batchJobDefinitionContainerPropertiesMemory = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-mountpoints
@@ -137,7 +135,7 @@
 bjdcpUser = lens _batchJobDefinitionContainerPropertiesUser (\s a -> s { _batchJobDefinitionContainerPropertiesUser = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-vcpus
-bjdcpVcpus :: Lens' BatchJobDefinitionContainerProperties (Val Integer)
+bjdcpVcpus :: Lens' BatchJobDefinitionContainerProperties (Maybe (Val Integer))
 bjdcpVcpus = lens _batchJobDefinitionContainerPropertiesVcpus (\s a -> s { _batchJobDefinitionContainerPropertiesVcpus = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-volumes
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetCapacityReservationOptionsRequest.hs b/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetCapacityReservationOptionsRequest.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetCapacityReservationOptionsRequest.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-capacityreservationoptionsrequest.html
+
+module Stratosphere.ResourceProperties.EC2EC2FleetCapacityReservationOptionsRequest where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- EC2EC2FleetCapacityReservationOptionsRequest. See
+-- 'ec2EC2FleetCapacityReservationOptionsRequest' for a more convenient
+-- constructor.
+data EC2EC2FleetCapacityReservationOptionsRequest =
+  EC2EC2FleetCapacityReservationOptionsRequest
+  { _eC2EC2FleetCapacityReservationOptionsRequestUsageStrategy :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON EC2EC2FleetCapacityReservationOptionsRequest where
+  toJSON EC2EC2FleetCapacityReservationOptionsRequest{..} =
+    object $
+    catMaybes
+    [ fmap (("UsageStrategy",) . toJSON) _eC2EC2FleetCapacityReservationOptionsRequestUsageStrategy
+    ]
+
+-- | Constructor for 'EC2EC2FleetCapacityReservationOptionsRequest' containing
+-- required fields as arguments.
+ec2EC2FleetCapacityReservationOptionsRequest
+  :: EC2EC2FleetCapacityReservationOptionsRequest
+ec2EC2FleetCapacityReservationOptionsRequest  =
+  EC2EC2FleetCapacityReservationOptionsRequest
+  { _eC2EC2FleetCapacityReservationOptionsRequestUsageStrategy = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-capacityreservationoptionsrequest.html#cfn-ec2-ec2fleet-capacityreservationoptionsrequest-usagestrategy
+ececfcrorUsageStrategy :: Lens' EC2EC2FleetCapacityReservationOptionsRequest (Maybe (Val Text))
+ececfcrorUsageStrategy = lens _eC2EC2FleetCapacityReservationOptionsRequestUsageStrategy (\s a -> s { _eC2EC2FleetCapacityReservationOptionsRequestUsageStrategy = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetFleetLaunchTemplateOverridesRequest.hs b/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetFleetLaunchTemplateOverridesRequest.hs
--- a/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetFleetLaunchTemplateOverridesRequest.hs
+++ b/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetFleetLaunchTemplateOverridesRequest.hs
@@ -8,7 +8,7 @@
 module Stratosphere.ResourceProperties.EC2EC2FleetFleetLaunchTemplateOverridesRequest where
 
 import Stratosphere.ResourceImports
-
+import Stratosphere.ResourceProperties.EC2EC2FleetPlacement
 
 -- | Full data type definition for
 -- EC2EC2FleetFleetLaunchTemplateOverridesRequest. See
@@ -19,6 +19,7 @@
   { _eC2EC2FleetFleetLaunchTemplateOverridesRequestAvailabilityZone :: Maybe (Val Text)
   , _eC2EC2FleetFleetLaunchTemplateOverridesRequestInstanceType :: Maybe (Val Text)
   , _eC2EC2FleetFleetLaunchTemplateOverridesRequestMaxPrice :: Maybe (Val Text)
+  , _eC2EC2FleetFleetLaunchTemplateOverridesRequestPlacement :: Maybe EC2EC2FleetPlacement
   , _eC2EC2FleetFleetLaunchTemplateOverridesRequestPriority :: Maybe (Val Double)
   , _eC2EC2FleetFleetLaunchTemplateOverridesRequestSubnetId :: Maybe (Val Text)
   , _eC2EC2FleetFleetLaunchTemplateOverridesRequestWeightedCapacity :: Maybe (Val Double)
@@ -31,6 +32,7 @@
     [ fmap (("AvailabilityZone",) . toJSON) _eC2EC2FleetFleetLaunchTemplateOverridesRequestAvailabilityZone
     , fmap (("InstanceType",) . toJSON) _eC2EC2FleetFleetLaunchTemplateOverridesRequestInstanceType
     , fmap (("MaxPrice",) . toJSON) _eC2EC2FleetFleetLaunchTemplateOverridesRequestMaxPrice
+    , fmap (("Placement",) . toJSON) _eC2EC2FleetFleetLaunchTemplateOverridesRequestPlacement
     , fmap (("Priority",) . toJSON) _eC2EC2FleetFleetLaunchTemplateOverridesRequestPriority
     , fmap (("SubnetId",) . toJSON) _eC2EC2FleetFleetLaunchTemplateOverridesRequestSubnetId
     , fmap (("WeightedCapacity",) . toJSON) _eC2EC2FleetFleetLaunchTemplateOverridesRequestWeightedCapacity
@@ -45,6 +47,7 @@
   { _eC2EC2FleetFleetLaunchTemplateOverridesRequestAvailabilityZone = Nothing
   , _eC2EC2FleetFleetLaunchTemplateOverridesRequestInstanceType = Nothing
   , _eC2EC2FleetFleetLaunchTemplateOverridesRequestMaxPrice = Nothing
+  , _eC2EC2FleetFleetLaunchTemplateOverridesRequestPlacement = Nothing
   , _eC2EC2FleetFleetLaunchTemplateOverridesRequestPriority = Nothing
   , _eC2EC2FleetFleetLaunchTemplateOverridesRequestSubnetId = Nothing
   , _eC2EC2FleetFleetLaunchTemplateOverridesRequestWeightedCapacity = Nothing
@@ -61,6 +64,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest.html#cfn-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest-maxprice
 ececffltorMaxPrice :: Lens' EC2EC2FleetFleetLaunchTemplateOverridesRequest (Maybe (Val Text))
 ececffltorMaxPrice = lens _eC2EC2FleetFleetLaunchTemplateOverridesRequestMaxPrice (\s a -> s { _eC2EC2FleetFleetLaunchTemplateOverridesRequestMaxPrice = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest.html#cfn-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest-placement
+ececffltorPlacement :: Lens' EC2EC2FleetFleetLaunchTemplateOverridesRequest (Maybe EC2EC2FleetPlacement)
+ececffltorPlacement = lens _eC2EC2FleetFleetLaunchTemplateOverridesRequestPlacement (\s a -> s { _eC2EC2FleetFleetLaunchTemplateOverridesRequestPlacement = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest.html#cfn-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest-priority
 ececffltorPriority :: Lens' EC2EC2FleetFleetLaunchTemplateOverridesRequest (Maybe (Val Double))
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetOnDemandOptionsRequest.hs b/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetOnDemandOptionsRequest.hs
--- a/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetOnDemandOptionsRequest.hs
+++ b/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetOnDemandOptionsRequest.hs
@@ -8,13 +8,18 @@
 module Stratosphere.ResourceProperties.EC2EC2FleetOnDemandOptionsRequest where
 
 import Stratosphere.ResourceImports
-
+import Stratosphere.ResourceProperties.EC2EC2FleetCapacityReservationOptionsRequest
 
 -- | Full data type definition for EC2EC2FleetOnDemandOptionsRequest. See
 -- 'ec2EC2FleetOnDemandOptionsRequest' for a more convenient constructor.
 data EC2EC2FleetOnDemandOptionsRequest =
   EC2EC2FleetOnDemandOptionsRequest
   { _eC2EC2FleetOnDemandOptionsRequestAllocationStrategy :: Maybe (Val Text)
+  , _eC2EC2FleetOnDemandOptionsRequestCapacityReservationOptions :: Maybe EC2EC2FleetCapacityReservationOptionsRequest
+  , _eC2EC2FleetOnDemandOptionsRequestMaxTotalPrice :: Maybe (Val Text)
+  , _eC2EC2FleetOnDemandOptionsRequestMinTargetCapacity :: Maybe (Val Integer)
+  , _eC2EC2FleetOnDemandOptionsRequestSingleAvailabilityZone :: Maybe (Val Bool)
+  , _eC2EC2FleetOnDemandOptionsRequestSingleInstanceType :: Maybe (Val Bool)
   } deriving (Show, Eq)
 
 instance ToJSON EC2EC2FleetOnDemandOptionsRequest where
@@ -22,6 +27,11 @@
     object $
     catMaybes
     [ fmap (("AllocationStrategy",) . toJSON) _eC2EC2FleetOnDemandOptionsRequestAllocationStrategy
+    , fmap (("CapacityReservationOptions",) . toJSON) _eC2EC2FleetOnDemandOptionsRequestCapacityReservationOptions
+    , fmap (("MaxTotalPrice",) . toJSON) _eC2EC2FleetOnDemandOptionsRequestMaxTotalPrice
+    , fmap (("MinTargetCapacity",) . toJSON) _eC2EC2FleetOnDemandOptionsRequestMinTargetCapacity
+    , fmap (("SingleAvailabilityZone",) . toJSON) _eC2EC2FleetOnDemandOptionsRequestSingleAvailabilityZone
+    , fmap (("SingleInstanceType",) . toJSON) _eC2EC2FleetOnDemandOptionsRequestSingleInstanceType
     ]
 
 -- | Constructor for 'EC2EC2FleetOnDemandOptionsRequest' containing required
@@ -31,8 +41,33 @@
 ec2EC2FleetOnDemandOptionsRequest  =
   EC2EC2FleetOnDemandOptionsRequest
   { _eC2EC2FleetOnDemandOptionsRequestAllocationStrategy = Nothing
+  , _eC2EC2FleetOnDemandOptionsRequestCapacityReservationOptions = Nothing
+  , _eC2EC2FleetOnDemandOptionsRequestMaxTotalPrice = Nothing
+  , _eC2EC2FleetOnDemandOptionsRequestMinTargetCapacity = Nothing
+  , _eC2EC2FleetOnDemandOptionsRequestSingleAvailabilityZone = Nothing
+  , _eC2EC2FleetOnDemandOptionsRequestSingleInstanceType = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ondemandoptionsrequest.html#cfn-ec2-ec2fleet-ondemandoptionsrequest-allocationstrategy
 ececfodorAllocationStrategy :: Lens' EC2EC2FleetOnDemandOptionsRequest (Maybe (Val Text))
 ececfodorAllocationStrategy = lens _eC2EC2FleetOnDemandOptionsRequestAllocationStrategy (\s a -> s { _eC2EC2FleetOnDemandOptionsRequestAllocationStrategy = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ondemandoptionsrequest.html#cfn-ec2-ec2fleet-ondemandoptionsrequest-capacityreservationoptions
+ececfodorCapacityReservationOptions :: Lens' EC2EC2FleetOnDemandOptionsRequest (Maybe EC2EC2FleetCapacityReservationOptionsRequest)
+ececfodorCapacityReservationOptions = lens _eC2EC2FleetOnDemandOptionsRequestCapacityReservationOptions (\s a -> s { _eC2EC2FleetOnDemandOptionsRequestCapacityReservationOptions = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ondemandoptionsrequest.html#cfn-ec2-ec2fleet-ondemandoptionsrequest-maxtotalprice
+ececfodorMaxTotalPrice :: Lens' EC2EC2FleetOnDemandOptionsRequest (Maybe (Val Text))
+ececfodorMaxTotalPrice = lens _eC2EC2FleetOnDemandOptionsRequestMaxTotalPrice (\s a -> s { _eC2EC2FleetOnDemandOptionsRequestMaxTotalPrice = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ondemandoptionsrequest.html#cfn-ec2-ec2fleet-ondemandoptionsrequest-mintargetcapacity
+ececfodorMinTargetCapacity :: Lens' EC2EC2FleetOnDemandOptionsRequest (Maybe (Val Integer))
+ececfodorMinTargetCapacity = lens _eC2EC2FleetOnDemandOptionsRequestMinTargetCapacity (\s a -> s { _eC2EC2FleetOnDemandOptionsRequestMinTargetCapacity = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ondemandoptionsrequest.html#cfn-ec2-ec2fleet-ondemandoptionsrequest-singleavailabilityzone
+ececfodorSingleAvailabilityZone :: Lens' EC2EC2FleetOnDemandOptionsRequest (Maybe (Val Bool))
+ececfodorSingleAvailabilityZone = lens _eC2EC2FleetOnDemandOptionsRequestSingleAvailabilityZone (\s a -> s { _eC2EC2FleetOnDemandOptionsRequestSingleAvailabilityZone = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ondemandoptionsrequest.html#cfn-ec2-ec2fleet-ondemandoptionsrequest-singleinstancetype
+ececfodorSingleInstanceType :: Lens' EC2EC2FleetOnDemandOptionsRequest (Maybe (Val Bool))
+ececfodorSingleInstanceType = lens _eC2EC2FleetOnDemandOptionsRequestSingleInstanceType (\s a -> s { _eC2EC2FleetOnDemandOptionsRequestSingleInstanceType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetPlacement.hs b/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetPlacement.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetPlacement.hs
@@ -0,0 +1,87 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-placement.html
+
+module Stratosphere.ResourceProperties.EC2EC2FleetPlacement where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for EC2EC2FleetPlacement. See
+-- 'ec2EC2FleetPlacement' for a more convenient constructor.
+data EC2EC2FleetPlacement =
+  EC2EC2FleetPlacement
+  { _eC2EC2FleetPlacementAffinity :: Maybe (Val Text)
+  , _eC2EC2FleetPlacementAvailabilityZone :: Maybe (Val Text)
+  , _eC2EC2FleetPlacementGroupName :: Maybe (Val Text)
+  , _eC2EC2FleetPlacementHostId :: Maybe (Val Text)
+  , _eC2EC2FleetPlacementHostResourceGroupArn :: Maybe (Val Text)
+  , _eC2EC2FleetPlacementPartitionNumber :: Maybe (Val Integer)
+  , _eC2EC2FleetPlacementSpreadDomain :: Maybe (Val Text)
+  , _eC2EC2FleetPlacementTenancy :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON EC2EC2FleetPlacement where
+  toJSON EC2EC2FleetPlacement{..} =
+    object $
+    catMaybes
+    [ fmap (("Affinity",) . toJSON) _eC2EC2FleetPlacementAffinity
+    , fmap (("AvailabilityZone",) . toJSON) _eC2EC2FleetPlacementAvailabilityZone
+    , fmap (("GroupName",) . toJSON) _eC2EC2FleetPlacementGroupName
+    , fmap (("HostId",) . toJSON) _eC2EC2FleetPlacementHostId
+    , fmap (("HostResourceGroupArn",) . toJSON) _eC2EC2FleetPlacementHostResourceGroupArn
+    , fmap (("PartitionNumber",) . toJSON) _eC2EC2FleetPlacementPartitionNumber
+    , fmap (("SpreadDomain",) . toJSON) _eC2EC2FleetPlacementSpreadDomain
+    , fmap (("Tenancy",) . toJSON) _eC2EC2FleetPlacementTenancy
+    ]
+
+-- | Constructor for 'EC2EC2FleetPlacement' containing required fields as
+-- arguments.
+ec2EC2FleetPlacement
+  :: EC2EC2FleetPlacement
+ec2EC2FleetPlacement  =
+  EC2EC2FleetPlacement
+  { _eC2EC2FleetPlacementAffinity = Nothing
+  , _eC2EC2FleetPlacementAvailabilityZone = Nothing
+  , _eC2EC2FleetPlacementGroupName = Nothing
+  , _eC2EC2FleetPlacementHostId = Nothing
+  , _eC2EC2FleetPlacementHostResourceGroupArn = Nothing
+  , _eC2EC2FleetPlacementPartitionNumber = Nothing
+  , _eC2EC2FleetPlacementSpreadDomain = Nothing
+  , _eC2EC2FleetPlacementTenancy = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-placement.html#cfn-ec2-ec2fleet-placement-affinity
+ececfpAffinity :: Lens' EC2EC2FleetPlacement (Maybe (Val Text))
+ececfpAffinity = lens _eC2EC2FleetPlacementAffinity (\s a -> s { _eC2EC2FleetPlacementAffinity = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-placement.html#cfn-ec2-ec2fleet-placement-availabilityzone
+ececfpAvailabilityZone :: Lens' EC2EC2FleetPlacement (Maybe (Val Text))
+ececfpAvailabilityZone = lens _eC2EC2FleetPlacementAvailabilityZone (\s a -> s { _eC2EC2FleetPlacementAvailabilityZone = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-placement.html#cfn-ec2-ec2fleet-placement-groupname
+ececfpGroupName :: Lens' EC2EC2FleetPlacement (Maybe (Val Text))
+ececfpGroupName = lens _eC2EC2FleetPlacementGroupName (\s a -> s { _eC2EC2FleetPlacementGroupName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-placement.html#cfn-ec2-ec2fleet-placement-hostid
+ececfpHostId :: Lens' EC2EC2FleetPlacement (Maybe (Val Text))
+ececfpHostId = lens _eC2EC2FleetPlacementHostId (\s a -> s { _eC2EC2FleetPlacementHostId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-placement.html#cfn-ec2-ec2fleet-placement-hostresourcegrouparn
+ececfpHostResourceGroupArn :: Lens' EC2EC2FleetPlacement (Maybe (Val Text))
+ececfpHostResourceGroupArn = lens _eC2EC2FleetPlacementHostResourceGroupArn (\s a -> s { _eC2EC2FleetPlacementHostResourceGroupArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-placement.html#cfn-ec2-ec2fleet-placement-partitionnumber
+ececfpPartitionNumber :: Lens' EC2EC2FleetPlacement (Maybe (Val Integer))
+ececfpPartitionNumber = lens _eC2EC2FleetPlacementPartitionNumber (\s a -> s { _eC2EC2FleetPlacementPartitionNumber = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-placement.html#cfn-ec2-ec2fleet-placement-spreaddomain
+ececfpSpreadDomain :: Lens' EC2EC2FleetPlacement (Maybe (Val Text))
+ececfpSpreadDomain = lens _eC2EC2FleetPlacementSpreadDomain (\s a -> s { _eC2EC2FleetPlacementSpreadDomain = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-placement.html#cfn-ec2-ec2fleet-placement-tenancy
+ececfpTenancy :: Lens' EC2EC2FleetPlacement (Maybe (Val Text))
+ececfpTenancy = lens _eC2EC2FleetPlacementTenancy (\s a -> s { _eC2EC2FleetPlacementTenancy = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetSpotOptionsRequest.hs b/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetSpotOptionsRequest.hs
--- a/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetSpotOptionsRequest.hs
+++ b/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetSpotOptionsRequest.hs
@@ -17,6 +17,10 @@
   { _eC2EC2FleetSpotOptionsRequestAllocationStrategy :: Maybe (Val Text)
   , _eC2EC2FleetSpotOptionsRequestInstanceInterruptionBehavior :: Maybe (Val Text)
   , _eC2EC2FleetSpotOptionsRequestInstancePoolsToUseCount :: Maybe (Val Integer)
+  , _eC2EC2FleetSpotOptionsRequestMaxTotalPrice :: Maybe (Val Text)
+  , _eC2EC2FleetSpotOptionsRequestMinTargetCapacity :: Maybe (Val Integer)
+  , _eC2EC2FleetSpotOptionsRequestSingleAvailabilityZone :: Maybe (Val Bool)
+  , _eC2EC2FleetSpotOptionsRequestSingleInstanceType :: Maybe (Val Bool)
   } deriving (Show, Eq)
 
 instance ToJSON EC2EC2FleetSpotOptionsRequest where
@@ -26,6 +30,10 @@
     [ fmap (("AllocationStrategy",) . toJSON) _eC2EC2FleetSpotOptionsRequestAllocationStrategy
     , fmap (("InstanceInterruptionBehavior",) . toJSON) _eC2EC2FleetSpotOptionsRequestInstanceInterruptionBehavior
     , fmap (("InstancePoolsToUseCount",) . toJSON) _eC2EC2FleetSpotOptionsRequestInstancePoolsToUseCount
+    , fmap (("MaxTotalPrice",) . toJSON) _eC2EC2FleetSpotOptionsRequestMaxTotalPrice
+    , fmap (("MinTargetCapacity",) . toJSON) _eC2EC2FleetSpotOptionsRequestMinTargetCapacity
+    , fmap (("SingleAvailabilityZone",) . toJSON) _eC2EC2FleetSpotOptionsRequestSingleAvailabilityZone
+    , fmap (("SingleInstanceType",) . toJSON) _eC2EC2FleetSpotOptionsRequestSingleInstanceType
     ]
 
 -- | Constructor for 'EC2EC2FleetSpotOptionsRequest' containing required
@@ -37,6 +45,10 @@
   { _eC2EC2FleetSpotOptionsRequestAllocationStrategy = Nothing
   , _eC2EC2FleetSpotOptionsRequestInstanceInterruptionBehavior = Nothing
   , _eC2EC2FleetSpotOptionsRequestInstancePoolsToUseCount = Nothing
+  , _eC2EC2FleetSpotOptionsRequestMaxTotalPrice = Nothing
+  , _eC2EC2FleetSpotOptionsRequestMinTargetCapacity = Nothing
+  , _eC2EC2FleetSpotOptionsRequestSingleAvailabilityZone = Nothing
+  , _eC2EC2FleetSpotOptionsRequestSingleInstanceType = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html#cfn-ec2-ec2fleet-spotoptionsrequest-allocationstrategy
@@ -50,3 +62,19 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html#cfn-ec2-ec2fleet-spotoptionsrequest-instancepoolstousecount
 ececfsorInstancePoolsToUseCount :: Lens' EC2EC2FleetSpotOptionsRequest (Maybe (Val Integer))
 ececfsorInstancePoolsToUseCount = lens _eC2EC2FleetSpotOptionsRequestInstancePoolsToUseCount (\s a -> s { _eC2EC2FleetSpotOptionsRequestInstancePoolsToUseCount = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html#cfn-ec2-ec2fleet-spotoptionsrequest-maxtotalprice
+ececfsorMaxTotalPrice :: Lens' EC2EC2FleetSpotOptionsRequest (Maybe (Val Text))
+ececfsorMaxTotalPrice = lens _eC2EC2FleetSpotOptionsRequestMaxTotalPrice (\s a -> s { _eC2EC2FleetSpotOptionsRequestMaxTotalPrice = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html#cfn-ec2-ec2fleet-spotoptionsrequest-mintargetcapacity
+ececfsorMinTargetCapacity :: Lens' EC2EC2FleetSpotOptionsRequest (Maybe (Val Integer))
+ececfsorMinTargetCapacity = lens _eC2EC2FleetSpotOptionsRequestMinTargetCapacity (\s a -> s { _eC2EC2FleetSpotOptionsRequestMinTargetCapacity = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html#cfn-ec2-ec2fleet-spotoptionsrequest-singleavailabilityzone
+ececfsorSingleAvailabilityZone :: Lens' EC2EC2FleetSpotOptionsRequest (Maybe (Val Bool))
+ececfsorSingleAvailabilityZone = lens _eC2EC2FleetSpotOptionsRequestSingleAvailabilityZone (\s a -> s { _eC2EC2FleetSpotOptionsRequestSingleAvailabilityZone = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html#cfn-ec2-ec2fleet-spotoptionsrequest-singleinstancetype
+ececfsorSingleInstanceType :: Lens' EC2EC2FleetSpotOptionsRequest (Maybe (Val Bool))
+ececfsorSingleInstanceType = lens _eC2EC2FleetSpotOptionsRequestSingleInstanceType (\s a -> s { _eC2EC2FleetSpotOptionsRequestSingleInstanceType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetTagRequest.hs b/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetTagRequest.hs
deleted file mode 100644
--- a/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetTagRequest.hs
+++ /dev/null
@@ -1,45 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE RecordWildCards #-}
-{-# LANGUAGE StrictData #-}
-{-# LANGUAGE TupleSections #-}
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-tagrequest.html
-
-module Stratosphere.ResourceProperties.EC2EC2FleetTagRequest where
-
-import Stratosphere.ResourceImports
-
-
--- | Full data type definition for EC2EC2FleetTagRequest. See
--- 'ec2EC2FleetTagRequest' for a more convenient constructor.
-data EC2EC2FleetTagRequest =
-  EC2EC2FleetTagRequest
-  { _eC2EC2FleetTagRequestKey :: Maybe (Val Text)
-  , _eC2EC2FleetTagRequestValue :: Maybe (Val Text)
-  } deriving (Show, Eq)
-
-instance ToJSON EC2EC2FleetTagRequest where
-  toJSON EC2EC2FleetTagRequest{..} =
-    object $
-    catMaybes
-    [ fmap (("Key",) . toJSON) _eC2EC2FleetTagRequestKey
-    , fmap (("Value",) . toJSON) _eC2EC2FleetTagRequestValue
-    ]
-
--- | Constructor for 'EC2EC2FleetTagRequest' containing required fields as
--- arguments.
-ec2EC2FleetTagRequest
-  :: EC2EC2FleetTagRequest
-ec2EC2FleetTagRequest  =
-  EC2EC2FleetTagRequest
-  { _eC2EC2FleetTagRequestKey = Nothing
-  , _eC2EC2FleetTagRequestValue = Nothing
-  }
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-tagrequest.html#cfn-ec2-ec2fleet-tagrequest-key
-ececftrKey :: Lens' EC2EC2FleetTagRequest (Maybe (Val Text))
-ececftrKey = lens _eC2EC2FleetTagRequestKey (\s a -> s { _eC2EC2FleetTagRequestKey = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-tagrequest.html#cfn-ec2-ec2fleet-tagrequest-value
-ececftrValue :: Lens' EC2EC2FleetTagRequest (Maybe (Val Text))
-ececftrValue = lens _eC2EC2FleetTagRequestValue (\s a -> s { _eC2EC2FleetTagRequestValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetTagSpecification.hs b/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetTagSpecification.hs
--- a/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetTagSpecification.hs
+++ b/library-gen/Stratosphere/ResourceProperties/EC2EC2FleetTagSpecification.hs
@@ -8,14 +8,14 @@
 module Stratosphere.ResourceProperties.EC2EC2FleetTagSpecification where
 
 import Stratosphere.ResourceImports
-import Stratosphere.ResourceProperties.EC2EC2FleetTagRequest
+import Stratosphere.ResourceProperties.Tag
 
 -- | Full data type definition for EC2EC2FleetTagSpecification. See
 -- 'ec2EC2FleetTagSpecification' for a more convenient constructor.
 data EC2EC2FleetTagSpecification =
   EC2EC2FleetTagSpecification
   { _eC2EC2FleetTagSpecificationResourceType :: Maybe (Val Text)
-  , _eC2EC2FleetTagSpecificationTags :: Maybe [EC2EC2FleetTagRequest]
+  , _eC2EC2FleetTagSpecificationTags :: Maybe [Tag]
   } deriving (Show, Eq)
 
 instance ToJSON EC2EC2FleetTagSpecification where
@@ -41,5 +41,5 @@
 ececftsResourceType = lens _eC2EC2FleetTagSpecificationResourceType (\s a -> s { _eC2EC2FleetTagSpecificationResourceType = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-tagspecification.html#cfn-ec2-ec2fleet-tagspecification-tags
-ececftsTags :: Lens' EC2EC2FleetTagSpecification (Maybe [EC2EC2FleetTagRequest])
+ececftsTags :: Lens' EC2EC2FleetTagSpecification (Maybe [Tag])
 ececftsTags = lens _eC2EC2FleetTagSpecificationTags (\s a -> s { _eC2EC2FleetTagSpecificationTags = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ImageBuilderDistributionConfigurationDistribution.hs b/library-gen/Stratosphere/ResourceProperties/ImageBuilderDistributionConfigurationDistribution.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ImageBuilderDistributionConfigurationDistribution.hs
@@ -0,0 +1,54 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html
+
+module Stratosphere.ResourceProperties.ImageBuilderDistributionConfigurationDistribution where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- ImageBuilderDistributionConfigurationDistribution. See
+-- 'imageBuilderDistributionConfigurationDistribution' for a more convenient
+-- constructor.
+data ImageBuilderDistributionConfigurationDistribution =
+  ImageBuilderDistributionConfigurationDistribution
+  { _imageBuilderDistributionConfigurationDistributionAmiDistributionConfiguration :: Maybe Object
+  , _imageBuilderDistributionConfigurationDistributionLicenseConfigurationArns :: Maybe (ValList Text)
+  , _imageBuilderDistributionConfigurationDistributionRegion :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON ImageBuilderDistributionConfigurationDistribution where
+  toJSON ImageBuilderDistributionConfigurationDistribution{..} =
+    object $
+    catMaybes
+    [ fmap (("AmiDistributionConfiguration",) . toJSON) _imageBuilderDistributionConfigurationDistributionAmiDistributionConfiguration
+    , fmap (("LicenseConfigurationArns",) . toJSON) _imageBuilderDistributionConfigurationDistributionLicenseConfigurationArns
+    , fmap (("Region",) . toJSON) _imageBuilderDistributionConfigurationDistributionRegion
+    ]
+
+-- | Constructor for 'ImageBuilderDistributionConfigurationDistribution'
+-- containing required fields as arguments.
+imageBuilderDistributionConfigurationDistribution
+  :: ImageBuilderDistributionConfigurationDistribution
+imageBuilderDistributionConfigurationDistribution  =
+  ImageBuilderDistributionConfigurationDistribution
+  { _imageBuilderDistributionConfigurationDistributionAmiDistributionConfiguration = Nothing
+  , _imageBuilderDistributionConfigurationDistributionLicenseConfigurationArns = Nothing
+  , _imageBuilderDistributionConfigurationDistributionRegion = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html#cfn-imagebuilder-distributionconfiguration-distribution-amidistributionconfiguration
+ibdcdAmiDistributionConfiguration :: Lens' ImageBuilderDistributionConfigurationDistribution (Maybe Object)
+ibdcdAmiDistributionConfiguration = lens _imageBuilderDistributionConfigurationDistributionAmiDistributionConfiguration (\s a -> s { _imageBuilderDistributionConfigurationDistributionAmiDistributionConfiguration = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html#cfn-imagebuilder-distributionconfiguration-distribution-licenseconfigurationarns
+ibdcdLicenseConfigurationArns :: Lens' ImageBuilderDistributionConfigurationDistribution (Maybe (ValList Text))
+ibdcdLicenseConfigurationArns = lens _imageBuilderDistributionConfigurationDistributionLicenseConfigurationArns (\s a -> s { _imageBuilderDistributionConfigurationDistributionLicenseConfigurationArns = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html#cfn-imagebuilder-distributionconfiguration-distribution-region
+ibdcdRegion :: Lens' ImageBuilderDistributionConfigurationDistribution (Maybe (Val Text))
+ibdcdRegion = lens _imageBuilderDistributionConfigurationDistributionRegion (\s a -> s { _imageBuilderDistributionConfigurationDistributionRegion = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ImageBuilderImagePipelineImageTestsConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/ImageBuilderImagePipelineImageTestsConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ImageBuilderImagePipelineImageTestsConfiguration.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagepipeline-imagetestsconfiguration.html
+
+module Stratosphere.ResourceProperties.ImageBuilderImagePipelineImageTestsConfiguration where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- ImageBuilderImagePipelineImageTestsConfiguration. See
+-- 'imageBuilderImagePipelineImageTestsConfiguration' for a more convenient
+-- constructor.
+data ImageBuilderImagePipelineImageTestsConfiguration =
+  ImageBuilderImagePipelineImageTestsConfiguration
+  { _imageBuilderImagePipelineImageTestsConfigurationImageTestsEnabled :: Maybe (Val Bool)
+  , _imageBuilderImagePipelineImageTestsConfigurationTimeoutMinutes :: Maybe (Val Integer)
+  } deriving (Show, Eq)
+
+instance ToJSON ImageBuilderImagePipelineImageTestsConfiguration where
+  toJSON ImageBuilderImagePipelineImageTestsConfiguration{..} =
+    object $
+    catMaybes
+    [ fmap (("ImageTestsEnabled",) . toJSON) _imageBuilderImagePipelineImageTestsConfigurationImageTestsEnabled
+    , fmap (("TimeoutMinutes",) . toJSON) _imageBuilderImagePipelineImageTestsConfigurationTimeoutMinutes
+    ]
+
+-- | Constructor for 'ImageBuilderImagePipelineImageTestsConfiguration'
+-- containing required fields as arguments.
+imageBuilderImagePipelineImageTestsConfiguration
+  :: ImageBuilderImagePipelineImageTestsConfiguration
+imageBuilderImagePipelineImageTestsConfiguration  =
+  ImageBuilderImagePipelineImageTestsConfiguration
+  { _imageBuilderImagePipelineImageTestsConfigurationImageTestsEnabled = Nothing
+  , _imageBuilderImagePipelineImageTestsConfigurationTimeoutMinutes = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagepipeline-imagetestsconfiguration.html#cfn-imagebuilder-imagepipeline-imagetestsconfiguration-imagetestsenabled
+ibipitcImageTestsEnabled :: Lens' ImageBuilderImagePipelineImageTestsConfiguration (Maybe (Val Bool))
+ibipitcImageTestsEnabled = lens _imageBuilderImagePipelineImageTestsConfigurationImageTestsEnabled (\s a -> s { _imageBuilderImagePipelineImageTestsConfigurationImageTestsEnabled = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagepipeline-imagetestsconfiguration.html#cfn-imagebuilder-imagepipeline-imagetestsconfiguration-timeoutminutes
+ibipitcTimeoutMinutes :: Lens' ImageBuilderImagePipelineImageTestsConfiguration (Maybe (Val Integer))
+ibipitcTimeoutMinutes = lens _imageBuilderImagePipelineImageTestsConfigurationTimeoutMinutes (\s a -> s { _imageBuilderImagePipelineImageTestsConfigurationTimeoutMinutes = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ImageBuilderImagePipelineSchedule.hs b/library-gen/Stratosphere/ResourceProperties/ImageBuilderImagePipelineSchedule.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ImageBuilderImagePipelineSchedule.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagepipeline-schedule.html
+
+module Stratosphere.ResourceProperties.ImageBuilderImagePipelineSchedule where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for ImageBuilderImagePipelineSchedule. See
+-- 'imageBuilderImagePipelineSchedule' for a more convenient constructor.
+data ImageBuilderImagePipelineSchedule =
+  ImageBuilderImagePipelineSchedule
+  { _imageBuilderImagePipelineSchedulePipelineExecutionStartCondition :: Maybe (Val Text)
+  , _imageBuilderImagePipelineScheduleScheduleExpression :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON ImageBuilderImagePipelineSchedule where
+  toJSON ImageBuilderImagePipelineSchedule{..} =
+    object $
+    catMaybes
+    [ fmap (("PipelineExecutionStartCondition",) . toJSON) _imageBuilderImagePipelineSchedulePipelineExecutionStartCondition
+    , fmap (("ScheduleExpression",) . toJSON) _imageBuilderImagePipelineScheduleScheduleExpression
+    ]
+
+-- | Constructor for 'ImageBuilderImagePipelineSchedule' containing required
+-- fields as arguments.
+imageBuilderImagePipelineSchedule
+  :: ImageBuilderImagePipelineSchedule
+imageBuilderImagePipelineSchedule  =
+  ImageBuilderImagePipelineSchedule
+  { _imageBuilderImagePipelineSchedulePipelineExecutionStartCondition = Nothing
+  , _imageBuilderImagePipelineScheduleScheduleExpression = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagepipeline-schedule.html#cfn-imagebuilder-imagepipeline-schedule-pipelineexecutionstartcondition
+ibipsPipelineExecutionStartCondition :: Lens' ImageBuilderImagePipelineSchedule (Maybe (Val Text))
+ibipsPipelineExecutionStartCondition = lens _imageBuilderImagePipelineSchedulePipelineExecutionStartCondition (\s a -> s { _imageBuilderImagePipelineSchedulePipelineExecutionStartCondition = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagepipeline-schedule.html#cfn-imagebuilder-imagepipeline-schedule-scheduleexpression
+ibipsScheduleExpression :: Lens' ImageBuilderImagePipelineSchedule (Maybe (Val Text))
+ibipsScheduleExpression = lens _imageBuilderImagePipelineScheduleScheduleExpression (\s a -> s { _imageBuilderImagePipelineScheduleScheduleExpression = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ImageBuilderImageRecipeComponentConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/ImageBuilderImageRecipeComponentConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ImageBuilderImageRecipeComponentConfiguration.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-componentconfiguration.html
+
+module Stratosphere.ResourceProperties.ImageBuilderImageRecipeComponentConfiguration where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- ImageBuilderImageRecipeComponentConfiguration. See
+-- 'imageBuilderImageRecipeComponentConfiguration' for a more convenient
+-- constructor.
+data ImageBuilderImageRecipeComponentConfiguration =
+  ImageBuilderImageRecipeComponentConfiguration
+  { _imageBuilderImageRecipeComponentConfigurationComponentArn :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON ImageBuilderImageRecipeComponentConfiguration where
+  toJSON ImageBuilderImageRecipeComponentConfiguration{..} =
+    object $
+    catMaybes
+    [ fmap (("ComponentArn",) . toJSON) _imageBuilderImageRecipeComponentConfigurationComponentArn
+    ]
+
+-- | Constructor for 'ImageBuilderImageRecipeComponentConfiguration'
+-- containing required fields as arguments.
+imageBuilderImageRecipeComponentConfiguration
+  :: ImageBuilderImageRecipeComponentConfiguration
+imageBuilderImageRecipeComponentConfiguration  =
+  ImageBuilderImageRecipeComponentConfiguration
+  { _imageBuilderImageRecipeComponentConfigurationComponentArn = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-componentconfiguration.html#cfn-imagebuilder-imagerecipe-componentconfiguration-componentarn
+ibirccComponentArn :: Lens' ImageBuilderImageRecipeComponentConfiguration (Maybe (Val Text))
+ibirccComponentArn = lens _imageBuilderImageRecipeComponentConfigurationComponentArn (\s a -> s { _imageBuilderImageRecipeComponentConfigurationComponentArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification.hs b/library-gen/Stratosphere/ResourceProperties/ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification.hs
@@ -0,0 +1,83 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html
+
+module Stratosphere.ResourceProperties.ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification. See
+-- 'imageBuilderImageRecipeEbsInstanceBlockDeviceSpecification' for a more
+-- convenient constructor.
+data ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification =
+  ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification
+  { _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationDeleteOnTermination :: Maybe (Val Bool)
+  , _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationEncrypted :: Maybe (Val Bool)
+  , _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationIops :: Maybe (Val Integer)
+  , _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationKmsKeyId :: Maybe (Val Text)
+  , _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationSnapshotId :: Maybe (Val Text)
+  , _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationVolumeSize :: Maybe (Val Integer)
+  , _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationVolumeType :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification where
+  toJSON ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification{..} =
+    object $
+    catMaybes
+    [ fmap (("DeleteOnTermination",) . toJSON) _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationDeleteOnTermination
+    , fmap (("Encrypted",) . toJSON) _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationEncrypted
+    , fmap (("Iops",) . toJSON) _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationIops
+    , fmap (("KmsKeyId",) . toJSON) _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationKmsKeyId
+    , fmap (("SnapshotId",) . toJSON) _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationSnapshotId
+    , fmap (("VolumeSize",) . toJSON) _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationVolumeSize
+    , fmap (("VolumeType",) . toJSON) _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationVolumeType
+    ]
+
+-- | Constructor for
+-- 'ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification' containing
+-- required fields as arguments.
+imageBuilderImageRecipeEbsInstanceBlockDeviceSpecification
+  :: ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification
+imageBuilderImageRecipeEbsInstanceBlockDeviceSpecification  =
+  ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification
+  { _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationDeleteOnTermination = Nothing
+  , _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationEncrypted = Nothing
+  , _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationIops = Nothing
+  , _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationKmsKeyId = Nothing
+  , _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationSnapshotId = Nothing
+  , _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationVolumeSize = Nothing
+  , _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationVolumeType = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-deleteontermination
+ibireibdsDeleteOnTermination :: Lens' ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification (Maybe (Val Bool))
+ibireibdsDeleteOnTermination = lens _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationDeleteOnTermination (\s a -> s { _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationDeleteOnTermination = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-encrypted
+ibireibdsEncrypted :: Lens' ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification (Maybe (Val Bool))
+ibireibdsEncrypted = lens _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationEncrypted (\s a -> s { _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationEncrypted = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-iops
+ibireibdsIops :: Lens' ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification (Maybe (Val Integer))
+ibireibdsIops = lens _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationIops (\s a -> s { _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationIops = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-kmskeyid
+ibireibdsKmsKeyId :: Lens' ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification (Maybe (Val Text))
+ibireibdsKmsKeyId = lens _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationKmsKeyId (\s a -> s { _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationKmsKeyId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-snapshotid
+ibireibdsSnapshotId :: Lens' ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification (Maybe (Val Text))
+ibireibdsSnapshotId = lens _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationSnapshotId (\s a -> s { _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationSnapshotId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-volumesize
+ibireibdsVolumeSize :: Lens' ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification (Maybe (Val Integer))
+ibireibdsVolumeSize = lens _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationVolumeSize (\s a -> s { _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationVolumeSize = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-volumetype
+ibireibdsVolumeType :: Lens' ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification (Maybe (Val Text))
+ibireibdsVolumeType = lens _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationVolumeType (\s a -> s { _imageBuilderImageRecipeEbsInstanceBlockDeviceSpecificationVolumeType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ImageBuilderImageRecipeInstanceBlockDeviceMapping.hs b/library-gen/Stratosphere/ResourceProperties/ImageBuilderImageRecipeInstanceBlockDeviceMapping.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ImageBuilderImageRecipeInstanceBlockDeviceMapping.hs
@@ -0,0 +1,61 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping.html
+
+module Stratosphere.ResourceProperties.ImageBuilderImageRecipeInstanceBlockDeviceMapping where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification
+
+-- | Full data type definition for
+-- ImageBuilderImageRecipeInstanceBlockDeviceMapping. See
+-- 'imageBuilderImageRecipeInstanceBlockDeviceMapping' for a more convenient
+-- constructor.
+data ImageBuilderImageRecipeInstanceBlockDeviceMapping =
+  ImageBuilderImageRecipeInstanceBlockDeviceMapping
+  { _imageBuilderImageRecipeInstanceBlockDeviceMappingDeviceName :: Maybe (Val Text)
+  , _imageBuilderImageRecipeInstanceBlockDeviceMappingEbs :: Maybe ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification
+  , _imageBuilderImageRecipeInstanceBlockDeviceMappingNoDevice :: Maybe (Val Text)
+  , _imageBuilderImageRecipeInstanceBlockDeviceMappingVirtualName :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON ImageBuilderImageRecipeInstanceBlockDeviceMapping where
+  toJSON ImageBuilderImageRecipeInstanceBlockDeviceMapping{..} =
+    object $
+    catMaybes
+    [ fmap (("DeviceName",) . toJSON) _imageBuilderImageRecipeInstanceBlockDeviceMappingDeviceName
+    , fmap (("Ebs",) . toJSON) _imageBuilderImageRecipeInstanceBlockDeviceMappingEbs
+    , fmap (("NoDevice",) . toJSON) _imageBuilderImageRecipeInstanceBlockDeviceMappingNoDevice
+    , fmap (("VirtualName",) . toJSON) _imageBuilderImageRecipeInstanceBlockDeviceMappingVirtualName
+    ]
+
+-- | Constructor for 'ImageBuilderImageRecipeInstanceBlockDeviceMapping'
+-- containing required fields as arguments.
+imageBuilderImageRecipeInstanceBlockDeviceMapping
+  :: ImageBuilderImageRecipeInstanceBlockDeviceMapping
+imageBuilderImageRecipeInstanceBlockDeviceMapping  =
+  ImageBuilderImageRecipeInstanceBlockDeviceMapping
+  { _imageBuilderImageRecipeInstanceBlockDeviceMappingDeviceName = Nothing
+  , _imageBuilderImageRecipeInstanceBlockDeviceMappingEbs = Nothing
+  , _imageBuilderImageRecipeInstanceBlockDeviceMappingNoDevice = Nothing
+  , _imageBuilderImageRecipeInstanceBlockDeviceMappingVirtualName = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping.html#cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-devicename
+ibiribdmDeviceName :: Lens' ImageBuilderImageRecipeInstanceBlockDeviceMapping (Maybe (Val Text))
+ibiribdmDeviceName = lens _imageBuilderImageRecipeInstanceBlockDeviceMappingDeviceName (\s a -> s { _imageBuilderImageRecipeInstanceBlockDeviceMappingDeviceName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping.html#cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-ebs
+ibiribdmEbs :: Lens' ImageBuilderImageRecipeInstanceBlockDeviceMapping (Maybe ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification)
+ibiribdmEbs = lens _imageBuilderImageRecipeInstanceBlockDeviceMappingEbs (\s a -> s { _imageBuilderImageRecipeInstanceBlockDeviceMappingEbs = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping.html#cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-nodevice
+ibiribdmNoDevice :: Lens' ImageBuilderImageRecipeInstanceBlockDeviceMapping (Maybe (Val Text))
+ibiribdmNoDevice = lens _imageBuilderImageRecipeInstanceBlockDeviceMappingNoDevice (\s a -> s { _imageBuilderImageRecipeInstanceBlockDeviceMappingNoDevice = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping.html#cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-virtualname
+ibiribdmVirtualName :: Lens' ImageBuilderImageRecipeInstanceBlockDeviceMapping (Maybe (Val Text))
+ibiribdmVirtualName = lens _imageBuilderImageRecipeInstanceBlockDeviceMappingVirtualName (\s a -> s { _imageBuilderImageRecipeInstanceBlockDeviceMappingVirtualName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ImageBuilderInfrastructureConfigurationLogging.hs b/library-gen/Stratosphere/ResourceProperties/ImageBuilderInfrastructureConfigurationLogging.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ImageBuilderInfrastructureConfigurationLogging.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-logging.html
+
+module Stratosphere.ResourceProperties.ImageBuilderInfrastructureConfigurationLogging where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.ImageBuilderInfrastructureConfigurationS3Logs
+
+-- | Full data type definition for
+-- ImageBuilderInfrastructureConfigurationLogging. See
+-- 'imageBuilderInfrastructureConfigurationLogging' for a more convenient
+-- constructor.
+data ImageBuilderInfrastructureConfigurationLogging =
+  ImageBuilderInfrastructureConfigurationLogging
+  { _imageBuilderInfrastructureConfigurationLoggingS3Logs :: Maybe ImageBuilderInfrastructureConfigurationS3Logs
+  } deriving (Show, Eq)
+
+instance ToJSON ImageBuilderInfrastructureConfigurationLogging where
+  toJSON ImageBuilderInfrastructureConfigurationLogging{..} =
+    object $
+    catMaybes
+    [ fmap (("S3Logs",) . toJSON) _imageBuilderInfrastructureConfigurationLoggingS3Logs
+    ]
+
+-- | Constructor for 'ImageBuilderInfrastructureConfigurationLogging'
+-- containing required fields as arguments.
+imageBuilderInfrastructureConfigurationLogging
+  :: ImageBuilderInfrastructureConfigurationLogging
+imageBuilderInfrastructureConfigurationLogging  =
+  ImageBuilderInfrastructureConfigurationLogging
+  { _imageBuilderInfrastructureConfigurationLoggingS3Logs = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-logging.html#cfn-imagebuilder-infrastructureconfiguration-logging-s3logs
+ibiclS3Logs :: Lens' ImageBuilderInfrastructureConfigurationLogging (Maybe ImageBuilderInfrastructureConfigurationS3Logs)
+ibiclS3Logs = lens _imageBuilderInfrastructureConfigurationLoggingS3Logs (\s a -> s { _imageBuilderInfrastructureConfigurationLoggingS3Logs = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ImageBuilderInfrastructureConfigurationS3Logs.hs b/library-gen/Stratosphere/ResourceProperties/ImageBuilderInfrastructureConfigurationS3Logs.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ImageBuilderInfrastructureConfigurationS3Logs.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-s3logs.html
+
+module Stratosphere.ResourceProperties.ImageBuilderInfrastructureConfigurationS3Logs where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- ImageBuilderInfrastructureConfigurationS3Logs. See
+-- 'imageBuilderInfrastructureConfigurationS3Logs' for a more convenient
+-- constructor.
+data ImageBuilderInfrastructureConfigurationS3Logs =
+  ImageBuilderInfrastructureConfigurationS3Logs
+  { _imageBuilderInfrastructureConfigurationS3LogsS3BucketName :: Maybe (Val Text)
+  , _imageBuilderInfrastructureConfigurationS3LogsS3KeyPrefix :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON ImageBuilderInfrastructureConfigurationS3Logs where
+  toJSON ImageBuilderInfrastructureConfigurationS3Logs{..} =
+    object $
+    catMaybes
+    [ fmap (("S3BucketName",) . toJSON) _imageBuilderInfrastructureConfigurationS3LogsS3BucketName
+    , fmap (("S3KeyPrefix",) . toJSON) _imageBuilderInfrastructureConfigurationS3LogsS3KeyPrefix
+    ]
+
+-- | Constructor for 'ImageBuilderInfrastructureConfigurationS3Logs'
+-- containing required fields as arguments.
+imageBuilderInfrastructureConfigurationS3Logs
+  :: ImageBuilderInfrastructureConfigurationS3Logs
+imageBuilderInfrastructureConfigurationS3Logs  =
+  ImageBuilderInfrastructureConfigurationS3Logs
+  { _imageBuilderInfrastructureConfigurationS3LogsS3BucketName = Nothing
+  , _imageBuilderInfrastructureConfigurationS3LogsS3KeyPrefix = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-s3logs.html#cfn-imagebuilder-infrastructureconfiguration-s3logs-s3bucketname
+ibicslS3BucketName :: Lens' ImageBuilderInfrastructureConfigurationS3Logs (Maybe (Val Text))
+ibicslS3BucketName = lens _imageBuilderInfrastructureConfigurationS3LogsS3BucketName (\s a -> s { _imageBuilderInfrastructureConfigurationS3LogsS3BucketName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-s3logs.html#cfn-imagebuilder-infrastructureconfiguration-s3logs-s3keyprefix
+ibicslS3KeyPrefix :: Lens' ImageBuilderInfrastructureConfigurationS3Logs (Maybe (Val Text))
+ibicslS3KeyPrefix = lens _imageBuilderInfrastructureConfigurationS3LogsS3KeyPrefix (\s a -> s { _imageBuilderInfrastructureConfigurationS3LogsS3KeyPrefix = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTEventsDetectorModelSetTimer.hs b/library-gen/Stratosphere/ResourceProperties/IoTEventsDetectorModelSetTimer.hs
--- a/library-gen/Stratosphere/ResourceProperties/IoTEventsDetectorModelSetTimer.hs
+++ b/library-gen/Stratosphere/ResourceProperties/IoTEventsDetectorModelSetTimer.hs
@@ -14,7 +14,8 @@
 -- 'ioTEventsDetectorModelSetTimer' for a more convenient constructor.
 data IoTEventsDetectorModelSetTimer =
   IoTEventsDetectorModelSetTimer
-  { _ioTEventsDetectorModelSetTimerSeconds :: Maybe (Val Integer)
+  { _ioTEventsDetectorModelSetTimerDurationExpression :: Maybe (Val Text)
+  , _ioTEventsDetectorModelSetTimerSeconds :: Maybe (Val Integer)
   , _ioTEventsDetectorModelSetTimerTimerName :: Maybe (Val Text)
   } deriving (Show, Eq)
 
@@ -22,7 +23,8 @@
   toJSON IoTEventsDetectorModelSetTimer{..} =
     object $
     catMaybes
-    [ fmap (("Seconds",) . toJSON) _ioTEventsDetectorModelSetTimerSeconds
+    [ fmap (("DurationExpression",) . toJSON) _ioTEventsDetectorModelSetTimerDurationExpression
+    , fmap (("Seconds",) . toJSON) _ioTEventsDetectorModelSetTimerSeconds
     , fmap (("TimerName",) . toJSON) _ioTEventsDetectorModelSetTimerTimerName
     ]
 
@@ -32,9 +34,14 @@
   :: IoTEventsDetectorModelSetTimer
 ioTEventsDetectorModelSetTimer  =
   IoTEventsDetectorModelSetTimer
-  { _ioTEventsDetectorModelSetTimerSeconds = Nothing
+  { _ioTEventsDetectorModelSetTimerDurationExpression = Nothing
+  , _ioTEventsDetectorModelSetTimerSeconds = Nothing
   , _ioTEventsDetectorModelSetTimerTimerName = Nothing
   }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-settimer.html#cfn-iotevents-detectormodel-settimer-durationexpression
+itedmstDurationExpression :: Lens' IoTEventsDetectorModelSetTimer (Maybe (Val Text))
+itedmstDurationExpression = lens _ioTEventsDetectorModelSetTimerDurationExpression (\s a -> s { _ioTEventsDetectorModelSetTimerDurationExpression = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-settimer.html#cfn-iotevents-detectormodel-settimer-seconds
 itedmstSeconds :: Lens' IoTEventsDetectorModelSetTimer (Maybe (Val Integer))
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleAction.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleAction.hs
--- a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleAction.hs
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleAction.hs
@@ -14,7 +14,10 @@
 import Stratosphere.ResourceProperties.IoTTopicRuleDynamoDBV2Action
 import Stratosphere.ResourceProperties.IoTTopicRuleElasticsearchAction
 import Stratosphere.ResourceProperties.IoTTopicRuleFirehoseAction
+import Stratosphere.ResourceProperties.IoTTopicRuleHttpAction
 import Stratosphere.ResourceProperties.IoTTopicRuleIotAnalyticsAction
+import Stratosphere.ResourceProperties.IoTTopicRuleIotEventsAction
+import Stratosphere.ResourceProperties.IoTTopicRuleIotSiteWiseAction
 import Stratosphere.ResourceProperties.IoTTopicRuleKinesisAction
 import Stratosphere.ResourceProperties.IoTTopicRuleLambdaAction
 import Stratosphere.ResourceProperties.IoTTopicRuleRepublishAction
@@ -33,7 +36,10 @@
   , _ioTTopicRuleActionDynamoDBv2 :: Maybe IoTTopicRuleDynamoDBV2Action
   , _ioTTopicRuleActionElasticsearch :: Maybe IoTTopicRuleElasticsearchAction
   , _ioTTopicRuleActionFirehose :: Maybe IoTTopicRuleFirehoseAction
+  , _ioTTopicRuleActionHttp :: Maybe IoTTopicRuleHttpAction
   , _ioTTopicRuleActionIotAnalytics :: Maybe IoTTopicRuleIotAnalyticsAction
+  , _ioTTopicRuleActionIotEvents :: Maybe IoTTopicRuleIotEventsAction
+  , _ioTTopicRuleActionIotSiteWise :: Maybe IoTTopicRuleIotSiteWiseAction
   , _ioTTopicRuleActionKinesis :: Maybe IoTTopicRuleKinesisAction
   , _ioTTopicRuleActionLambda :: Maybe IoTTopicRuleLambdaAction
   , _ioTTopicRuleActionRepublish :: Maybe IoTTopicRuleRepublishAction
@@ -53,7 +59,10 @@
     , fmap (("DynamoDBv2",) . toJSON) _ioTTopicRuleActionDynamoDBv2
     , fmap (("Elasticsearch",) . toJSON) _ioTTopicRuleActionElasticsearch
     , fmap (("Firehose",) . toJSON) _ioTTopicRuleActionFirehose
+    , fmap (("Http",) . toJSON) _ioTTopicRuleActionHttp
     , fmap (("IotAnalytics",) . toJSON) _ioTTopicRuleActionIotAnalytics
+    , fmap (("IotEvents",) . toJSON) _ioTTopicRuleActionIotEvents
+    , fmap (("IotSiteWise",) . toJSON) _ioTTopicRuleActionIotSiteWise
     , fmap (("Kinesis",) . toJSON) _ioTTopicRuleActionKinesis
     , fmap (("Lambda",) . toJSON) _ioTTopicRuleActionLambda
     , fmap (("Republish",) . toJSON) _ioTTopicRuleActionRepublish
@@ -75,7 +84,10 @@
   , _ioTTopicRuleActionDynamoDBv2 = Nothing
   , _ioTTopicRuleActionElasticsearch = Nothing
   , _ioTTopicRuleActionFirehose = Nothing
+  , _ioTTopicRuleActionHttp = Nothing
   , _ioTTopicRuleActionIotAnalytics = Nothing
+  , _ioTTopicRuleActionIotEvents = Nothing
+  , _ioTTopicRuleActionIotSiteWise = Nothing
   , _ioTTopicRuleActionKinesis = Nothing
   , _ioTTopicRuleActionLambda = Nothing
   , _ioTTopicRuleActionRepublish = Nothing
@@ -109,9 +121,21 @@
 ittraFirehose :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleFirehoseAction)
 ittraFirehose = lens _ioTTopicRuleActionFirehose (\s a -> s { _ioTTopicRuleActionFirehose = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-http
+ittraHttp :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleHttpAction)
+ittraHttp = lens _ioTTopicRuleActionHttp (\s a -> s { _ioTTopicRuleActionHttp = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-iotanalytics
 ittraIotAnalytics :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleIotAnalyticsAction)
 ittraIotAnalytics = lens _ioTTopicRuleActionIotAnalytics (\s a -> s { _ioTTopicRuleActionIotAnalytics = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-iotevents
+ittraIotEvents :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleIotEventsAction)
+ittraIotEvents = lens _ioTTopicRuleActionIotEvents (\s a -> s { _ioTTopicRuleActionIotEvents = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-iotsitewise
+ittraIotSiteWise :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleIotSiteWiseAction)
+ittraIotSiteWise = lens _ioTTopicRuleActionIotSiteWise (\s a -> s { _ioTTopicRuleActionIotSiteWise = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-kinesis
 ittraKinesis :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleKinesisAction)
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleAssetPropertyTimestamp.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleAssetPropertyTimestamp.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleAssetPropertyTimestamp.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertytimestamp.html
+
+module Stratosphere.ResourceProperties.IoTTopicRuleAssetPropertyTimestamp where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for IoTTopicRuleAssetPropertyTimestamp. See
+-- 'ioTTopicRuleAssetPropertyTimestamp' for a more convenient constructor.
+data IoTTopicRuleAssetPropertyTimestamp =
+  IoTTopicRuleAssetPropertyTimestamp
+  { _ioTTopicRuleAssetPropertyTimestampOffsetInNanos :: Maybe (Val Text)
+  , _ioTTopicRuleAssetPropertyTimestampTimeInSeconds :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON IoTTopicRuleAssetPropertyTimestamp where
+  toJSON IoTTopicRuleAssetPropertyTimestamp{..} =
+    object $
+    catMaybes
+    [ fmap (("OffsetInNanos",) . toJSON) _ioTTopicRuleAssetPropertyTimestampOffsetInNanos
+    , (Just . ("TimeInSeconds",) . toJSON) _ioTTopicRuleAssetPropertyTimestampTimeInSeconds
+    ]
+
+-- | Constructor for 'IoTTopicRuleAssetPropertyTimestamp' containing required
+-- fields as arguments.
+ioTTopicRuleAssetPropertyTimestamp
+  :: Val Text -- ^ 'ittraptTimeInSeconds'
+  -> IoTTopicRuleAssetPropertyTimestamp
+ioTTopicRuleAssetPropertyTimestamp timeInSecondsarg =
+  IoTTopicRuleAssetPropertyTimestamp
+  { _ioTTopicRuleAssetPropertyTimestampOffsetInNanos = Nothing
+  , _ioTTopicRuleAssetPropertyTimestampTimeInSeconds = timeInSecondsarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertytimestamp.html#cfn-iot-topicrule-assetpropertytimestamp-offsetinnanos
+ittraptOffsetInNanos :: Lens' IoTTopicRuleAssetPropertyTimestamp (Maybe (Val Text))
+ittraptOffsetInNanos = lens _ioTTopicRuleAssetPropertyTimestampOffsetInNanos (\s a -> s { _ioTTopicRuleAssetPropertyTimestampOffsetInNanos = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertytimestamp.html#cfn-iot-topicrule-assetpropertytimestamp-timeinseconds
+ittraptTimeInSeconds :: Lens' IoTTopicRuleAssetPropertyTimestamp (Val Text)
+ittraptTimeInSeconds = lens _ioTTopicRuleAssetPropertyTimestampTimeInSeconds (\s a -> s { _ioTTopicRuleAssetPropertyTimestampTimeInSeconds = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleAssetPropertyValue.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleAssetPropertyValue.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleAssetPropertyValue.hs
@@ -0,0 +1,55 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvalue.html
+
+module Stratosphere.ResourceProperties.IoTTopicRuleAssetPropertyValue where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.IoTTopicRuleAssetPropertyTimestamp
+import Stratosphere.ResourceProperties.IoTTopicRuleAssetPropertyVariant
+
+-- | Full data type definition for IoTTopicRuleAssetPropertyValue. See
+-- 'ioTTopicRuleAssetPropertyValue' for a more convenient constructor.
+data IoTTopicRuleAssetPropertyValue =
+  IoTTopicRuleAssetPropertyValue
+  { _ioTTopicRuleAssetPropertyValueQuality :: Maybe (Val Text)
+  , _ioTTopicRuleAssetPropertyValueTimestamp :: IoTTopicRuleAssetPropertyTimestamp
+  , _ioTTopicRuleAssetPropertyValueValue :: IoTTopicRuleAssetPropertyVariant
+  } deriving (Show, Eq)
+
+instance ToJSON IoTTopicRuleAssetPropertyValue where
+  toJSON IoTTopicRuleAssetPropertyValue{..} =
+    object $
+    catMaybes
+    [ fmap (("Quality",) . toJSON) _ioTTopicRuleAssetPropertyValueQuality
+    , (Just . ("Timestamp",) . toJSON) _ioTTopicRuleAssetPropertyValueTimestamp
+    , (Just . ("Value",) . toJSON) _ioTTopicRuleAssetPropertyValueValue
+    ]
+
+-- | Constructor for 'IoTTopicRuleAssetPropertyValue' containing required
+-- fields as arguments.
+ioTTopicRuleAssetPropertyValue
+  :: IoTTopicRuleAssetPropertyTimestamp -- ^ 'ittrapvTimestamp'
+  -> IoTTopicRuleAssetPropertyVariant -- ^ 'ittrapvValue'
+  -> IoTTopicRuleAssetPropertyValue
+ioTTopicRuleAssetPropertyValue timestamparg valuearg =
+  IoTTopicRuleAssetPropertyValue
+  { _ioTTopicRuleAssetPropertyValueQuality = Nothing
+  , _ioTTopicRuleAssetPropertyValueTimestamp = timestamparg
+  , _ioTTopicRuleAssetPropertyValueValue = valuearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvalue.html#cfn-iot-topicrule-assetpropertyvalue-quality
+ittrapvQuality :: Lens' IoTTopicRuleAssetPropertyValue (Maybe (Val Text))
+ittrapvQuality = lens _ioTTopicRuleAssetPropertyValueQuality (\s a -> s { _ioTTopicRuleAssetPropertyValueQuality = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvalue.html#cfn-iot-topicrule-assetpropertyvalue-timestamp
+ittrapvTimestamp :: Lens' IoTTopicRuleAssetPropertyValue IoTTopicRuleAssetPropertyTimestamp
+ittrapvTimestamp = lens _ioTTopicRuleAssetPropertyValueTimestamp (\s a -> s { _ioTTopicRuleAssetPropertyValueTimestamp = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvalue.html#cfn-iot-topicrule-assetpropertyvalue-value
+ittrapvValue :: Lens' IoTTopicRuleAssetPropertyValue IoTTopicRuleAssetPropertyVariant
+ittrapvValue = lens _ioTTopicRuleAssetPropertyValueValue (\s a -> s { _ioTTopicRuleAssetPropertyValueValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleAssetPropertyVariant.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleAssetPropertyVariant.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleAssetPropertyVariant.hs
@@ -0,0 +1,59 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvariant.html
+
+module Stratosphere.ResourceProperties.IoTTopicRuleAssetPropertyVariant where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for IoTTopicRuleAssetPropertyVariant. See
+-- 'ioTTopicRuleAssetPropertyVariant' for a more convenient constructor.
+data IoTTopicRuleAssetPropertyVariant =
+  IoTTopicRuleAssetPropertyVariant
+  { _ioTTopicRuleAssetPropertyVariantBooleanValue :: Maybe (Val Text)
+  , _ioTTopicRuleAssetPropertyVariantDoubleValue :: Maybe (Val Text)
+  , _ioTTopicRuleAssetPropertyVariantIntegerValue :: Maybe (Val Text)
+  , _ioTTopicRuleAssetPropertyVariantStringValue :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON IoTTopicRuleAssetPropertyVariant where
+  toJSON IoTTopicRuleAssetPropertyVariant{..} =
+    object $
+    catMaybes
+    [ fmap (("BooleanValue",) . toJSON) _ioTTopicRuleAssetPropertyVariantBooleanValue
+    , fmap (("DoubleValue",) . toJSON) _ioTTopicRuleAssetPropertyVariantDoubleValue
+    , fmap (("IntegerValue",) . toJSON) _ioTTopicRuleAssetPropertyVariantIntegerValue
+    , fmap (("StringValue",) . toJSON) _ioTTopicRuleAssetPropertyVariantStringValue
+    ]
+
+-- | Constructor for 'IoTTopicRuleAssetPropertyVariant' containing required
+-- fields as arguments.
+ioTTopicRuleAssetPropertyVariant
+  :: IoTTopicRuleAssetPropertyVariant
+ioTTopicRuleAssetPropertyVariant  =
+  IoTTopicRuleAssetPropertyVariant
+  { _ioTTopicRuleAssetPropertyVariantBooleanValue = Nothing
+  , _ioTTopicRuleAssetPropertyVariantDoubleValue = Nothing
+  , _ioTTopicRuleAssetPropertyVariantIntegerValue = Nothing
+  , _ioTTopicRuleAssetPropertyVariantStringValue = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvariant.html#cfn-iot-topicrule-assetpropertyvariant-booleanvalue
+ittrapvBooleanValue :: Lens' IoTTopicRuleAssetPropertyVariant (Maybe (Val Text))
+ittrapvBooleanValue = lens _ioTTopicRuleAssetPropertyVariantBooleanValue (\s a -> s { _ioTTopicRuleAssetPropertyVariantBooleanValue = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvariant.html#cfn-iot-topicrule-assetpropertyvariant-doublevalue
+ittrapvDoubleValue :: Lens' IoTTopicRuleAssetPropertyVariant (Maybe (Val Text))
+ittrapvDoubleValue = lens _ioTTopicRuleAssetPropertyVariantDoubleValue (\s a -> s { _ioTTopicRuleAssetPropertyVariantDoubleValue = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvariant.html#cfn-iot-topicrule-assetpropertyvariant-integervalue
+ittrapvIntegerValue :: Lens' IoTTopicRuleAssetPropertyVariant (Maybe (Val Text))
+ittrapvIntegerValue = lens _ioTTopicRuleAssetPropertyVariantIntegerValue (\s a -> s { _ioTTopicRuleAssetPropertyVariantIntegerValue = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvariant.html#cfn-iot-topicrule-assetpropertyvariant-stringvalue
+ittrapvStringValue :: Lens' IoTTopicRuleAssetPropertyVariant (Maybe (Val Text))
+ittrapvStringValue = lens _ioTTopicRuleAssetPropertyVariantStringValue (\s a -> s { _ioTTopicRuleAssetPropertyVariantStringValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleHttpAction.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleHttpAction.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleHttpAction.hs
@@ -0,0 +1,61 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpaction.html
+
+module Stratosphere.ResourceProperties.IoTTopicRuleHttpAction where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.IoTTopicRuleHttpAuthorization
+import Stratosphere.ResourceProperties.IoTTopicRuleHttpActionHeader
+
+-- | Full data type definition for IoTTopicRuleHttpAction. See
+-- 'ioTTopicRuleHttpAction' for a more convenient constructor.
+data IoTTopicRuleHttpAction =
+  IoTTopicRuleHttpAction
+  { _ioTTopicRuleHttpActionAuth :: Maybe IoTTopicRuleHttpAuthorization
+  , _ioTTopicRuleHttpActionConfirmationUrl :: Maybe (Val Text)
+  , _ioTTopicRuleHttpActionHeaders :: Maybe [IoTTopicRuleHttpActionHeader]
+  , _ioTTopicRuleHttpActionUrl :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON IoTTopicRuleHttpAction where
+  toJSON IoTTopicRuleHttpAction{..} =
+    object $
+    catMaybes
+    [ fmap (("Auth",) . toJSON) _ioTTopicRuleHttpActionAuth
+    , fmap (("ConfirmationUrl",) . toJSON) _ioTTopicRuleHttpActionConfirmationUrl
+    , fmap (("Headers",) . toJSON) _ioTTopicRuleHttpActionHeaders
+    , (Just . ("Url",) . toJSON) _ioTTopicRuleHttpActionUrl
+    ]
+
+-- | Constructor for 'IoTTopicRuleHttpAction' containing required fields as
+-- arguments.
+ioTTopicRuleHttpAction
+  :: Val Text -- ^ 'ittrhaUrl'
+  -> IoTTopicRuleHttpAction
+ioTTopicRuleHttpAction urlarg =
+  IoTTopicRuleHttpAction
+  { _ioTTopicRuleHttpActionAuth = Nothing
+  , _ioTTopicRuleHttpActionConfirmationUrl = Nothing
+  , _ioTTopicRuleHttpActionHeaders = Nothing
+  , _ioTTopicRuleHttpActionUrl = urlarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpaction.html#cfn-iot-topicrule-httpaction-auth
+ittrhaAuth :: Lens' IoTTopicRuleHttpAction (Maybe IoTTopicRuleHttpAuthorization)
+ittrhaAuth = lens _ioTTopicRuleHttpActionAuth (\s a -> s { _ioTTopicRuleHttpActionAuth = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpaction.html#cfn-iot-topicrule-httpaction-confirmationurl
+ittrhaConfirmationUrl :: Lens' IoTTopicRuleHttpAction (Maybe (Val Text))
+ittrhaConfirmationUrl = lens _ioTTopicRuleHttpActionConfirmationUrl (\s a -> s { _ioTTopicRuleHttpActionConfirmationUrl = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpaction.html#cfn-iot-topicrule-httpaction-headers
+ittrhaHeaders :: Lens' IoTTopicRuleHttpAction (Maybe [IoTTopicRuleHttpActionHeader])
+ittrhaHeaders = lens _ioTTopicRuleHttpActionHeaders (\s a -> s { _ioTTopicRuleHttpActionHeaders = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpaction.html#cfn-iot-topicrule-httpaction-url
+ittrhaUrl :: Lens' IoTTopicRuleHttpAction (Val Text)
+ittrhaUrl = lens _ioTTopicRuleHttpActionUrl (\s a -> s { _ioTTopicRuleHttpActionUrl = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleHttpActionHeader.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleHttpActionHeader.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleHttpActionHeader.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpactionheader.html
+
+module Stratosphere.ResourceProperties.IoTTopicRuleHttpActionHeader where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for IoTTopicRuleHttpActionHeader. See
+-- 'ioTTopicRuleHttpActionHeader' for a more convenient constructor.
+data IoTTopicRuleHttpActionHeader =
+  IoTTopicRuleHttpActionHeader
+  { _ioTTopicRuleHttpActionHeaderKey :: Val Text
+  , _ioTTopicRuleHttpActionHeaderValue :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON IoTTopicRuleHttpActionHeader where
+  toJSON IoTTopicRuleHttpActionHeader{..} =
+    object $
+    catMaybes
+    [ (Just . ("Key",) . toJSON) _ioTTopicRuleHttpActionHeaderKey
+    , (Just . ("Value",) . toJSON) _ioTTopicRuleHttpActionHeaderValue
+    ]
+
+-- | Constructor for 'IoTTopicRuleHttpActionHeader' containing required fields
+-- as arguments.
+ioTTopicRuleHttpActionHeader
+  :: Val Text -- ^ 'ittrhahKey'
+  -> Val Text -- ^ 'ittrhahValue'
+  -> IoTTopicRuleHttpActionHeader
+ioTTopicRuleHttpActionHeader keyarg valuearg =
+  IoTTopicRuleHttpActionHeader
+  { _ioTTopicRuleHttpActionHeaderKey = keyarg
+  , _ioTTopicRuleHttpActionHeaderValue = valuearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpactionheader.html#cfn-iot-topicrule-httpactionheader-key
+ittrhahKey :: Lens' IoTTopicRuleHttpActionHeader (Val Text)
+ittrhahKey = lens _ioTTopicRuleHttpActionHeaderKey (\s a -> s { _ioTTopicRuleHttpActionHeaderKey = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpactionheader.html#cfn-iot-topicrule-httpactionheader-value
+ittrhahValue :: Lens' IoTTopicRuleHttpActionHeader (Val Text)
+ittrhahValue = lens _ioTTopicRuleHttpActionHeaderValue (\s a -> s { _ioTTopicRuleHttpActionHeaderValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleHttpAuthorization.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleHttpAuthorization.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleHttpAuthorization.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpauthorization.html
+
+module Stratosphere.ResourceProperties.IoTTopicRuleHttpAuthorization where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.IoTTopicRuleSigV4Authorization
+
+-- | Full data type definition for IoTTopicRuleHttpAuthorization. See
+-- 'ioTTopicRuleHttpAuthorization' for a more convenient constructor.
+data IoTTopicRuleHttpAuthorization =
+  IoTTopicRuleHttpAuthorization
+  { _ioTTopicRuleHttpAuthorizationSigv4 :: Maybe IoTTopicRuleSigV4Authorization
+  } deriving (Show, Eq)
+
+instance ToJSON IoTTopicRuleHttpAuthorization where
+  toJSON IoTTopicRuleHttpAuthorization{..} =
+    object $
+    catMaybes
+    [ fmap (("Sigv4",) . toJSON) _ioTTopicRuleHttpAuthorizationSigv4
+    ]
+
+-- | Constructor for 'IoTTopicRuleHttpAuthorization' containing required
+-- fields as arguments.
+ioTTopicRuleHttpAuthorization
+  :: IoTTopicRuleHttpAuthorization
+ioTTopicRuleHttpAuthorization  =
+  IoTTopicRuleHttpAuthorization
+  { _ioTTopicRuleHttpAuthorizationSigv4 = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpauthorization.html#cfn-iot-topicrule-httpauthorization-sigv4
+ittrhaSigv4 :: Lens' IoTTopicRuleHttpAuthorization (Maybe IoTTopicRuleSigV4Authorization)
+ittrhaSigv4 = lens _ioTTopicRuleHttpAuthorizationSigv4 (\s a -> s { _ioTTopicRuleHttpAuthorizationSigv4 = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleIotEventsAction.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleIotEventsAction.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleIotEventsAction.hs
@@ -0,0 +1,54 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-ioteventsaction.html
+
+module Stratosphere.ResourceProperties.IoTTopicRuleIotEventsAction where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for IoTTopicRuleIotEventsAction. See
+-- 'ioTTopicRuleIotEventsAction' for a more convenient constructor.
+data IoTTopicRuleIotEventsAction =
+  IoTTopicRuleIotEventsAction
+  { _ioTTopicRuleIotEventsActionInputName :: Val Text
+  , _ioTTopicRuleIotEventsActionMessageId :: Maybe (Val Text)
+  , _ioTTopicRuleIotEventsActionRoleArn :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON IoTTopicRuleIotEventsAction where
+  toJSON IoTTopicRuleIotEventsAction{..} =
+    object $
+    catMaybes
+    [ (Just . ("InputName",) . toJSON) _ioTTopicRuleIotEventsActionInputName
+    , fmap (("MessageId",) . toJSON) _ioTTopicRuleIotEventsActionMessageId
+    , (Just . ("RoleArn",) . toJSON) _ioTTopicRuleIotEventsActionRoleArn
+    ]
+
+-- | Constructor for 'IoTTopicRuleIotEventsAction' containing required fields
+-- as arguments.
+ioTTopicRuleIotEventsAction
+  :: Val Text -- ^ 'ittrieaInputName'
+  -> Val Text -- ^ 'ittrieaRoleArn'
+  -> IoTTopicRuleIotEventsAction
+ioTTopicRuleIotEventsAction inputNamearg roleArnarg =
+  IoTTopicRuleIotEventsAction
+  { _ioTTopicRuleIotEventsActionInputName = inputNamearg
+  , _ioTTopicRuleIotEventsActionMessageId = Nothing
+  , _ioTTopicRuleIotEventsActionRoleArn = roleArnarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-ioteventsaction.html#cfn-iot-topicrule-ioteventsaction-inputname
+ittrieaInputName :: Lens' IoTTopicRuleIotEventsAction (Val Text)
+ittrieaInputName = lens _ioTTopicRuleIotEventsActionInputName (\s a -> s { _ioTTopicRuleIotEventsActionInputName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-ioteventsaction.html#cfn-iot-topicrule-ioteventsaction-messageid
+ittrieaMessageId :: Lens' IoTTopicRuleIotEventsAction (Maybe (Val Text))
+ittrieaMessageId = lens _ioTTopicRuleIotEventsActionMessageId (\s a -> s { _ioTTopicRuleIotEventsActionMessageId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-ioteventsaction.html#cfn-iot-topicrule-ioteventsaction-rolearn
+ittrieaRoleArn :: Lens' IoTTopicRuleIotEventsAction (Val Text)
+ittrieaRoleArn = lens _ioTTopicRuleIotEventsActionRoleArn (\s a -> s { _ioTTopicRuleIotEventsActionRoleArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleIotSiteWiseAction.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleIotSiteWiseAction.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleIotSiteWiseAction.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotsitewiseaction.html
+
+module Stratosphere.ResourceProperties.IoTTopicRuleIotSiteWiseAction where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.IoTTopicRulePutAssetPropertyValueEntry
+
+-- | Full data type definition for IoTTopicRuleIotSiteWiseAction. See
+-- 'ioTTopicRuleIotSiteWiseAction' for a more convenient constructor.
+data IoTTopicRuleIotSiteWiseAction =
+  IoTTopicRuleIotSiteWiseAction
+  { _ioTTopicRuleIotSiteWiseActionPutAssetPropertyValueEntries :: [IoTTopicRulePutAssetPropertyValueEntry]
+  , _ioTTopicRuleIotSiteWiseActionRoleArn :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON IoTTopicRuleIotSiteWiseAction where
+  toJSON IoTTopicRuleIotSiteWiseAction{..} =
+    object $
+    catMaybes
+    [ (Just . ("PutAssetPropertyValueEntries",) . toJSON) _ioTTopicRuleIotSiteWiseActionPutAssetPropertyValueEntries
+    , (Just . ("RoleArn",) . toJSON) _ioTTopicRuleIotSiteWiseActionRoleArn
+    ]
+
+-- | Constructor for 'IoTTopicRuleIotSiteWiseAction' containing required
+-- fields as arguments.
+ioTTopicRuleIotSiteWiseAction
+  :: [IoTTopicRulePutAssetPropertyValueEntry] -- ^ 'ittriswaPutAssetPropertyValueEntries'
+  -> Val Text -- ^ 'ittriswaRoleArn'
+  -> IoTTopicRuleIotSiteWiseAction
+ioTTopicRuleIotSiteWiseAction putAssetPropertyValueEntriesarg roleArnarg =
+  IoTTopicRuleIotSiteWiseAction
+  { _ioTTopicRuleIotSiteWiseActionPutAssetPropertyValueEntries = putAssetPropertyValueEntriesarg
+  , _ioTTopicRuleIotSiteWiseActionRoleArn = roleArnarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotsitewiseaction.html#cfn-iot-topicrule-iotsitewiseaction-putassetpropertyvalueentries
+ittriswaPutAssetPropertyValueEntries :: Lens' IoTTopicRuleIotSiteWiseAction [IoTTopicRulePutAssetPropertyValueEntry]
+ittriswaPutAssetPropertyValueEntries = lens _ioTTopicRuleIotSiteWiseActionPutAssetPropertyValueEntries (\s a -> s { _ioTTopicRuleIotSiteWiseActionPutAssetPropertyValueEntries = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotsitewiseaction.html#cfn-iot-topicrule-iotsitewiseaction-rolearn
+ittriswaRoleArn :: Lens' IoTTopicRuleIotSiteWiseAction (Val Text)
+ittriswaRoleArn = lens _ioTTopicRuleIotSiteWiseActionRoleArn (\s a -> s { _ioTTopicRuleIotSiteWiseActionRoleArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRulePutAssetPropertyValueEntry.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRulePutAssetPropertyValueEntry.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRulePutAssetPropertyValueEntry.hs
@@ -0,0 +1,68 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html
+
+module Stratosphere.ResourceProperties.IoTTopicRulePutAssetPropertyValueEntry where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.IoTTopicRuleAssetPropertyValue
+
+-- | Full data type definition for IoTTopicRulePutAssetPropertyValueEntry. See
+-- 'ioTTopicRulePutAssetPropertyValueEntry' for a more convenient
+-- constructor.
+data IoTTopicRulePutAssetPropertyValueEntry =
+  IoTTopicRulePutAssetPropertyValueEntry
+  { _ioTTopicRulePutAssetPropertyValueEntryAssetId :: Maybe (Val Text)
+  , _ioTTopicRulePutAssetPropertyValueEntryEntryId :: Maybe (Val Text)
+  , _ioTTopicRulePutAssetPropertyValueEntryPropertyAlias :: Maybe (Val Text)
+  , _ioTTopicRulePutAssetPropertyValueEntryPropertyId :: Maybe (Val Text)
+  , _ioTTopicRulePutAssetPropertyValueEntryPropertyValues :: [IoTTopicRuleAssetPropertyValue]
+  } deriving (Show, Eq)
+
+instance ToJSON IoTTopicRulePutAssetPropertyValueEntry where
+  toJSON IoTTopicRulePutAssetPropertyValueEntry{..} =
+    object $
+    catMaybes
+    [ fmap (("AssetId",) . toJSON) _ioTTopicRulePutAssetPropertyValueEntryAssetId
+    , fmap (("EntryId",) . toJSON) _ioTTopicRulePutAssetPropertyValueEntryEntryId
+    , fmap (("PropertyAlias",) . toJSON) _ioTTopicRulePutAssetPropertyValueEntryPropertyAlias
+    , fmap (("PropertyId",) . toJSON) _ioTTopicRulePutAssetPropertyValueEntryPropertyId
+    , (Just . ("PropertyValues",) . toJSON) _ioTTopicRulePutAssetPropertyValueEntryPropertyValues
+    ]
+
+-- | Constructor for 'IoTTopicRulePutAssetPropertyValueEntry' containing
+-- required fields as arguments.
+ioTTopicRulePutAssetPropertyValueEntry
+  :: [IoTTopicRuleAssetPropertyValue] -- ^ 'ittrpapvePropertyValues'
+  -> IoTTopicRulePutAssetPropertyValueEntry
+ioTTopicRulePutAssetPropertyValueEntry propertyValuesarg =
+  IoTTopicRulePutAssetPropertyValueEntry
+  { _ioTTopicRulePutAssetPropertyValueEntryAssetId = Nothing
+  , _ioTTopicRulePutAssetPropertyValueEntryEntryId = Nothing
+  , _ioTTopicRulePutAssetPropertyValueEntryPropertyAlias = Nothing
+  , _ioTTopicRulePutAssetPropertyValueEntryPropertyId = Nothing
+  , _ioTTopicRulePutAssetPropertyValueEntryPropertyValues = propertyValuesarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html#cfn-iot-topicrule-putassetpropertyvalueentry-assetid
+ittrpapveAssetId :: Lens' IoTTopicRulePutAssetPropertyValueEntry (Maybe (Val Text))
+ittrpapveAssetId = lens _ioTTopicRulePutAssetPropertyValueEntryAssetId (\s a -> s { _ioTTopicRulePutAssetPropertyValueEntryAssetId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html#cfn-iot-topicrule-putassetpropertyvalueentry-entryid
+ittrpapveEntryId :: Lens' IoTTopicRulePutAssetPropertyValueEntry (Maybe (Val Text))
+ittrpapveEntryId = lens _ioTTopicRulePutAssetPropertyValueEntryEntryId (\s a -> s { _ioTTopicRulePutAssetPropertyValueEntryEntryId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html#cfn-iot-topicrule-putassetpropertyvalueentry-propertyalias
+ittrpapvePropertyAlias :: Lens' IoTTopicRulePutAssetPropertyValueEntry (Maybe (Val Text))
+ittrpapvePropertyAlias = lens _ioTTopicRulePutAssetPropertyValueEntryPropertyAlias (\s a -> s { _ioTTopicRulePutAssetPropertyValueEntryPropertyAlias = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html#cfn-iot-topicrule-putassetpropertyvalueentry-propertyid
+ittrpapvePropertyId :: Lens' IoTTopicRulePutAssetPropertyValueEntry (Maybe (Val Text))
+ittrpapvePropertyId = lens _ioTTopicRulePutAssetPropertyValueEntryPropertyId (\s a -> s { _ioTTopicRulePutAssetPropertyValueEntryPropertyId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html#cfn-iot-topicrule-putassetpropertyvalueentry-propertyvalues
+ittrpapvePropertyValues :: Lens' IoTTopicRulePutAssetPropertyValueEntry [IoTTopicRuleAssetPropertyValue]
+ittrpapvePropertyValues = lens _ioTTopicRulePutAssetPropertyValueEntryPropertyValues (\s a -> s { _ioTTopicRulePutAssetPropertyValueEntryPropertyValues = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleRepublishAction.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleRepublishAction.hs
--- a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleRepublishAction.hs
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleRepublishAction.hs
@@ -14,7 +14,8 @@
 -- 'ioTTopicRuleRepublishAction' for a more convenient constructor.
 data IoTTopicRuleRepublishAction =
   IoTTopicRuleRepublishAction
-  { _ioTTopicRuleRepublishActionRoleArn :: Val Text
+  { _ioTTopicRuleRepublishActionQos :: Maybe (Val Integer)
+  , _ioTTopicRuleRepublishActionRoleArn :: Val Text
   , _ioTTopicRuleRepublishActionTopic :: Val Text
   } deriving (Show, Eq)
 
@@ -22,7 +23,8 @@
   toJSON IoTTopicRuleRepublishAction{..} =
     object $
     catMaybes
-    [ (Just . ("RoleArn",) . toJSON) _ioTTopicRuleRepublishActionRoleArn
+    [ fmap (("Qos",) . toJSON) _ioTTopicRuleRepublishActionQos
+    , (Just . ("RoleArn",) . toJSON) _ioTTopicRuleRepublishActionRoleArn
     , (Just . ("Topic",) . toJSON) _ioTTopicRuleRepublishActionTopic
     ]
 
@@ -34,9 +36,14 @@
   -> IoTTopicRuleRepublishAction
 ioTTopicRuleRepublishAction roleArnarg topicarg =
   IoTTopicRuleRepublishAction
-  { _ioTTopicRuleRepublishActionRoleArn = roleArnarg
+  { _ioTTopicRuleRepublishActionQos = Nothing
+  , _ioTTopicRuleRepublishActionRoleArn = roleArnarg
   , _ioTTopicRuleRepublishActionTopic = topicarg
   }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-republishaction.html#cfn-iot-topicrule-republishaction-qos
+ittrraQos :: Lens' IoTTopicRuleRepublishAction (Maybe (Val Integer))
+ittrraQos = lens _ioTTopicRuleRepublishActionQos (\s a -> s { _ioTTopicRuleRepublishActionQos = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-republishaction.html#cfn-iot-topicrule-republishaction-rolearn
 ittrraRoleArn :: Lens' IoTTopicRuleRepublishAction (Val Text)
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleSigV4Authorization.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleSigV4Authorization.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleSigV4Authorization.hs
@@ -0,0 +1,55 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sigv4authorization.html
+
+module Stratosphere.ResourceProperties.IoTTopicRuleSigV4Authorization where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for IoTTopicRuleSigV4Authorization. See
+-- 'ioTTopicRuleSigV4Authorization' for a more convenient constructor.
+data IoTTopicRuleSigV4Authorization =
+  IoTTopicRuleSigV4Authorization
+  { _ioTTopicRuleSigV4AuthorizationRoleArn :: Val Text
+  , _ioTTopicRuleSigV4AuthorizationServiceName :: Val Text
+  , _ioTTopicRuleSigV4AuthorizationSigningRegion :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON IoTTopicRuleSigV4Authorization where
+  toJSON IoTTopicRuleSigV4Authorization{..} =
+    object $
+    catMaybes
+    [ (Just . ("RoleArn",) . toJSON) _ioTTopicRuleSigV4AuthorizationRoleArn
+    , (Just . ("ServiceName",) . toJSON) _ioTTopicRuleSigV4AuthorizationServiceName
+    , (Just . ("SigningRegion",) . toJSON) _ioTTopicRuleSigV4AuthorizationSigningRegion
+    ]
+
+-- | Constructor for 'IoTTopicRuleSigV4Authorization' containing required
+-- fields as arguments.
+ioTTopicRuleSigV4Authorization
+  :: Val Text -- ^ 'ittrsvaRoleArn'
+  -> Val Text -- ^ 'ittrsvaServiceName'
+  -> Val Text -- ^ 'ittrsvaSigningRegion'
+  -> IoTTopicRuleSigV4Authorization
+ioTTopicRuleSigV4Authorization roleArnarg serviceNamearg signingRegionarg =
+  IoTTopicRuleSigV4Authorization
+  { _ioTTopicRuleSigV4AuthorizationRoleArn = roleArnarg
+  , _ioTTopicRuleSigV4AuthorizationServiceName = serviceNamearg
+  , _ioTTopicRuleSigV4AuthorizationSigningRegion = signingRegionarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sigv4authorization.html#cfn-iot-topicrule-sigv4authorization-rolearn
+ittrsvaRoleArn :: Lens' IoTTopicRuleSigV4Authorization (Val Text)
+ittrsvaRoleArn = lens _ioTTopicRuleSigV4AuthorizationRoleArn (\s a -> s { _ioTTopicRuleSigV4AuthorizationRoleArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sigv4authorization.html#cfn-iot-topicrule-sigv4authorization-servicename
+ittrsvaServiceName :: Lens' IoTTopicRuleSigV4Authorization (Val Text)
+ittrsvaServiceName = lens _ioTTopicRuleSigV4AuthorizationServiceName (\s a -> s { _ioTTopicRuleSigV4AuthorizationServiceName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sigv4authorization.html#cfn-iot-topicrule-sigv4authorization-signingregion
+ittrsvaSigningRegion :: Lens' IoTTopicRuleSigV4Authorization (Val Text)
+ittrsvaSigningRegion = lens _ioTTopicRuleSigV4AuthorizationSigningRegion (\s a -> s { _ioTTopicRuleSigV4AuthorizationSigningRegion = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/StepFunctionsStateMachineTracingConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/StepFunctionsStateMachineTracingConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/StepFunctionsStateMachineTracingConfiguration.hs
@@ -0,0 +1,41 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-tracingconfiguration.html
+
+module Stratosphere.ResourceProperties.StepFunctionsStateMachineTracingConfiguration where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- StepFunctionsStateMachineTracingConfiguration. See
+-- 'stepFunctionsStateMachineTracingConfiguration' for a more convenient
+-- constructor.
+data StepFunctionsStateMachineTracingConfiguration =
+  StepFunctionsStateMachineTracingConfiguration
+  { _stepFunctionsStateMachineTracingConfigurationEnabled :: Val Bool
+  } deriving (Show, Eq)
+
+instance ToJSON StepFunctionsStateMachineTracingConfiguration where
+  toJSON StepFunctionsStateMachineTracingConfiguration{..} =
+    object $
+    catMaybes
+    [ (Just . ("Enabled",) . toJSON) _stepFunctionsStateMachineTracingConfigurationEnabled
+    ]
+
+-- | Constructor for 'StepFunctionsStateMachineTracingConfiguration'
+-- containing required fields as arguments.
+stepFunctionsStateMachineTracingConfiguration
+  :: Val Bool -- ^ 'sfsmtcEnabled'
+  -> StepFunctionsStateMachineTracingConfiguration
+stepFunctionsStateMachineTracingConfiguration enabledarg =
+  StepFunctionsStateMachineTracingConfiguration
+  { _stepFunctionsStateMachineTracingConfigurationEnabled = enabledarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-tracingconfiguration.html#cfn-stepfunctions-statemachine-tracingconfiguration-enabled
+sfsmtcEnabled :: Lens' StepFunctionsStateMachineTracingConfiguration (Val Bool)
+sfsmtcEnabled = lens _stepFunctionsStateMachineTracingConfigurationEnabled (\s a -> s { _stepFunctionsStateMachineTracingConfigurationEnabled = a })
diff --git a/library-gen/Stratosphere/Resources.hs b/library-gen/Stratosphere/Resources.hs
--- a/library-gen/Stratosphere/Resources.hs
+++ b/library-gen/Stratosphere/Resources.hs
@@ -190,6 +190,8 @@
 import Stratosphere.Resources.DMSReplicationSubnetGroup as X
 import Stratosphere.Resources.DMSReplicationTask as X
 import Stratosphere.Resources.DataPipelinePipeline as X
+import Stratosphere.Resources.DetectiveGraph as X
+import Stratosphere.Resources.DetectiveMemberInvitation as X
 import Stratosphere.Resources.DirectoryServiceMicrosoftAD as X
 import Stratosphere.Resources.DirectoryServiceSimpleAD as X
 import Stratosphere.Resources.DocDBDBCluster as X
@@ -350,6 +352,11 @@
 import Stratosphere.Resources.IAMServiceLinkedRole as X
 import Stratosphere.Resources.IAMUser as X
 import Stratosphere.Resources.IAMUserToGroupAddition as X
+import Stratosphere.Resources.ImageBuilderComponent as X
+import Stratosphere.Resources.ImageBuilderDistributionConfiguration as X
+import Stratosphere.Resources.ImageBuilderImagePipeline as X
+import Stratosphere.Resources.ImageBuilderImageRecipe as X
+import Stratosphere.Resources.ImageBuilderInfrastructureConfiguration as X
 import Stratosphere.Resources.InspectorAssessmentTarget as X
 import Stratosphere.Resources.InspectorAssessmentTemplate as X
 import Stratosphere.Resources.InspectorResourceGroup as X
@@ -956,12 +963,13 @@
 import Stratosphere.ResourceProperties.EC2ClientVpnEndpointConnectionLogOptions as X
 import Stratosphere.ResourceProperties.EC2ClientVpnEndpointDirectoryServiceAuthenticationRequest as X
 import Stratosphere.ResourceProperties.EC2ClientVpnEndpointTagSpecification as X
+import Stratosphere.ResourceProperties.EC2EC2FleetCapacityReservationOptionsRequest as X
 import Stratosphere.ResourceProperties.EC2EC2FleetFleetLaunchTemplateConfigRequest as X
 import Stratosphere.ResourceProperties.EC2EC2FleetFleetLaunchTemplateOverridesRequest as X
 import Stratosphere.ResourceProperties.EC2EC2FleetFleetLaunchTemplateSpecificationRequest as X
 import Stratosphere.ResourceProperties.EC2EC2FleetOnDemandOptionsRequest as X
+import Stratosphere.ResourceProperties.EC2EC2FleetPlacement as X
 import Stratosphere.ResourceProperties.EC2EC2FleetSpotOptionsRequest as X
-import Stratosphere.ResourceProperties.EC2EC2FleetTagRequest as X
 import Stratosphere.ResourceProperties.EC2EC2FleetTagSpecification as X
 import Stratosphere.ResourceProperties.EC2EC2FleetTargetCapacitySpecificationRequest as X
 import Stratosphere.ResourceProperties.EC2InstanceAssociationParameter as X
@@ -1316,22 +1324,40 @@
 import Stratosphere.ResourceProperties.IAMRolePolicy as X
 import Stratosphere.ResourceProperties.IAMUserLoginProfile as X
 import Stratosphere.ResourceProperties.IAMUserPolicy as X
+import Stratosphere.ResourceProperties.ImageBuilderDistributionConfigurationDistribution as X
+import Stratosphere.ResourceProperties.ImageBuilderImagePipelineImageTestsConfiguration as X
+import Stratosphere.ResourceProperties.ImageBuilderImagePipelineSchedule as X
+import Stratosphere.ResourceProperties.ImageBuilderImageRecipeComponentConfiguration as X
+import Stratosphere.ResourceProperties.ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification as X
+import Stratosphere.ResourceProperties.ImageBuilderImageRecipeInstanceBlockDeviceMapping as X
+import Stratosphere.ResourceProperties.ImageBuilderInfrastructureConfigurationLogging as X
+import Stratosphere.ResourceProperties.ImageBuilderInfrastructureConfigurationS3Logs as X
 import Stratosphere.ResourceProperties.IoT1ClickProjectDeviceTemplate as X
 import Stratosphere.ResourceProperties.IoT1ClickProjectPlacementTemplate as X
 import Stratosphere.ResourceProperties.IoTThingAttributePayload as X
 import Stratosphere.ResourceProperties.IoTTopicRuleAction as X
+import Stratosphere.ResourceProperties.IoTTopicRuleAssetPropertyTimestamp as X
+import Stratosphere.ResourceProperties.IoTTopicRuleAssetPropertyValue as X
+import Stratosphere.ResourceProperties.IoTTopicRuleAssetPropertyVariant as X
 import Stratosphere.ResourceProperties.IoTTopicRuleCloudwatchAlarmAction as X
 import Stratosphere.ResourceProperties.IoTTopicRuleCloudwatchMetricAction as X
 import Stratosphere.ResourceProperties.IoTTopicRuleDynamoDBAction as X
 import Stratosphere.ResourceProperties.IoTTopicRuleDynamoDBV2Action as X
 import Stratosphere.ResourceProperties.IoTTopicRuleElasticsearchAction as X
 import Stratosphere.ResourceProperties.IoTTopicRuleFirehoseAction as X
+import Stratosphere.ResourceProperties.IoTTopicRuleHttpAction as X
+import Stratosphere.ResourceProperties.IoTTopicRuleHttpActionHeader as X
+import Stratosphere.ResourceProperties.IoTTopicRuleHttpAuthorization as X
 import Stratosphere.ResourceProperties.IoTTopicRuleIotAnalyticsAction as X
+import Stratosphere.ResourceProperties.IoTTopicRuleIotEventsAction as X
+import Stratosphere.ResourceProperties.IoTTopicRuleIotSiteWiseAction as X
 import Stratosphere.ResourceProperties.IoTTopicRuleKinesisAction as X
 import Stratosphere.ResourceProperties.IoTTopicRuleLambdaAction as X
+import Stratosphere.ResourceProperties.IoTTopicRulePutAssetPropertyValueEntry as X
 import Stratosphere.ResourceProperties.IoTTopicRulePutItemInput as X
 import Stratosphere.ResourceProperties.IoTTopicRuleRepublishAction as X
 import Stratosphere.ResourceProperties.IoTTopicRuleS3Action as X
+import Stratosphere.ResourceProperties.IoTTopicRuleSigV4Authorization as X
 import Stratosphere.ResourceProperties.IoTTopicRuleSnsAction as X
 import Stratosphere.ResourceProperties.IoTTopicRuleSqsAction as X
 import Stratosphere.ResourceProperties.IoTTopicRuleStepFunctionsAction as X
@@ -1772,6 +1798,7 @@
 import Stratosphere.ResourceProperties.StepFunctionsStateMachineLogDestination as X
 import Stratosphere.ResourceProperties.StepFunctionsStateMachineLoggingConfiguration as X
 import Stratosphere.ResourceProperties.StepFunctionsStateMachineTagsEntry as X
+import Stratosphere.ResourceProperties.StepFunctionsStateMachineTracingConfiguration as X
 import Stratosphere.ResourceProperties.TransferServerEndpointDetails as X
 import Stratosphere.ResourceProperties.TransferServerIdentityProviderDetails as X
 import Stratosphere.ResourceProperties.TransferUserHomeDirectoryMapEntry as X
diff --git a/library-gen/Stratosphere/Resources/ApiGatewayV2Integration.hs b/library-gen/Stratosphere/Resources/ApiGatewayV2Integration.hs
--- a/library-gen/Stratosphere/Resources/ApiGatewayV2Integration.hs
+++ b/library-gen/Stratosphere/Resources/ApiGatewayV2Integration.hs
@@ -15,6 +15,7 @@
 data ApiGatewayV2Integration =
   ApiGatewayV2Integration
   { _apiGatewayV2IntegrationApiId :: Val Text
+  , _apiGatewayV2IntegrationConnectionId :: Maybe (Val Text)
   , _apiGatewayV2IntegrationConnectionType :: Maybe (Val Text)
   , _apiGatewayV2IntegrationContentHandlingStrategy :: Maybe (Val Text)
   , _apiGatewayV2IntegrationCredentialsArn :: Maybe (Val Text)
@@ -38,6 +39,7 @@
     , resourcePropertiesProperties =
         hashMapFromList $ catMaybes
         [ (Just . ("ApiId",) . toJSON) _apiGatewayV2IntegrationApiId
+        , fmap (("ConnectionId",) . toJSON) _apiGatewayV2IntegrationConnectionId
         , fmap (("ConnectionType",) . toJSON) _apiGatewayV2IntegrationConnectionType
         , fmap (("ContentHandlingStrategy",) . toJSON) _apiGatewayV2IntegrationContentHandlingStrategy
         , fmap (("CredentialsArn",) . toJSON) _apiGatewayV2IntegrationCredentialsArn
@@ -64,6 +66,7 @@
 apiGatewayV2Integration apiIdarg integrationTypearg =
   ApiGatewayV2Integration
   { _apiGatewayV2IntegrationApiId = apiIdarg
+  , _apiGatewayV2IntegrationConnectionId = Nothing
   , _apiGatewayV2IntegrationConnectionType = Nothing
   , _apiGatewayV2IntegrationContentHandlingStrategy = Nothing
   , _apiGatewayV2IntegrationCredentialsArn = Nothing
@@ -83,6 +86,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-apiid
 agviApiId :: Lens' ApiGatewayV2Integration (Val Text)
 agviApiId = lens _apiGatewayV2IntegrationApiId (\s a -> s { _apiGatewayV2IntegrationApiId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-connectionid
+agviConnectionId :: Lens' ApiGatewayV2Integration (Maybe (Val Text))
+agviConnectionId = lens _apiGatewayV2IntegrationConnectionId (\s a -> s { _apiGatewayV2IntegrationConnectionId = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-connectiontype
 agviConnectionType :: Lens' ApiGatewayV2Integration (Maybe (Val Text))
diff --git a/library-gen/Stratosphere/Resources/AutoScalingAutoScalingGroup.hs b/library-gen/Stratosphere/Resources/AutoScalingAutoScalingGroup.hs
--- a/library-gen/Stratosphere/Resources/AutoScalingAutoScalingGroup.hs
+++ b/library-gen/Stratosphere/Resources/AutoScalingAutoScalingGroup.hs
@@ -30,6 +30,7 @@
   , _autoScalingAutoScalingGroupLaunchTemplate :: Maybe AutoScalingAutoScalingGroupLaunchTemplateSpecification
   , _autoScalingAutoScalingGroupLifecycleHookSpecificationList :: Maybe [AutoScalingAutoScalingGroupLifecycleHookSpecification]
   , _autoScalingAutoScalingGroupLoadBalancerNames :: Maybe (ValList Text)
+  , _autoScalingAutoScalingGroupMaxInstanceLifetime :: Maybe (Val Integer)
   , _autoScalingAutoScalingGroupMaxSize :: Val Text
   , _autoScalingAutoScalingGroupMetricsCollection :: Maybe [AutoScalingAutoScalingGroupMetricsCollection]
   , _autoScalingAutoScalingGroupMinSize :: Val Text
@@ -60,6 +61,7 @@
         , fmap (("LaunchTemplate",) . toJSON) _autoScalingAutoScalingGroupLaunchTemplate
         , fmap (("LifecycleHookSpecificationList",) . toJSON) _autoScalingAutoScalingGroupLifecycleHookSpecificationList
         , fmap (("LoadBalancerNames",) . toJSON) _autoScalingAutoScalingGroupLoadBalancerNames
+        , fmap (("MaxInstanceLifetime",) . toJSON) _autoScalingAutoScalingGroupMaxInstanceLifetime
         , (Just . ("MaxSize",) . toJSON) _autoScalingAutoScalingGroupMaxSize
         , fmap (("MetricsCollection",) . toJSON) _autoScalingAutoScalingGroupMetricsCollection
         , (Just . ("MinSize",) . toJSON) _autoScalingAutoScalingGroupMinSize
@@ -93,6 +95,7 @@
   , _autoScalingAutoScalingGroupLaunchTemplate = Nothing
   , _autoScalingAutoScalingGroupLifecycleHookSpecificationList = Nothing
   , _autoScalingAutoScalingGroupLoadBalancerNames = Nothing
+  , _autoScalingAutoScalingGroupMaxInstanceLifetime = Nothing
   , _autoScalingAutoScalingGroupMaxSize = maxSizearg
   , _autoScalingAutoScalingGroupMetricsCollection = Nothing
   , _autoScalingAutoScalingGroupMinSize = minSizearg
@@ -149,6 +152,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-loadbalancernames
 asasgLoadBalancerNames :: Lens' AutoScalingAutoScalingGroup (Maybe (ValList Text))
 asasgLoadBalancerNames = lens _autoScalingAutoScalingGroupLoadBalancerNames (\s a -> s { _autoScalingAutoScalingGroupLoadBalancerNames = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-maxinstancelifetime
+asasgMaxInstanceLifetime :: Lens' AutoScalingAutoScalingGroup (Maybe (Val Integer))
+asasgMaxInstanceLifetime = lens _autoScalingAutoScalingGroupMaxInstanceLifetime (\s a -> s { _autoScalingAutoScalingGroupMaxInstanceLifetime = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-maxsize
 asasgMaxSize :: Lens' AutoScalingAutoScalingGroup (Val Text)
diff --git a/library-gen/Stratosphere/Resources/CloudWatchInsightRule.hs b/library-gen/Stratosphere/Resources/CloudWatchInsightRule.hs
--- a/library-gen/Stratosphere/Resources/CloudWatchInsightRule.hs
+++ b/library-gen/Stratosphere/Resources/CloudWatchInsightRule.hs
@@ -8,7 +8,7 @@
 module Stratosphere.Resources.CloudWatchInsightRule where
 
 import Stratosphere.ResourceImports
-
+import Stratosphere.ResourceProperties.Tag
 
 -- | Full data type definition for CloudWatchInsightRule. See
 -- 'cloudWatchInsightRule' for a more convenient constructor.
@@ -17,6 +17,7 @@
   { _cloudWatchInsightRuleRuleBody :: Val Text
   , _cloudWatchInsightRuleRuleName :: Val Text
   , _cloudWatchInsightRuleRuleState :: Val Text
+  , _cloudWatchInsightRuleTags :: Maybe [Tag]
   } deriving (Show, Eq)
 
 instance ToResourceProperties CloudWatchInsightRule where
@@ -28,6 +29,7 @@
         [ (Just . ("RuleBody",) . toJSON) _cloudWatchInsightRuleRuleBody
         , (Just . ("RuleName",) . toJSON) _cloudWatchInsightRuleRuleName
         , (Just . ("RuleState",) . toJSON) _cloudWatchInsightRuleRuleState
+        , fmap (("Tags",) . toJSON) _cloudWatchInsightRuleTags
         ]
     }
 
@@ -43,6 +45,7 @@
   { _cloudWatchInsightRuleRuleBody = ruleBodyarg
   , _cloudWatchInsightRuleRuleName = ruleNamearg
   , _cloudWatchInsightRuleRuleState = ruleStatearg
+  , _cloudWatchInsightRuleTags = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-insightrule.html#cfn-cloudwatch-insightrule-rulebody
@@ -56,3 +59,7 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-insightrule.html#cfn-cloudwatch-insightrule-rulestate
 cwirRuleState :: Lens' CloudWatchInsightRule (Val Text)
 cwirRuleState = lens _cloudWatchInsightRuleRuleState (\s a -> s { _cloudWatchInsightRuleRuleState = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-insightrule.html#cfn-cloudwatch-insightrule-tags
+cwirTags :: Lens' CloudWatchInsightRule (Maybe [Tag])
+cwirTags = lens _cloudWatchInsightRuleTags (\s a -> s { _cloudWatchInsightRuleTags = a })
diff --git a/library-gen/Stratosphere/Resources/CodeBuildReportGroup.hs b/library-gen/Stratosphere/Resources/CodeBuildReportGroup.hs
--- a/library-gen/Stratosphere/Resources/CodeBuildReportGroup.hs
+++ b/library-gen/Stratosphere/Resources/CodeBuildReportGroup.hs
@@ -9,6 +9,7 @@
 
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.CodeBuildReportGroupReportExportConfig
+import Stratosphere.ResourceProperties.Tag
 
 -- | Full data type definition for CodeBuildReportGroup. See
 -- 'codeBuildReportGroup' for a more convenient constructor.
@@ -16,6 +17,7 @@
   CodeBuildReportGroup
   { _codeBuildReportGroupExportConfig :: CodeBuildReportGroupReportExportConfig
   , _codeBuildReportGroupName :: Maybe (Val Text)
+  , _codeBuildReportGroupTags :: Maybe [Tag]
   , _codeBuildReportGroupType :: Val Text
   } deriving (Show, Eq)
 
@@ -27,6 +29,7 @@
         hashMapFromList $ catMaybes
         [ (Just . ("ExportConfig",) . toJSON) _codeBuildReportGroupExportConfig
         , fmap (("Name",) . toJSON) _codeBuildReportGroupName
+        , fmap (("Tags",) . toJSON) _codeBuildReportGroupTags
         , (Just . ("Type",) . toJSON) _codeBuildReportGroupType
         ]
     }
@@ -41,6 +44,7 @@
   CodeBuildReportGroup
   { _codeBuildReportGroupExportConfig = exportConfigarg
   , _codeBuildReportGroupName = Nothing
+  , _codeBuildReportGroupTags = Nothing
   , _codeBuildReportGroupType = typearg
   }
 
@@ -51,6 +55,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-reportgroup.html#cfn-codebuild-reportgroup-name
 cbrgName :: Lens' CodeBuildReportGroup (Maybe (Val Text))
 cbrgName = lens _codeBuildReportGroupName (\s a -> s { _codeBuildReportGroupName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-reportgroup.html#cfn-codebuild-reportgroup-tags
+cbrgTags :: Lens' CodeBuildReportGroup (Maybe [Tag])
+cbrgTags = lens _codeBuildReportGroupTags (\s a -> s { _codeBuildReportGroupTags = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-reportgroup.html#cfn-codebuild-reportgroup-type
 cbrgType :: Lens' CodeBuildReportGroup (Val Text)
diff --git a/library-gen/Stratosphere/Resources/DetectiveGraph.hs b/library-gen/Stratosphere/Resources/DetectiveGraph.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/DetectiveGraph.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-graph.html
+
+module Stratosphere.Resources.DetectiveGraph where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for DetectiveGraph. See 'detectiveGraph' for a
+-- more convenient constructor.
+data DetectiveGraph =
+  DetectiveGraph
+  { 
+  } deriving (Show, Eq)
+
+instance ToResourceProperties DetectiveGraph where
+  toResourceProperties _ =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::Detective::Graph"
+    , resourcePropertiesProperties = hashMapEmpty
+    }
+
+-- | Constructor for 'DetectiveGraph' containing required fields as arguments.
+detectiveGraph
+  :: DetectiveGraph
+detectiveGraph  =
+  DetectiveGraph
+  { 
+  }
+
+
diff --git a/library-gen/Stratosphere/Resources/DetectiveMemberInvitation.hs b/library-gen/Stratosphere/Resources/DetectiveMemberInvitation.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/DetectiveMemberInvitation.hs
@@ -0,0 +1,65 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-memberinvitation.html
+
+module Stratosphere.Resources.DetectiveMemberInvitation where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for DetectiveMemberInvitation. See
+-- 'detectiveMemberInvitation' for a more convenient constructor.
+data DetectiveMemberInvitation =
+  DetectiveMemberInvitation
+  { _detectiveMemberInvitationGraphArn :: Val Text
+  , _detectiveMemberInvitationMemberEmailAddress :: Val Text
+  , _detectiveMemberInvitationMemberId :: Val Text
+  , _detectiveMemberInvitationMessage :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToResourceProperties DetectiveMemberInvitation where
+  toResourceProperties DetectiveMemberInvitation{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::Detective::MemberInvitation"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ (Just . ("GraphArn",) . toJSON) _detectiveMemberInvitationGraphArn
+        , (Just . ("MemberEmailAddress",) . toJSON) _detectiveMemberInvitationMemberEmailAddress
+        , (Just . ("MemberId",) . toJSON) _detectiveMemberInvitationMemberId
+        , fmap (("Message",) . toJSON) _detectiveMemberInvitationMessage
+        ]
+    }
+
+-- | Constructor for 'DetectiveMemberInvitation' containing required fields as
+-- arguments.
+detectiveMemberInvitation
+  :: Val Text -- ^ 'dmiGraphArn'
+  -> Val Text -- ^ 'dmiMemberEmailAddress'
+  -> Val Text -- ^ 'dmiMemberId'
+  -> DetectiveMemberInvitation
+detectiveMemberInvitation graphArnarg memberEmailAddressarg memberIdarg =
+  DetectiveMemberInvitation
+  { _detectiveMemberInvitationGraphArn = graphArnarg
+  , _detectiveMemberInvitationMemberEmailAddress = memberEmailAddressarg
+  , _detectiveMemberInvitationMemberId = memberIdarg
+  , _detectiveMemberInvitationMessage = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-memberinvitation.html#cfn-detective-memberinvitation-grapharn
+dmiGraphArn :: Lens' DetectiveMemberInvitation (Val Text)
+dmiGraphArn = lens _detectiveMemberInvitationGraphArn (\s a -> s { _detectiveMemberInvitationGraphArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-memberinvitation.html#cfn-detective-memberinvitation-memberemailaddress
+dmiMemberEmailAddress :: Lens' DetectiveMemberInvitation (Val Text)
+dmiMemberEmailAddress = lens _detectiveMemberInvitationMemberEmailAddress (\s a -> s { _detectiveMemberInvitationMemberEmailAddress = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-memberinvitation.html#cfn-detective-memberinvitation-memberid
+dmiMemberId :: Lens' DetectiveMemberInvitation (Val Text)
+dmiMemberId = lens _detectiveMemberInvitationMemberId (\s a -> s { _detectiveMemberInvitationMemberId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-memberinvitation.html#cfn-detective-memberinvitation-message
+dmiMessage :: Lens' DetectiveMemberInvitation (Maybe (Val Text))
+dmiMessage = lens _detectiveMemberInvitationMessage (\s a -> s { _detectiveMemberInvitationMessage = a })
diff --git a/library-gen/Stratosphere/Resources/EC2Volume.hs b/library-gen/Stratosphere/Resources/EC2Volume.hs
--- a/library-gen/Stratosphere/Resources/EC2Volume.hs
+++ b/library-gen/Stratosphere/Resources/EC2Volume.hs
@@ -19,6 +19,7 @@
   , _eC2VolumeEncrypted :: Maybe (Val Bool)
   , _eC2VolumeIops :: Maybe (Val Integer)
   , _eC2VolumeKmsKeyId :: Maybe (Val Text)
+  , _eC2VolumeMultiAttachEnabled :: Maybe (Val Bool)
   , _eC2VolumeSize :: Maybe (Val Integer)
   , _eC2VolumeSnapshotId :: Maybe (Val Text)
   , _eC2VolumeTags :: Maybe [Tag]
@@ -36,6 +37,7 @@
         , fmap (("Encrypted",) . toJSON) _eC2VolumeEncrypted
         , fmap (("Iops",) . toJSON) _eC2VolumeIops
         , fmap (("KmsKeyId",) . toJSON) _eC2VolumeKmsKeyId
+        , fmap (("MultiAttachEnabled",) . toJSON) _eC2VolumeMultiAttachEnabled
         , fmap (("Size",) . toJSON) _eC2VolumeSize
         , fmap (("SnapshotId",) . toJSON) _eC2VolumeSnapshotId
         , fmap (("Tags",) . toJSON) _eC2VolumeTags
@@ -54,6 +56,7 @@
   , _eC2VolumeEncrypted = Nothing
   , _eC2VolumeIops = Nothing
   , _eC2VolumeKmsKeyId = Nothing
+  , _eC2VolumeMultiAttachEnabled = Nothing
   , _eC2VolumeSize = Nothing
   , _eC2VolumeSnapshotId = Nothing
   , _eC2VolumeTags = Nothing
@@ -79,6 +82,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-kmskeyid
 ecvKmsKeyId :: Lens' EC2Volume (Maybe (Val Text))
 ecvKmsKeyId = lens _eC2VolumeKmsKeyId (\s a -> s { _eC2VolumeKmsKeyId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-multiattachenabled
+ecvMultiAttachEnabled :: Lens' EC2Volume (Maybe (Val Bool))
+ecvMultiAttachEnabled = lens _eC2VolumeMultiAttachEnabled (\s a -> s { _eC2VolumeMultiAttachEnabled = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-size
 ecvSize :: Lens' EC2Volume (Maybe (Val Integer))
diff --git a/library-gen/Stratosphere/Resources/FSxFileSystem.hs b/library-gen/Stratosphere/Resources/FSxFileSystem.hs
--- a/library-gen/Stratosphere/Resources/FSxFileSystem.hs
+++ b/library-gen/Stratosphere/Resources/FSxFileSystem.hs
@@ -22,6 +22,7 @@
   , _fSxFileSystemLustreConfiguration :: Maybe FSxFileSystemLustreConfiguration
   , _fSxFileSystemSecurityGroupIds :: Maybe (ValList Text)
   , _fSxFileSystemStorageCapacity :: Maybe (Val Integer)
+  , _fSxFileSystemStorageType :: Maybe (Val Text)
   , _fSxFileSystemSubnetIds :: ValList Text
   , _fSxFileSystemTags :: Maybe [Tag]
   , _fSxFileSystemWindowsConfiguration :: Maybe FSxFileSystemWindowsConfiguration
@@ -39,6 +40,7 @@
         , fmap (("LustreConfiguration",) . toJSON) _fSxFileSystemLustreConfiguration
         , fmap (("SecurityGroupIds",) . toJSON) _fSxFileSystemSecurityGroupIds
         , fmap (("StorageCapacity",) . toJSON) _fSxFileSystemStorageCapacity
+        , fmap (("StorageType",) . toJSON) _fSxFileSystemStorageType
         , (Just . ("SubnetIds",) . toJSON) _fSxFileSystemSubnetIds
         , fmap (("Tags",) . toJSON) _fSxFileSystemTags
         , fmap (("WindowsConfiguration",) . toJSON) _fSxFileSystemWindowsConfiguration
@@ -58,6 +60,7 @@
   , _fSxFileSystemLustreConfiguration = Nothing
   , _fSxFileSystemSecurityGroupIds = Nothing
   , _fSxFileSystemStorageCapacity = Nothing
+  , _fSxFileSystemStorageType = Nothing
   , _fSxFileSystemSubnetIds = subnetIdsarg
   , _fSxFileSystemTags = Nothing
   , _fSxFileSystemWindowsConfiguration = Nothing
@@ -86,6 +89,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-storagecapacity
 fsfsStorageCapacity :: Lens' FSxFileSystem (Maybe (Val Integer))
 fsfsStorageCapacity = lens _fSxFileSystemStorageCapacity (\s a -> s { _fSxFileSystemStorageCapacity = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-storagetype
+fsfsStorageType :: Lens' FSxFileSystem (Maybe (Val Text))
+fsfsStorageType = lens _fSxFileSystemStorageType (\s a -> s { _fSxFileSystemStorageType = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-subnetids
 fsfsSubnetIds :: Lens' FSxFileSystem (ValList Text)
diff --git a/library-gen/Stratosphere/Resources/GlueDevEndpoint.hs b/library-gen/Stratosphere/Resources/GlueDevEndpoint.hs
--- a/library-gen/Stratosphere/Resources/GlueDevEndpoint.hs
+++ b/library-gen/Stratosphere/Resources/GlueDevEndpoint.hs
@@ -22,6 +22,7 @@
   , _glueDevEndpointNumberOfNodes :: Maybe (Val Integer)
   , _glueDevEndpointNumberOfWorkers :: Maybe (Val Integer)
   , _glueDevEndpointPublicKey :: Maybe (Val Text)
+  , _glueDevEndpointPublicKeys :: Maybe (ValList Text)
   , _glueDevEndpointRoleArn :: Val Text
   , _glueDevEndpointSecurityConfiguration :: Maybe (Val Text)
   , _glueDevEndpointSecurityGroupIds :: Maybe (ValList Text)
@@ -44,6 +45,7 @@
         , fmap (("NumberOfNodes",) . toJSON) _glueDevEndpointNumberOfNodes
         , fmap (("NumberOfWorkers",) . toJSON) _glueDevEndpointNumberOfWorkers
         , fmap (("PublicKey",) . toJSON) _glueDevEndpointPublicKey
+        , fmap (("PublicKeys",) . toJSON) _glueDevEndpointPublicKeys
         , (Just . ("RoleArn",) . toJSON) _glueDevEndpointRoleArn
         , fmap (("SecurityConfiguration",) . toJSON) _glueDevEndpointSecurityConfiguration
         , fmap (("SecurityGroupIds",) . toJSON) _glueDevEndpointSecurityGroupIds
@@ -68,6 +70,7 @@
   , _glueDevEndpointNumberOfNodes = Nothing
   , _glueDevEndpointNumberOfWorkers = Nothing
   , _glueDevEndpointPublicKey = Nothing
+  , _glueDevEndpointPublicKeys = Nothing
   , _glueDevEndpointRoleArn = roleArnarg
   , _glueDevEndpointSecurityConfiguration = Nothing
   , _glueDevEndpointSecurityGroupIds = Nothing
@@ -107,6 +110,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-publickey
 gdePublicKey :: Lens' GlueDevEndpoint (Maybe (Val Text))
 gdePublicKey = lens _glueDevEndpointPublicKey (\s a -> s { _glueDevEndpointPublicKey = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-publickeys
+gdePublicKeys :: Lens' GlueDevEndpoint (Maybe (ValList Text))
+gdePublicKeys = lens _glueDevEndpointPublicKeys (\s a -> s { _glueDevEndpointPublicKeys = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-rolearn
 gdeRoleArn :: Lens' GlueDevEndpoint (Val Text)
diff --git a/library-gen/Stratosphere/Resources/GlueMLTransform.hs b/library-gen/Stratosphere/Resources/GlueMLTransform.hs
--- a/library-gen/Stratosphere/Resources/GlueMLTransform.hs
+++ b/library-gen/Stratosphere/Resources/GlueMLTransform.hs
@@ -23,6 +23,7 @@
   , _glueMLTransformName :: Maybe (Val Text)
   , _glueMLTransformNumberOfWorkers :: Maybe (Val Integer)
   , _glueMLTransformRole :: Val Text
+  , _glueMLTransformTags :: Maybe Object
   , _glueMLTransformTimeout :: Maybe (Val Integer)
   , _glueMLTransformTransformParameters :: GlueMLTransformTransformParameters
   , _glueMLTransformWorkerType :: Maybe (Val Text)
@@ -42,6 +43,7 @@
         , fmap (("Name",) . toJSON) _glueMLTransformName
         , fmap (("NumberOfWorkers",) . toJSON) _glueMLTransformNumberOfWorkers
         , (Just . ("Role",) . toJSON) _glueMLTransformRole
+        , fmap (("Tags",) . toJSON) _glueMLTransformTags
         , fmap (("Timeout",) . toJSON) _glueMLTransformTimeout
         , (Just . ("TransformParameters",) . toJSON) _glueMLTransformTransformParameters
         , fmap (("WorkerType",) . toJSON) _glueMLTransformWorkerType
@@ -65,6 +67,7 @@
   , _glueMLTransformName = Nothing
   , _glueMLTransformNumberOfWorkers = Nothing
   , _glueMLTransformRole = rolearg
+  , _glueMLTransformTags = Nothing
   , _glueMLTransformTimeout = Nothing
   , _glueMLTransformTransformParameters = transformParametersarg
   , _glueMLTransformWorkerType = Nothing
@@ -101,6 +104,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html#cfn-glue-mltransform-role
 gmltRole :: Lens' GlueMLTransform (Val Text)
 gmltRole = lens _glueMLTransformRole (\s a -> s { _glueMLTransformRole = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html#cfn-glue-mltransform-tags
+gmltTags :: Lens' GlueMLTransform (Maybe Object)
+gmltTags = lens _glueMLTransformTags (\s a -> s { _glueMLTransformTags = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html#cfn-glue-mltransform-timeout
 gmltTimeout :: Lens' GlueMLTransform (Maybe (Val Integer))
diff --git a/library-gen/Stratosphere/Resources/ImageBuilderComponent.hs b/library-gen/Stratosphere/Resources/ImageBuilderComponent.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ImageBuilderComponent.hs
@@ -0,0 +1,100 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html
+
+module Stratosphere.Resources.ImageBuilderComponent where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for ImageBuilderComponent. See
+-- 'imageBuilderComponent' for a more convenient constructor.
+data ImageBuilderComponent =
+  ImageBuilderComponent
+  { _imageBuilderComponentChangeDescription :: Maybe (Val Text)
+  , _imageBuilderComponentData :: Maybe (Val Text)
+  , _imageBuilderComponentDescription :: Maybe (Val Text)
+  , _imageBuilderComponentKmsKeyId :: Maybe (Val Text)
+  , _imageBuilderComponentName :: Val Text
+  , _imageBuilderComponentPlatform :: Val Text
+  , _imageBuilderComponentTags :: Maybe Object
+  , _imageBuilderComponentUri :: Maybe (Val Text)
+  , _imageBuilderComponentVersion :: Val Text
+  } deriving (Show, Eq)
+
+instance ToResourceProperties ImageBuilderComponent where
+  toResourceProperties ImageBuilderComponent{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::ImageBuilder::Component"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("ChangeDescription",) . toJSON) _imageBuilderComponentChangeDescription
+        , fmap (("Data",) . toJSON) _imageBuilderComponentData
+        , fmap (("Description",) . toJSON) _imageBuilderComponentDescription
+        , fmap (("KmsKeyId",) . toJSON) _imageBuilderComponentKmsKeyId
+        , (Just . ("Name",) . toJSON) _imageBuilderComponentName
+        , (Just . ("Platform",) . toJSON) _imageBuilderComponentPlatform
+        , fmap (("Tags",) . toJSON) _imageBuilderComponentTags
+        , fmap (("Uri",) . toJSON) _imageBuilderComponentUri
+        , (Just . ("Version",) . toJSON) _imageBuilderComponentVersion
+        ]
+    }
+
+-- | Constructor for 'ImageBuilderComponent' containing required fields as
+-- arguments.
+imageBuilderComponent
+  :: Val Text -- ^ 'ibcName'
+  -> Val Text -- ^ 'ibcPlatform'
+  -> Val Text -- ^ 'ibcVersion'
+  -> ImageBuilderComponent
+imageBuilderComponent namearg platformarg versionarg =
+  ImageBuilderComponent
+  { _imageBuilderComponentChangeDescription = Nothing
+  , _imageBuilderComponentData = Nothing
+  , _imageBuilderComponentDescription = Nothing
+  , _imageBuilderComponentKmsKeyId = Nothing
+  , _imageBuilderComponentName = namearg
+  , _imageBuilderComponentPlatform = platformarg
+  , _imageBuilderComponentTags = Nothing
+  , _imageBuilderComponentUri = Nothing
+  , _imageBuilderComponentVersion = versionarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-changedescription
+ibcChangeDescription :: Lens' ImageBuilderComponent (Maybe (Val Text))
+ibcChangeDescription = lens _imageBuilderComponentChangeDescription (\s a -> s { _imageBuilderComponentChangeDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-data
+ibcData :: Lens' ImageBuilderComponent (Maybe (Val Text))
+ibcData = lens _imageBuilderComponentData (\s a -> s { _imageBuilderComponentData = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-description
+ibcDescription :: Lens' ImageBuilderComponent (Maybe (Val Text))
+ibcDescription = lens _imageBuilderComponentDescription (\s a -> s { _imageBuilderComponentDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-kmskeyid
+ibcKmsKeyId :: Lens' ImageBuilderComponent (Maybe (Val Text))
+ibcKmsKeyId = lens _imageBuilderComponentKmsKeyId (\s a -> s { _imageBuilderComponentKmsKeyId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-name
+ibcName :: Lens' ImageBuilderComponent (Val Text)
+ibcName = lens _imageBuilderComponentName (\s a -> s { _imageBuilderComponentName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-platform
+ibcPlatform :: Lens' ImageBuilderComponent (Val Text)
+ibcPlatform = lens _imageBuilderComponentPlatform (\s a -> s { _imageBuilderComponentPlatform = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-tags
+ibcTags :: Lens' ImageBuilderComponent (Maybe Object)
+ibcTags = lens _imageBuilderComponentTags (\s a -> s { _imageBuilderComponentTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-uri
+ibcUri :: Lens' ImageBuilderComponent (Maybe (Val Text))
+ibcUri = lens _imageBuilderComponentUri (\s a -> s { _imageBuilderComponentUri = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-version
+ibcVersion :: Lens' ImageBuilderComponent (Val Text)
+ibcVersion = lens _imageBuilderComponentVersion (\s a -> s { _imageBuilderComponentVersion = a })
diff --git a/library-gen/Stratosphere/Resources/ImageBuilderDistributionConfiguration.hs b/library-gen/Stratosphere/Resources/ImageBuilderDistributionConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ImageBuilderDistributionConfiguration.hs
@@ -0,0 +1,65 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-distributionconfiguration.html
+
+module Stratosphere.Resources.ImageBuilderDistributionConfiguration where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.ImageBuilderDistributionConfigurationDistribution
+
+-- | Full data type definition for ImageBuilderDistributionConfiguration. See
+-- 'imageBuilderDistributionConfiguration' for a more convenient
+-- constructor.
+data ImageBuilderDistributionConfiguration =
+  ImageBuilderDistributionConfiguration
+  { _imageBuilderDistributionConfigurationDescription :: Maybe (Val Text)
+  , _imageBuilderDistributionConfigurationDistributions :: [ImageBuilderDistributionConfigurationDistribution]
+  , _imageBuilderDistributionConfigurationName :: Val Text
+  , _imageBuilderDistributionConfigurationTags :: Maybe Object
+  } deriving (Show, Eq)
+
+instance ToResourceProperties ImageBuilderDistributionConfiguration where
+  toResourceProperties ImageBuilderDistributionConfiguration{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::ImageBuilder::DistributionConfiguration"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("Description",) . toJSON) _imageBuilderDistributionConfigurationDescription
+        , (Just . ("Distributions",) . toJSON) _imageBuilderDistributionConfigurationDistributions
+        , (Just . ("Name",) . toJSON) _imageBuilderDistributionConfigurationName
+        , fmap (("Tags",) . toJSON) _imageBuilderDistributionConfigurationTags
+        ]
+    }
+
+-- | Constructor for 'ImageBuilderDistributionConfiguration' containing
+-- required fields as arguments.
+imageBuilderDistributionConfiguration
+  :: [ImageBuilderDistributionConfigurationDistribution] -- ^ 'ibdcDistributions'
+  -> Val Text -- ^ 'ibdcName'
+  -> ImageBuilderDistributionConfiguration
+imageBuilderDistributionConfiguration distributionsarg namearg =
+  ImageBuilderDistributionConfiguration
+  { _imageBuilderDistributionConfigurationDescription = Nothing
+  , _imageBuilderDistributionConfigurationDistributions = distributionsarg
+  , _imageBuilderDistributionConfigurationName = namearg
+  , _imageBuilderDistributionConfigurationTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-distributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-description
+ibdcDescription :: Lens' ImageBuilderDistributionConfiguration (Maybe (Val Text))
+ibdcDescription = lens _imageBuilderDistributionConfigurationDescription (\s a -> s { _imageBuilderDistributionConfigurationDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-distributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-distributions
+ibdcDistributions :: Lens' ImageBuilderDistributionConfiguration [ImageBuilderDistributionConfigurationDistribution]
+ibdcDistributions = lens _imageBuilderDistributionConfigurationDistributions (\s a -> s { _imageBuilderDistributionConfigurationDistributions = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-distributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-name
+ibdcName :: Lens' ImageBuilderDistributionConfiguration (Val Text)
+ibdcName = lens _imageBuilderDistributionConfigurationName (\s a -> s { _imageBuilderDistributionConfigurationName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-distributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-tags
+ibdcTags :: Lens' ImageBuilderDistributionConfiguration (Maybe Object)
+ibdcTags = lens _imageBuilderDistributionConfigurationTags (\s a -> s { _imageBuilderDistributionConfigurationTags = a })
diff --git a/library-gen/Stratosphere/Resources/ImageBuilderImagePipeline.hs b/library-gen/Stratosphere/Resources/ImageBuilderImagePipeline.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ImageBuilderImagePipeline.hs
@@ -0,0 +1,101 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html
+
+module Stratosphere.Resources.ImageBuilderImagePipeline where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.ImageBuilderImagePipelineImageTestsConfiguration
+import Stratosphere.ResourceProperties.ImageBuilderImagePipelineSchedule
+
+-- | Full data type definition for ImageBuilderImagePipeline. See
+-- 'imageBuilderImagePipeline' for a more convenient constructor.
+data ImageBuilderImagePipeline =
+  ImageBuilderImagePipeline
+  { _imageBuilderImagePipelineDescription :: Maybe (Val Text)
+  , _imageBuilderImagePipelineDistributionConfigurationArn :: Maybe (Val Text)
+  , _imageBuilderImagePipelineImageRecipeArn :: Val Text
+  , _imageBuilderImagePipelineImageTestsConfiguration :: Maybe ImageBuilderImagePipelineImageTestsConfiguration
+  , _imageBuilderImagePipelineInfrastructureConfigurationArn :: Val Text
+  , _imageBuilderImagePipelineName :: Val Text
+  , _imageBuilderImagePipelineSchedule :: Maybe ImageBuilderImagePipelineSchedule
+  , _imageBuilderImagePipelineStatus :: Maybe (Val Text)
+  , _imageBuilderImagePipelineTags :: Maybe Object
+  } deriving (Show, Eq)
+
+instance ToResourceProperties ImageBuilderImagePipeline where
+  toResourceProperties ImageBuilderImagePipeline{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::ImageBuilder::ImagePipeline"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("Description",) . toJSON) _imageBuilderImagePipelineDescription
+        , fmap (("DistributionConfigurationArn",) . toJSON) _imageBuilderImagePipelineDistributionConfigurationArn
+        , (Just . ("ImageRecipeArn",) . toJSON) _imageBuilderImagePipelineImageRecipeArn
+        , fmap (("ImageTestsConfiguration",) . toJSON) _imageBuilderImagePipelineImageTestsConfiguration
+        , (Just . ("InfrastructureConfigurationArn",) . toJSON) _imageBuilderImagePipelineInfrastructureConfigurationArn
+        , (Just . ("Name",) . toJSON) _imageBuilderImagePipelineName
+        , fmap (("Schedule",) . toJSON) _imageBuilderImagePipelineSchedule
+        , fmap (("Status",) . toJSON) _imageBuilderImagePipelineStatus
+        , fmap (("Tags",) . toJSON) _imageBuilderImagePipelineTags
+        ]
+    }
+
+-- | Constructor for 'ImageBuilderImagePipeline' containing required fields as
+-- arguments.
+imageBuilderImagePipeline
+  :: Val Text -- ^ 'ibipImageRecipeArn'
+  -> Val Text -- ^ 'ibipInfrastructureConfigurationArn'
+  -> Val Text -- ^ 'ibipName'
+  -> ImageBuilderImagePipeline
+imageBuilderImagePipeline imageRecipeArnarg infrastructureConfigurationArnarg namearg =
+  ImageBuilderImagePipeline
+  { _imageBuilderImagePipelineDescription = Nothing
+  , _imageBuilderImagePipelineDistributionConfigurationArn = Nothing
+  , _imageBuilderImagePipelineImageRecipeArn = imageRecipeArnarg
+  , _imageBuilderImagePipelineImageTestsConfiguration = Nothing
+  , _imageBuilderImagePipelineInfrastructureConfigurationArn = infrastructureConfigurationArnarg
+  , _imageBuilderImagePipelineName = namearg
+  , _imageBuilderImagePipelineSchedule = Nothing
+  , _imageBuilderImagePipelineStatus = Nothing
+  , _imageBuilderImagePipelineTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html#cfn-imagebuilder-imagepipeline-description
+ibipDescription :: Lens' ImageBuilderImagePipeline (Maybe (Val Text))
+ibipDescription = lens _imageBuilderImagePipelineDescription (\s a -> s { _imageBuilderImagePipelineDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html#cfn-imagebuilder-imagepipeline-distributionconfigurationarn
+ibipDistributionConfigurationArn :: Lens' ImageBuilderImagePipeline (Maybe (Val Text))
+ibipDistributionConfigurationArn = lens _imageBuilderImagePipelineDistributionConfigurationArn (\s a -> s { _imageBuilderImagePipelineDistributionConfigurationArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html#cfn-imagebuilder-imagepipeline-imagerecipearn
+ibipImageRecipeArn :: Lens' ImageBuilderImagePipeline (Val Text)
+ibipImageRecipeArn = lens _imageBuilderImagePipelineImageRecipeArn (\s a -> s { _imageBuilderImagePipelineImageRecipeArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html#cfn-imagebuilder-imagepipeline-imagetestsconfiguration
+ibipImageTestsConfiguration :: Lens' ImageBuilderImagePipeline (Maybe ImageBuilderImagePipelineImageTestsConfiguration)
+ibipImageTestsConfiguration = lens _imageBuilderImagePipelineImageTestsConfiguration (\s a -> s { _imageBuilderImagePipelineImageTestsConfiguration = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html#cfn-imagebuilder-imagepipeline-infrastructureconfigurationarn
+ibipInfrastructureConfigurationArn :: Lens' ImageBuilderImagePipeline (Val Text)
+ibipInfrastructureConfigurationArn = lens _imageBuilderImagePipelineInfrastructureConfigurationArn (\s a -> s { _imageBuilderImagePipelineInfrastructureConfigurationArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html#cfn-imagebuilder-imagepipeline-name
+ibipName :: Lens' ImageBuilderImagePipeline (Val Text)
+ibipName = lens _imageBuilderImagePipelineName (\s a -> s { _imageBuilderImagePipelineName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html#cfn-imagebuilder-imagepipeline-schedule
+ibipSchedule :: Lens' ImageBuilderImagePipeline (Maybe ImageBuilderImagePipelineSchedule)
+ibipSchedule = lens _imageBuilderImagePipelineSchedule (\s a -> s { _imageBuilderImagePipelineSchedule = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html#cfn-imagebuilder-imagepipeline-status
+ibipStatus :: Lens' ImageBuilderImagePipeline (Maybe (Val Text))
+ibipStatus = lens _imageBuilderImagePipelineStatus (\s a -> s { _imageBuilderImagePipelineStatus = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html#cfn-imagebuilder-imagepipeline-tags
+ibipTags :: Lens' ImageBuilderImagePipeline (Maybe Object)
+ibipTags = lens _imageBuilderImagePipelineTags (\s a -> s { _imageBuilderImagePipelineTags = a })
diff --git a/library-gen/Stratosphere/Resources/ImageBuilderImageRecipe.hs b/library-gen/Stratosphere/Resources/ImageBuilderImageRecipe.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ImageBuilderImageRecipe.hs
@@ -0,0 +1,88 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html
+
+module Stratosphere.Resources.ImageBuilderImageRecipe where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.ImageBuilderImageRecipeInstanceBlockDeviceMapping
+import Stratosphere.ResourceProperties.ImageBuilderImageRecipeComponentConfiguration
+
+-- | Full data type definition for ImageBuilderImageRecipe. See
+-- 'imageBuilderImageRecipe' for a more convenient constructor.
+data ImageBuilderImageRecipe =
+  ImageBuilderImageRecipe
+  { _imageBuilderImageRecipeBlockDeviceMappings :: Maybe [ImageBuilderImageRecipeInstanceBlockDeviceMapping]
+  , _imageBuilderImageRecipeComponents :: [ImageBuilderImageRecipeComponentConfiguration]
+  , _imageBuilderImageRecipeDescription :: Maybe (Val Text)
+  , _imageBuilderImageRecipeName :: Val Text
+  , _imageBuilderImageRecipeParentImage :: Val Text
+  , _imageBuilderImageRecipeTags :: Maybe Object
+  , _imageBuilderImageRecipeVersion :: Val Text
+  } deriving (Show, Eq)
+
+instance ToResourceProperties ImageBuilderImageRecipe where
+  toResourceProperties ImageBuilderImageRecipe{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::ImageBuilder::ImageRecipe"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("BlockDeviceMappings",) . toJSON) _imageBuilderImageRecipeBlockDeviceMappings
+        , (Just . ("Components",) . toJSON) _imageBuilderImageRecipeComponents
+        , fmap (("Description",) . toJSON) _imageBuilderImageRecipeDescription
+        , (Just . ("Name",) . toJSON) _imageBuilderImageRecipeName
+        , (Just . ("ParentImage",) . toJSON) _imageBuilderImageRecipeParentImage
+        , fmap (("Tags",) . toJSON) _imageBuilderImageRecipeTags
+        , (Just . ("Version",) . toJSON) _imageBuilderImageRecipeVersion
+        ]
+    }
+
+-- | Constructor for 'ImageBuilderImageRecipe' containing required fields as
+-- arguments.
+imageBuilderImageRecipe
+  :: [ImageBuilderImageRecipeComponentConfiguration] -- ^ 'ibirComponents'
+  -> Val Text -- ^ 'ibirName'
+  -> Val Text -- ^ 'ibirParentImage'
+  -> Val Text -- ^ 'ibirVersion'
+  -> ImageBuilderImageRecipe
+imageBuilderImageRecipe componentsarg namearg parentImagearg versionarg =
+  ImageBuilderImageRecipe
+  { _imageBuilderImageRecipeBlockDeviceMappings = Nothing
+  , _imageBuilderImageRecipeComponents = componentsarg
+  , _imageBuilderImageRecipeDescription = Nothing
+  , _imageBuilderImageRecipeName = namearg
+  , _imageBuilderImageRecipeParentImage = parentImagearg
+  , _imageBuilderImageRecipeTags = Nothing
+  , _imageBuilderImageRecipeVersion = versionarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-blockdevicemappings
+ibirBlockDeviceMappings :: Lens' ImageBuilderImageRecipe (Maybe [ImageBuilderImageRecipeInstanceBlockDeviceMapping])
+ibirBlockDeviceMappings = lens _imageBuilderImageRecipeBlockDeviceMappings (\s a -> s { _imageBuilderImageRecipeBlockDeviceMappings = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-components
+ibirComponents :: Lens' ImageBuilderImageRecipe [ImageBuilderImageRecipeComponentConfiguration]
+ibirComponents = lens _imageBuilderImageRecipeComponents (\s a -> s { _imageBuilderImageRecipeComponents = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-description
+ibirDescription :: Lens' ImageBuilderImageRecipe (Maybe (Val Text))
+ibirDescription = lens _imageBuilderImageRecipeDescription (\s a -> s { _imageBuilderImageRecipeDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-name
+ibirName :: Lens' ImageBuilderImageRecipe (Val Text)
+ibirName = lens _imageBuilderImageRecipeName (\s a -> s { _imageBuilderImageRecipeName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-parentimage
+ibirParentImage :: Lens' ImageBuilderImageRecipe (Val Text)
+ibirParentImage = lens _imageBuilderImageRecipeParentImage (\s a -> s { _imageBuilderImageRecipeParentImage = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-tags
+ibirTags :: Lens' ImageBuilderImageRecipe (Maybe Object)
+ibirTags = lens _imageBuilderImageRecipeTags (\s a -> s { _imageBuilderImageRecipeTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-version
+ibirVersion :: Lens' ImageBuilderImageRecipe (Val Text)
+ibirVersion = lens _imageBuilderImageRecipeVersion (\s a -> s { _imageBuilderImageRecipeVersion = a })
diff --git a/library-gen/Stratosphere/Resources/ImageBuilderInfrastructureConfiguration.hs b/library-gen/Stratosphere/Resources/ImageBuilderInfrastructureConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ImageBuilderInfrastructureConfiguration.hs
@@ -0,0 +1,114 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html
+
+module Stratosphere.Resources.ImageBuilderInfrastructureConfiguration where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for ImageBuilderInfrastructureConfiguration.
+-- See 'imageBuilderInfrastructureConfiguration' for a more convenient
+-- constructor.
+data ImageBuilderInfrastructureConfiguration =
+  ImageBuilderInfrastructureConfiguration
+  { _imageBuilderInfrastructureConfigurationDescription :: Maybe (Val Text)
+  , _imageBuilderInfrastructureConfigurationInstanceProfileName :: Val Text
+  , _imageBuilderInfrastructureConfigurationInstanceTypes :: Maybe (ValList Text)
+  , _imageBuilderInfrastructureConfigurationKeyPair :: Maybe (Val Text)
+  , _imageBuilderInfrastructureConfigurationLogging :: Maybe Object
+  , _imageBuilderInfrastructureConfigurationName :: Val Text
+  , _imageBuilderInfrastructureConfigurationSecurityGroupIds :: Maybe (ValList Text)
+  , _imageBuilderInfrastructureConfigurationSnsTopicArn :: Maybe (Val Text)
+  , _imageBuilderInfrastructureConfigurationSubnetId :: Maybe (Val Text)
+  , _imageBuilderInfrastructureConfigurationTags :: Maybe Object
+  , _imageBuilderInfrastructureConfigurationTerminateInstanceOnFailure :: Maybe (Val Bool)
+  } deriving (Show, Eq)
+
+instance ToResourceProperties ImageBuilderInfrastructureConfiguration where
+  toResourceProperties ImageBuilderInfrastructureConfiguration{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::ImageBuilder::InfrastructureConfiguration"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("Description",) . toJSON) _imageBuilderInfrastructureConfigurationDescription
+        , (Just . ("InstanceProfileName",) . toJSON) _imageBuilderInfrastructureConfigurationInstanceProfileName
+        , fmap (("InstanceTypes",) . toJSON) _imageBuilderInfrastructureConfigurationInstanceTypes
+        , fmap (("KeyPair",) . toJSON) _imageBuilderInfrastructureConfigurationKeyPair
+        , fmap (("Logging",) . toJSON) _imageBuilderInfrastructureConfigurationLogging
+        , (Just . ("Name",) . toJSON) _imageBuilderInfrastructureConfigurationName
+        , fmap (("SecurityGroupIds",) . toJSON) _imageBuilderInfrastructureConfigurationSecurityGroupIds
+        , fmap (("SnsTopicArn",) . toJSON) _imageBuilderInfrastructureConfigurationSnsTopicArn
+        , fmap (("SubnetId",) . toJSON) _imageBuilderInfrastructureConfigurationSubnetId
+        , fmap (("Tags",) . toJSON) _imageBuilderInfrastructureConfigurationTags
+        , fmap (("TerminateInstanceOnFailure",) . toJSON) _imageBuilderInfrastructureConfigurationTerminateInstanceOnFailure
+        ]
+    }
+
+-- | Constructor for 'ImageBuilderInfrastructureConfiguration' containing
+-- required fields as arguments.
+imageBuilderInfrastructureConfiguration
+  :: Val Text -- ^ 'ibicInstanceProfileName'
+  -> Val Text -- ^ 'ibicName'
+  -> ImageBuilderInfrastructureConfiguration
+imageBuilderInfrastructureConfiguration instanceProfileNamearg namearg =
+  ImageBuilderInfrastructureConfiguration
+  { _imageBuilderInfrastructureConfigurationDescription = Nothing
+  , _imageBuilderInfrastructureConfigurationInstanceProfileName = instanceProfileNamearg
+  , _imageBuilderInfrastructureConfigurationInstanceTypes = Nothing
+  , _imageBuilderInfrastructureConfigurationKeyPair = Nothing
+  , _imageBuilderInfrastructureConfigurationLogging = Nothing
+  , _imageBuilderInfrastructureConfigurationName = namearg
+  , _imageBuilderInfrastructureConfigurationSecurityGroupIds = Nothing
+  , _imageBuilderInfrastructureConfigurationSnsTopicArn = Nothing
+  , _imageBuilderInfrastructureConfigurationSubnetId = Nothing
+  , _imageBuilderInfrastructureConfigurationTags = Nothing
+  , _imageBuilderInfrastructureConfigurationTerminateInstanceOnFailure = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-description
+ibicDescription :: Lens' ImageBuilderInfrastructureConfiguration (Maybe (Val Text))
+ibicDescription = lens _imageBuilderInfrastructureConfigurationDescription (\s a -> s { _imageBuilderInfrastructureConfigurationDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-instanceprofilename
+ibicInstanceProfileName :: Lens' ImageBuilderInfrastructureConfiguration (Val Text)
+ibicInstanceProfileName = lens _imageBuilderInfrastructureConfigurationInstanceProfileName (\s a -> s { _imageBuilderInfrastructureConfigurationInstanceProfileName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-instancetypes
+ibicInstanceTypes :: Lens' ImageBuilderInfrastructureConfiguration (Maybe (ValList Text))
+ibicInstanceTypes = lens _imageBuilderInfrastructureConfigurationInstanceTypes (\s a -> s { _imageBuilderInfrastructureConfigurationInstanceTypes = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-keypair
+ibicKeyPair :: Lens' ImageBuilderInfrastructureConfiguration (Maybe (Val Text))
+ibicKeyPair = lens _imageBuilderInfrastructureConfigurationKeyPair (\s a -> s { _imageBuilderInfrastructureConfigurationKeyPair = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-logging
+ibicLogging :: Lens' ImageBuilderInfrastructureConfiguration (Maybe Object)
+ibicLogging = lens _imageBuilderInfrastructureConfigurationLogging (\s a -> s { _imageBuilderInfrastructureConfigurationLogging = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-name
+ibicName :: Lens' ImageBuilderInfrastructureConfiguration (Val Text)
+ibicName = lens _imageBuilderInfrastructureConfigurationName (\s a -> s { _imageBuilderInfrastructureConfigurationName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-securitygroupids
+ibicSecurityGroupIds :: Lens' ImageBuilderInfrastructureConfiguration (Maybe (ValList Text))
+ibicSecurityGroupIds = lens _imageBuilderInfrastructureConfigurationSecurityGroupIds (\s a -> s { _imageBuilderInfrastructureConfigurationSecurityGroupIds = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-snstopicarn
+ibicSnsTopicArn :: Lens' ImageBuilderInfrastructureConfiguration (Maybe (Val Text))
+ibicSnsTopicArn = lens _imageBuilderInfrastructureConfigurationSnsTopicArn (\s a -> s { _imageBuilderInfrastructureConfigurationSnsTopicArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-subnetid
+ibicSubnetId :: Lens' ImageBuilderInfrastructureConfiguration (Maybe (Val Text))
+ibicSubnetId = lens _imageBuilderInfrastructureConfigurationSubnetId (\s a -> s { _imageBuilderInfrastructureConfigurationSubnetId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-tags
+ibicTags :: Lens' ImageBuilderInfrastructureConfiguration (Maybe Object)
+ibicTags = lens _imageBuilderInfrastructureConfigurationTags (\s a -> s { _imageBuilderInfrastructureConfigurationTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-terminateinstanceonfailure
+ibicTerminateInstanceOnFailure :: Lens' ImageBuilderInfrastructureConfiguration (Maybe (Val Bool))
+ibicTerminateInstanceOnFailure = lens _imageBuilderInfrastructureConfigurationTerminateInstanceOnFailure (\s a -> s { _imageBuilderInfrastructureConfigurationTerminateInstanceOnFailure = a })
diff --git a/library-gen/Stratosphere/Resources/KinesisAnalyticsV2Application.hs b/library-gen/Stratosphere/Resources/KinesisAnalyticsV2Application.hs
--- a/library-gen/Stratosphere/Resources/KinesisAnalyticsV2Application.hs
+++ b/library-gen/Stratosphere/Resources/KinesisAnalyticsV2Application.hs
@@ -9,6 +9,7 @@
 
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationApplicationConfiguration
+import Stratosphere.ResourceProperties.Tag
 
 -- | Full data type definition for KinesisAnalyticsV2Application. See
 -- 'kinesisAnalyticsV2Application' for a more convenient constructor.
@@ -19,6 +20,7 @@
   , _kinesisAnalyticsV2ApplicationApplicationName :: Maybe (Val Text)
   , _kinesisAnalyticsV2ApplicationRuntimeEnvironment :: Val Text
   , _kinesisAnalyticsV2ApplicationServiceExecutionRole :: Val Text
+  , _kinesisAnalyticsV2ApplicationTags :: Maybe [Tag]
   } deriving (Show, Eq)
 
 instance ToResourceProperties KinesisAnalyticsV2Application where
@@ -32,6 +34,7 @@
         , fmap (("ApplicationName",) . toJSON) _kinesisAnalyticsV2ApplicationApplicationName
         , (Just . ("RuntimeEnvironment",) . toJSON) _kinesisAnalyticsV2ApplicationRuntimeEnvironment
         , (Just . ("ServiceExecutionRole",) . toJSON) _kinesisAnalyticsV2ApplicationServiceExecutionRole
+        , fmap (("Tags",) . toJSON) _kinesisAnalyticsV2ApplicationTags
         ]
     }
 
@@ -48,6 +51,7 @@
   , _kinesisAnalyticsV2ApplicationApplicationName = Nothing
   , _kinesisAnalyticsV2ApplicationRuntimeEnvironment = runtimeEnvironmentarg
   , _kinesisAnalyticsV2ApplicationServiceExecutionRole = serviceExecutionRolearg
+  , _kinesisAnalyticsV2ApplicationTags = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html#cfn-kinesisanalyticsv2-application-applicationconfiguration
@@ -69,3 +73,7 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html#cfn-kinesisanalyticsv2-application-serviceexecutionrole
 kavaServiceExecutionRole :: Lens' KinesisAnalyticsV2Application (Val Text)
 kavaServiceExecutionRole = lens _kinesisAnalyticsV2ApplicationServiceExecutionRole (\s a -> s { _kinesisAnalyticsV2ApplicationServiceExecutionRole = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html#cfn-kinesisanalyticsv2-application-tags
+kavaTags :: Lens' KinesisAnalyticsV2Application (Maybe [Tag])
+kavaTags = lens _kinesisAnalyticsV2ApplicationTags (\s a -> s { _kinesisAnalyticsV2ApplicationTags = a })
diff --git a/library-gen/Stratosphere/Resources/StepFunctionsStateMachine.hs b/library-gen/Stratosphere/Resources/StepFunctionsStateMachine.hs
--- a/library-gen/Stratosphere/Resources/StepFunctionsStateMachine.hs
+++ b/library-gen/Stratosphere/Resources/StepFunctionsStateMachine.hs
@@ -10,6 +10,7 @@
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.StepFunctionsStateMachineLoggingConfiguration
 import Stratosphere.ResourceProperties.StepFunctionsStateMachineTagsEntry
+import Stratosphere.ResourceProperties.StepFunctionsStateMachineTracingConfiguration
 
 -- | Full data type definition for StepFunctionsStateMachine. See
 -- 'stepFunctionsStateMachine' for a more convenient constructor.
@@ -21,6 +22,7 @@
   , _stepFunctionsStateMachineStateMachineName :: Maybe (Val Text)
   , _stepFunctionsStateMachineStateMachineType :: Maybe (Val Text)
   , _stepFunctionsStateMachineTags :: Maybe [StepFunctionsStateMachineTagsEntry]
+  , _stepFunctionsStateMachineTracingConfiguration :: Maybe StepFunctionsStateMachineTracingConfiguration
   } deriving (Show, Eq)
 
 instance ToResourceProperties StepFunctionsStateMachine where
@@ -35,6 +37,7 @@
         , fmap (("StateMachineName",) . toJSON) _stepFunctionsStateMachineStateMachineName
         , fmap (("StateMachineType",) . toJSON) _stepFunctionsStateMachineStateMachineType
         , fmap (("Tags",) . toJSON) _stepFunctionsStateMachineTags
+        , fmap (("TracingConfiguration",) . toJSON) _stepFunctionsStateMachineTracingConfiguration
         ]
     }
 
@@ -52,6 +55,7 @@
   , _stepFunctionsStateMachineStateMachineName = Nothing
   , _stepFunctionsStateMachineStateMachineType = Nothing
   , _stepFunctionsStateMachineTags = Nothing
+  , _stepFunctionsStateMachineTracingConfiguration = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitionstring
@@ -77,3 +81,7 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tags
 sfsmTags :: Lens' StepFunctionsStateMachine (Maybe [StepFunctionsStateMachineTagsEntry])
 sfsmTags = lens _stepFunctionsStateMachineTags (\s a -> s { _stepFunctionsStateMachineTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration
+sfsmTracingConfiguration :: Lens' StepFunctionsStateMachine (Maybe StepFunctionsStateMachineTracingConfiguration)
+sfsmTracingConfiguration = lens _stepFunctionsStateMachineTracingConfiguration (\s a -> s { _stepFunctionsStateMachineTracingConfiguration = a })
diff --git a/stratosphere.cabal b/stratosphere.cabal
--- a/stratosphere.cabal
+++ b/stratosphere.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 9be75cdd17dace140468de699b0e2c48dc74cc00f31ad255104034da133f584c
+-- hash: d225bcf7b46ec58f804e082961a133e48b9dab8163d2040355a1ce961b621ea5
 
 name:           stratosphere
-version:        0.51.0
+version:        0.52.0
 synopsis:       EDSL for AWS CloudFormation
 description:    EDSL for AWS CloudFormation
 category:       AWS, Cloud
@@ -446,12 +446,13 @@
       Stratosphere.ResourceProperties.EC2ClientVpnEndpointConnectionLogOptions
       Stratosphere.ResourceProperties.EC2ClientVpnEndpointDirectoryServiceAuthenticationRequest
       Stratosphere.ResourceProperties.EC2ClientVpnEndpointTagSpecification
+      Stratosphere.ResourceProperties.EC2EC2FleetCapacityReservationOptionsRequest
       Stratosphere.ResourceProperties.EC2EC2FleetFleetLaunchTemplateConfigRequest
       Stratosphere.ResourceProperties.EC2EC2FleetFleetLaunchTemplateOverridesRequest
       Stratosphere.ResourceProperties.EC2EC2FleetFleetLaunchTemplateSpecificationRequest
       Stratosphere.ResourceProperties.EC2EC2FleetOnDemandOptionsRequest
+      Stratosphere.ResourceProperties.EC2EC2FleetPlacement
       Stratosphere.ResourceProperties.EC2EC2FleetSpotOptionsRequest
-      Stratosphere.ResourceProperties.EC2EC2FleetTagRequest
       Stratosphere.ResourceProperties.EC2EC2FleetTagSpecification
       Stratosphere.ResourceProperties.EC2EC2FleetTargetCapacitySpecificationRequest
       Stratosphere.ResourceProperties.EC2InstanceAssociationParameter
@@ -806,6 +807,14 @@
       Stratosphere.ResourceProperties.IAMRolePolicy
       Stratosphere.ResourceProperties.IAMUserLoginProfile
       Stratosphere.ResourceProperties.IAMUserPolicy
+      Stratosphere.ResourceProperties.ImageBuilderDistributionConfigurationDistribution
+      Stratosphere.ResourceProperties.ImageBuilderImagePipelineImageTestsConfiguration
+      Stratosphere.ResourceProperties.ImageBuilderImagePipelineSchedule
+      Stratosphere.ResourceProperties.ImageBuilderImageRecipeComponentConfiguration
+      Stratosphere.ResourceProperties.ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification
+      Stratosphere.ResourceProperties.ImageBuilderImageRecipeInstanceBlockDeviceMapping
+      Stratosphere.ResourceProperties.ImageBuilderInfrastructureConfigurationLogging
+      Stratosphere.ResourceProperties.ImageBuilderInfrastructureConfigurationS3Logs
       Stratosphere.ResourceProperties.IoT1ClickProjectDeviceTemplate
       Stratosphere.ResourceProperties.IoT1ClickProjectPlacementTemplate
       Stratosphere.ResourceProperties.IoTAnalyticsChannelChannelStorage
@@ -869,18 +878,28 @@
       Stratosphere.ResourceProperties.IoTThingAttributePayload
       Stratosphere.ResourceProperties.IoTThingsGraphFlowTemplateDefinitionDocument
       Stratosphere.ResourceProperties.IoTTopicRuleAction
+      Stratosphere.ResourceProperties.IoTTopicRuleAssetPropertyTimestamp
+      Stratosphere.ResourceProperties.IoTTopicRuleAssetPropertyValue
+      Stratosphere.ResourceProperties.IoTTopicRuleAssetPropertyVariant
       Stratosphere.ResourceProperties.IoTTopicRuleCloudwatchAlarmAction
       Stratosphere.ResourceProperties.IoTTopicRuleCloudwatchMetricAction
       Stratosphere.ResourceProperties.IoTTopicRuleDynamoDBAction
       Stratosphere.ResourceProperties.IoTTopicRuleDynamoDBV2Action
       Stratosphere.ResourceProperties.IoTTopicRuleElasticsearchAction
       Stratosphere.ResourceProperties.IoTTopicRuleFirehoseAction
+      Stratosphere.ResourceProperties.IoTTopicRuleHttpAction
+      Stratosphere.ResourceProperties.IoTTopicRuleHttpActionHeader
+      Stratosphere.ResourceProperties.IoTTopicRuleHttpAuthorization
       Stratosphere.ResourceProperties.IoTTopicRuleIotAnalyticsAction
+      Stratosphere.ResourceProperties.IoTTopicRuleIotEventsAction
+      Stratosphere.ResourceProperties.IoTTopicRuleIotSiteWiseAction
       Stratosphere.ResourceProperties.IoTTopicRuleKinesisAction
       Stratosphere.ResourceProperties.IoTTopicRuleLambdaAction
+      Stratosphere.ResourceProperties.IoTTopicRulePutAssetPropertyValueEntry
       Stratosphere.ResourceProperties.IoTTopicRulePutItemInput
       Stratosphere.ResourceProperties.IoTTopicRuleRepublishAction
       Stratosphere.ResourceProperties.IoTTopicRuleS3Action
+      Stratosphere.ResourceProperties.IoTTopicRuleSigV4Authorization
       Stratosphere.ResourceProperties.IoTTopicRuleSnsAction
       Stratosphere.ResourceProperties.IoTTopicRuleSqsAction
       Stratosphere.ResourceProperties.IoTTopicRuleStepFunctionsAction
@@ -1262,6 +1281,7 @@
       Stratosphere.ResourceProperties.StepFunctionsStateMachineLogDestination
       Stratosphere.ResourceProperties.StepFunctionsStateMachineLoggingConfiguration
       Stratosphere.ResourceProperties.StepFunctionsStateMachineTagsEntry
+      Stratosphere.ResourceProperties.StepFunctionsStateMachineTracingConfiguration
       Stratosphere.ResourceProperties.Tag
       Stratosphere.ResourceProperties.TransferServerEndpointDetails
       Stratosphere.ResourceProperties.TransferServerIdentityProviderDetails
@@ -1485,6 +1505,8 @@
       Stratosphere.Resources.DAXCluster
       Stratosphere.Resources.DAXParameterGroup
       Stratosphere.Resources.DAXSubnetGroup
+      Stratosphere.Resources.DetectiveGraph
+      Stratosphere.Resources.DetectiveMemberInvitation
       Stratosphere.Resources.DirectoryServiceMicrosoftAD
       Stratosphere.Resources.DirectoryServiceSimpleAD
       Stratosphere.Resources.DLMLifecyclePolicy
@@ -1652,6 +1674,11 @@
       Stratosphere.Resources.IAMServiceLinkedRole
       Stratosphere.Resources.IAMUser
       Stratosphere.Resources.IAMUserToGroupAddition
+      Stratosphere.Resources.ImageBuilderComponent
+      Stratosphere.Resources.ImageBuilderDistributionConfiguration
+      Stratosphere.Resources.ImageBuilderImagePipeline
+      Stratosphere.Resources.ImageBuilderImageRecipe
+      Stratosphere.Resources.ImageBuilderInfrastructureConfiguration
       Stratosphere.Resources.InspectorAssessmentTarget
       Stratosphere.Resources.InspectorAssessmentTemplate
       Stratosphere.Resources.InspectorResourceGroup
