diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Change Log
 
+## 0.38.0
+
+* Update resource specification document to version 3.3.0
+
 ## 0.37.0
 
 * Update resource specification document to version 3.0.0
diff --git a/library-gen/Stratosphere/ResourceProperties/AppSyncGraphQLApiAdditionalAuthenticationProvider.hs b/library-gen/Stratosphere/ResourceProperties/AppSyncGraphQLApiAdditionalAuthenticationProvider.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/AppSyncGraphQLApiAdditionalAuthenticationProvider.hs
@@ -0,0 +1,56 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html
+
+module Stratosphere.ResourceProperties.AppSyncGraphQLApiAdditionalAuthenticationProvider where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.AppSyncGraphQLApiOpenIDConnectConfig
+import Stratosphere.ResourceProperties.AppSyncGraphQLApiCognitoUserPoolConfig
+
+-- | Full data type definition for
+-- AppSyncGraphQLApiAdditionalAuthenticationProvider. See
+-- 'appSyncGraphQLApiAdditionalAuthenticationProvider' for a more convenient
+-- constructor.
+data AppSyncGraphQLApiAdditionalAuthenticationProvider =
+  AppSyncGraphQLApiAdditionalAuthenticationProvider
+  { _appSyncGraphQLApiAdditionalAuthenticationProviderAuthenticationType :: Val Text
+  , _appSyncGraphQLApiAdditionalAuthenticationProviderOpenIDConnectConfig :: Maybe AppSyncGraphQLApiOpenIDConnectConfig
+  , _appSyncGraphQLApiAdditionalAuthenticationProviderUserPoolConfig :: Maybe AppSyncGraphQLApiCognitoUserPoolConfig
+  } deriving (Show, Eq)
+
+instance ToJSON AppSyncGraphQLApiAdditionalAuthenticationProvider where
+  toJSON AppSyncGraphQLApiAdditionalAuthenticationProvider{..} =
+    object $
+    catMaybes
+    [ (Just . ("AuthenticationType",) . toJSON) _appSyncGraphQLApiAdditionalAuthenticationProviderAuthenticationType
+    , fmap (("OpenIDConnectConfig",) . toJSON) _appSyncGraphQLApiAdditionalAuthenticationProviderOpenIDConnectConfig
+    , fmap (("UserPoolConfig",) . toJSON) _appSyncGraphQLApiAdditionalAuthenticationProviderUserPoolConfig
+    ]
+
+-- | Constructor for 'AppSyncGraphQLApiAdditionalAuthenticationProvider'
+-- containing required fields as arguments.
+appSyncGraphQLApiAdditionalAuthenticationProvider
+  :: Val Text -- ^ 'asgqlaaapAuthenticationType'
+  -> AppSyncGraphQLApiAdditionalAuthenticationProvider
+appSyncGraphQLApiAdditionalAuthenticationProvider authenticationTypearg =
+  AppSyncGraphQLApiAdditionalAuthenticationProvider
+  { _appSyncGraphQLApiAdditionalAuthenticationProviderAuthenticationType = authenticationTypearg
+  , _appSyncGraphQLApiAdditionalAuthenticationProviderOpenIDConnectConfig = Nothing
+  , _appSyncGraphQLApiAdditionalAuthenticationProviderUserPoolConfig = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html#cfn-appsync-graphqlapi-additionalauthenticationprovider-authenticationtype
+asgqlaaapAuthenticationType :: Lens' AppSyncGraphQLApiAdditionalAuthenticationProvider (Val Text)
+asgqlaaapAuthenticationType = lens _appSyncGraphQLApiAdditionalAuthenticationProviderAuthenticationType (\s a -> s { _appSyncGraphQLApiAdditionalAuthenticationProviderAuthenticationType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html#cfn-appsync-graphqlapi-additionalauthenticationprovider-openidconnectconfig
+asgqlaaapOpenIDConnectConfig :: Lens' AppSyncGraphQLApiAdditionalAuthenticationProvider (Maybe AppSyncGraphQLApiOpenIDConnectConfig)
+asgqlaaapOpenIDConnectConfig = lens _appSyncGraphQLApiAdditionalAuthenticationProviderOpenIDConnectConfig (\s a -> s { _appSyncGraphQLApiAdditionalAuthenticationProviderOpenIDConnectConfig = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html#cfn-appsync-graphqlapi-additionalauthenticationprovider-userpoolconfig
+asgqlaaapUserPoolConfig :: Lens' AppSyncGraphQLApiAdditionalAuthenticationProvider (Maybe AppSyncGraphQLApiCognitoUserPoolConfig)
+asgqlaaapUserPoolConfig = lens _appSyncGraphQLApiAdditionalAuthenticationProviderUserPoolConfig (\s a -> s { _appSyncGraphQLApiAdditionalAuthenticationProviderUserPoolConfig = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/AppSyncGraphQLApiCognitoUserPoolConfig.hs b/library-gen/Stratosphere/ResourceProperties/AppSyncGraphQLApiCognitoUserPoolConfig.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/AppSyncGraphQLApiCognitoUserPoolConfig.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-cognitouserpoolconfig.html
+
+module Stratosphere.ResourceProperties.AppSyncGraphQLApiCognitoUserPoolConfig where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for AppSyncGraphQLApiCognitoUserPoolConfig. See
+-- 'appSyncGraphQLApiCognitoUserPoolConfig' for a more convenient
+-- constructor.
+data AppSyncGraphQLApiCognitoUserPoolConfig =
+  AppSyncGraphQLApiCognitoUserPoolConfig
+  { _appSyncGraphQLApiCognitoUserPoolConfigAppIdClientRegex :: Maybe (Val Text)
+  , _appSyncGraphQLApiCognitoUserPoolConfigAwsRegion :: Maybe (Val Text)
+  , _appSyncGraphQLApiCognitoUserPoolConfigUserPoolId :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON AppSyncGraphQLApiCognitoUserPoolConfig where
+  toJSON AppSyncGraphQLApiCognitoUserPoolConfig{..} =
+    object $
+    catMaybes
+    [ fmap (("AppIdClientRegex",) . toJSON) _appSyncGraphQLApiCognitoUserPoolConfigAppIdClientRegex
+    , fmap (("AwsRegion",) . toJSON) _appSyncGraphQLApiCognitoUserPoolConfigAwsRegion
+    , fmap (("UserPoolId",) . toJSON) _appSyncGraphQLApiCognitoUserPoolConfigUserPoolId
+    ]
+
+-- | Constructor for 'AppSyncGraphQLApiCognitoUserPoolConfig' containing
+-- required fields as arguments.
+appSyncGraphQLApiCognitoUserPoolConfig
+  :: AppSyncGraphQLApiCognitoUserPoolConfig
+appSyncGraphQLApiCognitoUserPoolConfig  =
+  AppSyncGraphQLApiCognitoUserPoolConfig
+  { _appSyncGraphQLApiCognitoUserPoolConfigAppIdClientRegex = Nothing
+  , _appSyncGraphQLApiCognitoUserPoolConfigAwsRegion = Nothing
+  , _appSyncGraphQLApiCognitoUserPoolConfigUserPoolId = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-cognitouserpoolconfig.html#cfn-appsync-graphqlapi-cognitouserpoolconfig-appidclientregex
+asgqlacupcAppIdClientRegex :: Lens' AppSyncGraphQLApiCognitoUserPoolConfig (Maybe (Val Text))
+asgqlacupcAppIdClientRegex = lens _appSyncGraphQLApiCognitoUserPoolConfigAppIdClientRegex (\s a -> s { _appSyncGraphQLApiCognitoUserPoolConfigAppIdClientRegex = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-cognitouserpoolconfig.html#cfn-appsync-graphqlapi-cognitouserpoolconfig-awsregion
+asgqlacupcAwsRegion :: Lens' AppSyncGraphQLApiCognitoUserPoolConfig (Maybe (Val Text))
+asgqlacupcAwsRegion = lens _appSyncGraphQLApiCognitoUserPoolConfigAwsRegion (\s a -> s { _appSyncGraphQLApiCognitoUserPoolConfigAwsRegion = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-cognitouserpoolconfig.html#cfn-appsync-graphqlapi-cognitouserpoolconfig-userpoolid
+asgqlacupcUserPoolId :: Lens' AppSyncGraphQLApiCognitoUserPoolConfig (Maybe (Val Text))
+asgqlacupcUserPoolId = lens _appSyncGraphQLApiCognitoUserPoolConfigUserPoolId (\s a -> s { _appSyncGraphQLApiCognitoUserPoolConfigUserPoolId = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectProjectSourceVersion.hs b/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectProjectSourceVersion.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectProjectSourceVersion.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectsourceversion.html
+
+module Stratosphere.ResourceProperties.CodeBuildProjectProjectSourceVersion where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for CodeBuildProjectProjectSourceVersion. See
+-- 'codeBuildProjectProjectSourceVersion' for a more convenient constructor.
+data CodeBuildProjectProjectSourceVersion =
+  CodeBuildProjectProjectSourceVersion
+  { _codeBuildProjectProjectSourceVersionSourceIdentifier :: Val Text
+  , _codeBuildProjectProjectSourceVersionSourceVersion :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON CodeBuildProjectProjectSourceVersion where
+  toJSON CodeBuildProjectProjectSourceVersion{..} =
+    object $
+    catMaybes
+    [ (Just . ("SourceIdentifier",) . toJSON) _codeBuildProjectProjectSourceVersionSourceIdentifier
+    , fmap (("SourceVersion",) . toJSON) _codeBuildProjectProjectSourceVersionSourceVersion
+    ]
+
+-- | Constructor for 'CodeBuildProjectProjectSourceVersion' containing
+-- required fields as arguments.
+codeBuildProjectProjectSourceVersion
+  :: Val Text -- ^ 'cbppsvSourceIdentifier'
+  -> CodeBuildProjectProjectSourceVersion
+codeBuildProjectProjectSourceVersion sourceIdentifierarg =
+  CodeBuildProjectProjectSourceVersion
+  { _codeBuildProjectProjectSourceVersionSourceIdentifier = sourceIdentifierarg
+  , _codeBuildProjectProjectSourceVersionSourceVersion = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectsourceversion.html#cfn-codebuild-project-projectsourceversion-sourceidentifier
+cbppsvSourceIdentifier :: Lens' CodeBuildProjectProjectSourceVersion (Val Text)
+cbppsvSourceIdentifier = lens _codeBuildProjectProjectSourceVersionSourceIdentifier (\s a -> s { _codeBuildProjectProjectSourceVersionSourceIdentifier = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectsourceversion.html#cfn-codebuild-project-projectsourceversion-sourceversion
+cbppsvSourceVersion :: Lens' CodeBuildProjectProjectSourceVersion (Maybe (Val Text))
+cbppsvSourceVersion = lens _codeBuildProjectProjectSourceVersionSourceVersion (\s a -> s { _codeBuildProjectProjectSourceVersionSourceVersion = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CodeCommitRepositoryCode.hs b/library-gen/Stratosphere/ResourceProperties/CodeCommitRepositoryCode.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/CodeCommitRepositoryCode.hs
@@ -0,0 +1,39 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-code.html
+
+module Stratosphere.ResourceProperties.CodeCommitRepositoryCode where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.CodeCommitRepositoryS3
+
+-- | Full data type definition for CodeCommitRepositoryCode. See
+-- 'codeCommitRepositoryCode' for a more convenient constructor.
+data CodeCommitRepositoryCode =
+  CodeCommitRepositoryCode
+  { _codeCommitRepositoryCodeS3 :: CodeCommitRepositoryS3
+  } deriving (Show, Eq)
+
+instance ToJSON CodeCommitRepositoryCode where
+  toJSON CodeCommitRepositoryCode{..} =
+    object $
+    catMaybes
+    [ (Just . ("S3",) . toJSON) _codeCommitRepositoryCodeS3
+    ]
+
+-- | Constructor for 'CodeCommitRepositoryCode' containing required fields as
+-- arguments.
+codeCommitRepositoryCode
+  :: CodeCommitRepositoryS3 -- ^ 'ccrcS3'
+  -> CodeCommitRepositoryCode
+codeCommitRepositoryCode s3arg =
+  CodeCommitRepositoryCode
+  { _codeCommitRepositoryCodeS3 = s3arg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-code.html#cfn-codecommit-repository-code-s3
+ccrcS3 :: Lens' CodeCommitRepositoryCode CodeCommitRepositoryS3
+ccrcS3 = lens _codeCommitRepositoryCodeS3 (\s a -> s { _codeCommitRepositoryCodeS3 = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CodeCommitRepositoryS3.hs b/library-gen/Stratosphere/ResourceProperties/CodeCommitRepositoryS3.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/CodeCommitRepositoryS3.hs
@@ -0,0 +1,54 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-s3.html
+
+module Stratosphere.ResourceProperties.CodeCommitRepositoryS3 where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for CodeCommitRepositoryS3. See
+-- 'codeCommitRepositoryS3' for a more convenient constructor.
+data CodeCommitRepositoryS3 =
+  CodeCommitRepositoryS3
+  { _codeCommitRepositoryS3Bucket :: Val Text
+  , _codeCommitRepositoryS3Key :: Val Text
+  , _codeCommitRepositoryS3ObjectVersion :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON CodeCommitRepositoryS3 where
+  toJSON CodeCommitRepositoryS3{..} =
+    object $
+    catMaybes
+    [ (Just . ("Bucket",) . toJSON) _codeCommitRepositoryS3Bucket
+    , (Just . ("Key",) . toJSON) _codeCommitRepositoryS3Key
+    , fmap (("ObjectVersion",) . toJSON) _codeCommitRepositoryS3ObjectVersion
+    ]
+
+-- | Constructor for 'CodeCommitRepositoryS3' containing required fields as
+-- arguments.
+codeCommitRepositoryS3
+  :: Val Text -- ^ 'ccrsBucket'
+  -> Val Text -- ^ 'ccrsKey'
+  -> CodeCommitRepositoryS3
+codeCommitRepositoryS3 bucketarg keyarg =
+  CodeCommitRepositoryS3
+  { _codeCommitRepositoryS3Bucket = bucketarg
+  , _codeCommitRepositoryS3Key = keyarg
+  , _codeCommitRepositoryS3ObjectVersion = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-s3.html#cfn-codecommit-repository-s3-bucket
+ccrsBucket :: Lens' CodeCommitRepositoryS3 (Val Text)
+ccrsBucket = lens _codeCommitRepositoryS3Bucket (\s a -> s { _codeCommitRepositoryS3Bucket = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-s3.html#cfn-codecommit-repository-s3-key
+ccrsKey :: Lens' CodeCommitRepositoryS3 (Val Text)
+ccrsKey = lens _codeCommitRepositoryS3Key (\s a -> s { _codeCommitRepositoryS3Key = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-s3.html#cfn-codecommit-repository-s3-objectversion
+ccrsObjectVersion :: Lens' CodeCommitRepositoryS3 (Maybe (Val Text))
+ccrsObjectVersion = lens _codeCommitRepositoryS3ObjectVersion (\s a -> s { _codeCommitRepositoryS3ObjectVersion = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CognitoUserPoolPasswordPolicy.hs b/library-gen/Stratosphere/ResourceProperties/CognitoUserPoolPasswordPolicy.hs
--- a/library-gen/Stratosphere/ResourceProperties/CognitoUserPoolPasswordPolicy.hs
+++ b/library-gen/Stratosphere/ResourceProperties/CognitoUserPoolPasswordPolicy.hs
@@ -19,6 +19,7 @@
   , _cognitoUserPoolPasswordPolicyRequireNumbers :: Maybe (Val Bool)
   , _cognitoUserPoolPasswordPolicyRequireSymbols :: Maybe (Val Bool)
   , _cognitoUserPoolPasswordPolicyRequireUppercase :: Maybe (Val Bool)
+  , _cognitoUserPoolPasswordPolicyTemporaryPasswordValidityDays :: Maybe (Val Double)
   } deriving (Show, Eq)
 
 instance ToJSON CognitoUserPoolPasswordPolicy where
@@ -30,6 +31,7 @@
     , fmap (("RequireNumbers",) . toJSON) _cognitoUserPoolPasswordPolicyRequireNumbers
     , fmap (("RequireSymbols",) . toJSON) _cognitoUserPoolPasswordPolicyRequireSymbols
     , fmap (("RequireUppercase",) . toJSON) _cognitoUserPoolPasswordPolicyRequireUppercase
+    , fmap (("TemporaryPasswordValidityDays",) . toJSON) _cognitoUserPoolPasswordPolicyTemporaryPasswordValidityDays
     ]
 
 -- | Constructor for 'CognitoUserPoolPasswordPolicy' containing required
@@ -43,6 +45,7 @@
   , _cognitoUserPoolPasswordPolicyRequireNumbers = Nothing
   , _cognitoUserPoolPasswordPolicyRequireSymbols = Nothing
   , _cognitoUserPoolPasswordPolicyRequireUppercase = Nothing
+  , _cognitoUserPoolPasswordPolicyTemporaryPasswordValidityDays = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-passwordpolicy.html#cfn-cognito-userpool-passwordpolicy-minimumlength
@@ -64,3 +67,7 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-passwordpolicy.html#cfn-cognito-userpool-passwordpolicy-requireuppercase
 cupppRequireUppercase :: Lens' CognitoUserPoolPasswordPolicy (Maybe (Val Bool))
 cupppRequireUppercase = lens _cognitoUserPoolPasswordPolicyRequireUppercase (\s a -> s { _cognitoUserPoolPasswordPolicyRequireUppercase = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-passwordpolicy.html#cfn-cognito-userpool-passwordpolicy-temporarypasswordvaliditydays
+cupppTemporaryPasswordValidityDays :: Lens' CognitoUserPoolPasswordPolicy (Maybe (Val Double))
+cupppTemporaryPasswordValidityDays = lens _cognitoUserPoolPasswordPolicyTemporaryPasswordValidityDays (\s a -> s { _cognitoUserPoolPasswordPolicyTemporaryPasswordValidityDays = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2CapacityReservationTagSpecification.hs b/library-gen/Stratosphere/ResourceProperties/EC2CapacityReservationTagSpecification.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EC2CapacityReservationTagSpecification.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservation-tagspecification.html
+
+module Stratosphere.ResourceProperties.EC2CapacityReservationTagSpecification where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.Tag
+
+-- | Full data type definition for EC2CapacityReservationTagSpecification. See
+-- 'ec2CapacityReservationTagSpecification' for a more convenient
+-- constructor.
+data EC2CapacityReservationTagSpecification =
+  EC2CapacityReservationTagSpecification
+  { _eC2CapacityReservationTagSpecificationResourceType :: Maybe (Val Text)
+  , _eC2CapacityReservationTagSpecificationTags :: Maybe [Tag]
+  } deriving (Show, Eq)
+
+instance ToJSON EC2CapacityReservationTagSpecification where
+  toJSON EC2CapacityReservationTagSpecification{..} =
+    object $
+    catMaybes
+    [ fmap (("ResourceType",) . toJSON) _eC2CapacityReservationTagSpecificationResourceType
+    , fmap (("Tags",) . toJSON) _eC2CapacityReservationTagSpecificationTags
+    ]
+
+-- | Constructor for 'EC2CapacityReservationTagSpecification' containing
+-- required fields as arguments.
+ec2CapacityReservationTagSpecification
+  :: EC2CapacityReservationTagSpecification
+ec2CapacityReservationTagSpecification  =
+  EC2CapacityReservationTagSpecification
+  { _eC2CapacityReservationTagSpecificationResourceType = Nothing
+  , _eC2CapacityReservationTagSpecificationTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservation-tagspecification.html#cfn-ec2-capacityreservation-tagspecification-resourcetype
+eccrtsResourceType :: Lens' EC2CapacityReservationTagSpecification (Maybe (Val Text))
+eccrtsResourceType = lens _eC2CapacityReservationTagSpecificationResourceType (\s a -> s { _eC2CapacityReservationTagSpecificationResourceType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservation-tagspecification.html#cfn-ec2-capacityreservation-tagspecification-tags
+eccrtsTags :: Lens' EC2CapacityReservationTagSpecification (Maybe [Tag])
+eccrtsTags = lens _eC2CapacityReservationTagSpecificationTags (\s a -> s { _eC2CapacityReservationTagSpecificationTags = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateNetworkInterface.hs b/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateNetworkInterface.hs
--- a/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateNetworkInterface.hs
+++ b/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateNetworkInterface.hs
@@ -20,6 +20,7 @@
   , _eC2LaunchTemplateNetworkInterfaceDescription :: Maybe (Val Text)
   , _eC2LaunchTemplateNetworkInterfaceDeviceIndex :: Maybe (Val Integer)
   , _eC2LaunchTemplateNetworkInterfaceGroups :: Maybe (ValList Text)
+  , _eC2LaunchTemplateNetworkInterfaceInterfaceType :: Maybe (Val Text)
   , _eC2LaunchTemplateNetworkInterfaceIpv6AddressCount :: Maybe (Val Integer)
   , _eC2LaunchTemplateNetworkInterfaceIpv6Addresses :: Maybe [EC2LaunchTemplateIpv6Add]
   , _eC2LaunchTemplateNetworkInterfaceNetworkInterfaceId :: Maybe (Val Text)
@@ -38,6 +39,7 @@
     , fmap (("Description",) . toJSON) _eC2LaunchTemplateNetworkInterfaceDescription
     , fmap (("DeviceIndex",) . toJSON) _eC2LaunchTemplateNetworkInterfaceDeviceIndex
     , fmap (("Groups",) . toJSON) _eC2LaunchTemplateNetworkInterfaceGroups
+    , fmap (("InterfaceType",) . toJSON) _eC2LaunchTemplateNetworkInterfaceInterfaceType
     , fmap (("Ipv6AddressCount",) . toJSON) _eC2LaunchTemplateNetworkInterfaceIpv6AddressCount
     , fmap (("Ipv6Addresses",) . toJSON) _eC2LaunchTemplateNetworkInterfaceIpv6Addresses
     , fmap (("NetworkInterfaceId",) . toJSON) _eC2LaunchTemplateNetworkInterfaceNetworkInterfaceId
@@ -58,6 +60,7 @@
   , _eC2LaunchTemplateNetworkInterfaceDescription = Nothing
   , _eC2LaunchTemplateNetworkInterfaceDeviceIndex = Nothing
   , _eC2LaunchTemplateNetworkInterfaceGroups = Nothing
+  , _eC2LaunchTemplateNetworkInterfaceInterfaceType = Nothing
   , _eC2LaunchTemplateNetworkInterfaceIpv6AddressCount = Nothing
   , _eC2LaunchTemplateNetworkInterfaceIpv6Addresses = Nothing
   , _eC2LaunchTemplateNetworkInterfaceNetworkInterfaceId = Nothing
@@ -86,6 +89,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-groups
 ecltniGroups :: Lens' EC2LaunchTemplateNetworkInterface (Maybe (ValList Text))
 ecltniGroups = lens _eC2LaunchTemplateNetworkInterfaceGroups (\s a -> s { _eC2LaunchTemplateNetworkInterfaceGroups = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-interfacetype
+ecltniInterfaceType :: Lens' EC2LaunchTemplateNetworkInterface (Maybe (Val Text))
+ecltniInterfaceType = lens _eC2LaunchTemplateNetworkInterfaceInterfaceType (\s a -> s { _eC2LaunchTemplateNetworkInterfaceInterfaceType = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-ipv6addresscount
 ecltniIpv6AddressCount :: Lens' EC2LaunchTemplateNetworkInterface (Maybe (Val Integer))
diff --git a/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionContainerDefinition.hs b/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionContainerDefinition.hs
--- a/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionContainerDefinition.hs
+++ b/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionContainerDefinition.hs
@@ -8,6 +8,7 @@
 module Stratosphere.ResourceProperties.ECSTaskDefinitionContainerDefinition where
 
 import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.ECSTaskDefinitionContainerDependency
 import Stratosphere.ResourceProperties.ECSTaskDefinitionKeyValuePair
 import Stratosphere.ResourceProperties.ECSTaskDefinitionHostEntry
 import Stratosphere.ResourceProperties.ECSTaskDefinitionHealthCheck
@@ -25,6 +26,7 @@
   ECSTaskDefinitionContainerDefinition
   { _eCSTaskDefinitionContainerDefinitionCommand :: Maybe (ValList Text)
   , _eCSTaskDefinitionContainerDefinitionCpu :: Maybe (Val Integer)
+  , _eCSTaskDefinitionContainerDefinitionDependsOn :: Maybe [ECSTaskDefinitionContainerDependency]
   , _eCSTaskDefinitionContainerDefinitionDisableNetworking :: Maybe (Val Bool)
   , _eCSTaskDefinitionContainerDefinitionDnsSearchDomains :: Maybe (ValList Text)
   , _eCSTaskDefinitionContainerDefinitionDnsServers :: Maybe (ValList Text)
@@ -48,6 +50,8 @@
   , _eCSTaskDefinitionContainerDefinitionPrivileged :: Maybe (Val Bool)
   , _eCSTaskDefinitionContainerDefinitionReadonlyRootFilesystem :: Maybe (Val Bool)
   , _eCSTaskDefinitionContainerDefinitionRepositoryCredentials :: Maybe ECSTaskDefinitionRepositoryCredentials
+  , _eCSTaskDefinitionContainerDefinitionStartTimeout :: Maybe (Val Integer)
+  , _eCSTaskDefinitionContainerDefinitionStopTimeout :: Maybe (Val Integer)
   , _eCSTaskDefinitionContainerDefinitionUlimits :: Maybe [ECSTaskDefinitionUlimit]
   , _eCSTaskDefinitionContainerDefinitionUser :: Maybe (Val Text)
   , _eCSTaskDefinitionContainerDefinitionVolumesFrom :: Maybe [ECSTaskDefinitionVolumeFrom]
@@ -60,6 +64,7 @@
     catMaybes
     [ fmap (("Command",) . toJSON) _eCSTaskDefinitionContainerDefinitionCommand
     , fmap (("Cpu",) . toJSON) _eCSTaskDefinitionContainerDefinitionCpu
+    , fmap (("DependsOn",) . toJSON) _eCSTaskDefinitionContainerDefinitionDependsOn
     , fmap (("DisableNetworking",) . toJSON) _eCSTaskDefinitionContainerDefinitionDisableNetworking
     , fmap (("DnsSearchDomains",) . toJSON) _eCSTaskDefinitionContainerDefinitionDnsSearchDomains
     , fmap (("DnsServers",) . toJSON) _eCSTaskDefinitionContainerDefinitionDnsServers
@@ -83,6 +88,8 @@
     , fmap (("Privileged",) . toJSON) _eCSTaskDefinitionContainerDefinitionPrivileged
     , fmap (("ReadonlyRootFilesystem",) . toJSON) _eCSTaskDefinitionContainerDefinitionReadonlyRootFilesystem
     , fmap (("RepositoryCredentials",) . toJSON) _eCSTaskDefinitionContainerDefinitionRepositoryCredentials
+    , fmap (("StartTimeout",) . toJSON) _eCSTaskDefinitionContainerDefinitionStartTimeout
+    , fmap (("StopTimeout",) . toJSON) _eCSTaskDefinitionContainerDefinitionStopTimeout
     , fmap (("Ulimits",) . toJSON) _eCSTaskDefinitionContainerDefinitionUlimits
     , fmap (("User",) . toJSON) _eCSTaskDefinitionContainerDefinitionUser
     , fmap (("VolumesFrom",) . toJSON) _eCSTaskDefinitionContainerDefinitionVolumesFrom
@@ -99,6 +106,7 @@
   ECSTaskDefinitionContainerDefinition
   { _eCSTaskDefinitionContainerDefinitionCommand = Nothing
   , _eCSTaskDefinitionContainerDefinitionCpu = Nothing
+  , _eCSTaskDefinitionContainerDefinitionDependsOn = Nothing
   , _eCSTaskDefinitionContainerDefinitionDisableNetworking = Nothing
   , _eCSTaskDefinitionContainerDefinitionDnsSearchDomains = Nothing
   , _eCSTaskDefinitionContainerDefinitionDnsServers = Nothing
@@ -122,6 +130,8 @@
   , _eCSTaskDefinitionContainerDefinitionPrivileged = Nothing
   , _eCSTaskDefinitionContainerDefinitionReadonlyRootFilesystem = Nothing
   , _eCSTaskDefinitionContainerDefinitionRepositoryCredentials = Nothing
+  , _eCSTaskDefinitionContainerDefinitionStartTimeout = Nothing
+  , _eCSTaskDefinitionContainerDefinitionStopTimeout = Nothing
   , _eCSTaskDefinitionContainerDefinitionUlimits = Nothing
   , _eCSTaskDefinitionContainerDefinitionUser = Nothing
   , _eCSTaskDefinitionContainerDefinitionVolumesFrom = Nothing
@@ -136,6 +146,10 @@
 ecstdcdCpu :: Lens' ECSTaskDefinitionContainerDefinition (Maybe (Val Integer))
 ecstdcdCpu = lens _eCSTaskDefinitionContainerDefinitionCpu (\s a -> s { _eCSTaskDefinitionContainerDefinitionCpu = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-dependson
+ecstdcdDependsOn :: Lens' ECSTaskDefinitionContainerDefinition (Maybe [ECSTaskDefinitionContainerDependency])
+ecstdcdDependsOn = lens _eCSTaskDefinitionContainerDefinitionDependsOn (\s a -> s { _eCSTaskDefinitionContainerDefinitionDependsOn = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-disablenetworking
 ecstdcdDisableNetworking :: Lens' ECSTaskDefinitionContainerDefinition (Maybe (Val Bool))
 ecstdcdDisableNetworking = lens _eCSTaskDefinitionContainerDefinitionDisableNetworking (\s a -> s { _eCSTaskDefinitionContainerDefinitionDisableNetworking = a })
@@ -227,6 +241,14 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-repositorycredentials
 ecstdcdRepositoryCredentials :: Lens' ECSTaskDefinitionContainerDefinition (Maybe ECSTaskDefinitionRepositoryCredentials)
 ecstdcdRepositoryCredentials = lens _eCSTaskDefinitionContainerDefinitionRepositoryCredentials (\s a -> s { _eCSTaskDefinitionContainerDefinitionRepositoryCredentials = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-starttimeout
+ecstdcdStartTimeout :: Lens' ECSTaskDefinitionContainerDefinition (Maybe (Val Integer))
+ecstdcdStartTimeout = lens _eCSTaskDefinitionContainerDefinitionStartTimeout (\s a -> s { _eCSTaskDefinitionContainerDefinitionStartTimeout = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-stoptimeout
+ecstdcdStopTimeout :: Lens' ECSTaskDefinitionContainerDefinition (Maybe (Val Integer))
+ecstdcdStopTimeout = lens _eCSTaskDefinitionContainerDefinitionStopTimeout (\s a -> s { _eCSTaskDefinitionContainerDefinitionStopTimeout = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-ulimits
 ecstdcdUlimits :: Lens' ECSTaskDefinitionContainerDefinition (Maybe [ECSTaskDefinitionUlimit])
diff --git a/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionContainerDependency.hs b/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionContainerDependency.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionContainerDependency.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdependency.html
+
+module Stratosphere.ResourceProperties.ECSTaskDefinitionContainerDependency where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for ECSTaskDefinitionContainerDependency. See
+-- 'ecsTaskDefinitionContainerDependency' for a more convenient constructor.
+data ECSTaskDefinitionContainerDependency =
+  ECSTaskDefinitionContainerDependency
+  { _eCSTaskDefinitionContainerDependencyCondition :: Val Text
+  , _eCSTaskDefinitionContainerDependencyContainerName :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON ECSTaskDefinitionContainerDependency where
+  toJSON ECSTaskDefinitionContainerDependency{..} =
+    object $
+    catMaybes
+    [ (Just . ("Condition",) . toJSON) _eCSTaskDefinitionContainerDependencyCondition
+    , (Just . ("ContainerName",) . toJSON) _eCSTaskDefinitionContainerDependencyContainerName
+    ]
+
+-- | Constructor for 'ECSTaskDefinitionContainerDependency' containing
+-- required fields as arguments.
+ecsTaskDefinitionContainerDependency
+  :: Val Text -- ^ 'ecstdcdCondition'
+  -> Val Text -- ^ 'ecstdcdContainerName'
+  -> ECSTaskDefinitionContainerDependency
+ecsTaskDefinitionContainerDependency conditionarg containerNamearg =
+  ECSTaskDefinitionContainerDependency
+  { _eCSTaskDefinitionContainerDependencyCondition = conditionarg
+  , _eCSTaskDefinitionContainerDependencyContainerName = containerNamearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdependency.html#cfn-ecs-taskdefinition-containerdependency-condition
+ecstdcdCondition :: Lens' ECSTaskDefinitionContainerDependency (Val Text)
+ecstdcdCondition = lens _eCSTaskDefinitionContainerDependencyCondition (\s a -> s { _eCSTaskDefinitionContainerDependencyCondition = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdependency.html#cfn-ecs-taskdefinition-containerdependency-containername
+ecstdcdContainerName :: Lens' ECSTaskDefinitionContainerDependency (Val Text)
+ecstdcdContainerName = lens _eCSTaskDefinitionContainerDependencyContainerName (\s a -> s { _eCSTaskDefinitionContainerDependencyContainerName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionProxyConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionProxyConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionProxyConfiguration.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-proxyconfiguration.html
+
+module Stratosphere.ResourceProperties.ECSTaskDefinitionProxyConfiguration where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.ECSTaskDefinitionKeyValuePair
+
+-- | Full data type definition for ECSTaskDefinitionProxyConfiguration. See
+-- 'ecsTaskDefinitionProxyConfiguration' for a more convenient constructor.
+data ECSTaskDefinitionProxyConfiguration =
+  ECSTaskDefinitionProxyConfiguration
+  { _eCSTaskDefinitionProxyConfigurationContainerName :: Val Text
+  , _eCSTaskDefinitionProxyConfigurationProxyConfigurationProperties :: Maybe [ECSTaskDefinitionKeyValuePair]
+  , _eCSTaskDefinitionProxyConfigurationType :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON ECSTaskDefinitionProxyConfiguration where
+  toJSON ECSTaskDefinitionProxyConfiguration{..} =
+    object $
+    catMaybes
+    [ (Just . ("ContainerName",) . toJSON) _eCSTaskDefinitionProxyConfigurationContainerName
+    , fmap (("ProxyConfigurationProperties",) . toJSON) _eCSTaskDefinitionProxyConfigurationProxyConfigurationProperties
+    , fmap (("Type",) . toJSON) _eCSTaskDefinitionProxyConfigurationType
+    ]
+
+-- | Constructor for 'ECSTaskDefinitionProxyConfiguration' containing required
+-- fields as arguments.
+ecsTaskDefinitionProxyConfiguration
+  :: Val Text -- ^ 'ecstdpcContainerName'
+  -> ECSTaskDefinitionProxyConfiguration
+ecsTaskDefinitionProxyConfiguration containerNamearg =
+  ECSTaskDefinitionProxyConfiguration
+  { _eCSTaskDefinitionProxyConfigurationContainerName = containerNamearg
+  , _eCSTaskDefinitionProxyConfigurationProxyConfigurationProperties = Nothing
+  , _eCSTaskDefinitionProxyConfigurationType = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-proxyconfiguration.html#cfn-ecs-taskdefinition-proxyconfiguration-containername
+ecstdpcContainerName :: Lens' ECSTaskDefinitionProxyConfiguration (Val Text)
+ecstdpcContainerName = lens _eCSTaskDefinitionProxyConfigurationContainerName (\s a -> s { _eCSTaskDefinitionProxyConfigurationContainerName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-proxyconfiguration.html#cfn-ecs-taskdefinition-proxyconfiguration-proxyconfigurationproperties
+ecstdpcProxyConfigurationProperties :: Lens' ECSTaskDefinitionProxyConfiguration (Maybe [ECSTaskDefinitionKeyValuePair])
+ecstdpcProxyConfigurationProperties = lens _eCSTaskDefinitionProxyConfigurationProxyConfigurationProperties (\s a -> s { _eCSTaskDefinitionProxyConfigurationProxyConfigurationProperties = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-proxyconfiguration.html#cfn-ecs-taskdefinition-proxyconfiguration-type
+ecstdpcType :: Lens' ECSTaskDefinitionProxyConfiguration (Maybe (Val Text))
+ecstdpcType = lens _eCSTaskDefinitionProxyConfigurationType (\s a -> s { _eCSTaskDefinitionProxyConfigurationType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/GlueClassifierCsvClassifier.hs b/library-gen/Stratosphere/ResourceProperties/GlueClassifierCsvClassifier.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/GlueClassifierCsvClassifier.hs
@@ -0,0 +1,80 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-csvclassifier.html
+
+module Stratosphere.ResourceProperties.GlueClassifierCsvClassifier where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for GlueClassifierCsvClassifier. See
+-- 'glueClassifierCsvClassifier' for a more convenient constructor.
+data GlueClassifierCsvClassifier =
+  GlueClassifierCsvClassifier
+  { _glueClassifierCsvClassifierAllowSingleColumn :: Maybe (Val Bool)
+  , _glueClassifierCsvClassifierContainsHeader :: Maybe (Val Text)
+  , _glueClassifierCsvClassifierDelimiter :: Maybe (Val Text)
+  , _glueClassifierCsvClassifierDisableValueTrimming :: Maybe (Val Bool)
+  , _glueClassifierCsvClassifierHeader :: Maybe (ValList Text)
+  , _glueClassifierCsvClassifierName :: Maybe (Val Text)
+  , _glueClassifierCsvClassifierQuoteSymbol :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON GlueClassifierCsvClassifier where
+  toJSON GlueClassifierCsvClassifier{..} =
+    object $
+    catMaybes
+    [ fmap (("AllowSingleColumn",) . toJSON) _glueClassifierCsvClassifierAllowSingleColumn
+    , fmap (("ContainsHeader",) . toJSON) _glueClassifierCsvClassifierContainsHeader
+    , fmap (("Delimiter",) . toJSON) _glueClassifierCsvClassifierDelimiter
+    , fmap (("DisableValueTrimming",) . toJSON) _glueClassifierCsvClassifierDisableValueTrimming
+    , fmap (("Header",) . toJSON) _glueClassifierCsvClassifierHeader
+    , fmap (("Name",) . toJSON) _glueClassifierCsvClassifierName
+    , fmap (("QuoteSymbol",) . toJSON) _glueClassifierCsvClassifierQuoteSymbol
+    ]
+
+-- | Constructor for 'GlueClassifierCsvClassifier' containing required fields
+-- as arguments.
+glueClassifierCsvClassifier
+  :: GlueClassifierCsvClassifier
+glueClassifierCsvClassifier  =
+  GlueClassifierCsvClassifier
+  { _glueClassifierCsvClassifierAllowSingleColumn = Nothing
+  , _glueClassifierCsvClassifierContainsHeader = Nothing
+  , _glueClassifierCsvClassifierDelimiter = Nothing
+  , _glueClassifierCsvClassifierDisableValueTrimming = Nothing
+  , _glueClassifierCsvClassifierHeader = Nothing
+  , _glueClassifierCsvClassifierName = Nothing
+  , _glueClassifierCsvClassifierQuoteSymbol = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-csvclassifier.html#cfn-glue-classifier-csvclassifier-allowsinglecolumn
+gcccAllowSingleColumn :: Lens' GlueClassifierCsvClassifier (Maybe (Val Bool))
+gcccAllowSingleColumn = lens _glueClassifierCsvClassifierAllowSingleColumn (\s a -> s { _glueClassifierCsvClassifierAllowSingleColumn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-csvclassifier.html#cfn-glue-classifier-csvclassifier-containsheader
+gcccContainsHeader :: Lens' GlueClassifierCsvClassifier (Maybe (Val Text))
+gcccContainsHeader = lens _glueClassifierCsvClassifierContainsHeader (\s a -> s { _glueClassifierCsvClassifierContainsHeader = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-csvclassifier.html#cfn-glue-classifier-csvclassifier-delimiter
+gcccDelimiter :: Lens' GlueClassifierCsvClassifier (Maybe (Val Text))
+gcccDelimiter = lens _glueClassifierCsvClassifierDelimiter (\s a -> s { _glueClassifierCsvClassifierDelimiter = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-csvclassifier.html#cfn-glue-classifier-csvclassifier-disablevaluetrimming
+gcccDisableValueTrimming :: Lens' GlueClassifierCsvClassifier (Maybe (Val Bool))
+gcccDisableValueTrimming = lens _glueClassifierCsvClassifierDisableValueTrimming (\s a -> s { _glueClassifierCsvClassifierDisableValueTrimming = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-csvclassifier.html#cfn-glue-classifier-csvclassifier-header
+gcccHeader :: Lens' GlueClassifierCsvClassifier (Maybe (ValList Text))
+gcccHeader = lens _glueClassifierCsvClassifierHeader (\s a -> s { _glueClassifierCsvClassifierHeader = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-csvclassifier.html#cfn-glue-classifier-csvclassifier-name
+gcccName :: Lens' GlueClassifierCsvClassifier (Maybe (Val Text))
+gcccName = lens _glueClassifierCsvClassifierName (\s a -> s { _glueClassifierCsvClassifierName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-csvclassifier.html#cfn-glue-classifier-csvclassifier-quotesymbol
+gcccQuoteSymbol :: Lens' GlueClassifierCsvClassifier (Maybe (Val Text))
+gcccQuoteSymbol = lens _glueClassifierCsvClassifierQuoteSymbol (\s a -> s { _glueClassifierCsvClassifierQuoteSymbol = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/GlueDataCatalogEncryptionSettingsConnectionPasswordEncryption.hs b/library-gen/Stratosphere/ResourceProperties/GlueDataCatalogEncryptionSettingsConnectionPasswordEncryption.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/GlueDataCatalogEncryptionSettingsConnectionPasswordEncryption.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-connectionpasswordencryption.html
+
+module Stratosphere.ResourceProperties.GlueDataCatalogEncryptionSettingsConnectionPasswordEncryption where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- GlueDataCatalogEncryptionSettingsConnectionPasswordEncryption. See
+-- 'glueDataCatalogEncryptionSettingsConnectionPasswordEncryption' for a
+-- more convenient constructor.
+data GlueDataCatalogEncryptionSettingsConnectionPasswordEncryption =
+  GlueDataCatalogEncryptionSettingsConnectionPasswordEncryption
+  { _glueDataCatalogEncryptionSettingsConnectionPasswordEncryptionKmsKeyId :: Maybe (Val Text)
+  , _glueDataCatalogEncryptionSettingsConnectionPasswordEncryptionReturnConnectionPasswordEncrypted :: Maybe (Val Bool)
+  } deriving (Show, Eq)
+
+instance ToJSON GlueDataCatalogEncryptionSettingsConnectionPasswordEncryption where
+  toJSON GlueDataCatalogEncryptionSettingsConnectionPasswordEncryption{..} =
+    object $
+    catMaybes
+    [ fmap (("KmsKeyId",) . toJSON) _glueDataCatalogEncryptionSettingsConnectionPasswordEncryptionKmsKeyId
+    , fmap (("ReturnConnectionPasswordEncrypted",) . toJSON) _glueDataCatalogEncryptionSettingsConnectionPasswordEncryptionReturnConnectionPasswordEncrypted
+    ]
+
+-- | Constructor for
+-- 'GlueDataCatalogEncryptionSettingsConnectionPasswordEncryption'
+-- containing required fields as arguments.
+glueDataCatalogEncryptionSettingsConnectionPasswordEncryption
+  :: GlueDataCatalogEncryptionSettingsConnectionPasswordEncryption
+glueDataCatalogEncryptionSettingsConnectionPasswordEncryption  =
+  GlueDataCatalogEncryptionSettingsConnectionPasswordEncryption
+  { _glueDataCatalogEncryptionSettingsConnectionPasswordEncryptionKmsKeyId = Nothing
+  , _glueDataCatalogEncryptionSettingsConnectionPasswordEncryptionReturnConnectionPasswordEncrypted = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-connectionpasswordencryption.html#cfn-glue-datacatalogencryptionsettings-connectionpasswordencryption-kmskeyid
+gdcescpeKmsKeyId :: Lens' GlueDataCatalogEncryptionSettingsConnectionPasswordEncryption (Maybe (Val Text))
+gdcescpeKmsKeyId = lens _glueDataCatalogEncryptionSettingsConnectionPasswordEncryptionKmsKeyId (\s a -> s { _glueDataCatalogEncryptionSettingsConnectionPasswordEncryptionKmsKeyId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-connectionpasswordencryption.html#cfn-glue-datacatalogencryptionsettings-connectionpasswordencryption-returnconnectionpasswordencrypted
+gdcescpeReturnConnectionPasswordEncrypted :: Lens' GlueDataCatalogEncryptionSettingsConnectionPasswordEncryption (Maybe (Val Bool))
+gdcescpeReturnConnectionPasswordEncrypted = lens _glueDataCatalogEncryptionSettingsConnectionPasswordEncryptionReturnConnectionPasswordEncrypted (\s a -> s { _glueDataCatalogEncryptionSettingsConnectionPasswordEncryptionReturnConnectionPasswordEncrypted = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/GlueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings.hs b/library-gen/Stratosphere/ResourceProperties/GlueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/GlueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings.hs
@@ -0,0 +1,49 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-datacatalogencryptionsettings.html
+
+module Stratosphere.ResourceProperties.GlueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.GlueDataCatalogEncryptionSettingsConnectionPasswordEncryption
+import Stratosphere.ResourceProperties.GlueDataCatalogEncryptionSettingsEncryptionAtRest
+
+-- | Full data type definition for
+-- GlueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings. See
+-- 'glueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings' for a
+-- more convenient constructor.
+data GlueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings =
+  GlueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings
+  { _glueDataCatalogEncryptionSettingsDataCatalogEncryptionSettingsConnectionPasswordEncryption :: Maybe GlueDataCatalogEncryptionSettingsConnectionPasswordEncryption
+  , _glueDataCatalogEncryptionSettingsDataCatalogEncryptionSettingsEncryptionAtRest :: Maybe GlueDataCatalogEncryptionSettingsEncryptionAtRest
+  } deriving (Show, Eq)
+
+instance ToJSON GlueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings where
+  toJSON GlueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings{..} =
+    object $
+    catMaybes
+    [ fmap (("ConnectionPasswordEncryption",) . toJSON) _glueDataCatalogEncryptionSettingsDataCatalogEncryptionSettingsConnectionPasswordEncryption
+    , fmap (("EncryptionAtRest",) . toJSON) _glueDataCatalogEncryptionSettingsDataCatalogEncryptionSettingsEncryptionAtRest
+    ]
+
+-- | Constructor for
+-- 'GlueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings'
+-- containing required fields as arguments.
+glueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings
+  :: GlueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings
+glueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings  =
+  GlueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings
+  { _glueDataCatalogEncryptionSettingsDataCatalogEncryptionSettingsConnectionPasswordEncryption = Nothing
+  , _glueDataCatalogEncryptionSettingsDataCatalogEncryptionSettingsEncryptionAtRest = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-datacatalogencryptionsettings.html#cfn-glue-datacatalogencryptionsettings-datacatalogencryptionsettings-connectionpasswordencryption
+gdcesdcesConnectionPasswordEncryption :: Lens' GlueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings (Maybe GlueDataCatalogEncryptionSettingsConnectionPasswordEncryption)
+gdcesdcesConnectionPasswordEncryption = lens _glueDataCatalogEncryptionSettingsDataCatalogEncryptionSettingsConnectionPasswordEncryption (\s a -> s { _glueDataCatalogEncryptionSettingsDataCatalogEncryptionSettingsConnectionPasswordEncryption = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-datacatalogencryptionsettings.html#cfn-glue-datacatalogencryptionsettings-datacatalogencryptionsettings-encryptionatrest
+gdcesdcesEncryptionAtRest :: Lens' GlueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings (Maybe GlueDataCatalogEncryptionSettingsEncryptionAtRest)
+gdcesdcesEncryptionAtRest = lens _glueDataCatalogEncryptionSettingsDataCatalogEncryptionSettingsEncryptionAtRest (\s a -> s { _glueDataCatalogEncryptionSettingsDataCatalogEncryptionSettingsEncryptionAtRest = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/GlueDataCatalogEncryptionSettingsEncryptionAtRest.hs b/library-gen/Stratosphere/ResourceProperties/GlueDataCatalogEncryptionSettingsEncryptionAtRest.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/GlueDataCatalogEncryptionSettingsEncryptionAtRest.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-encryptionatrest.html
+
+module Stratosphere.ResourceProperties.GlueDataCatalogEncryptionSettingsEncryptionAtRest where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- GlueDataCatalogEncryptionSettingsEncryptionAtRest. See
+-- 'glueDataCatalogEncryptionSettingsEncryptionAtRest' for a more convenient
+-- constructor.
+data GlueDataCatalogEncryptionSettingsEncryptionAtRest =
+  GlueDataCatalogEncryptionSettingsEncryptionAtRest
+  { _glueDataCatalogEncryptionSettingsEncryptionAtRestCatalogEncryptionMode :: Maybe (Val Text)
+  , _glueDataCatalogEncryptionSettingsEncryptionAtRestSseAwsKmsKeyId :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON GlueDataCatalogEncryptionSettingsEncryptionAtRest where
+  toJSON GlueDataCatalogEncryptionSettingsEncryptionAtRest{..} =
+    object $
+    catMaybes
+    [ fmap (("CatalogEncryptionMode",) . toJSON) _glueDataCatalogEncryptionSettingsEncryptionAtRestCatalogEncryptionMode
+    , fmap (("SseAwsKmsKeyId",) . toJSON) _glueDataCatalogEncryptionSettingsEncryptionAtRestSseAwsKmsKeyId
+    ]
+
+-- | Constructor for 'GlueDataCatalogEncryptionSettingsEncryptionAtRest'
+-- containing required fields as arguments.
+glueDataCatalogEncryptionSettingsEncryptionAtRest
+  :: GlueDataCatalogEncryptionSettingsEncryptionAtRest
+glueDataCatalogEncryptionSettingsEncryptionAtRest  =
+  GlueDataCatalogEncryptionSettingsEncryptionAtRest
+  { _glueDataCatalogEncryptionSettingsEncryptionAtRestCatalogEncryptionMode = Nothing
+  , _glueDataCatalogEncryptionSettingsEncryptionAtRestSseAwsKmsKeyId = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-encryptionatrest.html#cfn-glue-datacatalogencryptionsettings-encryptionatrest-catalogencryptionmode
+gdcesearCatalogEncryptionMode :: Lens' GlueDataCatalogEncryptionSettingsEncryptionAtRest (Maybe (Val Text))
+gdcesearCatalogEncryptionMode = lens _glueDataCatalogEncryptionSettingsEncryptionAtRestCatalogEncryptionMode (\s a -> s { _glueDataCatalogEncryptionSettingsEncryptionAtRestCatalogEncryptionMode = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-encryptionatrest.html#cfn-glue-datacatalogencryptionsettings-encryptionatrest-sseawskmskeyid
+gdcesearSseAwsKmsKeyId :: Lens' GlueDataCatalogEncryptionSettingsEncryptionAtRest (Maybe (Val Text))
+gdcesearSseAwsKmsKeyId = lens _glueDataCatalogEncryptionSettingsEncryptionAtRestSseAwsKmsKeyId (\s a -> s { _glueDataCatalogEncryptionSettingsEncryptionAtRestSseAwsKmsKeyId = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/GlueSecurityConfigurationCloudWatchEncryption.hs b/library-gen/Stratosphere/ResourceProperties/GlueSecurityConfigurationCloudWatchEncryption.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/GlueSecurityConfigurationCloudWatchEncryption.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-cloudwatchencryption.html
+
+module Stratosphere.ResourceProperties.GlueSecurityConfigurationCloudWatchEncryption where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- GlueSecurityConfigurationCloudWatchEncryption. See
+-- 'glueSecurityConfigurationCloudWatchEncryption' for a more convenient
+-- constructor.
+data GlueSecurityConfigurationCloudWatchEncryption =
+  GlueSecurityConfigurationCloudWatchEncryption
+  { _glueSecurityConfigurationCloudWatchEncryptionCloudWatchEncryptionMode :: Maybe (Val Text)
+  , _glueSecurityConfigurationCloudWatchEncryptionKmsKeyArn :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON GlueSecurityConfigurationCloudWatchEncryption where
+  toJSON GlueSecurityConfigurationCloudWatchEncryption{..} =
+    object $
+    catMaybes
+    [ fmap (("CloudWatchEncryptionMode",) . toJSON) _glueSecurityConfigurationCloudWatchEncryptionCloudWatchEncryptionMode
+    , fmap (("KmsKeyArn",) . toJSON) _glueSecurityConfigurationCloudWatchEncryptionKmsKeyArn
+    ]
+
+-- | Constructor for 'GlueSecurityConfigurationCloudWatchEncryption'
+-- containing required fields as arguments.
+glueSecurityConfigurationCloudWatchEncryption
+  :: GlueSecurityConfigurationCloudWatchEncryption
+glueSecurityConfigurationCloudWatchEncryption  =
+  GlueSecurityConfigurationCloudWatchEncryption
+  { _glueSecurityConfigurationCloudWatchEncryptionCloudWatchEncryptionMode = Nothing
+  , _glueSecurityConfigurationCloudWatchEncryptionKmsKeyArn = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-cloudwatchencryption.html#cfn-glue-securityconfiguration-cloudwatchencryption-cloudwatchencryptionmode
+gsccweCloudWatchEncryptionMode :: Lens' GlueSecurityConfigurationCloudWatchEncryption (Maybe (Val Text))
+gsccweCloudWatchEncryptionMode = lens _glueSecurityConfigurationCloudWatchEncryptionCloudWatchEncryptionMode (\s a -> s { _glueSecurityConfigurationCloudWatchEncryptionCloudWatchEncryptionMode = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-cloudwatchencryption.html#cfn-glue-securityconfiguration-cloudwatchencryption-kmskeyarn
+gsccweKmsKeyArn :: Lens' GlueSecurityConfigurationCloudWatchEncryption (Maybe (Val Text))
+gsccweKmsKeyArn = lens _glueSecurityConfigurationCloudWatchEncryptionKmsKeyArn (\s a -> s { _glueSecurityConfigurationCloudWatchEncryptionKmsKeyArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/GlueSecurityConfigurationEncryptionConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/GlueSecurityConfigurationEncryptionConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/GlueSecurityConfigurationEncryptionConfiguration.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-encryptionconfiguration.html
+
+module Stratosphere.ResourceProperties.GlueSecurityConfigurationEncryptionConfiguration where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.GlueSecurityConfigurationCloudWatchEncryption
+import Stratosphere.ResourceProperties.GlueSecurityConfigurationJobBookmarksEncryption
+
+-- | Full data type definition for
+-- GlueSecurityConfigurationEncryptionConfiguration. See
+-- 'glueSecurityConfigurationEncryptionConfiguration' for a more convenient
+-- constructor.
+data GlueSecurityConfigurationEncryptionConfiguration =
+  GlueSecurityConfigurationEncryptionConfiguration
+  { _glueSecurityConfigurationEncryptionConfigurationCloudWatchEncryption :: Maybe GlueSecurityConfigurationCloudWatchEncryption
+  , _glueSecurityConfigurationEncryptionConfigurationJobBookmarksEncryption :: Maybe GlueSecurityConfigurationJobBookmarksEncryption
+  } deriving (Show, Eq)
+
+instance ToJSON GlueSecurityConfigurationEncryptionConfiguration where
+  toJSON GlueSecurityConfigurationEncryptionConfiguration{..} =
+    object $
+    catMaybes
+    [ fmap (("CloudWatchEncryption",) . toJSON) _glueSecurityConfigurationEncryptionConfigurationCloudWatchEncryption
+    , fmap (("JobBookmarksEncryption",) . toJSON) _glueSecurityConfigurationEncryptionConfigurationJobBookmarksEncryption
+    ]
+
+-- | Constructor for 'GlueSecurityConfigurationEncryptionConfiguration'
+-- containing required fields as arguments.
+glueSecurityConfigurationEncryptionConfiguration
+  :: GlueSecurityConfigurationEncryptionConfiguration
+glueSecurityConfigurationEncryptionConfiguration  =
+  GlueSecurityConfigurationEncryptionConfiguration
+  { _glueSecurityConfigurationEncryptionConfigurationCloudWatchEncryption = Nothing
+  , _glueSecurityConfigurationEncryptionConfigurationJobBookmarksEncryption = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-encryptionconfiguration.html#cfn-glue-securityconfiguration-encryptionconfiguration-cloudwatchencryption
+gscecCloudWatchEncryption :: Lens' GlueSecurityConfigurationEncryptionConfiguration (Maybe GlueSecurityConfigurationCloudWatchEncryption)
+gscecCloudWatchEncryption = lens _glueSecurityConfigurationEncryptionConfigurationCloudWatchEncryption (\s a -> s { _glueSecurityConfigurationEncryptionConfigurationCloudWatchEncryption = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-encryptionconfiguration.html#cfn-glue-securityconfiguration-encryptionconfiguration-jobbookmarksencryption
+gscecJobBookmarksEncryption :: Lens' GlueSecurityConfigurationEncryptionConfiguration (Maybe GlueSecurityConfigurationJobBookmarksEncryption)
+gscecJobBookmarksEncryption = lens _glueSecurityConfigurationEncryptionConfigurationJobBookmarksEncryption (\s a -> s { _glueSecurityConfigurationEncryptionConfigurationJobBookmarksEncryption = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/GlueSecurityConfigurationJobBookmarksEncryption.hs b/library-gen/Stratosphere/ResourceProperties/GlueSecurityConfigurationJobBookmarksEncryption.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/GlueSecurityConfigurationJobBookmarksEncryption.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-jobbookmarksencryption.html
+
+module Stratosphere.ResourceProperties.GlueSecurityConfigurationJobBookmarksEncryption where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- GlueSecurityConfigurationJobBookmarksEncryption. See
+-- 'glueSecurityConfigurationJobBookmarksEncryption' for a more convenient
+-- constructor.
+data GlueSecurityConfigurationJobBookmarksEncryption =
+  GlueSecurityConfigurationJobBookmarksEncryption
+  { _glueSecurityConfigurationJobBookmarksEncryptionJobBookmarksEncryptionMode :: Maybe (Val Text)
+  , _glueSecurityConfigurationJobBookmarksEncryptionKmsKeyArn :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON GlueSecurityConfigurationJobBookmarksEncryption where
+  toJSON GlueSecurityConfigurationJobBookmarksEncryption{..} =
+    object $
+    catMaybes
+    [ fmap (("JobBookmarksEncryptionMode",) . toJSON) _glueSecurityConfigurationJobBookmarksEncryptionJobBookmarksEncryptionMode
+    , fmap (("KmsKeyArn",) . toJSON) _glueSecurityConfigurationJobBookmarksEncryptionKmsKeyArn
+    ]
+
+-- | Constructor for 'GlueSecurityConfigurationJobBookmarksEncryption'
+-- containing required fields as arguments.
+glueSecurityConfigurationJobBookmarksEncryption
+  :: GlueSecurityConfigurationJobBookmarksEncryption
+glueSecurityConfigurationJobBookmarksEncryption  =
+  GlueSecurityConfigurationJobBookmarksEncryption
+  { _glueSecurityConfigurationJobBookmarksEncryptionJobBookmarksEncryptionMode = Nothing
+  , _glueSecurityConfigurationJobBookmarksEncryptionKmsKeyArn = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-jobbookmarksencryption.html#cfn-glue-securityconfiguration-jobbookmarksencryption-jobbookmarksencryptionmode
+gscjbeJobBookmarksEncryptionMode :: Lens' GlueSecurityConfigurationJobBookmarksEncryption (Maybe (Val Text))
+gscjbeJobBookmarksEncryptionMode = lens _glueSecurityConfigurationJobBookmarksEncryptionJobBookmarksEncryptionMode (\s a -> s { _glueSecurityConfigurationJobBookmarksEncryptionJobBookmarksEncryptionMode = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-jobbookmarksencryption.html#cfn-glue-securityconfiguration-jobbookmarksencryption-kmskeyarn
+gscjbeKmsKeyArn :: Lens' GlueSecurityConfigurationJobBookmarksEncryption (Maybe (Val Text))
+gscjbeKmsKeyArn = lens _glueSecurityConfigurationJobBookmarksEncryptionKmsKeyArn (\s a -> s { _glueSecurityConfigurationJobBookmarksEncryptionKmsKeyArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/GlueSecurityConfigurationS3Encryption.hs b/library-gen/Stratosphere/ResourceProperties/GlueSecurityConfigurationS3Encryption.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/GlueSecurityConfigurationS3Encryption.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-s3encryption.html
+
+module Stratosphere.ResourceProperties.GlueSecurityConfigurationS3Encryption where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for GlueSecurityConfigurationS3Encryption. See
+-- 'glueSecurityConfigurationS3Encryption' for a more convenient
+-- constructor.
+data GlueSecurityConfigurationS3Encryption =
+  GlueSecurityConfigurationS3Encryption
+  { _glueSecurityConfigurationS3EncryptionKmsKeyArn :: Maybe (Val Text)
+  , _glueSecurityConfigurationS3EncryptionS3EncryptionMode :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON GlueSecurityConfigurationS3Encryption where
+  toJSON GlueSecurityConfigurationS3Encryption{..} =
+    object $
+    catMaybes
+    [ fmap (("KmsKeyArn",) . toJSON) _glueSecurityConfigurationS3EncryptionKmsKeyArn
+    , fmap (("S3EncryptionMode",) . toJSON) _glueSecurityConfigurationS3EncryptionS3EncryptionMode
+    ]
+
+-- | Constructor for 'GlueSecurityConfigurationS3Encryption' containing
+-- required fields as arguments.
+glueSecurityConfigurationS3Encryption
+  :: GlueSecurityConfigurationS3Encryption
+glueSecurityConfigurationS3Encryption  =
+  GlueSecurityConfigurationS3Encryption
+  { _glueSecurityConfigurationS3EncryptionKmsKeyArn = Nothing
+  , _glueSecurityConfigurationS3EncryptionS3EncryptionMode = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-s3encryption.html#cfn-glue-securityconfiguration-s3encryption-kmskeyarn
+gscseKmsKeyArn :: Lens' GlueSecurityConfigurationS3Encryption (Maybe (Val Text))
+gscseKmsKeyArn = lens _glueSecurityConfigurationS3EncryptionKmsKeyArn (\s a -> s { _glueSecurityConfigurationS3EncryptionKmsKeyArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-s3encryption.html#cfn-glue-securityconfiguration-s3encryption-s3encryptionmode
+gscseS3EncryptionMode :: Lens' GlueSecurityConfigurationS3Encryption (Maybe (Val Text))
+gscseS3EncryptionMode = lens _glueSecurityConfigurationS3EncryptionS3EncryptionMode (\s a -> s { _glueSecurityConfigurationS3EncryptionS3EncryptionMode = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/GlueTriggerAction.hs b/library-gen/Stratosphere/ResourceProperties/GlueTriggerAction.hs
--- a/library-gen/Stratosphere/ResourceProperties/GlueTriggerAction.hs
+++ b/library-gen/Stratosphere/ResourceProperties/GlueTriggerAction.hs
@@ -16,6 +16,7 @@
   GlueTriggerAction
   { _glueTriggerActionArguments :: Maybe Object
   , _glueTriggerActionJobName :: Maybe (Val Text)
+  , _glueTriggerActionSecurityConfiguration :: Maybe (Val Text)
   } deriving (Show, Eq)
 
 instance ToJSON GlueTriggerAction where
@@ -24,6 +25,7 @@
     catMaybes
     [ fmap (("Arguments",) . toJSON) _glueTriggerActionArguments
     , fmap (("JobName",) . toJSON) _glueTriggerActionJobName
+    , fmap (("SecurityConfiguration",) . toJSON) _glueTriggerActionSecurityConfiguration
     ]
 
 -- | Constructor for 'GlueTriggerAction' containing required fields as
@@ -34,6 +36,7 @@
   GlueTriggerAction
   { _glueTriggerActionArguments = Nothing
   , _glueTriggerActionJobName = Nothing
+  , _glueTriggerActionSecurityConfiguration = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-action.html#cfn-glue-trigger-action-arguments
@@ -43,3 +46,7 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-action.html#cfn-glue-trigger-action-jobname
 gtaJobName :: Lens' GlueTriggerAction (Maybe (Val Text))
 gtaJobName = lens _glueTriggerActionJobName (\s a -> s { _glueTriggerActionJobName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-action.html#cfn-glue-trigger-action-securityconfiguration
+gtaSecurityConfiguration :: Lens' GlueTriggerAction (Maybe (Val Text))
+gtaSecurityConfiguration = lens _glueTriggerActionSecurityConfiguration (\s a -> s { _glueTriggerActionSecurityConfiguration = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaStoreContainerCorsRule.hs b/library-gen/Stratosphere/ResourceProperties/MediaStoreContainerCorsRule.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaStoreContainerCorsRule.hs
@@ -0,0 +1,66 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-corsrule.html
+
+module Stratosphere.ResourceProperties.MediaStoreContainerCorsRule where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for MediaStoreContainerCorsRule. See
+-- 'mediaStoreContainerCorsRule' for a more convenient constructor.
+data MediaStoreContainerCorsRule =
+  MediaStoreContainerCorsRule
+  { _mediaStoreContainerCorsRuleAllowedHeaders :: Maybe (ValList Text)
+  , _mediaStoreContainerCorsRuleAllowedMethods :: Maybe (ValList Text)
+  , _mediaStoreContainerCorsRuleAllowedOrigins :: Maybe (ValList Text)
+  , _mediaStoreContainerCorsRuleExposeHeaders :: Maybe (ValList Text)
+  , _mediaStoreContainerCorsRuleMaxAgeSeconds :: Maybe (Val Integer)
+  } deriving (Show, Eq)
+
+instance ToJSON MediaStoreContainerCorsRule where
+  toJSON MediaStoreContainerCorsRule{..} =
+    object $
+    catMaybes
+    [ fmap (("AllowedHeaders",) . toJSON) _mediaStoreContainerCorsRuleAllowedHeaders
+    , fmap (("AllowedMethods",) . toJSON) _mediaStoreContainerCorsRuleAllowedMethods
+    , fmap (("AllowedOrigins",) . toJSON) _mediaStoreContainerCorsRuleAllowedOrigins
+    , fmap (("ExposeHeaders",) . toJSON) _mediaStoreContainerCorsRuleExposeHeaders
+    , fmap (("MaxAgeSeconds",) . toJSON) _mediaStoreContainerCorsRuleMaxAgeSeconds
+    ]
+
+-- | Constructor for 'MediaStoreContainerCorsRule' containing required fields
+-- as arguments.
+mediaStoreContainerCorsRule
+  :: MediaStoreContainerCorsRule
+mediaStoreContainerCorsRule  =
+  MediaStoreContainerCorsRule
+  { _mediaStoreContainerCorsRuleAllowedHeaders = Nothing
+  , _mediaStoreContainerCorsRuleAllowedMethods = Nothing
+  , _mediaStoreContainerCorsRuleAllowedOrigins = Nothing
+  , _mediaStoreContainerCorsRuleExposeHeaders = Nothing
+  , _mediaStoreContainerCorsRuleMaxAgeSeconds = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-corsrule.html#cfn-mediastore-container-corsrule-allowedheaders
+msccrAllowedHeaders :: Lens' MediaStoreContainerCorsRule (Maybe (ValList Text))
+msccrAllowedHeaders = lens _mediaStoreContainerCorsRuleAllowedHeaders (\s a -> s { _mediaStoreContainerCorsRuleAllowedHeaders = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-corsrule.html#cfn-mediastore-container-corsrule-allowedmethods
+msccrAllowedMethods :: Lens' MediaStoreContainerCorsRule (Maybe (ValList Text))
+msccrAllowedMethods = lens _mediaStoreContainerCorsRuleAllowedMethods (\s a -> s { _mediaStoreContainerCorsRuleAllowedMethods = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-corsrule.html#cfn-mediastore-container-corsrule-allowedorigins
+msccrAllowedOrigins :: Lens' MediaStoreContainerCorsRule (Maybe (ValList Text))
+msccrAllowedOrigins = lens _mediaStoreContainerCorsRuleAllowedOrigins (\s a -> s { _mediaStoreContainerCorsRuleAllowedOrigins = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-corsrule.html#cfn-mediastore-container-corsrule-exposeheaders
+msccrExposeHeaders :: Lens' MediaStoreContainerCorsRule (Maybe (ValList Text))
+msccrExposeHeaders = lens _mediaStoreContainerCorsRuleExposeHeaders (\s a -> s { _mediaStoreContainerCorsRuleExposeHeaders = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-corsrule.html#cfn-mediastore-container-corsrule-maxageseconds
+msccrMaxAgeSeconds :: Lens' MediaStoreContainerCorsRule (Maybe (Val Integer))
+msccrMaxAgeSeconds = lens _mediaStoreContainerCorsRuleMaxAgeSeconds (\s a -> s { _mediaStoreContainerCorsRuleMaxAgeSeconds = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetDeliveryOptions.hs b/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetDeliveryOptions.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetDeliveryOptions.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-deliveryoptions.html
+
+module Stratosphere.ResourceProperties.PinpointEmailConfigurationSetDeliveryOptions where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- PinpointEmailConfigurationSetDeliveryOptions. See
+-- 'pinpointEmailConfigurationSetDeliveryOptions' for a more convenient
+-- constructor.
+data PinpointEmailConfigurationSetDeliveryOptions =
+  PinpointEmailConfigurationSetDeliveryOptions
+  { _pinpointEmailConfigurationSetDeliveryOptionsSendingPoolName :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON PinpointEmailConfigurationSetDeliveryOptions where
+  toJSON PinpointEmailConfigurationSetDeliveryOptions{..} =
+    object $
+    catMaybes
+    [ fmap (("SendingPoolName",) . toJSON) _pinpointEmailConfigurationSetDeliveryOptionsSendingPoolName
+    ]
+
+-- | Constructor for 'PinpointEmailConfigurationSetDeliveryOptions' containing
+-- required fields as arguments.
+pinpointEmailConfigurationSetDeliveryOptions
+  :: PinpointEmailConfigurationSetDeliveryOptions
+pinpointEmailConfigurationSetDeliveryOptions  =
+  PinpointEmailConfigurationSetDeliveryOptions
+  { _pinpointEmailConfigurationSetDeliveryOptionsSendingPoolName = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-deliveryoptions.html#cfn-pinpointemail-configurationset-deliveryoptions-sendingpoolname
+pecsdoSendingPoolName :: Lens' PinpointEmailConfigurationSetDeliveryOptions (Maybe (Val Text))
+pecsdoSendingPoolName = lens _pinpointEmailConfigurationSetDeliveryOptionsSendingPoolName (\s a -> s { _pinpointEmailConfigurationSetDeliveryOptionsSendingPoolName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetEventDestinationCloudWatchDestination.hs b/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetEventDestinationCloudWatchDestination.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetEventDestinationCloudWatchDestination.hs
@@ -0,0 +1,41 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-cloudwatchdestination.html
+
+module Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationCloudWatchDestination where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationDimensionConfiguration
+
+-- | Full data type definition for
+-- PinpointEmailConfigurationSetEventDestinationCloudWatchDestination. See
+-- 'pinpointEmailConfigurationSetEventDestinationCloudWatchDestination' for
+-- a more convenient constructor.
+data PinpointEmailConfigurationSetEventDestinationCloudWatchDestination =
+  PinpointEmailConfigurationSetEventDestinationCloudWatchDestination
+  { _pinpointEmailConfigurationSetEventDestinationCloudWatchDestinationDimensionConfigurations :: Maybe [PinpointEmailConfigurationSetEventDestinationDimensionConfiguration]
+  } deriving (Show, Eq)
+
+instance ToJSON PinpointEmailConfigurationSetEventDestinationCloudWatchDestination where
+  toJSON PinpointEmailConfigurationSetEventDestinationCloudWatchDestination{..} =
+    object $
+    catMaybes
+    [ fmap (("DimensionConfigurations",) . toJSON) _pinpointEmailConfigurationSetEventDestinationCloudWatchDestinationDimensionConfigurations
+    ]
+
+-- | Constructor for
+-- 'PinpointEmailConfigurationSetEventDestinationCloudWatchDestination'
+-- containing required fields as arguments.
+pinpointEmailConfigurationSetEventDestinationCloudWatchDestination
+  :: PinpointEmailConfigurationSetEventDestinationCloudWatchDestination
+pinpointEmailConfigurationSetEventDestinationCloudWatchDestination  =
+  PinpointEmailConfigurationSetEventDestinationCloudWatchDestination
+  { _pinpointEmailConfigurationSetEventDestinationCloudWatchDestinationDimensionConfigurations = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-cloudwatchdestination.html#cfn-pinpointemail-configurationseteventdestination-cloudwatchdestination-dimensionconfigurations
+pecsedcwdDimensionConfigurations :: Lens' PinpointEmailConfigurationSetEventDestinationCloudWatchDestination (Maybe [PinpointEmailConfigurationSetEventDestinationDimensionConfiguration])
+pecsedcwdDimensionConfigurations = lens _pinpointEmailConfigurationSetEventDestinationCloudWatchDestinationDimensionConfigurations (\s a -> s { _pinpointEmailConfigurationSetEventDestinationCloudWatchDestinationDimensionConfigurations = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetEventDestinationDimensionConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetEventDestinationDimensionConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetEventDestinationDimensionConfiguration.hs
@@ -0,0 +1,58 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-dimensionconfiguration.html
+
+module Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationDimensionConfiguration where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- PinpointEmailConfigurationSetEventDestinationDimensionConfiguration. See
+-- 'pinpointEmailConfigurationSetEventDestinationDimensionConfiguration' for
+-- a more convenient constructor.
+data PinpointEmailConfigurationSetEventDestinationDimensionConfiguration =
+  PinpointEmailConfigurationSetEventDestinationDimensionConfiguration
+  { _pinpointEmailConfigurationSetEventDestinationDimensionConfigurationDefaultDimensionValue :: Val Text
+  , _pinpointEmailConfigurationSetEventDestinationDimensionConfigurationDimensionName :: Val Text
+  , _pinpointEmailConfigurationSetEventDestinationDimensionConfigurationDimensionValueSource :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON PinpointEmailConfigurationSetEventDestinationDimensionConfiguration where
+  toJSON PinpointEmailConfigurationSetEventDestinationDimensionConfiguration{..} =
+    object $
+    catMaybes
+    [ (Just . ("DefaultDimensionValue",) . toJSON) _pinpointEmailConfigurationSetEventDestinationDimensionConfigurationDefaultDimensionValue
+    , (Just . ("DimensionName",) . toJSON) _pinpointEmailConfigurationSetEventDestinationDimensionConfigurationDimensionName
+    , (Just . ("DimensionValueSource",) . toJSON) _pinpointEmailConfigurationSetEventDestinationDimensionConfigurationDimensionValueSource
+    ]
+
+-- | Constructor for
+-- 'PinpointEmailConfigurationSetEventDestinationDimensionConfiguration'
+-- containing required fields as arguments.
+pinpointEmailConfigurationSetEventDestinationDimensionConfiguration
+  :: Val Text -- ^ 'pecseddcDefaultDimensionValue'
+  -> Val Text -- ^ 'pecseddcDimensionName'
+  -> Val Text -- ^ 'pecseddcDimensionValueSource'
+  -> PinpointEmailConfigurationSetEventDestinationDimensionConfiguration
+pinpointEmailConfigurationSetEventDestinationDimensionConfiguration defaultDimensionValuearg dimensionNamearg dimensionValueSourcearg =
+  PinpointEmailConfigurationSetEventDestinationDimensionConfiguration
+  { _pinpointEmailConfigurationSetEventDestinationDimensionConfigurationDefaultDimensionValue = defaultDimensionValuearg
+  , _pinpointEmailConfigurationSetEventDestinationDimensionConfigurationDimensionName = dimensionNamearg
+  , _pinpointEmailConfigurationSetEventDestinationDimensionConfigurationDimensionValueSource = dimensionValueSourcearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-dimensionconfiguration.html#cfn-pinpointemail-configurationseteventdestination-dimensionconfiguration-defaultdimensionvalue
+pecseddcDefaultDimensionValue :: Lens' PinpointEmailConfigurationSetEventDestinationDimensionConfiguration (Val Text)
+pecseddcDefaultDimensionValue = lens _pinpointEmailConfigurationSetEventDestinationDimensionConfigurationDefaultDimensionValue (\s a -> s { _pinpointEmailConfigurationSetEventDestinationDimensionConfigurationDefaultDimensionValue = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-dimensionconfiguration.html#cfn-pinpointemail-configurationseteventdestination-dimensionconfiguration-dimensionname
+pecseddcDimensionName :: Lens' PinpointEmailConfigurationSetEventDestinationDimensionConfiguration (Val Text)
+pecseddcDimensionName = lens _pinpointEmailConfigurationSetEventDestinationDimensionConfigurationDimensionName (\s a -> s { _pinpointEmailConfigurationSetEventDestinationDimensionConfigurationDimensionName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-dimensionconfiguration.html#cfn-pinpointemail-configurationseteventdestination-dimensionconfiguration-dimensionvaluesource
+pecseddcDimensionValueSource :: Lens' PinpointEmailConfigurationSetEventDestinationDimensionConfiguration (Val Text)
+pecseddcDimensionValueSource = lens _pinpointEmailConfigurationSetEventDestinationDimensionConfigurationDimensionValueSource (\s a -> s { _pinpointEmailConfigurationSetEventDestinationDimensionConfigurationDimensionValueSource = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetEventDestinationEventDestination.hs b/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetEventDestinationEventDestination.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetEventDestinationEventDestination.hs
@@ -0,0 +1,80 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-eventdestination.html
+
+module Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationEventDestination where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationCloudWatchDestination
+import Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination
+import Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationPinpointDestination
+import Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationSnsDestination
+
+-- | Full data type definition for
+-- PinpointEmailConfigurationSetEventDestinationEventDestination. See
+-- 'pinpointEmailConfigurationSetEventDestinationEventDestination' for a
+-- more convenient constructor.
+data PinpointEmailConfigurationSetEventDestinationEventDestination =
+  PinpointEmailConfigurationSetEventDestinationEventDestination
+  { _pinpointEmailConfigurationSetEventDestinationEventDestinationCloudWatchDestination :: Maybe PinpointEmailConfigurationSetEventDestinationCloudWatchDestination
+  , _pinpointEmailConfigurationSetEventDestinationEventDestinationEnabled :: Maybe (Val Bool)
+  , _pinpointEmailConfigurationSetEventDestinationEventDestinationKinesisFirehoseDestination :: Maybe PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination
+  , _pinpointEmailConfigurationSetEventDestinationEventDestinationMatchingEventTypes :: ValList Text
+  , _pinpointEmailConfigurationSetEventDestinationEventDestinationPinpointDestination :: Maybe PinpointEmailConfigurationSetEventDestinationPinpointDestination
+  , _pinpointEmailConfigurationSetEventDestinationEventDestinationSnsDestination :: Maybe PinpointEmailConfigurationSetEventDestinationSnsDestination
+  } deriving (Show, Eq)
+
+instance ToJSON PinpointEmailConfigurationSetEventDestinationEventDestination where
+  toJSON PinpointEmailConfigurationSetEventDestinationEventDestination{..} =
+    object $
+    catMaybes
+    [ fmap (("CloudWatchDestination",) . toJSON) _pinpointEmailConfigurationSetEventDestinationEventDestinationCloudWatchDestination
+    , fmap (("Enabled",) . toJSON) _pinpointEmailConfigurationSetEventDestinationEventDestinationEnabled
+    , fmap (("KinesisFirehoseDestination",) . toJSON) _pinpointEmailConfigurationSetEventDestinationEventDestinationKinesisFirehoseDestination
+    , (Just . ("MatchingEventTypes",) . toJSON) _pinpointEmailConfigurationSetEventDestinationEventDestinationMatchingEventTypes
+    , fmap (("PinpointDestination",) . toJSON) _pinpointEmailConfigurationSetEventDestinationEventDestinationPinpointDestination
+    , fmap (("SnsDestination",) . toJSON) _pinpointEmailConfigurationSetEventDestinationEventDestinationSnsDestination
+    ]
+
+-- | Constructor for
+-- 'PinpointEmailConfigurationSetEventDestinationEventDestination'
+-- containing required fields as arguments.
+pinpointEmailConfigurationSetEventDestinationEventDestination
+  :: ValList Text -- ^ 'pecsededMatchingEventTypes'
+  -> PinpointEmailConfigurationSetEventDestinationEventDestination
+pinpointEmailConfigurationSetEventDestinationEventDestination matchingEventTypesarg =
+  PinpointEmailConfigurationSetEventDestinationEventDestination
+  { _pinpointEmailConfigurationSetEventDestinationEventDestinationCloudWatchDestination = Nothing
+  , _pinpointEmailConfigurationSetEventDestinationEventDestinationEnabled = Nothing
+  , _pinpointEmailConfigurationSetEventDestinationEventDestinationKinesisFirehoseDestination = Nothing
+  , _pinpointEmailConfigurationSetEventDestinationEventDestinationMatchingEventTypes = matchingEventTypesarg
+  , _pinpointEmailConfigurationSetEventDestinationEventDestinationPinpointDestination = Nothing
+  , _pinpointEmailConfigurationSetEventDestinationEventDestinationSnsDestination = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-eventdestination.html#cfn-pinpointemail-configurationseteventdestination-eventdestination-cloudwatchdestination
+pecsededCloudWatchDestination :: Lens' PinpointEmailConfigurationSetEventDestinationEventDestination (Maybe PinpointEmailConfigurationSetEventDestinationCloudWatchDestination)
+pecsededCloudWatchDestination = lens _pinpointEmailConfigurationSetEventDestinationEventDestinationCloudWatchDestination (\s a -> s { _pinpointEmailConfigurationSetEventDestinationEventDestinationCloudWatchDestination = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-eventdestination.html#cfn-pinpointemail-configurationseteventdestination-eventdestination-enabled
+pecsededEnabled :: Lens' PinpointEmailConfigurationSetEventDestinationEventDestination (Maybe (Val Bool))
+pecsededEnabled = lens _pinpointEmailConfigurationSetEventDestinationEventDestinationEnabled (\s a -> s { _pinpointEmailConfigurationSetEventDestinationEventDestinationEnabled = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-eventdestination.html#cfn-pinpointemail-configurationseteventdestination-eventdestination-kinesisfirehosedestination
+pecsededKinesisFirehoseDestination :: Lens' PinpointEmailConfigurationSetEventDestinationEventDestination (Maybe PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination)
+pecsededKinesisFirehoseDestination = lens _pinpointEmailConfigurationSetEventDestinationEventDestinationKinesisFirehoseDestination (\s a -> s { _pinpointEmailConfigurationSetEventDestinationEventDestinationKinesisFirehoseDestination = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-eventdestination.html#cfn-pinpointemail-configurationseteventdestination-eventdestination-matchingeventtypes
+pecsededMatchingEventTypes :: Lens' PinpointEmailConfigurationSetEventDestinationEventDestination (ValList Text)
+pecsededMatchingEventTypes = lens _pinpointEmailConfigurationSetEventDestinationEventDestinationMatchingEventTypes (\s a -> s { _pinpointEmailConfigurationSetEventDestinationEventDestinationMatchingEventTypes = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-eventdestination.html#cfn-pinpointemail-configurationseteventdestination-eventdestination-pinpointdestination
+pecsededPinpointDestination :: Lens' PinpointEmailConfigurationSetEventDestinationEventDestination (Maybe PinpointEmailConfigurationSetEventDestinationPinpointDestination)
+pecsededPinpointDestination = lens _pinpointEmailConfigurationSetEventDestinationEventDestinationPinpointDestination (\s a -> s { _pinpointEmailConfigurationSetEventDestinationEventDestinationPinpointDestination = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-eventdestination.html#cfn-pinpointemail-configurationseteventdestination-eventdestination-snsdestination
+pecsededSnsDestination :: Lens' PinpointEmailConfigurationSetEventDestinationEventDestination (Maybe PinpointEmailConfigurationSetEventDestinationSnsDestination)
+pecsededSnsDestination = lens _pinpointEmailConfigurationSetEventDestinationEventDestinationSnsDestination (\s a -> s { _pinpointEmailConfigurationSetEventDestinationEventDestinationSnsDestination = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination.hs b/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination.hs
@@ -0,0 +1,51 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-kinesisfirehosedestination.html
+
+module Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination.
+-- See
+-- 'pinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination'
+-- for a more convenient constructor.
+data PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination =
+  PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination
+  { _pinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestinationDeliveryStreamArn :: Val Text
+  , _pinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestinationIamRoleArn :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination where
+  toJSON PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination{..} =
+    object $
+    catMaybes
+    [ (Just . ("DeliveryStreamArn",) . toJSON) _pinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestinationDeliveryStreamArn
+    , (Just . ("IamRoleArn",) . toJSON) _pinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestinationIamRoleArn
+    ]
+
+-- | Constructor for
+-- 'PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination'
+-- containing required fields as arguments.
+pinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination
+  :: Val Text -- ^ 'pecsedkfdDeliveryStreamArn'
+  -> Val Text -- ^ 'pecsedkfdIamRoleArn'
+  -> PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination
+pinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination deliveryStreamArnarg iamRoleArnarg =
+  PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination
+  { _pinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestinationDeliveryStreamArn = deliveryStreamArnarg
+  , _pinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestinationIamRoleArn = iamRoleArnarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-kinesisfirehosedestination.html#cfn-pinpointemail-configurationseteventdestination-kinesisfirehosedestination-deliverystreamarn
+pecsedkfdDeliveryStreamArn :: Lens' PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination (Val Text)
+pecsedkfdDeliveryStreamArn = lens _pinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestinationDeliveryStreamArn (\s a -> s { _pinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestinationDeliveryStreamArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-kinesisfirehosedestination.html#cfn-pinpointemail-configurationseteventdestination-kinesisfirehosedestination-iamrolearn
+pecsedkfdIamRoleArn :: Lens' PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination (Val Text)
+pecsedkfdIamRoleArn = lens _pinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestinationIamRoleArn (\s a -> s { _pinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestinationIamRoleArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetEventDestinationPinpointDestination.hs b/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetEventDestinationPinpointDestination.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetEventDestinationPinpointDestination.hs
@@ -0,0 +1,41 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-pinpointdestination.html
+
+module Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationPinpointDestination where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- PinpointEmailConfigurationSetEventDestinationPinpointDestination. See
+-- 'pinpointEmailConfigurationSetEventDestinationPinpointDestination' for a
+-- more convenient constructor.
+data PinpointEmailConfigurationSetEventDestinationPinpointDestination =
+  PinpointEmailConfigurationSetEventDestinationPinpointDestination
+  { _pinpointEmailConfigurationSetEventDestinationPinpointDestinationApplicationArn :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON PinpointEmailConfigurationSetEventDestinationPinpointDestination where
+  toJSON PinpointEmailConfigurationSetEventDestinationPinpointDestination{..} =
+    object $
+    catMaybes
+    [ fmap (("ApplicationArn",) . toJSON) _pinpointEmailConfigurationSetEventDestinationPinpointDestinationApplicationArn
+    ]
+
+-- | Constructor for
+-- 'PinpointEmailConfigurationSetEventDestinationPinpointDestination'
+-- containing required fields as arguments.
+pinpointEmailConfigurationSetEventDestinationPinpointDestination
+  :: PinpointEmailConfigurationSetEventDestinationPinpointDestination
+pinpointEmailConfigurationSetEventDestinationPinpointDestination  =
+  PinpointEmailConfigurationSetEventDestinationPinpointDestination
+  { _pinpointEmailConfigurationSetEventDestinationPinpointDestinationApplicationArn = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-pinpointdestination.html#cfn-pinpointemail-configurationseteventdestination-pinpointdestination-applicationarn
+pecsedpdApplicationArn :: Lens' PinpointEmailConfigurationSetEventDestinationPinpointDestination (Maybe (Val Text))
+pecsedpdApplicationArn = lens _pinpointEmailConfigurationSetEventDestinationPinpointDestinationApplicationArn (\s a -> s { _pinpointEmailConfigurationSetEventDestinationPinpointDestinationApplicationArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetEventDestinationSnsDestination.hs b/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetEventDestinationSnsDestination.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetEventDestinationSnsDestination.hs
@@ -0,0 +1,42 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-snsdestination.html
+
+module Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationSnsDestination where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- PinpointEmailConfigurationSetEventDestinationSnsDestination. See
+-- 'pinpointEmailConfigurationSetEventDestinationSnsDestination' for a more
+-- convenient constructor.
+data PinpointEmailConfigurationSetEventDestinationSnsDestination =
+  PinpointEmailConfigurationSetEventDestinationSnsDestination
+  { _pinpointEmailConfigurationSetEventDestinationSnsDestinationTopicArn :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON PinpointEmailConfigurationSetEventDestinationSnsDestination where
+  toJSON PinpointEmailConfigurationSetEventDestinationSnsDestination{..} =
+    object $
+    catMaybes
+    [ (Just . ("TopicArn",) . toJSON) _pinpointEmailConfigurationSetEventDestinationSnsDestinationTopicArn
+    ]
+
+-- | Constructor for
+-- 'PinpointEmailConfigurationSetEventDestinationSnsDestination' containing
+-- required fields as arguments.
+pinpointEmailConfigurationSetEventDestinationSnsDestination
+  :: Val Text -- ^ 'pecsedsdTopicArn'
+  -> PinpointEmailConfigurationSetEventDestinationSnsDestination
+pinpointEmailConfigurationSetEventDestinationSnsDestination topicArnarg =
+  PinpointEmailConfigurationSetEventDestinationSnsDestination
+  { _pinpointEmailConfigurationSetEventDestinationSnsDestinationTopicArn = topicArnarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-snsdestination.html#cfn-pinpointemail-configurationseteventdestination-snsdestination-topicarn
+pecsedsdTopicArn :: Lens' PinpointEmailConfigurationSetEventDestinationSnsDestination (Val Text)
+pecsedsdTopicArn = lens _pinpointEmailConfigurationSetEventDestinationSnsDestinationTopicArn (\s a -> s { _pinpointEmailConfigurationSetEventDestinationSnsDestinationTopicArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetReputationOptions.hs b/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetReputationOptions.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetReputationOptions.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-reputationoptions.html
+
+module Stratosphere.ResourceProperties.PinpointEmailConfigurationSetReputationOptions where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- PinpointEmailConfigurationSetReputationOptions. See
+-- 'pinpointEmailConfigurationSetReputationOptions' for a more convenient
+-- constructor.
+data PinpointEmailConfigurationSetReputationOptions =
+  PinpointEmailConfigurationSetReputationOptions
+  { _pinpointEmailConfigurationSetReputationOptionsReputationMetricsEnabled :: Maybe (Val Bool)
+  } deriving (Show, Eq)
+
+instance ToJSON PinpointEmailConfigurationSetReputationOptions where
+  toJSON PinpointEmailConfigurationSetReputationOptions{..} =
+    object $
+    catMaybes
+    [ fmap (("ReputationMetricsEnabled",) . toJSON) _pinpointEmailConfigurationSetReputationOptionsReputationMetricsEnabled
+    ]
+
+-- | Constructor for 'PinpointEmailConfigurationSetReputationOptions'
+-- containing required fields as arguments.
+pinpointEmailConfigurationSetReputationOptions
+  :: PinpointEmailConfigurationSetReputationOptions
+pinpointEmailConfigurationSetReputationOptions  =
+  PinpointEmailConfigurationSetReputationOptions
+  { _pinpointEmailConfigurationSetReputationOptionsReputationMetricsEnabled = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-reputationoptions.html#cfn-pinpointemail-configurationset-reputationoptions-reputationmetricsenabled
+pecsroReputationMetricsEnabled :: Lens' PinpointEmailConfigurationSetReputationOptions (Maybe (Val Bool))
+pecsroReputationMetricsEnabled = lens _pinpointEmailConfigurationSetReputationOptionsReputationMetricsEnabled (\s a -> s { _pinpointEmailConfigurationSetReputationOptionsReputationMetricsEnabled = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetSendingOptions.hs b/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetSendingOptions.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetSendingOptions.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-sendingoptions.html
+
+module Stratosphere.ResourceProperties.PinpointEmailConfigurationSetSendingOptions where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- PinpointEmailConfigurationSetSendingOptions. See
+-- 'pinpointEmailConfigurationSetSendingOptions' for a more convenient
+-- constructor.
+data PinpointEmailConfigurationSetSendingOptions =
+  PinpointEmailConfigurationSetSendingOptions
+  { _pinpointEmailConfigurationSetSendingOptionsSendingEnabled :: Maybe (Val Bool)
+  } deriving (Show, Eq)
+
+instance ToJSON PinpointEmailConfigurationSetSendingOptions where
+  toJSON PinpointEmailConfigurationSetSendingOptions{..} =
+    object $
+    catMaybes
+    [ fmap (("SendingEnabled",) . toJSON) _pinpointEmailConfigurationSetSendingOptionsSendingEnabled
+    ]
+
+-- | Constructor for 'PinpointEmailConfigurationSetSendingOptions' containing
+-- required fields as arguments.
+pinpointEmailConfigurationSetSendingOptions
+  :: PinpointEmailConfigurationSetSendingOptions
+pinpointEmailConfigurationSetSendingOptions  =
+  PinpointEmailConfigurationSetSendingOptions
+  { _pinpointEmailConfigurationSetSendingOptionsSendingEnabled = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-sendingoptions.html#cfn-pinpointemail-configurationset-sendingoptions-sendingenabled
+pecssoSendingEnabled :: Lens' PinpointEmailConfigurationSetSendingOptions (Maybe (Val Bool))
+pecssoSendingEnabled = lens _pinpointEmailConfigurationSetSendingOptionsSendingEnabled (\s a -> s { _pinpointEmailConfigurationSetSendingOptionsSendingEnabled = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetTags.hs b/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetTags.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetTags.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-tags.html
+
+module Stratosphere.ResourceProperties.PinpointEmailConfigurationSetTags where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for PinpointEmailConfigurationSetTags. See
+-- 'pinpointEmailConfigurationSetTags' for a more convenient constructor.
+data PinpointEmailConfigurationSetTags =
+  PinpointEmailConfigurationSetTags
+  { _pinpointEmailConfigurationSetTagsKey :: Maybe (Val Text)
+  , _pinpointEmailConfigurationSetTagsValue :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON PinpointEmailConfigurationSetTags where
+  toJSON PinpointEmailConfigurationSetTags{..} =
+    object $
+    catMaybes
+    [ fmap (("Key",) . toJSON) _pinpointEmailConfigurationSetTagsKey
+    , fmap (("Value",) . toJSON) _pinpointEmailConfigurationSetTagsValue
+    ]
+
+-- | Constructor for 'PinpointEmailConfigurationSetTags' containing required
+-- fields as arguments.
+pinpointEmailConfigurationSetTags
+  :: PinpointEmailConfigurationSetTags
+pinpointEmailConfigurationSetTags  =
+  PinpointEmailConfigurationSetTags
+  { _pinpointEmailConfigurationSetTagsKey = Nothing
+  , _pinpointEmailConfigurationSetTagsValue = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-tags.html#cfn-pinpointemail-configurationset-tags-key
+pecstKey :: Lens' PinpointEmailConfigurationSetTags (Maybe (Val Text))
+pecstKey = lens _pinpointEmailConfigurationSetTagsKey (\s a -> s { _pinpointEmailConfigurationSetTagsKey = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-tags.html#cfn-pinpointemail-configurationset-tags-value
+pecstValue :: Lens' PinpointEmailConfigurationSetTags (Maybe (Val Text))
+pecstValue = lens _pinpointEmailConfigurationSetTagsValue (\s a -> s { _pinpointEmailConfigurationSetTagsValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetTrackingOptions.hs b/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetTrackingOptions.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/PinpointEmailConfigurationSetTrackingOptions.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-trackingoptions.html
+
+module Stratosphere.ResourceProperties.PinpointEmailConfigurationSetTrackingOptions where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- PinpointEmailConfigurationSetTrackingOptions. See
+-- 'pinpointEmailConfigurationSetTrackingOptions' for a more convenient
+-- constructor.
+data PinpointEmailConfigurationSetTrackingOptions =
+  PinpointEmailConfigurationSetTrackingOptions
+  { _pinpointEmailConfigurationSetTrackingOptionsCustomRedirectDomain :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON PinpointEmailConfigurationSetTrackingOptions where
+  toJSON PinpointEmailConfigurationSetTrackingOptions{..} =
+    object $
+    catMaybes
+    [ fmap (("CustomRedirectDomain",) . toJSON) _pinpointEmailConfigurationSetTrackingOptionsCustomRedirectDomain
+    ]
+
+-- | Constructor for 'PinpointEmailConfigurationSetTrackingOptions' containing
+-- required fields as arguments.
+pinpointEmailConfigurationSetTrackingOptions
+  :: PinpointEmailConfigurationSetTrackingOptions
+pinpointEmailConfigurationSetTrackingOptions  =
+  PinpointEmailConfigurationSetTrackingOptions
+  { _pinpointEmailConfigurationSetTrackingOptionsCustomRedirectDomain = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-trackingoptions.html#cfn-pinpointemail-configurationset-trackingoptions-customredirectdomain
+pecstoCustomRedirectDomain :: Lens' PinpointEmailConfigurationSetTrackingOptions (Maybe (Val Text))
+pecstoCustomRedirectDomain = lens _pinpointEmailConfigurationSetTrackingOptionsCustomRedirectDomain (\s a -> s { _pinpointEmailConfigurationSetTrackingOptionsCustomRedirectDomain = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/PinpointEmailDedicatedIpPoolTags.hs b/library-gen/Stratosphere/ResourceProperties/PinpointEmailDedicatedIpPoolTags.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/PinpointEmailDedicatedIpPoolTags.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-dedicatedippool-tags.html
+
+module Stratosphere.ResourceProperties.PinpointEmailDedicatedIpPoolTags where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for PinpointEmailDedicatedIpPoolTags. See
+-- 'pinpointEmailDedicatedIpPoolTags' for a more convenient constructor.
+data PinpointEmailDedicatedIpPoolTags =
+  PinpointEmailDedicatedIpPoolTags
+  { _pinpointEmailDedicatedIpPoolTagsKey :: Maybe (Val Text)
+  , _pinpointEmailDedicatedIpPoolTagsValue :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON PinpointEmailDedicatedIpPoolTags where
+  toJSON PinpointEmailDedicatedIpPoolTags{..} =
+    object $
+    catMaybes
+    [ fmap (("Key",) . toJSON) _pinpointEmailDedicatedIpPoolTagsKey
+    , fmap (("Value",) . toJSON) _pinpointEmailDedicatedIpPoolTagsValue
+    ]
+
+-- | Constructor for 'PinpointEmailDedicatedIpPoolTags' containing required
+-- fields as arguments.
+pinpointEmailDedicatedIpPoolTags
+  :: PinpointEmailDedicatedIpPoolTags
+pinpointEmailDedicatedIpPoolTags  =
+  PinpointEmailDedicatedIpPoolTags
+  { _pinpointEmailDedicatedIpPoolTagsKey = Nothing
+  , _pinpointEmailDedicatedIpPoolTagsValue = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-dedicatedippool-tags.html#cfn-pinpointemail-dedicatedippool-tags-key
+pediptKey :: Lens' PinpointEmailDedicatedIpPoolTags (Maybe (Val Text))
+pediptKey = lens _pinpointEmailDedicatedIpPoolTagsKey (\s a -> s { _pinpointEmailDedicatedIpPoolTagsKey = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-dedicatedippool-tags.html#cfn-pinpointemail-dedicatedippool-tags-value
+pediptValue :: Lens' PinpointEmailDedicatedIpPoolTags (Maybe (Val Text))
+pediptValue = lens _pinpointEmailDedicatedIpPoolTagsValue (\s a -> s { _pinpointEmailDedicatedIpPoolTagsValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/PinpointEmailIdentityMailFromAttributes.hs b/library-gen/Stratosphere/ResourceProperties/PinpointEmailIdentityMailFromAttributes.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/PinpointEmailIdentityMailFromAttributes.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-identity-mailfromattributes.html
+
+module Stratosphere.ResourceProperties.PinpointEmailIdentityMailFromAttributes where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for PinpointEmailIdentityMailFromAttributes.
+-- See 'pinpointEmailIdentityMailFromAttributes' for a more convenient
+-- constructor.
+data PinpointEmailIdentityMailFromAttributes =
+  PinpointEmailIdentityMailFromAttributes
+  { _pinpointEmailIdentityMailFromAttributesBehaviorOnMxFailure :: Maybe (Val Text)
+  , _pinpointEmailIdentityMailFromAttributesMailFromDomain :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON PinpointEmailIdentityMailFromAttributes where
+  toJSON PinpointEmailIdentityMailFromAttributes{..} =
+    object $
+    catMaybes
+    [ fmap (("BehaviorOnMxFailure",) . toJSON) _pinpointEmailIdentityMailFromAttributesBehaviorOnMxFailure
+    , fmap (("MailFromDomain",) . toJSON) _pinpointEmailIdentityMailFromAttributesMailFromDomain
+    ]
+
+-- | Constructor for 'PinpointEmailIdentityMailFromAttributes' containing
+-- required fields as arguments.
+pinpointEmailIdentityMailFromAttributes
+  :: PinpointEmailIdentityMailFromAttributes
+pinpointEmailIdentityMailFromAttributes  =
+  PinpointEmailIdentityMailFromAttributes
+  { _pinpointEmailIdentityMailFromAttributesBehaviorOnMxFailure = Nothing
+  , _pinpointEmailIdentityMailFromAttributesMailFromDomain = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-identity-mailfromattributes.html#cfn-pinpointemail-identity-mailfromattributes-behavioronmxfailure
+peimfaBehaviorOnMxFailure :: Lens' PinpointEmailIdentityMailFromAttributes (Maybe (Val Text))
+peimfaBehaviorOnMxFailure = lens _pinpointEmailIdentityMailFromAttributesBehaviorOnMxFailure (\s a -> s { _pinpointEmailIdentityMailFromAttributesBehaviorOnMxFailure = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-identity-mailfromattributes.html#cfn-pinpointemail-identity-mailfromattributes-mailfromdomain
+peimfaMailFromDomain :: Lens' PinpointEmailIdentityMailFromAttributes (Maybe (Val Text))
+peimfaMailFromDomain = lens _pinpointEmailIdentityMailFromAttributesMailFromDomain (\s a -> s { _pinpointEmailIdentityMailFromAttributesMailFromDomain = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/PinpointEmailIdentityTags.hs b/library-gen/Stratosphere/ResourceProperties/PinpointEmailIdentityTags.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/PinpointEmailIdentityTags.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-identity-tags.html
+
+module Stratosphere.ResourceProperties.PinpointEmailIdentityTags where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for PinpointEmailIdentityTags. See
+-- 'pinpointEmailIdentityTags' for a more convenient constructor.
+data PinpointEmailIdentityTags =
+  PinpointEmailIdentityTags
+  { _pinpointEmailIdentityTagsKey :: Maybe (Val Text)
+  , _pinpointEmailIdentityTagsValue :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON PinpointEmailIdentityTags where
+  toJSON PinpointEmailIdentityTags{..} =
+    object $
+    catMaybes
+    [ fmap (("Key",) . toJSON) _pinpointEmailIdentityTagsKey
+    , fmap (("Value",) . toJSON) _pinpointEmailIdentityTagsValue
+    ]
+
+-- | Constructor for 'PinpointEmailIdentityTags' containing required fields as
+-- arguments.
+pinpointEmailIdentityTags
+  :: PinpointEmailIdentityTags
+pinpointEmailIdentityTags  =
+  PinpointEmailIdentityTags
+  { _pinpointEmailIdentityTagsKey = Nothing
+  , _pinpointEmailIdentityTagsValue = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-identity-tags.html#cfn-pinpointemail-identity-tags-key
+peitKey :: Lens' PinpointEmailIdentityTags (Maybe (Val Text))
+peitKey = lens _pinpointEmailIdentityTagsKey (\s a -> s { _pinpointEmailIdentityTagsKey = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-identity-tags.html#cfn-pinpointemail-identity-tags-value
+peitValue :: Lens' PinpointEmailIdentityTags (Maybe (Val Text))
+peitValue = lens _pinpointEmailIdentityTagsValue (\s a -> s { _pinpointEmailIdentityTagsValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ServiceCatalogCloudFormationProductProvisioningArtifactProperties.hs b/library-gen/Stratosphere/ResourceProperties/ServiceCatalogCloudFormationProductProvisioningArtifactProperties.hs
--- a/library-gen/Stratosphere/ResourceProperties/ServiceCatalogCloudFormationProductProvisioningArtifactProperties.hs
+++ b/library-gen/Stratosphere/ResourceProperties/ServiceCatalogCloudFormationProductProvisioningArtifactProperties.hs
@@ -17,6 +17,7 @@
 data ServiceCatalogCloudFormationProductProvisioningArtifactProperties =
   ServiceCatalogCloudFormationProductProvisioningArtifactProperties
   { _serviceCatalogCloudFormationProductProvisioningArtifactPropertiesDescription :: Maybe (Val Text)
+  , _serviceCatalogCloudFormationProductProvisioningArtifactPropertiesDisableTemplateValidation :: Maybe (Val Bool)
   , _serviceCatalogCloudFormationProductProvisioningArtifactPropertiesInfo :: Object
   , _serviceCatalogCloudFormationProductProvisioningArtifactPropertiesName :: Maybe (Val Text)
   } deriving (Show, Eq)
@@ -26,6 +27,7 @@
     object $
     catMaybes
     [ fmap (("Description",) . toJSON) _serviceCatalogCloudFormationProductProvisioningArtifactPropertiesDescription
+    , fmap (("DisableTemplateValidation",) . toJSON) _serviceCatalogCloudFormationProductProvisioningArtifactPropertiesDisableTemplateValidation
     , (Just . ("Info",) . toJSON) _serviceCatalogCloudFormationProductProvisioningArtifactPropertiesInfo
     , fmap (("Name",) . toJSON) _serviceCatalogCloudFormationProductProvisioningArtifactPropertiesName
     ]
@@ -39,6 +41,7 @@
 serviceCatalogCloudFormationProductProvisioningArtifactProperties infoarg =
   ServiceCatalogCloudFormationProductProvisioningArtifactProperties
   { _serviceCatalogCloudFormationProductProvisioningArtifactPropertiesDescription = Nothing
+  , _serviceCatalogCloudFormationProductProvisioningArtifactPropertiesDisableTemplateValidation = Nothing
   , _serviceCatalogCloudFormationProductProvisioningArtifactPropertiesInfo = infoarg
   , _serviceCatalogCloudFormationProductProvisioningArtifactPropertiesName = Nothing
   }
@@ -46,6 +49,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationproduct-provisioningartifactproperties.html#cfn-servicecatalog-cloudformationproduct-provisioningartifactproperties-description
 sccfppapDescription :: Lens' ServiceCatalogCloudFormationProductProvisioningArtifactProperties (Maybe (Val Text))
 sccfppapDescription = lens _serviceCatalogCloudFormationProductProvisioningArtifactPropertiesDescription (\s a -> s { _serviceCatalogCloudFormationProductProvisioningArtifactPropertiesDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationproduct-provisioningartifactproperties.html#cfn-servicecatalog-cloudformationproduct-provisioningartifactproperties-disabletemplatevalidation
+sccfppapDisableTemplateValidation :: Lens' ServiceCatalogCloudFormationProductProvisioningArtifactProperties (Maybe (Val Bool))
+sccfppapDisableTemplateValidation = lens _serviceCatalogCloudFormationProductProvisioningArtifactPropertiesDisableTemplateValidation (\s a -> s { _serviceCatalogCloudFormationProductProvisioningArtifactPropertiesDisableTemplateValidation = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationproduct-provisioningartifactproperties.html#cfn-servicecatalog-cloudformationproduct-provisioningartifactproperties-info
 sccfppapInfo :: Lens' ServiceCatalogCloudFormationProductProvisioningArtifactProperties Object
diff --git a/library-gen/Stratosphere/ResourceProperties/TransferServerEndpointDetails.hs b/library-gen/Stratosphere/ResourceProperties/TransferServerEndpointDetails.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/TransferServerEndpointDetails.hs
@@ -0,0 +1,39 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-endpointdetails.html
+
+module Stratosphere.ResourceProperties.TransferServerEndpointDetails where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for TransferServerEndpointDetails. See
+-- 'transferServerEndpointDetails' for a more convenient constructor.
+data TransferServerEndpointDetails =
+  TransferServerEndpointDetails
+  { _transferServerEndpointDetailsVpcEndpointId :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON TransferServerEndpointDetails where
+  toJSON TransferServerEndpointDetails{..} =
+    object $
+    catMaybes
+    [ (Just . ("VpcEndpointId",) . toJSON) _transferServerEndpointDetailsVpcEndpointId
+    ]
+
+-- | Constructor for 'TransferServerEndpointDetails' containing required
+-- fields as arguments.
+transferServerEndpointDetails
+  :: Val Text -- ^ 'tsedVpcEndpointId'
+  -> TransferServerEndpointDetails
+transferServerEndpointDetails vpcEndpointIdarg =
+  TransferServerEndpointDetails
+  { _transferServerEndpointDetailsVpcEndpointId = vpcEndpointIdarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-endpointdetails.html#cfn-transfer-server-endpointdetails-vpcendpointid
+tsedVpcEndpointId :: Lens' TransferServerEndpointDetails (Val Text)
+tsedVpcEndpointId = lens _transferServerEndpointDetailsVpcEndpointId (\s a -> s { _transferServerEndpointDetailsVpcEndpointId = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/TransferServerIdentityProviderDetails.hs b/library-gen/Stratosphere/ResourceProperties/TransferServerIdentityProviderDetails.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/TransferServerIdentityProviderDetails.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-identityproviderdetails.html
+
+module Stratosphere.ResourceProperties.TransferServerIdentityProviderDetails where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for TransferServerIdentityProviderDetails. See
+-- 'transferServerIdentityProviderDetails' for a more convenient
+-- constructor.
+data TransferServerIdentityProviderDetails =
+  TransferServerIdentityProviderDetails
+  { _transferServerIdentityProviderDetailsInvocationRole :: Val Text
+  , _transferServerIdentityProviderDetailsUrl :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON TransferServerIdentityProviderDetails where
+  toJSON TransferServerIdentityProviderDetails{..} =
+    object $
+    catMaybes
+    [ (Just . ("InvocationRole",) . toJSON) _transferServerIdentityProviderDetailsInvocationRole
+    , (Just . ("Url",) . toJSON) _transferServerIdentityProviderDetailsUrl
+    ]
+
+-- | Constructor for 'TransferServerIdentityProviderDetails' containing
+-- required fields as arguments.
+transferServerIdentityProviderDetails
+  :: Val Text -- ^ 'tsipdInvocationRole'
+  -> Val Text -- ^ 'tsipdUrl'
+  -> TransferServerIdentityProviderDetails
+transferServerIdentityProviderDetails invocationRolearg urlarg =
+  TransferServerIdentityProviderDetails
+  { _transferServerIdentityProviderDetailsInvocationRole = invocationRolearg
+  , _transferServerIdentityProviderDetailsUrl = urlarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-identityproviderdetails.html#cfn-transfer-server-identityproviderdetails-invocationrole
+tsipdInvocationRole :: Lens' TransferServerIdentityProviderDetails (Val Text)
+tsipdInvocationRole = lens _transferServerIdentityProviderDetailsInvocationRole (\s a -> s { _transferServerIdentityProviderDetailsInvocationRole = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-identityproviderdetails.html#cfn-transfer-server-identityproviderdetails-url
+tsipdUrl :: Lens' TransferServerIdentityProviderDetails (Val Text)
+tsipdUrl = lens _transferServerIdentityProviderDetailsUrl (\s a -> s { _transferServerIdentityProviderDetailsUrl = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/WAFRegionalGeoMatchSetGeoMatchConstraint.hs b/library-gen/Stratosphere/ResourceProperties/WAFRegionalGeoMatchSetGeoMatchConstraint.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/WAFRegionalGeoMatchSetGeoMatchConstraint.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-geomatchset-geomatchconstraint.html
+
+module Stratosphere.ResourceProperties.WAFRegionalGeoMatchSetGeoMatchConstraint where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for WAFRegionalGeoMatchSetGeoMatchConstraint.
+-- See 'wafRegionalGeoMatchSetGeoMatchConstraint' for a more convenient
+-- constructor.
+data WAFRegionalGeoMatchSetGeoMatchConstraint =
+  WAFRegionalGeoMatchSetGeoMatchConstraint
+  { _wAFRegionalGeoMatchSetGeoMatchConstraintType :: Val Text
+  , _wAFRegionalGeoMatchSetGeoMatchConstraintValue :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON WAFRegionalGeoMatchSetGeoMatchConstraint where
+  toJSON WAFRegionalGeoMatchSetGeoMatchConstraint{..} =
+    object $
+    catMaybes
+    [ (Just . ("Type",) . toJSON) _wAFRegionalGeoMatchSetGeoMatchConstraintType
+    , (Just . ("Value",) . toJSON) _wAFRegionalGeoMatchSetGeoMatchConstraintValue
+    ]
+
+-- | Constructor for 'WAFRegionalGeoMatchSetGeoMatchConstraint' containing
+-- required fields as arguments.
+wafRegionalGeoMatchSetGeoMatchConstraint
+  :: Val Text -- ^ 'wafrgmsgmcType'
+  -> Val Text -- ^ 'wafrgmsgmcValue'
+  -> WAFRegionalGeoMatchSetGeoMatchConstraint
+wafRegionalGeoMatchSetGeoMatchConstraint typearg valuearg =
+  WAFRegionalGeoMatchSetGeoMatchConstraint
+  { _wAFRegionalGeoMatchSetGeoMatchConstraintType = typearg
+  , _wAFRegionalGeoMatchSetGeoMatchConstraintValue = valuearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-geomatchset-geomatchconstraint.html#cfn-wafregional-geomatchset-geomatchconstraint-type
+wafrgmsgmcType :: Lens' WAFRegionalGeoMatchSetGeoMatchConstraint (Val Text)
+wafrgmsgmcType = lens _wAFRegionalGeoMatchSetGeoMatchConstraintType (\s a -> s { _wAFRegionalGeoMatchSetGeoMatchConstraintType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-geomatchset-geomatchconstraint.html#cfn-wafregional-geomatchset-geomatchconstraint-value
+wafrgmsgmcValue :: Lens' WAFRegionalGeoMatchSetGeoMatchConstraint (Val Text)
+wafrgmsgmcValue = lens _wAFRegionalGeoMatchSetGeoMatchConstraintValue (\s a -> s { _wAFRegionalGeoMatchSetGeoMatchConstraintValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/WAFRegionalRateBasedRulePredicate.hs b/library-gen/Stratosphere/ResourceProperties/WAFRegionalRateBasedRulePredicate.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/WAFRegionalRateBasedRulePredicate.hs
@@ -0,0 +1,55 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-ratebasedrule-predicate.html
+
+module Stratosphere.ResourceProperties.WAFRegionalRateBasedRulePredicate where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for WAFRegionalRateBasedRulePredicate. See
+-- 'wafRegionalRateBasedRulePredicate' for a more convenient constructor.
+data WAFRegionalRateBasedRulePredicate =
+  WAFRegionalRateBasedRulePredicate
+  { _wAFRegionalRateBasedRulePredicateDataId :: Val Text
+  , _wAFRegionalRateBasedRulePredicateNegated :: Val Bool
+  , _wAFRegionalRateBasedRulePredicateType :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON WAFRegionalRateBasedRulePredicate where
+  toJSON WAFRegionalRateBasedRulePredicate{..} =
+    object $
+    catMaybes
+    [ (Just . ("DataId",) . toJSON) _wAFRegionalRateBasedRulePredicateDataId
+    , (Just . ("Negated",) . toJSON) _wAFRegionalRateBasedRulePredicateNegated
+    , (Just . ("Type",) . toJSON) _wAFRegionalRateBasedRulePredicateType
+    ]
+
+-- | Constructor for 'WAFRegionalRateBasedRulePredicate' containing required
+-- fields as arguments.
+wafRegionalRateBasedRulePredicate
+  :: Val Text -- ^ 'wafrrbrpDataId'
+  -> Val Bool -- ^ 'wafrrbrpNegated'
+  -> Val Text -- ^ 'wafrrbrpType'
+  -> WAFRegionalRateBasedRulePredicate
+wafRegionalRateBasedRulePredicate dataIdarg negatedarg typearg =
+  WAFRegionalRateBasedRulePredicate
+  { _wAFRegionalRateBasedRulePredicateDataId = dataIdarg
+  , _wAFRegionalRateBasedRulePredicateNegated = negatedarg
+  , _wAFRegionalRateBasedRulePredicateType = typearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-ratebasedrule-predicate.html#cfn-wafregional-ratebasedrule-predicate-dataid
+wafrrbrpDataId :: Lens' WAFRegionalRateBasedRulePredicate (Val Text)
+wafrrbrpDataId = lens _wAFRegionalRateBasedRulePredicateDataId (\s a -> s { _wAFRegionalRateBasedRulePredicateDataId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-ratebasedrule-predicate.html#cfn-wafregional-ratebasedrule-predicate-negated
+wafrrbrpNegated :: Lens' WAFRegionalRateBasedRulePredicate (Val Bool)
+wafrrbrpNegated = lens _wAFRegionalRateBasedRulePredicateNegated (\s a -> s { _wAFRegionalRateBasedRulePredicateNegated = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-ratebasedrule-predicate.html#cfn-wafregional-ratebasedrule-predicate-type
+wafrrbrpType :: Lens' WAFRegionalRateBasedRulePredicate (Val Text)
+wafrrbrpType = lens _wAFRegionalRateBasedRulePredicateType (\s a -> s { _wAFRegionalRateBasedRulePredicateType = 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
@@ -159,6 +159,7 @@
 import Stratosphere.Resources.DocDBDBInstance as X
 import Stratosphere.Resources.DocDBDBSubnetGroup as X
 import Stratosphere.Resources.DynamoDBTable as X
+import Stratosphere.Resources.EC2CapacityReservation as X
 import Stratosphere.Resources.EC2CustomerGateway as X
 import Stratosphere.Resources.EC2DHCPOptions as X
 import Stratosphere.Resources.EC2EC2Fleet as X
@@ -245,10 +246,12 @@
 import Stratosphere.Resources.GlueClassifier as X
 import Stratosphere.Resources.GlueConnection as X
 import Stratosphere.Resources.GlueCrawler as X
+import Stratosphere.Resources.GlueDataCatalogEncryptionSettings as X
 import Stratosphere.Resources.GlueDatabase as X
 import Stratosphere.Resources.GlueDevEndpoint as X
 import Stratosphere.Resources.GlueJob as X
 import Stratosphere.Resources.GluePartition as X
+import Stratosphere.Resources.GlueSecurityConfiguration as X
 import Stratosphere.Resources.GlueTable as X
 import Stratosphere.Resources.GlueTrigger as X
 import Stratosphere.Resources.GreengrassConnectorDefinition as X
@@ -322,6 +325,7 @@
 import Stratosphere.Resources.LogsLogStream as X
 import Stratosphere.Resources.LogsMetricFilter as X
 import Stratosphere.Resources.LogsSubscriptionFilter as X
+import Stratosphere.Resources.MediaStoreContainer as X
 import Stratosphere.Resources.NeptuneDBCluster as X
 import Stratosphere.Resources.NeptuneDBClusterParameterGroup as X
 import Stratosphere.Resources.NeptuneDBInstance as X
@@ -335,6 +339,10 @@
 import Stratosphere.Resources.OpsWorksUserProfile as X
 import Stratosphere.Resources.OpsWorksVolume as X
 import Stratosphere.Resources.OpsWorksCMServer as X
+import Stratosphere.Resources.PinpointEmailConfigurationSet as X
+import Stratosphere.Resources.PinpointEmailConfigurationSetEventDestination as X
+import Stratosphere.Resources.PinpointEmailDedicatedIpPool as X
+import Stratosphere.Resources.PinpointEmailIdentity as X
 import Stratosphere.Resources.RAMResourceShare as X
 import Stratosphere.Resources.RDSDBCluster as X
 import Stratosphere.Resources.RDSDBClusterParameterGroup as X
@@ -403,6 +411,7 @@
 import Stratosphere.Resources.ServiceCatalogPortfolioPrincipalAssociation as X
 import Stratosphere.Resources.ServiceCatalogPortfolioProductAssociation as X
 import Stratosphere.Resources.ServiceCatalogPortfolioShare as X
+import Stratosphere.Resources.ServiceCatalogResourceUpdateConstraint as X
 import Stratosphere.Resources.ServiceCatalogTagOption as X
 import Stratosphere.Resources.ServiceCatalogTagOptionAssociation as X
 import Stratosphere.Resources.ServiceDiscoveryHttpNamespace as X
@@ -412,6 +421,8 @@
 import Stratosphere.Resources.ServiceDiscoveryService as X
 import Stratosphere.Resources.StepFunctionsActivity as X
 import Stratosphere.Resources.StepFunctionsStateMachine as X
+import Stratosphere.Resources.TransferServer as X
+import Stratosphere.Resources.TransferUser as X
 import Stratosphere.Resources.WAFByteMatchSet as X
 import Stratosphere.Resources.WAFIPSet as X
 import Stratosphere.Resources.WAFRule as X
@@ -420,7 +431,10 @@
 import Stratosphere.Resources.WAFWebACL as X
 import Stratosphere.Resources.WAFXssMatchSet as X
 import Stratosphere.Resources.WAFRegionalByteMatchSet as X
+import Stratosphere.Resources.WAFRegionalGeoMatchSet as X
 import Stratosphere.Resources.WAFRegionalIPSet as X
+import Stratosphere.Resources.WAFRegionalRateBasedRule as X
+import Stratosphere.Resources.WAFRegionalRegexPatternSet as X
 import Stratosphere.Resources.WAFRegionalRule as X
 import Stratosphere.Resources.WAFRegionalSizeConstraintSet as X
 import Stratosphere.Resources.WAFRegionalSqlInjectionMatchSet as X
@@ -509,6 +523,8 @@
 import Stratosphere.ResourceProperties.AppSyncDataSourceLambdaConfig as X
 import Stratosphere.ResourceProperties.AppSyncDataSourceRdsHttpEndpointConfig as X
 import Stratosphere.ResourceProperties.AppSyncDataSourceRelationalDatabaseConfig as X
+import Stratosphere.ResourceProperties.AppSyncGraphQLApiAdditionalAuthenticationProvider as X
+import Stratosphere.ResourceProperties.AppSyncGraphQLApiCognitoUserPoolConfig as X
 import Stratosphere.ResourceProperties.AppSyncGraphQLApiLogConfig as X
 import Stratosphere.ResourceProperties.AppSyncGraphQLApiOpenIDConnectConfig as X
 import Stratosphere.ResourceProperties.AppSyncGraphQLApiUserPoolConfig as X
@@ -602,6 +618,7 @@
 import Stratosphere.ResourceProperties.CodeBuildProjectGitSubmodulesConfig as X
 import Stratosphere.ResourceProperties.CodeBuildProjectLogsConfig as X
 import Stratosphere.ResourceProperties.CodeBuildProjectProjectCache as X
+import Stratosphere.ResourceProperties.CodeBuildProjectProjectSourceVersion as X
 import Stratosphere.ResourceProperties.CodeBuildProjectProjectTriggers as X
 import Stratosphere.ResourceProperties.CodeBuildProjectRegistryCredential as X
 import Stratosphere.ResourceProperties.CodeBuildProjectS3LogsConfig as X
@@ -609,7 +626,9 @@
 import Stratosphere.ResourceProperties.CodeBuildProjectSourceAuth as X
 import Stratosphere.ResourceProperties.CodeBuildProjectVpcConfig as X
 import Stratosphere.ResourceProperties.CodeBuildProjectWebhookFilter as X
+import Stratosphere.ResourceProperties.CodeCommitRepositoryCode as X
 import Stratosphere.ResourceProperties.CodeCommitRepositoryRepositoryTrigger as X
+import Stratosphere.ResourceProperties.CodeCommitRepositoryS3 as X
 import Stratosphere.ResourceProperties.CodeDeployDeploymentConfigMinimumHealthyHosts as X
 import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupAlarm as X
 import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupAlarmConfiguration as X
@@ -697,6 +716,7 @@
 import Stratosphere.ResourceProperties.DynamoDBTableSSESpecification as X
 import Stratosphere.ResourceProperties.DynamoDBTableStreamSpecification as X
 import Stratosphere.ResourceProperties.DynamoDBTableTimeToLiveSpecification as X
+import Stratosphere.ResourceProperties.EC2CapacityReservationTagSpecification as X
 import Stratosphere.ResourceProperties.EC2EC2FleetFleetLaunchTemplateConfigRequest as X
 import Stratosphere.ResourceProperties.EC2EC2FleetFleetLaunchTemplateOverridesRequest as X
 import Stratosphere.ResourceProperties.EC2EC2FleetFleetLaunchTemplateSpecificationRequest as X
@@ -775,6 +795,7 @@
 import Stratosphere.ResourceProperties.ECSServicePlacementStrategy as X
 import Stratosphere.ResourceProperties.ECSServiceServiceRegistry as X
 import Stratosphere.ResourceProperties.ECSTaskDefinitionContainerDefinition as X
+import Stratosphere.ResourceProperties.ECSTaskDefinitionContainerDependency as X
 import Stratosphere.ResourceProperties.ECSTaskDefinitionDevice as X
 import Stratosphere.ResourceProperties.ECSTaskDefinitionDockerVolumeConfiguration as X
 import Stratosphere.ResourceProperties.ECSTaskDefinitionHealthCheck as X
@@ -786,6 +807,7 @@
 import Stratosphere.ResourceProperties.ECSTaskDefinitionLogConfiguration as X
 import Stratosphere.ResourceProperties.ECSTaskDefinitionMountPoint as X
 import Stratosphere.ResourceProperties.ECSTaskDefinitionPortMapping as X
+import Stratosphere.ResourceProperties.ECSTaskDefinitionProxyConfiguration as X
 import Stratosphere.ResourceProperties.ECSTaskDefinitionRepositoryCredentials as X
 import Stratosphere.ResourceProperties.ECSTaskDefinitionTaskDefinitionPlacementConstraint as X
 import Stratosphere.ResourceProperties.ECSTaskDefinitionTmpfs as X
@@ -896,6 +918,7 @@
 import Stratosphere.ResourceProperties.GameLiftAliasRoutingStrategy as X
 import Stratosphere.ResourceProperties.GameLiftBuildS3Location as X
 import Stratosphere.ResourceProperties.GameLiftFleetIpPermission as X
+import Stratosphere.ResourceProperties.GlueClassifierCsvClassifier as X
 import Stratosphere.ResourceProperties.GlueClassifierGrokClassifier as X
 import Stratosphere.ResourceProperties.GlueClassifierJsonClassifier as X
 import Stratosphere.ResourceProperties.GlueClassifierXMLClassifier as X
@@ -906,6 +929,9 @@
 import Stratosphere.ResourceProperties.GlueCrawlerSchedule as X
 import Stratosphere.ResourceProperties.GlueCrawlerSchemaChangePolicy as X
 import Stratosphere.ResourceProperties.GlueCrawlerTargets as X
+import Stratosphere.ResourceProperties.GlueDataCatalogEncryptionSettingsConnectionPasswordEncryption as X
+import Stratosphere.ResourceProperties.GlueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings as X
+import Stratosphere.ResourceProperties.GlueDataCatalogEncryptionSettingsEncryptionAtRest as X
 import Stratosphere.ResourceProperties.GlueDatabaseDatabaseInput as X
 import Stratosphere.ResourceProperties.GlueJobConnectionsList as X
 import Stratosphere.ResourceProperties.GlueJobExecutionProperty as X
@@ -916,6 +942,10 @@
 import Stratosphere.ResourceProperties.GluePartitionSerdeInfo as X
 import Stratosphere.ResourceProperties.GluePartitionSkewedInfo as X
 import Stratosphere.ResourceProperties.GluePartitionStorageDescriptor as X
+import Stratosphere.ResourceProperties.GlueSecurityConfigurationCloudWatchEncryption as X
+import Stratosphere.ResourceProperties.GlueSecurityConfigurationEncryptionConfiguration as X
+import Stratosphere.ResourceProperties.GlueSecurityConfigurationJobBookmarksEncryption as X
+import Stratosphere.ResourceProperties.GlueSecurityConfigurationS3Encryption as X
 import Stratosphere.ResourceProperties.GlueTableColumn as X
 import Stratosphere.ResourceProperties.GlueTableOrder as X
 import Stratosphere.ResourceProperties.GlueTableSerdeInfo as X
@@ -1115,6 +1145,7 @@
 import Stratosphere.ResourceProperties.LambdaFunctionVpcConfig as X
 import Stratosphere.ResourceProperties.LambdaLayerVersionContent as X
 import Stratosphere.ResourceProperties.LogsMetricFilterMetricTransformation as X
+import Stratosphere.ResourceProperties.MediaStoreContainerCorsRule as X
 import Stratosphere.ResourceProperties.OpsWorksAppDataSource as X
 import Stratosphere.ResourceProperties.OpsWorksAppEnvironmentVariable as X
 import Stratosphere.ResourceProperties.OpsWorksAppSource as X
@@ -1134,6 +1165,20 @@
 import Stratosphere.ResourceProperties.OpsWorksStackSource as X
 import Stratosphere.ResourceProperties.OpsWorksStackStackConfigurationManager as X
 import Stratosphere.ResourceProperties.OpsWorksCMServerEngineAttribute as X
+import Stratosphere.ResourceProperties.PinpointEmailConfigurationSetDeliveryOptions as X
+import Stratosphere.ResourceProperties.PinpointEmailConfigurationSetReputationOptions as X
+import Stratosphere.ResourceProperties.PinpointEmailConfigurationSetSendingOptions as X
+import Stratosphere.ResourceProperties.PinpointEmailConfigurationSetTags as X
+import Stratosphere.ResourceProperties.PinpointEmailConfigurationSetTrackingOptions as X
+import Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationCloudWatchDestination as X
+import Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationDimensionConfiguration as X
+import Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationEventDestination as X
+import Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination as X
+import Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationPinpointDestination as X
+import Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationSnsDestination as X
+import Stratosphere.ResourceProperties.PinpointEmailDedicatedIpPoolTags as X
+import Stratosphere.ResourceProperties.PinpointEmailIdentityMailFromAttributes as X
+import Stratosphere.ResourceProperties.PinpointEmailIdentityTags as X
 import Stratosphere.ResourceProperties.RDSDBClusterScalingConfiguration as X
 import Stratosphere.ResourceProperties.RDSDBInstanceProcessorFeature as X
 import Stratosphere.ResourceProperties.RDSDBSecurityGroupIngressProperty as X
@@ -1249,6 +1294,8 @@
 import Stratosphere.ResourceProperties.ServiceDiscoveryServiceHealthCheckCustomConfig as X
 import Stratosphere.ResourceProperties.StepFunctionsActivityTagsEntry as X
 import Stratosphere.ResourceProperties.StepFunctionsStateMachineTagsEntry as X
+import Stratosphere.ResourceProperties.TransferServerEndpointDetails as X
+import Stratosphere.ResourceProperties.TransferServerIdentityProviderDetails as X
 import Stratosphere.ResourceProperties.WAFByteMatchSetByteMatchTuple as X
 import Stratosphere.ResourceProperties.WAFByteMatchSetFieldToMatch as X
 import Stratosphere.ResourceProperties.WAFIPSetIPSetDescriptor as X
@@ -1263,7 +1310,9 @@
 import Stratosphere.ResourceProperties.WAFXssMatchSetXssMatchTuple as X
 import Stratosphere.ResourceProperties.WAFRegionalByteMatchSetByteMatchTuple as X
 import Stratosphere.ResourceProperties.WAFRegionalByteMatchSetFieldToMatch as X
+import Stratosphere.ResourceProperties.WAFRegionalGeoMatchSetGeoMatchConstraint as X
 import Stratosphere.ResourceProperties.WAFRegionalIPSetIPSetDescriptor as X
+import Stratosphere.ResourceProperties.WAFRegionalRateBasedRulePredicate as X
 import Stratosphere.ResourceProperties.WAFRegionalRulePredicate as X
 import Stratosphere.ResourceProperties.WAFRegionalSizeConstraintSetFieldToMatch as X
 import Stratosphere.ResourceProperties.WAFRegionalSizeConstraintSetSizeConstraint as X
diff --git a/library-gen/Stratosphere/Resources/AppSyncFunctionConfiguration.hs b/library-gen/Stratosphere/Resources/AppSyncFunctionConfiguration.hs
--- a/library-gen/Stratosphere/Resources/AppSyncFunctionConfiguration.hs
+++ b/library-gen/Stratosphere/Resources/AppSyncFunctionConfiguration.hs
@@ -15,10 +15,10 @@
 data AppSyncFunctionConfiguration =
   AppSyncFunctionConfiguration
   { _appSyncFunctionConfigurationApiId :: Val Text
-  , _appSyncFunctionConfigurationDataSourceName :: Maybe (Val Text)
+  , _appSyncFunctionConfigurationDataSourceName :: Val Text
   , _appSyncFunctionConfigurationDescription :: Maybe (Val Text)
-  , _appSyncFunctionConfigurationFunctionVersion :: Maybe (Val Text)
-  , _appSyncFunctionConfigurationName :: Maybe (Val Text)
+  , _appSyncFunctionConfigurationFunctionVersion :: Val Text
+  , _appSyncFunctionConfigurationName :: Val Text
   , _appSyncFunctionConfigurationRequestMappingTemplate :: Maybe (Val Text)
   , _appSyncFunctionConfigurationRequestMappingTemplateS3Location :: Maybe (Val Text)
   , _appSyncFunctionConfigurationResponseMappingTemplate :: Maybe (Val Text)
@@ -32,10 +32,10 @@
     , resourcePropertiesProperties =
         hashMapFromList $ catMaybes
         [ (Just . ("ApiId",) . toJSON) _appSyncFunctionConfigurationApiId
-        , fmap (("DataSourceName",) . toJSON) _appSyncFunctionConfigurationDataSourceName
+        , (Just . ("DataSourceName",) . toJSON) _appSyncFunctionConfigurationDataSourceName
         , fmap (("Description",) . toJSON) _appSyncFunctionConfigurationDescription
-        , fmap (("FunctionVersion",) . toJSON) _appSyncFunctionConfigurationFunctionVersion
-        , fmap (("Name",) . toJSON) _appSyncFunctionConfigurationName
+        , (Just . ("FunctionVersion",) . toJSON) _appSyncFunctionConfigurationFunctionVersion
+        , (Just . ("Name",) . toJSON) _appSyncFunctionConfigurationName
         , fmap (("RequestMappingTemplate",) . toJSON) _appSyncFunctionConfigurationRequestMappingTemplate
         , fmap (("RequestMappingTemplateS3Location",) . toJSON) _appSyncFunctionConfigurationRequestMappingTemplateS3Location
         , fmap (("ResponseMappingTemplate",) . toJSON) _appSyncFunctionConfigurationResponseMappingTemplate
@@ -47,14 +47,17 @@
 -- as arguments.
 appSyncFunctionConfiguration
   :: Val Text -- ^ 'asfcApiId'
+  -> Val Text -- ^ 'asfcDataSourceName'
+  -> Val Text -- ^ 'asfcFunctionVersion'
+  -> Val Text -- ^ 'asfcName'
   -> AppSyncFunctionConfiguration
-appSyncFunctionConfiguration apiIdarg =
+appSyncFunctionConfiguration apiIdarg dataSourceNamearg functionVersionarg namearg =
   AppSyncFunctionConfiguration
   { _appSyncFunctionConfigurationApiId = apiIdarg
-  , _appSyncFunctionConfigurationDataSourceName = Nothing
+  , _appSyncFunctionConfigurationDataSourceName = dataSourceNamearg
   , _appSyncFunctionConfigurationDescription = Nothing
-  , _appSyncFunctionConfigurationFunctionVersion = Nothing
-  , _appSyncFunctionConfigurationName = Nothing
+  , _appSyncFunctionConfigurationFunctionVersion = functionVersionarg
+  , _appSyncFunctionConfigurationName = namearg
   , _appSyncFunctionConfigurationRequestMappingTemplate = Nothing
   , _appSyncFunctionConfigurationRequestMappingTemplateS3Location = Nothing
   , _appSyncFunctionConfigurationResponseMappingTemplate = Nothing
@@ -66,7 +69,7 @@
 asfcApiId = lens _appSyncFunctionConfigurationApiId (\s a -> s { _appSyncFunctionConfigurationApiId = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-datasourcename
-asfcDataSourceName :: Lens' AppSyncFunctionConfiguration (Maybe (Val Text))
+asfcDataSourceName :: Lens' AppSyncFunctionConfiguration (Val Text)
 asfcDataSourceName = lens _appSyncFunctionConfigurationDataSourceName (\s a -> s { _appSyncFunctionConfigurationDataSourceName = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-description
@@ -74,11 +77,11 @@
 asfcDescription = lens _appSyncFunctionConfigurationDescription (\s a -> s { _appSyncFunctionConfigurationDescription = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-functionversion
-asfcFunctionVersion :: Lens' AppSyncFunctionConfiguration (Maybe (Val Text))
+asfcFunctionVersion :: Lens' AppSyncFunctionConfiguration (Val Text)
 asfcFunctionVersion = lens _appSyncFunctionConfigurationFunctionVersion (\s a -> s { _appSyncFunctionConfigurationFunctionVersion = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-name
-asfcName :: Lens' AppSyncFunctionConfiguration (Maybe (Val Text))
+asfcName :: Lens' AppSyncFunctionConfiguration (Val Text)
 asfcName = lens _appSyncFunctionConfigurationName (\s a -> s { _appSyncFunctionConfigurationName = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-requestmappingtemplate
diff --git a/library-gen/Stratosphere/Resources/CodeBuildProject.hs b/library-gen/Stratosphere/Resources/CodeBuildProject.hs
--- a/library-gen/Stratosphere/Resources/CodeBuildProject.hs
+++ b/library-gen/Stratosphere/Resources/CodeBuildProject.hs
@@ -12,6 +12,7 @@
 import Stratosphere.ResourceProperties.CodeBuildProjectProjectCache
 import Stratosphere.ResourceProperties.CodeBuildProjectEnvironment
 import Stratosphere.ResourceProperties.CodeBuildProjectLogsConfig
+import Stratosphere.ResourceProperties.CodeBuildProjectProjectSourceVersion
 import Stratosphere.ResourceProperties.CodeBuildProjectSource
 import Stratosphere.ResourceProperties.Tag
 import Stratosphere.ResourceProperties.CodeBuildProjectProjectTriggers
@@ -31,9 +32,11 @@
   , _codeBuildProjectName :: Maybe (Val Text)
   , _codeBuildProjectQueuedTimeoutInMinutes :: Maybe (Val Integer)
   , _codeBuildProjectSecondaryArtifacts :: Maybe [CodeBuildProjectArtifacts]
+  , _codeBuildProjectSecondarySourceVersions :: Maybe [CodeBuildProjectProjectSourceVersion]
   , _codeBuildProjectSecondarySources :: Maybe [CodeBuildProjectSource]
   , _codeBuildProjectServiceRole :: Val Text
   , _codeBuildProjectSource :: CodeBuildProjectSource
+  , _codeBuildProjectSourceVersion :: Maybe (Val Text)
   , _codeBuildProjectTags :: Maybe [Tag]
   , _codeBuildProjectTimeoutInMinutes :: Maybe (Val Integer)
   , _codeBuildProjectTriggers :: Maybe CodeBuildProjectProjectTriggers
@@ -56,9 +59,11 @@
         , fmap (("Name",) . toJSON) _codeBuildProjectName
         , fmap (("QueuedTimeoutInMinutes",) . toJSON) _codeBuildProjectQueuedTimeoutInMinutes
         , fmap (("SecondaryArtifacts",) . toJSON) _codeBuildProjectSecondaryArtifacts
+        , fmap (("SecondarySourceVersions",) . toJSON) _codeBuildProjectSecondarySourceVersions
         , fmap (("SecondarySources",) . toJSON) _codeBuildProjectSecondarySources
         , (Just . ("ServiceRole",) . toJSON) _codeBuildProjectServiceRole
         , (Just . ("Source",) . toJSON) _codeBuildProjectSource
+        , fmap (("SourceVersion",) . toJSON) _codeBuildProjectSourceVersion
         , fmap (("Tags",) . toJSON) _codeBuildProjectTags
         , fmap (("TimeoutInMinutes",) . toJSON) _codeBuildProjectTimeoutInMinutes
         , fmap (("Triggers",) . toJSON) _codeBuildProjectTriggers
@@ -86,9 +91,11 @@
   , _codeBuildProjectName = Nothing
   , _codeBuildProjectQueuedTimeoutInMinutes = Nothing
   , _codeBuildProjectSecondaryArtifacts = Nothing
+  , _codeBuildProjectSecondarySourceVersions = Nothing
   , _codeBuildProjectSecondarySources = Nothing
   , _codeBuildProjectServiceRole = serviceRolearg
   , _codeBuildProjectSource = sourcearg
+  , _codeBuildProjectSourceVersion = Nothing
   , _codeBuildProjectTags = Nothing
   , _codeBuildProjectTimeoutInMinutes = Nothing
   , _codeBuildProjectTriggers = Nothing
@@ -135,6 +142,10 @@
 cbpSecondaryArtifacts :: Lens' CodeBuildProject (Maybe [CodeBuildProjectArtifacts])
 cbpSecondaryArtifacts = lens _codeBuildProjectSecondaryArtifacts (\s a -> s { _codeBuildProjectSecondaryArtifacts = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-secondarysourceversions
+cbpSecondarySourceVersions :: Lens' CodeBuildProject (Maybe [CodeBuildProjectProjectSourceVersion])
+cbpSecondarySourceVersions = lens _codeBuildProjectSecondarySourceVersions (\s a -> s { _codeBuildProjectSecondarySourceVersions = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-secondarysources
 cbpSecondarySources :: Lens' CodeBuildProject (Maybe [CodeBuildProjectSource])
 cbpSecondarySources = lens _codeBuildProjectSecondarySources (\s a -> s { _codeBuildProjectSecondarySources = a })
@@ -146,6 +157,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-source
 cbpSource :: Lens' CodeBuildProject CodeBuildProjectSource
 cbpSource = lens _codeBuildProjectSource (\s a -> s { _codeBuildProjectSource = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-sourceversion
+cbpSourceVersion :: Lens' CodeBuildProject (Maybe (Val Text))
+cbpSourceVersion = lens _codeBuildProjectSourceVersion (\s a -> s { _codeBuildProjectSourceVersion = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-tags
 cbpTags :: Lens' CodeBuildProject (Maybe [Tag])
diff --git a/library-gen/Stratosphere/Resources/CodeCommitRepository.hs b/library-gen/Stratosphere/Resources/CodeCommitRepository.hs
--- a/library-gen/Stratosphere/Resources/CodeCommitRepository.hs
+++ b/library-gen/Stratosphere/Resources/CodeCommitRepository.hs
@@ -8,13 +8,15 @@
 module Stratosphere.Resources.CodeCommitRepository where
 
 import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.CodeCommitRepositoryCode
 import Stratosphere.ResourceProperties.CodeCommitRepositoryRepositoryTrigger
 
 -- | Full data type definition for CodeCommitRepository. See
 -- 'codeCommitRepository' for a more convenient constructor.
 data CodeCommitRepository =
   CodeCommitRepository
-  { _codeCommitRepositoryRepositoryDescription :: Maybe (Val Text)
+  { _codeCommitRepositoryCode :: Maybe CodeCommitRepositoryCode
+  , _codeCommitRepositoryRepositoryDescription :: Maybe (Val Text)
   , _codeCommitRepositoryRepositoryName :: Val Text
   , _codeCommitRepositoryTriggers :: Maybe [CodeCommitRepositoryRepositoryTrigger]
   } deriving (Show, Eq)
@@ -25,7 +27,8 @@
     { resourcePropertiesType = "AWS::CodeCommit::Repository"
     , resourcePropertiesProperties =
         hashMapFromList $ catMaybes
-        [ fmap (("RepositoryDescription",) . toJSON) _codeCommitRepositoryRepositoryDescription
+        [ fmap (("Code",) . toJSON) _codeCommitRepositoryCode
+        , fmap (("RepositoryDescription",) . toJSON) _codeCommitRepositoryRepositoryDescription
         , (Just . ("RepositoryName",) . toJSON) _codeCommitRepositoryRepositoryName
         , fmap (("Triggers",) . toJSON) _codeCommitRepositoryTriggers
         ]
@@ -38,10 +41,15 @@
   -> CodeCommitRepository
 codeCommitRepository repositoryNamearg =
   CodeCommitRepository
-  { _codeCommitRepositoryRepositoryDescription = Nothing
+  { _codeCommitRepositoryCode = Nothing
+  , _codeCommitRepositoryRepositoryDescription = Nothing
   , _codeCommitRepositoryRepositoryName = repositoryNamearg
   , _codeCommitRepositoryTriggers = Nothing
   }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codecommit-repository.html#cfn-codecommit-repository-code
+ccrCode :: Lens' CodeCommitRepository (Maybe CodeCommitRepositoryCode)
+ccrCode = lens _codeCommitRepositoryCode (\s a -> s { _codeCommitRepositoryCode = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codecommit-repository.html#cfn-codecommit-repository-repositorydescription
 ccrRepositoryDescription :: Lens' CodeCommitRepository (Maybe (Val Text))
diff --git a/library-gen/Stratosphere/Resources/EC2CapacityReservation.hs b/library-gen/Stratosphere/Resources/EC2CapacityReservation.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/EC2CapacityReservation.hs
@@ -0,0 +1,115 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html
+
+module Stratosphere.Resources.EC2CapacityReservation where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.EC2CapacityReservationTagSpecification
+
+-- | Full data type definition for EC2CapacityReservation. See
+-- 'ec2CapacityReservation' for a more convenient constructor.
+data EC2CapacityReservation =
+  EC2CapacityReservation
+  { _eC2CapacityReservationAvailabilityZone :: Val Text
+  , _eC2CapacityReservationEbsOptimized :: Maybe (Val Bool)
+  , _eC2CapacityReservationEndDate :: Maybe (Val Text)
+  , _eC2CapacityReservationEndDateType :: Maybe (Val Text)
+  , _eC2CapacityReservationEphemeralStorage :: Maybe (Val Bool)
+  , _eC2CapacityReservationInstanceCount :: Val Integer
+  , _eC2CapacityReservationInstanceMatchCriteria :: Maybe (Val Text)
+  , _eC2CapacityReservationInstancePlatform :: Val Text
+  , _eC2CapacityReservationInstanceType :: Val Text
+  , _eC2CapacityReservationTagSpecifications :: Maybe [EC2CapacityReservationTagSpecification]
+  , _eC2CapacityReservationTenancy :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToResourceProperties EC2CapacityReservation where
+  toResourceProperties EC2CapacityReservation{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::EC2::CapacityReservation"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ (Just . ("AvailabilityZone",) . toJSON) _eC2CapacityReservationAvailabilityZone
+        , fmap (("EbsOptimized",) . toJSON) _eC2CapacityReservationEbsOptimized
+        , fmap (("EndDate",) . toJSON) _eC2CapacityReservationEndDate
+        , fmap (("EndDateType",) . toJSON) _eC2CapacityReservationEndDateType
+        , fmap (("EphemeralStorage",) . toJSON) _eC2CapacityReservationEphemeralStorage
+        , (Just . ("InstanceCount",) . toJSON) _eC2CapacityReservationInstanceCount
+        , fmap (("InstanceMatchCriteria",) . toJSON) _eC2CapacityReservationInstanceMatchCriteria
+        , (Just . ("InstancePlatform",) . toJSON) _eC2CapacityReservationInstancePlatform
+        , (Just . ("InstanceType",) . toJSON) _eC2CapacityReservationInstanceType
+        , fmap (("TagSpecifications",) . toJSON) _eC2CapacityReservationTagSpecifications
+        , fmap (("Tenancy",) . toJSON) _eC2CapacityReservationTenancy
+        ]
+    }
+
+-- | Constructor for 'EC2CapacityReservation' containing required fields as
+-- arguments.
+ec2CapacityReservation
+  :: Val Text -- ^ 'eccrAvailabilityZone'
+  -> Val Integer -- ^ 'eccrInstanceCount'
+  -> Val Text -- ^ 'eccrInstancePlatform'
+  -> Val Text -- ^ 'eccrInstanceType'
+  -> EC2CapacityReservation
+ec2CapacityReservation availabilityZonearg instanceCountarg instancePlatformarg instanceTypearg =
+  EC2CapacityReservation
+  { _eC2CapacityReservationAvailabilityZone = availabilityZonearg
+  , _eC2CapacityReservationEbsOptimized = Nothing
+  , _eC2CapacityReservationEndDate = Nothing
+  , _eC2CapacityReservationEndDateType = Nothing
+  , _eC2CapacityReservationEphemeralStorage = Nothing
+  , _eC2CapacityReservationInstanceCount = instanceCountarg
+  , _eC2CapacityReservationInstanceMatchCriteria = Nothing
+  , _eC2CapacityReservationInstancePlatform = instancePlatformarg
+  , _eC2CapacityReservationInstanceType = instanceTypearg
+  , _eC2CapacityReservationTagSpecifications = Nothing
+  , _eC2CapacityReservationTenancy = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-availabilityzone
+eccrAvailabilityZone :: Lens' EC2CapacityReservation (Val Text)
+eccrAvailabilityZone = lens _eC2CapacityReservationAvailabilityZone (\s a -> s { _eC2CapacityReservationAvailabilityZone = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-ebsoptimized
+eccrEbsOptimized :: Lens' EC2CapacityReservation (Maybe (Val Bool))
+eccrEbsOptimized = lens _eC2CapacityReservationEbsOptimized (\s a -> s { _eC2CapacityReservationEbsOptimized = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-enddate
+eccrEndDate :: Lens' EC2CapacityReservation (Maybe (Val Text))
+eccrEndDate = lens _eC2CapacityReservationEndDate (\s a -> s { _eC2CapacityReservationEndDate = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-enddatetype
+eccrEndDateType :: Lens' EC2CapacityReservation (Maybe (Val Text))
+eccrEndDateType = lens _eC2CapacityReservationEndDateType (\s a -> s { _eC2CapacityReservationEndDateType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-ephemeralstorage
+eccrEphemeralStorage :: Lens' EC2CapacityReservation (Maybe (Val Bool))
+eccrEphemeralStorage = lens _eC2CapacityReservationEphemeralStorage (\s a -> s { _eC2CapacityReservationEphemeralStorage = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-instancecount
+eccrInstanceCount :: Lens' EC2CapacityReservation (Val Integer)
+eccrInstanceCount = lens _eC2CapacityReservationInstanceCount (\s a -> s { _eC2CapacityReservationInstanceCount = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-instancematchcriteria
+eccrInstanceMatchCriteria :: Lens' EC2CapacityReservation (Maybe (Val Text))
+eccrInstanceMatchCriteria = lens _eC2CapacityReservationInstanceMatchCriteria (\s a -> s { _eC2CapacityReservationInstanceMatchCriteria = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-instanceplatform
+eccrInstancePlatform :: Lens' EC2CapacityReservation (Val Text)
+eccrInstancePlatform = lens _eC2CapacityReservationInstancePlatform (\s a -> s { _eC2CapacityReservationInstancePlatform = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-instancetype
+eccrInstanceType :: Lens' EC2CapacityReservation (Val Text)
+eccrInstanceType = lens _eC2CapacityReservationInstanceType (\s a -> s { _eC2CapacityReservationInstanceType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-tagspecifications
+eccrTagSpecifications :: Lens' EC2CapacityReservation (Maybe [EC2CapacityReservationTagSpecification])
+eccrTagSpecifications = lens _eC2CapacityReservationTagSpecifications (\s a -> s { _eC2CapacityReservationTagSpecifications = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-tenancy
+eccrTenancy :: Lens' EC2CapacityReservation (Maybe (Val Text))
+eccrTenancy = lens _eC2CapacityReservationTenancy (\s a -> s { _eC2CapacityReservationTenancy = a })
diff --git a/library-gen/Stratosphere/Resources/ECSTaskDefinition.hs b/library-gen/Stratosphere/Resources/ECSTaskDefinition.hs
--- a/library-gen/Stratosphere/Resources/ECSTaskDefinition.hs
+++ b/library-gen/Stratosphere/Resources/ECSTaskDefinition.hs
@@ -10,6 +10,7 @@
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.ECSTaskDefinitionContainerDefinition
 import Stratosphere.ResourceProperties.ECSTaskDefinitionTaskDefinitionPlacementConstraint
+import Stratosphere.ResourceProperties.ECSTaskDefinitionProxyConfiguration
 import Stratosphere.ResourceProperties.ECSTaskDefinitionVolume
 
 -- | Full data type definition for ECSTaskDefinition. See 'ecsTaskDefinition'
@@ -23,6 +24,7 @@
   , _eCSTaskDefinitionMemory :: Maybe (Val Text)
   , _eCSTaskDefinitionNetworkMode :: Maybe (Val Text)
   , _eCSTaskDefinitionPlacementConstraints :: Maybe [ECSTaskDefinitionTaskDefinitionPlacementConstraint]
+  , _eCSTaskDefinitionProxyConfiguration :: Maybe ECSTaskDefinitionProxyConfiguration
   , _eCSTaskDefinitionRequiresCompatibilities :: Maybe (ValList Text)
   , _eCSTaskDefinitionTaskRoleArn :: Maybe (Val Text)
   , _eCSTaskDefinitionVolumes :: Maybe [ECSTaskDefinitionVolume]
@@ -41,6 +43,7 @@
         , fmap (("Memory",) . toJSON) _eCSTaskDefinitionMemory
         , fmap (("NetworkMode",) . toJSON) _eCSTaskDefinitionNetworkMode
         , fmap (("PlacementConstraints",) . toJSON) _eCSTaskDefinitionPlacementConstraints
+        , fmap (("ProxyConfiguration",) . toJSON) _eCSTaskDefinitionProxyConfiguration
         , fmap (("RequiresCompatibilities",) . toJSON) _eCSTaskDefinitionRequiresCompatibilities
         , fmap (("TaskRoleArn",) . toJSON) _eCSTaskDefinitionTaskRoleArn
         , fmap (("Volumes",) . toJSON) _eCSTaskDefinitionVolumes
@@ -60,6 +63,7 @@
   , _eCSTaskDefinitionMemory = Nothing
   , _eCSTaskDefinitionNetworkMode = Nothing
   , _eCSTaskDefinitionPlacementConstraints = Nothing
+  , _eCSTaskDefinitionProxyConfiguration = Nothing
   , _eCSTaskDefinitionRequiresCompatibilities = Nothing
   , _eCSTaskDefinitionTaskRoleArn = Nothing
   , _eCSTaskDefinitionVolumes = Nothing
@@ -92,6 +96,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-placementconstraints
 ecstdPlacementConstraints :: Lens' ECSTaskDefinition (Maybe [ECSTaskDefinitionTaskDefinitionPlacementConstraint])
 ecstdPlacementConstraints = lens _eCSTaskDefinitionPlacementConstraints (\s a -> s { _eCSTaskDefinitionPlacementConstraints = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-proxyconfiguration
+ecstdProxyConfiguration :: Lens' ECSTaskDefinition (Maybe ECSTaskDefinitionProxyConfiguration)
+ecstdProxyConfiguration = lens _eCSTaskDefinitionProxyConfiguration (\s a -> s { _eCSTaskDefinitionProxyConfiguration = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-requirescompatibilities
 ecstdRequiresCompatibilities :: Lens' ECSTaskDefinition (Maybe (ValList Text))
diff --git a/library-gen/Stratosphere/Resources/GlueClassifier.hs b/library-gen/Stratosphere/Resources/GlueClassifier.hs
--- a/library-gen/Stratosphere/Resources/GlueClassifier.hs
+++ b/library-gen/Stratosphere/Resources/GlueClassifier.hs
@@ -8,6 +8,7 @@
 module Stratosphere.Resources.GlueClassifier where
 
 import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.GlueClassifierCsvClassifier
 import Stratosphere.ResourceProperties.GlueClassifierGrokClassifier
 import Stratosphere.ResourceProperties.GlueClassifierJsonClassifier
 import Stratosphere.ResourceProperties.GlueClassifierXMLClassifier
@@ -16,7 +17,8 @@
 -- more convenient constructor.
 data GlueClassifier =
   GlueClassifier
-  { _glueClassifierGrokClassifier :: Maybe GlueClassifierGrokClassifier
+  { _glueClassifierCsvClassifier :: Maybe GlueClassifierCsvClassifier
+  , _glueClassifierGrokClassifier :: Maybe GlueClassifierGrokClassifier
   , _glueClassifierJsonClassifier :: Maybe GlueClassifierJsonClassifier
   , _glueClassifierXMLClassifier :: Maybe GlueClassifierXMLClassifier
   } deriving (Show, Eq)
@@ -27,7 +29,8 @@
     { resourcePropertiesType = "AWS::Glue::Classifier"
     , resourcePropertiesProperties =
         hashMapFromList $ catMaybes
-        [ fmap (("GrokClassifier",) . toJSON) _glueClassifierGrokClassifier
+        [ fmap (("CsvClassifier",) . toJSON) _glueClassifierCsvClassifier
+        , fmap (("GrokClassifier",) . toJSON) _glueClassifierGrokClassifier
         , fmap (("JsonClassifier",) . toJSON) _glueClassifierJsonClassifier
         , fmap (("XMLClassifier",) . toJSON) _glueClassifierXMLClassifier
         ]
@@ -38,10 +41,15 @@
   :: GlueClassifier
 glueClassifier  =
   GlueClassifier
-  { _glueClassifierGrokClassifier = Nothing
+  { _glueClassifierCsvClassifier = Nothing
+  , _glueClassifierGrokClassifier = Nothing
   , _glueClassifierJsonClassifier = Nothing
   , _glueClassifierXMLClassifier = Nothing
   }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-classifier.html#cfn-glue-classifier-csvclassifier
+gcCsvClassifier :: Lens' GlueClassifier (Maybe GlueClassifierCsvClassifier)
+gcCsvClassifier = lens _glueClassifierCsvClassifier (\s a -> s { _glueClassifierCsvClassifier = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-classifier.html#cfn-glue-classifier-grokclassifier
 gcGrokClassifier :: Lens' GlueClassifier (Maybe GlueClassifierGrokClassifier)
diff --git a/library-gen/Stratosphere/Resources/GlueCrawler.hs b/library-gen/Stratosphere/Resources/GlueCrawler.hs
--- a/library-gen/Stratosphere/Resources/GlueCrawler.hs
+++ b/library-gen/Stratosphere/Resources/GlueCrawler.hs
@@ -18,6 +18,7 @@
   GlueCrawler
   { _glueCrawlerClassifiers :: Maybe (ValList Text)
   , _glueCrawlerConfiguration :: Maybe (Val Text)
+  , _glueCrawlerCrawlerSecurityConfiguration :: Maybe (Val Text)
   , _glueCrawlerDatabaseName :: Val Text
   , _glueCrawlerDescription :: Maybe (Val Text)
   , _glueCrawlerName :: Maybe (Val Text)
@@ -25,6 +26,7 @@
   , _glueCrawlerSchedule :: Maybe GlueCrawlerSchedule
   , _glueCrawlerSchemaChangePolicy :: Maybe GlueCrawlerSchemaChangePolicy
   , _glueCrawlerTablePrefix :: Maybe (Val Text)
+  , _glueCrawlerTags :: Maybe Object
   , _glueCrawlerTargets :: GlueCrawlerTargets
   } deriving (Show, Eq)
 
@@ -36,6 +38,7 @@
         hashMapFromList $ catMaybes
         [ fmap (("Classifiers",) . toJSON) _glueCrawlerClassifiers
         , fmap (("Configuration",) . toJSON) _glueCrawlerConfiguration
+        , fmap (("CrawlerSecurityConfiguration",) . toJSON) _glueCrawlerCrawlerSecurityConfiguration
         , (Just . ("DatabaseName",) . toJSON) _glueCrawlerDatabaseName
         , fmap (("Description",) . toJSON) _glueCrawlerDescription
         , fmap (("Name",) . toJSON) _glueCrawlerName
@@ -43,6 +46,7 @@
         , fmap (("Schedule",) . toJSON) _glueCrawlerSchedule
         , fmap (("SchemaChangePolicy",) . toJSON) _glueCrawlerSchemaChangePolicy
         , fmap (("TablePrefix",) . toJSON) _glueCrawlerTablePrefix
+        , fmap (("Tags",) . toJSON) _glueCrawlerTags
         , (Just . ("Targets",) . toJSON) _glueCrawlerTargets
         ]
     }
@@ -57,6 +61,7 @@
   GlueCrawler
   { _glueCrawlerClassifiers = Nothing
   , _glueCrawlerConfiguration = Nothing
+  , _glueCrawlerCrawlerSecurityConfiguration = Nothing
   , _glueCrawlerDatabaseName = databaseNamearg
   , _glueCrawlerDescription = Nothing
   , _glueCrawlerName = Nothing
@@ -64,6 +69,7 @@
   , _glueCrawlerSchedule = Nothing
   , _glueCrawlerSchemaChangePolicy = Nothing
   , _glueCrawlerTablePrefix = Nothing
+  , _glueCrawlerTags = Nothing
   , _glueCrawlerTargets = targetsarg
   }
 
@@ -75,6 +81,10 @@
 gcConfiguration :: Lens' GlueCrawler (Maybe (Val Text))
 gcConfiguration = lens _glueCrawlerConfiguration (\s a -> s { _glueCrawlerConfiguration = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-crawlersecurityconfiguration
+gcCrawlerSecurityConfiguration :: Lens' GlueCrawler (Maybe (Val Text))
+gcCrawlerSecurityConfiguration = lens _glueCrawlerCrawlerSecurityConfiguration (\s a -> s { _glueCrawlerCrawlerSecurityConfiguration = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-databasename
 gcDatabaseName :: Lens' GlueCrawler (Val Text)
 gcDatabaseName = lens _glueCrawlerDatabaseName (\s a -> s { _glueCrawlerDatabaseName = a })
@@ -102,6 +112,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-tableprefix
 gcTablePrefix :: Lens' GlueCrawler (Maybe (Val Text))
 gcTablePrefix = lens _glueCrawlerTablePrefix (\s a -> s { _glueCrawlerTablePrefix = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-tags
+gcTags :: Lens' GlueCrawler (Maybe Object)
+gcTags = lens _glueCrawlerTags (\s a -> s { _glueCrawlerTags = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-targets
 gcTargets :: Lens' GlueCrawler GlueCrawlerTargets
diff --git a/library-gen/Stratosphere/Resources/GlueDataCatalogEncryptionSettings.hs b/library-gen/Stratosphere/Resources/GlueDataCatalogEncryptionSettings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/GlueDataCatalogEncryptionSettings.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-datacatalogencryptionsettings.html
+
+module Stratosphere.Resources.GlueDataCatalogEncryptionSettings where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.GlueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings
+
+-- | Full data type definition for GlueDataCatalogEncryptionSettings. See
+-- 'glueDataCatalogEncryptionSettings' for a more convenient constructor.
+data GlueDataCatalogEncryptionSettings =
+  GlueDataCatalogEncryptionSettings
+  { _glueDataCatalogEncryptionSettingsCatalogId :: Val Text
+  , _glueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings :: GlueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings
+  } deriving (Show, Eq)
+
+instance ToResourceProperties GlueDataCatalogEncryptionSettings where
+  toResourceProperties GlueDataCatalogEncryptionSettings{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::Glue::DataCatalogEncryptionSettings"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ (Just . ("CatalogId",) . toJSON) _glueDataCatalogEncryptionSettingsCatalogId
+        , (Just . ("DataCatalogEncryptionSettings",) . toJSON) _glueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings
+        ]
+    }
+
+-- | Constructor for 'GlueDataCatalogEncryptionSettings' containing required
+-- fields as arguments.
+glueDataCatalogEncryptionSettings
+  :: Val Text -- ^ 'gdcesCatalogId'
+  -> GlueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings -- ^ 'gdcesDataCatalogEncryptionSettings'
+  -> GlueDataCatalogEncryptionSettings
+glueDataCatalogEncryptionSettings catalogIdarg dataCatalogEncryptionSettingsarg =
+  GlueDataCatalogEncryptionSettings
+  { _glueDataCatalogEncryptionSettingsCatalogId = catalogIdarg
+  , _glueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings = dataCatalogEncryptionSettingsarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-datacatalogencryptionsettings.html#cfn-glue-datacatalogencryptionsettings-catalogid
+gdcesCatalogId :: Lens' GlueDataCatalogEncryptionSettings (Val Text)
+gdcesCatalogId = lens _glueDataCatalogEncryptionSettingsCatalogId (\s a -> s { _glueDataCatalogEncryptionSettingsCatalogId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-datacatalogencryptionsettings.html#cfn-glue-datacatalogencryptionsettings-datacatalogencryptionsettings
+gdcesDataCatalogEncryptionSettings :: Lens' GlueDataCatalogEncryptionSettings GlueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings
+gdcesDataCatalogEncryptionSettings = lens _glueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings (\s a -> s { _glueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings = a })
diff --git a/library-gen/Stratosphere/Resources/GlueDevEndpoint.hs b/library-gen/Stratosphere/Resources/GlueDevEndpoint.hs
--- a/library-gen/Stratosphere/Resources/GlueDevEndpoint.hs
+++ b/library-gen/Stratosphere/Resources/GlueDevEndpoint.hs
@@ -18,10 +18,12 @@
   , _glueDevEndpointExtraJarsS3Path :: Maybe (Val Text)
   , _glueDevEndpointExtraPythonLibsS3Path :: Maybe (Val Text)
   , _glueDevEndpointNumberOfNodes :: Maybe (Val Integer)
-  , _glueDevEndpointPublicKey :: Val Text
+  , _glueDevEndpointPublicKey :: Maybe (Val Text)
   , _glueDevEndpointRoleArn :: Val Text
+  , _glueDevEndpointSecurityConfiguration :: Maybe (Val Text)
   , _glueDevEndpointSecurityGroupIds :: Maybe (ValList Text)
   , _glueDevEndpointSubnetId :: Maybe (Val Text)
+  , _glueDevEndpointTags :: Maybe Object
   } deriving (Show, Eq)
 
 instance ToResourceProperties GlueDevEndpoint where
@@ -34,29 +36,32 @@
         , fmap (("ExtraJarsS3Path",) . toJSON) _glueDevEndpointExtraJarsS3Path
         , fmap (("ExtraPythonLibsS3Path",) . toJSON) _glueDevEndpointExtraPythonLibsS3Path
         , fmap (("NumberOfNodes",) . toJSON) _glueDevEndpointNumberOfNodes
-        , (Just . ("PublicKey",) . toJSON) _glueDevEndpointPublicKey
+        , fmap (("PublicKey",) . toJSON) _glueDevEndpointPublicKey
         , (Just . ("RoleArn",) . toJSON) _glueDevEndpointRoleArn
+        , fmap (("SecurityConfiguration",) . toJSON) _glueDevEndpointSecurityConfiguration
         , fmap (("SecurityGroupIds",) . toJSON) _glueDevEndpointSecurityGroupIds
         , fmap (("SubnetId",) . toJSON) _glueDevEndpointSubnetId
+        , fmap (("Tags",) . toJSON) _glueDevEndpointTags
         ]
     }
 
 -- | Constructor for 'GlueDevEndpoint' containing required fields as
 -- arguments.
 glueDevEndpoint
-  :: Val Text -- ^ 'gdePublicKey'
-  -> Val Text -- ^ 'gdeRoleArn'
+  :: Val Text -- ^ 'gdeRoleArn'
   -> GlueDevEndpoint
-glueDevEndpoint publicKeyarg roleArnarg =
+glueDevEndpoint roleArnarg =
   GlueDevEndpoint
   { _glueDevEndpointEndpointName = Nothing
   , _glueDevEndpointExtraJarsS3Path = Nothing
   , _glueDevEndpointExtraPythonLibsS3Path = Nothing
   , _glueDevEndpointNumberOfNodes = Nothing
-  , _glueDevEndpointPublicKey = publicKeyarg
+  , _glueDevEndpointPublicKey = Nothing
   , _glueDevEndpointRoleArn = roleArnarg
+  , _glueDevEndpointSecurityConfiguration = Nothing
   , _glueDevEndpointSecurityGroupIds = Nothing
   , _glueDevEndpointSubnetId = Nothing
+  , _glueDevEndpointTags = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-endpointname
@@ -76,13 +81,17 @@
 gdeNumberOfNodes = lens _glueDevEndpointNumberOfNodes (\s a -> s { _glueDevEndpointNumberOfNodes = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-publickey
-gdePublicKey :: Lens' GlueDevEndpoint (Val Text)
+gdePublicKey :: Lens' GlueDevEndpoint (Maybe (Val Text))
 gdePublicKey = lens _glueDevEndpointPublicKey (\s a -> s { _glueDevEndpointPublicKey = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-rolearn
 gdeRoleArn :: Lens' GlueDevEndpoint (Val Text)
 gdeRoleArn = lens _glueDevEndpointRoleArn (\s a -> s { _glueDevEndpointRoleArn = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-securityconfiguration
+gdeSecurityConfiguration :: Lens' GlueDevEndpoint (Maybe (Val Text))
+gdeSecurityConfiguration = lens _glueDevEndpointSecurityConfiguration (\s a -> s { _glueDevEndpointSecurityConfiguration = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-securitygroupids
 gdeSecurityGroupIds :: Lens' GlueDevEndpoint (Maybe (ValList Text))
 gdeSecurityGroupIds = lens _glueDevEndpointSecurityGroupIds (\s a -> s { _glueDevEndpointSecurityGroupIds = a })
@@ -90,3 +99,7 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-subnetid
 gdeSubnetId :: Lens' GlueDevEndpoint (Maybe (Val Text))
 gdeSubnetId = lens _glueDevEndpointSubnetId (\s a -> s { _glueDevEndpointSubnetId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-tags
+gdeTags :: Lens' GlueDevEndpoint (Maybe Object)
+gdeTags = lens _glueDevEndpointTags (\s a -> s { _glueDevEndpointTags = a })
diff --git a/library-gen/Stratosphere/Resources/GlueJob.hs b/library-gen/Stratosphere/Resources/GlueJob.hs
--- a/library-gen/Stratosphere/Resources/GlueJob.hs
+++ b/library-gen/Stratosphere/Resources/GlueJob.hs
@@ -26,6 +26,8 @@
   , _glueJobMaxRetries :: Maybe (Val Double)
   , _glueJobName :: Maybe (Val Text)
   , _glueJobRole :: Val Text
+  , _glueJobSecurityConfiguration :: Maybe (Val Text)
+  , _glueJobTags :: Maybe Object
   } deriving (Show, Eq)
 
 instance ToResourceProperties GlueJob where
@@ -44,6 +46,8 @@
         , fmap (("MaxRetries",) . toJSON) _glueJobMaxRetries
         , fmap (("Name",) . toJSON) _glueJobName
         , (Just . ("Role",) . toJSON) _glueJobRole
+        , fmap (("SecurityConfiguration",) . toJSON) _glueJobSecurityConfiguration
+        , fmap (("Tags",) . toJSON) _glueJobTags
         ]
     }
 
@@ -64,6 +68,8 @@
   , _glueJobMaxRetries = Nothing
   , _glueJobName = Nothing
   , _glueJobRole = rolearg
+  , _glueJobSecurityConfiguration = Nothing
+  , _glueJobTags = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-allocatedcapacity
@@ -105,3 +111,11 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-role
 gjRole :: Lens' GlueJob (Val Text)
 gjRole = lens _glueJobRole (\s a -> s { _glueJobRole = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-securityconfiguration
+gjSecurityConfiguration :: Lens' GlueJob (Maybe (Val Text))
+gjSecurityConfiguration = lens _glueJobSecurityConfiguration (\s a -> s { _glueJobSecurityConfiguration = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-tags
+gjTags :: Lens' GlueJob (Maybe Object)
+gjTags = lens _glueJobTags (\s a -> s { _glueJobTags = a })
diff --git a/library-gen/Stratosphere/Resources/GlueSecurityConfiguration.hs b/library-gen/Stratosphere/Resources/GlueSecurityConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/GlueSecurityConfiguration.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-securityconfiguration.html
+
+module Stratosphere.Resources.GlueSecurityConfiguration where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.GlueSecurityConfigurationEncryptionConfiguration
+
+-- | Full data type definition for GlueSecurityConfiguration. See
+-- 'glueSecurityConfiguration' for a more convenient constructor.
+data GlueSecurityConfiguration =
+  GlueSecurityConfiguration
+  { _glueSecurityConfigurationEncryptionConfiguration :: GlueSecurityConfigurationEncryptionConfiguration
+  , _glueSecurityConfigurationName :: Val Text
+  } deriving (Show, Eq)
+
+instance ToResourceProperties GlueSecurityConfiguration where
+  toResourceProperties GlueSecurityConfiguration{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::Glue::SecurityConfiguration"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ (Just . ("EncryptionConfiguration",) . toJSON) _glueSecurityConfigurationEncryptionConfiguration
+        , (Just . ("Name",) . toJSON) _glueSecurityConfigurationName
+        ]
+    }
+
+-- | Constructor for 'GlueSecurityConfiguration' containing required fields as
+-- arguments.
+glueSecurityConfiguration
+  :: GlueSecurityConfigurationEncryptionConfiguration -- ^ 'gscEncryptionConfiguration'
+  -> Val Text -- ^ 'gscName'
+  -> GlueSecurityConfiguration
+glueSecurityConfiguration encryptionConfigurationarg namearg =
+  GlueSecurityConfiguration
+  { _glueSecurityConfigurationEncryptionConfiguration = encryptionConfigurationarg
+  , _glueSecurityConfigurationName = namearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-securityconfiguration.html#cfn-glue-securityconfiguration-encryptionconfiguration
+gscEncryptionConfiguration :: Lens' GlueSecurityConfiguration GlueSecurityConfigurationEncryptionConfiguration
+gscEncryptionConfiguration = lens _glueSecurityConfigurationEncryptionConfiguration (\s a -> s { _glueSecurityConfigurationEncryptionConfiguration = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-securityconfiguration.html#cfn-glue-securityconfiguration-name
+gscName :: Lens' GlueSecurityConfiguration (Val Text)
+gscName = lens _glueSecurityConfigurationName (\s a -> s { _glueSecurityConfigurationName = a })
diff --git a/library-gen/Stratosphere/Resources/GlueTrigger.hs b/library-gen/Stratosphere/Resources/GlueTrigger.hs
--- a/library-gen/Stratosphere/Resources/GlueTrigger.hs
+++ b/library-gen/Stratosphere/Resources/GlueTrigger.hs
@@ -20,6 +20,7 @@
   , _glueTriggerName :: Maybe (Val Text)
   , _glueTriggerPredicate :: Maybe GlueTriggerPredicate
   , _glueTriggerSchedule :: Maybe (Val Text)
+  , _glueTriggerTags :: Maybe Object
   , _glueTriggerType :: Val Text
   } deriving (Show, Eq)
 
@@ -34,6 +35,7 @@
         , fmap (("Name",) . toJSON) _glueTriggerName
         , fmap (("Predicate",) . toJSON) _glueTriggerPredicate
         , fmap (("Schedule",) . toJSON) _glueTriggerSchedule
+        , fmap (("Tags",) . toJSON) _glueTriggerTags
         , (Just . ("Type",) . toJSON) _glueTriggerType
         ]
     }
@@ -50,6 +52,7 @@
   , _glueTriggerName = Nothing
   , _glueTriggerPredicate = Nothing
   , _glueTriggerSchedule = Nothing
+  , _glueTriggerTags = Nothing
   , _glueTriggerType = typearg
   }
 
@@ -72,6 +75,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html#cfn-glue-trigger-schedule
 gtSchedule :: Lens' GlueTrigger (Maybe (Val Text))
 gtSchedule = lens _glueTriggerSchedule (\s a -> s { _glueTriggerSchedule = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html#cfn-glue-trigger-tags
+gtTags :: Lens' GlueTrigger (Maybe Object)
+gtTags = lens _glueTriggerTags (\s a -> s { _glueTriggerTags = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html#cfn-glue-trigger-type
 gtType :: Lens' GlueTrigger (Val Text)
diff --git a/library-gen/Stratosphere/Resources/MediaStoreContainer.hs b/library-gen/Stratosphere/Resources/MediaStoreContainer.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/MediaStoreContainer.hs
@@ -0,0 +1,70 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediastore-container.html
+
+module Stratosphere.Resources.MediaStoreContainer where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.MediaStoreContainerCorsRule
+
+-- | Full data type definition for MediaStoreContainer. See
+-- 'mediaStoreContainer' for a more convenient constructor.
+data MediaStoreContainer =
+  MediaStoreContainer
+  { _mediaStoreContainerAccessLoggingEnabled :: Maybe (Val Bool)
+  , _mediaStoreContainerContainerName :: Val Text
+  , _mediaStoreContainerCorsPolicy :: Maybe [MediaStoreContainerCorsRule]
+  , _mediaStoreContainerLifecyclePolicy :: Maybe (Val Text)
+  , _mediaStoreContainerPolicy :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToResourceProperties MediaStoreContainer where
+  toResourceProperties MediaStoreContainer{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::MediaStore::Container"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("AccessLoggingEnabled",) . toJSON) _mediaStoreContainerAccessLoggingEnabled
+        , (Just . ("ContainerName",) . toJSON) _mediaStoreContainerContainerName
+        , fmap (("CorsPolicy",) . toJSON) _mediaStoreContainerCorsPolicy
+        , fmap (("LifecyclePolicy",) . toJSON) _mediaStoreContainerLifecyclePolicy
+        , fmap (("Policy",) . toJSON) _mediaStoreContainerPolicy
+        ]
+    }
+
+-- | Constructor for 'MediaStoreContainer' containing required fields as
+-- arguments.
+mediaStoreContainer
+  :: Val Text -- ^ 'mscContainerName'
+  -> MediaStoreContainer
+mediaStoreContainer containerNamearg =
+  MediaStoreContainer
+  { _mediaStoreContainerAccessLoggingEnabled = Nothing
+  , _mediaStoreContainerContainerName = containerNamearg
+  , _mediaStoreContainerCorsPolicy = Nothing
+  , _mediaStoreContainerLifecyclePolicy = Nothing
+  , _mediaStoreContainerPolicy = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediastore-container.html#cfn-mediastore-container-accessloggingenabled
+mscAccessLoggingEnabled :: Lens' MediaStoreContainer (Maybe (Val Bool))
+mscAccessLoggingEnabled = lens _mediaStoreContainerAccessLoggingEnabled (\s a -> s { _mediaStoreContainerAccessLoggingEnabled = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediastore-container.html#cfn-mediastore-container-containername
+mscContainerName :: Lens' MediaStoreContainer (Val Text)
+mscContainerName = lens _mediaStoreContainerContainerName (\s a -> s { _mediaStoreContainerContainerName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediastore-container.html#cfn-mediastore-container-corspolicy
+mscCorsPolicy :: Lens' MediaStoreContainer (Maybe [MediaStoreContainerCorsRule])
+mscCorsPolicy = lens _mediaStoreContainerCorsPolicy (\s a -> s { _mediaStoreContainerCorsPolicy = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediastore-container.html#cfn-mediastore-container-lifecyclepolicy
+mscLifecyclePolicy :: Lens' MediaStoreContainer (Maybe (Val Text))
+mscLifecyclePolicy = lens _mediaStoreContainerLifecyclePolicy (\s a -> s { _mediaStoreContainerLifecyclePolicy = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediastore-container.html#cfn-mediastore-container-policy
+mscPolicy :: Lens' MediaStoreContainer (Maybe (Val Text))
+mscPolicy = lens _mediaStoreContainerPolicy (\s a -> s { _mediaStoreContainerPolicy = a })
diff --git a/library-gen/Stratosphere/Resources/PinpointEmailConfigurationSet.hs b/library-gen/Stratosphere/Resources/PinpointEmailConfigurationSet.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/PinpointEmailConfigurationSet.hs
@@ -0,0 +1,81 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-configurationset.html
+
+module Stratosphere.Resources.PinpointEmailConfigurationSet where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.PinpointEmailConfigurationSetDeliveryOptions
+import Stratosphere.ResourceProperties.PinpointEmailConfigurationSetReputationOptions
+import Stratosphere.ResourceProperties.PinpointEmailConfigurationSetSendingOptions
+import Stratosphere.ResourceProperties.PinpointEmailConfigurationSetTags
+import Stratosphere.ResourceProperties.PinpointEmailConfigurationSetTrackingOptions
+
+-- | Full data type definition for PinpointEmailConfigurationSet. See
+-- 'pinpointEmailConfigurationSet' for a more convenient constructor.
+data PinpointEmailConfigurationSet =
+  PinpointEmailConfigurationSet
+  { _pinpointEmailConfigurationSetDeliveryOptions :: Maybe PinpointEmailConfigurationSetDeliveryOptions
+  , _pinpointEmailConfigurationSetName :: Val Text
+  , _pinpointEmailConfigurationSetReputationOptions :: Maybe PinpointEmailConfigurationSetReputationOptions
+  , _pinpointEmailConfigurationSetSendingOptions :: Maybe PinpointEmailConfigurationSetSendingOptions
+  , _pinpointEmailConfigurationSetTags :: Maybe [PinpointEmailConfigurationSetTags]
+  , _pinpointEmailConfigurationSetTrackingOptions :: Maybe PinpointEmailConfigurationSetTrackingOptions
+  } deriving (Show, Eq)
+
+instance ToResourceProperties PinpointEmailConfigurationSet where
+  toResourceProperties PinpointEmailConfigurationSet{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::PinpointEmail::ConfigurationSet"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("DeliveryOptions",) . toJSON) _pinpointEmailConfigurationSetDeliveryOptions
+        , (Just . ("Name",) . toJSON) _pinpointEmailConfigurationSetName
+        , fmap (("ReputationOptions",) . toJSON) _pinpointEmailConfigurationSetReputationOptions
+        , fmap (("SendingOptions",) . toJSON) _pinpointEmailConfigurationSetSendingOptions
+        , fmap (("Tags",) . toJSON) _pinpointEmailConfigurationSetTags
+        , fmap (("TrackingOptions",) . toJSON) _pinpointEmailConfigurationSetTrackingOptions
+        ]
+    }
+
+-- | Constructor for 'PinpointEmailConfigurationSet' containing required
+-- fields as arguments.
+pinpointEmailConfigurationSet
+  :: Val Text -- ^ 'pecsName'
+  -> PinpointEmailConfigurationSet
+pinpointEmailConfigurationSet namearg =
+  PinpointEmailConfigurationSet
+  { _pinpointEmailConfigurationSetDeliveryOptions = Nothing
+  , _pinpointEmailConfigurationSetName = namearg
+  , _pinpointEmailConfigurationSetReputationOptions = Nothing
+  , _pinpointEmailConfigurationSetSendingOptions = Nothing
+  , _pinpointEmailConfigurationSetTags = Nothing
+  , _pinpointEmailConfigurationSetTrackingOptions = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-configurationset.html#cfn-pinpointemail-configurationset-deliveryoptions
+pecsDeliveryOptions :: Lens' PinpointEmailConfigurationSet (Maybe PinpointEmailConfigurationSetDeliveryOptions)
+pecsDeliveryOptions = lens _pinpointEmailConfigurationSetDeliveryOptions (\s a -> s { _pinpointEmailConfigurationSetDeliveryOptions = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-configurationset.html#cfn-pinpointemail-configurationset-name
+pecsName :: Lens' PinpointEmailConfigurationSet (Val Text)
+pecsName = lens _pinpointEmailConfigurationSetName (\s a -> s { _pinpointEmailConfigurationSetName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-configurationset.html#cfn-pinpointemail-configurationset-reputationoptions
+pecsReputationOptions :: Lens' PinpointEmailConfigurationSet (Maybe PinpointEmailConfigurationSetReputationOptions)
+pecsReputationOptions = lens _pinpointEmailConfigurationSetReputationOptions (\s a -> s { _pinpointEmailConfigurationSetReputationOptions = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-configurationset.html#cfn-pinpointemail-configurationset-sendingoptions
+pecsSendingOptions :: Lens' PinpointEmailConfigurationSet (Maybe PinpointEmailConfigurationSetSendingOptions)
+pecsSendingOptions = lens _pinpointEmailConfigurationSetSendingOptions (\s a -> s { _pinpointEmailConfigurationSetSendingOptions = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-configurationset.html#cfn-pinpointemail-configurationset-tags
+pecsTags :: Lens' PinpointEmailConfigurationSet (Maybe [PinpointEmailConfigurationSetTags])
+pecsTags = lens _pinpointEmailConfigurationSetTags (\s a -> s { _pinpointEmailConfigurationSetTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-configurationset.html#cfn-pinpointemail-configurationset-trackingoptions
+pecsTrackingOptions :: Lens' PinpointEmailConfigurationSet (Maybe PinpointEmailConfigurationSetTrackingOptions)
+pecsTrackingOptions = lens _pinpointEmailConfigurationSetTrackingOptions (\s a -> s { _pinpointEmailConfigurationSetTrackingOptions = a })
diff --git a/library-gen/Stratosphere/Resources/PinpointEmailConfigurationSetEventDestination.hs b/library-gen/Stratosphere/Resources/PinpointEmailConfigurationSetEventDestination.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/PinpointEmailConfigurationSetEventDestination.hs
@@ -0,0 +1,59 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-configurationseteventdestination.html
+
+module Stratosphere.Resources.PinpointEmailConfigurationSetEventDestination where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationEventDestination
+
+-- | Full data type definition for
+-- PinpointEmailConfigurationSetEventDestination. See
+-- 'pinpointEmailConfigurationSetEventDestination' for a more convenient
+-- constructor.
+data PinpointEmailConfigurationSetEventDestination =
+  PinpointEmailConfigurationSetEventDestination
+  { _pinpointEmailConfigurationSetEventDestinationConfigurationSetName :: Val Text
+  , _pinpointEmailConfigurationSetEventDestinationEventDestination :: Maybe PinpointEmailConfigurationSetEventDestinationEventDestination
+  , _pinpointEmailConfigurationSetEventDestinationEventDestinationName :: Val Text
+  } deriving (Show, Eq)
+
+instance ToResourceProperties PinpointEmailConfigurationSetEventDestination where
+  toResourceProperties PinpointEmailConfigurationSetEventDestination{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::PinpointEmail::ConfigurationSetEventDestination"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ (Just . ("ConfigurationSetName",) . toJSON) _pinpointEmailConfigurationSetEventDestinationConfigurationSetName
+        , fmap (("EventDestination",) . toJSON) _pinpointEmailConfigurationSetEventDestinationEventDestination
+        , (Just . ("EventDestinationName",) . toJSON) _pinpointEmailConfigurationSetEventDestinationEventDestinationName
+        ]
+    }
+
+-- | Constructor for 'PinpointEmailConfigurationSetEventDestination'
+-- containing required fields as arguments.
+pinpointEmailConfigurationSetEventDestination
+  :: Val Text -- ^ 'pecsedConfigurationSetName'
+  -> Val Text -- ^ 'pecsedEventDestinationName'
+  -> PinpointEmailConfigurationSetEventDestination
+pinpointEmailConfigurationSetEventDestination configurationSetNamearg eventDestinationNamearg =
+  PinpointEmailConfigurationSetEventDestination
+  { _pinpointEmailConfigurationSetEventDestinationConfigurationSetName = configurationSetNamearg
+  , _pinpointEmailConfigurationSetEventDestinationEventDestination = Nothing
+  , _pinpointEmailConfigurationSetEventDestinationEventDestinationName = eventDestinationNamearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-configurationseteventdestination.html#cfn-pinpointemail-configurationseteventdestination-configurationsetname
+pecsedConfigurationSetName :: Lens' PinpointEmailConfigurationSetEventDestination (Val Text)
+pecsedConfigurationSetName = lens _pinpointEmailConfigurationSetEventDestinationConfigurationSetName (\s a -> s { _pinpointEmailConfigurationSetEventDestinationConfigurationSetName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-configurationseteventdestination.html#cfn-pinpointemail-configurationseteventdestination-eventdestination
+pecsedEventDestination :: Lens' PinpointEmailConfigurationSetEventDestination (Maybe PinpointEmailConfigurationSetEventDestinationEventDestination)
+pecsedEventDestination = lens _pinpointEmailConfigurationSetEventDestinationEventDestination (\s a -> s { _pinpointEmailConfigurationSetEventDestinationEventDestination = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-configurationseteventdestination.html#cfn-pinpointemail-configurationseteventdestination-eventdestinationname
+pecsedEventDestinationName :: Lens' PinpointEmailConfigurationSetEventDestination (Val Text)
+pecsedEventDestinationName = lens _pinpointEmailConfigurationSetEventDestinationEventDestinationName (\s a -> s { _pinpointEmailConfigurationSetEventDestinationEventDestinationName = a })
diff --git a/library-gen/Stratosphere/Resources/PinpointEmailDedicatedIpPool.hs b/library-gen/Stratosphere/Resources/PinpointEmailDedicatedIpPool.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/PinpointEmailDedicatedIpPool.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-dedicatedippool.html
+
+module Stratosphere.Resources.PinpointEmailDedicatedIpPool where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.PinpointEmailDedicatedIpPoolTags
+
+-- | Full data type definition for PinpointEmailDedicatedIpPool. See
+-- 'pinpointEmailDedicatedIpPool' for a more convenient constructor.
+data PinpointEmailDedicatedIpPool =
+  PinpointEmailDedicatedIpPool
+  { _pinpointEmailDedicatedIpPoolPoolName :: Maybe (Val Text)
+  , _pinpointEmailDedicatedIpPoolTags :: Maybe [PinpointEmailDedicatedIpPoolTags]
+  } deriving (Show, Eq)
+
+instance ToResourceProperties PinpointEmailDedicatedIpPool where
+  toResourceProperties PinpointEmailDedicatedIpPool{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::PinpointEmail::DedicatedIpPool"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("PoolName",) . toJSON) _pinpointEmailDedicatedIpPoolPoolName
+        , fmap (("Tags",) . toJSON) _pinpointEmailDedicatedIpPoolTags
+        ]
+    }
+
+-- | Constructor for 'PinpointEmailDedicatedIpPool' containing required fields
+-- as arguments.
+pinpointEmailDedicatedIpPool
+  :: PinpointEmailDedicatedIpPool
+pinpointEmailDedicatedIpPool  =
+  PinpointEmailDedicatedIpPool
+  { _pinpointEmailDedicatedIpPoolPoolName = Nothing
+  , _pinpointEmailDedicatedIpPoolTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-dedicatedippool.html#cfn-pinpointemail-dedicatedippool-poolname
+pedipPoolName :: Lens' PinpointEmailDedicatedIpPool (Maybe (Val Text))
+pedipPoolName = lens _pinpointEmailDedicatedIpPoolPoolName (\s a -> s { _pinpointEmailDedicatedIpPoolPoolName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-dedicatedippool.html#cfn-pinpointemail-dedicatedippool-tags
+pedipTags :: Lens' PinpointEmailDedicatedIpPool (Maybe [PinpointEmailDedicatedIpPoolTags])
+pedipTags = lens _pinpointEmailDedicatedIpPoolTags (\s a -> s { _pinpointEmailDedicatedIpPoolTags = a })
diff --git a/library-gen/Stratosphere/Resources/PinpointEmailIdentity.hs b/library-gen/Stratosphere/Resources/PinpointEmailIdentity.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/PinpointEmailIdentity.hs
@@ -0,0 +1,71 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-identity.html
+
+module Stratosphere.Resources.PinpointEmailIdentity where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.PinpointEmailIdentityMailFromAttributes
+import Stratosphere.ResourceProperties.PinpointEmailIdentityTags
+
+-- | Full data type definition for PinpointEmailIdentity. See
+-- 'pinpointEmailIdentity' for a more convenient constructor.
+data PinpointEmailIdentity =
+  PinpointEmailIdentity
+  { _pinpointEmailIdentityDkimSigningEnabled :: Maybe (Val Bool)
+  , _pinpointEmailIdentityFeedbackForwardingEnabled :: Maybe (Val Bool)
+  , _pinpointEmailIdentityMailFromAttributes :: Maybe PinpointEmailIdentityMailFromAttributes
+  , _pinpointEmailIdentityName :: Val Text
+  , _pinpointEmailIdentityTags :: Maybe [PinpointEmailIdentityTags]
+  } deriving (Show, Eq)
+
+instance ToResourceProperties PinpointEmailIdentity where
+  toResourceProperties PinpointEmailIdentity{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::PinpointEmail::Identity"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("DkimSigningEnabled",) . toJSON) _pinpointEmailIdentityDkimSigningEnabled
+        , fmap (("FeedbackForwardingEnabled",) . toJSON) _pinpointEmailIdentityFeedbackForwardingEnabled
+        , fmap (("MailFromAttributes",) . toJSON) _pinpointEmailIdentityMailFromAttributes
+        , (Just . ("Name",) . toJSON) _pinpointEmailIdentityName
+        , fmap (("Tags",) . toJSON) _pinpointEmailIdentityTags
+        ]
+    }
+
+-- | Constructor for 'PinpointEmailIdentity' containing required fields as
+-- arguments.
+pinpointEmailIdentity
+  :: Val Text -- ^ 'peiName'
+  -> PinpointEmailIdentity
+pinpointEmailIdentity namearg =
+  PinpointEmailIdentity
+  { _pinpointEmailIdentityDkimSigningEnabled = Nothing
+  , _pinpointEmailIdentityFeedbackForwardingEnabled = Nothing
+  , _pinpointEmailIdentityMailFromAttributes = Nothing
+  , _pinpointEmailIdentityName = namearg
+  , _pinpointEmailIdentityTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-identity.html#cfn-pinpointemail-identity-dkimsigningenabled
+peiDkimSigningEnabled :: Lens' PinpointEmailIdentity (Maybe (Val Bool))
+peiDkimSigningEnabled = lens _pinpointEmailIdentityDkimSigningEnabled (\s a -> s { _pinpointEmailIdentityDkimSigningEnabled = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-identity.html#cfn-pinpointemail-identity-feedbackforwardingenabled
+peiFeedbackForwardingEnabled :: Lens' PinpointEmailIdentity (Maybe (Val Bool))
+peiFeedbackForwardingEnabled = lens _pinpointEmailIdentityFeedbackForwardingEnabled (\s a -> s { _pinpointEmailIdentityFeedbackForwardingEnabled = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-identity.html#cfn-pinpointemail-identity-mailfromattributes
+peiMailFromAttributes :: Lens' PinpointEmailIdentity (Maybe PinpointEmailIdentityMailFromAttributes)
+peiMailFromAttributes = lens _pinpointEmailIdentityMailFromAttributes (\s a -> s { _pinpointEmailIdentityMailFromAttributes = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-identity.html#cfn-pinpointemail-identity-name
+peiName :: Lens' PinpointEmailIdentity (Val Text)
+peiName = lens _pinpointEmailIdentityName (\s a -> s { _pinpointEmailIdentityName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-identity.html#cfn-pinpointemail-identity-tags
+peiTags :: Lens' PinpointEmailIdentity (Maybe [PinpointEmailIdentityTags])
+peiTags = lens _pinpointEmailIdentityTags (\s a -> s { _pinpointEmailIdentityTags = a })
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
@@ -17,7 +17,9 @@
   { _sSMParameterAllowedPattern :: Maybe (Val Text)
   , _sSMParameterDescription :: Maybe (Val Text)
   , _sSMParameterName :: Maybe (Val Text)
+  , _sSMParameterPolicies :: Maybe (Val Text)
   , _sSMParameterTags :: Maybe Object
+  , _sSMParameterTier :: Maybe (Val Text)
   , _sSMParameterType :: Val Text
   , _sSMParameterValue :: Val Text
   } deriving (Show, Eq)
@@ -31,7 +33,9 @@
         [ fmap (("AllowedPattern",) . toJSON) _sSMParameterAllowedPattern
         , fmap (("Description",) . toJSON) _sSMParameterDescription
         , fmap (("Name",) . toJSON) _sSMParameterName
+        , fmap (("Policies",) . toJSON) _sSMParameterPolicies
         , fmap (("Tags",) . toJSON) _sSMParameterTags
+        , fmap (("Tier",) . toJSON) _sSMParameterTier
         , (Just . ("Type",) . toJSON) _sSMParameterType
         , (Just . ("Value",) . toJSON) _sSMParameterValue
         ]
@@ -47,7 +51,9 @@
   { _sSMParameterAllowedPattern = Nothing
   , _sSMParameterDescription = Nothing
   , _sSMParameterName = Nothing
+  , _sSMParameterPolicies = Nothing
   , _sSMParameterTags = Nothing
+  , _sSMParameterTier = Nothing
   , _sSMParameterType = typearg
   , _sSMParameterValue = valuearg
   }
@@ -64,9 +70,17 @@
 ssmpName :: Lens' SSMParameter (Maybe (Val Text))
 ssmpName = lens _sSMParameterName (\s a -> s { _sSMParameterName = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html#cfn-ssm-parameter-policies
+ssmpPolicies :: Lens' SSMParameter (Maybe (Val Text))
+ssmpPolicies = lens _sSMParameterPolicies (\s a -> s { _sSMParameterPolicies = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html#cfn-ssm-parameter-tags
 ssmpTags :: Lens' SSMParameter (Maybe Object)
 ssmpTags = lens _sSMParameterTags (\s a -> s { _sSMParameterTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html#cfn-ssm-parameter-tier
+ssmpTier :: Lens' SSMParameter (Maybe (Val Text))
+ssmpTier = lens _sSMParameterTier (\s a -> s { _sSMParameterTier = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html#cfn-ssm-parameter-type
 ssmpType :: Lens' SSMParameter (Val Text)
diff --git a/library-gen/Stratosphere/Resources/ServiceCatalogResourceUpdateConstraint.hs b/library-gen/Stratosphere/Resources/ServiceCatalogResourceUpdateConstraint.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ServiceCatalogResourceUpdateConstraint.hs
@@ -0,0 +1,73 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-resourceupdateconstraint.html
+
+module Stratosphere.Resources.ServiceCatalogResourceUpdateConstraint where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for ServiceCatalogResourceUpdateConstraint. See
+-- 'serviceCatalogResourceUpdateConstraint' for a more convenient
+-- constructor.
+data ServiceCatalogResourceUpdateConstraint =
+  ServiceCatalogResourceUpdateConstraint
+  { _serviceCatalogResourceUpdateConstraintAcceptLanguage :: Maybe (Val Text)
+  , _serviceCatalogResourceUpdateConstraintDescription :: Maybe (Val Text)
+  , _serviceCatalogResourceUpdateConstraintPortfolioId :: Val Text
+  , _serviceCatalogResourceUpdateConstraintProductId :: Val Text
+  , _serviceCatalogResourceUpdateConstraintTagUpdateOnProvisionedProduct :: Val Text
+  } deriving (Show, Eq)
+
+instance ToResourceProperties ServiceCatalogResourceUpdateConstraint where
+  toResourceProperties ServiceCatalogResourceUpdateConstraint{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::ServiceCatalog::ResourceUpdateConstraint"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("AcceptLanguage",) . toJSON) _serviceCatalogResourceUpdateConstraintAcceptLanguage
+        , fmap (("Description",) . toJSON) _serviceCatalogResourceUpdateConstraintDescription
+        , (Just . ("PortfolioId",) . toJSON) _serviceCatalogResourceUpdateConstraintPortfolioId
+        , (Just . ("ProductId",) . toJSON) _serviceCatalogResourceUpdateConstraintProductId
+        , (Just . ("TagUpdateOnProvisionedProduct",) . toJSON) _serviceCatalogResourceUpdateConstraintTagUpdateOnProvisionedProduct
+        ]
+    }
+
+-- | Constructor for 'ServiceCatalogResourceUpdateConstraint' containing
+-- required fields as arguments.
+serviceCatalogResourceUpdateConstraint
+  :: Val Text -- ^ 'scrucPortfolioId'
+  -> Val Text -- ^ 'scrucProductId'
+  -> Val Text -- ^ 'scrucTagUpdateOnProvisionedProduct'
+  -> ServiceCatalogResourceUpdateConstraint
+serviceCatalogResourceUpdateConstraint portfolioIdarg productIdarg tagUpdateOnProvisionedProductarg =
+  ServiceCatalogResourceUpdateConstraint
+  { _serviceCatalogResourceUpdateConstraintAcceptLanguage = Nothing
+  , _serviceCatalogResourceUpdateConstraintDescription = Nothing
+  , _serviceCatalogResourceUpdateConstraintPortfolioId = portfolioIdarg
+  , _serviceCatalogResourceUpdateConstraintProductId = productIdarg
+  , _serviceCatalogResourceUpdateConstraintTagUpdateOnProvisionedProduct = tagUpdateOnProvisionedProductarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-resourceupdateconstraint.html#cfn-servicecatalog-resourceupdateconstraint-acceptlanguage
+scrucAcceptLanguage :: Lens' ServiceCatalogResourceUpdateConstraint (Maybe (Val Text))
+scrucAcceptLanguage = lens _serviceCatalogResourceUpdateConstraintAcceptLanguage (\s a -> s { _serviceCatalogResourceUpdateConstraintAcceptLanguage = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-resourceupdateconstraint.html#cfn-servicecatalog-resourceupdateconstraint-description
+scrucDescription :: Lens' ServiceCatalogResourceUpdateConstraint (Maybe (Val Text))
+scrucDescription = lens _serviceCatalogResourceUpdateConstraintDescription (\s a -> s { _serviceCatalogResourceUpdateConstraintDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-resourceupdateconstraint.html#cfn-servicecatalog-resourceupdateconstraint-portfolioid
+scrucPortfolioId :: Lens' ServiceCatalogResourceUpdateConstraint (Val Text)
+scrucPortfolioId = lens _serviceCatalogResourceUpdateConstraintPortfolioId (\s a -> s { _serviceCatalogResourceUpdateConstraintPortfolioId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-resourceupdateconstraint.html#cfn-servicecatalog-resourceupdateconstraint-productid
+scrucProductId :: Lens' ServiceCatalogResourceUpdateConstraint (Val Text)
+scrucProductId = lens _serviceCatalogResourceUpdateConstraintProductId (\s a -> s { _serviceCatalogResourceUpdateConstraintProductId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-resourceupdateconstraint.html#cfn-servicecatalog-resourceupdateconstraint-tagupdateonprovisionedproduct
+scrucTagUpdateOnProvisionedProduct :: Lens' ServiceCatalogResourceUpdateConstraint (Val Text)
+scrucTagUpdateOnProvisionedProduct = lens _serviceCatalogResourceUpdateConstraintTagUpdateOnProvisionedProduct (\s a -> s { _serviceCatalogResourceUpdateConstraintTagUpdateOnProvisionedProduct = a })
diff --git a/library-gen/Stratosphere/Resources/TransferServer.hs b/library-gen/Stratosphere/Resources/TransferServer.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/TransferServer.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-server.html
+
+module Stratosphere.Resources.TransferServer where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.TransferServerEndpointDetails
+import Stratosphere.ResourceProperties.TransferServerIdentityProviderDetails
+import Stratosphere.ResourceProperties.Tag
+
+-- | Full data type definition for TransferServer. See 'transferServer' for a
+-- more convenient constructor.
+data TransferServer =
+  TransferServer
+  { _transferServerEndpointDetails :: Maybe TransferServerEndpointDetails
+  , _transferServerEndpointType :: Maybe (Val Text)
+  , _transferServerIdentityProviderDetails :: Maybe TransferServerIdentityProviderDetails
+  , _transferServerIdentityProviderType :: Maybe (Val Text)
+  , _transferServerLoggingRole :: Maybe (Val Text)
+  , _transferServerTags :: Maybe [Tag]
+  } deriving (Show, Eq)
+
+instance ToResourceProperties TransferServer where
+  toResourceProperties TransferServer{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::Transfer::Server"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("EndpointDetails",) . toJSON) _transferServerEndpointDetails
+        , fmap (("EndpointType",) . toJSON) _transferServerEndpointType
+        , fmap (("IdentityProviderDetails",) . toJSON) _transferServerIdentityProviderDetails
+        , fmap (("IdentityProviderType",) . toJSON) _transferServerIdentityProviderType
+        , fmap (("LoggingRole",) . toJSON) _transferServerLoggingRole
+        , fmap (("Tags",) . toJSON) _transferServerTags
+        ]
+    }
+
+-- | Constructor for 'TransferServer' containing required fields as arguments.
+transferServer
+  :: TransferServer
+transferServer  =
+  TransferServer
+  { _transferServerEndpointDetails = Nothing
+  , _transferServerEndpointType = Nothing
+  , _transferServerIdentityProviderDetails = Nothing
+  , _transferServerIdentityProviderType = Nothing
+  , _transferServerLoggingRole = Nothing
+  , _transferServerTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-server.html#cfn-transfer-server-endpointdetails
+tsEndpointDetails :: Lens' TransferServer (Maybe TransferServerEndpointDetails)
+tsEndpointDetails = lens _transferServerEndpointDetails (\s a -> s { _transferServerEndpointDetails = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-server.html#cfn-transfer-server-endpointtype
+tsEndpointType :: Lens' TransferServer (Maybe (Val Text))
+tsEndpointType = lens _transferServerEndpointType (\s a -> s { _transferServerEndpointType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-server.html#cfn-transfer-server-identityproviderdetails
+tsIdentityProviderDetails :: Lens' TransferServer (Maybe TransferServerIdentityProviderDetails)
+tsIdentityProviderDetails = lens _transferServerIdentityProviderDetails (\s a -> s { _transferServerIdentityProviderDetails = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-server.html#cfn-transfer-server-identityprovidertype
+tsIdentityProviderType :: Lens' TransferServer (Maybe (Val Text))
+tsIdentityProviderType = lens _transferServerIdentityProviderType (\s a -> s { _transferServerIdentityProviderType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-server.html#cfn-transfer-server-loggingrole
+tsLoggingRole :: Lens' TransferServer (Maybe (Val Text))
+tsLoggingRole = lens _transferServerLoggingRole (\s a -> s { _transferServerLoggingRole = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-server.html#cfn-transfer-server-tags
+tsTags :: Lens' TransferServer (Maybe [Tag])
+tsTags = lens _transferServerTags (\s a -> s { _transferServerTags = a })
diff --git a/library-gen/Stratosphere/Resources/TransferUser.hs b/library-gen/Stratosphere/Resources/TransferUser.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/TransferUser.hs
@@ -0,0 +1,78 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-user.html
+
+module Stratosphere.Resources.TransferUser where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.Tag
+
+-- | Full data type definition for TransferUser. See 'transferUser' for a more
+-- convenient constructor.
+data TransferUser =
+  TransferUser
+  { _transferUserHomeDirectory :: Maybe (Val Text)
+  , _transferUserPolicy :: Maybe (Val Text)
+  , _transferUserRole :: Val Text
+  , _transferUserServerId :: Val Text
+  , _transferUserTags :: Maybe [Tag]
+  , _transferUserUserName :: Val Text
+  } deriving (Show, Eq)
+
+instance ToResourceProperties TransferUser where
+  toResourceProperties TransferUser{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::Transfer::User"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("HomeDirectory",) . toJSON) _transferUserHomeDirectory
+        , fmap (("Policy",) . toJSON) _transferUserPolicy
+        , (Just . ("Role",) . toJSON) _transferUserRole
+        , (Just . ("ServerId",) . toJSON) _transferUserServerId
+        , fmap (("Tags",) . toJSON) _transferUserTags
+        , (Just . ("UserName",) . toJSON) _transferUserUserName
+        ]
+    }
+
+-- | Constructor for 'TransferUser' containing required fields as arguments.
+transferUser
+  :: Val Text -- ^ 'tuRole'
+  -> Val Text -- ^ 'tuServerId'
+  -> Val Text -- ^ 'tuUserName'
+  -> TransferUser
+transferUser rolearg serverIdarg userNamearg =
+  TransferUser
+  { _transferUserHomeDirectory = Nothing
+  , _transferUserPolicy = Nothing
+  , _transferUserRole = rolearg
+  , _transferUserServerId = serverIdarg
+  , _transferUserTags = Nothing
+  , _transferUserUserName = userNamearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-user.html#cfn-transfer-user-homedirectory
+tuHomeDirectory :: Lens' TransferUser (Maybe (Val Text))
+tuHomeDirectory = lens _transferUserHomeDirectory (\s a -> s { _transferUserHomeDirectory = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-user.html#cfn-transfer-user-policy
+tuPolicy :: Lens' TransferUser (Maybe (Val Text))
+tuPolicy = lens _transferUserPolicy (\s a -> s { _transferUserPolicy = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-user.html#cfn-transfer-user-role
+tuRole :: Lens' TransferUser (Val Text)
+tuRole = lens _transferUserRole (\s a -> s { _transferUserRole = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-user.html#cfn-transfer-user-serverid
+tuServerId :: Lens' TransferUser (Val Text)
+tuServerId = lens _transferUserServerId (\s a -> s { _transferUserServerId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-user.html#cfn-transfer-user-tags
+tuTags :: Lens' TransferUser (Maybe [Tag])
+tuTags = lens _transferUserTags (\s a -> s { _transferUserTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-user.html#cfn-transfer-user-username
+tuUserName :: Lens' TransferUser (Val Text)
+tuUserName = lens _transferUserUserName (\s a -> s { _transferUserUserName = a })
diff --git a/library-gen/Stratosphere/Resources/WAFRegionalGeoMatchSet.hs b/library-gen/Stratosphere/Resources/WAFRegionalGeoMatchSet.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/WAFRegionalGeoMatchSet.hs
@@ -0,0 +1,49 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-geomatchset.html
+
+module Stratosphere.Resources.WAFRegionalGeoMatchSet where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.WAFRegionalGeoMatchSetGeoMatchConstraint
+
+-- | Full data type definition for WAFRegionalGeoMatchSet. See
+-- 'wafRegionalGeoMatchSet' for a more convenient constructor.
+data WAFRegionalGeoMatchSet =
+  WAFRegionalGeoMatchSet
+  { _wAFRegionalGeoMatchSetGeoMatchConstraints :: Maybe [WAFRegionalGeoMatchSetGeoMatchConstraint]
+  , _wAFRegionalGeoMatchSetName :: Val Text
+  } deriving (Show, Eq)
+
+instance ToResourceProperties WAFRegionalGeoMatchSet where
+  toResourceProperties WAFRegionalGeoMatchSet{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::WAFRegional::GeoMatchSet"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("GeoMatchConstraints",) . toJSON) _wAFRegionalGeoMatchSetGeoMatchConstraints
+        , (Just . ("Name",) . toJSON) _wAFRegionalGeoMatchSetName
+        ]
+    }
+
+-- | Constructor for 'WAFRegionalGeoMatchSet' containing required fields as
+-- arguments.
+wafRegionalGeoMatchSet
+  :: Val Text -- ^ 'wafrgmsName'
+  -> WAFRegionalGeoMatchSet
+wafRegionalGeoMatchSet namearg =
+  WAFRegionalGeoMatchSet
+  { _wAFRegionalGeoMatchSetGeoMatchConstraints = Nothing
+  , _wAFRegionalGeoMatchSetName = namearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-geomatchset.html#cfn-wafregional-geomatchset-geomatchconstraints
+wafrgmsGeoMatchConstraints :: Lens' WAFRegionalGeoMatchSet (Maybe [WAFRegionalGeoMatchSetGeoMatchConstraint])
+wafrgmsGeoMatchConstraints = lens _wAFRegionalGeoMatchSetGeoMatchConstraints (\s a -> s { _wAFRegionalGeoMatchSetGeoMatchConstraints = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-geomatchset.html#cfn-wafregional-geomatchset-name
+wafrgmsName :: Lens' WAFRegionalGeoMatchSet (Val Text)
+wafrgmsName = lens _wAFRegionalGeoMatchSetName (\s a -> s { _wAFRegionalGeoMatchSetName = a })
diff --git a/library-gen/Stratosphere/Resources/WAFRegionalRateBasedRule.hs b/library-gen/Stratosphere/Resources/WAFRegionalRateBasedRule.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/WAFRegionalRateBasedRule.hs
@@ -0,0 +1,73 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-ratebasedrule.html
+
+module Stratosphere.Resources.WAFRegionalRateBasedRule where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.WAFRegionalRateBasedRulePredicate
+
+-- | Full data type definition for WAFRegionalRateBasedRule. See
+-- 'wafRegionalRateBasedRule' for a more convenient constructor.
+data WAFRegionalRateBasedRule =
+  WAFRegionalRateBasedRule
+  { _wAFRegionalRateBasedRuleMatchPredicates :: Maybe [WAFRegionalRateBasedRulePredicate]
+  , _wAFRegionalRateBasedRuleMetricName :: Val Text
+  , _wAFRegionalRateBasedRuleName :: Val Text
+  , _wAFRegionalRateBasedRuleRateKey :: Val Text
+  , _wAFRegionalRateBasedRuleRateLimit :: Val Integer
+  } deriving (Show, Eq)
+
+instance ToResourceProperties WAFRegionalRateBasedRule where
+  toResourceProperties WAFRegionalRateBasedRule{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::WAFRegional::RateBasedRule"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("MatchPredicates",) . toJSON) _wAFRegionalRateBasedRuleMatchPredicates
+        , (Just . ("MetricName",) . toJSON) _wAFRegionalRateBasedRuleMetricName
+        , (Just . ("Name",) . toJSON) _wAFRegionalRateBasedRuleName
+        , (Just . ("RateKey",) . toJSON) _wAFRegionalRateBasedRuleRateKey
+        , (Just . ("RateLimit",) . toJSON) _wAFRegionalRateBasedRuleRateLimit
+        ]
+    }
+
+-- | Constructor for 'WAFRegionalRateBasedRule' containing required fields as
+-- arguments.
+wafRegionalRateBasedRule
+  :: Val Text -- ^ 'wafrrbrMetricName'
+  -> Val Text -- ^ 'wafrrbrName'
+  -> Val Text -- ^ 'wafrrbrRateKey'
+  -> Val Integer -- ^ 'wafrrbrRateLimit'
+  -> WAFRegionalRateBasedRule
+wafRegionalRateBasedRule metricNamearg namearg rateKeyarg rateLimitarg =
+  WAFRegionalRateBasedRule
+  { _wAFRegionalRateBasedRuleMatchPredicates = Nothing
+  , _wAFRegionalRateBasedRuleMetricName = metricNamearg
+  , _wAFRegionalRateBasedRuleName = namearg
+  , _wAFRegionalRateBasedRuleRateKey = rateKeyarg
+  , _wAFRegionalRateBasedRuleRateLimit = rateLimitarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-ratebasedrule.html#cfn-wafregional-ratebasedrule-matchpredicates
+wafrrbrMatchPredicates :: Lens' WAFRegionalRateBasedRule (Maybe [WAFRegionalRateBasedRulePredicate])
+wafrrbrMatchPredicates = lens _wAFRegionalRateBasedRuleMatchPredicates (\s a -> s { _wAFRegionalRateBasedRuleMatchPredicates = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-ratebasedrule.html#cfn-wafregional-ratebasedrule-metricname
+wafrrbrMetricName :: Lens' WAFRegionalRateBasedRule (Val Text)
+wafrrbrMetricName = lens _wAFRegionalRateBasedRuleMetricName (\s a -> s { _wAFRegionalRateBasedRuleMetricName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-ratebasedrule.html#cfn-wafregional-ratebasedrule-name
+wafrrbrName :: Lens' WAFRegionalRateBasedRule (Val Text)
+wafrrbrName = lens _wAFRegionalRateBasedRuleName (\s a -> s { _wAFRegionalRateBasedRuleName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-ratebasedrule.html#cfn-wafregional-ratebasedrule-ratekey
+wafrrbrRateKey :: Lens' WAFRegionalRateBasedRule (Val Text)
+wafrrbrRateKey = lens _wAFRegionalRateBasedRuleRateKey (\s a -> s { _wAFRegionalRateBasedRuleRateKey = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-ratebasedrule.html#cfn-wafregional-ratebasedrule-ratelimit
+wafrrbrRateLimit :: Lens' WAFRegionalRateBasedRule (Val Integer)
+wafrrbrRateLimit = lens _wAFRegionalRateBasedRuleRateLimit (\s a -> s { _wAFRegionalRateBasedRuleRateLimit = a })
diff --git a/library-gen/Stratosphere/Resources/WAFRegionalRegexPatternSet.hs b/library-gen/Stratosphere/Resources/WAFRegionalRegexPatternSet.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/WAFRegionalRegexPatternSet.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-regexpatternset.html
+
+module Stratosphere.Resources.WAFRegionalRegexPatternSet where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for WAFRegionalRegexPatternSet. See
+-- 'wafRegionalRegexPatternSet' for a more convenient constructor.
+data WAFRegionalRegexPatternSet =
+  WAFRegionalRegexPatternSet
+  { _wAFRegionalRegexPatternSetName :: Val Text
+  , _wAFRegionalRegexPatternSetRegexPatternStrings :: ValList Text
+  } deriving (Show, Eq)
+
+instance ToResourceProperties WAFRegionalRegexPatternSet where
+  toResourceProperties WAFRegionalRegexPatternSet{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::WAFRegional::RegexPatternSet"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ (Just . ("Name",) . toJSON) _wAFRegionalRegexPatternSetName
+        , (Just . ("RegexPatternStrings",) . toJSON) _wAFRegionalRegexPatternSetRegexPatternStrings
+        ]
+    }
+
+-- | Constructor for 'WAFRegionalRegexPatternSet' containing required fields
+-- as arguments.
+wafRegionalRegexPatternSet
+  :: Val Text -- ^ 'wafrrpsName'
+  -> ValList Text -- ^ 'wafrrpsRegexPatternStrings'
+  -> WAFRegionalRegexPatternSet
+wafRegionalRegexPatternSet namearg regexPatternStringsarg =
+  WAFRegionalRegexPatternSet
+  { _wAFRegionalRegexPatternSetName = namearg
+  , _wAFRegionalRegexPatternSetRegexPatternStrings = regexPatternStringsarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-regexpatternset.html#cfn-wafregional-regexpatternset-name
+wafrrpsName :: Lens' WAFRegionalRegexPatternSet (Val Text)
+wafrrpsName = lens _wAFRegionalRegexPatternSetName (\s a -> s { _wAFRegionalRegexPatternSetName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-regexpatternset.html#cfn-wafregional-regexpatternset-regexpatternstrings
+wafrrpsRegexPatternStrings :: Lens' WAFRegionalRegexPatternSet (ValList Text)
+wafrrpsRegexPatternStrings = lens _wAFRegionalRegexPatternSetRegexPatternStrings (\s a -> s { _wAFRegionalRegexPatternSetRegexPatternStrings = a })
diff --git a/stratosphere.cabal b/stratosphere.cabal
--- a/stratosphere.cabal
+++ b/stratosphere.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: f0835a7de25f869d86ff57e164902e61d6a729a6306f6c1b10c577e05936b42c
+-- hash: 866acc984fe2a54845e7421026b6720e78e88e473125a00dd5be0a4e07c9cdef
 
 name:           stratosphere
-version:        0.37.0
+version:        0.38.0
 synopsis:       EDSL for AWS CloudFormation
 description:    EDSL for AWS CloudFormation
 category:       AWS, Cloud
@@ -137,6 +137,8 @@
       Stratosphere.ResourceProperties.AppSyncDataSourceLambdaConfig
       Stratosphere.ResourceProperties.AppSyncDataSourceRdsHttpEndpointConfig
       Stratosphere.ResourceProperties.AppSyncDataSourceRelationalDatabaseConfig
+      Stratosphere.ResourceProperties.AppSyncGraphQLApiAdditionalAuthenticationProvider
+      Stratosphere.ResourceProperties.AppSyncGraphQLApiCognitoUserPoolConfig
       Stratosphere.ResourceProperties.AppSyncGraphQLApiLogConfig
       Stratosphere.ResourceProperties.AppSyncGraphQLApiOpenIDConnectConfig
       Stratosphere.ResourceProperties.AppSyncGraphQLApiUserPoolConfig
@@ -225,6 +227,7 @@
       Stratosphere.ResourceProperties.CodeBuildProjectGitSubmodulesConfig
       Stratosphere.ResourceProperties.CodeBuildProjectLogsConfig
       Stratosphere.ResourceProperties.CodeBuildProjectProjectCache
+      Stratosphere.ResourceProperties.CodeBuildProjectProjectSourceVersion
       Stratosphere.ResourceProperties.CodeBuildProjectProjectTriggers
       Stratosphere.ResourceProperties.CodeBuildProjectRegistryCredential
       Stratosphere.ResourceProperties.CodeBuildProjectS3LogsConfig
@@ -232,7 +235,9 @@
       Stratosphere.ResourceProperties.CodeBuildProjectSourceAuth
       Stratosphere.ResourceProperties.CodeBuildProjectVpcConfig
       Stratosphere.ResourceProperties.CodeBuildProjectWebhookFilter
+      Stratosphere.ResourceProperties.CodeCommitRepositoryCode
       Stratosphere.ResourceProperties.CodeCommitRepositoryRepositoryTrigger
+      Stratosphere.ResourceProperties.CodeCommitRepositoryS3
       Stratosphere.ResourceProperties.CodeDeployDeploymentConfigMinimumHealthyHosts
       Stratosphere.ResourceProperties.CodeDeployDeploymentGroupAlarm
       Stratosphere.ResourceProperties.CodeDeployDeploymentGroupAlarmConfiguration
@@ -320,6 +325,7 @@
       Stratosphere.ResourceProperties.DynamoDBTableSSESpecification
       Stratosphere.ResourceProperties.DynamoDBTableStreamSpecification
       Stratosphere.ResourceProperties.DynamoDBTableTimeToLiveSpecification
+      Stratosphere.ResourceProperties.EC2CapacityReservationTagSpecification
       Stratosphere.ResourceProperties.EC2EC2FleetFleetLaunchTemplateConfigRequest
       Stratosphere.ResourceProperties.EC2EC2FleetFleetLaunchTemplateOverridesRequest
       Stratosphere.ResourceProperties.EC2EC2FleetFleetLaunchTemplateSpecificationRequest
@@ -398,6 +404,7 @@
       Stratosphere.ResourceProperties.ECSServicePlacementStrategy
       Stratosphere.ResourceProperties.ECSServiceServiceRegistry
       Stratosphere.ResourceProperties.ECSTaskDefinitionContainerDefinition
+      Stratosphere.ResourceProperties.ECSTaskDefinitionContainerDependency
       Stratosphere.ResourceProperties.ECSTaskDefinitionDevice
       Stratosphere.ResourceProperties.ECSTaskDefinitionDockerVolumeConfiguration
       Stratosphere.ResourceProperties.ECSTaskDefinitionHealthCheck
@@ -409,6 +416,7 @@
       Stratosphere.ResourceProperties.ECSTaskDefinitionLogConfiguration
       Stratosphere.ResourceProperties.ECSTaskDefinitionMountPoint
       Stratosphere.ResourceProperties.ECSTaskDefinitionPortMapping
+      Stratosphere.ResourceProperties.ECSTaskDefinitionProxyConfiguration
       Stratosphere.ResourceProperties.ECSTaskDefinitionRepositoryCredentials
       Stratosphere.ResourceProperties.ECSTaskDefinitionTaskDefinitionPlacementConstraint
       Stratosphere.ResourceProperties.ECSTaskDefinitionTmpfs
@@ -519,6 +527,7 @@
       Stratosphere.ResourceProperties.GameLiftAliasRoutingStrategy
       Stratosphere.ResourceProperties.GameLiftBuildS3Location
       Stratosphere.ResourceProperties.GameLiftFleetIpPermission
+      Stratosphere.ResourceProperties.GlueClassifierCsvClassifier
       Stratosphere.ResourceProperties.GlueClassifierGrokClassifier
       Stratosphere.ResourceProperties.GlueClassifierJsonClassifier
       Stratosphere.ResourceProperties.GlueClassifierXMLClassifier
@@ -530,6 +539,9 @@
       Stratosphere.ResourceProperties.GlueCrawlerSchemaChangePolicy
       Stratosphere.ResourceProperties.GlueCrawlerTargets
       Stratosphere.ResourceProperties.GlueDatabaseDatabaseInput
+      Stratosphere.ResourceProperties.GlueDataCatalogEncryptionSettingsConnectionPasswordEncryption
+      Stratosphere.ResourceProperties.GlueDataCatalogEncryptionSettingsDataCatalogEncryptionSettings
+      Stratosphere.ResourceProperties.GlueDataCatalogEncryptionSettingsEncryptionAtRest
       Stratosphere.ResourceProperties.GlueJobConnectionsList
       Stratosphere.ResourceProperties.GlueJobExecutionProperty
       Stratosphere.ResourceProperties.GlueJobJobCommand
@@ -539,6 +551,10 @@
       Stratosphere.ResourceProperties.GluePartitionSerdeInfo
       Stratosphere.ResourceProperties.GluePartitionSkewedInfo
       Stratosphere.ResourceProperties.GluePartitionStorageDescriptor
+      Stratosphere.ResourceProperties.GlueSecurityConfigurationCloudWatchEncryption
+      Stratosphere.ResourceProperties.GlueSecurityConfigurationEncryptionConfiguration
+      Stratosphere.ResourceProperties.GlueSecurityConfigurationJobBookmarksEncryption
+      Stratosphere.ResourceProperties.GlueSecurityConfigurationS3Encryption
       Stratosphere.ResourceProperties.GlueTableColumn
       Stratosphere.ResourceProperties.GlueTableOrder
       Stratosphere.ResourceProperties.GlueTableSerdeInfo
@@ -738,6 +754,7 @@
       Stratosphere.ResourceProperties.LambdaFunctionVpcConfig
       Stratosphere.ResourceProperties.LambdaLayerVersionContent
       Stratosphere.ResourceProperties.LogsMetricFilterMetricTransformation
+      Stratosphere.ResourceProperties.MediaStoreContainerCorsRule
       Stratosphere.ResourceProperties.OpsWorksAppDataSource
       Stratosphere.ResourceProperties.OpsWorksAppEnvironmentVariable
       Stratosphere.ResourceProperties.OpsWorksAppSource
@@ -757,6 +774,20 @@
       Stratosphere.ResourceProperties.OpsWorksStackRdsDbInstance
       Stratosphere.ResourceProperties.OpsWorksStackSource
       Stratosphere.ResourceProperties.OpsWorksStackStackConfigurationManager
+      Stratosphere.ResourceProperties.PinpointEmailConfigurationSetDeliveryOptions
+      Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationCloudWatchDestination
+      Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationDimensionConfiguration
+      Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationEventDestination
+      Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination
+      Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationPinpointDestination
+      Stratosphere.ResourceProperties.PinpointEmailConfigurationSetEventDestinationSnsDestination
+      Stratosphere.ResourceProperties.PinpointEmailConfigurationSetReputationOptions
+      Stratosphere.ResourceProperties.PinpointEmailConfigurationSetSendingOptions
+      Stratosphere.ResourceProperties.PinpointEmailConfigurationSetTags
+      Stratosphere.ResourceProperties.PinpointEmailConfigurationSetTrackingOptions
+      Stratosphere.ResourceProperties.PinpointEmailDedicatedIpPoolTags
+      Stratosphere.ResourceProperties.PinpointEmailIdentityMailFromAttributes
+      Stratosphere.ResourceProperties.PinpointEmailIdentityTags
       Stratosphere.ResourceProperties.RDSDBClusterScalingConfiguration
       Stratosphere.ResourceProperties.RDSDBInstanceProcessorFeature
       Stratosphere.ResourceProperties.RDSDBSecurityGroupIngressProperty
@@ -873,12 +904,16 @@
       Stratosphere.ResourceProperties.StepFunctionsActivityTagsEntry
       Stratosphere.ResourceProperties.StepFunctionsStateMachineTagsEntry
       Stratosphere.ResourceProperties.Tag
+      Stratosphere.ResourceProperties.TransferServerEndpointDetails
+      Stratosphere.ResourceProperties.TransferServerIdentityProviderDetails
       Stratosphere.ResourceProperties.WAFByteMatchSetByteMatchTuple
       Stratosphere.ResourceProperties.WAFByteMatchSetFieldToMatch
       Stratosphere.ResourceProperties.WAFIPSetIPSetDescriptor
       Stratosphere.ResourceProperties.WAFRegionalByteMatchSetByteMatchTuple
       Stratosphere.ResourceProperties.WAFRegionalByteMatchSetFieldToMatch
+      Stratosphere.ResourceProperties.WAFRegionalGeoMatchSetGeoMatchConstraint
       Stratosphere.ResourceProperties.WAFRegionalIPSetIPSetDescriptor
+      Stratosphere.ResourceProperties.WAFRegionalRateBasedRulePredicate
       Stratosphere.ResourceProperties.WAFRegionalRulePredicate
       Stratosphere.ResourceProperties.WAFRegionalSizeConstraintSetFieldToMatch
       Stratosphere.ResourceProperties.WAFRegionalSizeConstraintSetSizeConstraint
@@ -1015,6 +1050,7 @@
       Stratosphere.Resources.DocDBDBInstance
       Stratosphere.Resources.DocDBDBSubnetGroup
       Stratosphere.Resources.DynamoDBTable
+      Stratosphere.Resources.EC2CapacityReservation
       Stratosphere.Resources.EC2CustomerGateway
       Stratosphere.Resources.EC2DHCPOptions
       Stratosphere.Resources.EC2EC2Fleet
@@ -1102,9 +1138,11 @@
       Stratosphere.Resources.GlueConnection
       Stratosphere.Resources.GlueCrawler
       Stratosphere.Resources.GlueDatabase
+      Stratosphere.Resources.GlueDataCatalogEncryptionSettings
       Stratosphere.Resources.GlueDevEndpoint
       Stratosphere.Resources.GlueJob
       Stratosphere.Resources.GluePartition
+      Stratosphere.Resources.GlueSecurityConfiguration
       Stratosphere.Resources.GlueTable
       Stratosphere.Resources.GlueTrigger
       Stratosphere.Resources.GreengrassConnectorDefinition
@@ -1178,6 +1216,7 @@
       Stratosphere.Resources.LogsLogStream
       Stratosphere.Resources.LogsMetricFilter
       Stratosphere.Resources.LogsSubscriptionFilter
+      Stratosphere.Resources.MediaStoreContainer
       Stratosphere.Resources.NeptuneDBCluster
       Stratosphere.Resources.NeptuneDBClusterParameterGroup
       Stratosphere.Resources.NeptuneDBInstance
@@ -1191,6 +1230,10 @@
       Stratosphere.Resources.OpsWorksStack
       Stratosphere.Resources.OpsWorksUserProfile
       Stratosphere.Resources.OpsWorksVolume
+      Stratosphere.Resources.PinpointEmailConfigurationSet
+      Stratosphere.Resources.PinpointEmailConfigurationSetEventDestination
+      Stratosphere.Resources.PinpointEmailDedicatedIpPool
+      Stratosphere.Resources.PinpointEmailIdentity
       Stratosphere.Resources.RAMResourceShare
       Stratosphere.Resources.RDSDBCluster
       Stratosphere.Resources.RDSDBClusterParameterGroup
@@ -1241,6 +1284,7 @@
       Stratosphere.Resources.ServiceCatalogPortfolioPrincipalAssociation
       Stratosphere.Resources.ServiceCatalogPortfolioProductAssociation
       Stratosphere.Resources.ServiceCatalogPortfolioShare
+      Stratosphere.Resources.ServiceCatalogResourceUpdateConstraint
       Stratosphere.Resources.ServiceCatalogTagOption
       Stratosphere.Resources.ServiceCatalogTagOptionAssociation
       Stratosphere.Resources.ServiceDiscoveryHttpNamespace
@@ -1268,10 +1312,15 @@
       Stratosphere.Resources.SSMResourceDataSync
       Stratosphere.Resources.StepFunctionsActivity
       Stratosphere.Resources.StepFunctionsStateMachine
+      Stratosphere.Resources.TransferServer
+      Stratosphere.Resources.TransferUser
       Stratosphere.Resources.WAFByteMatchSet
       Stratosphere.Resources.WAFIPSet
       Stratosphere.Resources.WAFRegionalByteMatchSet
+      Stratosphere.Resources.WAFRegionalGeoMatchSet
       Stratosphere.Resources.WAFRegionalIPSet
+      Stratosphere.Resources.WAFRegionalRateBasedRule
+      Stratosphere.Resources.WAFRegionalRegexPatternSet
       Stratosphere.Resources.WAFRegionalRule
       Stratosphere.Resources.WAFRegionalSizeConstraintSet
       Stratosphere.Resources.WAFRegionalSqlInjectionMatchSet
