diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Change Log
 
+## 0.9.0
+
+* Update resource specification document to version 1.6.0
+
 ## 0.8.0
 
 * Update resource specification document (no version given in doc)
diff --git a/examples/apigw-lambda-dynamodb.hs b/examples/apigw-lambda-dynamodb.hs
--- a/examples/apigw-lambda-dynamodb.hs
+++ b/examples/apigw-lambda-dynamodb.hs
@@ -329,9 +329,9 @@
 dynamoDbTable = resource "Table" $
   DynamoDBTableProperties $
   dynamoDBTable
-    attributeDefinitions
     keySchema
     provisionedThroughput
+  & ddbtAttributeDefinitions ?~ attributeDefinitions
   & ddbtTableName ?~ "stratosphere-dynamodb-table"
 
   where
diff --git a/library-gen/Stratosphere/ResourceProperties/BatchComputeEnvironmentComputeResources.hs b/library-gen/Stratosphere/ResourceProperties/BatchComputeEnvironmentComputeResources.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/BatchComputeEnvironmentComputeResources.hs
@@ -0,0 +1,153 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html
+
+module Stratosphere.ResourceProperties.BatchComputeEnvironmentComputeResources where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for BatchComputeEnvironmentComputeResources.
+-- See 'batchComputeEnvironmentComputeResources' for a more convenient
+-- constructor.
+data BatchComputeEnvironmentComputeResources =
+  BatchComputeEnvironmentComputeResources
+  { _batchComputeEnvironmentComputeResourcesBidPercentage :: Maybe (Val Integer)
+  , _batchComputeEnvironmentComputeResourcesDesiredvCpus :: Maybe (Val Integer)
+  , _batchComputeEnvironmentComputeResourcesEc2KeyPair :: Maybe (Val Text)
+  , _batchComputeEnvironmentComputeResourcesImageId :: Maybe (Val Text)
+  , _batchComputeEnvironmentComputeResourcesInstanceRole :: Val Text
+  , _batchComputeEnvironmentComputeResourcesInstanceTypes :: ValList Text
+  , _batchComputeEnvironmentComputeResourcesMaxvCpus :: Val Integer
+  , _batchComputeEnvironmentComputeResourcesMinvCpus :: Val Integer
+  , _batchComputeEnvironmentComputeResourcesSecurityGroupIds :: ValList Text
+  , _batchComputeEnvironmentComputeResourcesSpotIamFleetRole :: Maybe (Val Text)
+  , _batchComputeEnvironmentComputeResourcesSubnets :: ValList Text
+  , _batchComputeEnvironmentComputeResourcesTags :: Maybe Object
+  , _batchComputeEnvironmentComputeResourcesType :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON BatchComputeEnvironmentComputeResources where
+  toJSON BatchComputeEnvironmentComputeResources{..} =
+    object $
+    catMaybes
+    [ fmap (("BidPercentage",) . toJSON . fmap Integer') _batchComputeEnvironmentComputeResourcesBidPercentage
+    , fmap (("DesiredvCpus",) . toJSON . fmap Integer') _batchComputeEnvironmentComputeResourcesDesiredvCpus
+    , fmap (("Ec2KeyPair",) . toJSON) _batchComputeEnvironmentComputeResourcesEc2KeyPair
+    , fmap (("ImageId",) . toJSON) _batchComputeEnvironmentComputeResourcesImageId
+    , (Just . ("InstanceRole",) . toJSON) _batchComputeEnvironmentComputeResourcesInstanceRole
+    , (Just . ("InstanceTypes",) . toJSON) _batchComputeEnvironmentComputeResourcesInstanceTypes
+    , (Just . ("MaxvCpus",) . toJSON . fmap Integer') _batchComputeEnvironmentComputeResourcesMaxvCpus
+    , (Just . ("MinvCpus",) . toJSON . fmap Integer') _batchComputeEnvironmentComputeResourcesMinvCpus
+    , (Just . ("SecurityGroupIds",) . toJSON) _batchComputeEnvironmentComputeResourcesSecurityGroupIds
+    , fmap (("SpotIamFleetRole",) . toJSON) _batchComputeEnvironmentComputeResourcesSpotIamFleetRole
+    , (Just . ("Subnets",) . toJSON) _batchComputeEnvironmentComputeResourcesSubnets
+    , fmap (("Tags",) . toJSON) _batchComputeEnvironmentComputeResourcesTags
+    , (Just . ("Type",) . toJSON) _batchComputeEnvironmentComputeResourcesType
+    ]
+
+instance FromJSON BatchComputeEnvironmentComputeResources where
+  parseJSON (Object obj) =
+    BatchComputeEnvironmentComputeResources <$>
+      fmap (fmap (fmap unInteger')) (obj .:? "BidPercentage") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "DesiredvCpus") <*>
+      (obj .:? "Ec2KeyPair") <*>
+      (obj .:? "ImageId") <*>
+      (obj .: "InstanceRole") <*>
+      (obj .: "InstanceTypes") <*>
+      fmap (fmap unInteger') (obj .: "MaxvCpus") <*>
+      fmap (fmap unInteger') (obj .: "MinvCpus") <*>
+      (obj .: "SecurityGroupIds") <*>
+      (obj .:? "SpotIamFleetRole") <*>
+      (obj .: "Subnets") <*>
+      (obj .:? "Tags") <*>
+      (obj .: "Type")
+  parseJSON _ = mempty
+
+-- | Constructor for 'BatchComputeEnvironmentComputeResources' containing
+-- required fields as arguments.
+batchComputeEnvironmentComputeResources
+  :: Val Text -- ^ 'bcecrInstanceRole'
+  -> ValList Text -- ^ 'bcecrInstanceTypes'
+  -> Val Integer -- ^ 'bcecrMaxvCpus'
+  -> Val Integer -- ^ 'bcecrMinvCpus'
+  -> ValList Text -- ^ 'bcecrSecurityGroupIds'
+  -> ValList Text -- ^ 'bcecrSubnets'
+  -> Val Text -- ^ 'bcecrType'
+  -> BatchComputeEnvironmentComputeResources
+batchComputeEnvironmentComputeResources instanceRolearg instanceTypesarg maxvCpusarg minvCpusarg securityGroupIdsarg subnetsarg typearg =
+  BatchComputeEnvironmentComputeResources
+  { _batchComputeEnvironmentComputeResourcesBidPercentage = Nothing
+  , _batchComputeEnvironmentComputeResourcesDesiredvCpus = Nothing
+  , _batchComputeEnvironmentComputeResourcesEc2KeyPair = Nothing
+  , _batchComputeEnvironmentComputeResourcesImageId = Nothing
+  , _batchComputeEnvironmentComputeResourcesInstanceRole = instanceRolearg
+  , _batchComputeEnvironmentComputeResourcesInstanceTypes = instanceTypesarg
+  , _batchComputeEnvironmentComputeResourcesMaxvCpus = maxvCpusarg
+  , _batchComputeEnvironmentComputeResourcesMinvCpus = minvCpusarg
+  , _batchComputeEnvironmentComputeResourcesSecurityGroupIds = securityGroupIdsarg
+  , _batchComputeEnvironmentComputeResourcesSpotIamFleetRole = Nothing
+  , _batchComputeEnvironmentComputeResourcesSubnets = subnetsarg
+  , _batchComputeEnvironmentComputeResourcesTags = Nothing
+  , _batchComputeEnvironmentComputeResourcesType = typearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-bidpercentage
+bcecrBidPercentage :: Lens' BatchComputeEnvironmentComputeResources (Maybe (Val Integer))
+bcecrBidPercentage = lens _batchComputeEnvironmentComputeResourcesBidPercentage (\s a -> s { _batchComputeEnvironmentComputeResourcesBidPercentage = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-desiredvcpus
+bcecrDesiredvCpus :: Lens' BatchComputeEnvironmentComputeResources (Maybe (Val Integer))
+bcecrDesiredvCpus = lens _batchComputeEnvironmentComputeResourcesDesiredvCpus (\s a -> s { _batchComputeEnvironmentComputeResourcesDesiredvCpus = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2keypair
+bcecrEc2KeyPair :: Lens' BatchComputeEnvironmentComputeResources (Maybe (Val Text))
+bcecrEc2KeyPair = lens _batchComputeEnvironmentComputeResourcesEc2KeyPair (\s a -> s { _batchComputeEnvironmentComputeResourcesEc2KeyPair = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-imageid
+bcecrImageId :: Lens' BatchComputeEnvironmentComputeResources (Maybe (Val Text))
+bcecrImageId = lens _batchComputeEnvironmentComputeResourcesImageId (\s a -> s { _batchComputeEnvironmentComputeResourcesImageId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancerole
+bcecrInstanceRole :: Lens' BatchComputeEnvironmentComputeResources (Val Text)
+bcecrInstanceRole = lens _batchComputeEnvironmentComputeResourcesInstanceRole (\s a -> s { _batchComputeEnvironmentComputeResourcesInstanceRole = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancetypes
+bcecrInstanceTypes :: Lens' BatchComputeEnvironmentComputeResources (ValList Text)
+bcecrInstanceTypes = lens _batchComputeEnvironmentComputeResourcesInstanceTypes (\s a -> s { _batchComputeEnvironmentComputeResourcesInstanceTypes = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-maxvcpus
+bcecrMaxvCpus :: Lens' BatchComputeEnvironmentComputeResources (Val Integer)
+bcecrMaxvCpus = lens _batchComputeEnvironmentComputeResourcesMaxvCpus (\s a -> s { _batchComputeEnvironmentComputeResourcesMaxvCpus = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-minvcpus
+bcecrMinvCpus :: Lens' BatchComputeEnvironmentComputeResources (Val Integer)
+bcecrMinvCpus = lens _batchComputeEnvironmentComputeResourcesMinvCpus (\s a -> s { _batchComputeEnvironmentComputeResourcesMinvCpus = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-securitygroupids
+bcecrSecurityGroupIds :: Lens' BatchComputeEnvironmentComputeResources (ValList Text)
+bcecrSecurityGroupIds = lens _batchComputeEnvironmentComputeResourcesSecurityGroupIds (\s a -> s { _batchComputeEnvironmentComputeResourcesSecurityGroupIds = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-spotiamfleetrole
+bcecrSpotIamFleetRole :: Lens' BatchComputeEnvironmentComputeResources (Maybe (Val Text))
+bcecrSpotIamFleetRole = lens _batchComputeEnvironmentComputeResourcesSpotIamFleetRole (\s a -> s { _batchComputeEnvironmentComputeResourcesSpotIamFleetRole = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-subnets
+bcecrSubnets :: Lens' BatchComputeEnvironmentComputeResources (ValList Text)
+bcecrSubnets = lens _batchComputeEnvironmentComputeResourcesSubnets (\s a -> s { _batchComputeEnvironmentComputeResourcesSubnets = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-tags
+bcecrTags :: Lens' BatchComputeEnvironmentComputeResources (Maybe Object)
+bcecrTags = lens _batchComputeEnvironmentComputeResourcesTags (\s a -> s { _batchComputeEnvironmentComputeResourcesTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-type
+bcecrType :: Lens' BatchComputeEnvironmentComputeResources (Val Text)
+bcecrType = lens _batchComputeEnvironmentComputeResourcesType (\s a -> s { _batchComputeEnvironmentComputeResourcesType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionContainerProperties.hs b/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionContainerProperties.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionContainerProperties.hs
@@ -0,0 +1,144 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html
+
+module Stratosphere.ResourceProperties.BatchJobDefinitionContainerProperties where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+import Stratosphere.ResourceProperties.BatchJobDefinitionEnvironment
+import Stratosphere.ResourceProperties.BatchJobDefinitionMountPoints
+import Stratosphere.ResourceProperties.BatchJobDefinitionUlimit
+import Stratosphere.ResourceProperties.BatchJobDefinitionVolumes
+
+-- | Full data type definition for BatchJobDefinitionContainerProperties. See
+-- 'batchJobDefinitionContainerProperties' for a more convenient
+-- constructor.
+data BatchJobDefinitionContainerProperties =
+  BatchJobDefinitionContainerProperties
+  { _batchJobDefinitionContainerPropertiesCommand :: Maybe (ValList Text)
+  , _batchJobDefinitionContainerPropertiesEnvironment :: Maybe [BatchJobDefinitionEnvironment]
+  , _batchJobDefinitionContainerPropertiesImage :: Val Text
+  , _batchJobDefinitionContainerPropertiesJobRoleArn :: Maybe (Val Text)
+  , _batchJobDefinitionContainerPropertiesMemory :: Val Integer
+  , _batchJobDefinitionContainerPropertiesMountPoints :: Maybe [BatchJobDefinitionMountPoints]
+  , _batchJobDefinitionContainerPropertiesPrivileged :: Maybe (Val Bool)
+  , _batchJobDefinitionContainerPropertiesReadonlyRootFilesystem :: Maybe (Val Bool)
+  , _batchJobDefinitionContainerPropertiesUlimits :: Maybe [BatchJobDefinitionUlimit]
+  , _batchJobDefinitionContainerPropertiesUser :: Maybe (Val Text)
+  , _batchJobDefinitionContainerPropertiesVcpus :: Val Integer
+  , _batchJobDefinitionContainerPropertiesVolumes :: Maybe [BatchJobDefinitionVolumes]
+  } deriving (Show, Eq)
+
+instance ToJSON BatchJobDefinitionContainerProperties where
+  toJSON BatchJobDefinitionContainerProperties{..} =
+    object $
+    catMaybes
+    [ fmap (("Command",) . toJSON) _batchJobDefinitionContainerPropertiesCommand
+    , fmap (("Environment",) . toJSON) _batchJobDefinitionContainerPropertiesEnvironment
+    , (Just . ("Image",) . toJSON) _batchJobDefinitionContainerPropertiesImage
+    , fmap (("JobRoleArn",) . toJSON) _batchJobDefinitionContainerPropertiesJobRoleArn
+    , (Just . ("Memory",) . toJSON . fmap Integer') _batchJobDefinitionContainerPropertiesMemory
+    , fmap (("MountPoints",) . toJSON) _batchJobDefinitionContainerPropertiesMountPoints
+    , fmap (("Privileged",) . toJSON . fmap Bool') _batchJobDefinitionContainerPropertiesPrivileged
+    , fmap (("ReadonlyRootFilesystem",) . toJSON . fmap Bool') _batchJobDefinitionContainerPropertiesReadonlyRootFilesystem
+    , fmap (("Ulimits",) . toJSON) _batchJobDefinitionContainerPropertiesUlimits
+    , fmap (("User",) . toJSON) _batchJobDefinitionContainerPropertiesUser
+    , (Just . ("Vcpus",) . toJSON . fmap Integer') _batchJobDefinitionContainerPropertiesVcpus
+    , fmap (("Volumes",) . toJSON) _batchJobDefinitionContainerPropertiesVolumes
+    ]
+
+instance FromJSON BatchJobDefinitionContainerProperties where
+  parseJSON (Object obj) =
+    BatchJobDefinitionContainerProperties <$>
+      (obj .:? "Command") <*>
+      (obj .:? "Environment") <*>
+      (obj .: "Image") <*>
+      (obj .:? "JobRoleArn") <*>
+      fmap (fmap unInteger') (obj .: "Memory") <*>
+      (obj .:? "MountPoints") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "Privileged") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "ReadonlyRootFilesystem") <*>
+      (obj .:? "Ulimits") <*>
+      (obj .:? "User") <*>
+      fmap (fmap unInteger') (obj .: "Vcpus") <*>
+      (obj .:? "Volumes")
+  parseJSON _ = mempty
+
+-- | Constructor for 'BatchJobDefinitionContainerProperties' containing
+-- required fields as arguments.
+batchJobDefinitionContainerProperties
+  :: Val Text -- ^ 'bjdcpImage'
+  -> Val Integer -- ^ 'bjdcpMemory'
+  -> Val Integer -- ^ 'bjdcpVcpus'
+  -> BatchJobDefinitionContainerProperties
+batchJobDefinitionContainerProperties imagearg memoryarg vcpusarg =
+  BatchJobDefinitionContainerProperties
+  { _batchJobDefinitionContainerPropertiesCommand = Nothing
+  , _batchJobDefinitionContainerPropertiesEnvironment = Nothing
+  , _batchJobDefinitionContainerPropertiesImage = imagearg
+  , _batchJobDefinitionContainerPropertiesJobRoleArn = Nothing
+  , _batchJobDefinitionContainerPropertiesMemory = memoryarg
+  , _batchJobDefinitionContainerPropertiesMountPoints = Nothing
+  , _batchJobDefinitionContainerPropertiesPrivileged = Nothing
+  , _batchJobDefinitionContainerPropertiesReadonlyRootFilesystem = Nothing
+  , _batchJobDefinitionContainerPropertiesUlimits = Nothing
+  , _batchJobDefinitionContainerPropertiesUser = Nothing
+  , _batchJobDefinitionContainerPropertiesVcpus = vcpusarg
+  , _batchJobDefinitionContainerPropertiesVolumes = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-command
+bjdcpCommand :: Lens' BatchJobDefinitionContainerProperties (Maybe (ValList Text))
+bjdcpCommand = lens _batchJobDefinitionContainerPropertiesCommand (\s a -> s { _batchJobDefinitionContainerPropertiesCommand = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-environment
+bjdcpEnvironment :: Lens' BatchJobDefinitionContainerProperties (Maybe [BatchJobDefinitionEnvironment])
+bjdcpEnvironment = lens _batchJobDefinitionContainerPropertiesEnvironment (\s a -> s { _batchJobDefinitionContainerPropertiesEnvironment = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-image
+bjdcpImage :: Lens' BatchJobDefinitionContainerProperties (Val Text)
+bjdcpImage = lens _batchJobDefinitionContainerPropertiesImage (\s a -> s { _batchJobDefinitionContainerPropertiesImage = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-jobrolearn
+bjdcpJobRoleArn :: Lens' BatchJobDefinitionContainerProperties (Maybe (Val Text))
+bjdcpJobRoleArn = lens _batchJobDefinitionContainerPropertiesJobRoleArn (\s a -> s { _batchJobDefinitionContainerPropertiesJobRoleArn = 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 _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
+bjdcpMountPoints :: Lens' BatchJobDefinitionContainerProperties (Maybe [BatchJobDefinitionMountPoints])
+bjdcpMountPoints = lens _batchJobDefinitionContainerPropertiesMountPoints (\s a -> s { _batchJobDefinitionContainerPropertiesMountPoints = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-privileged
+bjdcpPrivileged :: Lens' BatchJobDefinitionContainerProperties (Maybe (Val Bool))
+bjdcpPrivileged = lens _batchJobDefinitionContainerPropertiesPrivileged (\s a -> s { _batchJobDefinitionContainerPropertiesPrivileged = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-readonlyrootfilesystem
+bjdcpReadonlyRootFilesystem :: Lens' BatchJobDefinitionContainerProperties (Maybe (Val Bool))
+bjdcpReadonlyRootFilesystem = lens _batchJobDefinitionContainerPropertiesReadonlyRootFilesystem (\s a -> s { _batchJobDefinitionContainerPropertiesReadonlyRootFilesystem = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-ulimits
+bjdcpUlimits :: Lens' BatchJobDefinitionContainerProperties (Maybe [BatchJobDefinitionUlimit])
+bjdcpUlimits = lens _batchJobDefinitionContainerPropertiesUlimits (\s a -> s { _batchJobDefinitionContainerPropertiesUlimits = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-user
+bjdcpUser :: Lens' BatchJobDefinitionContainerProperties (Maybe (Val Text))
+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 _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
+bjdcpVolumes :: Lens' BatchJobDefinitionContainerProperties (Maybe [BatchJobDefinitionVolumes])
+bjdcpVolumes = lens _batchJobDefinitionContainerPropertiesVolumes (\s a -> s { _batchJobDefinitionContainerPropertiesVolumes = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionEnvironment.hs b/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionEnvironment.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionEnvironment.hs
@@ -0,0 +1,57 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-environment.html
+
+module Stratosphere.ResourceProperties.BatchJobDefinitionEnvironment where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for BatchJobDefinitionEnvironment. See
+-- 'batchJobDefinitionEnvironment' for a more convenient constructor.
+data BatchJobDefinitionEnvironment =
+  BatchJobDefinitionEnvironment
+  { _batchJobDefinitionEnvironmentName :: Maybe (Val Text)
+  , _batchJobDefinitionEnvironmentValue :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON BatchJobDefinitionEnvironment where
+  toJSON BatchJobDefinitionEnvironment{..} =
+    object $
+    catMaybes
+    [ fmap (("Name",) . toJSON) _batchJobDefinitionEnvironmentName
+    , fmap (("Value",) . toJSON) _batchJobDefinitionEnvironmentValue
+    ]
+
+instance FromJSON BatchJobDefinitionEnvironment where
+  parseJSON (Object obj) =
+    BatchJobDefinitionEnvironment <$>
+      (obj .:? "Name") <*>
+      (obj .:? "Value")
+  parseJSON _ = mempty
+
+-- | Constructor for 'BatchJobDefinitionEnvironment' containing required
+-- fields as arguments.
+batchJobDefinitionEnvironment
+  :: BatchJobDefinitionEnvironment
+batchJobDefinitionEnvironment  =
+  BatchJobDefinitionEnvironment
+  { _batchJobDefinitionEnvironmentName = Nothing
+  , _batchJobDefinitionEnvironmentValue = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-environment.html#cfn-batch-jobdefinition-environment-name
+bjdeName :: Lens' BatchJobDefinitionEnvironment (Maybe (Val Text))
+bjdeName = lens _batchJobDefinitionEnvironmentName (\s a -> s { _batchJobDefinitionEnvironmentName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-environment.html#cfn-batch-jobdefinition-environment-value
+bjdeValue :: Lens' BatchJobDefinitionEnvironment (Maybe (Val Text))
+bjdeValue = lens _batchJobDefinitionEnvironmentValue (\s a -> s { _batchJobDefinitionEnvironmentValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionMountPoints.hs b/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionMountPoints.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionMountPoints.hs
@@ -0,0 +1,65 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html
+
+module Stratosphere.ResourceProperties.BatchJobDefinitionMountPoints where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for BatchJobDefinitionMountPoints. See
+-- 'batchJobDefinitionMountPoints' for a more convenient constructor.
+data BatchJobDefinitionMountPoints =
+  BatchJobDefinitionMountPoints
+  { _batchJobDefinitionMountPointsContainerPath :: Maybe (Val Text)
+  , _batchJobDefinitionMountPointsReadOnly :: Maybe (Val Bool)
+  , _batchJobDefinitionMountPointsSourceVolume :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON BatchJobDefinitionMountPoints where
+  toJSON BatchJobDefinitionMountPoints{..} =
+    object $
+    catMaybes
+    [ fmap (("ContainerPath",) . toJSON) _batchJobDefinitionMountPointsContainerPath
+    , fmap (("ReadOnly",) . toJSON . fmap Bool') _batchJobDefinitionMountPointsReadOnly
+    , fmap (("SourceVolume",) . toJSON) _batchJobDefinitionMountPointsSourceVolume
+    ]
+
+instance FromJSON BatchJobDefinitionMountPoints where
+  parseJSON (Object obj) =
+    BatchJobDefinitionMountPoints <$>
+      (obj .:? "ContainerPath") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "ReadOnly") <*>
+      (obj .:? "SourceVolume")
+  parseJSON _ = mempty
+
+-- | Constructor for 'BatchJobDefinitionMountPoints' containing required
+-- fields as arguments.
+batchJobDefinitionMountPoints
+  :: BatchJobDefinitionMountPoints
+batchJobDefinitionMountPoints  =
+  BatchJobDefinitionMountPoints
+  { _batchJobDefinitionMountPointsContainerPath = Nothing
+  , _batchJobDefinitionMountPointsReadOnly = Nothing
+  , _batchJobDefinitionMountPointsSourceVolume = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html#cfn-batch-jobdefinition-mountpoints-containerpath
+bjdmpContainerPath :: Lens' BatchJobDefinitionMountPoints (Maybe (Val Text))
+bjdmpContainerPath = lens _batchJobDefinitionMountPointsContainerPath (\s a -> s { _batchJobDefinitionMountPointsContainerPath = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html#cfn-batch-jobdefinition-mountpoints-readonly
+bjdmpReadOnly :: Lens' BatchJobDefinitionMountPoints (Maybe (Val Bool))
+bjdmpReadOnly = lens _batchJobDefinitionMountPointsReadOnly (\s a -> s { _batchJobDefinitionMountPointsReadOnly = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html#cfn-batch-jobdefinition-mountpoints-sourcevolume
+bjdmpSourceVolume :: Lens' BatchJobDefinitionMountPoints (Maybe (Val Text))
+bjdmpSourceVolume = lens _batchJobDefinitionMountPointsSourceVolume (\s a -> s { _batchJobDefinitionMountPointsSourceVolume = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionRetryStrategy.hs b/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionRetryStrategy.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionRetryStrategy.hs
@@ -0,0 +1,49 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-retrystrategy.html
+
+module Stratosphere.ResourceProperties.BatchJobDefinitionRetryStrategy where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for BatchJobDefinitionRetryStrategy. See
+-- 'batchJobDefinitionRetryStrategy' for a more convenient constructor.
+data BatchJobDefinitionRetryStrategy =
+  BatchJobDefinitionRetryStrategy
+  { _batchJobDefinitionRetryStrategyAttempts :: Maybe (Val Integer)
+  } deriving (Show, Eq)
+
+instance ToJSON BatchJobDefinitionRetryStrategy where
+  toJSON BatchJobDefinitionRetryStrategy{..} =
+    object $
+    catMaybes
+    [ fmap (("Attempts",) . toJSON . fmap Integer') _batchJobDefinitionRetryStrategyAttempts
+    ]
+
+instance FromJSON BatchJobDefinitionRetryStrategy where
+  parseJSON (Object obj) =
+    BatchJobDefinitionRetryStrategy <$>
+      fmap (fmap (fmap unInteger')) (obj .:? "Attempts")
+  parseJSON _ = mempty
+
+-- | Constructor for 'BatchJobDefinitionRetryStrategy' containing required
+-- fields as arguments.
+batchJobDefinitionRetryStrategy
+  :: BatchJobDefinitionRetryStrategy
+batchJobDefinitionRetryStrategy  =
+  BatchJobDefinitionRetryStrategy
+  { _batchJobDefinitionRetryStrategyAttempts = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-retrystrategy.html#cfn-batch-jobdefinition-retrystrategy-attempts
+bjdrsAttempts :: Lens' BatchJobDefinitionRetryStrategy (Maybe (Val Integer))
+bjdrsAttempts = lens _batchJobDefinitionRetryStrategyAttempts (\s a -> s { _batchJobDefinitionRetryStrategyAttempts = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionUlimit.hs b/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionUlimit.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionUlimit.hs
@@ -0,0 +1,68 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html
+
+module Stratosphere.ResourceProperties.BatchJobDefinitionUlimit where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for BatchJobDefinitionUlimit. See
+-- 'batchJobDefinitionUlimit' for a more convenient constructor.
+data BatchJobDefinitionUlimit =
+  BatchJobDefinitionUlimit
+  { _batchJobDefinitionUlimitHardLimit :: Val Integer
+  , _batchJobDefinitionUlimitName :: Val Text
+  , _batchJobDefinitionUlimitSoftLimit :: Val Integer
+  } deriving (Show, Eq)
+
+instance ToJSON BatchJobDefinitionUlimit where
+  toJSON BatchJobDefinitionUlimit{..} =
+    object $
+    catMaybes
+    [ (Just . ("HardLimit",) . toJSON . fmap Integer') _batchJobDefinitionUlimitHardLimit
+    , (Just . ("Name",) . toJSON) _batchJobDefinitionUlimitName
+    , (Just . ("SoftLimit",) . toJSON . fmap Integer') _batchJobDefinitionUlimitSoftLimit
+    ]
+
+instance FromJSON BatchJobDefinitionUlimit where
+  parseJSON (Object obj) =
+    BatchJobDefinitionUlimit <$>
+      fmap (fmap unInteger') (obj .: "HardLimit") <*>
+      (obj .: "Name") <*>
+      fmap (fmap unInteger') (obj .: "SoftLimit")
+  parseJSON _ = mempty
+
+-- | Constructor for 'BatchJobDefinitionUlimit' containing required fields as
+-- arguments.
+batchJobDefinitionUlimit
+  :: Val Integer -- ^ 'bjduHardLimit'
+  -> Val Text -- ^ 'bjduName'
+  -> Val Integer -- ^ 'bjduSoftLimit'
+  -> BatchJobDefinitionUlimit
+batchJobDefinitionUlimit hardLimitarg namearg softLimitarg =
+  BatchJobDefinitionUlimit
+  { _batchJobDefinitionUlimitHardLimit = hardLimitarg
+  , _batchJobDefinitionUlimitName = namearg
+  , _batchJobDefinitionUlimitSoftLimit = softLimitarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html#cfn-batch-jobdefinition-ulimit-hardlimit
+bjduHardLimit :: Lens' BatchJobDefinitionUlimit (Val Integer)
+bjduHardLimit = lens _batchJobDefinitionUlimitHardLimit (\s a -> s { _batchJobDefinitionUlimitHardLimit = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html#cfn-batch-jobdefinition-ulimit-name
+bjduName :: Lens' BatchJobDefinitionUlimit (Val Text)
+bjduName = lens _batchJobDefinitionUlimitName (\s a -> s { _batchJobDefinitionUlimitName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html#cfn-batch-jobdefinition-ulimit-softlimit
+bjduSoftLimit :: Lens' BatchJobDefinitionUlimit (Val Integer)
+bjduSoftLimit = lens _batchJobDefinitionUlimitSoftLimit (\s a -> s { _batchJobDefinitionUlimitSoftLimit = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionVolumes.hs b/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionVolumes.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionVolumes.hs
@@ -0,0 +1,57 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html
+
+module Stratosphere.ResourceProperties.BatchJobDefinitionVolumes where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+import Stratosphere.ResourceProperties.BatchJobDefinitionVolumesHost
+
+-- | Full data type definition for BatchJobDefinitionVolumes. See
+-- 'batchJobDefinitionVolumes' for a more convenient constructor.
+data BatchJobDefinitionVolumes =
+  BatchJobDefinitionVolumes
+  { _batchJobDefinitionVolumesHost :: Maybe BatchJobDefinitionVolumesHost
+  , _batchJobDefinitionVolumesName :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON BatchJobDefinitionVolumes where
+  toJSON BatchJobDefinitionVolumes{..} =
+    object $
+    catMaybes
+    [ fmap (("Host",) . toJSON) _batchJobDefinitionVolumesHost
+    , fmap (("Name",) . toJSON) _batchJobDefinitionVolumesName
+    ]
+
+instance FromJSON BatchJobDefinitionVolumes where
+  parseJSON (Object obj) =
+    BatchJobDefinitionVolumes <$>
+      (obj .:? "Host") <*>
+      (obj .:? "Name")
+  parseJSON _ = mempty
+
+-- | Constructor for 'BatchJobDefinitionVolumes' containing required fields as
+-- arguments.
+batchJobDefinitionVolumes
+  :: BatchJobDefinitionVolumes
+batchJobDefinitionVolumes  =
+  BatchJobDefinitionVolumes
+  { _batchJobDefinitionVolumesHost = Nothing
+  , _batchJobDefinitionVolumesName = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html#cfn-batch-jobdefinition-volumes-host
+bjdvHost :: Lens' BatchJobDefinitionVolumes (Maybe BatchJobDefinitionVolumesHost)
+bjdvHost = lens _batchJobDefinitionVolumesHost (\s a -> s { _batchJobDefinitionVolumesHost = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html#cfn-batch-jobdefinition-volumes-name
+bjdvName :: Lens' BatchJobDefinitionVolumes (Maybe (Val Text))
+bjdvName = lens _batchJobDefinitionVolumesName (\s a -> s { _batchJobDefinitionVolumesName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionVolumesHost.hs b/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionVolumesHost.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionVolumesHost.hs
@@ -0,0 +1,49 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumeshost.html
+
+module Stratosphere.ResourceProperties.BatchJobDefinitionVolumesHost where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for BatchJobDefinitionVolumesHost. See
+-- 'batchJobDefinitionVolumesHost' for a more convenient constructor.
+data BatchJobDefinitionVolumesHost =
+  BatchJobDefinitionVolumesHost
+  { _batchJobDefinitionVolumesHostSourcePath :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON BatchJobDefinitionVolumesHost where
+  toJSON BatchJobDefinitionVolumesHost{..} =
+    object $
+    catMaybes
+    [ fmap (("SourcePath",) . toJSON) _batchJobDefinitionVolumesHostSourcePath
+    ]
+
+instance FromJSON BatchJobDefinitionVolumesHost where
+  parseJSON (Object obj) =
+    BatchJobDefinitionVolumesHost <$>
+      (obj .:? "SourcePath")
+  parseJSON _ = mempty
+
+-- | Constructor for 'BatchJobDefinitionVolumesHost' containing required
+-- fields as arguments.
+batchJobDefinitionVolumesHost
+  :: BatchJobDefinitionVolumesHost
+batchJobDefinitionVolumesHost  =
+  BatchJobDefinitionVolumesHost
+  { _batchJobDefinitionVolumesHostSourcePath = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumeshost.html#cfn-batch-jobdefinition-volumeshost-sourcepath
+bjdvhSourcePath :: Lens' BatchJobDefinitionVolumesHost (Maybe (Val Text))
+bjdvhSourcePath = lens _batchJobDefinitionVolumesHostSourcePath (\s a -> s { _batchJobDefinitionVolumesHostSourcePath = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/BatchJobQueueComputeEnvironmentOrder.hs b/library-gen/Stratosphere/ResourceProperties/BatchJobQueueComputeEnvironmentOrder.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/BatchJobQueueComputeEnvironmentOrder.hs
@@ -0,0 +1,59 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-computeenvironmentorder.html
+
+module Stratosphere.ResourceProperties.BatchJobQueueComputeEnvironmentOrder where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for BatchJobQueueComputeEnvironmentOrder. See
+-- 'batchJobQueueComputeEnvironmentOrder' for a more convenient constructor.
+data BatchJobQueueComputeEnvironmentOrder =
+  BatchJobQueueComputeEnvironmentOrder
+  { _batchJobQueueComputeEnvironmentOrderComputeEnvironment :: Val Text
+  , _batchJobQueueComputeEnvironmentOrderOrder :: Val Integer
+  } deriving (Show, Eq)
+
+instance ToJSON BatchJobQueueComputeEnvironmentOrder where
+  toJSON BatchJobQueueComputeEnvironmentOrder{..} =
+    object $
+    catMaybes
+    [ (Just . ("ComputeEnvironment",) . toJSON) _batchJobQueueComputeEnvironmentOrderComputeEnvironment
+    , (Just . ("Order",) . toJSON . fmap Integer') _batchJobQueueComputeEnvironmentOrderOrder
+    ]
+
+instance FromJSON BatchJobQueueComputeEnvironmentOrder where
+  parseJSON (Object obj) =
+    BatchJobQueueComputeEnvironmentOrder <$>
+      (obj .: "ComputeEnvironment") <*>
+      fmap (fmap unInteger') (obj .: "Order")
+  parseJSON _ = mempty
+
+-- | Constructor for 'BatchJobQueueComputeEnvironmentOrder' containing
+-- required fields as arguments.
+batchJobQueueComputeEnvironmentOrder
+  :: Val Text -- ^ 'bjqceoComputeEnvironment'
+  -> Val Integer -- ^ 'bjqceoOrder'
+  -> BatchJobQueueComputeEnvironmentOrder
+batchJobQueueComputeEnvironmentOrder computeEnvironmentarg orderarg =
+  BatchJobQueueComputeEnvironmentOrder
+  { _batchJobQueueComputeEnvironmentOrderComputeEnvironment = computeEnvironmentarg
+  , _batchJobQueueComputeEnvironmentOrderOrder = orderarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-computeenvironmentorder.html#cfn-batch-jobqueue-computeenvironmentorder-computeenvironment
+bjqceoComputeEnvironment :: Lens' BatchJobQueueComputeEnvironmentOrder (Val Text)
+bjqceoComputeEnvironment = lens _batchJobQueueComputeEnvironmentOrderComputeEnvironment (\s a -> s { _batchJobQueueComputeEnvironmentOrderComputeEnvironment = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-computeenvironmentorder.html#cfn-batch-jobqueue-computeenvironmentorder-order
+bjqceoOrder :: Lens' BatchJobQueueComputeEnvironmentOrder (Val Integer)
+bjqceoOrder = lens _batchJobQueueComputeEnvironmentOrderOrder (\s a -> s { _batchJobQueueComputeEnvironmentOrderOrder = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectSourceAuth.hs b/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectSourceAuth.hs
--- a/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectSourceAuth.hs
+++ b/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectSourceAuth.hs
@@ -20,7 +20,7 @@
 data CodeBuildProjectSourceAuth =
   CodeBuildProjectSourceAuth
   { _codeBuildProjectSourceAuthResource :: Maybe (Val Text)
-  , _codeBuildProjectSourceAuthType :: Maybe (Val Text)
+  , _codeBuildProjectSourceAuthType :: Val Text
   } deriving (Show, Eq)
 
 instance ToJSON CodeBuildProjectSourceAuth where
@@ -28,24 +28,25 @@
     object $
     catMaybes
     [ fmap (("Resource",) . toJSON) _codeBuildProjectSourceAuthResource
-    , fmap (("Type",) . toJSON) _codeBuildProjectSourceAuthType
+    , (Just . ("Type",) . toJSON) _codeBuildProjectSourceAuthType
     ]
 
 instance FromJSON CodeBuildProjectSourceAuth where
   parseJSON (Object obj) =
     CodeBuildProjectSourceAuth <$>
       (obj .:? "Resource") <*>
-      (obj .:? "Type")
+      (obj .: "Type")
   parseJSON _ = mempty
 
 -- | Constructor for 'CodeBuildProjectSourceAuth' containing required fields
 -- as arguments.
 codeBuildProjectSourceAuth
-  :: CodeBuildProjectSourceAuth
-codeBuildProjectSourceAuth  =
+  :: Val Text -- ^ 'cbpsaType'
+  -> CodeBuildProjectSourceAuth
+codeBuildProjectSourceAuth typearg =
   CodeBuildProjectSourceAuth
   { _codeBuildProjectSourceAuthResource = Nothing
-  , _codeBuildProjectSourceAuthType = Nothing
+  , _codeBuildProjectSourceAuthType = typearg
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-sourceauth.html#cfn-codebuild-project-sourceauth-resource
@@ -53,5 +54,5 @@
 cbpsaResource = lens _codeBuildProjectSourceAuthResource (\s a -> s { _codeBuildProjectSourceAuthResource = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-sourceauth.html#cfn-codebuild-project-sourceauth-type
-cbpsaType :: Lens' CodeBuildProjectSourceAuth (Maybe (Val Text))
+cbpsaType :: Lens' CodeBuildProjectSourceAuth (Val Text)
 cbpsaType = lens _codeBuildProjectSourceAuthType (\s a -> s { _codeBuildProjectSourceAuthType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentGroupAutoRollbackConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentGroupAutoRollbackConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentGroupAutoRollbackConfiguration.hs
@@ -0,0 +1,59 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-autorollbackconfiguration.html
+
+module Stratosphere.ResourceProperties.CodeDeployDeploymentGroupAutoRollbackConfiguration where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for
+-- CodeDeployDeploymentGroupAutoRollbackConfiguration. See
+-- 'codeDeployDeploymentGroupAutoRollbackConfiguration' for a more
+-- convenient constructor.
+data CodeDeployDeploymentGroupAutoRollbackConfiguration =
+  CodeDeployDeploymentGroupAutoRollbackConfiguration
+  { _codeDeployDeploymentGroupAutoRollbackConfigurationEnabled :: Maybe (Val Bool)
+  , _codeDeployDeploymentGroupAutoRollbackConfigurationEvents :: Maybe (ValList Text)
+  } deriving (Show, Eq)
+
+instance ToJSON CodeDeployDeploymentGroupAutoRollbackConfiguration where
+  toJSON CodeDeployDeploymentGroupAutoRollbackConfiguration{..} =
+    object $
+    catMaybes
+    [ fmap (("Enabled",) . toJSON . fmap Bool') _codeDeployDeploymentGroupAutoRollbackConfigurationEnabled
+    , fmap (("Events",) . toJSON) _codeDeployDeploymentGroupAutoRollbackConfigurationEvents
+    ]
+
+instance FromJSON CodeDeployDeploymentGroupAutoRollbackConfiguration where
+  parseJSON (Object obj) =
+    CodeDeployDeploymentGroupAutoRollbackConfiguration <$>
+      fmap (fmap (fmap unBool')) (obj .:? "Enabled") <*>
+      (obj .:? "Events")
+  parseJSON _ = mempty
+
+-- | Constructor for 'CodeDeployDeploymentGroupAutoRollbackConfiguration'
+-- containing required fields as arguments.
+codeDeployDeploymentGroupAutoRollbackConfiguration
+  :: CodeDeployDeploymentGroupAutoRollbackConfiguration
+codeDeployDeploymentGroupAutoRollbackConfiguration  =
+  CodeDeployDeploymentGroupAutoRollbackConfiguration
+  { _codeDeployDeploymentGroupAutoRollbackConfigurationEnabled = Nothing
+  , _codeDeployDeploymentGroupAutoRollbackConfigurationEvents = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-autorollbackconfiguration.html#cfn-codedeploy-deploymentgroup-autorollbackconfiguration-enabled
+cddgarcEnabled :: Lens' CodeDeployDeploymentGroupAutoRollbackConfiguration (Maybe (Val Bool))
+cddgarcEnabled = lens _codeDeployDeploymentGroupAutoRollbackConfigurationEnabled (\s a -> s { _codeDeployDeploymentGroupAutoRollbackConfigurationEnabled = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-autorollbackconfiguration.html#cfn-codedeploy-deploymentgroup-autorollbackconfiguration-events
+cddgarcEvents :: Lens' CodeDeployDeploymentGroupAutoRollbackConfiguration (Maybe (ValList Text))
+cddgarcEvents = lens _codeDeployDeploymentGroupAutoRollbackConfigurationEvents (\s a -> s { _codeDeployDeploymentGroupAutoRollbackConfigurationEvents = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentGroupDeploymentStyle.hs b/library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentGroupDeploymentStyle.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentGroupDeploymentStyle.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentstyle.html
+
+module Stratosphere.ResourceProperties.CodeDeployDeploymentGroupDeploymentStyle where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for CodeDeployDeploymentGroupDeploymentStyle.
+-- See 'codeDeployDeploymentGroupDeploymentStyle' for a more convenient
+-- constructor.
+data CodeDeployDeploymentGroupDeploymentStyle =
+  CodeDeployDeploymentGroupDeploymentStyle
+  { _codeDeployDeploymentGroupDeploymentStyleDeploymentOption :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON CodeDeployDeploymentGroupDeploymentStyle where
+  toJSON CodeDeployDeploymentGroupDeploymentStyle{..} =
+    object $
+    catMaybes
+    [ fmap (("DeploymentOption",) . toJSON) _codeDeployDeploymentGroupDeploymentStyleDeploymentOption
+    ]
+
+instance FromJSON CodeDeployDeploymentGroupDeploymentStyle where
+  parseJSON (Object obj) =
+    CodeDeployDeploymentGroupDeploymentStyle <$>
+      (obj .:? "DeploymentOption")
+  parseJSON _ = mempty
+
+-- | Constructor for 'CodeDeployDeploymentGroupDeploymentStyle' containing
+-- required fields as arguments.
+codeDeployDeploymentGroupDeploymentStyle
+  :: CodeDeployDeploymentGroupDeploymentStyle
+codeDeployDeploymentGroupDeploymentStyle  =
+  CodeDeployDeploymentGroupDeploymentStyle
+  { _codeDeployDeploymentGroupDeploymentStyleDeploymentOption = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentstyle.html#cfn-codedeploy-deploymentgroup-deploymentstyle-deploymentoption
+cddgdsDeploymentOption :: Lens' CodeDeployDeploymentGroupDeploymentStyle (Maybe (Val Text))
+cddgdsDeploymentOption = lens _codeDeployDeploymentGroupDeploymentStyleDeploymentOption (\s a -> s { _codeDeployDeploymentGroupDeploymentStyleDeploymentOption = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentGroupELBInfo.hs b/library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentGroupELBInfo.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentGroupELBInfo.hs
@@ -0,0 +1,49 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-elbinfo.html
+
+module Stratosphere.ResourceProperties.CodeDeployDeploymentGroupELBInfo where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for CodeDeployDeploymentGroupELBInfo. See
+-- 'codeDeployDeploymentGroupELBInfo' for a more convenient constructor.
+data CodeDeployDeploymentGroupELBInfo =
+  CodeDeployDeploymentGroupELBInfo
+  { _codeDeployDeploymentGroupELBInfoName :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON CodeDeployDeploymentGroupELBInfo where
+  toJSON CodeDeployDeploymentGroupELBInfo{..} =
+    object $
+    catMaybes
+    [ fmap (("Name",) . toJSON) _codeDeployDeploymentGroupELBInfoName
+    ]
+
+instance FromJSON CodeDeployDeploymentGroupELBInfo where
+  parseJSON (Object obj) =
+    CodeDeployDeploymentGroupELBInfo <$>
+      (obj .:? "Name")
+  parseJSON _ = mempty
+
+-- | Constructor for 'CodeDeployDeploymentGroupELBInfo' containing required
+-- fields as arguments.
+codeDeployDeploymentGroupELBInfo
+  :: CodeDeployDeploymentGroupELBInfo
+codeDeployDeploymentGroupELBInfo  =
+  CodeDeployDeploymentGroupELBInfo
+  { _codeDeployDeploymentGroupELBInfoName = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-elbinfo.html#cfn-codedeploy-deploymentgroup-elbinfo-name
+cddgelbiName :: Lens' CodeDeployDeploymentGroupELBInfo (Maybe (Val Text))
+cddgelbiName = lens _codeDeployDeploymentGroupELBInfoName (\s a -> s { _codeDeployDeploymentGroupELBInfoName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentGroupLoadBalancerInfo.hs b/library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentGroupLoadBalancerInfo.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentGroupLoadBalancerInfo.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-loadbalancerinfo.html
+
+module Stratosphere.ResourceProperties.CodeDeployDeploymentGroupLoadBalancerInfo where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupELBInfo
+
+-- | Full data type definition for CodeDeployDeploymentGroupLoadBalancerInfo.
+-- See 'codeDeployDeploymentGroupLoadBalancerInfo' for a more convenient
+-- constructor.
+data CodeDeployDeploymentGroupLoadBalancerInfo =
+  CodeDeployDeploymentGroupLoadBalancerInfo
+  { _codeDeployDeploymentGroupLoadBalancerInfoElbInfoList :: Maybe [CodeDeployDeploymentGroupELBInfo]
+  } deriving (Show, Eq)
+
+instance ToJSON CodeDeployDeploymentGroupLoadBalancerInfo where
+  toJSON CodeDeployDeploymentGroupLoadBalancerInfo{..} =
+    object $
+    catMaybes
+    [ fmap (("ElbInfoList",) . toJSON) _codeDeployDeploymentGroupLoadBalancerInfoElbInfoList
+    ]
+
+instance FromJSON CodeDeployDeploymentGroupLoadBalancerInfo where
+  parseJSON (Object obj) =
+    CodeDeployDeploymentGroupLoadBalancerInfo <$>
+      (obj .:? "ElbInfoList")
+  parseJSON _ = mempty
+
+-- | Constructor for 'CodeDeployDeploymentGroupLoadBalancerInfo' containing
+-- required fields as arguments.
+codeDeployDeploymentGroupLoadBalancerInfo
+  :: CodeDeployDeploymentGroupLoadBalancerInfo
+codeDeployDeploymentGroupLoadBalancerInfo  =
+  CodeDeployDeploymentGroupLoadBalancerInfo
+  { _codeDeployDeploymentGroupLoadBalancerInfoElbInfoList = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-loadbalancerinfo.html#cfn-codedeploy-deploymentgroup-loadbalancerinfo-elbinfolist
+cddglbiElbInfoList :: Lens' CodeDeployDeploymentGroupLoadBalancerInfo (Maybe [CodeDeployDeploymentGroupELBInfo])
+cddglbiElbInfoList = lens _codeDeployDeploymentGroupLoadBalancerInfoElbInfoList (\s a -> s { _codeDeployDeploymentGroupLoadBalancerInfoElbInfoList = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/DataPipelinePipelineParameterObject.hs b/library-gen/Stratosphere/ResourceProperties/DataPipelinePipelineParameterObject.hs
--- a/library-gen/Stratosphere/ResourceProperties/DataPipelinePipelineParameterObject.hs
+++ b/library-gen/Stratosphere/ResourceProperties/DataPipelinePipelineParameterObject.hs
@@ -54,6 +54,6 @@
 dpppaoAttributes :: Lens' DataPipelinePipelineParameterObject [DataPipelinePipelineParameterAttribute]
 dpppaoAttributes = lens _dataPipelinePipelineParameterObjectAttributes (\s a -> s { _dataPipelinePipelineParameterObjectAttributes = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects.html#cfn-datapipeline-pipeline-parameterobject-id
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects.html#cfn-datapipeline-pipeline-parameterobjects-id
 dpppaoId :: Lens' DataPipelinePipelineParameterObject (Val Text)
 dpppaoId = lens _dataPipelinePipelineParameterObjectId (\s a -> s { _dataPipelinePipelineParameterObjectId = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/DynamoDBTableTimeToLiveSpecification.hs b/library-gen/Stratosphere/ResourceProperties/DynamoDBTableTimeToLiveSpecification.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/DynamoDBTableTimeToLiveSpecification.hs
@@ -0,0 +1,59 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-timetolivespecification.html
+
+module Stratosphere.ResourceProperties.DynamoDBTableTimeToLiveSpecification where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for DynamoDBTableTimeToLiveSpecification. See
+-- 'dynamoDBTableTimeToLiveSpecification' for a more convenient constructor.
+data DynamoDBTableTimeToLiveSpecification =
+  DynamoDBTableTimeToLiveSpecification
+  { _dynamoDBTableTimeToLiveSpecificationAttributeName :: Val Text
+  , _dynamoDBTableTimeToLiveSpecificationEnabled :: Val Bool
+  } deriving (Show, Eq)
+
+instance ToJSON DynamoDBTableTimeToLiveSpecification where
+  toJSON DynamoDBTableTimeToLiveSpecification{..} =
+    object $
+    catMaybes
+    [ (Just . ("AttributeName",) . toJSON) _dynamoDBTableTimeToLiveSpecificationAttributeName
+    , (Just . ("Enabled",) . toJSON . fmap Bool') _dynamoDBTableTimeToLiveSpecificationEnabled
+    ]
+
+instance FromJSON DynamoDBTableTimeToLiveSpecification where
+  parseJSON (Object obj) =
+    DynamoDBTableTimeToLiveSpecification <$>
+      (obj .: "AttributeName") <*>
+      fmap (fmap unBool') (obj .: "Enabled")
+  parseJSON _ = mempty
+
+-- | Constructor for 'DynamoDBTableTimeToLiveSpecification' containing
+-- required fields as arguments.
+dynamoDBTableTimeToLiveSpecification
+  :: Val Text -- ^ 'ddbtttlsAttributeName'
+  -> Val Bool -- ^ 'ddbtttlsEnabled'
+  -> DynamoDBTableTimeToLiveSpecification
+dynamoDBTableTimeToLiveSpecification attributeNamearg enabledarg =
+  DynamoDBTableTimeToLiveSpecification
+  { _dynamoDBTableTimeToLiveSpecificationAttributeName = attributeNamearg
+  , _dynamoDBTableTimeToLiveSpecificationEnabled = enabledarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-timetolivespecification.html#cfn-dynamodb-timetolivespecification-attributename
+ddbtttlsAttributeName :: Lens' DynamoDBTableTimeToLiveSpecification (Val Text)
+ddbtttlsAttributeName = lens _dynamoDBTableTimeToLiveSpecificationAttributeName (\s a -> s { _dynamoDBTableTimeToLiveSpecificationAttributeName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-timetolivespecification.html#cfn-dynamodb-timetolivespecification-enabled
+ddbtttlsEnabled :: Lens' DynamoDBTableTimeToLiveSpecification (Val Bool)
+ddbtttlsEnabled = lens _dynamoDBTableTimeToLiveSpecificationEnabled (\s a -> s { _dynamoDBTableTimeToLiveSpecificationEnabled = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingV2LoadBalancerSubnetMapping.hs b/library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingV2LoadBalancerSubnetMapping.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingV2LoadBalancerSubnetMapping.hs
@@ -0,0 +1,61 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html
+
+module Stratosphere.ResourceProperties.ElasticLoadBalancingV2LoadBalancerSubnetMapping where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for
+-- ElasticLoadBalancingV2LoadBalancerSubnetMapping. See
+-- 'elasticLoadBalancingV2LoadBalancerSubnetMapping' for a more convenient
+-- constructor.
+data ElasticLoadBalancingV2LoadBalancerSubnetMapping =
+  ElasticLoadBalancingV2LoadBalancerSubnetMapping
+  { _elasticLoadBalancingV2LoadBalancerSubnetMappingAllocationId :: Val Text
+  , _elasticLoadBalancingV2LoadBalancerSubnetMappingSubnetId :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON ElasticLoadBalancingV2LoadBalancerSubnetMapping where
+  toJSON ElasticLoadBalancingV2LoadBalancerSubnetMapping{..} =
+    object $
+    catMaybes
+    [ (Just . ("AllocationId",) . toJSON) _elasticLoadBalancingV2LoadBalancerSubnetMappingAllocationId
+    , (Just . ("SubnetId",) . toJSON) _elasticLoadBalancingV2LoadBalancerSubnetMappingSubnetId
+    ]
+
+instance FromJSON ElasticLoadBalancingV2LoadBalancerSubnetMapping where
+  parseJSON (Object obj) =
+    ElasticLoadBalancingV2LoadBalancerSubnetMapping <$>
+      (obj .: "AllocationId") <*>
+      (obj .: "SubnetId")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ElasticLoadBalancingV2LoadBalancerSubnetMapping'
+-- containing required fields as arguments.
+elasticLoadBalancingV2LoadBalancerSubnetMapping
+  :: Val Text -- ^ 'elbvlbsmAllocationId'
+  -> Val Text -- ^ 'elbvlbsmSubnetId'
+  -> ElasticLoadBalancingV2LoadBalancerSubnetMapping
+elasticLoadBalancingV2LoadBalancerSubnetMapping allocationIdarg subnetIdarg =
+  ElasticLoadBalancingV2LoadBalancerSubnetMapping
+  { _elasticLoadBalancingV2LoadBalancerSubnetMappingAllocationId = allocationIdarg
+  , _elasticLoadBalancingV2LoadBalancerSubnetMappingSubnetId = subnetIdarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html#cfn-elasticloadbalancingv2-loadbalancer-subnetmapping-allocationid
+elbvlbsmAllocationId :: Lens' ElasticLoadBalancingV2LoadBalancerSubnetMapping (Val Text)
+elbvlbsmAllocationId = lens _elasticLoadBalancingV2LoadBalancerSubnetMappingAllocationId (\s a -> s { _elasticLoadBalancingV2LoadBalancerSubnetMappingAllocationId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html#cfn-elasticloadbalancingv2-loadbalancer-subnetmapping-subnetid
+elbvlbsmSubnetId :: Lens' ElasticLoadBalancingV2LoadBalancerSubnetMapping (Val Text)
+elbvlbsmSubnetId = lens _elasticLoadBalancingV2LoadBalancerSubnetMappingSubnetId (\s a -> s { _elasticLoadBalancingV2LoadBalancerSubnetMappingSubnetId = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingV2TargetGroupTargetGroupAttribute.hs b/library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingV2TargetGroupTargetGroupAttribute.hs
--- a/library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingV2TargetGroupTargetGroupAttribute.hs
+++ b/library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingV2TargetGroupTargetGroupAttribute.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetgroupattributes.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetgroupattribute.html
 
 module Stratosphere.ResourceProperties.ElasticLoadBalancingV2TargetGroupTargetGroupAttribute where
 
@@ -50,10 +50,10 @@
   , _elasticLoadBalancingV2TargetGroupTargetGroupAttributeValue = Nothing
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetgroupattributes.html#cfn-elasticloadbalancingv2-targetgroup-targetgroupattributes-key
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetgroupattribute.html#cfn-elasticloadbalancingv2-targetgroup-targetgroupattribute-key
 elbvtgtgaKey :: Lens' ElasticLoadBalancingV2TargetGroupTargetGroupAttribute (Maybe (Val Text))
 elbvtgtgaKey = lens _elasticLoadBalancingV2TargetGroupTargetGroupAttributeKey (\s a -> s { _elasticLoadBalancingV2TargetGroupTargetGroupAttributeKey = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetgroupattributes.html#cfn-elasticloadbalancingv2-targetgroup-targetgroupattributes-value
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetgroupattribute.html#cfn-elasticloadbalancingv2-targetgroup-targetgroupattribute-value
 elbvtgtgaValue :: Lens' ElasticLoadBalancingV2TargetGroupTargetGroupAttribute (Maybe (Val Text))
 elbvtgtgaValue = lens _elasticLoadBalancingV2TargetGroupTargetGroupAttributeValue (\s a -> s { _elasticLoadBalancingV2TargetGroupTargetGroupAttributeValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EventsRuleEcsParameters.hs b/library-gen/Stratosphere/ResourceProperties/EventsRuleEcsParameters.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EventsRuleEcsParameters.hs
@@ -0,0 +1,58 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html
+
+module Stratosphere.ResourceProperties.EventsRuleEcsParameters where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for EventsRuleEcsParameters. See
+-- 'eventsRuleEcsParameters' for a more convenient constructor.
+data EventsRuleEcsParameters =
+  EventsRuleEcsParameters
+  { _eventsRuleEcsParametersTaskCount :: Maybe (Val Integer)
+  , _eventsRuleEcsParametersTaskDefinitionArn :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON EventsRuleEcsParameters where
+  toJSON EventsRuleEcsParameters{..} =
+    object $
+    catMaybes
+    [ fmap (("TaskCount",) . toJSON . fmap Integer') _eventsRuleEcsParametersTaskCount
+    , (Just . ("TaskDefinitionArn",) . toJSON) _eventsRuleEcsParametersTaskDefinitionArn
+    ]
+
+instance FromJSON EventsRuleEcsParameters where
+  parseJSON (Object obj) =
+    EventsRuleEcsParameters <$>
+      fmap (fmap (fmap unInteger')) (obj .:? "TaskCount") <*>
+      (obj .: "TaskDefinitionArn")
+  parseJSON _ = mempty
+
+-- | Constructor for 'EventsRuleEcsParameters' containing required fields as
+-- arguments.
+eventsRuleEcsParameters
+  :: Val Text -- ^ 'erepTaskDefinitionArn'
+  -> EventsRuleEcsParameters
+eventsRuleEcsParameters taskDefinitionArnarg =
+  EventsRuleEcsParameters
+  { _eventsRuleEcsParametersTaskCount = Nothing
+  , _eventsRuleEcsParametersTaskDefinitionArn = taskDefinitionArnarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-taskcount
+erepTaskCount :: Lens' EventsRuleEcsParameters (Maybe (Val Integer))
+erepTaskCount = lens _eventsRuleEcsParametersTaskCount (\s a -> s { _eventsRuleEcsParametersTaskCount = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-taskdefinitionarn
+erepTaskDefinitionArn :: Lens' EventsRuleEcsParameters (Val Text)
+erepTaskDefinitionArn = lens _eventsRuleEcsParametersTaskDefinitionArn (\s a -> s { _eventsRuleEcsParametersTaskDefinitionArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EventsRuleInputTransformer.hs b/library-gen/Stratosphere/ResourceProperties/EventsRuleInputTransformer.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EventsRuleInputTransformer.hs
@@ -0,0 +1,58 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html
+
+module Stratosphere.ResourceProperties.EventsRuleInputTransformer where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for EventsRuleInputTransformer. See
+-- 'eventsRuleInputTransformer' for a more convenient constructor.
+data EventsRuleInputTransformer =
+  EventsRuleInputTransformer
+  { _eventsRuleInputTransformerInputPathsMap :: Maybe Object
+  , _eventsRuleInputTransformerInputTemplate :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON EventsRuleInputTransformer where
+  toJSON EventsRuleInputTransformer{..} =
+    object $
+    catMaybes
+    [ fmap (("InputPathsMap",) . toJSON) _eventsRuleInputTransformerInputPathsMap
+    , (Just . ("InputTemplate",) . toJSON) _eventsRuleInputTransformerInputTemplate
+    ]
+
+instance FromJSON EventsRuleInputTransformer where
+  parseJSON (Object obj) =
+    EventsRuleInputTransformer <$>
+      (obj .:? "InputPathsMap") <*>
+      (obj .: "InputTemplate")
+  parseJSON _ = mempty
+
+-- | Constructor for 'EventsRuleInputTransformer' containing required fields
+-- as arguments.
+eventsRuleInputTransformer
+  :: Val Text -- ^ 'eritInputTemplate'
+  -> EventsRuleInputTransformer
+eventsRuleInputTransformer inputTemplatearg =
+  EventsRuleInputTransformer
+  { _eventsRuleInputTransformerInputPathsMap = Nothing
+  , _eventsRuleInputTransformerInputTemplate = inputTemplatearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html#cfn-events-rule-inputtransformer-inputpathsmap
+eritInputPathsMap :: Lens' EventsRuleInputTransformer (Maybe Object)
+eritInputPathsMap = lens _eventsRuleInputTransformerInputPathsMap (\s a -> s { _eventsRuleInputTransformerInputPathsMap = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html#cfn-events-rule-inputtransformer-inputtemplate
+eritInputTemplate :: Lens' EventsRuleInputTransformer (Val Text)
+eritInputTemplate = lens _eventsRuleInputTransformerInputTemplate (\s a -> s { _eventsRuleInputTransformerInputTemplate = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EventsRuleKinesisParameters.hs b/library-gen/Stratosphere/ResourceProperties/EventsRuleKinesisParameters.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EventsRuleKinesisParameters.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-kinesisparameters.html
+
+module Stratosphere.ResourceProperties.EventsRuleKinesisParameters where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for EventsRuleKinesisParameters. See
+-- 'eventsRuleKinesisParameters' for a more convenient constructor.
+data EventsRuleKinesisParameters =
+  EventsRuleKinesisParameters
+  { _eventsRuleKinesisParametersPartitionKeyPath :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON EventsRuleKinesisParameters where
+  toJSON EventsRuleKinesisParameters{..} =
+    object $
+    catMaybes
+    [ (Just . ("PartitionKeyPath",) . toJSON) _eventsRuleKinesisParametersPartitionKeyPath
+    ]
+
+instance FromJSON EventsRuleKinesisParameters where
+  parseJSON (Object obj) =
+    EventsRuleKinesisParameters <$>
+      (obj .: "PartitionKeyPath")
+  parseJSON _ = mempty
+
+-- | Constructor for 'EventsRuleKinesisParameters' containing required fields
+-- as arguments.
+eventsRuleKinesisParameters
+  :: Val Text -- ^ 'erkpPartitionKeyPath'
+  -> EventsRuleKinesisParameters
+eventsRuleKinesisParameters partitionKeyPatharg =
+  EventsRuleKinesisParameters
+  { _eventsRuleKinesisParametersPartitionKeyPath = partitionKeyPatharg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-kinesisparameters.html#cfn-events-rule-kinesisparameters-partitionkeypath
+erkpPartitionKeyPath :: Lens' EventsRuleKinesisParameters (Val Text)
+erkpPartitionKeyPath = lens _eventsRuleKinesisParametersPartitionKeyPath (\s a -> s { _eventsRuleKinesisParametersPartitionKeyPath = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EventsRuleRunCommandParameters.hs b/library-gen/Stratosphere/ResourceProperties/EventsRuleRunCommandParameters.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EventsRuleRunCommandParameters.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandparameters.html
+
+module Stratosphere.ResourceProperties.EventsRuleRunCommandParameters where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+import Stratosphere.ResourceProperties.EventsRuleRunCommandTarget
+
+-- | Full data type definition for EventsRuleRunCommandParameters. See
+-- 'eventsRuleRunCommandParameters' for a more convenient constructor.
+data EventsRuleRunCommandParameters =
+  EventsRuleRunCommandParameters
+  { _eventsRuleRunCommandParametersRunCommandTargets :: [EventsRuleRunCommandTarget]
+  } deriving (Show, Eq)
+
+instance ToJSON EventsRuleRunCommandParameters where
+  toJSON EventsRuleRunCommandParameters{..} =
+    object $
+    catMaybes
+    [ (Just . ("RunCommandTargets",) . toJSON) _eventsRuleRunCommandParametersRunCommandTargets
+    ]
+
+instance FromJSON EventsRuleRunCommandParameters where
+  parseJSON (Object obj) =
+    EventsRuleRunCommandParameters <$>
+      (obj .: "RunCommandTargets")
+  parseJSON _ = mempty
+
+-- | Constructor for 'EventsRuleRunCommandParameters' containing required
+-- fields as arguments.
+eventsRuleRunCommandParameters
+  :: [EventsRuleRunCommandTarget] -- ^ 'errcpRunCommandTargets'
+  -> EventsRuleRunCommandParameters
+eventsRuleRunCommandParameters runCommandTargetsarg =
+  EventsRuleRunCommandParameters
+  { _eventsRuleRunCommandParametersRunCommandTargets = runCommandTargetsarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandparameters.html#cfn-events-rule-runcommandparameters-runcommandtargets
+errcpRunCommandTargets :: Lens' EventsRuleRunCommandParameters [EventsRuleRunCommandTarget]
+errcpRunCommandTargets = lens _eventsRuleRunCommandParametersRunCommandTargets (\s a -> s { _eventsRuleRunCommandParametersRunCommandTargets = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EventsRuleRunCommandTarget.hs b/library-gen/Stratosphere/ResourceProperties/EventsRuleRunCommandTarget.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EventsRuleRunCommandTarget.hs
@@ -0,0 +1,59 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandtarget.html
+
+module Stratosphere.ResourceProperties.EventsRuleRunCommandTarget where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for EventsRuleRunCommandTarget. See
+-- 'eventsRuleRunCommandTarget' for a more convenient constructor.
+data EventsRuleRunCommandTarget =
+  EventsRuleRunCommandTarget
+  { _eventsRuleRunCommandTargetKey :: Val Text
+  , _eventsRuleRunCommandTargetValues :: ValList Text
+  } deriving (Show, Eq)
+
+instance ToJSON EventsRuleRunCommandTarget where
+  toJSON EventsRuleRunCommandTarget{..} =
+    object $
+    catMaybes
+    [ (Just . ("Key",) . toJSON) _eventsRuleRunCommandTargetKey
+    , (Just . ("Values",) . toJSON) _eventsRuleRunCommandTargetValues
+    ]
+
+instance FromJSON EventsRuleRunCommandTarget where
+  parseJSON (Object obj) =
+    EventsRuleRunCommandTarget <$>
+      (obj .: "Key") <*>
+      (obj .: "Values")
+  parseJSON _ = mempty
+
+-- | Constructor for 'EventsRuleRunCommandTarget' containing required fields
+-- as arguments.
+eventsRuleRunCommandTarget
+  :: Val Text -- ^ 'errctKey'
+  -> ValList Text -- ^ 'errctValues'
+  -> EventsRuleRunCommandTarget
+eventsRuleRunCommandTarget keyarg valuesarg =
+  EventsRuleRunCommandTarget
+  { _eventsRuleRunCommandTargetKey = keyarg
+  , _eventsRuleRunCommandTargetValues = valuesarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandtarget.html#cfn-events-rule-runcommandtarget-key
+errctKey :: Lens' EventsRuleRunCommandTarget (Val Text)
+errctKey = lens _eventsRuleRunCommandTargetKey (\s a -> s { _eventsRuleRunCommandTargetKey = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandtarget.html#cfn-events-rule-runcommandtarget-values
+errctValues :: Lens' EventsRuleRunCommandTarget (ValList Text)
+errctValues = lens _eventsRuleRunCommandTargetValues (\s a -> s { _eventsRuleRunCommandTargetValues = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EventsRuleTarget.hs b/library-gen/Stratosphere/ResourceProperties/EventsRuleTarget.hs
--- a/library-gen/Stratosphere/ResourceProperties/EventsRuleTarget.hs
+++ b/library-gen/Stratosphere/ResourceProperties/EventsRuleTarget.hs
@@ -13,17 +13,24 @@
 import Data.Text
 
 import Stratosphere.Values
-
+import Stratosphere.ResourceProperties.EventsRuleEcsParameters
+import Stratosphere.ResourceProperties.EventsRuleInputTransformer
+import Stratosphere.ResourceProperties.EventsRuleKinesisParameters
+import Stratosphere.ResourceProperties.EventsRuleRunCommandParameters
 
 -- | Full data type definition for EventsRuleTarget. See 'eventsRuleTarget'
 -- for a more convenient constructor.
 data EventsRuleTarget =
   EventsRuleTarget
   { _eventsRuleTargetArn :: Val Text
+  , _eventsRuleTargetEcsParameters :: Maybe EventsRuleEcsParameters
   , _eventsRuleTargetId :: Val Text
   , _eventsRuleTargetInput :: Maybe (Val Text)
   , _eventsRuleTargetInputPath :: Maybe (Val Text)
+  , _eventsRuleTargetInputTransformer :: Maybe EventsRuleInputTransformer
+  , _eventsRuleTargetKinesisParameters :: Maybe EventsRuleKinesisParameters
   , _eventsRuleTargetRoleArn :: Maybe (Val Text)
+  , _eventsRuleTargetRunCommandParameters :: Maybe EventsRuleRunCommandParameters
   } deriving (Show, Eq)
 
 instance ToJSON EventsRuleTarget where
@@ -31,20 +38,28 @@
     object $
     catMaybes
     [ (Just . ("Arn",) . toJSON) _eventsRuleTargetArn
+    , fmap (("EcsParameters",) . toJSON) _eventsRuleTargetEcsParameters
     , (Just . ("Id",) . toJSON) _eventsRuleTargetId
     , fmap (("Input",) . toJSON) _eventsRuleTargetInput
     , fmap (("InputPath",) . toJSON) _eventsRuleTargetInputPath
+    , fmap (("InputTransformer",) . toJSON) _eventsRuleTargetInputTransformer
+    , fmap (("KinesisParameters",) . toJSON) _eventsRuleTargetKinesisParameters
     , fmap (("RoleArn",) . toJSON) _eventsRuleTargetRoleArn
+    , fmap (("RunCommandParameters",) . toJSON) _eventsRuleTargetRunCommandParameters
     ]
 
 instance FromJSON EventsRuleTarget where
   parseJSON (Object obj) =
     EventsRuleTarget <$>
       (obj .: "Arn") <*>
+      (obj .:? "EcsParameters") <*>
       (obj .: "Id") <*>
       (obj .:? "Input") <*>
       (obj .:? "InputPath") <*>
-      (obj .:? "RoleArn")
+      (obj .:? "InputTransformer") <*>
+      (obj .:? "KinesisParameters") <*>
+      (obj .:? "RoleArn") <*>
+      (obj .:? "RunCommandParameters")
   parseJSON _ = mempty
 
 -- | Constructor for 'EventsRuleTarget' containing required fields as
@@ -56,16 +71,24 @@
 eventsRuleTarget arnarg idarg =
   EventsRuleTarget
   { _eventsRuleTargetArn = arnarg
+  , _eventsRuleTargetEcsParameters = Nothing
   , _eventsRuleTargetId = idarg
   , _eventsRuleTargetInput = Nothing
   , _eventsRuleTargetInputPath = Nothing
+  , _eventsRuleTargetInputTransformer = Nothing
+  , _eventsRuleTargetKinesisParameters = Nothing
   , _eventsRuleTargetRoleArn = Nothing
+  , _eventsRuleTargetRunCommandParameters = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-arn
 ertArn :: Lens' EventsRuleTarget (Val Text)
 ertArn = lens _eventsRuleTargetArn (\s a -> s { _eventsRuleTargetArn = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-ecsparameters
+ertEcsParameters :: Lens' EventsRuleTarget (Maybe EventsRuleEcsParameters)
+ertEcsParameters = lens _eventsRuleTargetEcsParameters (\s a -> s { _eventsRuleTargetEcsParameters = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-id
 ertId :: Lens' EventsRuleTarget (Val Text)
 ertId = lens _eventsRuleTargetId (\s a -> s { _eventsRuleTargetId = a })
@@ -78,6 +101,18 @@
 ertInputPath :: Lens' EventsRuleTarget (Maybe (Val Text))
 ertInputPath = lens _eventsRuleTargetInputPath (\s a -> s { _eventsRuleTargetInputPath = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputtransformer
+ertInputTransformer :: Lens' EventsRuleTarget (Maybe EventsRuleInputTransformer)
+ertInputTransformer = lens _eventsRuleTargetInputTransformer (\s a -> s { _eventsRuleTargetInputTransformer = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-kinesisparameters
+ertKinesisParameters :: Lens' EventsRuleTarget (Maybe EventsRuleKinesisParameters)
+ertKinesisParameters = lens _eventsRuleTargetKinesisParameters (\s a -> s { _eventsRuleTargetKinesisParameters = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-rolearn
 ertRoleArn :: Lens' EventsRuleTarget (Maybe (Val Text))
 ertRoleArn = lens _eventsRuleTargetRoleArn (\s a -> s { _eventsRuleTargetRoleArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-runcommandparameters
+ertRunCommandParameters :: Lens' EventsRuleTarget (Maybe EventsRuleRunCommandParameters)
+ertRunCommandParameters = lens _eventsRuleTargetRunCommandParameters (\s a -> s { _eventsRuleTargetRunCommandParameters = a })
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
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html
 
 module Stratosphere.ResourceProperties.IoTTopicRuleAction where
 
@@ -16,6 +16,7 @@
 import Stratosphere.ResourceProperties.IoTTopicRuleCloudwatchAlarmAction
 import Stratosphere.ResourceProperties.IoTTopicRuleCloudwatchMetricAction
 import Stratosphere.ResourceProperties.IoTTopicRuleDynamoDBAction
+import Stratosphere.ResourceProperties.IoTTopicRuleDynamoDBV2Action
 import Stratosphere.ResourceProperties.IoTTopicRuleElasticsearchAction
 import Stratosphere.ResourceProperties.IoTTopicRuleFirehoseAction
 import Stratosphere.ResourceProperties.IoTTopicRuleKinesisAction
@@ -32,6 +33,7 @@
   { _ioTTopicRuleActionCloudwatchAlarm :: Maybe IoTTopicRuleCloudwatchAlarmAction
   , _ioTTopicRuleActionCloudwatchMetric :: Maybe IoTTopicRuleCloudwatchMetricAction
   , _ioTTopicRuleActionDynamoDB :: Maybe IoTTopicRuleDynamoDBAction
+  , _ioTTopicRuleActionDynamoDBv2 :: Maybe IoTTopicRuleDynamoDBV2Action
   , _ioTTopicRuleActionElasticsearch :: Maybe IoTTopicRuleElasticsearchAction
   , _ioTTopicRuleActionFirehose :: Maybe IoTTopicRuleFirehoseAction
   , _ioTTopicRuleActionKinesis :: Maybe IoTTopicRuleKinesisAction
@@ -49,6 +51,7 @@
     [ fmap (("CloudwatchAlarm",) . toJSON) _ioTTopicRuleActionCloudwatchAlarm
     , fmap (("CloudwatchMetric",) . toJSON) _ioTTopicRuleActionCloudwatchMetric
     , fmap (("DynamoDB",) . toJSON) _ioTTopicRuleActionDynamoDB
+    , fmap (("DynamoDBv2",) . toJSON) _ioTTopicRuleActionDynamoDBv2
     , fmap (("Elasticsearch",) . toJSON) _ioTTopicRuleActionElasticsearch
     , fmap (("Firehose",) . toJSON) _ioTTopicRuleActionFirehose
     , fmap (("Kinesis",) . toJSON) _ioTTopicRuleActionKinesis
@@ -65,6 +68,7 @@
       (obj .:? "CloudwatchAlarm") <*>
       (obj .:? "CloudwatchMetric") <*>
       (obj .:? "DynamoDB") <*>
+      (obj .:? "DynamoDBv2") <*>
       (obj .:? "Elasticsearch") <*>
       (obj .:? "Firehose") <*>
       (obj .:? "Kinesis") <*>
@@ -84,6 +88,7 @@
   { _ioTTopicRuleActionCloudwatchAlarm = Nothing
   , _ioTTopicRuleActionCloudwatchMetric = Nothing
   , _ioTTopicRuleActionDynamoDB = Nothing
+  , _ioTTopicRuleActionDynamoDBv2 = Nothing
   , _ioTTopicRuleActionElasticsearch = Nothing
   , _ioTTopicRuleActionFirehose = Nothing
   , _ioTTopicRuleActionKinesis = Nothing
@@ -94,46 +99,50 @@
   , _ioTTopicRuleActionSqs = Nothing
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html#cfn-iot-action-cloudwatchalarm
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-cloudwatchalarm
 ittraCloudwatchAlarm :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleCloudwatchAlarmAction)
 ittraCloudwatchAlarm = lens _ioTTopicRuleActionCloudwatchAlarm (\s a -> s { _ioTTopicRuleActionCloudwatchAlarm = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html#cfn-iot-action-cloudwatchmetric
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-cloudwatchmetric
 ittraCloudwatchMetric :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleCloudwatchMetricAction)
 ittraCloudwatchMetric = lens _ioTTopicRuleActionCloudwatchMetric (\s a -> s { _ioTTopicRuleActionCloudwatchMetric = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html#cfn-iot-action-dynamodb
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-dynamodb
 ittraDynamoDB :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleDynamoDBAction)
 ittraDynamoDB = lens _ioTTopicRuleActionDynamoDB (\s a -> s { _ioTTopicRuleActionDynamoDB = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html#cfn-iot-action-elasticsearch
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-dynamodbv2
+ittraDynamoDBv2 :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleDynamoDBV2Action)
+ittraDynamoDBv2 = lens _ioTTopicRuleActionDynamoDBv2 (\s a -> s { _ioTTopicRuleActionDynamoDBv2 = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-elasticsearch
 ittraElasticsearch :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleElasticsearchAction)
 ittraElasticsearch = lens _ioTTopicRuleActionElasticsearch (\s a -> s { _ioTTopicRuleActionElasticsearch = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html#cfn-iot-action-firehose
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-firehose
 ittraFirehose :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleFirehoseAction)
 ittraFirehose = lens _ioTTopicRuleActionFirehose (\s a -> s { _ioTTopicRuleActionFirehose = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html#cfn-iot-action-kinesis
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-kinesis
 ittraKinesis :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleKinesisAction)
 ittraKinesis = lens _ioTTopicRuleActionKinesis (\s a -> s { _ioTTopicRuleActionKinesis = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html#cfn-iot-action-lambda
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-lambda
 ittraLambda :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleLambdaAction)
 ittraLambda = lens _ioTTopicRuleActionLambda (\s a -> s { _ioTTopicRuleActionLambda = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html#cfn-iot-action-republish
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-republish
 ittraRepublish :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleRepublishAction)
 ittraRepublish = lens _ioTTopicRuleActionRepublish (\s a -> s { _ioTTopicRuleActionRepublish = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html#cfn-iot-action-s3
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-s3
 ittraS3 :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleS3Action)
 ittraS3 = lens _ioTTopicRuleActionS3 (\s a -> s { _ioTTopicRuleActionS3 = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html#cfn-iot-action-sns
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-sns
 ittraSns :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleSnsAction)
 ittraSns = lens _ioTTopicRuleActionSns (\s a -> s { _ioTTopicRuleActionSns = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html#cfn-iot-action-sqs
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-sqs
 ittraSqs :: Lens' IoTTopicRuleAction (Maybe IoTTopicRuleSqsAction)
 ittraSqs = lens _ioTTopicRuleActionSqs (\s a -> s { _ioTTopicRuleActionSqs = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleCloudwatchAlarmAction.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleCloudwatchAlarmAction.hs
--- a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleCloudwatchAlarmAction.hs
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleCloudwatchAlarmAction.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchalarm.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchalarmaction.html
 
 module Stratosphere.ResourceProperties.IoTTopicRuleCloudwatchAlarmAction where
 
@@ -60,18 +60,18 @@
   , _ioTTopicRuleCloudwatchAlarmActionStateValue = stateValuearg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchalarm.html#cfn-iot-cloudwatchalarm-alarmname
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchalarmaction.html#cfn-iot-topicrule-cloudwatchalarmaction-alarmname
 ittrcaaAlarmName :: Lens' IoTTopicRuleCloudwatchAlarmAction (Val Text)
 ittrcaaAlarmName = lens _ioTTopicRuleCloudwatchAlarmActionAlarmName (\s a -> s { _ioTTopicRuleCloudwatchAlarmActionAlarmName = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchalarm.html#cfn-iot-cloudwatchalarm-rolearn
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchalarmaction.html#cfn-iot-topicrule-cloudwatchalarmaction-rolearn
 ittrcaaRoleArn :: Lens' IoTTopicRuleCloudwatchAlarmAction (Val Text)
 ittrcaaRoleArn = lens _ioTTopicRuleCloudwatchAlarmActionRoleArn (\s a -> s { _ioTTopicRuleCloudwatchAlarmActionRoleArn = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchalarm.html#cfn-iot-cloudwatchalarm-statereason
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchalarmaction.html#cfn-iot-topicrule-cloudwatchalarmaction-statereason
 ittrcaaStateReason :: Lens' IoTTopicRuleCloudwatchAlarmAction (Val Text)
 ittrcaaStateReason = lens _ioTTopicRuleCloudwatchAlarmActionStateReason (\s a -> s { _ioTTopicRuleCloudwatchAlarmActionStateReason = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchalarm.html#cfn-iot-cloudwatchalarm-statevalue
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchalarmaction.html#cfn-iot-topicrule-cloudwatchalarmaction-statevalue
 ittrcaaStateValue :: Lens' IoTTopicRuleCloudwatchAlarmAction (Val Text)
 ittrcaaStateValue = lens _ioTTopicRuleCloudwatchAlarmActionStateValue (\s a -> s { _ioTTopicRuleCloudwatchAlarmActionStateValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleCloudwatchMetricAction.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleCloudwatchMetricAction.hs
--- a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleCloudwatchMetricAction.hs
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleCloudwatchMetricAction.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchmetric.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html
 
 module Stratosphere.ResourceProperties.IoTTopicRuleCloudwatchMetricAction where
 
@@ -69,26 +69,26 @@
   , _ioTTopicRuleCloudwatchMetricActionRoleArn = roleArnarg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchmetric.html#cfn-iot-cloudwatchmetric-metricname
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html#cfn-iot-topicrule-cloudwatchmetricaction-metricname
 ittrcmaMetricName :: Lens' IoTTopicRuleCloudwatchMetricAction (Val Text)
 ittrcmaMetricName = lens _ioTTopicRuleCloudwatchMetricActionMetricName (\s a -> s { _ioTTopicRuleCloudwatchMetricActionMetricName = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchmetric.html#cfn-iot-cloudwatchmetric-metricnamespace
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html#cfn-iot-topicrule-cloudwatchmetricaction-metricnamespace
 ittrcmaMetricNamespace :: Lens' IoTTopicRuleCloudwatchMetricAction (Val Text)
 ittrcmaMetricNamespace = lens _ioTTopicRuleCloudwatchMetricActionMetricNamespace (\s a -> s { _ioTTopicRuleCloudwatchMetricActionMetricNamespace = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchmetric.html#cfn-iot-cloudwatchmetric-metrictimestamp
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html#cfn-iot-topicrule-cloudwatchmetricaction-metrictimestamp
 ittrcmaMetricTimestamp :: Lens' IoTTopicRuleCloudwatchMetricAction (Maybe (Val Text))
 ittrcmaMetricTimestamp = lens _ioTTopicRuleCloudwatchMetricActionMetricTimestamp (\s a -> s { _ioTTopicRuleCloudwatchMetricActionMetricTimestamp = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchmetric.html#cfn-iot-cloudwatchmetric-metricunit
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html#cfn-iot-topicrule-cloudwatchmetricaction-metricunit
 ittrcmaMetricUnit :: Lens' IoTTopicRuleCloudwatchMetricAction (Val Text)
 ittrcmaMetricUnit = lens _ioTTopicRuleCloudwatchMetricActionMetricUnit (\s a -> s { _ioTTopicRuleCloudwatchMetricActionMetricUnit = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchmetric.html#cfn-iot-cloudwatchmetric-metricvalue
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html#cfn-iot-topicrule-cloudwatchmetricaction-metricvalue
 ittrcmaMetricValue :: Lens' IoTTopicRuleCloudwatchMetricAction (Val Text)
 ittrcmaMetricValue = lens _ioTTopicRuleCloudwatchMetricActionMetricValue (\s a -> s { _ioTTopicRuleCloudwatchMetricActionMetricValue = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchmetric.html#cfn-iot-cloudwatchmetric-rolearn
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html#cfn-iot-topicrule-cloudwatchmetricaction-rolearn
 ittrcmaRoleArn :: Lens' IoTTopicRuleCloudwatchMetricAction (Val Text)
 ittrcmaRoleArn = lens _ioTTopicRuleCloudwatchMetricActionRoleArn (\s a -> s { _ioTTopicRuleCloudwatchMetricActionRoleArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleDynamoDBAction.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleDynamoDBAction.hs
--- a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleDynamoDBAction.hs
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleDynamoDBAction.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-dynamodb.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html
 
 module Stratosphere.ResourceProperties.IoTTopicRuleDynamoDBAction where
 
@@ -82,38 +82,38 @@
   , _ioTTopicRuleDynamoDBActionTableName = tableNamearg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-dynamodb.html#cfn-iot-dynamodb-hashkeyfield
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-hashkeyfield
 ittrddbaHashKeyField :: Lens' IoTTopicRuleDynamoDBAction (Val Text)
 ittrddbaHashKeyField = lens _ioTTopicRuleDynamoDBActionHashKeyField (\s a -> s { _ioTTopicRuleDynamoDBActionHashKeyField = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-dynamodb.html#cfn-iot-dynamodb-hashkeytype
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-hashkeytype
 ittrddbaHashKeyType :: Lens' IoTTopicRuleDynamoDBAction (Maybe (Val Text))
 ittrddbaHashKeyType = lens _ioTTopicRuleDynamoDBActionHashKeyType (\s a -> s { _ioTTopicRuleDynamoDBActionHashKeyType = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-dynamodb.html#cfn-iot-dynamodb-hashkeyvalue
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-hashkeyvalue
 ittrddbaHashKeyValue :: Lens' IoTTopicRuleDynamoDBAction (Val Text)
 ittrddbaHashKeyValue = lens _ioTTopicRuleDynamoDBActionHashKeyValue (\s a -> s { _ioTTopicRuleDynamoDBActionHashKeyValue = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-dynamodb.html#cfn-iot-dynamodb-payloadfield
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-payloadfield
 ittrddbaPayloadField :: Lens' IoTTopicRuleDynamoDBAction (Maybe (Val Text))
 ittrddbaPayloadField = lens _ioTTopicRuleDynamoDBActionPayloadField (\s a -> s { _ioTTopicRuleDynamoDBActionPayloadField = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-dynamodb.html#cfn-iot-dynamodb-rangekeyfield
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-rangekeyfield
 ittrddbaRangeKeyField :: Lens' IoTTopicRuleDynamoDBAction (Val Text)
 ittrddbaRangeKeyField = lens _ioTTopicRuleDynamoDBActionRangeKeyField (\s a -> s { _ioTTopicRuleDynamoDBActionRangeKeyField = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-dynamodb.html#cfn-iot-dynamodb-rangeKeytype
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-rangekeytype
 ittrddbaRangeKeyType :: Lens' IoTTopicRuleDynamoDBAction (Maybe (Val Text))
 ittrddbaRangeKeyType = lens _ioTTopicRuleDynamoDBActionRangeKeyType (\s a -> s { _ioTTopicRuleDynamoDBActionRangeKeyType = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-dynamodb.html#cfn-iot-dynamodb-rangekeyvalue
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-rangekeyvalue
 ittrddbaRangeKeyValue :: Lens' IoTTopicRuleDynamoDBAction (Val Text)
 ittrddbaRangeKeyValue = lens _ioTTopicRuleDynamoDBActionRangeKeyValue (\s a -> s { _ioTTopicRuleDynamoDBActionRangeKeyValue = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-dynamodb.html#cfn-iot-dynamodb-rolearn
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-rolearn
 ittrddbaRoleArn :: Lens' IoTTopicRuleDynamoDBAction (Val Text)
 ittrddbaRoleArn = lens _ioTTopicRuleDynamoDBActionRoleArn (\s a -> s { _ioTTopicRuleDynamoDBActionRoleArn = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-dynamodb.html#cfn-iot-dynamodb-tablename
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-tablename
 ittrddbaTableName :: Lens' IoTTopicRuleDynamoDBAction (Val Text)
 ittrddbaTableName = lens _ioTTopicRuleDynamoDBActionTableName (\s a -> s { _ioTTopicRuleDynamoDBActionTableName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleDynamoDBV2Action.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleDynamoDBV2Action.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleDynamoDBV2Action.hs
@@ -0,0 +1,57 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbv2action.html
+
+module Stratosphere.ResourceProperties.IoTTopicRuleDynamoDBV2Action where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+import Stratosphere.ResourceProperties.IoTTopicRulePutItemInput
+
+-- | Full data type definition for IoTTopicRuleDynamoDBV2Action. See
+-- 'ioTTopicRuleDynamoDBV2Action' for a more convenient constructor.
+data IoTTopicRuleDynamoDBV2Action =
+  IoTTopicRuleDynamoDBV2Action
+  { _ioTTopicRuleDynamoDBV2ActionPutItem :: Maybe IoTTopicRulePutItemInput
+  , _ioTTopicRuleDynamoDBV2ActionRoleArn :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON IoTTopicRuleDynamoDBV2Action where
+  toJSON IoTTopicRuleDynamoDBV2Action{..} =
+    object $
+    catMaybes
+    [ fmap (("PutItem",) . toJSON) _ioTTopicRuleDynamoDBV2ActionPutItem
+    , fmap (("RoleArn",) . toJSON) _ioTTopicRuleDynamoDBV2ActionRoleArn
+    ]
+
+instance FromJSON IoTTopicRuleDynamoDBV2Action where
+  parseJSON (Object obj) =
+    IoTTopicRuleDynamoDBV2Action <$>
+      (obj .:? "PutItem") <*>
+      (obj .:? "RoleArn")
+  parseJSON _ = mempty
+
+-- | Constructor for 'IoTTopicRuleDynamoDBV2Action' containing required fields
+-- as arguments.
+ioTTopicRuleDynamoDBV2Action
+  :: IoTTopicRuleDynamoDBV2Action
+ioTTopicRuleDynamoDBV2Action  =
+  IoTTopicRuleDynamoDBV2Action
+  { _ioTTopicRuleDynamoDBV2ActionPutItem = Nothing
+  , _ioTTopicRuleDynamoDBV2ActionRoleArn = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbv2action.html#cfn-iot-topicrule-dynamodbv2action-putitem
+ittrddbvaPutItem :: Lens' IoTTopicRuleDynamoDBV2Action (Maybe IoTTopicRulePutItemInput)
+ittrddbvaPutItem = lens _ioTTopicRuleDynamoDBV2ActionPutItem (\s a -> s { _ioTTopicRuleDynamoDBV2ActionPutItem = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbv2action.html#cfn-iot-topicrule-dynamodbv2action-rolearn
+ittrddbvaRoleArn :: Lens' IoTTopicRuleDynamoDBV2Action (Maybe (Val Text))
+ittrddbvaRoleArn = lens _ioTTopicRuleDynamoDBV2ActionRoleArn (\s a -> s { _ioTTopicRuleDynamoDBV2ActionRoleArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleElasticsearchAction.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleElasticsearchAction.hs
--- a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleElasticsearchAction.hs
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleElasticsearchAction.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-elasticsearch.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html
 
 module Stratosphere.ResourceProperties.IoTTopicRuleElasticsearchAction where
 
@@ -65,22 +65,22 @@
   , _ioTTopicRuleElasticsearchActionType = typearg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-elasticsearch.html#cfn-iot-elasticsearch-endpoint
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html#cfn-iot-topicrule-elasticsearchaction-endpoint
 ittreaEndpoint :: Lens' IoTTopicRuleElasticsearchAction (Val Text)
 ittreaEndpoint = lens _ioTTopicRuleElasticsearchActionEndpoint (\s a -> s { _ioTTopicRuleElasticsearchActionEndpoint = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-elasticsearch.html#cfn-iot-elasticsearch-id
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html#cfn-iot-topicrule-elasticsearchaction-id
 ittreaId :: Lens' IoTTopicRuleElasticsearchAction (Val Text)
 ittreaId = lens _ioTTopicRuleElasticsearchActionId (\s a -> s { _ioTTopicRuleElasticsearchActionId = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-elasticsearch.html#cfn-iot-elasticsearch-index
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html#cfn-iot-topicrule-elasticsearchaction-index
 ittreaIndex :: Lens' IoTTopicRuleElasticsearchAction (Val Text)
 ittreaIndex = lens _ioTTopicRuleElasticsearchActionIndex (\s a -> s { _ioTTopicRuleElasticsearchActionIndex = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-elasticsearch.html#cfn-iot-elasticsearch-rolearn
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html#cfn-iot-topicrule-elasticsearchaction-rolearn
 ittreaRoleArn :: Lens' IoTTopicRuleElasticsearchAction (Val Text)
 ittreaRoleArn = lens _ioTTopicRuleElasticsearchActionRoleArn (\s a -> s { _ioTTopicRuleElasticsearchActionRoleArn = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-elasticsearch.html#cfn-iot-elasticsearch-type
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html#cfn-iot-topicrule-elasticsearchaction-type
 ittreaType :: Lens' IoTTopicRuleElasticsearchAction (Val Text)
 ittreaType = lens _ioTTopicRuleElasticsearchActionType (\s a -> s { _ioTTopicRuleElasticsearchActionType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleFirehoseAction.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleFirehoseAction.hs
--- a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleFirehoseAction.hs
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleFirehoseAction.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-firehose.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-firehoseaction.html
 
 module Stratosphere.ResourceProperties.IoTTopicRuleFirehoseAction where
 
@@ -54,14 +54,14 @@
   , _ioTTopicRuleFirehoseActionSeparator = Nothing
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-firehose.html#cfn-iot-firehose-deliverystreamname
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-firehoseaction.html#cfn-iot-topicrule-firehoseaction-deliverystreamname
 ittrfaDeliveryStreamName :: Lens' IoTTopicRuleFirehoseAction (Val Text)
 ittrfaDeliveryStreamName = lens _ioTTopicRuleFirehoseActionDeliveryStreamName (\s a -> s { _ioTTopicRuleFirehoseActionDeliveryStreamName = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-firehose.html#cfn-iot-firehose-rolearn
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-firehoseaction.html#cfn-iot-topicrule-firehoseaction-rolearn
 ittrfaRoleArn :: Lens' IoTTopicRuleFirehoseAction (Val Text)
 ittrfaRoleArn = lens _ioTTopicRuleFirehoseActionRoleArn (\s a -> s { _ioTTopicRuleFirehoseActionRoleArn = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-firehose.html#cfn-iot-firehose-separator
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-firehoseaction.html#cfn-iot-topicrule-firehoseaction-separator
 ittrfaSeparator :: Lens' IoTTopicRuleFirehoseAction (Maybe (Val Text))
 ittrfaSeparator = lens _ioTTopicRuleFirehoseActionSeparator (\s a -> s { _ioTTopicRuleFirehoseActionSeparator = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleKinesisAction.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleKinesisAction.hs
--- a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleKinesisAction.hs
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleKinesisAction.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-kinesis.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kinesisaction.html
 
 module Stratosphere.ResourceProperties.IoTTopicRuleKinesisAction where
 
@@ -54,14 +54,14 @@
   , _ioTTopicRuleKinesisActionStreamName = streamNamearg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-kinesis.html#cfn-iot-kinesis-partitionkey
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kinesisaction.html#cfn-iot-topicrule-kinesisaction-partitionkey
 ittrkaPartitionKey :: Lens' IoTTopicRuleKinesisAction (Maybe (Val Text))
 ittrkaPartitionKey = lens _ioTTopicRuleKinesisActionPartitionKey (\s a -> s { _ioTTopicRuleKinesisActionPartitionKey = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-kinesis.html#cfn-iot-kinesis-rolearn
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kinesisaction.html#cfn-iot-topicrule-kinesisaction-rolearn
 ittrkaRoleArn :: Lens' IoTTopicRuleKinesisAction (Val Text)
 ittrkaRoleArn = lens _ioTTopicRuleKinesisActionRoleArn (\s a -> s { _ioTTopicRuleKinesisActionRoleArn = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-kinesis.html#cfn-iot-kinesis-streamname
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kinesisaction.html#cfn-iot-topicrule-kinesisaction-streamname
 ittrkaStreamName :: Lens' IoTTopicRuleKinesisAction (Val Text)
 ittrkaStreamName = lens _ioTTopicRuleKinesisActionStreamName (\s a -> s { _ioTTopicRuleKinesisActionStreamName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleLambdaAction.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleLambdaAction.hs
--- a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleLambdaAction.hs
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleLambdaAction.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-lambda.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-lambdaaction.html
 
 module Stratosphere.ResourceProperties.IoTTopicRuleLambdaAction where
 
@@ -19,32 +19,31 @@
 -- 'ioTTopicRuleLambdaAction' for a more convenient constructor.
 data IoTTopicRuleLambdaAction =
   IoTTopicRuleLambdaAction
-  { _ioTTopicRuleLambdaActionFunctionArn :: Val Text
+  { _ioTTopicRuleLambdaActionFunctionArn :: Maybe (Val Text)
   } deriving (Show, Eq)
 
 instance ToJSON IoTTopicRuleLambdaAction where
   toJSON IoTTopicRuleLambdaAction{..} =
     object $
     catMaybes
-    [ (Just . ("FunctionArn",) . toJSON) _ioTTopicRuleLambdaActionFunctionArn
+    [ fmap (("FunctionArn",) . toJSON) _ioTTopicRuleLambdaActionFunctionArn
     ]
 
 instance FromJSON IoTTopicRuleLambdaAction where
   parseJSON (Object obj) =
     IoTTopicRuleLambdaAction <$>
-      (obj .: "FunctionArn")
+      (obj .:? "FunctionArn")
   parseJSON _ = mempty
 
 -- | Constructor for 'IoTTopicRuleLambdaAction' containing required fields as
 -- arguments.
 ioTTopicRuleLambdaAction
-  :: Val Text -- ^ 'ittrlaFunctionArn'
-  -> IoTTopicRuleLambdaAction
-ioTTopicRuleLambdaAction functionArnarg =
+  :: IoTTopicRuleLambdaAction
+ioTTopicRuleLambdaAction  =
   IoTTopicRuleLambdaAction
-  { _ioTTopicRuleLambdaActionFunctionArn = functionArnarg
+  { _ioTTopicRuleLambdaActionFunctionArn = Nothing
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-lambda.html#cfn-iot-lambda-functionarn
-ittrlaFunctionArn :: Lens' IoTTopicRuleLambdaAction (Val Text)
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-lambdaaction.html#cfn-iot-topicrule-lambdaaction-functionarn
+ittrlaFunctionArn :: Lens' IoTTopicRuleLambdaAction (Maybe (Val Text))
 ittrlaFunctionArn = lens _ioTTopicRuleLambdaActionFunctionArn (\s a -> s { _ioTTopicRuleLambdaActionFunctionArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRulePutItemInput.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRulePutItemInput.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRulePutItemInput.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putiteminput.html
+
+module Stratosphere.ResourceProperties.IoTTopicRulePutItemInput where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for IoTTopicRulePutItemInput. See
+-- 'ioTTopicRulePutItemInput' for a more convenient constructor.
+data IoTTopicRulePutItemInput =
+  IoTTopicRulePutItemInput
+  { _ioTTopicRulePutItemInputTableName :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON IoTTopicRulePutItemInput where
+  toJSON IoTTopicRulePutItemInput{..} =
+    object $
+    catMaybes
+    [ (Just . ("TableName",) . toJSON) _ioTTopicRulePutItemInputTableName
+    ]
+
+instance FromJSON IoTTopicRulePutItemInput where
+  parseJSON (Object obj) =
+    IoTTopicRulePutItemInput <$>
+      (obj .: "TableName")
+  parseJSON _ = mempty
+
+-- | Constructor for 'IoTTopicRulePutItemInput' containing required fields as
+-- arguments.
+ioTTopicRulePutItemInput
+  :: Val Text -- ^ 'ittrpiiTableName'
+  -> IoTTopicRulePutItemInput
+ioTTopicRulePutItemInput tableNamearg =
+  IoTTopicRulePutItemInput
+  { _ioTTopicRulePutItemInputTableName = tableNamearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putiteminput.html#cfn-iot-topicrule-putiteminput-tablename
+ittrpiiTableName :: Lens' IoTTopicRulePutItemInput (Val Text)
+ittrpiiTableName = lens _ioTTopicRulePutItemInputTableName (\s a -> s { _ioTTopicRulePutItemInputTableName = 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
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-republish.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-republishaction.html
 
 module Stratosphere.ResourceProperties.IoTTopicRuleRepublishAction where
 
@@ -50,10 +50,10 @@
   , _ioTTopicRuleRepublishActionTopic = topicarg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-republish.html#cfn-iot-republish-rolearn
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-republishaction.html#cfn-iot-topicrule-republishaction-rolearn
 ittrraRoleArn :: Lens' IoTTopicRuleRepublishAction (Val Text)
 ittrraRoleArn = lens _ioTTopicRuleRepublishActionRoleArn (\s a -> s { _ioTTopicRuleRepublishActionRoleArn = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-republish.html#cfn-iot-republish-topic
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-republishaction.html#cfn-iot-topicrule-republishaction-topic
 ittrraTopic :: Lens' IoTTopicRuleRepublishAction (Val Text)
 ittrraTopic = lens _ioTTopicRuleRepublishActionTopic (\s a -> s { _ioTTopicRuleRepublishActionTopic = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleS3Action.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleS3Action.hs
--- a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleS3Action.hs
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleS3Action.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-s3.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-s3action.html
 
 module Stratosphere.ResourceProperties.IoTTopicRuleS3Action where
 
@@ -55,14 +55,14 @@
   , _ioTTopicRuleS3ActionRoleArn = roleArnarg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-s3.html#cfn-iot-s3-bucketname
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-s3action.html#cfn-iot-topicrule-s3action-bucketname
 ittrs3aBucketName :: Lens' IoTTopicRuleS3Action (Val Text)
 ittrs3aBucketName = lens _ioTTopicRuleS3ActionBucketName (\s a -> s { _ioTTopicRuleS3ActionBucketName = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-s3.html#cfn-iot-s3-key
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-s3action.html#cfn-iot-topicrule-s3action-key
 ittrs3aKey :: Lens' IoTTopicRuleS3Action (Val Text)
 ittrs3aKey = lens _ioTTopicRuleS3ActionKey (\s a -> s { _ioTTopicRuleS3ActionKey = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-s3.html#cfn-iot-s3-rolearn
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-s3action.html#cfn-iot-topicrule-s3action-rolearn
 ittrs3aRoleArn :: Lens' IoTTopicRuleS3Action (Val Text)
 ittrs3aRoleArn = lens _ioTTopicRuleS3ActionRoleArn (\s a -> s { _ioTTopicRuleS3ActionRoleArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleSnsAction.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleSnsAction.hs
--- a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleSnsAction.hs
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleSnsAction.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-sns.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-snsaction.html
 
 module Stratosphere.ResourceProperties.IoTTopicRuleSnsAction where
 
@@ -54,14 +54,14 @@
   , _ioTTopicRuleSnsActionTargetArn = targetArnarg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-sns.html#cfn-iot-sns-snsaction
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-snsaction.html#cfn-iot-topicrule-snsaction-messageformat
 ittrsnaMessageFormat :: Lens' IoTTopicRuleSnsAction (Maybe (Val Text))
 ittrsnaMessageFormat = lens _ioTTopicRuleSnsActionMessageFormat (\s a -> s { _ioTTopicRuleSnsActionMessageFormat = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-sns.html#cfn-iot-sns-rolearn
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-snsaction.html#cfn-iot-topicrule-snsaction-rolearn
 ittrsnaRoleArn :: Lens' IoTTopicRuleSnsAction (Val Text)
 ittrsnaRoleArn = lens _ioTTopicRuleSnsActionRoleArn (\s a -> s { _ioTTopicRuleSnsActionRoleArn = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-sns.html#cfn-iot-sns-targetarn
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-snsaction.html#cfn-iot-topicrule-snsaction-targetarn
 ittrsnaTargetArn :: Lens' IoTTopicRuleSnsAction (Val Text)
 ittrsnaTargetArn = lens _ioTTopicRuleSnsActionTargetArn (\s a -> s { _ioTTopicRuleSnsActionTargetArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleSqsAction.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleSqsAction.hs
--- a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleSqsAction.hs
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleSqsAction.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-sqs.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sqsaction.html
 
 module Stratosphere.ResourceProperties.IoTTopicRuleSqsAction where
 
@@ -54,14 +54,14 @@
   , _ioTTopicRuleSqsActionUseBase64 = Nothing
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-sqs.html#cfn-iot-sqs-queueurl
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sqsaction.html#cfn-iot-topicrule-sqsaction-queueurl
 ittrsqaQueueUrl :: Lens' IoTTopicRuleSqsAction (Val Text)
 ittrsqaQueueUrl = lens _ioTTopicRuleSqsActionQueueUrl (\s a -> s { _ioTTopicRuleSqsActionQueueUrl = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-sqs.html#cfn-iot-sqs-rolearn
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sqsaction.html#cfn-iot-topicrule-sqsaction-rolearn
 ittrsqaRoleArn :: Lens' IoTTopicRuleSqsAction (Val Text)
 ittrsqaRoleArn = lens _ioTTopicRuleSqsActionRoleArn (\s a -> s { _ioTTopicRuleSqsActionRoleArn = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-sqs.html#cfn-iot-sqs-usebase64
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sqsaction.html#cfn-iot-topicrule-sqsaction-usebase64
 ittrsqaUseBase64 :: Lens' IoTTopicRuleSqsAction (Maybe (Val Bool))
 ittrsqaUseBase64 = lens _ioTTopicRuleSqsActionUseBase64 (\s a -> s { _ioTTopicRuleSqsActionUseBase64 = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleTopicRulePayload.hs b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleTopicRulePayload.hs
--- a/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleTopicRulePayload.hs
+++ b/library-gen/Stratosphere/ResourceProperties/IoTTopicRuleTopicRulePayload.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrulepayload.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html
 
 module Stratosphere.ResourceProperties.IoTTopicRuleTopicRulePayload where
 
@@ -63,22 +63,22 @@
   , _ioTTopicRuleTopicRulePayloadSql = sqlarg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrulepayload.html#cfn-iot-topicrulepayload-actions
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-actions
 ittrtrpActions :: Lens' IoTTopicRuleTopicRulePayload [IoTTopicRuleAction]
 ittrtrpActions = lens _ioTTopicRuleTopicRulePayloadActions (\s a -> s { _ioTTopicRuleTopicRulePayloadActions = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrulepayload.html#cfn-iot-topicrulepayload-awsiotsqlversion
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-awsiotsqlversion
 ittrtrpAwsIotSqlVersion :: Lens' IoTTopicRuleTopicRulePayload (Maybe (Val Text))
 ittrtrpAwsIotSqlVersion = lens _ioTTopicRuleTopicRulePayloadAwsIotSqlVersion (\s a -> s { _ioTTopicRuleTopicRulePayloadAwsIotSqlVersion = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrulepayload.html#cfn-iot-topicrulepayload-description
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-description
 ittrtrpDescription :: Lens' IoTTopicRuleTopicRulePayload (Maybe (Val Text))
 ittrtrpDescription = lens _ioTTopicRuleTopicRulePayloadDescription (\s a -> s { _ioTTopicRuleTopicRulePayloadDescription = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrulepayload.html#cfn-iot-topicrulepayload-ruledisabled
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-ruledisabled
 ittrtrpRuleDisabled :: Lens' IoTTopicRuleTopicRulePayload (Val Bool)
 ittrtrpRuleDisabled = lens _ioTTopicRuleTopicRulePayloadRuleDisabled (\s a -> s { _ioTTopicRuleTopicRulePayloadRuleDisabled = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrulepayload.html#cfn-iot-topicrulepayload-sql
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-sql
 ittrtrpSql :: Lens' IoTTopicRuleTopicRulePayload (Val Text)
 ittrtrpSql = lens _ioTTopicRuleTopicRulePayloadSql (\s a -> s { _ioTTopicRuleTopicRulePayloadSql = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamBufferingHints.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamBufferingHints.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamBufferingHints.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamBufferingHints.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-bufferinghints.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-bufferinghints.html
 
 module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamBufferingHints where
 
@@ -52,10 +52,10 @@
   , _kinesisFirehoseDeliveryStreamBufferingHintsSizeInMBs = sizeInMBsarg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-bufferinghints.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-bufferinghints-intervalinseconds
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-bufferinghints.html#cfn-kinesisfirehose-deliverystream-bufferinghints-intervalinseconds
 kfdsbhIntervalInSeconds :: Lens' KinesisFirehoseDeliveryStreamBufferingHints (Val Integer)
 kfdsbhIntervalInSeconds = lens _kinesisFirehoseDeliveryStreamBufferingHintsIntervalInSeconds (\s a -> s { _kinesisFirehoseDeliveryStreamBufferingHintsIntervalInSeconds = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-bufferinghints.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-bufferinghints-sizeinmbs
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-bufferinghints.html#cfn-kinesisfirehose-deliverystream-bufferinghints-sizeinmbs
 kfdsbhSizeInMBs :: Lens' KinesisFirehoseDeliveryStreamBufferingHints (Val Integer)
 kfdsbhSizeInMBs = lens _kinesisFirehoseDeliveryStreamBufferingHintsSizeInMBs (\s a -> s { _kinesisFirehoseDeliveryStreamBufferingHintsSizeInMBs = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-destination-cloudwatchloggingoptions.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html
 
 module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions where
 
@@ -54,14 +54,14 @@
   , _kinesisFirehoseDeliveryStreamCloudWatchLoggingOptionsLogStreamName = Nothing
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-destination-cloudwatchloggingoptions.html#cfn-kinesisfirehose-kinesisdeliverystream-destination-cloudwatchloggingoptions-enabled
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html#cfn-kinesisfirehose-deliverystream-cloudwatchloggingoptions-enabled
 kfdscwloEnabled :: Lens' KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions (Maybe (Val Bool))
 kfdscwloEnabled = lens _kinesisFirehoseDeliveryStreamCloudWatchLoggingOptionsEnabled (\s a -> s { _kinesisFirehoseDeliveryStreamCloudWatchLoggingOptionsEnabled = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-destination-cloudwatchloggingoptions.html#cfn-kinesisfirehose-kinesisdeliverystream-destination-cloudwatchloggingoptions-loggroupname
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html#cfn-kinesisfirehose-deliverystream-cloudwatchloggingoptions-loggroupname
 kfdscwloLogGroupName :: Lens' KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions (Maybe (Val Text))
 kfdscwloLogGroupName = lens _kinesisFirehoseDeliveryStreamCloudWatchLoggingOptionsLogGroupName (\s a -> s { _kinesisFirehoseDeliveryStreamCloudWatchLoggingOptionsLogGroupName = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-destination-cloudwatchloggingoptions.html#cfn-kinesisfirehose-kinesisdeliverystream-destination-cloudwatchloggingoptions-logstreamname
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html#cfn-kinesisfirehose-deliverystream-cloudwatchloggingoptions-logstreamname
 kfdscwloLogStreamName :: Lens' KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions (Maybe (Val Text))
 kfdscwloLogStreamName = lens _kinesisFirehoseDeliveryStreamCloudWatchLoggingOptionsLogStreamName (\s a -> s { _kinesisFirehoseDeliveryStreamCloudWatchLoggingOptionsLogStreamName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamCopyCommand.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamCopyCommand.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamCopyCommand.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamCopyCommand.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration-copycommand.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-copycommand.html
 
 module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamCopyCommand where
 
@@ -54,14 +54,14 @@
   , _kinesisFirehoseDeliveryStreamCopyCommandDataTableName = dataTableNamearg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration-copycommand.html#cfn-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration-copycommand-copyoptions
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-copycommand.html#cfn-kinesisfirehose-deliverystream-copycommand-copyoptions
 kfdsccCopyOptions :: Lens' KinesisFirehoseDeliveryStreamCopyCommand (Maybe (Val Text))
 kfdsccCopyOptions = lens _kinesisFirehoseDeliveryStreamCopyCommandCopyOptions (\s a -> s { _kinesisFirehoseDeliveryStreamCopyCommandCopyOptions = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration-copycommand.html#cfn-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration-copycommand-datatablecolumns
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-copycommand.html#cfn-kinesisfirehose-deliverystream-copycommand-datatablecolumns
 kfdsccDataTableColumns :: Lens' KinesisFirehoseDeliveryStreamCopyCommand (Maybe (Val Text))
 kfdsccDataTableColumns = lens _kinesisFirehoseDeliveryStreamCopyCommandDataTableColumns (\s a -> s { _kinesisFirehoseDeliveryStreamCopyCommandDataTableColumns = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration-copycommand.html#cfn-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration-copycommand-datatablename
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-copycommand.html#cfn-kinesisfirehose-deliverystream-copycommand-datatablename
 kfdsccDataTableName :: Lens' KinesisFirehoseDeliveryStreamCopyCommand (Val Text)
 kfdsccDataTableName = lens _kinesisFirehoseDeliveryStreamCopyCommandDataTableName (\s a -> s { _kinesisFirehoseDeliveryStreamCopyCommandDataTableName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchBufferingHints.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchBufferingHints.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchBufferingHints.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchBufferingHints.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchbufferinghints.html
 
 module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamElasticsearchBufferingHints where
 
@@ -53,10 +53,10 @@
   , _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsSizeInMBs = sizeInMBsarg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration-bufferinghints-intervalinseconds
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchbufferinghints.html#cfn-kinesisfirehose-deliverystream-elasticsearchbufferinghints-intervalinseconds
 kfdsebhIntervalInSeconds :: Lens' KinesisFirehoseDeliveryStreamElasticsearchBufferingHints (Val Integer)
 kfdsebhIntervalInSeconds = lens _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsIntervalInSeconds (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsIntervalInSeconds = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration-bufferinghints-sizeinmbs
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchbufferinghints.html#cfn-kinesisfirehose-deliverystream-elasticsearchbufferinghints-sizeinmbs
 kfdsebhSizeInMBs :: Lens' KinesisFirehoseDeliveryStreamElasticsearchBufferingHints (Val Integer)
 kfdsebhSizeInMBs = lens _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsSizeInMBs (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsSizeInMBs = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html
 
 module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration where
 
@@ -101,46 +101,46 @@
   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationTypeName = typeNamearg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration-bufferinghints
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-bufferinghints
 kfdsedcBufferingHints :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration KinesisFirehoseDeliveryStreamElasticsearchBufferingHints
 kfdsedcBufferingHints = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationBufferingHints (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationBufferingHints = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration-cloudwatchloggingoptions
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-cloudwatchloggingoptions
 kfdsedcCloudWatchLoggingOptions :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions)
 kfdsedcCloudWatchLoggingOptions = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationCloudWatchLoggingOptions (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationCloudWatchLoggingOptions = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration-domainarn
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-domainarn
 kfdsedcDomainARN :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Val Text)
 kfdsedcDomainARN = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationDomainARN (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationDomainARN = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration-indexname
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-indexname
 kfdsedcIndexName :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Val Text)
 kfdsedcIndexName = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexName (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexName = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration-indexrotationperiod
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-indexrotationperiod
 kfdsedcIndexRotationPeriod :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Val Text)
 kfdsedcIndexRotationPeriod = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexRotationPeriod (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexRotationPeriod = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-processingconfiguration
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-processingconfiguration
 kfdsedcProcessingConfiguration :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamProcessingConfiguration)
 kfdsedcProcessingConfiguration = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationProcessingConfiguration (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationProcessingConfiguration = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration-retryoptions
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-retryoptions
 kfdsedcRetryOptions :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration KinesisFirehoseDeliveryStreamElasticsearchRetryOptions
 kfdsedcRetryOptions = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRetryOptions (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRetryOptions = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration-rolearn
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-rolearn
 kfdsedcRoleARN :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Val Text)
 kfdsedcRoleARN = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRoleARN (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRoleARN = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration-s3backupmode
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-s3backupmode
 kfdsedcS3BackupMode :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Val KinesisFirehoseElasticsearchS3BackupMode)
 kfdsedcS3BackupMode = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3BackupMode (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3BackupMode = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration-s3configuration
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-s3configuration
 kfdsedcS3Configuration :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration KinesisFirehoseDeliveryStreamS3DestinationConfiguration
 kfdsedcS3Configuration = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3Configuration (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3Configuration = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration-typename
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-typename
 kfdsedcTypeName :: Lens' KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (Val Text)
 kfdsedcTypeName = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationTypeName (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationTypeName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchRetryOptions.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchRetryOptions.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchRetryOptions.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchRetryOptions.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration-retryoptions.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchretryoptions.html
 
 module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamElasticsearchRetryOptions where
 
@@ -47,6 +47,6 @@
   { _kinesisFirehoseDeliveryStreamElasticsearchRetryOptionsDurationInSeconds = durationInSecondsarg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration-retryoptions.html#cfn-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration-retryoptions-durationinseconds
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchretryoptions.html#cfn-kinesisfirehose-deliverystream-elasticsearchretryoptions-durationinseconds
 kfdseroDurationInSeconds :: Lens' KinesisFirehoseDeliveryStreamElasticsearchRetryOptions (Val Integer)
 kfdseroDurationInSeconds = lens _kinesisFirehoseDeliveryStreamElasticsearchRetryOptionsDurationInSeconds (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchRetryOptionsDurationInSeconds = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamEncryptionConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamEncryptionConfiguration.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamEncryptionConfiguration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamEncryptionConfiguration.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-encryptionconfiguration.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-encryptionconfiguration.html
 
 module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamEncryptionConfiguration where
 
@@ -51,10 +51,10 @@
   , _kinesisFirehoseDeliveryStreamEncryptionConfigurationNoEncryptionConfig = Nothing
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-encryptionconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-encryptionconfiguration-kmsencryptionconfig
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-encryptionconfiguration.html#cfn-kinesisfirehose-deliverystream-encryptionconfiguration-kmsencryptionconfig
 kfdsecKMSEncryptionConfig :: Lens' KinesisFirehoseDeliveryStreamEncryptionConfiguration (Maybe KinesisFirehoseDeliveryStreamKMSEncryptionConfig)
 kfdsecKMSEncryptionConfig = lens _kinesisFirehoseDeliveryStreamEncryptionConfigurationKMSEncryptionConfig (\s a -> s { _kinesisFirehoseDeliveryStreamEncryptionConfigurationKMSEncryptionConfig = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-encryptionconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-encryptionconfiguration-noencryptionconfig
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-encryptionconfiguration.html#cfn-kinesisfirehose-deliverystream-encryptionconfiguration-noencryptionconfig
 kfdsecNoEncryptionConfig :: Lens' KinesisFirehoseDeliveryStreamEncryptionConfiguration (Maybe (Val KinesisFirehoseNoEncryptionConfig))
 kfdsecNoEncryptionConfig = lens _kinesisFirehoseDeliveryStreamEncryptionConfigurationNoEncryptionConfig (\s a -> s { _kinesisFirehoseDeliveryStreamEncryptionConfigurationNoEncryptionConfig = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-extendeds3destinationconfiguration.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html
 
 module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration where
 
@@ -92,42 +92,42 @@
   , _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationS3BackupMode = Nothing
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-bucketarn
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-bucketarn
 kfdsesdcBucketARN :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration (Val Text)
 kfdsesdcBucketARN = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBucketARN (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBucketARN = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-bufferinghints
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-bufferinghints
 kfdsesdcBufferingHints :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration KinesisFirehoseDeliveryStreamBufferingHints
 kfdsesdcBufferingHints = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBufferingHints (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationBufferingHints = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-cloudwatchloggingoptions
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-cloudwatchloggingoptions
 kfdsesdcCloudWatchLoggingOptions :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions)
 kfdsesdcCloudWatchLoggingOptions = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCloudWatchLoggingOptions (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCloudWatchLoggingOptions = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-compressionformat
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-compressionformat
 kfdsesdcCompressionFormat :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration (Val Text)
 kfdsesdcCompressionFormat = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCompressionFormat (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationCompressionFormat = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-encryptionconfiguration
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-encryptionconfiguration
 kfdsesdcEncryptionConfiguration :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamEncryptionConfiguration)
 kfdsesdcEncryptionConfiguration = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationEncryptionConfiguration (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationEncryptionConfiguration = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-prefix
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-prefix
 kfdsesdcPrefix :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration (Val Text)
 kfdsesdcPrefix = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationPrefix (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationPrefix = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-processingconfiguration
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-processingconfiguration
 kfdsesdcProcessingConfiguration :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamProcessingConfiguration)
 kfdsesdcProcessingConfiguration = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationProcessingConfiguration (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationProcessingConfiguration = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-rolearn
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-rolearn
 kfdsesdcRoleARN :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration (Val Text)
 kfdsesdcRoleARN = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationRoleARN (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationRoleARN = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-s3backupconfiguration
 kfdsesdcS3BackupConfiguration :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamS3DestinationConfiguration)
 kfdsesdcS3BackupConfiguration = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationS3BackupConfiguration (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationS3BackupConfiguration = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3backupmode
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-s3backupmode
 kfdsesdcS3BackupMode :: Lens' KinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration (Maybe (Val Text))
 kfdsesdcS3BackupMode = lens _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationS3BackupMode (\s a -> s { _kinesisFirehoseDeliveryStreamExtendedS3DestinationConfigurationS3BackupMode = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamKMSEncryptionConfig.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamKMSEncryptionConfig.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamKMSEncryptionConfig.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamKMSEncryptionConfig.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-encryptionconfiguration-kmsencryptionconfig.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kmsencryptionconfig.html
 
 module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamKMSEncryptionConfig where
 
@@ -47,6 +47,6 @@
   { _kinesisFirehoseDeliveryStreamKMSEncryptionConfigAWSKMSKeyARN = aWSKMSKeyARNarg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-encryptionconfiguration-kmsencryptionconfig.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-encryptionconfiguration-kmsencryptionconfig-awskmskeyarn
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kmsencryptionconfig.html#cfn-kinesisfirehose-deliverystream-kmsencryptionconfig-awskmskeyarn
 kfdskmsecAWSKMSKeyARN :: Lens' KinesisFirehoseDeliveryStreamKMSEncryptionConfig (Val Text)
 kfdskmsecAWSKMSKeyARN = lens _kinesisFirehoseDeliveryStreamKMSEncryptionConfigAWSKMSKeyARN (\s a -> s { _kinesisFirehoseDeliveryStreamKMSEncryptionConfigAWSKMSKeyARN = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessingConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessingConfiguration.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessingConfiguration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessingConfiguration.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-processingconfiguration.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html
 
 module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessingConfiguration where
 
@@ -52,10 +52,10 @@
   , _kinesisFirehoseDeliveryStreamProcessingConfigurationProcessors = processorsarg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-processingconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-processingconfiguration-enabled
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html#cfn-kinesisfirehose-deliverystream-processingconfiguration-enabled
 kfdspcEnabled :: Lens' KinesisFirehoseDeliveryStreamProcessingConfiguration (Val Bool)
 kfdspcEnabled = lens _kinesisFirehoseDeliveryStreamProcessingConfigurationEnabled (\s a -> s { _kinesisFirehoseDeliveryStreamProcessingConfigurationEnabled = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-processingconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-processingconfiguration-processors
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html#cfn-kinesisfirehose-deliverystream-processingconfiguration-processors
 kfdspcProcessors :: Lens' KinesisFirehoseDeliveryStreamProcessingConfiguration [KinesisFirehoseDeliveryStreamProcessor]
 kfdspcProcessors = lens _kinesisFirehoseDeliveryStreamProcessingConfigurationProcessors (\s a -> s { _kinesisFirehoseDeliveryStreamProcessingConfigurationProcessors = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessor.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessor.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessor.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessor.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-processingConfiguration-processor.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processor.html
 
 module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessor where
 
@@ -51,10 +51,10 @@
   , _kinesisFirehoseDeliveryStreamProcessorType = typearg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-processingConfiguration-processor.html#cfn-kinesisfirehose-kinesisdeliverystream-processingconfiguration-processor-parameter
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processor.html#cfn-kinesisfirehose-deliverystream-processor-parameters
 kfdspParameters :: Lens' KinesisFirehoseDeliveryStreamProcessor [KinesisFirehoseDeliveryStreamProcessorParameter]
 kfdspParameters = lens _kinesisFirehoseDeliveryStreamProcessorParameters (\s a -> s { _kinesisFirehoseDeliveryStreamProcessorParameters = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-processingConfiguration-processor.html#cfn-kinesisfirehose-kinesisdeliverystream-processingConfiguration-processor-type
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processor.html#cfn-kinesisfirehose-deliverystream-processor-type
 kfdspType :: Lens' KinesisFirehoseDeliveryStreamProcessor (Val Text)
 kfdspType = lens _kinesisFirehoseDeliveryStreamProcessorType (\s a -> s { _kinesisFirehoseDeliveryStreamProcessorType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessorParameter.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessorParameter.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessorParameter.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamProcessorParameter.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-ProcessingConfiguration.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processorparameter.html
 
 module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessorParameter where
 
@@ -52,10 +52,10 @@
   , _kinesisFirehoseDeliveryStreamProcessorParameterParameterValue = parameterValuearg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-ProcessingConfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-processingconfiguration-processor-parameter-parameterName
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processorparameter.html#cfn-kinesisfirehose-deliverystream-processorparameter-parametername
 kfdsppParameterName :: Lens' KinesisFirehoseDeliveryStreamProcessorParameter (Val Text)
 kfdsppParameterName = lens _kinesisFirehoseDeliveryStreamProcessorParameterParameterName (\s a -> s { _kinesisFirehoseDeliveryStreamProcessorParameterParameterName = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-ProcessingConfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-processingconfiguration-processor-parameter-parameterValue
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processorparameter.html#cfn-kinesisfirehose-deliverystream-processorparameter-parametervalue
 kfdsppParameterValue :: Lens' KinesisFirehoseDeliveryStreamProcessorParameter (Val Text)
 kfdsppParameterValue = lens _kinesisFirehoseDeliveryStreamProcessorParameterParameterValue (\s a -> s { _kinesisFirehoseDeliveryStreamProcessorParameterParameterValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html
 
 module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration where
 
@@ -84,34 +84,34 @@
   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationUsername = usernamearg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration-cloudwatchloggingoptions
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-cloudwatchloggingoptions
 kfdsrdcCloudWatchLoggingOptions :: Lens' KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions)
 kfdsrdcCloudWatchLoggingOptions = lens _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationCloudWatchLoggingOptions (\s a -> s { _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationCloudWatchLoggingOptions = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration-clusterjdbcurl
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-clusterjdbcurl
 kfdsrdcClusterJDBCURL :: Lens' KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration (Val Text)
 kfdsrdcClusterJDBCURL = lens _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationClusterJDBCURL (\s a -> s { _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationClusterJDBCURL = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration-copycommand
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-copycommand
 kfdsrdcCopyCommand :: Lens' KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration KinesisFirehoseDeliveryStreamCopyCommand
 kfdsrdcCopyCommand = lens _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationCopyCommand (\s a -> s { _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationCopyCommand = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration-password
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-password
 kfdsrdcPassword :: Lens' KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration (Val Text)
 kfdsrdcPassword = lens _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationPassword (\s a -> s { _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationPassword = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-processingconfiguration
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-processingconfiguration
 kfdsrdcProcessingConfiguration :: Lens' KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamProcessingConfiguration)
 kfdsrdcProcessingConfiguration = lens _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationProcessingConfiguration (\s a -> s { _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationProcessingConfiguration = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration-rolearn
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-rolearn
 kfdsrdcRoleARN :: Lens' KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration (Val Text)
 kfdsrdcRoleARN = lens _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationRoleARN (\s a -> s { _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationRoleARN = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration-s3configuration
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-s3configuration
 kfdsrdcS3Configuration :: Lens' KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration KinesisFirehoseDeliveryStreamS3DestinationConfiguration
 kfdsrdcS3Configuration = lens _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationS3Configuration (\s a -> s { _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationS3Configuration = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration-usename
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-username
 kfdsrdcUsername :: Lens' KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration (Val Text)
 kfdsrdcUsername = lens _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationUsername (\s a -> s { _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationUsername = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamS3DestinationConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamS3DestinationConfiguration.hs
--- a/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamS3DestinationConfiguration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamS3DestinationConfiguration.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html
 
 module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamS3DestinationConfiguration where
 
@@ -78,30 +78,30 @@
   , _kinesisFirehoseDeliveryStreamS3DestinationConfigurationRoleARN = roleARNarg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-bucketarn
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-bucketarn
 kfdssdcBucketARN :: Lens' KinesisFirehoseDeliveryStreamS3DestinationConfiguration (Val Text)
 kfdssdcBucketARN = lens _kinesisFirehoseDeliveryStreamS3DestinationConfigurationBucketARN (\s a -> s { _kinesisFirehoseDeliveryStreamS3DestinationConfigurationBucketARN = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-bufferinghints
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-bufferinghints
 kfdssdcBufferingHints :: Lens' KinesisFirehoseDeliveryStreamS3DestinationConfiguration KinesisFirehoseDeliveryStreamBufferingHints
 kfdssdcBufferingHints = lens _kinesisFirehoseDeliveryStreamS3DestinationConfigurationBufferingHints (\s a -> s { _kinesisFirehoseDeliveryStreamS3DestinationConfigurationBufferingHints = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-cloudwatchloggingoptions
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-cloudwatchloggingoptions
 kfdssdcCloudWatchLoggingOptions :: Lens' KinesisFirehoseDeliveryStreamS3DestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions)
 kfdssdcCloudWatchLoggingOptions = lens _kinesisFirehoseDeliveryStreamS3DestinationConfigurationCloudWatchLoggingOptions (\s a -> s { _kinesisFirehoseDeliveryStreamS3DestinationConfigurationCloudWatchLoggingOptions = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-compressionformat
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-compressionformat
 kfdssdcCompressionFormat :: Lens' KinesisFirehoseDeliveryStreamS3DestinationConfiguration (Val KinesisFirehoseS3CompressionFormat)
 kfdssdcCompressionFormat = lens _kinesisFirehoseDeliveryStreamS3DestinationConfigurationCompressionFormat (\s a -> s { _kinesisFirehoseDeliveryStreamS3DestinationConfigurationCompressionFormat = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-encryptionconfiguration
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-encryptionconfiguration
 kfdssdcEncryptionConfiguration :: Lens' KinesisFirehoseDeliveryStreamS3DestinationConfiguration (Maybe KinesisFirehoseDeliveryStreamEncryptionConfiguration)
 kfdssdcEncryptionConfiguration = lens _kinesisFirehoseDeliveryStreamS3DestinationConfigurationEncryptionConfiguration (\s a -> s { _kinesisFirehoseDeliveryStreamS3DestinationConfigurationEncryptionConfiguration = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-prefix
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-prefix
 kfdssdcPrefix :: Lens' KinesisFirehoseDeliveryStreamS3DestinationConfiguration (Val Text)
 kfdssdcPrefix = lens _kinesisFirehoseDeliveryStreamS3DestinationConfigurationPrefix (\s a -> s { _kinesisFirehoseDeliveryStreamS3DestinationConfigurationPrefix = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-rolearn
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-rolearn
 kfdssdcRoleARN :: Lens' KinesisFirehoseDeliveryStreamS3DestinationConfiguration (Val Text)
 kfdssdcRoleARN = lens _kinesisFirehoseDeliveryStreamS3DestinationConfigurationRoleARN (\s a -> s { _kinesisFirehoseDeliveryStreamS3DestinationConfigurationRoleARN = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/S3BucketMetricsConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/S3BucketMetricsConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/S3BucketMetricsConfiguration.hs
@@ -0,0 +1,66 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html
+
+module Stratosphere.ResourceProperties.S3BucketMetricsConfiguration where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+import Stratosphere.ResourceProperties.S3BucketTagFilter
+
+-- | Full data type definition for S3BucketMetricsConfiguration. See
+-- 's3BucketMetricsConfiguration' for a more convenient constructor.
+data S3BucketMetricsConfiguration =
+  S3BucketMetricsConfiguration
+  { _s3BucketMetricsConfigurationId :: Val Text
+  , _s3BucketMetricsConfigurationPrefix :: Maybe (Val Text)
+  , _s3BucketMetricsConfigurationTagFilters :: Maybe [S3BucketTagFilter]
+  } deriving (Show, Eq)
+
+instance ToJSON S3BucketMetricsConfiguration where
+  toJSON S3BucketMetricsConfiguration{..} =
+    object $
+    catMaybes
+    [ (Just . ("Id",) . toJSON) _s3BucketMetricsConfigurationId
+    , fmap (("Prefix",) . toJSON) _s3BucketMetricsConfigurationPrefix
+    , fmap (("TagFilters",) . toJSON) _s3BucketMetricsConfigurationTagFilters
+    ]
+
+instance FromJSON S3BucketMetricsConfiguration where
+  parseJSON (Object obj) =
+    S3BucketMetricsConfiguration <$>
+      (obj .: "Id") <*>
+      (obj .:? "Prefix") <*>
+      (obj .:? "TagFilters")
+  parseJSON _ = mempty
+
+-- | Constructor for 'S3BucketMetricsConfiguration' containing required fields
+-- as arguments.
+s3BucketMetricsConfiguration
+  :: Val Text -- ^ 'sbmcId'
+  -> S3BucketMetricsConfiguration
+s3BucketMetricsConfiguration idarg =
+  S3BucketMetricsConfiguration
+  { _s3BucketMetricsConfigurationId = idarg
+  , _s3BucketMetricsConfigurationPrefix = Nothing
+  , _s3BucketMetricsConfigurationTagFilters = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html#cfn-s3-bucket-metricsconfiguration-id
+sbmcId :: Lens' S3BucketMetricsConfiguration (Val Text)
+sbmcId = lens _s3BucketMetricsConfigurationId (\s a -> s { _s3BucketMetricsConfigurationId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html#cfn-s3-bucket-metricsconfiguration-prefix
+sbmcPrefix :: Lens' S3BucketMetricsConfiguration (Maybe (Val Text))
+sbmcPrefix = lens _s3BucketMetricsConfigurationPrefix (\s a -> s { _s3BucketMetricsConfigurationPrefix = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html#cfn-s3-bucket-metricsconfiguration-tagfilters
+sbmcTagFilters :: Lens' S3BucketMetricsConfiguration (Maybe [S3BucketTagFilter])
+sbmcTagFilters = lens _s3BucketMetricsConfigurationTagFilters (\s a -> s { _s3BucketMetricsConfigurationTagFilters = 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
@@ -54,6 +54,7 @@
 import Stratosphere.Resources.ApiGatewayDocumentationPart as X
 import Stratosphere.Resources.ApiGatewayDocumentationVersion as X
 import Stratosphere.Resources.ApiGatewayDomainName as X
+import Stratosphere.Resources.ApiGatewayGatewayResponse as X
 import Stratosphere.Resources.ApiGatewayMethod as X
 import Stratosphere.Resources.ApiGatewayModel as X
 import Stratosphere.Resources.ApiGatewayRequestValidator as X
@@ -69,6 +70,9 @@
 import Stratosphere.Resources.AutoScalingLifecycleHook as X
 import Stratosphere.Resources.AutoScalingScalingPolicy as X
 import Stratosphere.Resources.AutoScalingScheduledAction as X
+import Stratosphere.Resources.BatchComputeEnvironment as X
+import Stratosphere.Resources.BatchJobDefinition as X
+import Stratosphere.Resources.BatchJobQueue as X
 import Stratosphere.Resources.CertificateManagerCertificate as X
 import Stratosphere.Resources.CloudFormationCustomResource as X
 import Stratosphere.Resources.CloudFormationStack as X
@@ -95,6 +99,9 @@
 import Stratosphere.Resources.ConfigConfigRule as X
 import Stratosphere.Resources.ConfigConfigurationRecorder as X
 import Stratosphere.Resources.ConfigDeliveryChannel as X
+import Stratosphere.Resources.DAXCluster as X
+import Stratosphere.Resources.DAXParameterGroup as X
+import Stratosphere.Resources.DAXSubnetGroup as X
 import Stratosphere.Resources.DMSCertificate as X
 import Stratosphere.Resources.DMSEndpoint as X
 import Stratosphere.Resources.DMSEventSubscription as X
@@ -288,6 +295,15 @@
 import Stratosphere.ResourceProperties.AutoScalingScalingPolicyPredefinedMetricSpecification as X
 import Stratosphere.ResourceProperties.AutoScalingScalingPolicyStepAdjustment as X
 import Stratosphere.ResourceProperties.AutoScalingScalingPolicyTargetTrackingConfiguration as X
+import Stratosphere.ResourceProperties.BatchComputeEnvironmentComputeResources as X
+import Stratosphere.ResourceProperties.BatchJobDefinitionContainerProperties as X
+import Stratosphere.ResourceProperties.BatchJobDefinitionEnvironment as X
+import Stratosphere.ResourceProperties.BatchJobDefinitionMountPoints as X
+import Stratosphere.ResourceProperties.BatchJobDefinitionRetryStrategy as X
+import Stratosphere.ResourceProperties.BatchJobDefinitionUlimit as X
+import Stratosphere.ResourceProperties.BatchJobDefinitionVolumes as X
+import Stratosphere.ResourceProperties.BatchJobDefinitionVolumesHost as X
+import Stratosphere.ResourceProperties.BatchJobQueueComputeEnvironmentOrder as X
 import Stratosphere.ResourceProperties.CertificateManagerCertificateDomainValidationOption as X
 import Stratosphere.ResourceProperties.CloudFrontDistributionCacheBehavior as X
 import Stratosphere.ResourceProperties.CloudFrontDistributionCookies as X
@@ -315,9 +331,13 @@
 import Stratosphere.ResourceProperties.CodeDeployDeploymentConfigMinimumHealthyHosts as X
 import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupAlarm as X
 import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupAlarmConfiguration as X
+import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupAutoRollbackConfiguration as X
 import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupDeployment as X
+import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupDeploymentStyle as X
 import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupEC2TagFilter as X
+import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupELBInfo as X
 import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupGitHubLocation as X
+import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupLoadBalancerInfo as X
 import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupRevisionLocation as X
 import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupS3Location as X
 import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupTagFilter as X
@@ -375,6 +395,7 @@
 import Stratosphere.ResourceProperties.DynamoDBTableProjection as X
 import Stratosphere.ResourceProperties.DynamoDBTableProvisionedThroughput as X
 import Stratosphere.ResourceProperties.DynamoDBTableStreamSpecification as X
+import Stratosphere.ResourceProperties.DynamoDBTableTimeToLiveSpecification as X
 import Stratosphere.ResourceProperties.EC2InstanceAssociationParameter as X
 import Stratosphere.ResourceProperties.EC2InstanceBlockDeviceMapping as X
 import Stratosphere.ResourceProperties.EC2InstanceEbs as X
@@ -479,12 +500,18 @@
 import Stratosphere.ResourceProperties.ElasticLoadBalancingV2ListenerRuleAction as X
 import Stratosphere.ResourceProperties.ElasticLoadBalancingV2ListenerRuleRuleCondition as X
 import Stratosphere.ResourceProperties.ElasticLoadBalancingV2LoadBalancerLoadBalancerAttribute as X
+import Stratosphere.ResourceProperties.ElasticLoadBalancingV2LoadBalancerSubnetMapping as X
 import Stratosphere.ResourceProperties.ElasticLoadBalancingV2TargetGroupMatcher as X
 import Stratosphere.ResourceProperties.ElasticLoadBalancingV2TargetGroupTargetDescription as X
 import Stratosphere.ResourceProperties.ElasticLoadBalancingV2TargetGroupTargetGroupAttribute as X
 import Stratosphere.ResourceProperties.ElasticsearchDomainEBSOptions as X
 import Stratosphere.ResourceProperties.ElasticsearchDomainElasticsearchClusterConfig as X
 import Stratosphere.ResourceProperties.ElasticsearchDomainSnapshotOptions as X
+import Stratosphere.ResourceProperties.EventsRuleEcsParameters as X
+import Stratosphere.ResourceProperties.EventsRuleInputTransformer as X
+import Stratosphere.ResourceProperties.EventsRuleKinesisParameters as X
+import Stratosphere.ResourceProperties.EventsRuleRunCommandParameters as X
+import Stratosphere.ResourceProperties.EventsRuleRunCommandTarget as X
 import Stratosphere.ResourceProperties.EventsRuleTarget as X
 import Stratosphere.ResourceProperties.GameLiftAliasRoutingStrategy as X
 import Stratosphere.ResourceProperties.GameLiftBuildS3Location as X
@@ -498,10 +525,12 @@
 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.IoTTopicRuleKinesisAction as X
 import Stratosphere.ResourceProperties.IoTTopicRuleLambdaAction as X
+import Stratosphere.ResourceProperties.IoTTopicRulePutItemInput as X
 import Stratosphere.ResourceProperties.IoTTopicRuleRepublishAction as X
 import Stratosphere.ResourceProperties.IoTTopicRuleS3Action as X
 import Stratosphere.ResourceProperties.IoTTopicRuleSnsAction as X
@@ -591,6 +620,7 @@
 import Stratosphere.ResourceProperties.S3BucketLambdaConfiguration as X
 import Stratosphere.ResourceProperties.S3BucketLifecycleConfiguration as X
 import Stratosphere.ResourceProperties.S3BucketLoggingConfiguration as X
+import Stratosphere.ResourceProperties.S3BucketMetricsConfiguration as X
 import Stratosphere.ResourceProperties.S3BucketNoncurrentVersionTransition as X
 import Stratosphere.ResourceProperties.S3BucketNotificationConfiguration as X
 import Stratosphere.ResourceProperties.S3BucketNotificationFilter as X
@@ -657,6 +687,7 @@
   | ApiGatewayDocumentationPartProperties ApiGatewayDocumentationPart
   | ApiGatewayDocumentationVersionProperties ApiGatewayDocumentationVersion
   | ApiGatewayDomainNameProperties ApiGatewayDomainName
+  | ApiGatewayGatewayResponseProperties ApiGatewayGatewayResponse
   | ApiGatewayMethodProperties ApiGatewayMethod
   | ApiGatewayModelProperties ApiGatewayModel
   | ApiGatewayRequestValidatorProperties ApiGatewayRequestValidator
@@ -672,6 +703,9 @@
   | AutoScalingLifecycleHookProperties AutoScalingLifecycleHook
   | AutoScalingScalingPolicyProperties AutoScalingScalingPolicy
   | AutoScalingScheduledActionProperties AutoScalingScheduledAction
+  | BatchComputeEnvironmentProperties BatchComputeEnvironment
+  | BatchJobDefinitionProperties BatchJobDefinition
+  | BatchJobQueueProperties BatchJobQueue
   | CertificateManagerCertificateProperties CertificateManagerCertificate
   | CloudFormationCustomResourceProperties CloudFormationCustomResource
   | CloudFormationStackProperties CloudFormationStack
@@ -698,6 +732,9 @@
   | ConfigConfigRuleProperties ConfigConfigRule
   | ConfigConfigurationRecorderProperties ConfigConfigurationRecorder
   | ConfigDeliveryChannelProperties ConfigDeliveryChannel
+  | DAXClusterProperties DAXCluster
+  | DAXParameterGroupProperties DAXParameterGroup
+  | DAXSubnetGroupProperties DAXSubnetGroup
   | DMSCertificateProperties DMSCertificate
   | DMSEndpointProperties DMSEndpoint
   | DMSEventSubscriptionProperties DMSEventSubscription
@@ -933,6 +970,8 @@
   [ "Type" .= ("AWS::ApiGateway::DocumentationVersion" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (ApiGatewayDomainNameProperties x) =
   [ "Type" .= ("AWS::ApiGateway::DomainName" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (ApiGatewayGatewayResponseProperties x) =
+  [ "Type" .= ("AWS::ApiGateway::GatewayResponse" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (ApiGatewayMethodProperties x) =
   [ "Type" .= ("AWS::ApiGateway::Method" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (ApiGatewayModelProperties x) =
@@ -963,6 +1002,12 @@
   [ "Type" .= ("AWS::AutoScaling::ScalingPolicy" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (AutoScalingScheduledActionProperties x) =
   [ "Type" .= ("AWS::AutoScaling::ScheduledAction" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (BatchComputeEnvironmentProperties x) =
+  [ "Type" .= ("AWS::Batch::ComputeEnvironment" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (BatchJobDefinitionProperties x) =
+  [ "Type" .= ("AWS::Batch::JobDefinition" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (BatchJobQueueProperties x) =
+  [ "Type" .= ("AWS::Batch::JobQueue" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (CertificateManagerCertificateProperties x) =
   [ "Type" .= ("AWS::CertificateManager::Certificate" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (CloudFormationCustomResourceProperties x) =
@@ -1015,6 +1060,12 @@
   [ "Type" .= ("AWS::Config::ConfigurationRecorder" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (ConfigDeliveryChannelProperties x) =
   [ "Type" .= ("AWS::Config::DeliveryChannel" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (DAXClusterProperties x) =
+  [ "Type" .= ("AWS::DAX::Cluster" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (DAXParameterGroupProperties x) =
+  [ "Type" .= ("AWS::DAX::ParameterGroup" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (DAXSubnetGroupProperties x) =
+  [ "Type" .= ("AWS::DAX::SubnetGroup" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (DMSCertificateProperties x) =
   [ "Type" .= ("AWS::DMS::Certificate" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (DMSEndpointProperties x) =
@@ -1360,6 +1411,7 @@
          "AWS::ApiGateway::DocumentationPart" -> ApiGatewayDocumentationPartProperties <$> (o .: "Properties")
          "AWS::ApiGateway::DocumentationVersion" -> ApiGatewayDocumentationVersionProperties <$> (o .: "Properties")
          "AWS::ApiGateway::DomainName" -> ApiGatewayDomainNameProperties <$> (o .: "Properties")
+         "AWS::ApiGateway::GatewayResponse" -> ApiGatewayGatewayResponseProperties <$> (o .: "Properties")
          "AWS::ApiGateway::Method" -> ApiGatewayMethodProperties <$> (o .: "Properties")
          "AWS::ApiGateway::Model" -> ApiGatewayModelProperties <$> (o .: "Properties")
          "AWS::ApiGateway::RequestValidator" -> ApiGatewayRequestValidatorProperties <$> (o .: "Properties")
@@ -1375,6 +1427,9 @@
          "AWS::AutoScaling::LifecycleHook" -> AutoScalingLifecycleHookProperties <$> (o .: "Properties")
          "AWS::AutoScaling::ScalingPolicy" -> AutoScalingScalingPolicyProperties <$> (o .: "Properties")
          "AWS::AutoScaling::ScheduledAction" -> AutoScalingScheduledActionProperties <$> (o .: "Properties")
+         "AWS::Batch::ComputeEnvironment" -> BatchComputeEnvironmentProperties <$> (o .: "Properties")
+         "AWS::Batch::JobDefinition" -> BatchJobDefinitionProperties <$> (o .: "Properties")
+         "AWS::Batch::JobQueue" -> BatchJobQueueProperties <$> (o .: "Properties")
          "AWS::CertificateManager::Certificate" -> CertificateManagerCertificateProperties <$> (o .: "Properties")
          "AWS::CloudFormation::CustomResource" -> CloudFormationCustomResourceProperties <$> (o .: "Properties")
          "AWS::CloudFormation::Stack" -> CloudFormationStackProperties <$> (o .: "Properties")
@@ -1401,6 +1456,9 @@
          "AWS::Config::ConfigRule" -> ConfigConfigRuleProperties <$> (o .: "Properties")
          "AWS::Config::ConfigurationRecorder" -> ConfigConfigurationRecorderProperties <$> (o .: "Properties")
          "AWS::Config::DeliveryChannel" -> ConfigDeliveryChannelProperties <$> (o .: "Properties")
+         "AWS::DAX::Cluster" -> DAXClusterProperties <$> (o .: "Properties")
+         "AWS::DAX::ParameterGroup" -> DAXParameterGroupProperties <$> (o .: "Properties")
+         "AWS::DAX::SubnetGroup" -> DAXSubnetGroupProperties <$> (o .: "Properties")
          "AWS::DMS::Certificate" -> DMSCertificateProperties <$> (o .: "Properties")
          "AWS::DMS::Endpoint" -> DMSEndpointProperties <$> (o .: "Properties")
          "AWS::DMS::EventSubscription" -> DMSEventSubscriptionProperties <$> (o .: "Properties")
diff --git a/library-gen/Stratosphere/Resources/ApiGatewayGatewayResponse.hs b/library-gen/Stratosphere/Resources/ApiGatewayGatewayResponse.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ApiGatewayGatewayResponse.hs
@@ -0,0 +1,83 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html
+
+module Stratosphere.Resources.ApiGatewayGatewayResponse where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for ApiGatewayGatewayResponse. See
+-- 'apiGatewayGatewayResponse' for a more convenient constructor.
+data ApiGatewayGatewayResponse =
+  ApiGatewayGatewayResponse
+  { _apiGatewayGatewayResponseResponseParameters :: Maybe Object
+  , _apiGatewayGatewayResponseResponseTemplates :: Maybe Object
+  , _apiGatewayGatewayResponseResponseType :: Val Text
+  , _apiGatewayGatewayResponseRestApiId :: Val Text
+  , _apiGatewayGatewayResponseStatusCode :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON ApiGatewayGatewayResponse where
+  toJSON ApiGatewayGatewayResponse{..} =
+    object $
+    catMaybes
+    [ fmap (("ResponseParameters",) . toJSON) _apiGatewayGatewayResponseResponseParameters
+    , fmap (("ResponseTemplates",) . toJSON) _apiGatewayGatewayResponseResponseTemplates
+    , (Just . ("ResponseType",) . toJSON) _apiGatewayGatewayResponseResponseType
+    , (Just . ("RestApiId",) . toJSON) _apiGatewayGatewayResponseRestApiId
+    , fmap (("StatusCode",) . toJSON) _apiGatewayGatewayResponseStatusCode
+    ]
+
+instance FromJSON ApiGatewayGatewayResponse where
+  parseJSON (Object obj) =
+    ApiGatewayGatewayResponse <$>
+      (obj .:? "ResponseParameters") <*>
+      (obj .:? "ResponseTemplates") <*>
+      (obj .: "ResponseType") <*>
+      (obj .: "RestApiId") <*>
+      (obj .:? "StatusCode")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ApiGatewayGatewayResponse' containing required fields as
+-- arguments.
+apiGatewayGatewayResponse
+  :: Val Text -- ^ 'aggrResponseType'
+  -> Val Text -- ^ 'aggrRestApiId'
+  -> ApiGatewayGatewayResponse
+apiGatewayGatewayResponse responseTypearg restApiIdarg =
+  ApiGatewayGatewayResponse
+  { _apiGatewayGatewayResponseResponseParameters = Nothing
+  , _apiGatewayGatewayResponseResponseTemplates = Nothing
+  , _apiGatewayGatewayResponseResponseType = responseTypearg
+  , _apiGatewayGatewayResponseRestApiId = restApiIdarg
+  , _apiGatewayGatewayResponseStatusCode = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html#cfn-apigateway-gatewayresponse-responseparameters
+aggrResponseParameters :: Lens' ApiGatewayGatewayResponse (Maybe Object)
+aggrResponseParameters = lens _apiGatewayGatewayResponseResponseParameters (\s a -> s { _apiGatewayGatewayResponseResponseParameters = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html#cfn-apigateway-gatewayresponse-responsetemplates
+aggrResponseTemplates :: Lens' ApiGatewayGatewayResponse (Maybe Object)
+aggrResponseTemplates = lens _apiGatewayGatewayResponseResponseTemplates (\s a -> s { _apiGatewayGatewayResponseResponseTemplates = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html#cfn-apigateway-gatewayresponse-responsetype
+aggrResponseType :: Lens' ApiGatewayGatewayResponse (Val Text)
+aggrResponseType = lens _apiGatewayGatewayResponseResponseType (\s a -> s { _apiGatewayGatewayResponseResponseType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html#cfn-apigateway-gatewayresponse-restapiid
+aggrRestApiId :: Lens' ApiGatewayGatewayResponse (Val Text)
+aggrRestApiId = lens _apiGatewayGatewayResponseRestApiId (\s a -> s { _apiGatewayGatewayResponseRestApiId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html#cfn-apigateway-gatewayresponse-statuscode
+aggrStatusCode :: Lens' ApiGatewayGatewayResponse (Maybe (Val Text))
+aggrStatusCode = lens _apiGatewayGatewayResponseStatusCode (\s a -> s { _apiGatewayGatewayResponseStatusCode = a })
diff --git a/library-gen/Stratosphere/Resources/BatchComputeEnvironment.hs b/library-gen/Stratosphere/Resources/BatchComputeEnvironment.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/BatchComputeEnvironment.hs
@@ -0,0 +1,84 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html
+
+module Stratosphere.Resources.BatchComputeEnvironment where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+import Stratosphere.ResourceProperties.BatchComputeEnvironmentComputeResources
+
+-- | Full data type definition for BatchComputeEnvironment. See
+-- 'batchComputeEnvironment' for a more convenient constructor.
+data BatchComputeEnvironment =
+  BatchComputeEnvironment
+  { _batchComputeEnvironmentComputeEnvironmentName :: Maybe (Val Text)
+  , _batchComputeEnvironmentComputeResources :: BatchComputeEnvironmentComputeResources
+  , _batchComputeEnvironmentServiceRole :: Val Text
+  , _batchComputeEnvironmentState :: Maybe (Val Text)
+  , _batchComputeEnvironmentType :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON BatchComputeEnvironment where
+  toJSON BatchComputeEnvironment{..} =
+    object $
+    catMaybes
+    [ fmap (("ComputeEnvironmentName",) . toJSON) _batchComputeEnvironmentComputeEnvironmentName
+    , (Just . ("ComputeResources",) . toJSON) _batchComputeEnvironmentComputeResources
+    , (Just . ("ServiceRole",) . toJSON) _batchComputeEnvironmentServiceRole
+    , fmap (("State",) . toJSON) _batchComputeEnvironmentState
+    , (Just . ("Type",) . toJSON) _batchComputeEnvironmentType
+    ]
+
+instance FromJSON BatchComputeEnvironment where
+  parseJSON (Object obj) =
+    BatchComputeEnvironment <$>
+      (obj .:? "ComputeEnvironmentName") <*>
+      (obj .: "ComputeResources") <*>
+      (obj .: "ServiceRole") <*>
+      (obj .:? "State") <*>
+      (obj .: "Type")
+  parseJSON _ = mempty
+
+-- | Constructor for 'BatchComputeEnvironment' containing required fields as
+-- arguments.
+batchComputeEnvironment
+  :: BatchComputeEnvironmentComputeResources -- ^ 'bceComputeResources'
+  -> Val Text -- ^ 'bceServiceRole'
+  -> Val Text -- ^ 'bceType'
+  -> BatchComputeEnvironment
+batchComputeEnvironment computeResourcesarg serviceRolearg typearg =
+  BatchComputeEnvironment
+  { _batchComputeEnvironmentComputeEnvironmentName = Nothing
+  , _batchComputeEnvironmentComputeResources = computeResourcesarg
+  , _batchComputeEnvironmentServiceRole = serviceRolearg
+  , _batchComputeEnvironmentState = Nothing
+  , _batchComputeEnvironmentType = typearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-computeenvironmentname
+bceComputeEnvironmentName :: Lens' BatchComputeEnvironment (Maybe (Val Text))
+bceComputeEnvironmentName = lens _batchComputeEnvironmentComputeEnvironmentName (\s a -> s { _batchComputeEnvironmentComputeEnvironmentName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-computeresources
+bceComputeResources :: Lens' BatchComputeEnvironment BatchComputeEnvironmentComputeResources
+bceComputeResources = lens _batchComputeEnvironmentComputeResources (\s a -> s { _batchComputeEnvironmentComputeResources = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-servicerole
+bceServiceRole :: Lens' BatchComputeEnvironment (Val Text)
+bceServiceRole = lens _batchComputeEnvironmentServiceRole (\s a -> s { _batchComputeEnvironmentServiceRole = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-state
+bceState :: Lens' BatchComputeEnvironment (Maybe (Val Text))
+bceState = lens _batchComputeEnvironmentState (\s a -> s { _batchComputeEnvironmentState = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-type
+bceType :: Lens' BatchComputeEnvironment (Val Text)
+bceType = lens _batchComputeEnvironmentType (\s a -> s { _batchComputeEnvironmentType = a })
diff --git a/library-gen/Stratosphere/Resources/BatchJobDefinition.hs b/library-gen/Stratosphere/Resources/BatchJobDefinition.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/BatchJobDefinition.hs
@@ -0,0 +1,84 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html
+
+module Stratosphere.Resources.BatchJobDefinition where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+import Stratosphere.ResourceProperties.BatchJobDefinitionContainerProperties
+import Stratosphere.ResourceProperties.BatchJobDefinitionRetryStrategy
+
+-- | Full data type definition for BatchJobDefinition. See
+-- 'batchJobDefinition' for a more convenient constructor.
+data BatchJobDefinition =
+  BatchJobDefinition
+  { _batchJobDefinitionContainerProperties :: BatchJobDefinitionContainerProperties
+  , _batchJobDefinitionJobDefinitionName :: Maybe (Val Text)
+  , _batchJobDefinitionParameters :: Maybe Object
+  , _batchJobDefinitionRetryStrategy :: Maybe BatchJobDefinitionRetryStrategy
+  , _batchJobDefinitionType :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON BatchJobDefinition where
+  toJSON BatchJobDefinition{..} =
+    object $
+    catMaybes
+    [ (Just . ("ContainerProperties",) . toJSON) _batchJobDefinitionContainerProperties
+    , fmap (("JobDefinitionName",) . toJSON) _batchJobDefinitionJobDefinitionName
+    , fmap (("Parameters",) . toJSON) _batchJobDefinitionParameters
+    , fmap (("RetryStrategy",) . toJSON) _batchJobDefinitionRetryStrategy
+    , (Just . ("Type",) . toJSON) _batchJobDefinitionType
+    ]
+
+instance FromJSON BatchJobDefinition where
+  parseJSON (Object obj) =
+    BatchJobDefinition <$>
+      (obj .: "ContainerProperties") <*>
+      (obj .:? "JobDefinitionName") <*>
+      (obj .:? "Parameters") <*>
+      (obj .:? "RetryStrategy") <*>
+      (obj .: "Type")
+  parseJSON _ = mempty
+
+-- | Constructor for 'BatchJobDefinition' containing required fields as
+-- arguments.
+batchJobDefinition
+  :: BatchJobDefinitionContainerProperties -- ^ 'bjdContainerProperties'
+  -> Val Text -- ^ 'bjdType'
+  -> BatchJobDefinition
+batchJobDefinition containerPropertiesarg typearg =
+  BatchJobDefinition
+  { _batchJobDefinitionContainerProperties = containerPropertiesarg
+  , _batchJobDefinitionJobDefinitionName = Nothing
+  , _batchJobDefinitionParameters = Nothing
+  , _batchJobDefinitionRetryStrategy = Nothing
+  , _batchJobDefinitionType = typearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-containerproperties
+bjdContainerProperties :: Lens' BatchJobDefinition BatchJobDefinitionContainerProperties
+bjdContainerProperties = lens _batchJobDefinitionContainerProperties (\s a -> s { _batchJobDefinitionContainerProperties = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-jobdefinitionname
+bjdJobDefinitionName :: Lens' BatchJobDefinition (Maybe (Val Text))
+bjdJobDefinitionName = lens _batchJobDefinitionJobDefinitionName (\s a -> s { _batchJobDefinitionJobDefinitionName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-parameters
+bjdParameters :: Lens' BatchJobDefinition (Maybe Object)
+bjdParameters = lens _batchJobDefinitionParameters (\s a -> s { _batchJobDefinitionParameters = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-retrystrategy
+bjdRetryStrategy :: Lens' BatchJobDefinition (Maybe BatchJobDefinitionRetryStrategy)
+bjdRetryStrategy = lens _batchJobDefinitionRetryStrategy (\s a -> s { _batchJobDefinitionRetryStrategy = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-type
+bjdType :: Lens' BatchJobDefinition (Val Text)
+bjdType = lens _batchJobDefinitionType (\s a -> s { _batchJobDefinitionType = a })
diff --git a/library-gen/Stratosphere/Resources/BatchJobQueue.hs b/library-gen/Stratosphere/Resources/BatchJobQueue.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/BatchJobQueue.hs
@@ -0,0 +1,74 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html
+
+module Stratosphere.Resources.BatchJobQueue where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+import Stratosphere.ResourceProperties.BatchJobQueueComputeEnvironmentOrder
+
+-- | Full data type definition for BatchJobQueue. See 'batchJobQueue' for a
+-- more convenient constructor.
+data BatchJobQueue =
+  BatchJobQueue
+  { _batchJobQueueComputeEnvironmentOrder :: [BatchJobQueueComputeEnvironmentOrder]
+  , _batchJobQueueJobQueueName :: Maybe (Val Text)
+  , _batchJobQueuePriority :: Val Integer
+  , _batchJobQueueState :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON BatchJobQueue where
+  toJSON BatchJobQueue{..} =
+    object $
+    catMaybes
+    [ (Just . ("ComputeEnvironmentOrder",) . toJSON) _batchJobQueueComputeEnvironmentOrder
+    , fmap (("JobQueueName",) . toJSON) _batchJobQueueJobQueueName
+    , (Just . ("Priority",) . toJSON . fmap Integer') _batchJobQueuePriority
+    , fmap (("State",) . toJSON) _batchJobQueueState
+    ]
+
+instance FromJSON BatchJobQueue where
+  parseJSON (Object obj) =
+    BatchJobQueue <$>
+      (obj .: "ComputeEnvironmentOrder") <*>
+      (obj .:? "JobQueueName") <*>
+      fmap (fmap unInteger') (obj .: "Priority") <*>
+      (obj .:? "State")
+  parseJSON _ = mempty
+
+-- | Constructor for 'BatchJobQueue' containing required fields as arguments.
+batchJobQueue
+  :: [BatchJobQueueComputeEnvironmentOrder] -- ^ 'bjqComputeEnvironmentOrder'
+  -> Val Integer -- ^ 'bjqPriority'
+  -> BatchJobQueue
+batchJobQueue computeEnvironmentOrderarg priorityarg =
+  BatchJobQueue
+  { _batchJobQueueComputeEnvironmentOrder = computeEnvironmentOrderarg
+  , _batchJobQueueJobQueueName = Nothing
+  , _batchJobQueuePriority = priorityarg
+  , _batchJobQueueState = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-computeenvironmentorder
+bjqComputeEnvironmentOrder :: Lens' BatchJobQueue [BatchJobQueueComputeEnvironmentOrder]
+bjqComputeEnvironmentOrder = lens _batchJobQueueComputeEnvironmentOrder (\s a -> s { _batchJobQueueComputeEnvironmentOrder = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-jobqueuename
+bjqJobQueueName :: Lens' BatchJobQueue (Maybe (Val Text))
+bjqJobQueueName = lens _batchJobQueueJobQueueName (\s a -> s { _batchJobQueueJobQueueName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-priority
+bjqPriority :: Lens' BatchJobQueue (Val Integer)
+bjqPriority = lens _batchJobQueuePriority (\s a -> s { _batchJobQueuePriority = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-state
+bjqState :: Lens' BatchJobQueue (Maybe (Val Text))
+bjqState = lens _batchJobQueueState (\s a -> s { _batchJobQueueState = a })
diff --git a/library-gen/Stratosphere/Resources/CodeDeployDeploymentGroup.hs b/library-gen/Stratosphere/Resources/CodeDeployDeploymentGroup.hs
--- a/library-gen/Stratosphere/Resources/CodeDeployDeploymentGroup.hs
+++ b/library-gen/Stratosphere/Resources/CodeDeployDeploymentGroup.hs
@@ -14,8 +14,11 @@
 
 import Stratosphere.Values
 import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupAlarmConfiguration
+import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupAutoRollbackConfiguration
 import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupDeployment
+import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupDeploymentStyle
 import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupEC2TagFilter
+import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupLoadBalancerInfo
 import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupTagFilter
 import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupTriggerConfig
 
@@ -25,11 +28,14 @@
   CodeDeployDeploymentGroup
   { _codeDeployDeploymentGroupAlarmConfiguration :: Maybe CodeDeployDeploymentGroupAlarmConfiguration
   , _codeDeployDeploymentGroupApplicationName :: Val Text
+  , _codeDeployDeploymentGroupAutoRollbackConfiguration :: Maybe CodeDeployDeploymentGroupAutoRollbackConfiguration
   , _codeDeployDeploymentGroupAutoScalingGroups :: Maybe (ValList Text)
   , _codeDeployDeploymentGroupDeployment :: Maybe CodeDeployDeploymentGroupDeployment
   , _codeDeployDeploymentGroupDeploymentConfigName :: Maybe (Val Text)
   , _codeDeployDeploymentGroupDeploymentGroupName :: Maybe (Val Text)
+  , _codeDeployDeploymentGroupDeploymentStyle :: Maybe CodeDeployDeploymentGroupDeploymentStyle
   , _codeDeployDeploymentGroupEc2TagFilters :: Maybe [CodeDeployDeploymentGroupEC2TagFilter]
+  , _codeDeployDeploymentGroupLoadBalancerInfo :: Maybe CodeDeployDeploymentGroupLoadBalancerInfo
   , _codeDeployDeploymentGroupOnPremisesInstanceTagFilters :: Maybe [CodeDeployDeploymentGroupTagFilter]
   , _codeDeployDeploymentGroupServiceRoleArn :: Val Text
   , _codeDeployDeploymentGroupTriggerConfigurations :: Maybe [CodeDeployDeploymentGroupTriggerConfig]
@@ -41,11 +47,14 @@
     catMaybes
     [ fmap (("AlarmConfiguration",) . toJSON) _codeDeployDeploymentGroupAlarmConfiguration
     , (Just . ("ApplicationName",) . toJSON) _codeDeployDeploymentGroupApplicationName
+    , fmap (("AutoRollbackConfiguration",) . toJSON) _codeDeployDeploymentGroupAutoRollbackConfiguration
     , fmap (("AutoScalingGroups",) . toJSON) _codeDeployDeploymentGroupAutoScalingGroups
     , fmap (("Deployment",) . toJSON) _codeDeployDeploymentGroupDeployment
     , fmap (("DeploymentConfigName",) . toJSON) _codeDeployDeploymentGroupDeploymentConfigName
     , fmap (("DeploymentGroupName",) . toJSON) _codeDeployDeploymentGroupDeploymentGroupName
+    , fmap (("DeploymentStyle",) . toJSON) _codeDeployDeploymentGroupDeploymentStyle
     , fmap (("Ec2TagFilters",) . toJSON) _codeDeployDeploymentGroupEc2TagFilters
+    , fmap (("LoadBalancerInfo",) . toJSON) _codeDeployDeploymentGroupLoadBalancerInfo
     , fmap (("OnPremisesInstanceTagFilters",) . toJSON) _codeDeployDeploymentGroupOnPremisesInstanceTagFilters
     , (Just . ("ServiceRoleArn",) . toJSON) _codeDeployDeploymentGroupServiceRoleArn
     , fmap (("TriggerConfigurations",) . toJSON) _codeDeployDeploymentGroupTriggerConfigurations
@@ -56,11 +65,14 @@
     CodeDeployDeploymentGroup <$>
       (obj .:? "AlarmConfiguration") <*>
       (obj .: "ApplicationName") <*>
+      (obj .:? "AutoRollbackConfiguration") <*>
       (obj .:? "AutoScalingGroups") <*>
       (obj .:? "Deployment") <*>
       (obj .:? "DeploymentConfigName") <*>
       (obj .:? "DeploymentGroupName") <*>
+      (obj .:? "DeploymentStyle") <*>
       (obj .:? "Ec2TagFilters") <*>
+      (obj .:? "LoadBalancerInfo") <*>
       (obj .:? "OnPremisesInstanceTagFilters") <*>
       (obj .: "ServiceRoleArn") <*>
       (obj .:? "TriggerConfigurations")
@@ -76,11 +88,14 @@
   CodeDeployDeploymentGroup
   { _codeDeployDeploymentGroupAlarmConfiguration = Nothing
   , _codeDeployDeploymentGroupApplicationName = applicationNamearg
+  , _codeDeployDeploymentGroupAutoRollbackConfiguration = Nothing
   , _codeDeployDeploymentGroupAutoScalingGroups = Nothing
   , _codeDeployDeploymentGroupDeployment = Nothing
   , _codeDeployDeploymentGroupDeploymentConfigName = Nothing
   , _codeDeployDeploymentGroupDeploymentGroupName = Nothing
+  , _codeDeployDeploymentGroupDeploymentStyle = Nothing
   , _codeDeployDeploymentGroupEc2TagFilters = Nothing
+  , _codeDeployDeploymentGroupLoadBalancerInfo = Nothing
   , _codeDeployDeploymentGroupOnPremisesInstanceTagFilters = Nothing
   , _codeDeployDeploymentGroupServiceRoleArn = serviceRoleArnarg
   , _codeDeployDeploymentGroupTriggerConfigurations = Nothing
@@ -94,6 +109,10 @@
 cddgApplicationName :: Lens' CodeDeployDeploymentGroup (Val Text)
 cddgApplicationName = lens _codeDeployDeploymentGroupApplicationName (\s a -> s { _codeDeployDeploymentGroupApplicationName = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-autorollbackconfiguration
+cddgAutoRollbackConfiguration :: Lens' CodeDeployDeploymentGroup (Maybe CodeDeployDeploymentGroupAutoRollbackConfiguration)
+cddgAutoRollbackConfiguration = lens _codeDeployDeploymentGroupAutoRollbackConfiguration (\s a -> s { _codeDeployDeploymentGroupAutoRollbackConfiguration = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-autoscalinggroups
 cddgAutoScalingGroups :: Lens' CodeDeployDeploymentGroup (Maybe (ValList Text))
 cddgAutoScalingGroups = lens _codeDeployDeploymentGroupAutoScalingGroups (\s a -> s { _codeDeployDeploymentGroupAutoScalingGroups = a })
@@ -110,9 +129,17 @@
 cddgDeploymentGroupName :: Lens' CodeDeployDeploymentGroup (Maybe (Val Text))
 cddgDeploymentGroupName = lens _codeDeployDeploymentGroupDeploymentGroupName (\s a -> s { _codeDeployDeploymentGroupDeploymentGroupName = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-deploymentstyle
+cddgDeploymentStyle :: Lens' CodeDeployDeploymentGroup (Maybe CodeDeployDeploymentGroupDeploymentStyle)
+cddgDeploymentStyle = lens _codeDeployDeploymentGroupDeploymentStyle (\s a -> s { _codeDeployDeploymentGroupDeploymentStyle = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-ec2tagfilters
 cddgEc2TagFilters :: Lens' CodeDeployDeploymentGroup (Maybe [CodeDeployDeploymentGroupEC2TagFilter])
 cddgEc2TagFilters = lens _codeDeployDeploymentGroupEc2TagFilters (\s a -> s { _codeDeployDeploymentGroupEc2TagFilters = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-loadbalancerinfo
+cddgLoadBalancerInfo :: Lens' CodeDeployDeploymentGroup (Maybe CodeDeployDeploymentGroupLoadBalancerInfo)
+cddgLoadBalancerInfo = lens _codeDeployDeploymentGroupLoadBalancerInfo (\s a -> s { _codeDeployDeploymentGroupLoadBalancerInfo = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-onpremisesinstancetagfilters
 cddgOnPremisesInstanceTagFilters :: Lens' CodeDeployDeploymentGroup (Maybe [CodeDeployDeploymentGroupTagFilter])
diff --git a/library-gen/Stratosphere/Resources/DAXCluster.hs b/library-gen/Stratosphere/Resources/DAXCluster.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/DAXCluster.hs
@@ -0,0 +1,139 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html
+
+module Stratosphere.Resources.DAXCluster where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for DAXCluster. See 'daxCluster' for a more
+-- convenient constructor.
+data DAXCluster =
+  DAXCluster
+  { _dAXClusterAvailabilityZones :: Maybe (ValList Text)
+  , _dAXClusterClusterName :: Maybe (Val Text)
+  , _dAXClusterDescription :: Maybe (Val Text)
+  , _dAXClusterIAMRoleARN :: Val Text
+  , _dAXClusterNodeType :: Val Text
+  , _dAXClusterNotificationTopicARN :: Maybe (Val Text)
+  , _dAXClusterParameterGroupName :: Maybe (Val Text)
+  , _dAXClusterPreferredMaintenanceWindow :: Maybe (Val Text)
+  , _dAXClusterReplicationFactor :: Val Integer
+  , _dAXClusterSecurityGroupIds :: Maybe (ValList Text)
+  , _dAXClusterSubnetGroupName :: Maybe (Val Text)
+  , _dAXClusterTags :: Maybe Object
+  } deriving (Show, Eq)
+
+instance ToJSON DAXCluster where
+  toJSON DAXCluster{..} =
+    object $
+    catMaybes
+    [ fmap (("AvailabilityZones",) . toJSON) _dAXClusterAvailabilityZones
+    , fmap (("ClusterName",) . toJSON) _dAXClusterClusterName
+    , fmap (("Description",) . toJSON) _dAXClusterDescription
+    , (Just . ("IAMRoleARN",) . toJSON) _dAXClusterIAMRoleARN
+    , (Just . ("NodeType",) . toJSON) _dAXClusterNodeType
+    , fmap (("NotificationTopicARN",) . toJSON) _dAXClusterNotificationTopicARN
+    , fmap (("ParameterGroupName",) . toJSON) _dAXClusterParameterGroupName
+    , fmap (("PreferredMaintenanceWindow",) . toJSON) _dAXClusterPreferredMaintenanceWindow
+    , (Just . ("ReplicationFactor",) . toJSON . fmap Integer') _dAXClusterReplicationFactor
+    , fmap (("SecurityGroupIds",) . toJSON) _dAXClusterSecurityGroupIds
+    , fmap (("SubnetGroupName",) . toJSON) _dAXClusterSubnetGroupName
+    , fmap (("Tags",) . toJSON) _dAXClusterTags
+    ]
+
+instance FromJSON DAXCluster where
+  parseJSON (Object obj) =
+    DAXCluster <$>
+      (obj .:? "AvailabilityZones") <*>
+      (obj .:? "ClusterName") <*>
+      (obj .:? "Description") <*>
+      (obj .: "IAMRoleARN") <*>
+      (obj .: "NodeType") <*>
+      (obj .:? "NotificationTopicARN") <*>
+      (obj .:? "ParameterGroupName") <*>
+      (obj .:? "PreferredMaintenanceWindow") <*>
+      fmap (fmap unInteger') (obj .: "ReplicationFactor") <*>
+      (obj .:? "SecurityGroupIds") <*>
+      (obj .:? "SubnetGroupName") <*>
+      (obj .:? "Tags")
+  parseJSON _ = mempty
+
+-- | Constructor for 'DAXCluster' containing required fields as arguments.
+daxCluster
+  :: Val Text -- ^ 'daxcIAMRoleARN'
+  -> Val Text -- ^ 'daxcNodeType'
+  -> Val Integer -- ^ 'daxcReplicationFactor'
+  -> DAXCluster
+daxCluster iAMRoleARNarg nodeTypearg replicationFactorarg =
+  DAXCluster
+  { _dAXClusterAvailabilityZones = Nothing
+  , _dAXClusterClusterName = Nothing
+  , _dAXClusterDescription = Nothing
+  , _dAXClusterIAMRoleARN = iAMRoleARNarg
+  , _dAXClusterNodeType = nodeTypearg
+  , _dAXClusterNotificationTopicARN = Nothing
+  , _dAXClusterParameterGroupName = Nothing
+  , _dAXClusterPreferredMaintenanceWindow = Nothing
+  , _dAXClusterReplicationFactor = replicationFactorarg
+  , _dAXClusterSecurityGroupIds = Nothing
+  , _dAXClusterSubnetGroupName = Nothing
+  , _dAXClusterTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-availabilityzones
+daxcAvailabilityZones :: Lens' DAXCluster (Maybe (ValList Text))
+daxcAvailabilityZones = lens _dAXClusterAvailabilityZones (\s a -> s { _dAXClusterAvailabilityZones = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-clustername
+daxcClusterName :: Lens' DAXCluster (Maybe (Val Text))
+daxcClusterName = lens _dAXClusterClusterName (\s a -> s { _dAXClusterClusterName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-description
+daxcDescription :: Lens' DAXCluster (Maybe (Val Text))
+daxcDescription = lens _dAXClusterDescription (\s a -> s { _dAXClusterDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-iamrolearn
+daxcIAMRoleARN :: Lens' DAXCluster (Val Text)
+daxcIAMRoleARN = lens _dAXClusterIAMRoleARN (\s a -> s { _dAXClusterIAMRoleARN = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-nodetype
+daxcNodeType :: Lens' DAXCluster (Val Text)
+daxcNodeType = lens _dAXClusterNodeType (\s a -> s { _dAXClusterNodeType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-notificationtopicarn
+daxcNotificationTopicARN :: Lens' DAXCluster (Maybe (Val Text))
+daxcNotificationTopicARN = lens _dAXClusterNotificationTopicARN (\s a -> s { _dAXClusterNotificationTopicARN = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-parametergroupname
+daxcParameterGroupName :: Lens' DAXCluster (Maybe (Val Text))
+daxcParameterGroupName = lens _dAXClusterParameterGroupName (\s a -> s { _dAXClusterParameterGroupName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-preferredmaintenancewindow
+daxcPreferredMaintenanceWindow :: Lens' DAXCluster (Maybe (Val Text))
+daxcPreferredMaintenanceWindow = lens _dAXClusterPreferredMaintenanceWindow (\s a -> s { _dAXClusterPreferredMaintenanceWindow = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-replicationfactor
+daxcReplicationFactor :: Lens' DAXCluster (Val Integer)
+daxcReplicationFactor = lens _dAXClusterReplicationFactor (\s a -> s { _dAXClusterReplicationFactor = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-securitygroupids
+daxcSecurityGroupIds :: Lens' DAXCluster (Maybe (ValList Text))
+daxcSecurityGroupIds = lens _dAXClusterSecurityGroupIds (\s a -> s { _dAXClusterSecurityGroupIds = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-subnetgroupname
+daxcSubnetGroupName :: Lens' DAXCluster (Maybe (Val Text))
+daxcSubnetGroupName = lens _dAXClusterSubnetGroupName (\s a -> s { _dAXClusterSubnetGroupName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-tags
+daxcTags :: Lens' DAXCluster (Maybe Object)
+daxcTags = lens _dAXClusterTags (\s a -> s { _dAXClusterTags = a })
diff --git a/library-gen/Stratosphere/Resources/DAXParameterGroup.hs b/library-gen/Stratosphere/Resources/DAXParameterGroup.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/DAXParameterGroup.hs
@@ -0,0 +1,65 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html
+
+module Stratosphere.Resources.DAXParameterGroup where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for DAXParameterGroup. See 'daxParameterGroup'
+-- for a more convenient constructor.
+data DAXParameterGroup =
+  DAXParameterGroup
+  { _dAXParameterGroupDescription :: Maybe (Val Text)
+  , _dAXParameterGroupParameterGroupName :: Maybe (Val Text)
+  , _dAXParameterGroupParameterNameValues :: Maybe Object
+  } deriving (Show, Eq)
+
+instance ToJSON DAXParameterGroup where
+  toJSON DAXParameterGroup{..} =
+    object $
+    catMaybes
+    [ fmap (("Description",) . toJSON) _dAXParameterGroupDescription
+    , fmap (("ParameterGroupName",) . toJSON) _dAXParameterGroupParameterGroupName
+    , fmap (("ParameterNameValues",) . toJSON) _dAXParameterGroupParameterNameValues
+    ]
+
+instance FromJSON DAXParameterGroup where
+  parseJSON (Object obj) =
+    DAXParameterGroup <$>
+      (obj .:? "Description") <*>
+      (obj .:? "ParameterGroupName") <*>
+      (obj .:? "ParameterNameValues")
+  parseJSON _ = mempty
+
+-- | Constructor for 'DAXParameterGroup' containing required fields as
+-- arguments.
+daxParameterGroup
+  :: DAXParameterGroup
+daxParameterGroup  =
+  DAXParameterGroup
+  { _dAXParameterGroupDescription = Nothing
+  , _dAXParameterGroupParameterGroupName = Nothing
+  , _dAXParameterGroupParameterNameValues = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html#cfn-dax-parametergroup-description
+daxpgDescription :: Lens' DAXParameterGroup (Maybe (Val Text))
+daxpgDescription = lens _dAXParameterGroupDescription (\s a -> s { _dAXParameterGroupDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html#cfn-dax-parametergroup-parametergroupname
+daxpgParameterGroupName :: Lens' DAXParameterGroup (Maybe (Val Text))
+daxpgParameterGroupName = lens _dAXParameterGroupParameterGroupName (\s a -> s { _dAXParameterGroupParameterGroupName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html#cfn-dax-parametergroup-parameternamevalues
+daxpgParameterNameValues :: Lens' DAXParameterGroup (Maybe Object)
+daxpgParameterNameValues = lens _dAXParameterGroupParameterNameValues (\s a -> s { _dAXParameterGroupParameterNameValues = a })
diff --git a/library-gen/Stratosphere/Resources/DAXSubnetGroup.hs b/library-gen/Stratosphere/Resources/DAXSubnetGroup.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/DAXSubnetGroup.hs
@@ -0,0 +1,65 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html
+
+module Stratosphere.Resources.DAXSubnetGroup where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for DAXSubnetGroup. See 'daxSubnetGroup' for a
+-- more convenient constructor.
+data DAXSubnetGroup =
+  DAXSubnetGroup
+  { _dAXSubnetGroupDescription :: Maybe (Val Text)
+  , _dAXSubnetGroupSubnetGroupName :: Maybe (Val Text)
+  , _dAXSubnetGroupSubnetIds :: ValList Text
+  } deriving (Show, Eq)
+
+instance ToJSON DAXSubnetGroup where
+  toJSON DAXSubnetGroup{..} =
+    object $
+    catMaybes
+    [ fmap (("Description",) . toJSON) _dAXSubnetGroupDescription
+    , fmap (("SubnetGroupName",) . toJSON) _dAXSubnetGroupSubnetGroupName
+    , (Just . ("SubnetIds",) . toJSON) _dAXSubnetGroupSubnetIds
+    ]
+
+instance FromJSON DAXSubnetGroup where
+  parseJSON (Object obj) =
+    DAXSubnetGroup <$>
+      (obj .:? "Description") <*>
+      (obj .:? "SubnetGroupName") <*>
+      (obj .: "SubnetIds")
+  parseJSON _ = mempty
+
+-- | Constructor for 'DAXSubnetGroup' containing required fields as arguments.
+daxSubnetGroup
+  :: ValList Text -- ^ 'daxsgSubnetIds'
+  -> DAXSubnetGroup
+daxSubnetGroup subnetIdsarg =
+  DAXSubnetGroup
+  { _dAXSubnetGroupDescription = Nothing
+  , _dAXSubnetGroupSubnetGroupName = Nothing
+  , _dAXSubnetGroupSubnetIds = subnetIdsarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html#cfn-dax-subnetgroup-description
+daxsgDescription :: Lens' DAXSubnetGroup (Maybe (Val Text))
+daxsgDescription = lens _dAXSubnetGroupDescription (\s a -> s { _dAXSubnetGroupDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html#cfn-dax-subnetgroup-subnetgroupname
+daxsgSubnetGroupName :: Lens' DAXSubnetGroup (Maybe (Val Text))
+daxsgSubnetGroupName = lens _dAXSubnetGroupSubnetGroupName (\s a -> s { _dAXSubnetGroupSubnetGroupName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html#cfn-dax-subnetgroup-subnetids
+daxsgSubnetIds :: Lens' DAXSubnetGroup (ValList Text)
+daxsgSubnetIds = lens _dAXSubnetGroupSubnetIds (\s a -> s { _dAXSubnetGroupSubnetIds = a })
diff --git a/library-gen/Stratosphere/Resources/DynamoDBTable.hs b/library-gen/Stratosphere/Resources/DynamoDBTable.hs
--- a/library-gen/Stratosphere/Resources/DynamoDBTable.hs
+++ b/library-gen/Stratosphere/Resources/DynamoDBTable.hs
@@ -19,64 +19,73 @@
 import Stratosphere.ResourceProperties.DynamoDBTableLocalSecondaryIndex
 import Stratosphere.ResourceProperties.DynamoDBTableProvisionedThroughput
 import Stratosphere.ResourceProperties.DynamoDBTableStreamSpecification
+import Stratosphere.ResourceProperties.Tag
+import Stratosphere.ResourceProperties.DynamoDBTableTimeToLiveSpecification
 
 -- | Full data type definition for DynamoDBTable. See 'dynamoDBTable' for a
 -- more convenient constructor.
 data DynamoDBTable =
   DynamoDBTable
-  { _dynamoDBTableAttributeDefinitions :: [DynamoDBTableAttributeDefinition]
+  { _dynamoDBTableAttributeDefinitions :: Maybe [DynamoDBTableAttributeDefinition]
   , _dynamoDBTableGlobalSecondaryIndexes :: Maybe [DynamoDBTableGlobalSecondaryIndex]
   , _dynamoDBTableKeySchema :: [DynamoDBTableKeySchema]
   , _dynamoDBTableLocalSecondaryIndexes :: Maybe [DynamoDBTableLocalSecondaryIndex]
   , _dynamoDBTableProvisionedThroughput :: DynamoDBTableProvisionedThroughput
   , _dynamoDBTableStreamSpecification :: Maybe DynamoDBTableStreamSpecification
   , _dynamoDBTableTableName :: Maybe (Val Text)
+  , _dynamoDBTableTags :: Maybe [Tag]
+  , _dynamoDBTableTimeToLiveSpecification :: Maybe DynamoDBTableTimeToLiveSpecification
   } deriving (Show, Eq)
 
 instance ToJSON DynamoDBTable where
   toJSON DynamoDBTable{..} =
     object $
     catMaybes
-    [ (Just . ("AttributeDefinitions",) . toJSON) _dynamoDBTableAttributeDefinitions
+    [ fmap (("AttributeDefinitions",) . toJSON) _dynamoDBTableAttributeDefinitions
     , fmap (("GlobalSecondaryIndexes",) . toJSON) _dynamoDBTableGlobalSecondaryIndexes
     , (Just . ("KeySchema",) . toJSON) _dynamoDBTableKeySchema
     , fmap (("LocalSecondaryIndexes",) . toJSON) _dynamoDBTableLocalSecondaryIndexes
     , (Just . ("ProvisionedThroughput",) . toJSON) _dynamoDBTableProvisionedThroughput
     , fmap (("StreamSpecification",) . toJSON) _dynamoDBTableStreamSpecification
     , fmap (("TableName",) . toJSON) _dynamoDBTableTableName
+    , fmap (("Tags",) . toJSON) _dynamoDBTableTags
+    , fmap (("TimeToLiveSpecification",) . toJSON) _dynamoDBTableTimeToLiveSpecification
     ]
 
 instance FromJSON DynamoDBTable where
   parseJSON (Object obj) =
     DynamoDBTable <$>
-      (obj .: "AttributeDefinitions") <*>
+      (obj .:? "AttributeDefinitions") <*>
       (obj .:? "GlobalSecondaryIndexes") <*>
       (obj .: "KeySchema") <*>
       (obj .:? "LocalSecondaryIndexes") <*>
       (obj .: "ProvisionedThroughput") <*>
       (obj .:? "StreamSpecification") <*>
-      (obj .:? "TableName")
+      (obj .:? "TableName") <*>
+      (obj .:? "Tags") <*>
+      (obj .:? "TimeToLiveSpecification")
   parseJSON _ = mempty
 
 -- | Constructor for 'DynamoDBTable' containing required fields as arguments.
 dynamoDBTable
-  :: [DynamoDBTableAttributeDefinition] -- ^ 'ddbtAttributeDefinitions'
-  -> [DynamoDBTableKeySchema] -- ^ 'ddbtKeySchema'
+  :: [DynamoDBTableKeySchema] -- ^ 'ddbtKeySchema'
   -> DynamoDBTableProvisionedThroughput -- ^ 'ddbtProvisionedThroughput'
   -> DynamoDBTable
-dynamoDBTable attributeDefinitionsarg keySchemaarg provisionedThroughputarg =
+dynamoDBTable keySchemaarg provisionedThroughputarg =
   DynamoDBTable
-  { _dynamoDBTableAttributeDefinitions = attributeDefinitionsarg
+  { _dynamoDBTableAttributeDefinitions = Nothing
   , _dynamoDBTableGlobalSecondaryIndexes = Nothing
   , _dynamoDBTableKeySchema = keySchemaarg
   , _dynamoDBTableLocalSecondaryIndexes = Nothing
   , _dynamoDBTableProvisionedThroughput = provisionedThroughputarg
   , _dynamoDBTableStreamSpecification = Nothing
   , _dynamoDBTableTableName = Nothing
+  , _dynamoDBTableTags = Nothing
+  , _dynamoDBTableTimeToLiveSpecification = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-attributedef
-ddbtAttributeDefinitions :: Lens' DynamoDBTable [DynamoDBTableAttributeDefinition]
+ddbtAttributeDefinitions :: Lens' DynamoDBTable (Maybe [DynamoDBTableAttributeDefinition])
 ddbtAttributeDefinitions = lens _dynamoDBTableAttributeDefinitions (\s a -> s { _dynamoDBTableAttributeDefinitions = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-gsi
@@ -102,3 +111,11 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-tablename
 ddbtTableName :: Lens' DynamoDBTable (Maybe (Val Text))
 ddbtTableName = lens _dynamoDBTableTableName (\s a -> s { _dynamoDBTableTableName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-tags
+ddbtTags :: Lens' DynamoDBTable (Maybe [Tag])
+ddbtTags = lens _dynamoDBTableTags (\s a -> s { _dynamoDBTableTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-timetolivespecification
+ddbtTimeToLiveSpecification :: Lens' DynamoDBTable (Maybe DynamoDBTableTimeToLiveSpecification)
+ddbtTimeToLiveSpecification = lens _dynamoDBTableTimeToLiveSpecification (\s a -> s { _dynamoDBTableTimeToLiveSpecification = a })
diff --git a/library-gen/Stratosphere/Resources/EC2VPCCidrBlock.hs b/library-gen/Stratosphere/Resources/EC2VPCCidrBlock.hs
--- a/library-gen/Stratosphere/Resources/EC2VPCCidrBlock.hs
+++ b/library-gen/Stratosphere/Resources/EC2VPCCidrBlock.hs
@@ -20,6 +20,7 @@
 data EC2VPCCidrBlock =
   EC2VPCCidrBlock
   { _eC2VPCCidrBlockAmazonProvidedIpv6CidrBlock :: Maybe (Val Bool)
+  , _eC2VPCCidrBlockCidrBlock :: Maybe (Val Text)
   , _eC2VPCCidrBlockVpcId :: Val Text
   } deriving (Show, Eq)
 
@@ -28,6 +29,7 @@
     object $
     catMaybes
     [ fmap (("AmazonProvidedIpv6CidrBlock",) . toJSON . fmap Bool') _eC2VPCCidrBlockAmazonProvidedIpv6CidrBlock
+    , fmap (("CidrBlock",) . toJSON) _eC2VPCCidrBlockCidrBlock
     , (Just . ("VpcId",) . toJSON) _eC2VPCCidrBlockVpcId
     ]
 
@@ -35,6 +37,7 @@
   parseJSON (Object obj) =
     EC2VPCCidrBlock <$>
       fmap (fmap (fmap unBool')) (obj .:? "AmazonProvidedIpv6CidrBlock") <*>
+      (obj .:? "CidrBlock") <*>
       (obj .: "VpcId")
   parseJSON _ = mempty
 
@@ -46,12 +49,17 @@
 ec2VPCCidrBlock vpcIdarg =
   EC2VPCCidrBlock
   { _eC2VPCCidrBlockAmazonProvidedIpv6CidrBlock = Nothing
+  , _eC2VPCCidrBlockCidrBlock = Nothing
   , _eC2VPCCidrBlockVpcId = vpcIdarg
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html#cfn-ec2-vpccidrblock-amazonprovidedipv6cidrblock
 ecvpccbAmazonProvidedIpv6CidrBlock :: Lens' EC2VPCCidrBlock (Maybe (Val Bool))
 ecvpccbAmazonProvidedIpv6CidrBlock = lens _eC2VPCCidrBlockAmazonProvidedIpv6CidrBlock (\s a -> s { _eC2VPCCidrBlockAmazonProvidedIpv6CidrBlock = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html#cfn-ec2-vpccidrblock-cidrblock
+ecvpccbCidrBlock :: Lens' EC2VPCCidrBlock (Maybe (Val Text))
+ecvpccbCidrBlock = lens _eC2VPCCidrBlockCidrBlock (\s a -> s { _eC2VPCCidrBlockCidrBlock = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html#cfn-ec2-vpccidrblock-vpcid
 ecvpccbVpcId :: Lens' EC2VPCCidrBlock (Val Text)
diff --git a/library-gen/Stratosphere/Resources/ECSService.hs b/library-gen/Stratosphere/Resources/ECSService.hs
--- a/library-gen/Stratosphere/Resources/ECSService.hs
+++ b/library-gen/Stratosphere/Resources/ECSService.hs
@@ -24,7 +24,7 @@
   ECSService
   { _eCSServiceCluster :: Maybe (Val Text)
   , _eCSServiceDeploymentConfiguration :: Maybe ECSServiceDeploymentConfiguration
-  , _eCSServiceDesiredCount :: Maybe (Val Integer)
+  , _eCSServiceDesiredCount :: Val Integer
   , _eCSServiceLoadBalancers :: Maybe [ECSServiceLoadBalancer]
   , _eCSServicePlacementConstraints :: Maybe [ECSServicePlacementConstraint]
   , _eCSServicePlacementStrategies :: Maybe [ECSServicePlacementStrategy]
@@ -39,7 +39,7 @@
     catMaybes
     [ fmap (("Cluster",) . toJSON) _eCSServiceCluster
     , fmap (("DeploymentConfiguration",) . toJSON) _eCSServiceDeploymentConfiguration
-    , fmap (("DesiredCount",) . toJSON . fmap Integer') _eCSServiceDesiredCount
+    , (Just . ("DesiredCount",) . toJSON . fmap Integer') _eCSServiceDesiredCount
     , fmap (("LoadBalancers",) . toJSON) _eCSServiceLoadBalancers
     , fmap (("PlacementConstraints",) . toJSON) _eCSServicePlacementConstraints
     , fmap (("PlacementStrategies",) . toJSON) _eCSServicePlacementStrategies
@@ -53,7 +53,7 @@
     ECSService <$>
       (obj .:? "Cluster") <*>
       (obj .:? "DeploymentConfiguration") <*>
-      fmap (fmap (fmap unInteger')) (obj .:? "DesiredCount") <*>
+      fmap (fmap unInteger') (obj .: "DesiredCount") <*>
       (obj .:? "LoadBalancers") <*>
       (obj .:? "PlacementConstraints") <*>
       (obj .:? "PlacementStrategies") <*>
@@ -64,13 +64,14 @@
 
 -- | Constructor for 'ECSService' containing required fields as arguments.
 ecsService
-  :: Val Text -- ^ 'ecssTaskDefinition'
+  :: Val Integer -- ^ 'ecssDesiredCount'
+  -> Val Text -- ^ 'ecssTaskDefinition'
   -> ECSService
-ecsService taskDefinitionarg =
+ecsService desiredCountarg taskDefinitionarg =
   ECSService
   { _eCSServiceCluster = Nothing
   , _eCSServiceDeploymentConfiguration = Nothing
-  , _eCSServiceDesiredCount = Nothing
+  , _eCSServiceDesiredCount = desiredCountarg
   , _eCSServiceLoadBalancers = Nothing
   , _eCSServicePlacementConstraints = Nothing
   , _eCSServicePlacementStrategies = Nothing
@@ -88,7 +89,7 @@
 ecssDeploymentConfiguration = lens _eCSServiceDeploymentConfiguration (\s a -> s { _eCSServiceDeploymentConfiguration = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-desiredcount
-ecssDesiredCount :: Lens' ECSService (Maybe (Val Integer))
+ecssDesiredCount :: Lens' ECSService (Val Integer)
 ecssDesiredCount = lens _eCSServiceDesiredCount (\s a -> s { _eCSServiceDesiredCount = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-loadbalancers
diff --git a/library-gen/Stratosphere/Resources/EFSFileSystem.hs b/library-gen/Stratosphere/Resources/EFSFileSystem.hs
--- a/library-gen/Stratosphere/Resources/EFSFileSystem.hs
+++ b/library-gen/Stratosphere/Resources/EFSFileSystem.hs
@@ -19,7 +19,9 @@
 -- more convenient constructor.
 data EFSFileSystem =
   EFSFileSystem
-  { _eFSFileSystemFileSystemTags :: Maybe [EFSFileSystemElasticFileSystemTag]
+  { _eFSFileSystemEncrypted :: Maybe (Val Bool)
+  , _eFSFileSystemFileSystemTags :: Maybe [EFSFileSystemElasticFileSystemTag]
+  , _eFSFileSystemKmsKeyId :: Maybe (Val Text)
   , _eFSFileSystemPerformanceMode :: Maybe (Val Text)
   } deriving (Show, Eq)
 
@@ -27,14 +29,18 @@
   toJSON EFSFileSystem{..} =
     object $
     catMaybes
-    [ fmap (("FileSystemTags",) . toJSON) _eFSFileSystemFileSystemTags
+    [ fmap (("Encrypted",) . toJSON . fmap Bool') _eFSFileSystemEncrypted
+    , fmap (("FileSystemTags",) . toJSON) _eFSFileSystemFileSystemTags
+    , fmap (("KmsKeyId",) . toJSON) _eFSFileSystemKmsKeyId
     , fmap (("PerformanceMode",) . toJSON) _eFSFileSystemPerformanceMode
     ]
 
 instance FromJSON EFSFileSystem where
   parseJSON (Object obj) =
     EFSFileSystem <$>
+      fmap (fmap (fmap unBool')) (obj .:? "Encrypted") <*>
       (obj .:? "FileSystemTags") <*>
+      (obj .:? "KmsKeyId") <*>
       (obj .:? "PerformanceMode")
   parseJSON _ = mempty
 
@@ -43,13 +49,23 @@
   :: EFSFileSystem
 efsFileSystem  =
   EFSFileSystem
-  { _eFSFileSystemFileSystemTags = Nothing
+  { _eFSFileSystemEncrypted = Nothing
+  , _eFSFileSystemFileSystemTags = Nothing
+  , _eFSFileSystemKmsKeyId = Nothing
   , _eFSFileSystemPerformanceMode = Nothing
   }
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-encrypted
+efsfsEncrypted :: Lens' EFSFileSystem (Maybe (Val Bool))
+efsfsEncrypted = lens _eFSFileSystemEncrypted (\s a -> s { _eFSFileSystemEncrypted = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-filesystemtags
 efsfsFileSystemTags :: Lens' EFSFileSystem (Maybe [EFSFileSystemElasticFileSystemTag])
 efsfsFileSystemTags = lens _eFSFileSystemFileSystemTags (\s a -> s { _eFSFileSystemFileSystemTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-kmskeyid
+efsfsKmsKeyId :: Lens' EFSFileSystem (Maybe (Val Text))
+efsfsKmsKeyId = lens _eFSFileSystemKmsKeyId (\s a -> s { _eFSFileSystemKmsKeyId = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-performancemode
 efsfsPerformanceMode :: Lens' EFSFileSystem (Maybe (Val Text))
diff --git a/library-gen/Stratosphere/Resources/ElasticLoadBalancingV2LoadBalancer.hs b/library-gen/Stratosphere/Resources/ElasticLoadBalancingV2LoadBalancer.hs
--- a/library-gen/Stratosphere/Resources/ElasticLoadBalancingV2LoadBalancer.hs
+++ b/library-gen/Stratosphere/Resources/ElasticLoadBalancingV2LoadBalancer.hs
@@ -14,6 +14,7 @@
 
 import Stratosphere.Values
 import Stratosphere.ResourceProperties.ElasticLoadBalancingV2LoadBalancerLoadBalancerAttribute
+import Stratosphere.ResourceProperties.ElasticLoadBalancingV2LoadBalancerSubnetMapping
 import Stratosphere.ResourceProperties.Tag
 
 -- | Full data type definition for ElasticLoadBalancingV2LoadBalancer. See
@@ -25,8 +26,10 @@
   , _elasticLoadBalancingV2LoadBalancerName :: Maybe (Val Text)
   , _elasticLoadBalancingV2LoadBalancerScheme :: Maybe (Val Text)
   , _elasticLoadBalancingV2LoadBalancerSecurityGroups :: Maybe (ValList Text)
+  , _elasticLoadBalancingV2LoadBalancerSubnetMappings :: Maybe [ElasticLoadBalancingV2LoadBalancerSubnetMapping]
   , _elasticLoadBalancingV2LoadBalancerSubnets :: Maybe (ValList Text)
   , _elasticLoadBalancingV2LoadBalancerTags :: Maybe [Tag]
+  , _elasticLoadBalancingV2LoadBalancerType :: Maybe (Val Text)
   } deriving (Show, Eq)
 
 instance ToJSON ElasticLoadBalancingV2LoadBalancer where
@@ -38,8 +41,10 @@
     , fmap (("Name",) . toJSON) _elasticLoadBalancingV2LoadBalancerName
     , fmap (("Scheme",) . toJSON) _elasticLoadBalancingV2LoadBalancerScheme
     , fmap (("SecurityGroups",) . toJSON) _elasticLoadBalancingV2LoadBalancerSecurityGroups
+    , fmap (("SubnetMappings",) . toJSON) _elasticLoadBalancingV2LoadBalancerSubnetMappings
     , fmap (("Subnets",) . toJSON) _elasticLoadBalancingV2LoadBalancerSubnets
     , fmap (("Tags",) . toJSON) _elasticLoadBalancingV2LoadBalancerTags
+    , fmap (("Type",) . toJSON) _elasticLoadBalancingV2LoadBalancerType
     ]
 
 instance FromJSON ElasticLoadBalancingV2LoadBalancer where
@@ -50,8 +55,10 @@
       (obj .:? "Name") <*>
       (obj .:? "Scheme") <*>
       (obj .:? "SecurityGroups") <*>
+      (obj .:? "SubnetMappings") <*>
       (obj .:? "Subnets") <*>
-      (obj .:? "Tags")
+      (obj .:? "Tags") <*>
+      (obj .:? "Type")
   parseJSON _ = mempty
 
 -- | Constructor for 'ElasticLoadBalancingV2LoadBalancer' containing required
@@ -65,8 +72,10 @@
   , _elasticLoadBalancingV2LoadBalancerName = Nothing
   , _elasticLoadBalancingV2LoadBalancerScheme = Nothing
   , _elasticLoadBalancingV2LoadBalancerSecurityGroups = Nothing
+  , _elasticLoadBalancingV2LoadBalancerSubnetMappings = Nothing
   , _elasticLoadBalancingV2LoadBalancerSubnets = Nothing
   , _elasticLoadBalancingV2LoadBalancerTags = Nothing
+  , _elasticLoadBalancingV2LoadBalancerType = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-ipaddresstype
@@ -89,6 +98,10 @@
 elbvlbSecurityGroups :: Lens' ElasticLoadBalancingV2LoadBalancer (Maybe (ValList Text))
 elbvlbSecurityGroups = lens _elasticLoadBalancingV2LoadBalancerSecurityGroups (\s a -> s { _elasticLoadBalancingV2LoadBalancerSecurityGroups = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-subnetmappings
+elbvlbSubnetMappings :: Lens' ElasticLoadBalancingV2LoadBalancer (Maybe [ElasticLoadBalancingV2LoadBalancerSubnetMapping])
+elbvlbSubnetMappings = lens _elasticLoadBalancingV2LoadBalancerSubnetMappings (\s a -> s { _elasticLoadBalancingV2LoadBalancerSubnetMappings = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-subnets
 elbvlbSubnets :: Lens' ElasticLoadBalancingV2LoadBalancer (Maybe (ValList Text))
 elbvlbSubnets = lens _elasticLoadBalancingV2LoadBalancerSubnets (\s a -> s { _elasticLoadBalancingV2LoadBalancerSubnets = a })
@@ -96,3 +109,7 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-tags
 elbvlbTags :: Lens' ElasticLoadBalancingV2LoadBalancer (Maybe [Tag])
 elbvlbTags = lens _elasticLoadBalancingV2LoadBalancerTags (\s a -> s { _elasticLoadBalancingV2LoadBalancerTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-type
+elbvlbType :: Lens' ElasticLoadBalancingV2LoadBalancer (Maybe (Val Text))
+elbvlbType = lens _elasticLoadBalancingV2LoadBalancerType (\s a -> s { _elasticLoadBalancingV2LoadBalancerType = a })
diff --git a/library-gen/Stratosphere/Resources/ElasticLoadBalancingV2TargetGroup.hs b/library-gen/Stratosphere/Resources/ElasticLoadBalancingV2TargetGroup.hs
--- a/library-gen/Stratosphere/Resources/ElasticLoadBalancingV2TargetGroup.hs
+++ b/library-gen/Stratosphere/Resources/ElasticLoadBalancingV2TargetGroup.hs
@@ -34,6 +34,7 @@
   , _elasticLoadBalancingV2TargetGroupProtocol :: Val Text
   , _elasticLoadBalancingV2TargetGroupTags :: Maybe [Tag]
   , _elasticLoadBalancingV2TargetGroupTargetGroupAttributes :: Maybe [ElasticLoadBalancingV2TargetGroupTargetGroupAttribute]
+  , _elasticLoadBalancingV2TargetGroupTargetType :: Maybe (Val Text)
   , _elasticLoadBalancingV2TargetGroupTargets :: Maybe [ElasticLoadBalancingV2TargetGroupTargetDescription]
   , _elasticLoadBalancingV2TargetGroupUnhealthyThresholdCount :: Maybe (Val Integer)
   , _elasticLoadBalancingV2TargetGroupVpcId :: Val Text
@@ -55,6 +56,7 @@
     , (Just . ("Protocol",) . toJSON) _elasticLoadBalancingV2TargetGroupProtocol
     , fmap (("Tags",) . toJSON) _elasticLoadBalancingV2TargetGroupTags
     , fmap (("TargetGroupAttributes",) . toJSON) _elasticLoadBalancingV2TargetGroupTargetGroupAttributes
+    , fmap (("TargetType",) . toJSON) _elasticLoadBalancingV2TargetGroupTargetType
     , fmap (("Targets",) . toJSON) _elasticLoadBalancingV2TargetGroupTargets
     , fmap (("UnhealthyThresholdCount",) . toJSON . fmap Integer') _elasticLoadBalancingV2TargetGroupUnhealthyThresholdCount
     , (Just . ("VpcId",) . toJSON) _elasticLoadBalancingV2TargetGroupVpcId
@@ -75,6 +77,7 @@
       (obj .: "Protocol") <*>
       (obj .:? "Tags") <*>
       (obj .:? "TargetGroupAttributes") <*>
+      (obj .:? "TargetType") <*>
       (obj .:? "Targets") <*>
       fmap (fmap (fmap unInteger')) (obj .:? "UnhealthyThresholdCount") <*>
       (obj .: "VpcId")
@@ -101,6 +104,7 @@
   , _elasticLoadBalancingV2TargetGroupProtocol = protocolarg
   , _elasticLoadBalancingV2TargetGroupTags = Nothing
   , _elasticLoadBalancingV2TargetGroupTargetGroupAttributes = Nothing
+  , _elasticLoadBalancingV2TargetGroupTargetType = Nothing
   , _elasticLoadBalancingV2TargetGroupTargets = Nothing
   , _elasticLoadBalancingV2TargetGroupUnhealthyThresholdCount = Nothing
   , _elasticLoadBalancingV2TargetGroupVpcId = vpcIdarg
@@ -153,6 +157,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-targetgroupattributes
 elbvtgTargetGroupAttributes :: Lens' ElasticLoadBalancingV2TargetGroup (Maybe [ElasticLoadBalancingV2TargetGroupTargetGroupAttribute])
 elbvtgTargetGroupAttributes = lens _elasticLoadBalancingV2TargetGroupTargetGroupAttributes (\s a -> s { _elasticLoadBalancingV2TargetGroupTargetGroupAttributes = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-targettype
+elbvtgTargetType :: Lens' ElasticLoadBalancingV2TargetGroup (Maybe (Val Text))
+elbvtgTargetType = lens _elasticLoadBalancingV2TargetGroupTargetType (\s a -> s { _elasticLoadBalancingV2TargetGroupTargetType = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-targets
 elbvtgTargets :: Lens' ElasticLoadBalancingV2TargetGroup (Maybe [ElasticLoadBalancingV2TargetGroupTargetDescription])
diff --git a/library-gen/Stratosphere/Resources/KinesisFirehoseDeliveryStream.hs b/library-gen/Stratosphere/Resources/KinesisFirehoseDeliveryStream.hs
--- a/library-gen/Stratosphere/Resources/KinesisFirehoseDeliveryStream.hs
+++ b/library-gen/Stratosphere/Resources/KinesisFirehoseDeliveryStream.hs
@@ -63,11 +63,11 @@
   , _kinesisFirehoseDeliveryStreamS3DestinationConfiguration = Nothing
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverstream-deliverystreamname
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-deliverystreamname
 kfdsDeliveryStreamName :: Lens' KinesisFirehoseDeliveryStream (Maybe (Val Text))
 kfdsDeliveryStreamName = lens _kinesisFirehoseDeliveryStreamDeliveryStreamName (\s a -> s { _kinesisFirehoseDeliveryStreamDeliveryStreamName = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverstream-elasticsearchdestinationconfiguration
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration
 kfdsElasticsearchDestinationConfiguration :: Lens' KinesisFirehoseDeliveryStream (Maybe KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration)
 kfdsElasticsearchDestinationConfiguration = lens _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration (\s a -> s { _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration = a })
 
diff --git a/library-gen/Stratosphere/Resources/LambdaPermission.hs b/library-gen/Stratosphere/Resources/LambdaPermission.hs
--- a/library-gen/Stratosphere/Resources/LambdaPermission.hs
+++ b/library-gen/Stratosphere/Resources/LambdaPermission.hs
@@ -20,6 +20,7 @@
 data LambdaPermission =
   LambdaPermission
   { _lambdaPermissionAction :: Val Text
+  , _lambdaPermissionEventSourceToken :: Maybe (Val Text)
   , _lambdaPermissionFunctionName :: Val Text
   , _lambdaPermissionPrincipal :: Val Text
   , _lambdaPermissionSourceAccount :: Maybe (Val Text)
@@ -31,6 +32,7 @@
     object $
     catMaybes
     [ (Just . ("Action",) . toJSON) _lambdaPermissionAction
+    , fmap (("EventSourceToken",) . toJSON) _lambdaPermissionEventSourceToken
     , (Just . ("FunctionName",) . toJSON) _lambdaPermissionFunctionName
     , (Just . ("Principal",) . toJSON) _lambdaPermissionPrincipal
     , fmap (("SourceAccount",) . toJSON) _lambdaPermissionSourceAccount
@@ -41,6 +43,7 @@
   parseJSON (Object obj) =
     LambdaPermission <$>
       (obj .: "Action") <*>
+      (obj .:? "EventSourceToken") <*>
       (obj .: "FunctionName") <*>
       (obj .: "Principal") <*>
       (obj .:? "SourceAccount") <*>
@@ -57,6 +60,7 @@
 lambdaPermission actionarg functionNamearg principalarg =
   LambdaPermission
   { _lambdaPermissionAction = actionarg
+  , _lambdaPermissionEventSourceToken = Nothing
   , _lambdaPermissionFunctionName = functionNamearg
   , _lambdaPermissionPrincipal = principalarg
   , _lambdaPermissionSourceAccount = Nothing
@@ -66,6 +70,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html#cfn-lambda-permission-action
 lpAction :: Lens' LambdaPermission (Val Text)
 lpAction = lens _lambdaPermissionAction (\s a -> s { _lambdaPermissionAction = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html#cfn-lambda-permission-eventsourcetoken
+lpEventSourceToken :: Lens' LambdaPermission (Maybe (Val Text))
+lpEventSourceToken = lens _lambdaPermissionEventSourceToken (\s a -> s { _lambdaPermissionEventSourceToken = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html#cfn-lambda-permission-functionname
 lpFunctionName :: Lens' LambdaPermission (Val Text)
diff --git a/library-gen/Stratosphere/Resources/S3Bucket.hs b/library-gen/Stratosphere/Resources/S3Bucket.hs
--- a/library-gen/Stratosphere/Resources/S3Bucket.hs
+++ b/library-gen/Stratosphere/Resources/S3Bucket.hs
@@ -18,6 +18,7 @@
 import Stratosphere.ResourceProperties.S3BucketCorsConfiguration
 import Stratosphere.ResourceProperties.S3BucketLifecycleConfiguration
 import Stratosphere.ResourceProperties.S3BucketLoggingConfiguration
+import Stratosphere.ResourceProperties.S3BucketMetricsConfiguration
 import Stratosphere.ResourceProperties.S3BucketNotificationConfiguration
 import Stratosphere.ResourceProperties.S3BucketReplicationConfiguration
 import Stratosphere.ResourceProperties.Tag
@@ -34,6 +35,7 @@
   , _s3BucketCorsConfiguration :: Maybe S3BucketCorsConfiguration
   , _s3BucketLifecycleConfiguration :: Maybe S3BucketLifecycleConfiguration
   , _s3BucketLoggingConfiguration :: Maybe S3BucketLoggingConfiguration
+  , _s3BucketMetricsConfigurations :: Maybe [S3BucketMetricsConfiguration]
   , _s3BucketNotificationConfiguration :: Maybe S3BucketNotificationConfiguration
   , _s3BucketReplicationConfiguration :: Maybe S3BucketReplicationConfiguration
   , _s3BucketTags :: Maybe [Tag]
@@ -51,6 +53,7 @@
     , fmap (("CorsConfiguration",) . toJSON) _s3BucketCorsConfiguration
     , fmap (("LifecycleConfiguration",) . toJSON) _s3BucketLifecycleConfiguration
     , fmap (("LoggingConfiguration",) . toJSON) _s3BucketLoggingConfiguration
+    , fmap (("MetricsConfigurations",) . toJSON) _s3BucketMetricsConfigurations
     , fmap (("NotificationConfiguration",) . toJSON) _s3BucketNotificationConfiguration
     , fmap (("ReplicationConfiguration",) . toJSON) _s3BucketReplicationConfiguration
     , fmap (("Tags",) . toJSON) _s3BucketTags
@@ -67,6 +70,7 @@
       (obj .:? "CorsConfiguration") <*>
       (obj .:? "LifecycleConfiguration") <*>
       (obj .:? "LoggingConfiguration") <*>
+      (obj .:? "MetricsConfigurations") <*>
       (obj .:? "NotificationConfiguration") <*>
       (obj .:? "ReplicationConfiguration") <*>
       (obj .:? "Tags") <*>
@@ -85,6 +89,7 @@
   , _s3BucketCorsConfiguration = Nothing
   , _s3BucketLifecycleConfiguration = Nothing
   , _s3BucketLoggingConfiguration = Nothing
+  , _s3BucketMetricsConfigurations = Nothing
   , _s3BucketNotificationConfiguration = Nothing
   , _s3BucketReplicationConfiguration = Nothing
   , _s3BucketTags = Nothing
@@ -115,6 +120,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-loggingconfig
 sbLoggingConfiguration :: Lens' S3Bucket (Maybe S3BucketLoggingConfiguration)
 sbLoggingConfiguration = lens _s3BucketLoggingConfiguration (\s a -> s { _s3BucketLoggingConfiguration = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-metricsconfigurations
+sbMetricsConfigurations :: Lens' S3Bucket (Maybe [S3BucketMetricsConfiguration])
+sbMetricsConfigurations = lens _s3BucketMetricsConfigurations (\s a -> s { _s3BucketMetricsConfigurations = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-notification
 sbNotificationConfiguration :: Lens' S3Bucket (Maybe S3BucketNotificationConfiguration)
diff --git a/library-gen/Stratosphere/Resources/SSMParameter.hs b/library-gen/Stratosphere/Resources/SSMParameter.hs
--- a/library-gen/Stratosphere/Resources/SSMParameter.hs
+++ b/library-gen/Stratosphere/Resources/SSMParameter.hs
@@ -19,7 +19,8 @@
 -- convenient constructor.
 data SSMParameter =
   SSMParameter
-  { _sSMParameterDescription :: Maybe (Val Text)
+  { _sSMParameterAllowedPattern :: Maybe (Val Text)
+  , _sSMParameterDescription :: Maybe (Val Text)
   , _sSMParameterName :: Maybe (Val Text)
   , _sSMParameterType :: Val Text
   , _sSMParameterValue :: Val Text
@@ -29,7 +30,8 @@
   toJSON SSMParameter{..} =
     object $
     catMaybes
-    [ fmap (("Description",) . toJSON) _sSMParameterDescription
+    [ fmap (("AllowedPattern",) . toJSON) _sSMParameterAllowedPattern
+    , fmap (("Description",) . toJSON) _sSMParameterDescription
     , fmap (("Name",) . toJSON) _sSMParameterName
     , (Just . ("Type",) . toJSON) _sSMParameterType
     , (Just . ("Value",) . toJSON) _sSMParameterValue
@@ -38,6 +40,7 @@
 instance FromJSON SSMParameter where
   parseJSON (Object obj) =
     SSMParameter <$>
+      (obj .:? "AllowedPattern") <*>
       (obj .:? "Description") <*>
       (obj .:? "Name") <*>
       (obj .: "Type") <*>
@@ -51,11 +54,16 @@
   -> SSMParameter
 ssmParameter typearg valuearg =
   SSMParameter
-  { _sSMParameterDescription = Nothing
+  { _sSMParameterAllowedPattern = Nothing
+  , _sSMParameterDescription = Nothing
   , _sSMParameterName = Nothing
   , _sSMParameterType = typearg
   , _sSMParameterValue = valuearg
   }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html#cfn-ssm-parameter-allowedpattern
+ssmpAllowedPattern :: Lens' SSMParameter (Maybe (Val Text))
+ssmpAllowedPattern = lens _sSMParameterAllowedPattern (\s a -> s { _sSMParameterAllowedPattern = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html#cfn-ssm-parameter-description
 ssmpDescription :: Lens' SSMParameter (Maybe (Val Text))
diff --git a/stratosphere.cabal b/stratosphere.cabal
--- a/stratosphere.cabal
+++ b/stratosphere.cabal
@@ -1,9 +1,9 @@
--- This file has been generated from package.yaml by hpack version 0.17.0.
+-- This file has been generated from package.yaml by hpack version 0.17.1.
 --
 -- see: https://github.com/sol/hpack
 
 name:           stratosphere
-version:        0.8.0
+version:        0.9.0
 synopsis:       EDSL for AWS CloudFormation
 description:    EDSL for AWS CloudFormation
 category:       AWS, Cloud
@@ -88,6 +88,15 @@
       Stratosphere.ResourceProperties.AutoScalingScalingPolicyPredefinedMetricSpecification
       Stratosphere.ResourceProperties.AutoScalingScalingPolicyStepAdjustment
       Stratosphere.ResourceProperties.AutoScalingScalingPolicyTargetTrackingConfiguration
+      Stratosphere.ResourceProperties.BatchComputeEnvironmentComputeResources
+      Stratosphere.ResourceProperties.BatchJobDefinitionContainerProperties
+      Stratosphere.ResourceProperties.BatchJobDefinitionEnvironment
+      Stratosphere.ResourceProperties.BatchJobDefinitionMountPoints
+      Stratosphere.ResourceProperties.BatchJobDefinitionRetryStrategy
+      Stratosphere.ResourceProperties.BatchJobDefinitionUlimit
+      Stratosphere.ResourceProperties.BatchJobDefinitionVolumes
+      Stratosphere.ResourceProperties.BatchJobDefinitionVolumesHost
+      Stratosphere.ResourceProperties.BatchJobQueueComputeEnvironmentOrder
       Stratosphere.ResourceProperties.CertificateManagerCertificateDomainValidationOption
       Stratosphere.ResourceProperties.CloudFrontDistributionCacheBehavior
       Stratosphere.ResourceProperties.CloudFrontDistributionCookies
@@ -115,9 +124,13 @@
       Stratosphere.ResourceProperties.CodeDeployDeploymentConfigMinimumHealthyHosts
       Stratosphere.ResourceProperties.CodeDeployDeploymentGroupAlarm
       Stratosphere.ResourceProperties.CodeDeployDeploymentGroupAlarmConfiguration
+      Stratosphere.ResourceProperties.CodeDeployDeploymentGroupAutoRollbackConfiguration
       Stratosphere.ResourceProperties.CodeDeployDeploymentGroupDeployment
+      Stratosphere.ResourceProperties.CodeDeployDeploymentGroupDeploymentStyle
       Stratosphere.ResourceProperties.CodeDeployDeploymentGroupEC2TagFilter
+      Stratosphere.ResourceProperties.CodeDeployDeploymentGroupELBInfo
       Stratosphere.ResourceProperties.CodeDeployDeploymentGroupGitHubLocation
+      Stratosphere.ResourceProperties.CodeDeployDeploymentGroupLoadBalancerInfo
       Stratosphere.ResourceProperties.CodeDeployDeploymentGroupRevisionLocation
       Stratosphere.ResourceProperties.CodeDeployDeploymentGroupS3Location
       Stratosphere.ResourceProperties.CodeDeployDeploymentGroupTagFilter
@@ -175,6 +188,7 @@
       Stratosphere.ResourceProperties.DynamoDBTableProjection
       Stratosphere.ResourceProperties.DynamoDBTableProvisionedThroughput
       Stratosphere.ResourceProperties.DynamoDBTableStreamSpecification
+      Stratosphere.ResourceProperties.DynamoDBTableTimeToLiveSpecification
       Stratosphere.ResourceProperties.EC2InstanceAssociationParameter
       Stratosphere.ResourceProperties.EC2InstanceBlockDeviceMapping
       Stratosphere.ResourceProperties.EC2InstanceEbs
@@ -236,6 +250,7 @@
       Stratosphere.ResourceProperties.ElasticLoadBalancingV2ListenerRuleAction
       Stratosphere.ResourceProperties.ElasticLoadBalancingV2ListenerRuleRuleCondition
       Stratosphere.ResourceProperties.ElasticLoadBalancingV2LoadBalancerLoadBalancerAttribute
+      Stratosphere.ResourceProperties.ElasticLoadBalancingV2LoadBalancerSubnetMapping
       Stratosphere.ResourceProperties.ElasticLoadBalancingV2TargetGroupMatcher
       Stratosphere.ResourceProperties.ElasticLoadBalancingV2TargetGroupTargetDescription
       Stratosphere.ResourceProperties.ElasticLoadBalancingV2TargetGroupTargetGroupAttribute
@@ -285,6 +300,11 @@
       Stratosphere.ResourceProperties.EMRInstanceGroupConfigVolumeSpecification
       Stratosphere.ResourceProperties.EMRStepHadoopJarStepConfig
       Stratosphere.ResourceProperties.EMRStepKeyValue
+      Stratosphere.ResourceProperties.EventsRuleEcsParameters
+      Stratosphere.ResourceProperties.EventsRuleInputTransformer
+      Stratosphere.ResourceProperties.EventsRuleKinesisParameters
+      Stratosphere.ResourceProperties.EventsRuleRunCommandParameters
+      Stratosphere.ResourceProperties.EventsRuleRunCommandTarget
       Stratosphere.ResourceProperties.EventsRuleTarget
       Stratosphere.ResourceProperties.GameLiftAliasRoutingStrategy
       Stratosphere.ResourceProperties.GameLiftBuildS3Location
@@ -298,10 +318,12 @@
       Stratosphere.ResourceProperties.IoTTopicRuleCloudwatchAlarmAction
       Stratosphere.ResourceProperties.IoTTopicRuleCloudwatchMetricAction
       Stratosphere.ResourceProperties.IoTTopicRuleDynamoDBAction
+      Stratosphere.ResourceProperties.IoTTopicRuleDynamoDBV2Action
       Stratosphere.ResourceProperties.IoTTopicRuleElasticsearchAction
       Stratosphere.ResourceProperties.IoTTopicRuleFirehoseAction
       Stratosphere.ResourceProperties.IoTTopicRuleKinesisAction
       Stratosphere.ResourceProperties.IoTTopicRuleLambdaAction
+      Stratosphere.ResourceProperties.IoTTopicRulePutItemInput
       Stratosphere.ResourceProperties.IoTTopicRuleRepublishAction
       Stratosphere.ResourceProperties.IoTTopicRuleS3Action
       Stratosphere.ResourceProperties.IoTTopicRuleSnsAction
@@ -391,6 +413,7 @@
       Stratosphere.ResourceProperties.S3BucketLambdaConfiguration
       Stratosphere.ResourceProperties.S3BucketLifecycleConfiguration
       Stratosphere.ResourceProperties.S3BucketLoggingConfiguration
+      Stratosphere.ResourceProperties.S3BucketMetricsConfiguration
       Stratosphere.ResourceProperties.S3BucketNoncurrentVersionTransition
       Stratosphere.ResourceProperties.S3BucketNotificationConfiguration
       Stratosphere.ResourceProperties.S3BucketNotificationFilter
@@ -447,6 +470,7 @@
       Stratosphere.Resources.ApiGatewayDocumentationPart
       Stratosphere.Resources.ApiGatewayDocumentationVersion
       Stratosphere.Resources.ApiGatewayDomainName
+      Stratosphere.Resources.ApiGatewayGatewayResponse
       Stratosphere.Resources.ApiGatewayMethod
       Stratosphere.Resources.ApiGatewayModel
       Stratosphere.Resources.ApiGatewayRequestValidator
@@ -462,6 +486,9 @@
       Stratosphere.Resources.AutoScalingLifecycleHook
       Stratosphere.Resources.AutoScalingScalingPolicy
       Stratosphere.Resources.AutoScalingScheduledAction
+      Stratosphere.Resources.BatchComputeEnvironment
+      Stratosphere.Resources.BatchJobDefinition
+      Stratosphere.Resources.BatchJobQueue
       Stratosphere.Resources.CertificateManagerCertificate
       Stratosphere.Resources.CloudFormationCustomResource
       Stratosphere.Resources.CloudFormationStack
@@ -489,6 +516,9 @@
       Stratosphere.Resources.ConfigConfigurationRecorder
       Stratosphere.Resources.ConfigDeliveryChannel
       Stratosphere.Resources.DataPipelinePipeline
+      Stratosphere.Resources.DAXCluster
+      Stratosphere.Resources.DAXParameterGroup
+      Stratosphere.Resources.DAXSubnetGroup
       Stratosphere.Resources.DirectoryServiceMicrosoftAD
       Stratosphere.Resources.DirectoryServiceSimpleAD
       Stratosphere.Resources.DMSCertificate
