diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Change Log
 
+## 0.14.0
+
+* Update resource specification document to version 1.12.0
+
 ## 0.13.0
 
 * Update resource specification document to version 1.11.0
diff --git a/library-gen/Stratosphere/ResourceProperties/Cloud9EnvironmentEC2Repository.hs b/library-gen/Stratosphere/ResourceProperties/Cloud9EnvironmentEC2Repository.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/Cloud9EnvironmentEC2Repository.hs
@@ -0,0 +1,59 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloud9-environmentec2-repository.html
+
+module Stratosphere.ResourceProperties.Cloud9EnvironmentEC2Repository where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for Cloud9EnvironmentEC2Repository. See
+-- 'cloud9EnvironmentEC2Repository' for a more convenient constructor.
+data Cloud9EnvironmentEC2Repository =
+  Cloud9EnvironmentEC2Repository
+  { _cloud9EnvironmentEC2RepositoryPathComponent :: Val Text
+  , _cloud9EnvironmentEC2RepositoryRepositoryUrl :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON Cloud9EnvironmentEC2Repository where
+  toJSON Cloud9EnvironmentEC2Repository{..} =
+    object $
+    catMaybes
+    [ (Just . ("PathComponent",) . toJSON) _cloud9EnvironmentEC2RepositoryPathComponent
+    , (Just . ("RepositoryUrl",) . toJSON) _cloud9EnvironmentEC2RepositoryRepositoryUrl
+    ]
+
+instance FromJSON Cloud9EnvironmentEC2Repository where
+  parseJSON (Object obj) =
+    Cloud9EnvironmentEC2Repository <$>
+      (obj .: "PathComponent") <*>
+      (obj .: "RepositoryUrl")
+  parseJSON _ = mempty
+
+-- | Constructor for 'Cloud9EnvironmentEC2Repository' containing required
+-- fields as arguments.
+cloud9EnvironmentEC2Repository
+  :: Val Text -- ^ 'ceecrPathComponent'
+  -> Val Text -- ^ 'ceecrRepositoryUrl'
+  -> Cloud9EnvironmentEC2Repository
+cloud9EnvironmentEC2Repository pathComponentarg repositoryUrlarg =
+  Cloud9EnvironmentEC2Repository
+  { _cloud9EnvironmentEC2RepositoryPathComponent = pathComponentarg
+  , _cloud9EnvironmentEC2RepositoryRepositoryUrl = repositoryUrlarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloud9-environmentec2-repository.html#cfn-cloud9-environmentec2-repository-pathcomponent
+ceecrPathComponent :: Lens' Cloud9EnvironmentEC2Repository (Val Text)
+ceecrPathComponent = lens _cloud9EnvironmentEC2RepositoryPathComponent (\s a -> s { _cloud9EnvironmentEC2RepositoryPathComponent = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloud9-environmentec2-repository.html#cfn-cloud9-environmentec2-repository-repositoryurl
+ceecrRepositoryUrl :: Lens' Cloud9EnvironmentEC2Repository (Val Text)
+ceecrRepositoryUrl = lens _cloud9EnvironmentEC2RepositoryRepositoryUrl (\s a -> s { _cloud9EnvironmentEC2RepositoryRepositoryUrl = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionDistributionConfig.hs b/library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionDistributionConfig.hs
--- a/library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionDistributionConfig.hs
+++ b/library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionDistributionConfig.hs
@@ -15,12 +15,10 @@
 import Stratosphere.Values
 import Stratosphere.ResourceProperties.CloudFrontDistributionCacheBehavior
 import Stratosphere.ResourceProperties.CloudFrontDistributionCustomErrorResponse
-import Stratosphere.ResourceProperties.CloudFrontDistributionLegacyCustomOrigin
 import Stratosphere.ResourceProperties.CloudFrontDistributionDefaultCacheBehavior
 import Stratosphere.ResourceProperties.CloudFrontDistributionLogging
 import Stratosphere.ResourceProperties.CloudFrontDistributionOrigin
 import Stratosphere.ResourceProperties.CloudFrontDistributionRestrictions
-import Stratosphere.ResourceProperties.CloudFrontDistributionLegacyS3Origin
 import Stratosphere.ResourceProperties.CloudFrontDistributionViewerCertificate
 
 -- | Full data type definition for CloudFrontDistributionDistributionConfig.
@@ -29,11 +27,9 @@
 data CloudFrontDistributionDistributionConfig =
   CloudFrontDistributionDistributionConfig
   { _cloudFrontDistributionDistributionConfigAliases :: Maybe (ValList Text)
-  , _cloudFrontDistributionDistributionConfigCNAMEs :: Maybe (ValList Text)
   , _cloudFrontDistributionDistributionConfigCacheBehaviors :: Maybe [CloudFrontDistributionCacheBehavior]
   , _cloudFrontDistributionDistributionConfigComment :: Maybe (Val Text)
   , _cloudFrontDistributionDistributionConfigCustomErrorResponses :: Maybe [CloudFrontDistributionCustomErrorResponse]
-  , _cloudFrontDistributionDistributionConfigCustomOrigin :: Maybe CloudFrontDistributionLegacyCustomOrigin
   , _cloudFrontDistributionDistributionConfigDefaultCacheBehavior :: Maybe CloudFrontDistributionDefaultCacheBehavior
   , _cloudFrontDistributionDistributionConfigDefaultRootObject :: Maybe (Val Text)
   , _cloudFrontDistributionDistributionConfigEnabled :: Val Bool
@@ -43,7 +39,6 @@
   , _cloudFrontDistributionDistributionConfigOrigins :: Maybe [CloudFrontDistributionOrigin]
   , _cloudFrontDistributionDistributionConfigPriceClass :: Maybe (Val Text)
   , _cloudFrontDistributionDistributionConfigRestrictions :: Maybe CloudFrontDistributionRestrictions
-  , _cloudFrontDistributionDistributionConfigS3Origin :: Maybe CloudFrontDistributionLegacyS3Origin
   , _cloudFrontDistributionDistributionConfigViewerCertificate :: Maybe CloudFrontDistributionViewerCertificate
   , _cloudFrontDistributionDistributionConfigWebACLId :: Maybe (Val Text)
   } deriving (Show, Eq)
@@ -53,11 +48,9 @@
     object $
     catMaybes
     [ fmap (("Aliases",) . toJSON) _cloudFrontDistributionDistributionConfigAliases
-    , fmap (("CNAMEs",) . toJSON) _cloudFrontDistributionDistributionConfigCNAMEs
     , fmap (("CacheBehaviors",) . toJSON) _cloudFrontDistributionDistributionConfigCacheBehaviors
     , fmap (("Comment",) . toJSON) _cloudFrontDistributionDistributionConfigComment
     , fmap (("CustomErrorResponses",) . toJSON) _cloudFrontDistributionDistributionConfigCustomErrorResponses
-    , fmap (("CustomOrigin",) . toJSON) _cloudFrontDistributionDistributionConfigCustomOrigin
     , fmap (("DefaultCacheBehavior",) . toJSON) _cloudFrontDistributionDistributionConfigDefaultCacheBehavior
     , fmap (("DefaultRootObject",) . toJSON) _cloudFrontDistributionDistributionConfigDefaultRootObject
     , (Just . ("Enabled",) . toJSON . fmap Bool') _cloudFrontDistributionDistributionConfigEnabled
@@ -67,7 +60,6 @@
     , fmap (("Origins",) . toJSON) _cloudFrontDistributionDistributionConfigOrigins
     , fmap (("PriceClass",) . toJSON) _cloudFrontDistributionDistributionConfigPriceClass
     , fmap (("Restrictions",) . toJSON) _cloudFrontDistributionDistributionConfigRestrictions
-    , fmap (("S3Origin",) . toJSON) _cloudFrontDistributionDistributionConfigS3Origin
     , fmap (("ViewerCertificate",) . toJSON) _cloudFrontDistributionDistributionConfigViewerCertificate
     , fmap (("WebACLId",) . toJSON) _cloudFrontDistributionDistributionConfigWebACLId
     ]
@@ -76,11 +68,9 @@
   parseJSON (Object obj) =
     CloudFrontDistributionDistributionConfig <$>
       (obj .:? "Aliases") <*>
-      (obj .:? "CNAMEs") <*>
       (obj .:? "CacheBehaviors") <*>
       (obj .:? "Comment") <*>
       (obj .:? "CustomErrorResponses") <*>
-      (obj .:? "CustomOrigin") <*>
       (obj .:? "DefaultCacheBehavior") <*>
       (obj .:? "DefaultRootObject") <*>
       fmap (fmap unBool') (obj .: "Enabled") <*>
@@ -90,7 +80,6 @@
       (obj .:? "Origins") <*>
       (obj .:? "PriceClass") <*>
       (obj .:? "Restrictions") <*>
-      (obj .:? "S3Origin") <*>
       (obj .:? "ViewerCertificate") <*>
       (obj .:? "WebACLId")
   parseJSON _ = mempty
@@ -103,11 +92,9 @@
 cloudFrontDistributionDistributionConfig enabledarg =
   CloudFrontDistributionDistributionConfig
   { _cloudFrontDistributionDistributionConfigAliases = Nothing
-  , _cloudFrontDistributionDistributionConfigCNAMEs = Nothing
   , _cloudFrontDistributionDistributionConfigCacheBehaviors = Nothing
   , _cloudFrontDistributionDistributionConfigComment = Nothing
   , _cloudFrontDistributionDistributionConfigCustomErrorResponses = Nothing
-  , _cloudFrontDistributionDistributionConfigCustomOrigin = Nothing
   , _cloudFrontDistributionDistributionConfigDefaultCacheBehavior = Nothing
   , _cloudFrontDistributionDistributionConfigDefaultRootObject = Nothing
   , _cloudFrontDistributionDistributionConfigEnabled = enabledarg
@@ -117,7 +104,6 @@
   , _cloudFrontDistributionDistributionConfigOrigins = Nothing
   , _cloudFrontDistributionDistributionConfigPriceClass = Nothing
   , _cloudFrontDistributionDistributionConfigRestrictions = Nothing
-  , _cloudFrontDistributionDistributionConfigS3Origin = Nothing
   , _cloudFrontDistributionDistributionConfigViewerCertificate = Nothing
   , _cloudFrontDistributionDistributionConfigWebACLId = Nothing
   }
@@ -126,10 +112,6 @@
 cfddcAliases :: Lens' CloudFrontDistributionDistributionConfig (Maybe (ValList Text))
 cfddcAliases = lens _cloudFrontDistributionDistributionConfigAliases (\s a -> s { _cloudFrontDistributionDistributionConfigAliases = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-cnames
-cfddcCNAMEs :: Lens' CloudFrontDistributionDistributionConfig (Maybe (ValList Text))
-cfddcCNAMEs = lens _cloudFrontDistributionDistributionConfigCNAMEs (\s a -> s { _cloudFrontDistributionDistributionConfigCNAMEs = a })
-
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-cachebehaviors
 cfddcCacheBehaviors :: Lens' CloudFrontDistributionDistributionConfig (Maybe [CloudFrontDistributionCacheBehavior])
 cfddcCacheBehaviors = lens _cloudFrontDistributionDistributionConfigCacheBehaviors (\s a -> s { _cloudFrontDistributionDistributionConfigCacheBehaviors = a })
@@ -142,10 +124,6 @@
 cfddcCustomErrorResponses :: Lens' CloudFrontDistributionDistributionConfig (Maybe [CloudFrontDistributionCustomErrorResponse])
 cfddcCustomErrorResponses = lens _cloudFrontDistributionDistributionConfigCustomErrorResponses (\s a -> s { _cloudFrontDistributionDistributionConfigCustomErrorResponses = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-customorigin
-cfddcCustomOrigin :: Lens' CloudFrontDistributionDistributionConfig (Maybe CloudFrontDistributionLegacyCustomOrigin)
-cfddcCustomOrigin = lens _cloudFrontDistributionDistributionConfigCustomOrigin (\s a -> s { _cloudFrontDistributionDistributionConfigCustomOrigin = a })
-
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-defaultcachebehavior
 cfddcDefaultCacheBehavior :: Lens' CloudFrontDistributionDistributionConfig (Maybe CloudFrontDistributionDefaultCacheBehavior)
 cfddcDefaultCacheBehavior = lens _cloudFrontDistributionDistributionConfigDefaultCacheBehavior (\s a -> s { _cloudFrontDistributionDistributionConfigDefaultCacheBehavior = a })
@@ -181,10 +159,6 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-restrictions
 cfddcRestrictions :: Lens' CloudFrontDistributionDistributionConfig (Maybe CloudFrontDistributionRestrictions)
 cfddcRestrictions = lens _cloudFrontDistributionDistributionConfigRestrictions (\s a -> s { _cloudFrontDistributionDistributionConfigRestrictions = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-s3origin
-cfddcS3Origin :: Lens' CloudFrontDistributionDistributionConfig (Maybe CloudFrontDistributionLegacyS3Origin)
-cfddcS3Origin = lens _cloudFrontDistributionDistributionConfigS3Origin (\s a -> s { _cloudFrontDistributionDistributionConfigS3Origin = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-viewercertificate
 cfddcViewerCertificate :: Lens' CloudFrontDistributionDistributionConfig (Maybe CloudFrontDistributionViewerCertificate)
diff --git a/library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionLegacyCustomOrigin.hs b/library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionLegacyCustomOrigin.hs
deleted file mode 100644
--- a/library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionLegacyCustomOrigin.hs
+++ /dev/null
@@ -1,84 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE RecordWildCards #-}
-{-# LANGUAGE TupleSections #-}
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacycustomorigin.html
-
-module Stratosphere.ResourceProperties.CloudFrontDistributionLegacyCustomOrigin where
-
-import Control.Lens hiding ((.=))
-import Data.Aeson
-import Data.Maybe (catMaybes)
-import Data.Monoid (mempty)
-import Data.Text
-
-import Stratosphere.Values
-
-
--- | Full data type definition for CloudFrontDistributionLegacyCustomOrigin.
--- See 'cloudFrontDistributionLegacyCustomOrigin' for a more convenient
--- constructor.
-data CloudFrontDistributionLegacyCustomOrigin =
-  CloudFrontDistributionLegacyCustomOrigin
-  { _cloudFrontDistributionLegacyCustomOriginDNSName :: Val Text
-  , _cloudFrontDistributionLegacyCustomOriginHTTPPort :: Maybe (Val Integer)
-  , _cloudFrontDistributionLegacyCustomOriginHTTPSPort :: Maybe (Val Integer)
-  , _cloudFrontDistributionLegacyCustomOriginOriginProtocolPolicy :: Val Text
-  , _cloudFrontDistributionLegacyCustomOriginOriginSSLProtocols :: Maybe (ValList Text)
-  } deriving (Show, Eq)
-
-instance ToJSON CloudFrontDistributionLegacyCustomOrigin where
-  toJSON CloudFrontDistributionLegacyCustomOrigin{..} =
-    object $
-    catMaybes
-    [ (Just . ("DNSName",) . toJSON) _cloudFrontDistributionLegacyCustomOriginDNSName
-    , fmap (("HTTPPort",) . toJSON . fmap Integer') _cloudFrontDistributionLegacyCustomOriginHTTPPort
-    , fmap (("HTTPSPort",) . toJSON . fmap Integer') _cloudFrontDistributionLegacyCustomOriginHTTPSPort
-    , (Just . ("OriginProtocolPolicy",) . toJSON) _cloudFrontDistributionLegacyCustomOriginOriginProtocolPolicy
-    , fmap (("OriginSSLProtocols",) . toJSON) _cloudFrontDistributionLegacyCustomOriginOriginSSLProtocols
-    ]
-
-instance FromJSON CloudFrontDistributionLegacyCustomOrigin where
-  parseJSON (Object obj) =
-    CloudFrontDistributionLegacyCustomOrigin <$>
-      (obj .: "DNSName") <*>
-      fmap (fmap (fmap unInteger')) (obj .:? "HTTPPort") <*>
-      fmap (fmap (fmap unInteger')) (obj .:? "HTTPSPort") <*>
-      (obj .: "OriginProtocolPolicy") <*>
-      (obj .:? "OriginSSLProtocols")
-  parseJSON _ = mempty
-
--- | Constructor for 'CloudFrontDistributionLegacyCustomOrigin' containing
--- required fields as arguments.
-cloudFrontDistributionLegacyCustomOrigin
-  :: Val Text -- ^ 'cfdlcoDNSName'
-  -> Val Text -- ^ 'cfdlcoOriginProtocolPolicy'
-  -> CloudFrontDistributionLegacyCustomOrigin
-cloudFrontDistributionLegacyCustomOrigin dNSNamearg originProtocolPolicyarg =
-  CloudFrontDistributionLegacyCustomOrigin
-  { _cloudFrontDistributionLegacyCustomOriginDNSName = dNSNamearg
-  , _cloudFrontDistributionLegacyCustomOriginHTTPPort = Nothing
-  , _cloudFrontDistributionLegacyCustomOriginHTTPSPort = Nothing
-  , _cloudFrontDistributionLegacyCustomOriginOriginProtocolPolicy = originProtocolPolicyarg
-  , _cloudFrontDistributionLegacyCustomOriginOriginSSLProtocols = Nothing
-  }
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacycustomorigin.html#cfn-cloudfront-distribution-legacycustomorigin-dnsname
-cfdlcoDNSName :: Lens' CloudFrontDistributionLegacyCustomOrigin (Val Text)
-cfdlcoDNSName = lens _cloudFrontDistributionLegacyCustomOriginDNSName (\s a -> s { _cloudFrontDistributionLegacyCustomOriginDNSName = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacycustomorigin.html#cfn-cloudfront-distribution-legacycustomorigin-httpport
-cfdlcoHTTPPort :: Lens' CloudFrontDistributionLegacyCustomOrigin (Maybe (Val Integer))
-cfdlcoHTTPPort = lens _cloudFrontDistributionLegacyCustomOriginHTTPPort (\s a -> s { _cloudFrontDistributionLegacyCustomOriginHTTPPort = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacycustomorigin.html#cfn-cloudfront-distribution-legacycustomorigin-httpsport
-cfdlcoHTTPSPort :: Lens' CloudFrontDistributionLegacyCustomOrigin (Maybe (Val Integer))
-cfdlcoHTTPSPort = lens _cloudFrontDistributionLegacyCustomOriginHTTPSPort (\s a -> s { _cloudFrontDistributionLegacyCustomOriginHTTPSPort = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacycustomorigin.html#cfn-cloudfront-distribution-legacycustomorigin-originprotocolpolicy
-cfdlcoOriginProtocolPolicy :: Lens' CloudFrontDistributionLegacyCustomOrigin (Val Text)
-cfdlcoOriginProtocolPolicy = lens _cloudFrontDistributionLegacyCustomOriginOriginProtocolPolicy (\s a -> s { _cloudFrontDistributionLegacyCustomOriginOriginProtocolPolicy = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacycustomorigin.html#cfn-cloudfront-distribution-legacycustomorigin-originsslprotocols
-cfdlcoOriginSSLProtocols :: Lens' CloudFrontDistributionLegacyCustomOrigin (Maybe (ValList Text))
-cfdlcoOriginSSLProtocols = lens _cloudFrontDistributionLegacyCustomOriginOriginSSLProtocols (\s a -> s { _cloudFrontDistributionLegacyCustomOriginOriginSSLProtocols = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionLegacyS3Origin.hs b/library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionLegacyS3Origin.hs
deleted file mode 100644
--- a/library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionLegacyS3Origin.hs
+++ /dev/null
@@ -1,58 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE RecordWildCards #-}
-{-# LANGUAGE TupleSections #-}
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacys3origin.html
-
-module Stratosphere.ResourceProperties.CloudFrontDistributionLegacyS3Origin where
-
-import Control.Lens hiding ((.=))
-import Data.Aeson
-import Data.Maybe (catMaybes)
-import Data.Monoid (mempty)
-import Data.Text
-
-import Stratosphere.Values
-
-
--- | Full data type definition for CloudFrontDistributionLegacyS3Origin. See
--- 'cloudFrontDistributionLegacyS3Origin' for a more convenient constructor.
-data CloudFrontDistributionLegacyS3Origin =
-  CloudFrontDistributionLegacyS3Origin
-  { _cloudFrontDistributionLegacyS3OriginDNSName :: Val Text
-  , _cloudFrontDistributionLegacyS3OriginOriginAccessIdentity :: Maybe (Val Text)
-  } deriving (Show, Eq)
-
-instance ToJSON CloudFrontDistributionLegacyS3Origin where
-  toJSON CloudFrontDistributionLegacyS3Origin{..} =
-    object $
-    catMaybes
-    [ (Just . ("DNSName",) . toJSON) _cloudFrontDistributionLegacyS3OriginDNSName
-    , fmap (("OriginAccessIdentity",) . toJSON) _cloudFrontDistributionLegacyS3OriginOriginAccessIdentity
-    ]
-
-instance FromJSON CloudFrontDistributionLegacyS3Origin where
-  parseJSON (Object obj) =
-    CloudFrontDistributionLegacyS3Origin <$>
-      (obj .: "DNSName") <*>
-      (obj .:? "OriginAccessIdentity")
-  parseJSON _ = mempty
-
--- | Constructor for 'CloudFrontDistributionLegacyS3Origin' containing
--- required fields as arguments.
-cloudFrontDistributionLegacyS3Origin
-  :: Val Text -- ^ 'cfdlsoDNSName'
-  -> CloudFrontDistributionLegacyS3Origin
-cloudFrontDistributionLegacyS3Origin dNSNamearg =
-  CloudFrontDistributionLegacyS3Origin
-  { _cloudFrontDistributionLegacyS3OriginDNSName = dNSNamearg
-  , _cloudFrontDistributionLegacyS3OriginOriginAccessIdentity = Nothing
-  }
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacys3origin.html#cfn-cloudfront-distribution-legacys3origin-dnsname
-cfdlsoDNSName :: Lens' CloudFrontDistributionLegacyS3Origin (Val Text)
-cfdlsoDNSName = lens _cloudFrontDistributionLegacyS3OriginDNSName (\s a -> s { _cloudFrontDistributionLegacyS3OriginDNSName = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacys3origin.html#cfn-cloudfront-distribution-legacys3origin-originaccessidentity
-cfdlsoOriginAccessIdentity :: Lens' CloudFrontDistributionLegacyS3Origin (Maybe (Val Text))
-cfdlsoOriginAccessIdentity = lens _cloudFrontDistributionLegacyS3OriginOriginAccessIdentity (\s a -> s { _cloudFrontDistributionLegacyS3OriginOriginAccessIdentity = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectProjectCache.hs b/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectProjectCache.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectProjectCache.hs
@@ -0,0 +1,58 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html
+
+module Stratosphere.ResourceProperties.CodeBuildProjectProjectCache where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for CodeBuildProjectProjectCache. See
+-- 'codeBuildProjectProjectCache' for a more convenient constructor.
+data CodeBuildProjectProjectCache =
+  CodeBuildProjectProjectCache
+  { _codeBuildProjectProjectCacheLocation :: Maybe (Val Text)
+  , _codeBuildProjectProjectCacheType :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON CodeBuildProjectProjectCache where
+  toJSON CodeBuildProjectProjectCache{..} =
+    object $
+    catMaybes
+    [ fmap (("Location",) . toJSON) _codeBuildProjectProjectCacheLocation
+    , (Just . ("Type",) . toJSON) _codeBuildProjectProjectCacheType
+    ]
+
+instance FromJSON CodeBuildProjectProjectCache where
+  parseJSON (Object obj) =
+    CodeBuildProjectProjectCache <$>
+      (obj .:? "Location") <*>
+      (obj .: "Type")
+  parseJSON _ = mempty
+
+-- | Constructor for 'CodeBuildProjectProjectCache' containing required fields
+-- as arguments.
+codeBuildProjectProjectCache
+  :: Val Text -- ^ 'cbppcType'
+  -> CodeBuildProjectProjectCache
+codeBuildProjectProjectCache typearg =
+  CodeBuildProjectProjectCache
+  { _codeBuildProjectProjectCacheLocation = Nothing
+  , _codeBuildProjectProjectCacheType = typearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html#cfn-codebuild-project-projectcache-location
+cbppcLocation :: Lens' CodeBuildProjectProjectCache (Maybe (Val Text))
+cbppcLocation = lens _codeBuildProjectProjectCacheLocation (\s a -> s { _codeBuildProjectProjectCacheLocation = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html#cfn-codebuild-project-projectcache-type
+cbppcType :: Lens' CodeBuildProjectProjectCache (Val Text)
+cbppcType = lens _codeBuildProjectProjectCacheType (\s a -> s { _codeBuildProjectProjectCacheType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectVpcConfig.hs b/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectVpcConfig.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectVpcConfig.hs
@@ -0,0 +1,68 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html
+
+module Stratosphere.ResourceProperties.CodeBuildProjectVpcConfig where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for CodeBuildProjectVpcConfig. See
+-- 'codeBuildProjectVpcConfig' for a more convenient constructor.
+data CodeBuildProjectVpcConfig =
+  CodeBuildProjectVpcConfig
+  { _codeBuildProjectVpcConfigSecurityGroupIds :: ValList Text
+  , _codeBuildProjectVpcConfigSubnets :: ValList Text
+  , _codeBuildProjectVpcConfigVpcId :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON CodeBuildProjectVpcConfig where
+  toJSON CodeBuildProjectVpcConfig{..} =
+    object $
+    catMaybes
+    [ (Just . ("SecurityGroupIds",) . toJSON) _codeBuildProjectVpcConfigSecurityGroupIds
+    , (Just . ("Subnets",) . toJSON) _codeBuildProjectVpcConfigSubnets
+    , (Just . ("VpcId",) . toJSON) _codeBuildProjectVpcConfigVpcId
+    ]
+
+instance FromJSON CodeBuildProjectVpcConfig where
+  parseJSON (Object obj) =
+    CodeBuildProjectVpcConfig <$>
+      (obj .: "SecurityGroupIds") <*>
+      (obj .: "Subnets") <*>
+      (obj .: "VpcId")
+  parseJSON _ = mempty
+
+-- | Constructor for 'CodeBuildProjectVpcConfig' containing required fields as
+-- arguments.
+codeBuildProjectVpcConfig
+  :: ValList Text -- ^ 'cbpvcSecurityGroupIds'
+  -> ValList Text -- ^ 'cbpvcSubnets'
+  -> Val Text -- ^ 'cbpvcVpcId'
+  -> CodeBuildProjectVpcConfig
+codeBuildProjectVpcConfig securityGroupIdsarg subnetsarg vpcIdarg =
+  CodeBuildProjectVpcConfig
+  { _codeBuildProjectVpcConfigSecurityGroupIds = securityGroupIdsarg
+  , _codeBuildProjectVpcConfigSubnets = subnetsarg
+  , _codeBuildProjectVpcConfigVpcId = vpcIdarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html#cfn-codebuild-project-vpcconfig-securitygroupids
+cbpvcSecurityGroupIds :: Lens' CodeBuildProjectVpcConfig (ValList Text)
+cbpvcSecurityGroupIds = lens _codeBuildProjectVpcConfigSecurityGroupIds (\s a -> s { _codeBuildProjectVpcConfigSecurityGroupIds = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html#cfn-codebuild-project-vpcconfig-subnets
+cbpvcSubnets :: Lens' CodeBuildProjectVpcConfig (ValList Text)
+cbpvcSubnets = lens _codeBuildProjectVpcConfigSubnets (\s a -> s { _codeBuildProjectVpcConfigSubnets = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html#cfn-codebuild-project-vpcconfig-vpcid
+cbpvcVpcId :: Lens' CodeBuildProjectVpcConfig (Val Text)
+cbpvcVpcId = lens _codeBuildProjectVpcConfigVpcId (\s a -> s { _codeBuildProjectVpcConfigVpcId = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentGroupDeploymentStyle.hs b/library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentGroupDeploymentStyle.hs
--- a/library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentGroupDeploymentStyle.hs
+++ b/library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentGroupDeploymentStyle.hs
@@ -21,6 +21,7 @@
 data CodeDeployDeploymentGroupDeploymentStyle =
   CodeDeployDeploymentGroupDeploymentStyle
   { _codeDeployDeploymentGroupDeploymentStyleDeploymentOption :: Maybe (Val Text)
+  , _codeDeployDeploymentGroupDeploymentStyleDeploymentType :: Maybe (Val Text)
   } deriving (Show, Eq)
 
 instance ToJSON CodeDeployDeploymentGroupDeploymentStyle where
@@ -28,12 +29,14 @@
     object $
     catMaybes
     [ fmap (("DeploymentOption",) . toJSON) _codeDeployDeploymentGroupDeploymentStyleDeploymentOption
+    , fmap (("DeploymentType",) . toJSON) _codeDeployDeploymentGroupDeploymentStyleDeploymentType
     ]
 
 instance FromJSON CodeDeployDeploymentGroupDeploymentStyle where
   parseJSON (Object obj) =
     CodeDeployDeploymentGroupDeploymentStyle <$>
-      (obj .:? "DeploymentOption")
+      (obj .:? "DeploymentOption") <*>
+      (obj .:? "DeploymentType")
   parseJSON _ = mempty
 
 -- | Constructor for 'CodeDeployDeploymentGroupDeploymentStyle' containing
@@ -43,8 +46,13 @@
 codeDeployDeploymentGroupDeploymentStyle  =
   CodeDeployDeploymentGroupDeploymentStyle
   { _codeDeployDeploymentGroupDeploymentStyleDeploymentOption = Nothing
+  , _codeDeployDeploymentGroupDeploymentStyleDeploymentType = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentstyle.html#cfn-codedeploy-deploymentgroup-deploymentstyle-deploymentoption
 cddgdsDeploymentOption :: Lens' CodeDeployDeploymentGroupDeploymentStyle (Maybe (Val Text))
 cddgdsDeploymentOption = lens _codeDeployDeploymentGroupDeploymentStyleDeploymentOption (\s a -> s { _codeDeployDeploymentGroupDeploymentStyleDeploymentOption = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentstyle.html#cfn-codedeploy-deploymentgroup-deploymentstyle-deploymenttype
+cddgdsDeploymentType :: Lens' CodeDeployDeploymentGroupDeploymentStyle (Maybe (Val Text))
+cddgdsDeploymentType = lens _codeDeployDeploymentGroupDeploymentStyleDeploymentType (\s a -> s { _codeDeployDeploymentGroupDeploymentStyleDeploymentType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2SpotFleetSpotFleetRequestConfigData.hs b/library-gen/Stratosphere/ResourceProperties/EC2SpotFleetSpotFleetRequestConfigData.hs
--- a/library-gen/Stratosphere/ResourceProperties/EC2SpotFleetSpotFleetRequestConfigData.hs
+++ b/library-gen/Stratosphere/ResourceProperties/EC2SpotFleetSpotFleetRequestConfigData.hs
@@ -25,7 +25,7 @@
   , _eC2SpotFleetSpotFleetRequestConfigDataIamFleetRole :: Val Text
   , _eC2SpotFleetSpotFleetRequestConfigDataLaunchSpecifications :: [EC2SpotFleetSpotFleetLaunchSpecification]
   , _eC2SpotFleetSpotFleetRequestConfigDataReplaceUnhealthyInstances :: Maybe (Val Bool)
-  , _eC2SpotFleetSpotFleetRequestConfigDataSpotPrice :: Val Text
+  , _eC2SpotFleetSpotFleetRequestConfigDataSpotPrice :: Maybe (Val Text)
   , _eC2SpotFleetSpotFleetRequestConfigDataTargetCapacity :: Val Integer
   , _eC2SpotFleetSpotFleetRequestConfigDataTerminateInstancesWithExpiration :: Maybe (Val Bool)
   , _eC2SpotFleetSpotFleetRequestConfigDataType :: Maybe (Val Text)
@@ -42,7 +42,7 @@
     , (Just . ("IamFleetRole",) . toJSON) _eC2SpotFleetSpotFleetRequestConfigDataIamFleetRole
     , (Just . ("LaunchSpecifications",) . toJSON) _eC2SpotFleetSpotFleetRequestConfigDataLaunchSpecifications
     , fmap (("ReplaceUnhealthyInstances",) . toJSON . fmap Bool') _eC2SpotFleetSpotFleetRequestConfigDataReplaceUnhealthyInstances
-    , (Just . ("SpotPrice",) . toJSON) _eC2SpotFleetSpotFleetRequestConfigDataSpotPrice
+    , fmap (("SpotPrice",) . toJSON) _eC2SpotFleetSpotFleetRequestConfigDataSpotPrice
     , (Just . ("TargetCapacity",) . toJSON . fmap Integer') _eC2SpotFleetSpotFleetRequestConfigDataTargetCapacity
     , fmap (("TerminateInstancesWithExpiration",) . toJSON . fmap Bool') _eC2SpotFleetSpotFleetRequestConfigDataTerminateInstancesWithExpiration
     , fmap (("Type",) . toJSON) _eC2SpotFleetSpotFleetRequestConfigDataType
@@ -58,7 +58,7 @@
       (obj .: "IamFleetRole") <*>
       (obj .: "LaunchSpecifications") <*>
       fmap (fmap (fmap unBool')) (obj .:? "ReplaceUnhealthyInstances") <*>
-      (obj .: "SpotPrice") <*>
+      (obj .:? "SpotPrice") <*>
       fmap (fmap unInteger') (obj .: "TargetCapacity") <*>
       fmap (fmap (fmap unBool')) (obj .:? "TerminateInstancesWithExpiration") <*>
       (obj .:? "Type") <*>
@@ -71,17 +71,16 @@
 ec2SpotFleetSpotFleetRequestConfigData
   :: Val Text -- ^ 'ecsfsfrcdIamFleetRole'
   -> [EC2SpotFleetSpotFleetLaunchSpecification] -- ^ 'ecsfsfrcdLaunchSpecifications'
-  -> Val Text -- ^ 'ecsfsfrcdSpotPrice'
   -> Val Integer -- ^ 'ecsfsfrcdTargetCapacity'
   -> EC2SpotFleetSpotFleetRequestConfigData
-ec2SpotFleetSpotFleetRequestConfigData iamFleetRolearg launchSpecificationsarg spotPricearg targetCapacityarg =
+ec2SpotFleetSpotFleetRequestConfigData iamFleetRolearg launchSpecificationsarg targetCapacityarg =
   EC2SpotFleetSpotFleetRequestConfigData
   { _eC2SpotFleetSpotFleetRequestConfigDataAllocationStrategy = Nothing
   , _eC2SpotFleetSpotFleetRequestConfigDataExcessCapacityTerminationPolicy = Nothing
   , _eC2SpotFleetSpotFleetRequestConfigDataIamFleetRole = iamFleetRolearg
   , _eC2SpotFleetSpotFleetRequestConfigDataLaunchSpecifications = launchSpecificationsarg
   , _eC2SpotFleetSpotFleetRequestConfigDataReplaceUnhealthyInstances = Nothing
-  , _eC2SpotFleetSpotFleetRequestConfigDataSpotPrice = spotPricearg
+  , _eC2SpotFleetSpotFleetRequestConfigDataSpotPrice = Nothing
   , _eC2SpotFleetSpotFleetRequestConfigDataTargetCapacity = targetCapacityarg
   , _eC2SpotFleetSpotFleetRequestConfigDataTerminateInstancesWithExpiration = Nothing
   , _eC2SpotFleetSpotFleetRequestConfigDataType = Nothing
@@ -110,7 +109,7 @@
 ecsfsfrcdReplaceUnhealthyInstances = lens _eC2SpotFleetSpotFleetRequestConfigDataReplaceUnhealthyInstances (\s a -> s { _eC2SpotFleetSpotFleetRequestConfigDataReplaceUnhealthyInstances = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-spotprice
-ecsfsfrcdSpotPrice :: Lens' EC2SpotFleetSpotFleetRequestConfigData (Val Text)
+ecsfsfrcdSpotPrice :: Lens' EC2SpotFleetSpotFleetRequestConfigData (Maybe (Val Text))
 ecsfsfrcdSpotPrice = lens _eC2SpotFleetSpotFleetRequestConfigDataSpotPrice (\s a -> s { _eC2SpotFleetSpotFleetRequestConfigDataSpotPrice = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-targetcapacity
diff --git a/library-gen/Stratosphere/ResourceProperties/ECSServiceAwsVpcConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/ECSServiceAwsVpcConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ECSServiceAwsVpcConfiguration.hs
@@ -0,0 +1,66 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-awsvpcconfiguration.html
+
+module Stratosphere.ResourceProperties.ECSServiceAwsVpcConfiguration where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for ECSServiceAwsVpcConfiguration. See
+-- 'ecsServiceAwsVpcConfiguration' for a more convenient constructor.
+data ECSServiceAwsVpcConfiguration =
+  ECSServiceAwsVpcConfiguration
+  { _eCSServiceAwsVpcConfigurationAssignPublicIp :: Maybe (Val Text)
+  , _eCSServiceAwsVpcConfigurationSecurityGroups :: Maybe (ValList Text)
+  , _eCSServiceAwsVpcConfigurationSubnets :: ValList Text
+  } deriving (Show, Eq)
+
+instance ToJSON ECSServiceAwsVpcConfiguration where
+  toJSON ECSServiceAwsVpcConfiguration{..} =
+    object $
+    catMaybes
+    [ fmap (("AssignPublicIp",) . toJSON) _eCSServiceAwsVpcConfigurationAssignPublicIp
+    , fmap (("SecurityGroups",) . toJSON) _eCSServiceAwsVpcConfigurationSecurityGroups
+    , (Just . ("Subnets",) . toJSON) _eCSServiceAwsVpcConfigurationSubnets
+    ]
+
+instance FromJSON ECSServiceAwsVpcConfiguration where
+  parseJSON (Object obj) =
+    ECSServiceAwsVpcConfiguration <$>
+      (obj .:? "AssignPublicIp") <*>
+      (obj .:? "SecurityGroups") <*>
+      (obj .: "Subnets")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ECSServiceAwsVpcConfiguration' containing required
+-- fields as arguments.
+ecsServiceAwsVpcConfiguration
+  :: ValList Text -- ^ 'ecssavcSubnets'
+  -> ECSServiceAwsVpcConfiguration
+ecsServiceAwsVpcConfiguration subnetsarg =
+  ECSServiceAwsVpcConfiguration
+  { _eCSServiceAwsVpcConfigurationAssignPublicIp = Nothing
+  , _eCSServiceAwsVpcConfigurationSecurityGroups = Nothing
+  , _eCSServiceAwsVpcConfigurationSubnets = subnetsarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-awsvpcconfiguration.html#cfn-ecs-service-awsvpcconfiguration-assignpublicip
+ecssavcAssignPublicIp :: Lens' ECSServiceAwsVpcConfiguration (Maybe (Val Text))
+ecssavcAssignPublicIp = lens _eCSServiceAwsVpcConfigurationAssignPublicIp (\s a -> s { _eCSServiceAwsVpcConfigurationAssignPublicIp = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-awsvpcconfiguration.html#cfn-ecs-service-awsvpcconfiguration-securitygroups
+ecssavcSecurityGroups :: Lens' ECSServiceAwsVpcConfiguration (Maybe (ValList Text))
+ecssavcSecurityGroups = lens _eCSServiceAwsVpcConfigurationSecurityGroups (\s a -> s { _eCSServiceAwsVpcConfigurationSecurityGroups = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-awsvpcconfiguration.html#cfn-ecs-service-awsvpcconfiguration-subnets
+ecssavcSubnets :: Lens' ECSServiceAwsVpcConfiguration (ValList Text)
+ecssavcSubnets = lens _eCSServiceAwsVpcConfigurationSubnets (\s a -> s { _eCSServiceAwsVpcConfigurationSubnets = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ECSServiceNetworkConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/ECSServiceNetworkConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ECSServiceNetworkConfiguration.hs
@@ -0,0 +1,49 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-networkconfiguration.html
+
+module Stratosphere.ResourceProperties.ECSServiceNetworkConfiguration where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+import Stratosphere.ResourceProperties.ECSServiceAwsVpcConfiguration
+
+-- | Full data type definition for ECSServiceNetworkConfiguration. See
+-- 'ecsServiceNetworkConfiguration' for a more convenient constructor.
+data ECSServiceNetworkConfiguration =
+  ECSServiceNetworkConfiguration
+  { _eCSServiceNetworkConfigurationAwsvpcConfiguration :: Maybe ECSServiceAwsVpcConfiguration
+  } deriving (Show, Eq)
+
+instance ToJSON ECSServiceNetworkConfiguration where
+  toJSON ECSServiceNetworkConfiguration{..} =
+    object $
+    catMaybes
+    [ fmap (("AwsvpcConfiguration",) . toJSON) _eCSServiceNetworkConfigurationAwsvpcConfiguration
+    ]
+
+instance FromJSON ECSServiceNetworkConfiguration where
+  parseJSON (Object obj) =
+    ECSServiceNetworkConfiguration <$>
+      (obj .:? "AwsvpcConfiguration")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ECSServiceNetworkConfiguration' containing required
+-- fields as arguments.
+ecsServiceNetworkConfiguration
+  :: ECSServiceNetworkConfiguration
+ecsServiceNetworkConfiguration  =
+  ECSServiceNetworkConfiguration
+  { _eCSServiceNetworkConfigurationAwsvpcConfiguration = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-networkconfiguration.html#cfn-ecs-service-networkconfiguration-awsvpcconfiguration
+ecssncAwsvpcConfiguration :: Lens' ECSServiceNetworkConfiguration (Maybe ECSServiceAwsVpcConfiguration)
+ecssncAwsvpcConfiguration = lens _eCSServiceNetworkConfigurationAwsvpcConfiguration (\s a -> s { _eCSServiceNetworkConfigurationAwsvpcConfiguration = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/LambdaAliasAliasRoutingConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/LambdaAliasAliasRoutingConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/LambdaAliasAliasRoutingConfiguration.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-aliasroutingconfiguration.html
+
+module Stratosphere.ResourceProperties.LambdaAliasAliasRoutingConfiguration where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+import Stratosphere.ResourceProperties.LambdaAliasVersionWeight
+
+-- | Full data type definition for LambdaAliasAliasRoutingConfiguration. See
+-- 'lambdaAliasAliasRoutingConfiguration' for a more convenient constructor.
+data LambdaAliasAliasRoutingConfiguration =
+  LambdaAliasAliasRoutingConfiguration
+  { _lambdaAliasAliasRoutingConfigurationAdditionalVersionWeights :: [LambdaAliasVersionWeight]
+  } deriving (Show, Eq)
+
+instance ToJSON LambdaAliasAliasRoutingConfiguration where
+  toJSON LambdaAliasAliasRoutingConfiguration{..} =
+    object $
+    catMaybes
+    [ (Just . ("AdditionalVersionWeights",) . toJSON) _lambdaAliasAliasRoutingConfigurationAdditionalVersionWeights
+    ]
+
+instance FromJSON LambdaAliasAliasRoutingConfiguration where
+  parseJSON (Object obj) =
+    LambdaAliasAliasRoutingConfiguration <$>
+      (obj .: "AdditionalVersionWeights")
+  parseJSON _ = mempty
+
+-- | Constructor for 'LambdaAliasAliasRoutingConfiguration' containing
+-- required fields as arguments.
+lambdaAliasAliasRoutingConfiguration
+  :: [LambdaAliasVersionWeight] -- ^ 'laarcAdditionalVersionWeights'
+  -> LambdaAliasAliasRoutingConfiguration
+lambdaAliasAliasRoutingConfiguration additionalVersionWeightsarg =
+  LambdaAliasAliasRoutingConfiguration
+  { _lambdaAliasAliasRoutingConfigurationAdditionalVersionWeights = additionalVersionWeightsarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-aliasroutingconfiguration.html#cfn-lambda-alias-aliasroutingconfiguration-additionalversionweights
+laarcAdditionalVersionWeights :: Lens' LambdaAliasAliasRoutingConfiguration [LambdaAliasVersionWeight]
+laarcAdditionalVersionWeights = lens _lambdaAliasAliasRoutingConfigurationAdditionalVersionWeights (\s a -> s { _lambdaAliasAliasRoutingConfigurationAdditionalVersionWeights = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/LambdaAliasVersionWeight.hs b/library-gen/Stratosphere/ResourceProperties/LambdaAliasVersionWeight.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/LambdaAliasVersionWeight.hs
@@ -0,0 +1,59 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-versionweight.html
+
+module Stratosphere.ResourceProperties.LambdaAliasVersionWeight where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for LambdaAliasVersionWeight. See
+-- 'lambdaAliasVersionWeight' for a more convenient constructor.
+data LambdaAliasVersionWeight =
+  LambdaAliasVersionWeight
+  { _lambdaAliasVersionWeightFunctionVersion :: Val Text
+  , _lambdaAliasVersionWeightFunctionWeight :: Val Double
+  } deriving (Show, Eq)
+
+instance ToJSON LambdaAliasVersionWeight where
+  toJSON LambdaAliasVersionWeight{..} =
+    object $
+    catMaybes
+    [ (Just . ("FunctionVersion",) . toJSON) _lambdaAliasVersionWeightFunctionVersion
+    , (Just . ("FunctionWeight",) . toJSON . fmap Double') _lambdaAliasVersionWeightFunctionWeight
+    ]
+
+instance FromJSON LambdaAliasVersionWeight where
+  parseJSON (Object obj) =
+    LambdaAliasVersionWeight <$>
+      (obj .: "FunctionVersion") <*>
+      fmap (fmap unDouble') (obj .: "FunctionWeight")
+  parseJSON _ = mempty
+
+-- | Constructor for 'LambdaAliasVersionWeight' containing required fields as
+-- arguments.
+lambdaAliasVersionWeight
+  :: Val Text -- ^ 'lavwFunctionVersion'
+  -> Val Double -- ^ 'lavwFunctionWeight'
+  -> LambdaAliasVersionWeight
+lambdaAliasVersionWeight functionVersionarg functionWeightarg =
+  LambdaAliasVersionWeight
+  { _lambdaAliasVersionWeightFunctionVersion = functionVersionarg
+  , _lambdaAliasVersionWeightFunctionWeight = functionWeightarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-versionweight.html#cfn-lambda-alias-versionweight-functionversion
+lavwFunctionVersion :: Lens' LambdaAliasVersionWeight (Val Text)
+lavwFunctionVersion = lens _lambdaAliasVersionWeightFunctionVersion (\s a -> s { _lambdaAliasVersionWeightFunctionVersion = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-versionweight.html#cfn-lambda-alias-versionweight-functionweight
+lavwFunctionWeight :: Lens' LambdaAliasVersionWeight (Val Double)
+lavwFunctionWeight = lens _lambdaAliasVersionWeightFunctionWeight (\s a -> s { _lambdaAliasVersionWeightFunctionWeight = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ServiceDiscoveryServiceDnsConfig.hs b/library-gen/Stratosphere/ResourceProperties/ServiceDiscoveryServiceDnsConfig.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ServiceDiscoveryServiceDnsConfig.hs
@@ -0,0 +1,59 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsconfig.html
+
+module Stratosphere.ResourceProperties.ServiceDiscoveryServiceDnsConfig where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+import Stratosphere.ResourceProperties.ServiceDiscoveryServiceDnsRecord
+
+-- | Full data type definition for ServiceDiscoveryServiceDnsConfig. See
+-- 'serviceDiscoveryServiceDnsConfig' for a more convenient constructor.
+data ServiceDiscoveryServiceDnsConfig =
+  ServiceDiscoveryServiceDnsConfig
+  { _serviceDiscoveryServiceDnsConfigDnsRecords :: [ServiceDiscoveryServiceDnsRecord]
+  , _serviceDiscoveryServiceDnsConfigNamespaceId :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON ServiceDiscoveryServiceDnsConfig where
+  toJSON ServiceDiscoveryServiceDnsConfig{..} =
+    object $
+    catMaybes
+    [ (Just . ("DnsRecords",) . toJSON) _serviceDiscoveryServiceDnsConfigDnsRecords
+    , (Just . ("NamespaceId",) . toJSON) _serviceDiscoveryServiceDnsConfigNamespaceId
+    ]
+
+instance FromJSON ServiceDiscoveryServiceDnsConfig where
+  parseJSON (Object obj) =
+    ServiceDiscoveryServiceDnsConfig <$>
+      (obj .: "DnsRecords") <*>
+      (obj .: "NamespaceId")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ServiceDiscoveryServiceDnsConfig' containing required
+-- fields as arguments.
+serviceDiscoveryServiceDnsConfig
+  :: [ServiceDiscoveryServiceDnsRecord] -- ^ 'sdsdcDnsRecords'
+  -> Val Text -- ^ 'sdsdcNamespaceId'
+  -> ServiceDiscoveryServiceDnsConfig
+serviceDiscoveryServiceDnsConfig dnsRecordsarg namespaceIdarg =
+  ServiceDiscoveryServiceDnsConfig
+  { _serviceDiscoveryServiceDnsConfigDnsRecords = dnsRecordsarg
+  , _serviceDiscoveryServiceDnsConfigNamespaceId = namespaceIdarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsconfig.html#cfn-servicediscovery-service-dnsconfig-dnsrecords
+sdsdcDnsRecords :: Lens' ServiceDiscoveryServiceDnsConfig [ServiceDiscoveryServiceDnsRecord]
+sdsdcDnsRecords = lens _serviceDiscoveryServiceDnsConfigDnsRecords (\s a -> s { _serviceDiscoveryServiceDnsConfigDnsRecords = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsconfig.html#cfn-servicediscovery-service-dnsconfig-namespaceid
+sdsdcNamespaceId :: Lens' ServiceDiscoveryServiceDnsConfig (Val Text)
+sdsdcNamespaceId = lens _serviceDiscoveryServiceDnsConfigNamespaceId (\s a -> s { _serviceDiscoveryServiceDnsConfigNamespaceId = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ServiceDiscoveryServiceDnsRecord.hs b/library-gen/Stratosphere/ResourceProperties/ServiceDiscoveryServiceDnsRecord.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ServiceDiscoveryServiceDnsRecord.hs
@@ -0,0 +1,59 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsrecord.html
+
+module Stratosphere.ResourceProperties.ServiceDiscoveryServiceDnsRecord where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for ServiceDiscoveryServiceDnsRecord. See
+-- 'serviceDiscoveryServiceDnsRecord' for a more convenient constructor.
+data ServiceDiscoveryServiceDnsRecord =
+  ServiceDiscoveryServiceDnsRecord
+  { _serviceDiscoveryServiceDnsRecordTTL :: Val Text
+  , _serviceDiscoveryServiceDnsRecordType :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON ServiceDiscoveryServiceDnsRecord where
+  toJSON ServiceDiscoveryServiceDnsRecord{..} =
+    object $
+    catMaybes
+    [ (Just . ("TTL",) . toJSON) _serviceDiscoveryServiceDnsRecordTTL
+    , (Just . ("Type",) . toJSON) _serviceDiscoveryServiceDnsRecordType
+    ]
+
+instance FromJSON ServiceDiscoveryServiceDnsRecord where
+  parseJSON (Object obj) =
+    ServiceDiscoveryServiceDnsRecord <$>
+      (obj .: "TTL") <*>
+      (obj .: "Type")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ServiceDiscoveryServiceDnsRecord' containing required
+-- fields as arguments.
+serviceDiscoveryServiceDnsRecord
+  :: Val Text -- ^ 'sdsdrTTL'
+  -> Val Text -- ^ 'sdsdrType'
+  -> ServiceDiscoveryServiceDnsRecord
+serviceDiscoveryServiceDnsRecord tTLarg typearg =
+  ServiceDiscoveryServiceDnsRecord
+  { _serviceDiscoveryServiceDnsRecordTTL = tTLarg
+  , _serviceDiscoveryServiceDnsRecordType = typearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsrecord.html#cfn-servicediscovery-service-dnsrecord-ttl
+sdsdrTTL :: Lens' ServiceDiscoveryServiceDnsRecord (Val Text)
+sdsdrTTL = lens _serviceDiscoveryServiceDnsRecordTTL (\s a -> s { _serviceDiscoveryServiceDnsRecordTTL = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsrecord.html#cfn-servicediscovery-service-dnsrecord-type
+sdsdrType :: Lens' ServiceDiscoveryServiceDnsRecord (Val Text)
+sdsdrType = lens _serviceDiscoveryServiceDnsRecordType (\s a -> s { _serviceDiscoveryServiceDnsRecordType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ServiceDiscoveryServiceHealthCheckConfig.hs b/library-gen/Stratosphere/ResourceProperties/ServiceDiscoveryServiceHealthCheckConfig.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ServiceDiscoveryServiceHealthCheckConfig.hs
@@ -0,0 +1,67 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-healthcheckconfig.html
+
+module Stratosphere.ResourceProperties.ServiceDiscoveryServiceHealthCheckConfig where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for ServiceDiscoveryServiceHealthCheckConfig.
+-- See 'serviceDiscoveryServiceHealthCheckConfig' for a more convenient
+-- constructor.
+data ServiceDiscoveryServiceHealthCheckConfig =
+  ServiceDiscoveryServiceHealthCheckConfig
+  { _serviceDiscoveryServiceHealthCheckConfigFailureThreshold :: Maybe (Val Double)
+  , _serviceDiscoveryServiceHealthCheckConfigResourcePath :: Maybe (Val Text)
+  , _serviceDiscoveryServiceHealthCheckConfigType :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON ServiceDiscoveryServiceHealthCheckConfig where
+  toJSON ServiceDiscoveryServiceHealthCheckConfig{..} =
+    object $
+    catMaybes
+    [ fmap (("FailureThreshold",) . toJSON . fmap Double') _serviceDiscoveryServiceHealthCheckConfigFailureThreshold
+    , fmap (("ResourcePath",) . toJSON) _serviceDiscoveryServiceHealthCheckConfigResourcePath
+    , (Just . ("Type",) . toJSON) _serviceDiscoveryServiceHealthCheckConfigType
+    ]
+
+instance FromJSON ServiceDiscoveryServiceHealthCheckConfig where
+  parseJSON (Object obj) =
+    ServiceDiscoveryServiceHealthCheckConfig <$>
+      fmap (fmap (fmap unDouble')) (obj .:? "FailureThreshold") <*>
+      (obj .:? "ResourcePath") <*>
+      (obj .: "Type")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ServiceDiscoveryServiceHealthCheckConfig' containing
+-- required fields as arguments.
+serviceDiscoveryServiceHealthCheckConfig
+  :: Val Text -- ^ 'sdshccType'
+  -> ServiceDiscoveryServiceHealthCheckConfig
+serviceDiscoveryServiceHealthCheckConfig typearg =
+  ServiceDiscoveryServiceHealthCheckConfig
+  { _serviceDiscoveryServiceHealthCheckConfigFailureThreshold = Nothing
+  , _serviceDiscoveryServiceHealthCheckConfigResourcePath = Nothing
+  , _serviceDiscoveryServiceHealthCheckConfigType = typearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-healthcheckconfig.html#cfn-servicediscovery-service-healthcheckconfig-failurethreshold
+sdshccFailureThreshold :: Lens' ServiceDiscoveryServiceHealthCheckConfig (Maybe (Val Double))
+sdshccFailureThreshold = lens _serviceDiscoveryServiceHealthCheckConfigFailureThreshold (\s a -> s { _serviceDiscoveryServiceHealthCheckConfigFailureThreshold = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-healthcheckconfig.html#cfn-servicediscovery-service-healthcheckconfig-resourcepath
+sdshccResourcePath :: Lens' ServiceDiscoveryServiceHealthCheckConfig (Maybe (Val Text))
+sdshccResourcePath = lens _serviceDiscoveryServiceHealthCheckConfigResourcePath (\s a -> s { _serviceDiscoveryServiceHealthCheckConfigResourcePath = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-healthcheckconfig.html#cfn-servicediscovery-service-healthcheckconfig-type
+sdshccType :: Lens' ServiceDiscoveryServiceHealthCheckConfig (Val Text)
+sdshccType = lens _serviceDiscoveryServiceHealthCheckConfigType (\s a -> s { _serviceDiscoveryServiceHealthCheckConfigType = 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
@@ -75,6 +75,7 @@
 import Stratosphere.Resources.BatchJobDefinition as X
 import Stratosphere.Resources.BatchJobQueue as X
 import Stratosphere.Resources.CertificateManagerCertificate as X
+import Stratosphere.Resources.Cloud9EnvironmentEC2 as X
 import Stratosphere.Resources.CloudFormationCustomResource as X
 import Stratosphere.Resources.CloudFormationStack as X
 import Stratosphere.Resources.CloudFormationWaitCondition as X
@@ -194,6 +195,9 @@
 import Stratosphere.Resources.GluePartition as X
 import Stratosphere.Resources.GlueTable as X
 import Stratosphere.Resources.GlueTrigger as X
+import Stratosphere.Resources.GuardDutyDetector as X
+import Stratosphere.Resources.GuardDutyIPSet as X
+import Stratosphere.Resources.GuardDutyThreatIntelSet as X
 import Stratosphere.Resources.IAMAccessKey as X
 import Stratosphere.Resources.IAMGroup as X
 import Stratosphere.Resources.IAMInstanceProfile as X
@@ -202,6 +206,9 @@
 import Stratosphere.Resources.IAMRole as X
 import Stratosphere.Resources.IAMUser as X
 import Stratosphere.Resources.IAMUserToGroupAddition as X
+import Stratosphere.Resources.InspectorAssessmentTarget as X
+import Stratosphere.Resources.InspectorAssessmentTemplate as X
+import Stratosphere.Resources.InspectorResourceGroup as X
 import Stratosphere.Resources.IoTCertificate as X
 import Stratosphere.Resources.IoTPolicy as X
 import Stratosphere.Resources.IoTPolicyPrincipalAttachment as X
@@ -263,6 +270,10 @@
 import Stratosphere.Resources.SSMMaintenanceWindowTask as X
 import Stratosphere.Resources.SSMParameter as X
 import Stratosphere.Resources.SSMPatchBaseline as X
+import Stratosphere.Resources.ServiceDiscoveryInstance as X
+import Stratosphere.Resources.ServiceDiscoveryPrivateDnsNamespace as X
+import Stratosphere.Resources.ServiceDiscoveryPublicDnsNamespace as X
+import Stratosphere.Resources.ServiceDiscoveryService as X
 import Stratosphere.Resources.StepFunctionsActivity as X
 import Stratosphere.Resources.StepFunctionsStateMachine as X
 import Stratosphere.Resources.WAFByteMatchSet as X
@@ -324,6 +335,7 @@
 import Stratosphere.ResourceProperties.BatchJobDefinitionVolumesHost as X
 import Stratosphere.ResourceProperties.BatchJobQueueComputeEnvironmentOrder as X
 import Stratosphere.ResourceProperties.CertificateManagerCertificateDomainValidationOption as X
+import Stratosphere.ResourceProperties.Cloud9EnvironmentEC2Repository as X
 import Stratosphere.ResourceProperties.CloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfig as X
 import Stratosphere.ResourceProperties.CloudFrontDistributionCacheBehavior as X
 import Stratosphere.ResourceProperties.CloudFrontDistributionCookies as X
@@ -334,8 +346,6 @@
 import Stratosphere.ResourceProperties.CloudFrontDistributionForwardedValues as X
 import Stratosphere.ResourceProperties.CloudFrontDistributionGeoRestriction as X
 import Stratosphere.ResourceProperties.CloudFrontDistributionLambdaFunctionAssociation as X
-import Stratosphere.ResourceProperties.CloudFrontDistributionLegacyCustomOrigin as X
-import Stratosphere.ResourceProperties.CloudFrontDistributionLegacyS3Origin as X
 import Stratosphere.ResourceProperties.CloudFrontDistributionLogging as X
 import Stratosphere.ResourceProperties.CloudFrontDistributionOrigin as X
 import Stratosphere.ResourceProperties.CloudFrontDistributionOriginCustomHeader as X
@@ -352,8 +362,10 @@
 import Stratosphere.ResourceProperties.CodeBuildProjectArtifacts as X
 import Stratosphere.ResourceProperties.CodeBuildProjectEnvironment as X
 import Stratosphere.ResourceProperties.CodeBuildProjectEnvironmentVariable as X
+import Stratosphere.ResourceProperties.CodeBuildProjectProjectCache as X
 import Stratosphere.ResourceProperties.CodeBuildProjectSource as X
 import Stratosphere.ResourceProperties.CodeBuildProjectSourceAuth as X
+import Stratosphere.ResourceProperties.CodeBuildProjectVpcConfig as X
 import Stratosphere.ResourceProperties.CodeCommitRepositoryRepositoryTrigger as X
 import Stratosphere.ResourceProperties.CodeDeployDeploymentConfigMinimumHealthyHosts as X
 import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupAlarm as X
@@ -453,8 +465,10 @@
 import Stratosphere.ResourceProperties.EC2SpotFleetSpotPlacement as X
 import Stratosphere.ResourceProperties.EC2VPNConnectionVpnTunnelOptionsSpecification as X
 import Stratosphere.ResourceProperties.ECRRepositoryLifecyclePolicy as X
+import Stratosphere.ResourceProperties.ECSServiceAwsVpcConfiguration as X
 import Stratosphere.ResourceProperties.ECSServiceDeploymentConfiguration as X
 import Stratosphere.ResourceProperties.ECSServiceLoadBalancer as X
+import Stratosphere.ResourceProperties.ECSServiceNetworkConfiguration as X
 import Stratosphere.ResourceProperties.ECSServicePlacementConstraint as X
 import Stratosphere.ResourceProperties.ECSServicePlacementStrategy as X
 import Stratosphere.ResourceProperties.ECSTaskDefinitionContainerDefinition as X
@@ -642,6 +656,8 @@
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessorParameter as X
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration as X
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamS3DestinationConfiguration as X
+import Stratosphere.ResourceProperties.LambdaAliasAliasRoutingConfiguration as X
+import Stratosphere.ResourceProperties.LambdaAliasVersionWeight as X
 import Stratosphere.ResourceProperties.LambdaFunctionCode as X
 import Stratosphere.ResourceProperties.LambdaFunctionDeadLetterConfig as X
 import Stratosphere.ResourceProperties.LambdaFunctionEnvironment as X
@@ -730,6 +746,9 @@
 import Stratosphere.ResourceProperties.SSMPatchBaselinePatchFilterGroup as X
 import Stratosphere.ResourceProperties.SSMPatchBaselineRule as X
 import Stratosphere.ResourceProperties.SSMPatchBaselineRuleGroup as X
+import Stratosphere.ResourceProperties.ServiceDiscoveryServiceDnsConfig as X
+import Stratosphere.ResourceProperties.ServiceDiscoveryServiceDnsRecord as X
+import Stratosphere.ResourceProperties.ServiceDiscoveryServiceHealthCheckConfig as X
 import Stratosphere.ResourceProperties.WAFByteMatchSetByteMatchTuple as X
 import Stratosphere.ResourceProperties.WAFByteMatchSetFieldToMatch as X
 import Stratosphere.ResourceProperties.WAFIPSetIPSetDescriptor as X
@@ -796,6 +815,7 @@
   | BatchJobDefinitionProperties BatchJobDefinition
   | BatchJobQueueProperties BatchJobQueue
   | CertificateManagerCertificateProperties CertificateManagerCertificate
+  | Cloud9EnvironmentEC2Properties Cloud9EnvironmentEC2
   | CloudFormationCustomResourceProperties CloudFormationCustomResource
   | CloudFormationStackProperties CloudFormationStack
   | CloudFormationWaitConditionProperties CloudFormationWaitCondition
@@ -915,6 +935,9 @@
   | GluePartitionProperties GluePartition
   | GlueTableProperties GlueTable
   | GlueTriggerProperties GlueTrigger
+  | GuardDutyDetectorProperties GuardDutyDetector
+  | GuardDutyIPSetProperties GuardDutyIPSet
+  | GuardDutyThreatIntelSetProperties GuardDutyThreatIntelSet
   | IAMAccessKeyProperties IAMAccessKey
   | IAMGroupProperties IAMGroup
   | IAMInstanceProfileProperties IAMInstanceProfile
@@ -923,6 +946,9 @@
   | IAMRoleProperties IAMRole
   | IAMUserProperties IAMUser
   | IAMUserToGroupAdditionProperties IAMUserToGroupAddition
+  | InspectorAssessmentTargetProperties InspectorAssessmentTarget
+  | InspectorAssessmentTemplateProperties InspectorAssessmentTemplate
+  | InspectorResourceGroupProperties InspectorResourceGroup
   | IoTCertificateProperties IoTCertificate
   | IoTPolicyProperties IoTPolicy
   | IoTPolicyPrincipalAttachmentProperties IoTPolicyPrincipalAttachment
@@ -984,6 +1010,10 @@
   | SSMMaintenanceWindowTaskProperties SSMMaintenanceWindowTask
   | SSMParameterProperties SSMParameter
   | SSMPatchBaselineProperties SSMPatchBaseline
+  | ServiceDiscoveryInstanceProperties ServiceDiscoveryInstance
+  | ServiceDiscoveryPrivateDnsNamespaceProperties ServiceDiscoveryPrivateDnsNamespace
+  | ServiceDiscoveryPublicDnsNamespaceProperties ServiceDiscoveryPublicDnsNamespace
+  | ServiceDiscoveryServiceProperties ServiceDiscoveryService
   | StepFunctionsActivityProperties StepFunctionsActivity
   | StepFunctionsStateMachineProperties StepFunctionsStateMachine
   | WAFByteMatchSetProperties WAFByteMatchSet
@@ -1114,6 +1144,8 @@
   [ "Type" .= ("AWS::Batch::JobQueue" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (CertificateManagerCertificateProperties x) =
   [ "Type" .= ("AWS::CertificateManager::Certificate" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (Cloud9EnvironmentEC2Properties x) =
+  [ "Type" .= ("AWS::Cloud9::EnvironmentEC2" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (CloudFormationCustomResourceProperties x) =
   [ "Type" .= ("AWS::CloudFormation::CustomResource" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (CloudFormationStackProperties x) =
@@ -1352,6 +1384,12 @@
   [ "Type" .= ("AWS::Glue::Table" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (GlueTriggerProperties x) =
   [ "Type" .= ("AWS::Glue::Trigger" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (GuardDutyDetectorProperties x) =
+  [ "Type" .= ("AWS::GuardDuty::Detector" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (GuardDutyIPSetProperties x) =
+  [ "Type" .= ("AWS::GuardDuty::IPSet" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (GuardDutyThreatIntelSetProperties x) =
+  [ "Type" .= ("AWS::GuardDuty::ThreatIntelSet" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (IAMAccessKeyProperties x) =
   [ "Type" .= ("AWS::IAM::AccessKey" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (IAMGroupProperties x) =
@@ -1368,6 +1406,12 @@
   [ "Type" .= ("AWS::IAM::User" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (IAMUserToGroupAdditionProperties x) =
   [ "Type" .= ("AWS::IAM::UserToGroupAddition" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (InspectorAssessmentTargetProperties x) =
+  [ "Type" .= ("AWS::Inspector::AssessmentTarget" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (InspectorAssessmentTemplateProperties x) =
+  [ "Type" .= ("AWS::Inspector::AssessmentTemplate" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (InspectorResourceGroupProperties x) =
+  [ "Type" .= ("AWS::Inspector::ResourceGroup" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (IoTCertificateProperties x) =
   [ "Type" .= ("AWS::IoT::Certificate" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (IoTPolicyProperties x) =
@@ -1490,6 +1534,14 @@
   [ "Type" .= ("AWS::SSM::Parameter" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (SSMPatchBaselineProperties x) =
   [ "Type" .= ("AWS::SSM::PatchBaseline" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (ServiceDiscoveryInstanceProperties x) =
+  [ "Type" .= ("AWS::ServiceDiscovery::Instance" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (ServiceDiscoveryPrivateDnsNamespaceProperties x) =
+  [ "Type" .= ("AWS::ServiceDiscovery::PrivateDnsNamespace" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (ServiceDiscoveryPublicDnsNamespaceProperties x) =
+  [ "Type" .= ("AWS::ServiceDiscovery::PublicDnsNamespace" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (ServiceDiscoveryServiceProperties x) =
+  [ "Type" .= ("AWS::ServiceDiscovery::Service" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (StepFunctionsActivityProperties x) =
   [ "Type" .= ("AWS::StepFunctions::Activity" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (StepFunctionsStateMachineProperties x) =
@@ -1562,6 +1614,7 @@
          "AWS::Batch::JobDefinition" -> BatchJobDefinitionProperties <$> (o .: "Properties")
          "AWS::Batch::JobQueue" -> BatchJobQueueProperties <$> (o .: "Properties")
          "AWS::CertificateManager::Certificate" -> CertificateManagerCertificateProperties <$> (o .: "Properties")
+         "AWS::Cloud9::EnvironmentEC2" -> Cloud9EnvironmentEC2Properties <$> (o .: "Properties")
          "AWS::CloudFormation::CustomResource" -> CloudFormationCustomResourceProperties <$> (o .: "Properties")
          "AWS::CloudFormation::Stack" -> CloudFormationStackProperties <$> (o .: "Properties")
          "AWS::CloudFormation::WaitCondition" -> CloudFormationWaitConditionProperties <$> (o .: "Properties")
@@ -1681,6 +1734,9 @@
          "AWS::Glue::Partition" -> GluePartitionProperties <$> (o .: "Properties")
          "AWS::Glue::Table" -> GlueTableProperties <$> (o .: "Properties")
          "AWS::Glue::Trigger" -> GlueTriggerProperties <$> (o .: "Properties")
+         "AWS::GuardDuty::Detector" -> GuardDutyDetectorProperties <$> (o .: "Properties")
+         "AWS::GuardDuty::IPSet" -> GuardDutyIPSetProperties <$> (o .: "Properties")
+         "AWS::GuardDuty::ThreatIntelSet" -> GuardDutyThreatIntelSetProperties <$> (o .: "Properties")
          "AWS::IAM::AccessKey" -> IAMAccessKeyProperties <$> (o .: "Properties")
          "AWS::IAM::Group" -> IAMGroupProperties <$> (o .: "Properties")
          "AWS::IAM::InstanceProfile" -> IAMInstanceProfileProperties <$> (o .: "Properties")
@@ -1689,6 +1745,9 @@
          "AWS::IAM::Role" -> IAMRoleProperties <$> (o .: "Properties")
          "AWS::IAM::User" -> IAMUserProperties <$> (o .: "Properties")
          "AWS::IAM::UserToGroupAddition" -> IAMUserToGroupAdditionProperties <$> (o .: "Properties")
+         "AWS::Inspector::AssessmentTarget" -> InspectorAssessmentTargetProperties <$> (o .: "Properties")
+         "AWS::Inspector::AssessmentTemplate" -> InspectorAssessmentTemplateProperties <$> (o .: "Properties")
+         "AWS::Inspector::ResourceGroup" -> InspectorResourceGroupProperties <$> (o .: "Properties")
          "AWS::IoT::Certificate" -> IoTCertificateProperties <$> (o .: "Properties")
          "AWS::IoT::Policy" -> IoTPolicyProperties <$> (o .: "Properties")
          "AWS::IoT::PolicyPrincipalAttachment" -> IoTPolicyPrincipalAttachmentProperties <$> (o .: "Properties")
@@ -1750,6 +1809,10 @@
          "AWS::SSM::MaintenanceWindowTask" -> SSMMaintenanceWindowTaskProperties <$> (o .: "Properties")
          "AWS::SSM::Parameter" -> SSMParameterProperties <$> (o .: "Properties")
          "AWS::SSM::PatchBaseline" -> SSMPatchBaselineProperties <$> (o .: "Properties")
+         "AWS::ServiceDiscovery::Instance" -> ServiceDiscoveryInstanceProperties <$> (o .: "Properties")
+         "AWS::ServiceDiscovery::PrivateDnsNamespace" -> ServiceDiscoveryPrivateDnsNamespaceProperties <$> (o .: "Properties")
+         "AWS::ServiceDiscovery::PublicDnsNamespace" -> ServiceDiscoveryPublicDnsNamespaceProperties <$> (o .: "Properties")
+         "AWS::ServiceDiscovery::Service" -> ServiceDiscoveryServiceProperties <$> (o .: "Properties")
          "AWS::StepFunctions::Activity" -> StepFunctionsActivityProperties <$> (o .: "Properties")
          "AWS::StepFunctions::StateMachine" -> StepFunctionsStateMachineProperties <$> (o .: "Properties")
          "AWS::WAF::ByteMatchSet" -> WAFByteMatchSetProperties <$> (o .: "Properties")
diff --git a/library-gen/Stratosphere/Resources/Cloud9EnvironmentEC2.hs b/library-gen/Stratosphere/Resources/Cloud9EnvironmentEC2.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/Cloud9EnvironmentEC2.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html
+
+module Stratosphere.Resources.Cloud9EnvironmentEC2 where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+import Stratosphere.ResourceProperties.Cloud9EnvironmentEC2Repository
+
+-- | Full data type definition for Cloud9EnvironmentEC2. See
+-- 'cloud9EnvironmentEC2' for a more convenient constructor.
+data Cloud9EnvironmentEC2 =
+  Cloud9EnvironmentEC2
+  { _cloud9EnvironmentEC2AutomaticStopTimeMinutes :: Maybe (Val Integer)
+  , _cloud9EnvironmentEC2Description :: Maybe (Val Text)
+  , _cloud9EnvironmentEC2InstanceType :: Val Text
+  , _cloud9EnvironmentEC2Name :: Maybe (Val Text)
+  , _cloud9EnvironmentEC2OwnerArn :: Maybe (Val Text)
+  , _cloud9EnvironmentEC2Repositories :: Maybe [Cloud9EnvironmentEC2Repository]
+  , _cloud9EnvironmentEC2SubnetId :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON Cloud9EnvironmentEC2 where
+  toJSON Cloud9EnvironmentEC2{..} =
+    object $
+    catMaybes
+    [ fmap (("AutomaticStopTimeMinutes",) . toJSON . fmap Integer') _cloud9EnvironmentEC2AutomaticStopTimeMinutes
+    , fmap (("Description",) . toJSON) _cloud9EnvironmentEC2Description
+    , (Just . ("InstanceType",) . toJSON) _cloud9EnvironmentEC2InstanceType
+    , fmap (("Name",) . toJSON) _cloud9EnvironmentEC2Name
+    , fmap (("OwnerArn",) . toJSON) _cloud9EnvironmentEC2OwnerArn
+    , fmap (("Repositories",) . toJSON) _cloud9EnvironmentEC2Repositories
+    , fmap (("SubnetId",) . toJSON) _cloud9EnvironmentEC2SubnetId
+    ]
+
+instance FromJSON Cloud9EnvironmentEC2 where
+  parseJSON (Object obj) =
+    Cloud9EnvironmentEC2 <$>
+      fmap (fmap (fmap unInteger')) (obj .:? "AutomaticStopTimeMinutes") <*>
+      (obj .:? "Description") <*>
+      (obj .: "InstanceType") <*>
+      (obj .:? "Name") <*>
+      (obj .:? "OwnerArn") <*>
+      (obj .:? "Repositories") <*>
+      (obj .:? "SubnetId")
+  parseJSON _ = mempty
+
+-- | Constructor for 'Cloud9EnvironmentEC2' containing required fields as
+-- arguments.
+cloud9EnvironmentEC2
+  :: Val Text -- ^ 'ceecInstanceType'
+  -> Cloud9EnvironmentEC2
+cloud9EnvironmentEC2 instanceTypearg =
+  Cloud9EnvironmentEC2
+  { _cloud9EnvironmentEC2AutomaticStopTimeMinutes = Nothing
+  , _cloud9EnvironmentEC2Description = Nothing
+  , _cloud9EnvironmentEC2InstanceType = instanceTypearg
+  , _cloud9EnvironmentEC2Name = Nothing
+  , _cloud9EnvironmentEC2OwnerArn = Nothing
+  , _cloud9EnvironmentEC2Repositories = Nothing
+  , _cloud9EnvironmentEC2SubnetId = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-automaticstoptimeminutes
+ceecAutomaticStopTimeMinutes :: Lens' Cloud9EnvironmentEC2 (Maybe (Val Integer))
+ceecAutomaticStopTimeMinutes = lens _cloud9EnvironmentEC2AutomaticStopTimeMinutes (\s a -> s { _cloud9EnvironmentEC2AutomaticStopTimeMinutes = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-description
+ceecDescription :: Lens' Cloud9EnvironmentEC2 (Maybe (Val Text))
+ceecDescription = lens _cloud9EnvironmentEC2Description (\s a -> s { _cloud9EnvironmentEC2Description = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-instancetype
+ceecInstanceType :: Lens' Cloud9EnvironmentEC2 (Val Text)
+ceecInstanceType = lens _cloud9EnvironmentEC2InstanceType (\s a -> s { _cloud9EnvironmentEC2InstanceType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-name
+ceecName :: Lens' Cloud9EnvironmentEC2 (Maybe (Val Text))
+ceecName = lens _cloud9EnvironmentEC2Name (\s a -> s { _cloud9EnvironmentEC2Name = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-ownerarn
+ceecOwnerArn :: Lens' Cloud9EnvironmentEC2 (Maybe (Val Text))
+ceecOwnerArn = lens _cloud9EnvironmentEC2OwnerArn (\s a -> s { _cloud9EnvironmentEC2OwnerArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-repositories
+ceecRepositories :: Lens' Cloud9EnvironmentEC2 (Maybe [Cloud9EnvironmentEC2Repository])
+ceecRepositories = lens _cloud9EnvironmentEC2Repositories (\s a -> s { _cloud9EnvironmentEC2Repositories = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-subnetid
+ceecSubnetId :: Lens' Cloud9EnvironmentEC2 (Maybe (Val Text))
+ceecSubnetId = lens _cloud9EnvironmentEC2SubnetId (\s a -> s { _cloud9EnvironmentEC2SubnetId = a })
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
@@ -14,15 +14,19 @@
 
 import Stratosphere.Values
 import Stratosphere.ResourceProperties.CodeBuildProjectArtifacts
+import Stratosphere.ResourceProperties.CodeBuildProjectProjectCache
 import Stratosphere.ResourceProperties.CodeBuildProjectEnvironment
 import Stratosphere.ResourceProperties.CodeBuildProjectSource
 import Stratosphere.ResourceProperties.Tag
+import Stratosphere.ResourceProperties.CodeBuildProjectVpcConfig
 
 -- | Full data type definition for CodeBuildProject. See 'codeBuildProject'
 -- for a more convenient constructor.
 data CodeBuildProject =
   CodeBuildProject
   { _codeBuildProjectArtifacts :: CodeBuildProjectArtifacts
+  , _codeBuildProjectBadgeEnabled :: Maybe (Val Bool)
+  , _codeBuildProjectCache :: Maybe CodeBuildProjectProjectCache
   , _codeBuildProjectDescription :: Maybe (Val Text)
   , _codeBuildProjectEncryptionKey :: Maybe (Val Text)
   , _codeBuildProjectEnvironment :: CodeBuildProjectEnvironment
@@ -31,6 +35,7 @@
   , _codeBuildProjectSource :: CodeBuildProjectSource
   , _codeBuildProjectTags :: Maybe [Tag]
   , _codeBuildProjectTimeoutInMinutes :: Maybe (Val Integer)
+  , _codeBuildProjectVpcConfig :: Maybe CodeBuildProjectVpcConfig
   } deriving (Show, Eq)
 
 instance ToJSON CodeBuildProject where
@@ -38,6 +43,8 @@
     object $
     catMaybes
     [ (Just . ("Artifacts",) . toJSON) _codeBuildProjectArtifacts
+    , fmap (("BadgeEnabled",) . toJSON . fmap Bool') _codeBuildProjectBadgeEnabled
+    , fmap (("Cache",) . toJSON) _codeBuildProjectCache
     , fmap (("Description",) . toJSON) _codeBuildProjectDescription
     , fmap (("EncryptionKey",) . toJSON) _codeBuildProjectEncryptionKey
     , (Just . ("Environment",) . toJSON) _codeBuildProjectEnvironment
@@ -46,12 +53,15 @@
     , (Just . ("Source",) . toJSON) _codeBuildProjectSource
     , fmap (("Tags",) . toJSON) _codeBuildProjectTags
     , fmap (("TimeoutInMinutes",) . toJSON . fmap Integer') _codeBuildProjectTimeoutInMinutes
+    , fmap (("VpcConfig",) . toJSON) _codeBuildProjectVpcConfig
     ]
 
 instance FromJSON CodeBuildProject where
   parseJSON (Object obj) =
     CodeBuildProject <$>
       (obj .: "Artifacts") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "BadgeEnabled") <*>
+      (obj .:? "Cache") <*>
       (obj .:? "Description") <*>
       (obj .:? "EncryptionKey") <*>
       (obj .: "Environment") <*>
@@ -59,7 +69,8 @@
       (obj .: "ServiceRole") <*>
       (obj .: "Source") <*>
       (obj .:? "Tags") <*>
-      fmap (fmap (fmap unInteger')) (obj .:? "TimeoutInMinutes")
+      fmap (fmap (fmap unInteger')) (obj .:? "TimeoutInMinutes") <*>
+      (obj .:? "VpcConfig")
   parseJSON _ = mempty
 
 -- | Constructor for 'CodeBuildProject' containing required fields as
@@ -73,6 +84,8 @@
 codeBuildProject artifactsarg environmentarg serviceRolearg sourcearg =
   CodeBuildProject
   { _codeBuildProjectArtifacts = artifactsarg
+  , _codeBuildProjectBadgeEnabled = Nothing
+  , _codeBuildProjectCache = Nothing
   , _codeBuildProjectDescription = Nothing
   , _codeBuildProjectEncryptionKey = Nothing
   , _codeBuildProjectEnvironment = environmentarg
@@ -81,12 +94,21 @@
   , _codeBuildProjectSource = sourcearg
   , _codeBuildProjectTags = Nothing
   , _codeBuildProjectTimeoutInMinutes = Nothing
+  , _codeBuildProjectVpcConfig = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-artifacts
 cbpArtifacts :: Lens' CodeBuildProject CodeBuildProjectArtifacts
 cbpArtifacts = lens _codeBuildProjectArtifacts (\s a -> s { _codeBuildProjectArtifacts = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-badgeenabled
+cbpBadgeEnabled :: Lens' CodeBuildProject (Maybe (Val Bool))
+cbpBadgeEnabled = lens _codeBuildProjectBadgeEnabled (\s a -> s { _codeBuildProjectBadgeEnabled = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-cache
+cbpCache :: Lens' CodeBuildProject (Maybe CodeBuildProjectProjectCache)
+cbpCache = lens _codeBuildProjectCache (\s a -> s { _codeBuildProjectCache = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-description
 cbpDescription :: Lens' CodeBuildProject (Maybe (Val Text))
 cbpDescription = lens _codeBuildProjectDescription (\s a -> s { _codeBuildProjectDescription = a })
@@ -118,3 +140,7 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-timeoutinminutes
 cbpTimeoutInMinutes :: Lens' CodeBuildProject (Maybe (Val Integer))
 cbpTimeoutInMinutes = lens _codeBuildProjectTimeoutInMinutes (\s a -> s { _codeBuildProjectTimeoutInMinutes = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-vpcconfig
+cbpVpcConfig :: Lens' CodeBuildProject (Maybe CodeBuildProjectVpcConfig)
+cbpVpcConfig = lens _codeBuildProjectVpcConfig (\s a -> s { _codeBuildProjectVpcConfig = a })
diff --git a/library-gen/Stratosphere/Resources/CodeDeployApplication.hs b/library-gen/Stratosphere/Resources/CodeDeployApplication.hs
--- a/library-gen/Stratosphere/Resources/CodeDeployApplication.hs
+++ b/library-gen/Stratosphere/Resources/CodeDeployApplication.hs
@@ -20,6 +20,7 @@
 data CodeDeployApplication =
   CodeDeployApplication
   { _codeDeployApplicationApplicationName :: Maybe (Val Text)
+  , _codeDeployApplicationComputePlatform :: Maybe (Val Text)
   } deriving (Show, Eq)
 
 instance ToJSON CodeDeployApplication where
@@ -27,12 +28,14 @@
     object $
     catMaybes
     [ fmap (("ApplicationName",) . toJSON) _codeDeployApplicationApplicationName
+    , fmap (("ComputePlatform",) . toJSON) _codeDeployApplicationComputePlatform
     ]
 
 instance FromJSON CodeDeployApplication where
   parseJSON (Object obj) =
     CodeDeployApplication <$>
-      (obj .:? "ApplicationName")
+      (obj .:? "ApplicationName") <*>
+      (obj .:? "ComputePlatform")
   parseJSON _ = mempty
 
 -- | Constructor for 'CodeDeployApplication' containing required fields as
@@ -42,8 +45,13 @@
 codeDeployApplication  =
   CodeDeployApplication
   { _codeDeployApplicationApplicationName = Nothing
+  , _codeDeployApplicationComputePlatform = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html#cfn-codedeploy-application-applicationname
 cdaApplicationName :: Lens' CodeDeployApplication (Maybe (Val Text))
 cdaApplicationName = lens _codeDeployApplicationApplicationName (\s a -> s { _codeDeployApplicationApplicationName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html#cfn-codedeploy-application-computeplatform
+cdaComputePlatform :: Lens' CodeDeployApplication (Maybe (Val Text))
+cdaComputePlatform = lens _codeDeployApplicationComputePlatform (\s a -> s { _codeDeployApplicationComputePlatform = a })
diff --git a/library-gen/Stratosphere/Resources/ECSService.hs b/library-gen/Stratosphere/Resources/ECSService.hs
--- a/library-gen/Stratosphere/Resources/ECSService.hs
+++ b/library-gen/Stratosphere/Resources/ECSService.hs
@@ -15,6 +15,7 @@
 import Stratosphere.Values
 import Stratosphere.ResourceProperties.ECSServiceDeploymentConfiguration
 import Stratosphere.ResourceProperties.ECSServiceLoadBalancer
+import Stratosphere.ResourceProperties.ECSServiceNetworkConfiguration
 import Stratosphere.ResourceProperties.ECSServicePlacementConstraint
 import Stratosphere.ResourceProperties.ECSServicePlacementStrategy
 
@@ -25,9 +26,12 @@
   { _eCSServiceCluster :: Maybe (Val Text)
   , _eCSServiceDeploymentConfiguration :: Maybe ECSServiceDeploymentConfiguration
   , _eCSServiceDesiredCount :: Maybe (Val Integer)
+  , _eCSServiceLaunchType :: Maybe (Val Text)
   , _eCSServiceLoadBalancers :: Maybe [ECSServiceLoadBalancer]
+  , _eCSServiceNetworkConfiguration :: Maybe ECSServiceNetworkConfiguration
   , _eCSServicePlacementConstraints :: Maybe [ECSServicePlacementConstraint]
   , _eCSServicePlacementStrategies :: Maybe [ECSServicePlacementStrategy]
+  , _eCSServicePlatformVersion :: Maybe (Val Text)
   , _eCSServiceRole :: Maybe (Val Text)
   , _eCSServiceServiceName :: Maybe (Val Text)
   , _eCSServiceTaskDefinition :: Val Text
@@ -40,9 +44,12 @@
     [ fmap (("Cluster",) . toJSON) _eCSServiceCluster
     , fmap (("DeploymentConfiguration",) . toJSON) _eCSServiceDeploymentConfiguration
     , fmap (("DesiredCount",) . toJSON . fmap Integer') _eCSServiceDesiredCount
+    , fmap (("LaunchType",) . toJSON) _eCSServiceLaunchType
     , fmap (("LoadBalancers",) . toJSON) _eCSServiceLoadBalancers
+    , fmap (("NetworkConfiguration",) . toJSON) _eCSServiceNetworkConfiguration
     , fmap (("PlacementConstraints",) . toJSON) _eCSServicePlacementConstraints
     , fmap (("PlacementStrategies",) . toJSON) _eCSServicePlacementStrategies
+    , fmap (("PlatformVersion",) . toJSON) _eCSServicePlatformVersion
     , fmap (("Role",) . toJSON) _eCSServiceRole
     , fmap (("ServiceName",) . toJSON) _eCSServiceServiceName
     , (Just . ("TaskDefinition",) . toJSON) _eCSServiceTaskDefinition
@@ -54,9 +61,12 @@
       (obj .:? "Cluster") <*>
       (obj .:? "DeploymentConfiguration") <*>
       fmap (fmap (fmap unInteger')) (obj .:? "DesiredCount") <*>
+      (obj .:? "LaunchType") <*>
       (obj .:? "LoadBalancers") <*>
+      (obj .:? "NetworkConfiguration") <*>
       (obj .:? "PlacementConstraints") <*>
       (obj .:? "PlacementStrategies") <*>
+      (obj .:? "PlatformVersion") <*>
       (obj .:? "Role") <*>
       (obj .:? "ServiceName") <*>
       (obj .: "TaskDefinition")
@@ -71,9 +81,12 @@
   { _eCSServiceCluster = Nothing
   , _eCSServiceDeploymentConfiguration = Nothing
   , _eCSServiceDesiredCount = Nothing
+  , _eCSServiceLaunchType = Nothing
   , _eCSServiceLoadBalancers = Nothing
+  , _eCSServiceNetworkConfiguration = Nothing
   , _eCSServicePlacementConstraints = Nothing
   , _eCSServicePlacementStrategies = Nothing
+  , _eCSServicePlatformVersion = Nothing
   , _eCSServiceRole = Nothing
   , _eCSServiceServiceName = Nothing
   , _eCSServiceTaskDefinition = taskDefinitionarg
@@ -91,10 +104,18 @@
 ecssDesiredCount :: Lens' ECSService (Maybe (Val Integer))
 ecssDesiredCount = lens _eCSServiceDesiredCount (\s a -> s { _eCSServiceDesiredCount = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-launchtype
+ecssLaunchType :: Lens' ECSService (Maybe (Val Text))
+ecssLaunchType = lens _eCSServiceLaunchType (\s a -> s { _eCSServiceLaunchType = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-loadbalancers
 ecssLoadBalancers :: Lens' ECSService (Maybe [ECSServiceLoadBalancer])
 ecssLoadBalancers = lens _eCSServiceLoadBalancers (\s a -> s { _eCSServiceLoadBalancers = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-networkconfiguration
+ecssNetworkConfiguration :: Lens' ECSService (Maybe ECSServiceNetworkConfiguration)
+ecssNetworkConfiguration = lens _eCSServiceNetworkConfiguration (\s a -> s { _eCSServiceNetworkConfiguration = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-placementconstraints
 ecssPlacementConstraints :: Lens' ECSService (Maybe [ECSServicePlacementConstraint])
 ecssPlacementConstraints = lens _eCSServicePlacementConstraints (\s a -> s { _eCSServicePlacementConstraints = a })
@@ -102,6 +123,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-placementstrategies
 ecssPlacementStrategies :: Lens' ECSService (Maybe [ECSServicePlacementStrategy])
 ecssPlacementStrategies = lens _eCSServicePlacementStrategies (\s a -> s { _eCSServicePlacementStrategies = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-platformversion
+ecssPlatformVersion :: Lens' ECSService (Maybe (Val Text))
+ecssPlatformVersion = lens _eCSServicePlatformVersion (\s a -> s { _eCSServicePlatformVersion = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-role
 ecssRole :: Lens' ECSService (Maybe (Val Text))
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
@@ -22,9 +22,13 @@
 data ECSTaskDefinition =
   ECSTaskDefinition
   { _eCSTaskDefinitionContainerDefinitions :: Maybe [ECSTaskDefinitionContainerDefinition]
+  , _eCSTaskDefinitionCpu :: Maybe (Val Text)
+  , _eCSTaskDefinitionExecutionRoleArn :: Maybe (Val Text)
   , _eCSTaskDefinitionFamily :: Maybe (Val Text)
+  , _eCSTaskDefinitionMemory :: Maybe (Val Text)
   , _eCSTaskDefinitionNetworkMode :: Maybe (Val Text)
   , _eCSTaskDefinitionPlacementConstraints :: Maybe [ECSTaskDefinitionTaskDefinitionPlacementConstraint]
+  , _eCSTaskDefinitionRequiresCompatibilities :: Maybe (ValList Text)
   , _eCSTaskDefinitionTaskRoleArn :: Maybe (Val Text)
   , _eCSTaskDefinitionVolumes :: Maybe [ECSTaskDefinitionVolume]
   } deriving (Show, Eq)
@@ -34,9 +38,13 @@
     object $
     catMaybes
     [ fmap (("ContainerDefinitions",) . toJSON) _eCSTaskDefinitionContainerDefinitions
+    , fmap (("Cpu",) . toJSON) _eCSTaskDefinitionCpu
+    , fmap (("ExecutionRoleArn",) . toJSON) _eCSTaskDefinitionExecutionRoleArn
     , fmap (("Family",) . toJSON) _eCSTaskDefinitionFamily
+    , fmap (("Memory",) . toJSON) _eCSTaskDefinitionMemory
     , fmap (("NetworkMode",) . toJSON) _eCSTaskDefinitionNetworkMode
     , fmap (("PlacementConstraints",) . toJSON) _eCSTaskDefinitionPlacementConstraints
+    , fmap (("RequiresCompatibilities",) . toJSON) _eCSTaskDefinitionRequiresCompatibilities
     , fmap (("TaskRoleArn",) . toJSON) _eCSTaskDefinitionTaskRoleArn
     , fmap (("Volumes",) . toJSON) _eCSTaskDefinitionVolumes
     ]
@@ -45,9 +53,13 @@
   parseJSON (Object obj) =
     ECSTaskDefinition <$>
       (obj .:? "ContainerDefinitions") <*>
+      (obj .:? "Cpu") <*>
+      (obj .:? "ExecutionRoleArn") <*>
       (obj .:? "Family") <*>
+      (obj .:? "Memory") <*>
       (obj .:? "NetworkMode") <*>
       (obj .:? "PlacementConstraints") <*>
+      (obj .:? "RequiresCompatibilities") <*>
       (obj .:? "TaskRoleArn") <*>
       (obj .:? "Volumes")
   parseJSON _ = mempty
@@ -59,9 +71,13 @@
 ecsTaskDefinition  =
   ECSTaskDefinition
   { _eCSTaskDefinitionContainerDefinitions = Nothing
+  , _eCSTaskDefinitionCpu = Nothing
+  , _eCSTaskDefinitionExecutionRoleArn = Nothing
   , _eCSTaskDefinitionFamily = Nothing
+  , _eCSTaskDefinitionMemory = Nothing
   , _eCSTaskDefinitionNetworkMode = Nothing
   , _eCSTaskDefinitionPlacementConstraints = Nothing
+  , _eCSTaskDefinitionRequiresCompatibilities = Nothing
   , _eCSTaskDefinitionTaskRoleArn = Nothing
   , _eCSTaskDefinitionVolumes = Nothing
   }
@@ -70,10 +86,22 @@
 ecstdContainerDefinitions :: Lens' ECSTaskDefinition (Maybe [ECSTaskDefinitionContainerDefinition])
 ecstdContainerDefinitions = lens _eCSTaskDefinitionContainerDefinitions (\s a -> s { _eCSTaskDefinitionContainerDefinitions = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-cpu
+ecstdCpu :: Lens' ECSTaskDefinition (Maybe (Val Text))
+ecstdCpu = lens _eCSTaskDefinitionCpu (\s a -> s { _eCSTaskDefinitionCpu = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-executionrolearn
+ecstdExecutionRoleArn :: Lens' ECSTaskDefinition (Maybe (Val Text))
+ecstdExecutionRoleArn = lens _eCSTaskDefinitionExecutionRoleArn (\s a -> s { _eCSTaskDefinitionExecutionRoleArn = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-family
 ecstdFamily :: Lens' ECSTaskDefinition (Maybe (Val Text))
 ecstdFamily = lens _eCSTaskDefinitionFamily (\s a -> s { _eCSTaskDefinitionFamily = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-memory
+ecstdMemory :: Lens' ECSTaskDefinition (Maybe (Val Text))
+ecstdMemory = lens _eCSTaskDefinitionMemory (\s a -> s { _eCSTaskDefinitionMemory = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-networkmode
 ecstdNetworkMode :: Lens' ECSTaskDefinition (Maybe (Val Text))
 ecstdNetworkMode = lens _eCSTaskDefinitionNetworkMode (\s a -> s { _eCSTaskDefinitionNetworkMode = a })
@@ -81,6 +109,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-requirescompatibilities
+ecstdRequiresCompatibilities :: Lens' ECSTaskDefinition (Maybe (ValList Text))
+ecstdRequiresCompatibilities = lens _eCSTaskDefinitionRequiresCompatibilities (\s a -> s { _eCSTaskDefinitionRequiresCompatibilities = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-taskrolearn
 ecstdTaskRoleArn :: Lens' ECSTaskDefinition (Maybe (Val Text))
diff --git a/library-gen/Stratosphere/Resources/GuardDutyDetector.hs b/library-gen/Stratosphere/Resources/GuardDutyDetector.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/GuardDutyDetector.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-detector.html
+
+module Stratosphere.Resources.GuardDutyDetector where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for GuardDutyDetector. See 'guardDutyDetector'
+-- for a more convenient constructor.
+data GuardDutyDetector =
+  GuardDutyDetector
+  { _guardDutyDetectorEnable :: Val Bool
+  } deriving (Show, Eq)
+
+instance ToJSON GuardDutyDetector where
+  toJSON GuardDutyDetector{..} =
+    object $
+    catMaybes
+    [ (Just . ("Enable",) . toJSON . fmap Bool') _guardDutyDetectorEnable
+    ]
+
+instance FromJSON GuardDutyDetector where
+  parseJSON (Object obj) =
+    GuardDutyDetector <$>
+      fmap (fmap unBool') (obj .: "Enable")
+  parseJSON _ = mempty
+
+-- | Constructor for 'GuardDutyDetector' containing required fields as
+-- arguments.
+guardDutyDetector
+  :: Val Bool -- ^ 'gddEnable'
+  -> GuardDutyDetector
+guardDutyDetector enablearg =
+  GuardDutyDetector
+  { _guardDutyDetectorEnable = enablearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-detector.html#cfn-guardduty-detector-enable
+gddEnable :: Lens' GuardDutyDetector (Val Bool)
+gddEnable = lens _guardDutyDetectorEnable (\s a -> s { _guardDutyDetectorEnable = a })
diff --git a/library-gen/Stratosphere/Resources/GuardDutyIPSet.hs b/library-gen/Stratosphere/Resources/GuardDutyIPSet.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/GuardDutyIPSet.hs
@@ -0,0 +1,84 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html
+
+module Stratosphere.Resources.GuardDutyIPSet where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for GuardDutyIPSet. See 'guardDutyIPSet' for a
+-- more convenient constructor.
+data GuardDutyIPSet =
+  GuardDutyIPSet
+  { _guardDutyIPSetActivate :: Val Bool
+  , _guardDutyIPSetDetectorId :: Val Text
+  , _guardDutyIPSetFormat :: Val Text
+  , _guardDutyIPSetLocation :: Val Text
+  , _guardDutyIPSetName :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON GuardDutyIPSet where
+  toJSON GuardDutyIPSet{..} =
+    object $
+    catMaybes
+    [ (Just . ("Activate",) . toJSON . fmap Bool') _guardDutyIPSetActivate
+    , (Just . ("DetectorId",) . toJSON) _guardDutyIPSetDetectorId
+    , (Just . ("Format",) . toJSON) _guardDutyIPSetFormat
+    , (Just . ("Location",) . toJSON) _guardDutyIPSetLocation
+    , fmap (("Name",) . toJSON) _guardDutyIPSetName
+    ]
+
+instance FromJSON GuardDutyIPSet where
+  parseJSON (Object obj) =
+    GuardDutyIPSet <$>
+      fmap (fmap unBool') (obj .: "Activate") <*>
+      (obj .: "DetectorId") <*>
+      (obj .: "Format") <*>
+      (obj .: "Location") <*>
+      (obj .:? "Name")
+  parseJSON _ = mempty
+
+-- | Constructor for 'GuardDutyIPSet' containing required fields as arguments.
+guardDutyIPSet
+  :: Val Bool -- ^ 'gdipsActivate'
+  -> Val Text -- ^ 'gdipsDetectorId'
+  -> Val Text -- ^ 'gdipsFormat'
+  -> Val Text -- ^ 'gdipsLocation'
+  -> GuardDutyIPSet
+guardDutyIPSet activatearg detectorIdarg formatarg locationarg =
+  GuardDutyIPSet
+  { _guardDutyIPSetActivate = activatearg
+  , _guardDutyIPSetDetectorId = detectorIdarg
+  , _guardDutyIPSetFormat = formatarg
+  , _guardDutyIPSetLocation = locationarg
+  , _guardDutyIPSetName = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html#cfn-guardduty-ipset-activate
+gdipsActivate :: Lens' GuardDutyIPSet (Val Bool)
+gdipsActivate = lens _guardDutyIPSetActivate (\s a -> s { _guardDutyIPSetActivate = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html#cfn-guardduty-ipset-detectorid
+gdipsDetectorId :: Lens' GuardDutyIPSet (Val Text)
+gdipsDetectorId = lens _guardDutyIPSetDetectorId (\s a -> s { _guardDutyIPSetDetectorId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html#cfn-guardduty-ipset-format
+gdipsFormat :: Lens' GuardDutyIPSet (Val Text)
+gdipsFormat = lens _guardDutyIPSetFormat (\s a -> s { _guardDutyIPSetFormat = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html#cfn-guardduty-ipset-location
+gdipsLocation :: Lens' GuardDutyIPSet (Val Text)
+gdipsLocation = lens _guardDutyIPSetLocation (\s a -> s { _guardDutyIPSetLocation = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html#cfn-guardduty-ipset-name
+gdipsName :: Lens' GuardDutyIPSet (Maybe (Val Text))
+gdipsName = lens _guardDutyIPSetName (\s a -> s { _guardDutyIPSetName = a })
diff --git a/library-gen/Stratosphere/Resources/GuardDutyThreatIntelSet.hs b/library-gen/Stratosphere/Resources/GuardDutyThreatIntelSet.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/GuardDutyThreatIntelSet.hs
@@ -0,0 +1,85 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html
+
+module Stratosphere.Resources.GuardDutyThreatIntelSet where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for GuardDutyThreatIntelSet. See
+-- 'guardDutyThreatIntelSet' for a more convenient constructor.
+data GuardDutyThreatIntelSet =
+  GuardDutyThreatIntelSet
+  { _guardDutyThreatIntelSetActivate :: Val Bool
+  , _guardDutyThreatIntelSetDetectorId :: Val Text
+  , _guardDutyThreatIntelSetFormat :: Val Text
+  , _guardDutyThreatIntelSetLocation :: Val Text
+  , _guardDutyThreatIntelSetName :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON GuardDutyThreatIntelSet where
+  toJSON GuardDutyThreatIntelSet{..} =
+    object $
+    catMaybes
+    [ (Just . ("Activate",) . toJSON . fmap Bool') _guardDutyThreatIntelSetActivate
+    , (Just . ("DetectorId",) . toJSON) _guardDutyThreatIntelSetDetectorId
+    , (Just . ("Format",) . toJSON) _guardDutyThreatIntelSetFormat
+    , (Just . ("Location",) . toJSON) _guardDutyThreatIntelSetLocation
+    , fmap (("Name",) . toJSON) _guardDutyThreatIntelSetName
+    ]
+
+instance FromJSON GuardDutyThreatIntelSet where
+  parseJSON (Object obj) =
+    GuardDutyThreatIntelSet <$>
+      fmap (fmap unBool') (obj .: "Activate") <*>
+      (obj .: "DetectorId") <*>
+      (obj .: "Format") <*>
+      (obj .: "Location") <*>
+      (obj .:? "Name")
+  parseJSON _ = mempty
+
+-- | Constructor for 'GuardDutyThreatIntelSet' containing required fields as
+-- arguments.
+guardDutyThreatIntelSet
+  :: Val Bool -- ^ 'gdtisActivate'
+  -> Val Text -- ^ 'gdtisDetectorId'
+  -> Val Text -- ^ 'gdtisFormat'
+  -> Val Text -- ^ 'gdtisLocation'
+  -> GuardDutyThreatIntelSet
+guardDutyThreatIntelSet activatearg detectorIdarg formatarg locationarg =
+  GuardDutyThreatIntelSet
+  { _guardDutyThreatIntelSetActivate = activatearg
+  , _guardDutyThreatIntelSetDetectorId = detectorIdarg
+  , _guardDutyThreatIntelSetFormat = formatarg
+  , _guardDutyThreatIntelSetLocation = locationarg
+  , _guardDutyThreatIntelSetName = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html#cfn-guardduty-threatintelset-activate
+gdtisActivate :: Lens' GuardDutyThreatIntelSet (Val Bool)
+gdtisActivate = lens _guardDutyThreatIntelSetActivate (\s a -> s { _guardDutyThreatIntelSetActivate = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html#cfn-guardduty-threatintelset-detectorid
+gdtisDetectorId :: Lens' GuardDutyThreatIntelSet (Val Text)
+gdtisDetectorId = lens _guardDutyThreatIntelSetDetectorId (\s a -> s { _guardDutyThreatIntelSetDetectorId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html#cfn-guardduty-threatintelset-format
+gdtisFormat :: Lens' GuardDutyThreatIntelSet (Val Text)
+gdtisFormat = lens _guardDutyThreatIntelSetFormat (\s a -> s { _guardDutyThreatIntelSetFormat = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html#cfn-guardduty-threatintelset-location
+gdtisLocation :: Lens' GuardDutyThreatIntelSet (Val Text)
+gdtisLocation = lens _guardDutyThreatIntelSetLocation (\s a -> s { _guardDutyThreatIntelSetLocation = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html#cfn-guardduty-threatintelset-name
+gdtisName :: Lens' GuardDutyThreatIntelSet (Maybe (Val Text))
+gdtisName = lens _guardDutyThreatIntelSetName (\s a -> s { _guardDutyThreatIntelSetName = a })
diff --git a/library-gen/Stratosphere/Resources/InspectorAssessmentTarget.hs b/library-gen/Stratosphere/Resources/InspectorAssessmentTarget.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/InspectorAssessmentTarget.hs
@@ -0,0 +1,58 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttarget.html
+
+module Stratosphere.Resources.InspectorAssessmentTarget where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for InspectorAssessmentTarget. See
+-- 'inspectorAssessmentTarget' for a more convenient constructor.
+data InspectorAssessmentTarget =
+  InspectorAssessmentTarget
+  { _inspectorAssessmentTargetAssessmentTargetName :: Maybe (Val Text)
+  , _inspectorAssessmentTargetResourceGroupArn :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON InspectorAssessmentTarget where
+  toJSON InspectorAssessmentTarget{..} =
+    object $
+    catMaybes
+    [ fmap (("AssessmentTargetName",) . toJSON) _inspectorAssessmentTargetAssessmentTargetName
+    , (Just . ("ResourceGroupArn",) . toJSON) _inspectorAssessmentTargetResourceGroupArn
+    ]
+
+instance FromJSON InspectorAssessmentTarget where
+  parseJSON (Object obj) =
+    InspectorAssessmentTarget <$>
+      (obj .:? "AssessmentTargetName") <*>
+      (obj .: "ResourceGroupArn")
+  parseJSON _ = mempty
+
+-- | Constructor for 'InspectorAssessmentTarget' containing required fields as
+-- arguments.
+inspectorAssessmentTarget
+  :: Val Text -- ^ 'iatResourceGroupArn'
+  -> InspectorAssessmentTarget
+inspectorAssessmentTarget resourceGroupArnarg =
+  InspectorAssessmentTarget
+  { _inspectorAssessmentTargetAssessmentTargetName = Nothing
+  , _inspectorAssessmentTargetResourceGroupArn = resourceGroupArnarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttarget.html#cfn-inspector-assessmenttarget-assessmenttargetname
+iatAssessmentTargetName :: Lens' InspectorAssessmentTarget (Maybe (Val Text))
+iatAssessmentTargetName = lens _inspectorAssessmentTargetAssessmentTargetName (\s a -> s { _inspectorAssessmentTargetAssessmentTargetName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttarget.html#cfn-inspector-assessmenttarget-resourcegrouparn
+iatResourceGroupArn :: Lens' InspectorAssessmentTarget (Val Text)
+iatResourceGroupArn = lens _inspectorAssessmentTargetResourceGroupArn (\s a -> s { _inspectorAssessmentTargetResourceGroupArn = a })
diff --git a/library-gen/Stratosphere/Resources/InspectorAssessmentTemplate.hs b/library-gen/Stratosphere/Resources/InspectorAssessmentTemplate.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/InspectorAssessmentTemplate.hs
@@ -0,0 +1,84 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html
+
+module Stratosphere.Resources.InspectorAssessmentTemplate where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+import Stratosphere.ResourceProperties.Tag
+
+-- | Full data type definition for InspectorAssessmentTemplate. See
+-- 'inspectorAssessmentTemplate' for a more convenient constructor.
+data InspectorAssessmentTemplate =
+  InspectorAssessmentTemplate
+  { _inspectorAssessmentTemplateAssessmentTargetArn :: Val Text
+  , _inspectorAssessmentTemplateAssessmentTemplateName :: Maybe (Val Text)
+  , _inspectorAssessmentTemplateDurationInSeconds :: Val Integer
+  , _inspectorAssessmentTemplateRulesPackageArns :: ValList Text
+  , _inspectorAssessmentTemplateUserAttributesForFindings :: Maybe [Tag]
+  } deriving (Show, Eq)
+
+instance ToJSON InspectorAssessmentTemplate where
+  toJSON InspectorAssessmentTemplate{..} =
+    object $
+    catMaybes
+    [ (Just . ("AssessmentTargetArn",) . toJSON) _inspectorAssessmentTemplateAssessmentTargetArn
+    , fmap (("AssessmentTemplateName",) . toJSON) _inspectorAssessmentTemplateAssessmentTemplateName
+    , (Just . ("DurationInSeconds",) . toJSON . fmap Integer') _inspectorAssessmentTemplateDurationInSeconds
+    , (Just . ("RulesPackageArns",) . toJSON) _inspectorAssessmentTemplateRulesPackageArns
+    , fmap (("UserAttributesForFindings",) . toJSON) _inspectorAssessmentTemplateUserAttributesForFindings
+    ]
+
+instance FromJSON InspectorAssessmentTemplate where
+  parseJSON (Object obj) =
+    InspectorAssessmentTemplate <$>
+      (obj .: "AssessmentTargetArn") <*>
+      (obj .:? "AssessmentTemplateName") <*>
+      fmap (fmap unInteger') (obj .: "DurationInSeconds") <*>
+      (obj .: "RulesPackageArns") <*>
+      (obj .:? "UserAttributesForFindings")
+  parseJSON _ = mempty
+
+-- | Constructor for 'InspectorAssessmentTemplate' containing required fields
+-- as arguments.
+inspectorAssessmentTemplate
+  :: Val Text -- ^ 'iatAssessmentTargetArn'
+  -> Val Integer -- ^ 'iatDurationInSeconds'
+  -> ValList Text -- ^ 'iatRulesPackageArns'
+  -> InspectorAssessmentTemplate
+inspectorAssessmentTemplate assessmentTargetArnarg durationInSecondsarg rulesPackageArnsarg =
+  InspectorAssessmentTemplate
+  { _inspectorAssessmentTemplateAssessmentTargetArn = assessmentTargetArnarg
+  , _inspectorAssessmentTemplateAssessmentTemplateName = Nothing
+  , _inspectorAssessmentTemplateDurationInSeconds = durationInSecondsarg
+  , _inspectorAssessmentTemplateRulesPackageArns = rulesPackageArnsarg
+  , _inspectorAssessmentTemplateUserAttributesForFindings = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html#cfn-inspector-assessmenttemplate-assessmenttargetarn
+iatAssessmentTargetArn :: Lens' InspectorAssessmentTemplate (Val Text)
+iatAssessmentTargetArn = lens _inspectorAssessmentTemplateAssessmentTargetArn (\s a -> s { _inspectorAssessmentTemplateAssessmentTargetArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html#cfn-inspector-assessmenttemplate-assessmenttemplatename
+iatAssessmentTemplateName :: Lens' InspectorAssessmentTemplate (Maybe (Val Text))
+iatAssessmentTemplateName = lens _inspectorAssessmentTemplateAssessmentTemplateName (\s a -> s { _inspectorAssessmentTemplateAssessmentTemplateName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html#cfn-inspector-assessmenttemplate-durationinseconds
+iatDurationInSeconds :: Lens' InspectorAssessmentTemplate (Val Integer)
+iatDurationInSeconds = lens _inspectorAssessmentTemplateDurationInSeconds (\s a -> s { _inspectorAssessmentTemplateDurationInSeconds = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html#cfn-inspector-assessmenttemplate-rulespackagearns
+iatRulesPackageArns :: Lens' InspectorAssessmentTemplate (ValList Text)
+iatRulesPackageArns = lens _inspectorAssessmentTemplateRulesPackageArns (\s a -> s { _inspectorAssessmentTemplateRulesPackageArns = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html#cfn-inspector-assessmenttemplate-userattributesforfindings
+iatUserAttributesForFindings :: Lens' InspectorAssessmentTemplate (Maybe [Tag])
+iatUserAttributesForFindings = lens _inspectorAssessmentTemplateUserAttributesForFindings (\s a -> s { _inspectorAssessmentTemplateUserAttributesForFindings = a })
diff --git a/library-gen/Stratosphere/Resources/InspectorResourceGroup.hs b/library-gen/Stratosphere/Resources/InspectorResourceGroup.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/InspectorResourceGroup.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-resourcegroup.html
+
+module Stratosphere.Resources.InspectorResourceGroup where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+import Stratosphere.ResourceProperties.Tag
+
+-- | Full data type definition for InspectorResourceGroup. See
+-- 'inspectorResourceGroup' for a more convenient constructor.
+data InspectorResourceGroup =
+  InspectorResourceGroup
+  { _inspectorResourceGroupResourceGroupTags :: [Tag]
+  } deriving (Show, Eq)
+
+instance ToJSON InspectorResourceGroup where
+  toJSON InspectorResourceGroup{..} =
+    object $
+    catMaybes
+    [ (Just . ("ResourceGroupTags",) . toJSON) _inspectorResourceGroupResourceGroupTags
+    ]
+
+instance FromJSON InspectorResourceGroup where
+  parseJSON (Object obj) =
+    InspectorResourceGroup <$>
+      (obj .: "ResourceGroupTags")
+  parseJSON _ = mempty
+
+-- | Constructor for 'InspectorResourceGroup' containing required fields as
+-- arguments.
+inspectorResourceGroup
+  :: [Tag] -- ^ 'irgResourceGroupTags'
+  -> InspectorResourceGroup
+inspectorResourceGroup resourceGroupTagsarg =
+  InspectorResourceGroup
+  { _inspectorResourceGroupResourceGroupTags = resourceGroupTagsarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-resourcegroup.html#cfn-inspector-resourcegroup-resourcegrouptags
+irgResourceGroupTags :: Lens' InspectorResourceGroup [Tag]
+irgResourceGroupTags = lens _inspectorResourceGroupResourceGroupTags (\s a -> s { _inspectorResourceGroupResourceGroupTags = a })
diff --git a/library-gen/Stratosphere/Resources/LambdaAlias.hs b/library-gen/Stratosphere/Resources/LambdaAlias.hs
--- a/library-gen/Stratosphere/Resources/LambdaAlias.hs
+++ b/library-gen/Stratosphere/Resources/LambdaAlias.hs
@@ -13,7 +13,7 @@
 import Data.Text
 
 import Stratosphere.Values
-
+import Stratosphere.ResourceProperties.LambdaAliasAliasRoutingConfiguration
 
 -- | Full data type definition for LambdaAlias. See 'lambdaAlias' for a more
 -- convenient constructor.
@@ -23,6 +23,7 @@
   , _lambdaAliasFunctionName :: Val Text
   , _lambdaAliasFunctionVersion :: Val Text
   , _lambdaAliasName :: Val Text
+  , _lambdaAliasRoutingConfig :: Maybe LambdaAliasAliasRoutingConfiguration
   } deriving (Show, Eq)
 
 instance ToJSON LambdaAlias where
@@ -33,6 +34,7 @@
     , (Just . ("FunctionName",) . toJSON) _lambdaAliasFunctionName
     , (Just . ("FunctionVersion",) . toJSON) _lambdaAliasFunctionVersion
     , (Just . ("Name",) . toJSON) _lambdaAliasName
+    , fmap (("RoutingConfig",) . toJSON) _lambdaAliasRoutingConfig
     ]
 
 instance FromJSON LambdaAlias where
@@ -41,7 +43,8 @@
       (obj .:? "Description") <*>
       (obj .: "FunctionName") <*>
       (obj .: "FunctionVersion") <*>
-      (obj .: "Name")
+      (obj .: "Name") <*>
+      (obj .:? "RoutingConfig")
   parseJSON _ = mempty
 
 -- | Constructor for 'LambdaAlias' containing required fields as arguments.
@@ -56,6 +59,7 @@
   , _lambdaAliasFunctionName = functionNamearg
   , _lambdaAliasFunctionVersion = functionVersionarg
   , _lambdaAliasName = namearg
+  , _lambdaAliasRoutingConfig = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-description
@@ -73,3 +77,7 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-name
 laName :: Lens' LambdaAlias (Val Text)
 laName = lens _lambdaAliasName (\s a -> s { _lambdaAliasName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-routingconfig
+laRoutingConfig :: Lens' LambdaAlias (Maybe LambdaAliasAliasRoutingConfiguration)
+laRoutingConfig = lens _lambdaAliasRoutingConfig (\s a -> s { _lambdaAliasRoutingConfig = a })
diff --git a/library-gen/Stratosphere/Resources/ServiceDiscoveryInstance.hs b/library-gen/Stratosphere/Resources/ServiceDiscoveryInstance.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ServiceDiscoveryInstance.hs
@@ -0,0 +1,67 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html
+
+module Stratosphere.Resources.ServiceDiscoveryInstance where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for ServiceDiscoveryInstance. See
+-- 'serviceDiscoveryInstance' for a more convenient constructor.
+data ServiceDiscoveryInstance =
+  ServiceDiscoveryInstance
+  { _serviceDiscoveryInstanceInstanceAttributes :: Object
+  , _serviceDiscoveryInstanceInstanceId :: Maybe (Val Text)
+  , _serviceDiscoveryInstanceServiceId :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON ServiceDiscoveryInstance where
+  toJSON ServiceDiscoveryInstance{..} =
+    object $
+    catMaybes
+    [ (Just . ("InstanceAttributes",) . toJSON) _serviceDiscoveryInstanceInstanceAttributes
+    , fmap (("InstanceId",) . toJSON) _serviceDiscoveryInstanceInstanceId
+    , (Just . ("ServiceId",) . toJSON) _serviceDiscoveryInstanceServiceId
+    ]
+
+instance FromJSON ServiceDiscoveryInstance where
+  parseJSON (Object obj) =
+    ServiceDiscoveryInstance <$>
+      (obj .: "InstanceAttributes") <*>
+      (obj .:? "InstanceId") <*>
+      (obj .: "ServiceId")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ServiceDiscoveryInstance' containing required fields as
+-- arguments.
+serviceDiscoveryInstance
+  :: Object -- ^ 'sdiInstanceAttributes'
+  -> Val Text -- ^ 'sdiServiceId'
+  -> ServiceDiscoveryInstance
+serviceDiscoveryInstance instanceAttributesarg serviceIdarg =
+  ServiceDiscoveryInstance
+  { _serviceDiscoveryInstanceInstanceAttributes = instanceAttributesarg
+  , _serviceDiscoveryInstanceInstanceId = Nothing
+  , _serviceDiscoveryInstanceServiceId = serviceIdarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html#cfn-servicediscovery-instance-instanceattributes
+sdiInstanceAttributes :: Lens' ServiceDiscoveryInstance Object
+sdiInstanceAttributes = lens _serviceDiscoveryInstanceInstanceAttributes (\s a -> s { _serviceDiscoveryInstanceInstanceAttributes = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html#cfn-servicediscovery-instance-instanceid
+sdiInstanceId :: Lens' ServiceDiscoveryInstance (Maybe (Val Text))
+sdiInstanceId = lens _serviceDiscoveryInstanceInstanceId (\s a -> s { _serviceDiscoveryInstanceInstanceId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html#cfn-servicediscovery-instance-serviceid
+sdiServiceId :: Lens' ServiceDiscoveryInstance (Val Text)
+sdiServiceId = lens _serviceDiscoveryInstanceServiceId (\s a -> s { _serviceDiscoveryInstanceServiceId = a })
diff --git a/library-gen/Stratosphere/Resources/ServiceDiscoveryPrivateDnsNamespace.hs b/library-gen/Stratosphere/Resources/ServiceDiscoveryPrivateDnsNamespace.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ServiceDiscoveryPrivateDnsNamespace.hs
@@ -0,0 +1,67 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-privatednsnamespace.html
+
+module Stratosphere.Resources.ServiceDiscoveryPrivateDnsNamespace where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for ServiceDiscoveryPrivateDnsNamespace. See
+-- 'serviceDiscoveryPrivateDnsNamespace' for a more convenient constructor.
+data ServiceDiscoveryPrivateDnsNamespace =
+  ServiceDiscoveryPrivateDnsNamespace
+  { _serviceDiscoveryPrivateDnsNamespaceDescription :: Maybe (Val Text)
+  , _serviceDiscoveryPrivateDnsNamespaceName :: Val Text
+  , _serviceDiscoveryPrivateDnsNamespaceVpc :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON ServiceDiscoveryPrivateDnsNamespace where
+  toJSON ServiceDiscoveryPrivateDnsNamespace{..} =
+    object $
+    catMaybes
+    [ fmap (("Description",) . toJSON) _serviceDiscoveryPrivateDnsNamespaceDescription
+    , (Just . ("Name",) . toJSON) _serviceDiscoveryPrivateDnsNamespaceName
+    , (Just . ("Vpc",) . toJSON) _serviceDiscoveryPrivateDnsNamespaceVpc
+    ]
+
+instance FromJSON ServiceDiscoveryPrivateDnsNamespace where
+  parseJSON (Object obj) =
+    ServiceDiscoveryPrivateDnsNamespace <$>
+      (obj .:? "Description") <*>
+      (obj .: "Name") <*>
+      (obj .: "Vpc")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ServiceDiscoveryPrivateDnsNamespace' containing required
+-- fields as arguments.
+serviceDiscoveryPrivateDnsNamespace
+  :: Val Text -- ^ 'sdprdnName'
+  -> Val Text -- ^ 'sdprdnVpc'
+  -> ServiceDiscoveryPrivateDnsNamespace
+serviceDiscoveryPrivateDnsNamespace namearg vpcarg =
+  ServiceDiscoveryPrivateDnsNamespace
+  { _serviceDiscoveryPrivateDnsNamespaceDescription = Nothing
+  , _serviceDiscoveryPrivateDnsNamespaceName = namearg
+  , _serviceDiscoveryPrivateDnsNamespaceVpc = vpcarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-privatednsnamespace.html#cfn-servicediscovery-privatednsnamespace-description
+sdprdnDescription :: Lens' ServiceDiscoveryPrivateDnsNamespace (Maybe (Val Text))
+sdprdnDescription = lens _serviceDiscoveryPrivateDnsNamespaceDescription (\s a -> s { _serviceDiscoveryPrivateDnsNamespaceDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-privatednsnamespace.html#cfn-servicediscovery-privatednsnamespace-name
+sdprdnName :: Lens' ServiceDiscoveryPrivateDnsNamespace (Val Text)
+sdprdnName = lens _serviceDiscoveryPrivateDnsNamespaceName (\s a -> s { _serviceDiscoveryPrivateDnsNamespaceName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-privatednsnamespace.html#cfn-servicediscovery-privatednsnamespace-vpc
+sdprdnVpc :: Lens' ServiceDiscoveryPrivateDnsNamespace (Val Text)
+sdprdnVpc = lens _serviceDiscoveryPrivateDnsNamespaceVpc (\s a -> s { _serviceDiscoveryPrivateDnsNamespaceVpc = a })
diff --git a/library-gen/Stratosphere/Resources/ServiceDiscoveryPublicDnsNamespace.hs b/library-gen/Stratosphere/Resources/ServiceDiscoveryPublicDnsNamespace.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ServiceDiscoveryPublicDnsNamespace.hs
@@ -0,0 +1,58 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-publicdnsnamespace.html
+
+module Stratosphere.Resources.ServiceDiscoveryPublicDnsNamespace where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+
+
+-- | Full data type definition for ServiceDiscoveryPublicDnsNamespace. See
+-- 'serviceDiscoveryPublicDnsNamespace' for a more convenient constructor.
+data ServiceDiscoveryPublicDnsNamespace =
+  ServiceDiscoveryPublicDnsNamespace
+  { _serviceDiscoveryPublicDnsNamespaceDescription :: Maybe (Val Text)
+  , _serviceDiscoveryPublicDnsNamespaceName :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON ServiceDiscoveryPublicDnsNamespace where
+  toJSON ServiceDiscoveryPublicDnsNamespace{..} =
+    object $
+    catMaybes
+    [ fmap (("Description",) . toJSON) _serviceDiscoveryPublicDnsNamespaceDescription
+    , (Just . ("Name",) . toJSON) _serviceDiscoveryPublicDnsNamespaceName
+    ]
+
+instance FromJSON ServiceDiscoveryPublicDnsNamespace where
+  parseJSON (Object obj) =
+    ServiceDiscoveryPublicDnsNamespace <$>
+      (obj .:? "Description") <*>
+      (obj .: "Name")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ServiceDiscoveryPublicDnsNamespace' containing required
+-- fields as arguments.
+serviceDiscoveryPublicDnsNamespace
+  :: Val Text -- ^ 'sdpudnName'
+  -> ServiceDiscoveryPublicDnsNamespace
+serviceDiscoveryPublicDnsNamespace namearg =
+  ServiceDiscoveryPublicDnsNamespace
+  { _serviceDiscoveryPublicDnsNamespaceDescription = Nothing
+  , _serviceDiscoveryPublicDnsNamespaceName = namearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-publicdnsnamespace.html#cfn-servicediscovery-publicdnsnamespace-description
+sdpudnDescription :: Lens' ServiceDiscoveryPublicDnsNamespace (Maybe (Val Text))
+sdpudnDescription = lens _serviceDiscoveryPublicDnsNamespaceDescription (\s a -> s { _serviceDiscoveryPublicDnsNamespaceDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-publicdnsnamespace.html#cfn-servicediscovery-publicdnsnamespace-name
+sdpudnName :: Lens' ServiceDiscoveryPublicDnsNamespace (Val Text)
+sdpudnName = lens _serviceDiscoveryPublicDnsNamespaceName (\s a -> s { _serviceDiscoveryPublicDnsNamespaceName = a })
diff --git a/library-gen/Stratosphere/Resources/ServiceDiscoveryService.hs b/library-gen/Stratosphere/Resources/ServiceDiscoveryService.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ServiceDiscoveryService.hs
@@ -0,0 +1,75 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-service.html
+
+module Stratosphere.Resources.ServiceDiscoveryService where
+
+import Control.Lens hiding ((.=))
+import Data.Aeson
+import Data.Maybe (catMaybes)
+import Data.Monoid (mempty)
+import Data.Text
+
+import Stratosphere.Values
+import Stratosphere.ResourceProperties.ServiceDiscoveryServiceDnsConfig
+import Stratosphere.ResourceProperties.ServiceDiscoveryServiceHealthCheckConfig
+
+-- | Full data type definition for ServiceDiscoveryService. See
+-- 'serviceDiscoveryService' for a more convenient constructor.
+data ServiceDiscoveryService =
+  ServiceDiscoveryService
+  { _serviceDiscoveryServiceDescription :: Maybe (Val Text)
+  , _serviceDiscoveryServiceDnsConfig :: ServiceDiscoveryServiceDnsConfig
+  , _serviceDiscoveryServiceHealthCheckConfig :: Maybe ServiceDiscoveryServiceHealthCheckConfig
+  , _serviceDiscoveryServiceName :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON ServiceDiscoveryService where
+  toJSON ServiceDiscoveryService{..} =
+    object $
+    catMaybes
+    [ fmap (("Description",) . toJSON) _serviceDiscoveryServiceDescription
+    , (Just . ("DnsConfig",) . toJSON) _serviceDiscoveryServiceDnsConfig
+    , fmap (("HealthCheckConfig",) . toJSON) _serviceDiscoveryServiceHealthCheckConfig
+    , fmap (("Name",) . toJSON) _serviceDiscoveryServiceName
+    ]
+
+instance FromJSON ServiceDiscoveryService where
+  parseJSON (Object obj) =
+    ServiceDiscoveryService <$>
+      (obj .:? "Description") <*>
+      (obj .: "DnsConfig") <*>
+      (obj .:? "HealthCheckConfig") <*>
+      (obj .:? "Name")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ServiceDiscoveryService' containing required fields as
+-- arguments.
+serviceDiscoveryService
+  :: ServiceDiscoveryServiceDnsConfig -- ^ 'sdsDnsConfig'
+  -> ServiceDiscoveryService
+serviceDiscoveryService dnsConfigarg =
+  ServiceDiscoveryService
+  { _serviceDiscoveryServiceDescription = Nothing
+  , _serviceDiscoveryServiceDnsConfig = dnsConfigarg
+  , _serviceDiscoveryServiceHealthCheckConfig = Nothing
+  , _serviceDiscoveryServiceName = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-service.html#cfn-servicediscovery-service-description
+sdsDescription :: Lens' ServiceDiscoveryService (Maybe (Val Text))
+sdsDescription = lens _serviceDiscoveryServiceDescription (\s a -> s { _serviceDiscoveryServiceDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-service.html#cfn-servicediscovery-service-dnsconfig
+sdsDnsConfig :: Lens' ServiceDiscoveryService ServiceDiscoveryServiceDnsConfig
+sdsDnsConfig = lens _serviceDiscoveryServiceDnsConfig (\s a -> s { _serviceDiscoveryServiceDnsConfig = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-service.html#cfn-servicediscovery-service-healthcheckconfig
+sdsHealthCheckConfig :: Lens' ServiceDiscoveryService (Maybe ServiceDiscoveryServiceHealthCheckConfig)
+sdsHealthCheckConfig = lens _serviceDiscoveryServiceHealthCheckConfig (\s a -> s { _serviceDiscoveryServiceHealthCheckConfig = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-service.html#cfn-servicediscovery-service-name
+sdsName :: Lens' ServiceDiscoveryService (Maybe (Val Text))
+sdsName = lens _serviceDiscoveryServiceName (\s a -> s { _serviceDiscoveryServiceName = a })
diff --git a/stratosphere.cabal b/stratosphere.cabal
--- a/stratosphere.cabal
+++ b/stratosphere.cabal
@@ -3,7 +3,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           stratosphere
-version:        0.13.0
+version:        0.14.0
 synopsis:       EDSL for AWS CloudFormation
 description:    EDSL for AWS CloudFormation
 category:       AWS, Cloud
@@ -103,6 +103,7 @@
       Stratosphere.ResourceProperties.BatchJobDefinitionVolumesHost
       Stratosphere.ResourceProperties.BatchJobQueueComputeEnvironmentOrder
       Stratosphere.ResourceProperties.CertificateManagerCertificateDomainValidationOption
+      Stratosphere.ResourceProperties.Cloud9EnvironmentEC2Repository
       Stratosphere.ResourceProperties.CloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfig
       Stratosphere.ResourceProperties.CloudFrontDistributionCacheBehavior
       Stratosphere.ResourceProperties.CloudFrontDistributionCookies
@@ -113,8 +114,6 @@
       Stratosphere.ResourceProperties.CloudFrontDistributionForwardedValues
       Stratosphere.ResourceProperties.CloudFrontDistributionGeoRestriction
       Stratosphere.ResourceProperties.CloudFrontDistributionLambdaFunctionAssociation
-      Stratosphere.ResourceProperties.CloudFrontDistributionLegacyCustomOrigin
-      Stratosphere.ResourceProperties.CloudFrontDistributionLegacyS3Origin
       Stratosphere.ResourceProperties.CloudFrontDistributionLogging
       Stratosphere.ResourceProperties.CloudFrontDistributionOrigin
       Stratosphere.ResourceProperties.CloudFrontDistributionOriginCustomHeader
@@ -131,8 +130,10 @@
       Stratosphere.ResourceProperties.CodeBuildProjectArtifacts
       Stratosphere.ResourceProperties.CodeBuildProjectEnvironment
       Stratosphere.ResourceProperties.CodeBuildProjectEnvironmentVariable
+      Stratosphere.ResourceProperties.CodeBuildProjectProjectCache
       Stratosphere.ResourceProperties.CodeBuildProjectSource
       Stratosphere.ResourceProperties.CodeBuildProjectSourceAuth
+      Stratosphere.ResourceProperties.CodeBuildProjectVpcConfig
       Stratosphere.ResourceProperties.CodeCommitRepositoryRepositoryTrigger
       Stratosphere.ResourceProperties.CodeDeployDeploymentConfigMinimumHealthyHosts
       Stratosphere.ResourceProperties.CodeDeployDeploymentGroupAlarm
@@ -232,8 +233,10 @@
       Stratosphere.ResourceProperties.EC2SpotFleetSpotPlacement
       Stratosphere.ResourceProperties.EC2VPNConnectionVpnTunnelOptionsSpecification
       Stratosphere.ResourceProperties.ECRRepositoryLifecyclePolicy
+      Stratosphere.ResourceProperties.ECSServiceAwsVpcConfiguration
       Stratosphere.ResourceProperties.ECSServiceDeploymentConfiguration
       Stratosphere.ResourceProperties.ECSServiceLoadBalancer
+      Stratosphere.ResourceProperties.ECSServiceNetworkConfiguration
       Stratosphere.ResourceProperties.ECSServicePlacementConstraint
       Stratosphere.ResourceProperties.ECSServicePlacementStrategy
       Stratosphere.ResourceProperties.ECSTaskDefinitionContainerDefinition
@@ -421,6 +424,8 @@
       Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamProcessorParameter
       Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration
       Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamS3DestinationConfiguration
+      Stratosphere.ResourceProperties.LambdaAliasAliasRoutingConfiguration
+      Stratosphere.ResourceProperties.LambdaAliasVersionWeight
       Stratosphere.ResourceProperties.LambdaFunctionCode
       Stratosphere.ResourceProperties.LambdaFunctionDeadLetterConfig
       Stratosphere.ResourceProperties.LambdaFunctionEnvironment
@@ -494,6 +499,9 @@
       Stratosphere.ResourceProperties.S3BucketTransition
       Stratosphere.ResourceProperties.S3BucketVersioningConfiguration
       Stratosphere.ResourceProperties.S3BucketWebsiteConfiguration
+      Stratosphere.ResourceProperties.ServiceDiscoveryServiceDnsConfig
+      Stratosphere.ResourceProperties.ServiceDiscoveryServiceDnsRecord
+      Stratosphere.ResourceProperties.ServiceDiscoveryServiceHealthCheckConfig
       Stratosphere.ResourceProperties.SNSTopicSubscription
       Stratosphere.ResourceProperties.SSMAssociationParameterValues
       Stratosphere.ResourceProperties.SSMAssociationTarget
@@ -565,6 +573,7 @@
       Stratosphere.Resources.BatchJobDefinition
       Stratosphere.Resources.BatchJobQueue
       Stratosphere.Resources.CertificateManagerCertificate
+      Stratosphere.Resources.Cloud9EnvironmentEC2
       Stratosphere.Resources.CloudFormationCustomResource
       Stratosphere.Resources.CloudFormationStack
       Stratosphere.Resources.CloudFormationWaitCondition
@@ -684,6 +693,9 @@
       Stratosphere.Resources.GluePartition
       Stratosphere.Resources.GlueTable
       Stratosphere.Resources.GlueTrigger
+      Stratosphere.Resources.GuardDutyDetector
+      Stratosphere.Resources.GuardDutyIPSet
+      Stratosphere.Resources.GuardDutyThreatIntelSet
       Stratosphere.Resources.IAMAccessKey
       Stratosphere.Resources.IAMGroup
       Stratosphere.Resources.IAMInstanceProfile
@@ -692,6 +704,9 @@
       Stratosphere.Resources.IAMRole
       Stratosphere.Resources.IAMUser
       Stratosphere.Resources.IAMUserToGroupAddition
+      Stratosphere.Resources.InspectorAssessmentTarget
+      Stratosphere.Resources.InspectorAssessmentTemplate
+      Stratosphere.Resources.InspectorResourceGroup
       Stratosphere.Resources.IoTCertificate
       Stratosphere.Resources.IoTPolicy
       Stratosphere.Resources.IoTPolicyPrincipalAttachment
@@ -743,6 +758,10 @@
       Stratosphere.Resources.S3Bucket
       Stratosphere.Resources.S3BucketPolicy
       Stratosphere.Resources.SDBDomain
+      Stratosphere.Resources.ServiceDiscoveryInstance
+      Stratosphere.Resources.ServiceDiscoveryPrivateDnsNamespace
+      Stratosphere.Resources.ServiceDiscoveryPublicDnsNamespace
+      Stratosphere.Resources.ServiceDiscoveryService
       Stratosphere.Resources.SNSSubscription
       Stratosphere.Resources.SNSTopic
       Stratosphere.Resources.SNSTopicPolicy
