diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Change Log
 
+## 0.40.0
+
+* Update resource specification document to version 4.1.0
+
 ## 0.39.0
 
 * Update resource specification document to version 3.4.0
diff --git a/library-gen/Stratosphere/ResourceProperties/AmplifyAppToken.hs b/library-gen/Stratosphere/ResourceProperties/AmplifyAppToken.hs
deleted file mode 100644
--- a/library-gen/Stratosphere/ResourceProperties/AmplifyAppToken.hs
+++ /dev/null
@@ -1,47 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE RecordWildCards #-}
-{-# LANGUAGE StrictData #-}
-{-# LANGUAGE TupleSections #-}
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-token.html
-
-module Stratosphere.ResourceProperties.AmplifyAppToken where
-
-import Stratosphere.ResourceImports
-
-
--- | Full data type definition for AmplifyAppToken. See 'amplifyAppToken' for
--- a more convenient constructor.
-data AmplifyAppToken =
-  AmplifyAppToken
-  { _amplifyAppTokenKey :: Val Text
-  , _amplifyAppTokenValue :: Val Text
-  } deriving (Show, Eq)
-
-instance ToJSON AmplifyAppToken where
-  toJSON AmplifyAppToken{..} =
-    object $
-    catMaybes
-    [ (Just . ("Key",) . toJSON) _amplifyAppTokenKey
-    , (Just . ("Value",) . toJSON) _amplifyAppTokenValue
-    ]
-
--- | Constructor for 'AmplifyAppToken' containing required fields as
--- arguments.
-amplifyAppToken
-  :: Val Text -- ^ 'aatKey'
-  -> Val Text -- ^ 'aatValue'
-  -> AmplifyAppToken
-amplifyAppToken keyarg valuearg =
-  AmplifyAppToken
-  { _amplifyAppTokenKey = keyarg
-  , _amplifyAppTokenValue = valuearg
-  }
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-token.html#cfn-amplify-app-token-key
-aatKey :: Lens' AmplifyAppToken (Val Text)
-aatKey = lens _amplifyAppTokenKey (\s a -> s { _amplifyAppTokenKey = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-token.html#cfn-amplify-app-token-value
-aatValue :: Lens' AmplifyAppToken (Val Text)
-aatValue = lens _amplifyAppTokenValue (\s a -> s { _amplifyAppTokenValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/AppMeshMeshTagRef.hs b/library-gen/Stratosphere/ResourceProperties/AppMeshMeshTagRef.hs
deleted file mode 100644
--- a/library-gen/Stratosphere/ResourceProperties/AppMeshMeshTagRef.hs
+++ /dev/null
@@ -1,46 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE RecordWildCards #-}
-{-# LANGUAGE StrictData #-}
-{-# LANGUAGE TupleSections #-}
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-mesh-tagref.html
-
-module Stratosphere.ResourceProperties.AppMeshMeshTagRef where
-
-import Stratosphere.ResourceImports
-
-
--- | Full data type definition for AppMeshMeshTagRef. See 'appMeshMeshTagRef'
--- for a more convenient constructor.
-data AppMeshMeshTagRef =
-  AppMeshMeshTagRef
-  { _appMeshMeshTagRefKey :: Val Text
-  , _appMeshMeshTagRefValue :: Maybe (Val Text)
-  } deriving (Show, Eq)
-
-instance ToJSON AppMeshMeshTagRef where
-  toJSON AppMeshMeshTagRef{..} =
-    object $
-    catMaybes
-    [ (Just . ("Key",) . toJSON) _appMeshMeshTagRefKey
-    , fmap (("Value",) . toJSON) _appMeshMeshTagRefValue
-    ]
-
--- | Constructor for 'AppMeshMeshTagRef' containing required fields as
--- arguments.
-appMeshMeshTagRef
-  :: Val Text -- ^ 'ammtrKey'
-  -> AppMeshMeshTagRef
-appMeshMeshTagRef keyarg =
-  AppMeshMeshTagRef
-  { _appMeshMeshTagRefKey = keyarg
-  , _appMeshMeshTagRefValue = Nothing
-  }
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-mesh-tagref.html#cfn-appmesh-mesh-tagref-key
-ammtrKey :: Lens' AppMeshMeshTagRef (Val Text)
-ammtrKey = lens _appMeshMeshTagRefKey (\s a -> s { _appMeshMeshTagRefKey = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-mesh-tagref.html#cfn-appmesh-mesh-tagref-value
-ammtrValue :: Lens' AppMeshMeshTagRef (Maybe (Val Text))
-ammtrValue = lens _appMeshMeshTagRefValue (\s a -> s { _appMeshMeshTagRefValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/AppMeshRouteTagRef.hs b/library-gen/Stratosphere/ResourceProperties/AppMeshRouteTagRef.hs
deleted file mode 100644
--- a/library-gen/Stratosphere/ResourceProperties/AppMeshRouteTagRef.hs
+++ /dev/null
@@ -1,46 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE RecordWildCards #-}
-{-# LANGUAGE StrictData #-}
-{-# LANGUAGE TupleSections #-}
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tagref.html
-
-module Stratosphere.ResourceProperties.AppMeshRouteTagRef where
-
-import Stratosphere.ResourceImports
-
-
--- | Full data type definition for AppMeshRouteTagRef. See
--- 'appMeshRouteTagRef' for a more convenient constructor.
-data AppMeshRouteTagRef =
-  AppMeshRouteTagRef
-  { _appMeshRouteTagRefKey :: Val Text
-  , _appMeshRouteTagRefValue :: Maybe (Val Text)
-  } deriving (Show, Eq)
-
-instance ToJSON AppMeshRouteTagRef where
-  toJSON AppMeshRouteTagRef{..} =
-    object $
-    catMaybes
-    [ (Just . ("Key",) . toJSON) _appMeshRouteTagRefKey
-    , fmap (("Value",) . toJSON) _appMeshRouteTagRefValue
-    ]
-
--- | Constructor for 'AppMeshRouteTagRef' containing required fields as
--- arguments.
-appMeshRouteTagRef
-  :: Val Text -- ^ 'amrtrKey'
-  -> AppMeshRouteTagRef
-appMeshRouteTagRef keyarg =
-  AppMeshRouteTagRef
-  { _appMeshRouteTagRefKey = keyarg
-  , _appMeshRouteTagRefValue = Nothing
-  }
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tagref.html#cfn-appmesh-route-tagref-key
-amrtrKey :: Lens' AppMeshRouteTagRef (Val Text)
-amrtrKey = lens _appMeshRouteTagRefKey (\s a -> s { _appMeshRouteTagRefKey = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tagref.html#cfn-appmesh-route-tagref-value
-amrtrValue :: Lens' AppMeshRouteTagRef (Maybe (Val Text))
-amrtrValue = lens _appMeshRouteTagRefValue (\s a -> s { _appMeshRouteTagRefValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/AppMeshVirtualNodeAwsCloudMapInstanceAttribute.hs b/library-gen/Stratosphere/ResourceProperties/AppMeshVirtualNodeAwsCloudMapInstanceAttribute.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/AppMeshVirtualNodeAwsCloudMapInstanceAttribute.hs
@@ -0,0 +1,49 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-awscloudmapinstanceattribute.html
+
+module Stratosphere.ResourceProperties.AppMeshVirtualNodeAwsCloudMapInstanceAttribute where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- AppMeshVirtualNodeAwsCloudMapInstanceAttribute. See
+-- 'appMeshVirtualNodeAwsCloudMapInstanceAttribute' for a more convenient
+-- constructor.
+data AppMeshVirtualNodeAwsCloudMapInstanceAttribute =
+  AppMeshVirtualNodeAwsCloudMapInstanceAttribute
+  { _appMeshVirtualNodeAwsCloudMapInstanceAttributeKey :: Val Text
+  , _appMeshVirtualNodeAwsCloudMapInstanceAttributeValue :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON AppMeshVirtualNodeAwsCloudMapInstanceAttribute where
+  toJSON AppMeshVirtualNodeAwsCloudMapInstanceAttribute{..} =
+    object $
+    catMaybes
+    [ (Just . ("Key",) . toJSON) _appMeshVirtualNodeAwsCloudMapInstanceAttributeKey
+    , (Just . ("Value",) . toJSON) _appMeshVirtualNodeAwsCloudMapInstanceAttributeValue
+    ]
+
+-- | Constructor for 'AppMeshVirtualNodeAwsCloudMapInstanceAttribute'
+-- containing required fields as arguments.
+appMeshVirtualNodeAwsCloudMapInstanceAttribute
+  :: Val Text -- ^ 'amvnacmiaKey'
+  -> Val Text -- ^ 'amvnacmiaValue'
+  -> AppMeshVirtualNodeAwsCloudMapInstanceAttribute
+appMeshVirtualNodeAwsCloudMapInstanceAttribute keyarg valuearg =
+  AppMeshVirtualNodeAwsCloudMapInstanceAttribute
+  { _appMeshVirtualNodeAwsCloudMapInstanceAttributeKey = keyarg
+  , _appMeshVirtualNodeAwsCloudMapInstanceAttributeValue = valuearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-awscloudmapinstanceattribute.html#cfn-appmesh-virtualnode-awscloudmapinstanceattribute-key
+amvnacmiaKey :: Lens' AppMeshVirtualNodeAwsCloudMapInstanceAttribute (Val Text)
+amvnacmiaKey = lens _appMeshVirtualNodeAwsCloudMapInstanceAttributeKey (\s a -> s { _appMeshVirtualNodeAwsCloudMapInstanceAttributeKey = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-awscloudmapinstanceattribute.html#cfn-appmesh-virtualnode-awscloudmapinstanceattribute-value
+amvnacmiaValue :: Lens' AppMeshVirtualNodeAwsCloudMapInstanceAttribute (Val Text)
+amvnacmiaValue = lens _appMeshVirtualNodeAwsCloudMapInstanceAttributeValue (\s a -> s { _appMeshVirtualNodeAwsCloudMapInstanceAttributeValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/AppMeshVirtualNodeAwsCloudMapServiceDiscovery.hs b/library-gen/Stratosphere/ResourceProperties/AppMeshVirtualNodeAwsCloudMapServiceDiscovery.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/AppMeshVirtualNodeAwsCloudMapServiceDiscovery.hs
@@ -0,0 +1,56 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-awscloudmapservicediscovery.html
+
+module Stratosphere.ResourceProperties.AppMeshVirtualNodeAwsCloudMapServiceDiscovery where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.AppMeshVirtualNodeAwsCloudMapInstanceAttribute
+
+-- | Full data type definition for
+-- AppMeshVirtualNodeAwsCloudMapServiceDiscovery. See
+-- 'appMeshVirtualNodeAwsCloudMapServiceDiscovery' for a more convenient
+-- constructor.
+data AppMeshVirtualNodeAwsCloudMapServiceDiscovery =
+  AppMeshVirtualNodeAwsCloudMapServiceDiscovery
+  { _appMeshVirtualNodeAwsCloudMapServiceDiscoveryAttributes :: Maybe [AppMeshVirtualNodeAwsCloudMapInstanceAttribute]
+  , _appMeshVirtualNodeAwsCloudMapServiceDiscoveryNamespaceName :: Val Text
+  , _appMeshVirtualNodeAwsCloudMapServiceDiscoveryServiceName :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON AppMeshVirtualNodeAwsCloudMapServiceDiscovery where
+  toJSON AppMeshVirtualNodeAwsCloudMapServiceDiscovery{..} =
+    object $
+    catMaybes
+    [ fmap (("Attributes",) . toJSON) _appMeshVirtualNodeAwsCloudMapServiceDiscoveryAttributes
+    , (Just . ("NamespaceName",) . toJSON) _appMeshVirtualNodeAwsCloudMapServiceDiscoveryNamespaceName
+    , (Just . ("ServiceName",) . toJSON) _appMeshVirtualNodeAwsCloudMapServiceDiscoveryServiceName
+    ]
+
+-- | Constructor for 'AppMeshVirtualNodeAwsCloudMapServiceDiscovery'
+-- containing required fields as arguments.
+appMeshVirtualNodeAwsCloudMapServiceDiscovery
+  :: Val Text -- ^ 'amvnacmsdNamespaceName'
+  -> Val Text -- ^ 'amvnacmsdServiceName'
+  -> AppMeshVirtualNodeAwsCloudMapServiceDiscovery
+appMeshVirtualNodeAwsCloudMapServiceDiscovery namespaceNamearg serviceNamearg =
+  AppMeshVirtualNodeAwsCloudMapServiceDiscovery
+  { _appMeshVirtualNodeAwsCloudMapServiceDiscoveryAttributes = Nothing
+  , _appMeshVirtualNodeAwsCloudMapServiceDiscoveryNamespaceName = namespaceNamearg
+  , _appMeshVirtualNodeAwsCloudMapServiceDiscoveryServiceName = serviceNamearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-awscloudmapservicediscovery.html#cfn-appmesh-virtualnode-awscloudmapservicediscovery-attributes
+amvnacmsdAttributes :: Lens' AppMeshVirtualNodeAwsCloudMapServiceDiscovery (Maybe [AppMeshVirtualNodeAwsCloudMapInstanceAttribute])
+amvnacmsdAttributes = lens _appMeshVirtualNodeAwsCloudMapServiceDiscoveryAttributes (\s a -> s { _appMeshVirtualNodeAwsCloudMapServiceDiscoveryAttributes = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-awscloudmapservicediscovery.html#cfn-appmesh-virtualnode-awscloudmapservicediscovery-namespacename
+amvnacmsdNamespaceName :: Lens' AppMeshVirtualNodeAwsCloudMapServiceDiscovery (Val Text)
+amvnacmsdNamespaceName = lens _appMeshVirtualNodeAwsCloudMapServiceDiscoveryNamespaceName (\s a -> s { _appMeshVirtualNodeAwsCloudMapServiceDiscoveryNamespaceName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-awscloudmapservicediscovery.html#cfn-appmesh-virtualnode-awscloudmapservicediscovery-servicename
+amvnacmsdServiceName :: Lens' AppMeshVirtualNodeAwsCloudMapServiceDiscovery (Val Text)
+amvnacmsdServiceName = lens _appMeshVirtualNodeAwsCloudMapServiceDiscoveryServiceName (\s a -> s { _appMeshVirtualNodeAwsCloudMapServiceDiscoveryServiceName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/AppMeshVirtualNodeServiceDiscovery.hs b/library-gen/Stratosphere/ResourceProperties/AppMeshVirtualNodeServiceDiscovery.hs
--- a/library-gen/Stratosphere/ResourceProperties/AppMeshVirtualNodeServiceDiscovery.hs
+++ b/library-gen/Stratosphere/ResourceProperties/AppMeshVirtualNodeServiceDiscovery.hs
@@ -8,20 +8,23 @@
 module Stratosphere.ResourceProperties.AppMeshVirtualNodeServiceDiscovery where
 
 import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.AppMeshVirtualNodeAwsCloudMapServiceDiscovery
 import Stratosphere.ResourceProperties.AppMeshVirtualNodeDnsServiceDiscovery
 
 -- | Full data type definition for AppMeshVirtualNodeServiceDiscovery. See
 -- 'appMeshVirtualNodeServiceDiscovery' for a more convenient constructor.
 data AppMeshVirtualNodeServiceDiscovery =
   AppMeshVirtualNodeServiceDiscovery
-  { _appMeshVirtualNodeServiceDiscoveryDNS :: Maybe AppMeshVirtualNodeDnsServiceDiscovery
+  { _appMeshVirtualNodeServiceDiscoveryAWSCloudMap :: Maybe AppMeshVirtualNodeAwsCloudMapServiceDiscovery
+  , _appMeshVirtualNodeServiceDiscoveryDNS :: Maybe AppMeshVirtualNodeDnsServiceDiscovery
   } deriving (Show, Eq)
 
 instance ToJSON AppMeshVirtualNodeServiceDiscovery where
   toJSON AppMeshVirtualNodeServiceDiscovery{..} =
     object $
     catMaybes
-    [ fmap (("DNS",) . toJSON) _appMeshVirtualNodeServiceDiscoveryDNS
+    [ fmap (("AWSCloudMap",) . toJSON) _appMeshVirtualNodeServiceDiscoveryAWSCloudMap
+    , fmap (("DNS",) . toJSON) _appMeshVirtualNodeServiceDiscoveryDNS
     ]
 
 -- | Constructor for 'AppMeshVirtualNodeServiceDiscovery' containing required
@@ -30,8 +33,13 @@
   :: AppMeshVirtualNodeServiceDiscovery
 appMeshVirtualNodeServiceDiscovery  =
   AppMeshVirtualNodeServiceDiscovery
-  { _appMeshVirtualNodeServiceDiscoveryDNS = Nothing
+  { _appMeshVirtualNodeServiceDiscoveryAWSCloudMap = Nothing
+  , _appMeshVirtualNodeServiceDiscoveryDNS = Nothing
   }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-servicediscovery.html#cfn-appmesh-virtualnode-servicediscovery-awscloudmap
+amvnsdAWSCloudMap :: Lens' AppMeshVirtualNodeServiceDiscovery (Maybe AppMeshVirtualNodeAwsCloudMapServiceDiscovery)
+amvnsdAWSCloudMap = lens _appMeshVirtualNodeServiceDiscoveryAWSCloudMap (\s a -> s { _appMeshVirtualNodeServiceDiscoveryAWSCloudMap = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-servicediscovery.html#cfn-appmesh-virtualnode-servicediscovery-dns
 amvnsdDNS :: Lens' AppMeshVirtualNodeServiceDiscovery (Maybe AppMeshVirtualNodeDnsServiceDiscovery)
diff --git a/library-gen/Stratosphere/ResourceProperties/AppMeshVirtualNodeTagRef.hs b/library-gen/Stratosphere/ResourceProperties/AppMeshVirtualNodeTagRef.hs
deleted file mode 100644
--- a/library-gen/Stratosphere/ResourceProperties/AppMeshVirtualNodeTagRef.hs
+++ /dev/null
@@ -1,46 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE RecordWildCards #-}
-{-# LANGUAGE StrictData #-}
-{-# LANGUAGE TupleSections #-}
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tagref.html
-
-module Stratosphere.ResourceProperties.AppMeshVirtualNodeTagRef where
-
-import Stratosphere.ResourceImports
-
-
--- | Full data type definition for AppMeshVirtualNodeTagRef. See
--- 'appMeshVirtualNodeTagRef' for a more convenient constructor.
-data AppMeshVirtualNodeTagRef =
-  AppMeshVirtualNodeTagRef
-  { _appMeshVirtualNodeTagRefKey :: Val Text
-  , _appMeshVirtualNodeTagRefValue :: Maybe (Val Text)
-  } deriving (Show, Eq)
-
-instance ToJSON AppMeshVirtualNodeTagRef where
-  toJSON AppMeshVirtualNodeTagRef{..} =
-    object $
-    catMaybes
-    [ (Just . ("Key",) . toJSON) _appMeshVirtualNodeTagRefKey
-    , fmap (("Value",) . toJSON) _appMeshVirtualNodeTagRefValue
-    ]
-
--- | Constructor for 'AppMeshVirtualNodeTagRef' containing required fields as
--- arguments.
-appMeshVirtualNodeTagRef
-  :: Val Text -- ^ 'amvntrKey'
-  -> AppMeshVirtualNodeTagRef
-appMeshVirtualNodeTagRef keyarg =
-  AppMeshVirtualNodeTagRef
-  { _appMeshVirtualNodeTagRefKey = keyarg
-  , _appMeshVirtualNodeTagRefValue = Nothing
-  }
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tagref.html#cfn-appmesh-virtualnode-tagref-key
-amvntrKey :: Lens' AppMeshVirtualNodeTagRef (Val Text)
-amvntrKey = lens _appMeshVirtualNodeTagRefKey (\s a -> s { _appMeshVirtualNodeTagRefKey = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tagref.html#cfn-appmesh-virtualnode-tagref-value
-amvntrValue :: Lens' AppMeshVirtualNodeTagRef (Maybe (Val Text))
-amvntrValue = lens _appMeshVirtualNodeTagRefValue (\s a -> s { _appMeshVirtualNodeTagRefValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/AppMeshVirtualRouterTagRef.hs b/library-gen/Stratosphere/ResourceProperties/AppMeshVirtualRouterTagRef.hs
deleted file mode 100644
--- a/library-gen/Stratosphere/ResourceProperties/AppMeshVirtualRouterTagRef.hs
+++ /dev/null
@@ -1,46 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE RecordWildCards #-}
-{-# LANGUAGE StrictData #-}
-{-# LANGUAGE TupleSections #-}
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-tagref.html
-
-module Stratosphere.ResourceProperties.AppMeshVirtualRouterTagRef where
-
-import Stratosphere.ResourceImports
-
-
--- | Full data type definition for AppMeshVirtualRouterTagRef. See
--- 'appMeshVirtualRouterTagRef' for a more convenient constructor.
-data AppMeshVirtualRouterTagRef =
-  AppMeshVirtualRouterTagRef
-  { _appMeshVirtualRouterTagRefKey :: Val Text
-  , _appMeshVirtualRouterTagRefValue :: Maybe (Val Text)
-  } deriving (Show, Eq)
-
-instance ToJSON AppMeshVirtualRouterTagRef where
-  toJSON AppMeshVirtualRouterTagRef{..} =
-    object $
-    catMaybes
-    [ (Just . ("Key",) . toJSON) _appMeshVirtualRouterTagRefKey
-    , fmap (("Value",) . toJSON) _appMeshVirtualRouterTagRefValue
-    ]
-
--- | Constructor for 'AppMeshVirtualRouterTagRef' containing required fields
--- as arguments.
-appMeshVirtualRouterTagRef
-  :: Val Text -- ^ 'amvrtrKey'
-  -> AppMeshVirtualRouterTagRef
-appMeshVirtualRouterTagRef keyarg =
-  AppMeshVirtualRouterTagRef
-  { _appMeshVirtualRouterTagRefKey = keyarg
-  , _appMeshVirtualRouterTagRefValue = Nothing
-  }
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-tagref.html#cfn-appmesh-virtualrouter-tagref-key
-amvrtrKey :: Lens' AppMeshVirtualRouterTagRef (Val Text)
-amvrtrKey = lens _appMeshVirtualRouterTagRefKey (\s a -> s { _appMeshVirtualRouterTagRefKey = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-tagref.html#cfn-appmesh-virtualrouter-tagref-value
-amvrtrValue :: Lens' AppMeshVirtualRouterTagRef (Maybe (Val Text))
-amvrtrValue = lens _appMeshVirtualRouterTagRefValue (\s a -> s { _appMeshVirtualRouterTagRefValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/AppMeshVirtualServiceTagRef.hs b/library-gen/Stratosphere/ResourceProperties/AppMeshVirtualServiceTagRef.hs
deleted file mode 100644
--- a/library-gen/Stratosphere/ResourceProperties/AppMeshVirtualServiceTagRef.hs
+++ /dev/null
@@ -1,46 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE RecordWildCards #-}
-{-# LANGUAGE StrictData #-}
-{-# LANGUAGE TupleSections #-}
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-tagref.html
-
-module Stratosphere.ResourceProperties.AppMeshVirtualServiceTagRef where
-
-import Stratosphere.ResourceImports
-
-
--- | Full data type definition for AppMeshVirtualServiceTagRef. See
--- 'appMeshVirtualServiceTagRef' for a more convenient constructor.
-data AppMeshVirtualServiceTagRef =
-  AppMeshVirtualServiceTagRef
-  { _appMeshVirtualServiceTagRefKey :: Val Text
-  , _appMeshVirtualServiceTagRefValue :: Maybe (Val Text)
-  } deriving (Show, Eq)
-
-instance ToJSON AppMeshVirtualServiceTagRef where
-  toJSON AppMeshVirtualServiceTagRef{..} =
-    object $
-    catMaybes
-    [ (Just . ("Key",) . toJSON) _appMeshVirtualServiceTagRefKey
-    , fmap (("Value",) . toJSON) _appMeshVirtualServiceTagRefValue
-    ]
-
--- | Constructor for 'AppMeshVirtualServiceTagRef' containing required fields
--- as arguments.
-appMeshVirtualServiceTagRef
-  :: Val Text -- ^ 'amvstrKey'
-  -> AppMeshVirtualServiceTagRef
-appMeshVirtualServiceTagRef keyarg =
-  AppMeshVirtualServiceTagRef
-  { _appMeshVirtualServiceTagRefKey = keyarg
-  , _appMeshVirtualServiceTagRefValue = Nothing
-  }
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-tagref.html#cfn-appmesh-virtualservice-tagref-key
-amvstrKey :: Lens' AppMeshVirtualServiceTagRef (Val Text)
-amvstrKey = lens _appMeshVirtualServiceTagRefKey (\s a -> s { _appMeshVirtualServiceTagRefKey = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-tagref.html#cfn-appmesh-virtualservice-tagref-value
-amvstrValue :: Lens' AppMeshVirtualServiceTagRef (Maybe (Val Text))
-amvstrValue = lens _appMeshVirtualServiceTagRefValue (\s a -> s { _appMeshVirtualServiceTagRefValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/BackupBackupPlanBackupPlanResourceType.hs b/library-gen/Stratosphere/ResourceProperties/BackupBackupPlanBackupPlanResourceType.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/BackupBackupPlanBackupPlanResourceType.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupplanresourcetype.html
+
+module Stratosphere.ResourceProperties.BackupBackupPlanBackupPlanResourceType where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.BackupBackupPlanBackupRuleResourceType
+
+-- | Full data type definition for BackupBackupPlanBackupPlanResourceType. See
+-- 'backupBackupPlanBackupPlanResourceType' for a more convenient
+-- constructor.
+data BackupBackupPlanBackupPlanResourceType =
+  BackupBackupPlanBackupPlanResourceType
+  { _backupBackupPlanBackupPlanResourceTypeBackupPlanName :: Val Text
+  , _backupBackupPlanBackupPlanResourceTypeBackupPlanRule :: [BackupBackupPlanBackupRuleResourceType]
+  } deriving (Show, Eq)
+
+instance ToJSON BackupBackupPlanBackupPlanResourceType where
+  toJSON BackupBackupPlanBackupPlanResourceType{..} =
+    object $
+    catMaybes
+    [ (Just . ("BackupPlanName",) . toJSON) _backupBackupPlanBackupPlanResourceTypeBackupPlanName
+    , (Just . ("BackupPlanRule",) . toJSON) _backupBackupPlanBackupPlanResourceTypeBackupPlanRule
+    ]
+
+-- | Constructor for 'BackupBackupPlanBackupPlanResourceType' containing
+-- required fields as arguments.
+backupBackupPlanBackupPlanResourceType
+  :: Val Text -- ^ 'bbpbprtBackupPlanName'
+  -> [BackupBackupPlanBackupRuleResourceType] -- ^ 'bbpbprtBackupPlanRule'
+  -> BackupBackupPlanBackupPlanResourceType
+backupBackupPlanBackupPlanResourceType backupPlanNamearg backupPlanRulearg =
+  BackupBackupPlanBackupPlanResourceType
+  { _backupBackupPlanBackupPlanResourceTypeBackupPlanName = backupPlanNamearg
+  , _backupBackupPlanBackupPlanResourceTypeBackupPlanRule = backupPlanRulearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupplanresourcetype.html#cfn-backup-backupplan-backupplanresourcetype-backupplanname
+bbpbprtBackupPlanName :: Lens' BackupBackupPlanBackupPlanResourceType (Val Text)
+bbpbprtBackupPlanName = lens _backupBackupPlanBackupPlanResourceTypeBackupPlanName (\s a -> s { _backupBackupPlanBackupPlanResourceTypeBackupPlanName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupplanresourcetype.html#cfn-backup-backupplan-backupplanresourcetype-backupplanrule
+bbpbprtBackupPlanRule :: Lens' BackupBackupPlanBackupPlanResourceType [BackupBackupPlanBackupRuleResourceType]
+bbpbprtBackupPlanRule = lens _backupBackupPlanBackupPlanResourceTypeBackupPlanRule (\s a -> s { _backupBackupPlanBackupPlanResourceTypeBackupPlanRule = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/BackupBackupPlanBackupRuleResourceType.hs b/library-gen/Stratosphere/ResourceProperties/BackupBackupPlanBackupRuleResourceType.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/BackupBackupPlanBackupRuleResourceType.hs
@@ -0,0 +1,83 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html
+
+module Stratosphere.ResourceProperties.BackupBackupPlanBackupRuleResourceType where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.BackupBackupPlanLifecycleResourceType
+
+-- | Full data type definition for BackupBackupPlanBackupRuleResourceType. See
+-- 'backupBackupPlanBackupRuleResourceType' for a more convenient
+-- constructor.
+data BackupBackupPlanBackupRuleResourceType =
+  BackupBackupPlanBackupRuleResourceType
+  { _backupBackupPlanBackupRuleResourceTypeCompletionWindowMinutes :: Maybe (Val Double)
+  , _backupBackupPlanBackupRuleResourceTypeLifecycle :: Maybe BackupBackupPlanLifecycleResourceType
+  , _backupBackupPlanBackupRuleResourceTypeRecoveryPointTags :: Maybe Object
+  , _backupBackupPlanBackupRuleResourceTypeRuleName :: Val Text
+  , _backupBackupPlanBackupRuleResourceTypeScheduleExpression :: Maybe (Val Text)
+  , _backupBackupPlanBackupRuleResourceTypeStartWindowMinutes :: Maybe (Val Double)
+  , _backupBackupPlanBackupRuleResourceTypeTargetBackupVault :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON BackupBackupPlanBackupRuleResourceType where
+  toJSON BackupBackupPlanBackupRuleResourceType{..} =
+    object $
+    catMaybes
+    [ fmap (("CompletionWindowMinutes",) . toJSON) _backupBackupPlanBackupRuleResourceTypeCompletionWindowMinutes
+    , fmap (("Lifecycle",) . toJSON) _backupBackupPlanBackupRuleResourceTypeLifecycle
+    , fmap (("RecoveryPointTags",) . toJSON) _backupBackupPlanBackupRuleResourceTypeRecoveryPointTags
+    , (Just . ("RuleName",) . toJSON) _backupBackupPlanBackupRuleResourceTypeRuleName
+    , fmap (("ScheduleExpression",) . toJSON) _backupBackupPlanBackupRuleResourceTypeScheduleExpression
+    , fmap (("StartWindowMinutes",) . toJSON) _backupBackupPlanBackupRuleResourceTypeStartWindowMinutes
+    , (Just . ("TargetBackupVault",) . toJSON) _backupBackupPlanBackupRuleResourceTypeTargetBackupVault
+    ]
+
+-- | Constructor for 'BackupBackupPlanBackupRuleResourceType' containing
+-- required fields as arguments.
+backupBackupPlanBackupRuleResourceType
+  :: Val Text -- ^ 'bbpbrrtRuleName'
+  -> Val Text -- ^ 'bbpbrrtTargetBackupVault'
+  -> BackupBackupPlanBackupRuleResourceType
+backupBackupPlanBackupRuleResourceType ruleNamearg targetBackupVaultarg =
+  BackupBackupPlanBackupRuleResourceType
+  { _backupBackupPlanBackupRuleResourceTypeCompletionWindowMinutes = Nothing
+  , _backupBackupPlanBackupRuleResourceTypeLifecycle = Nothing
+  , _backupBackupPlanBackupRuleResourceTypeRecoveryPointTags = Nothing
+  , _backupBackupPlanBackupRuleResourceTypeRuleName = ruleNamearg
+  , _backupBackupPlanBackupRuleResourceTypeScheduleExpression = Nothing
+  , _backupBackupPlanBackupRuleResourceTypeStartWindowMinutes = Nothing
+  , _backupBackupPlanBackupRuleResourceTypeTargetBackupVault = targetBackupVaultarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-completionwindowminutes
+bbpbrrtCompletionWindowMinutes :: Lens' BackupBackupPlanBackupRuleResourceType (Maybe (Val Double))
+bbpbrrtCompletionWindowMinutes = lens _backupBackupPlanBackupRuleResourceTypeCompletionWindowMinutes (\s a -> s { _backupBackupPlanBackupRuleResourceTypeCompletionWindowMinutes = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-lifecycle
+bbpbrrtLifecycle :: Lens' BackupBackupPlanBackupRuleResourceType (Maybe BackupBackupPlanLifecycleResourceType)
+bbpbrrtLifecycle = lens _backupBackupPlanBackupRuleResourceTypeLifecycle (\s a -> s { _backupBackupPlanBackupRuleResourceTypeLifecycle = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-recoverypointtags
+bbpbrrtRecoveryPointTags :: Lens' BackupBackupPlanBackupRuleResourceType (Maybe Object)
+bbpbrrtRecoveryPointTags = lens _backupBackupPlanBackupRuleResourceTypeRecoveryPointTags (\s a -> s { _backupBackupPlanBackupRuleResourceTypeRecoveryPointTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-rulename
+bbpbrrtRuleName :: Lens' BackupBackupPlanBackupRuleResourceType (Val Text)
+bbpbrrtRuleName = lens _backupBackupPlanBackupRuleResourceTypeRuleName (\s a -> s { _backupBackupPlanBackupRuleResourceTypeRuleName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-scheduleexpression
+bbpbrrtScheduleExpression :: Lens' BackupBackupPlanBackupRuleResourceType (Maybe (Val Text))
+bbpbrrtScheduleExpression = lens _backupBackupPlanBackupRuleResourceTypeScheduleExpression (\s a -> s { _backupBackupPlanBackupRuleResourceTypeScheduleExpression = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-startwindowminutes
+bbpbrrtStartWindowMinutes :: Lens' BackupBackupPlanBackupRuleResourceType (Maybe (Val Double))
+bbpbrrtStartWindowMinutes = lens _backupBackupPlanBackupRuleResourceTypeStartWindowMinutes (\s a -> s { _backupBackupPlanBackupRuleResourceTypeStartWindowMinutes = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-targetbackupvault
+bbpbrrtTargetBackupVault :: Lens' BackupBackupPlanBackupRuleResourceType (Val Text)
+bbpbrrtTargetBackupVault = lens _backupBackupPlanBackupRuleResourceTypeTargetBackupVault (\s a -> s { _backupBackupPlanBackupRuleResourceTypeTargetBackupVault = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/BackupBackupPlanLifecycleResourceType.hs b/library-gen/Stratosphere/ResourceProperties/BackupBackupPlanLifecycleResourceType.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/BackupBackupPlanLifecycleResourceType.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-lifecycleresourcetype.html
+
+module Stratosphere.ResourceProperties.BackupBackupPlanLifecycleResourceType where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for BackupBackupPlanLifecycleResourceType. See
+-- 'backupBackupPlanLifecycleResourceType' for a more convenient
+-- constructor.
+data BackupBackupPlanLifecycleResourceType =
+  BackupBackupPlanLifecycleResourceType
+  { _backupBackupPlanLifecycleResourceTypeDeleteAfterDays :: Maybe (Val Double)
+  , _backupBackupPlanLifecycleResourceTypeMoveToColdStorageAfterDays :: Maybe (Val Double)
+  } deriving (Show, Eq)
+
+instance ToJSON BackupBackupPlanLifecycleResourceType where
+  toJSON BackupBackupPlanLifecycleResourceType{..} =
+    object $
+    catMaybes
+    [ fmap (("DeleteAfterDays",) . toJSON) _backupBackupPlanLifecycleResourceTypeDeleteAfterDays
+    , fmap (("MoveToColdStorageAfterDays",) . toJSON) _backupBackupPlanLifecycleResourceTypeMoveToColdStorageAfterDays
+    ]
+
+-- | Constructor for 'BackupBackupPlanLifecycleResourceType' containing
+-- required fields as arguments.
+backupBackupPlanLifecycleResourceType
+  :: BackupBackupPlanLifecycleResourceType
+backupBackupPlanLifecycleResourceType  =
+  BackupBackupPlanLifecycleResourceType
+  { _backupBackupPlanLifecycleResourceTypeDeleteAfterDays = Nothing
+  , _backupBackupPlanLifecycleResourceTypeMoveToColdStorageAfterDays = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-lifecycleresourcetype.html#cfn-backup-backupplan-lifecycleresourcetype-deleteafterdays
+bbplrtDeleteAfterDays :: Lens' BackupBackupPlanLifecycleResourceType (Maybe (Val Double))
+bbplrtDeleteAfterDays = lens _backupBackupPlanLifecycleResourceTypeDeleteAfterDays (\s a -> s { _backupBackupPlanLifecycleResourceTypeDeleteAfterDays = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-lifecycleresourcetype.html#cfn-backup-backupplan-lifecycleresourcetype-movetocoldstorageafterdays
+bbplrtMoveToColdStorageAfterDays :: Lens' BackupBackupPlanLifecycleResourceType (Maybe (Val Double))
+bbplrtMoveToColdStorageAfterDays = lens _backupBackupPlanLifecycleResourceTypeMoveToColdStorageAfterDays (\s a -> s { _backupBackupPlanLifecycleResourceTypeMoveToColdStorageAfterDays = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/BackupBackupSelectionBackupSelectionResourceType.hs b/library-gen/Stratosphere/ResourceProperties/BackupBackupSelectionBackupSelectionResourceType.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/BackupBackupSelectionBackupSelectionResourceType.hs
@@ -0,0 +1,63 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-backupselectionresourcetype.html
+
+module Stratosphere.ResourceProperties.BackupBackupSelectionBackupSelectionResourceType where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.BackupBackupSelectionConditionResourceType
+
+-- | Full data type definition for
+-- BackupBackupSelectionBackupSelectionResourceType. See
+-- 'backupBackupSelectionBackupSelectionResourceType' for a more convenient
+-- constructor.
+data BackupBackupSelectionBackupSelectionResourceType =
+  BackupBackupSelectionBackupSelectionResourceType
+  { _backupBackupSelectionBackupSelectionResourceTypeIamRoleArn :: Val Text
+  , _backupBackupSelectionBackupSelectionResourceTypeListOfTags :: Maybe [BackupBackupSelectionConditionResourceType]
+  , _backupBackupSelectionBackupSelectionResourceTypeResources :: Maybe (ValList Text)
+  , _backupBackupSelectionBackupSelectionResourceTypeSelectionName :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON BackupBackupSelectionBackupSelectionResourceType where
+  toJSON BackupBackupSelectionBackupSelectionResourceType{..} =
+    object $
+    catMaybes
+    [ (Just . ("IamRoleArn",) . toJSON) _backupBackupSelectionBackupSelectionResourceTypeIamRoleArn
+    , fmap (("ListOfTags",) . toJSON) _backupBackupSelectionBackupSelectionResourceTypeListOfTags
+    , fmap (("Resources",) . toJSON) _backupBackupSelectionBackupSelectionResourceTypeResources
+    , (Just . ("SelectionName",) . toJSON) _backupBackupSelectionBackupSelectionResourceTypeSelectionName
+    ]
+
+-- | Constructor for 'BackupBackupSelectionBackupSelectionResourceType'
+-- containing required fields as arguments.
+backupBackupSelectionBackupSelectionResourceType
+  :: Val Text -- ^ 'bbsbsrtIamRoleArn'
+  -> Val Text -- ^ 'bbsbsrtSelectionName'
+  -> BackupBackupSelectionBackupSelectionResourceType
+backupBackupSelectionBackupSelectionResourceType iamRoleArnarg selectionNamearg =
+  BackupBackupSelectionBackupSelectionResourceType
+  { _backupBackupSelectionBackupSelectionResourceTypeIamRoleArn = iamRoleArnarg
+  , _backupBackupSelectionBackupSelectionResourceTypeListOfTags = Nothing
+  , _backupBackupSelectionBackupSelectionResourceTypeResources = Nothing
+  , _backupBackupSelectionBackupSelectionResourceTypeSelectionName = selectionNamearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-backupselectionresourcetype.html#cfn-backup-backupselection-backupselectionresourcetype-iamrolearn
+bbsbsrtIamRoleArn :: Lens' BackupBackupSelectionBackupSelectionResourceType (Val Text)
+bbsbsrtIamRoleArn = lens _backupBackupSelectionBackupSelectionResourceTypeIamRoleArn (\s a -> s { _backupBackupSelectionBackupSelectionResourceTypeIamRoleArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-backupselectionresourcetype.html#cfn-backup-backupselection-backupselectionresourcetype-listoftags
+bbsbsrtListOfTags :: Lens' BackupBackupSelectionBackupSelectionResourceType (Maybe [BackupBackupSelectionConditionResourceType])
+bbsbsrtListOfTags = lens _backupBackupSelectionBackupSelectionResourceTypeListOfTags (\s a -> s { _backupBackupSelectionBackupSelectionResourceTypeListOfTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-backupselectionresourcetype.html#cfn-backup-backupselection-backupselectionresourcetype-resources
+bbsbsrtResources :: Lens' BackupBackupSelectionBackupSelectionResourceType (Maybe (ValList Text))
+bbsbsrtResources = lens _backupBackupSelectionBackupSelectionResourceTypeResources (\s a -> s { _backupBackupSelectionBackupSelectionResourceTypeResources = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-backupselectionresourcetype.html#cfn-backup-backupselection-backupselectionresourcetype-selectionname
+bbsbsrtSelectionName :: Lens' BackupBackupSelectionBackupSelectionResourceType (Val Text)
+bbsbsrtSelectionName = lens _backupBackupSelectionBackupSelectionResourceTypeSelectionName (\s a -> s { _backupBackupSelectionBackupSelectionResourceTypeSelectionName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/BackupBackupSelectionConditionResourceType.hs b/library-gen/Stratosphere/ResourceProperties/BackupBackupSelectionConditionResourceType.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/BackupBackupSelectionConditionResourceType.hs
@@ -0,0 +1,56 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-conditionresourcetype.html
+
+module Stratosphere.ResourceProperties.BackupBackupSelectionConditionResourceType where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for BackupBackupSelectionConditionResourceType.
+-- See 'backupBackupSelectionConditionResourceType' for a more convenient
+-- constructor.
+data BackupBackupSelectionConditionResourceType =
+  BackupBackupSelectionConditionResourceType
+  { _backupBackupSelectionConditionResourceTypeConditionKey :: Val Text
+  , _backupBackupSelectionConditionResourceTypeConditionType :: Val Text
+  , _backupBackupSelectionConditionResourceTypeConditionValue :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON BackupBackupSelectionConditionResourceType where
+  toJSON BackupBackupSelectionConditionResourceType{..} =
+    object $
+    catMaybes
+    [ (Just . ("ConditionKey",) . toJSON) _backupBackupSelectionConditionResourceTypeConditionKey
+    , (Just . ("ConditionType",) . toJSON) _backupBackupSelectionConditionResourceTypeConditionType
+    , (Just . ("ConditionValue",) . toJSON) _backupBackupSelectionConditionResourceTypeConditionValue
+    ]
+
+-- | Constructor for 'BackupBackupSelectionConditionResourceType' containing
+-- required fields as arguments.
+backupBackupSelectionConditionResourceType
+  :: Val Text -- ^ 'bbscrtConditionKey'
+  -> Val Text -- ^ 'bbscrtConditionType'
+  -> Val Text -- ^ 'bbscrtConditionValue'
+  -> BackupBackupSelectionConditionResourceType
+backupBackupSelectionConditionResourceType conditionKeyarg conditionTypearg conditionValuearg =
+  BackupBackupSelectionConditionResourceType
+  { _backupBackupSelectionConditionResourceTypeConditionKey = conditionKeyarg
+  , _backupBackupSelectionConditionResourceTypeConditionType = conditionTypearg
+  , _backupBackupSelectionConditionResourceTypeConditionValue = conditionValuearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-conditionresourcetype.html#cfn-backup-backupselection-conditionresourcetype-conditionkey
+bbscrtConditionKey :: Lens' BackupBackupSelectionConditionResourceType (Val Text)
+bbscrtConditionKey = lens _backupBackupSelectionConditionResourceTypeConditionKey (\s a -> s { _backupBackupSelectionConditionResourceTypeConditionKey = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-conditionresourcetype.html#cfn-backup-backupselection-conditionresourcetype-conditiontype
+bbscrtConditionType :: Lens' BackupBackupSelectionConditionResourceType (Val Text)
+bbscrtConditionType = lens _backupBackupSelectionConditionResourceTypeConditionType (\s a -> s { _backupBackupSelectionConditionResourceTypeConditionType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-conditionresourcetype.html#cfn-backup-backupselection-conditionresourcetype-conditionvalue
+bbscrtConditionValue :: Lens' BackupBackupSelectionConditionResourceType (Val Text)
+bbscrtConditionValue = lens _backupBackupSelectionConditionResourceTypeConditionValue (\s a -> s { _backupBackupSelectionConditionResourceTypeConditionValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/BackupBackupVaultNotificationObjectType.hs b/library-gen/Stratosphere/ResourceProperties/BackupBackupVaultNotificationObjectType.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/BackupBackupVaultNotificationObjectType.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-notificationobjecttype.html
+
+module Stratosphere.ResourceProperties.BackupBackupVaultNotificationObjectType where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for BackupBackupVaultNotificationObjectType.
+-- See 'backupBackupVaultNotificationObjectType' for a more convenient
+-- constructor.
+data BackupBackupVaultNotificationObjectType =
+  BackupBackupVaultNotificationObjectType
+  { _backupBackupVaultNotificationObjectTypeBackupVaultEvents :: ValList Text
+  , _backupBackupVaultNotificationObjectTypeSNSTopicArn :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON BackupBackupVaultNotificationObjectType where
+  toJSON BackupBackupVaultNotificationObjectType{..} =
+    object $
+    catMaybes
+    [ (Just . ("BackupVaultEvents",) . toJSON) _backupBackupVaultNotificationObjectTypeBackupVaultEvents
+    , (Just . ("SNSTopicArn",) . toJSON) _backupBackupVaultNotificationObjectTypeSNSTopicArn
+    ]
+
+-- | Constructor for 'BackupBackupVaultNotificationObjectType' containing
+-- required fields as arguments.
+backupBackupVaultNotificationObjectType
+  :: ValList Text -- ^ 'bbvnotBackupVaultEvents'
+  -> Val Text -- ^ 'bbvnotSNSTopicArn'
+  -> BackupBackupVaultNotificationObjectType
+backupBackupVaultNotificationObjectType backupVaultEventsarg sNSTopicArnarg =
+  BackupBackupVaultNotificationObjectType
+  { _backupBackupVaultNotificationObjectTypeBackupVaultEvents = backupVaultEventsarg
+  , _backupBackupVaultNotificationObjectTypeSNSTopicArn = sNSTopicArnarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-notificationobjecttype.html#cfn-backup-backupvault-notificationobjecttype-backupvaultevents
+bbvnotBackupVaultEvents :: Lens' BackupBackupVaultNotificationObjectType (ValList Text)
+bbvnotBackupVaultEvents = lens _backupBackupVaultNotificationObjectTypeBackupVaultEvents (\s a -> s { _backupBackupVaultNotificationObjectTypeBackupVaultEvents = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-notificationobjecttype.html#cfn-backup-backupvault-notificationobjecttype-snstopicarn
+bbvnotSNSTopicArn :: Lens' BackupBackupVaultNotificationObjectType (Val Text)
+bbvnotSNSTopicArn = lens _backupBackupVaultNotificationObjectTypeSNSTopicArn (\s a -> s { _backupBackupVaultNotificationObjectTypeSNSTopicArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ConfigRemediationConfigurationRemediationParameterValue.hs b/library-gen/Stratosphere/ResourceProperties/ConfigRemediationConfigurationRemediationParameterValue.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ConfigRemediationConfigurationRemediationParameterValue.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-remediationparametervalue.html
+
+module Stratosphere.ResourceProperties.ConfigRemediationConfigurationRemediationParameterValue where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.ConfigRemediationConfigurationResourceValue
+import Stratosphere.ResourceProperties.ConfigRemediationConfigurationStaticValue
+
+-- | Full data type definition for
+-- ConfigRemediationConfigurationRemediationParameterValue. See
+-- 'configRemediationConfigurationRemediationParameterValue' for a more
+-- convenient constructor.
+data ConfigRemediationConfigurationRemediationParameterValue =
+  ConfigRemediationConfigurationRemediationParameterValue
+  { _configRemediationConfigurationRemediationParameterValueResourceValue :: Maybe ConfigRemediationConfigurationResourceValue
+  , _configRemediationConfigurationRemediationParameterValueStaticValue :: Maybe ConfigRemediationConfigurationStaticValue
+  } deriving (Show, Eq)
+
+instance ToJSON ConfigRemediationConfigurationRemediationParameterValue where
+  toJSON ConfigRemediationConfigurationRemediationParameterValue{..} =
+    object $
+    catMaybes
+    [ fmap (("ResourceValue",) . toJSON) _configRemediationConfigurationRemediationParameterValueResourceValue
+    , fmap (("StaticValue",) . toJSON) _configRemediationConfigurationRemediationParameterValueStaticValue
+    ]
+
+-- | Constructor for 'ConfigRemediationConfigurationRemediationParameterValue'
+-- containing required fields as arguments.
+configRemediationConfigurationRemediationParameterValue
+  :: ConfigRemediationConfigurationRemediationParameterValue
+configRemediationConfigurationRemediationParameterValue  =
+  ConfigRemediationConfigurationRemediationParameterValue
+  { _configRemediationConfigurationRemediationParameterValueResourceValue = Nothing
+  , _configRemediationConfigurationRemediationParameterValueStaticValue = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-remediationparametervalue.html#cfn-config-remediationconfiguration-remediationparametervalue-resourcevalue
+crcrpvResourceValue :: Lens' ConfigRemediationConfigurationRemediationParameterValue (Maybe ConfigRemediationConfigurationResourceValue)
+crcrpvResourceValue = lens _configRemediationConfigurationRemediationParameterValueResourceValue (\s a -> s { _configRemediationConfigurationRemediationParameterValueResourceValue = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-remediationparametervalue.html#cfn-config-remediationconfiguration-remediationparametervalue-staticvalue
+crcrpvStaticValue :: Lens' ConfigRemediationConfigurationRemediationParameterValue (Maybe ConfigRemediationConfigurationStaticValue)
+crcrpvStaticValue = lens _configRemediationConfigurationRemediationParameterValueStaticValue (\s a -> s { _configRemediationConfigurationRemediationParameterValueStaticValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ConfigRemediationConfigurationResourceValue.hs b/library-gen/Stratosphere/ResourceProperties/ConfigRemediationConfigurationResourceValue.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ConfigRemediationConfigurationResourceValue.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-resourcevalue.html
+
+module Stratosphere.ResourceProperties.ConfigRemediationConfigurationResourceValue where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- ConfigRemediationConfigurationResourceValue. See
+-- 'configRemediationConfigurationResourceValue' for a more convenient
+-- constructor.
+data ConfigRemediationConfigurationResourceValue =
+  ConfigRemediationConfigurationResourceValue
+  { _configRemediationConfigurationResourceValueValue :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON ConfigRemediationConfigurationResourceValue where
+  toJSON ConfigRemediationConfigurationResourceValue{..} =
+    object $
+    catMaybes
+    [ fmap (("Value",) . toJSON) _configRemediationConfigurationResourceValueValue
+    ]
+
+-- | Constructor for 'ConfigRemediationConfigurationResourceValue' containing
+-- required fields as arguments.
+configRemediationConfigurationResourceValue
+  :: ConfigRemediationConfigurationResourceValue
+configRemediationConfigurationResourceValue  =
+  ConfigRemediationConfigurationResourceValue
+  { _configRemediationConfigurationResourceValueValue = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-resourcevalue.html#cfn-config-remediationconfiguration-resourcevalue-value
+crcrvValue :: Lens' ConfigRemediationConfigurationResourceValue (Maybe (Val Text))
+crcrvValue = lens _configRemediationConfigurationResourceValueValue (\s a -> s { _configRemediationConfigurationResourceValueValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ConfigRemediationConfigurationStaticValue.hs b/library-gen/Stratosphere/ResourceProperties/ConfigRemediationConfigurationStaticValue.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ConfigRemediationConfigurationStaticValue.hs
@@ -0,0 +1,39 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-staticvalue.html
+
+module Stratosphere.ResourceProperties.ConfigRemediationConfigurationStaticValue where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for ConfigRemediationConfigurationStaticValue.
+-- See 'configRemediationConfigurationStaticValue' for a more convenient
+-- constructor.
+data ConfigRemediationConfigurationStaticValue =
+  ConfigRemediationConfigurationStaticValue
+  { _configRemediationConfigurationStaticValueValues :: Maybe (ValList Text)
+  } deriving (Show, Eq)
+
+instance ToJSON ConfigRemediationConfigurationStaticValue where
+  toJSON ConfigRemediationConfigurationStaticValue{..} =
+    object $
+    catMaybes
+    [ fmap (("Values",) . toJSON) _configRemediationConfigurationStaticValueValues
+    ]
+
+-- | Constructor for 'ConfigRemediationConfigurationStaticValue' containing
+-- required fields as arguments.
+configRemediationConfigurationStaticValue
+  :: ConfigRemediationConfigurationStaticValue
+configRemediationConfigurationStaticValue  =
+  ConfigRemediationConfigurationStaticValue
+  { _configRemediationConfigurationStaticValueValues = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-staticvalue.html#cfn-config-remediationconfiguration-staticvalue-values
+crcsvValues :: Lens' ConfigRemediationConfigurationStaticValue (Maybe (ValList Text))
+crcsvValues = lens _configRemediationConfigurationStaticValueValues (\s a -> s { _configRemediationConfigurationStaticValueValues = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/DynamoDBTableSSESpecification.hs b/library-gen/Stratosphere/ResourceProperties/DynamoDBTableSSESpecification.hs
--- a/library-gen/Stratosphere/ResourceProperties/DynamoDBTableSSESpecification.hs
+++ b/library-gen/Stratosphere/ResourceProperties/DynamoDBTableSSESpecification.hs
@@ -14,14 +14,18 @@
 -- 'dynamoDBTableSSESpecification' for a more convenient constructor.
 data DynamoDBTableSSESpecification =
   DynamoDBTableSSESpecification
-  { _dynamoDBTableSSESpecificationSSEEnabled :: Val Bool
+  { _dynamoDBTableSSESpecificationKMSMasterKeyId :: Maybe (Val Text)
+  , _dynamoDBTableSSESpecificationSSEEnabled :: Val Bool
+  , _dynamoDBTableSSESpecificationSSEType :: Maybe (Val Text)
   } deriving (Show, Eq)
 
 instance ToJSON DynamoDBTableSSESpecification where
   toJSON DynamoDBTableSSESpecification{..} =
     object $
     catMaybes
-    [ (Just . ("SSEEnabled",) . toJSON) _dynamoDBTableSSESpecificationSSEEnabled
+    [ fmap (("KMSMasterKeyId",) . toJSON) _dynamoDBTableSSESpecificationKMSMasterKeyId
+    , (Just . ("SSEEnabled",) . toJSON) _dynamoDBTableSSESpecificationSSEEnabled
+    , fmap (("SSEType",) . toJSON) _dynamoDBTableSSESpecificationSSEType
     ]
 
 -- | Constructor for 'DynamoDBTableSSESpecification' containing required
@@ -31,9 +35,19 @@
   -> DynamoDBTableSSESpecification
 dynamoDBTableSSESpecification sSEEnabledarg =
   DynamoDBTableSSESpecification
-  { _dynamoDBTableSSESpecificationSSEEnabled = sSEEnabledarg
+  { _dynamoDBTableSSESpecificationKMSMasterKeyId = Nothing
+  , _dynamoDBTableSSESpecificationSSEEnabled = sSEEnabledarg
+  , _dynamoDBTableSSESpecificationSSEType = Nothing
   }
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html#cfn-dynamodb-table-ssespecification-kmsmasterkeyid
+ddbtssesKMSMasterKeyId :: Lens' DynamoDBTableSSESpecification (Maybe (Val Text))
+ddbtssesKMSMasterKeyId = lens _dynamoDBTableSSESpecificationKMSMasterKeyId (\s a -> s { _dynamoDBTableSSESpecificationKMSMasterKeyId = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html#cfn-dynamodb-table-ssespecification-sseenabled
 ddbtssesSSEEnabled :: Lens' DynamoDBTableSSESpecification (Val Bool)
 ddbtssesSSEEnabled = lens _dynamoDBTableSSESpecificationSSEEnabled (\s a -> s { _dynamoDBTableSSESpecificationSSEEnabled = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html#cfn-dynamodb-table-ssespecification-ssetype
+ddbtssesSSEType :: Lens' DynamoDBTableSSESpecification (Maybe (Val Text))
+ddbtssesSSEType = lens _dynamoDBTableSSESpecificationSSEType (\s a -> s { _dynamoDBTableSSESpecificationSSEType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2InstanceCpuOptions.hs b/library-gen/Stratosphere/ResourceProperties/EC2InstanceCpuOptions.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EC2InstanceCpuOptions.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-cpuoptions.html
+
+module Stratosphere.ResourceProperties.EC2InstanceCpuOptions where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for EC2InstanceCpuOptions. See
+-- 'ec2InstanceCpuOptions' for a more convenient constructor.
+data EC2InstanceCpuOptions =
+  EC2InstanceCpuOptions
+  { _eC2InstanceCpuOptionsCoreCount :: Maybe (Val Integer)
+  , _eC2InstanceCpuOptionsThreadsPerCore :: Maybe (Val Integer)
+  } deriving (Show, Eq)
+
+instance ToJSON EC2InstanceCpuOptions where
+  toJSON EC2InstanceCpuOptions{..} =
+    object $
+    catMaybes
+    [ fmap (("CoreCount",) . toJSON) _eC2InstanceCpuOptionsCoreCount
+    , fmap (("ThreadsPerCore",) . toJSON) _eC2InstanceCpuOptionsThreadsPerCore
+    ]
+
+-- | Constructor for 'EC2InstanceCpuOptions' containing required fields as
+-- arguments.
+ec2InstanceCpuOptions
+  :: EC2InstanceCpuOptions
+ec2InstanceCpuOptions  =
+  EC2InstanceCpuOptions
+  { _eC2InstanceCpuOptionsCoreCount = Nothing
+  , _eC2InstanceCpuOptionsThreadsPerCore = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-cpuoptions.html#cfn-ec2-instance-cpuoptions-corecount
+ecicoCoreCount :: Lens' EC2InstanceCpuOptions (Maybe (Val Integer))
+ecicoCoreCount = lens _eC2InstanceCpuOptionsCoreCount (\s a -> s { _eC2InstanceCpuOptionsCoreCount = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-cpuoptions.html#cfn-ec2-instance-cpuoptions-threadspercore
+ecicoThreadsPerCore :: Lens' EC2InstanceCpuOptions (Maybe (Val Integer))
+ecicoThreadsPerCore = lens _eC2InstanceCpuOptionsThreadsPerCore (\s a -> s { _eC2InstanceCpuOptionsThreadsPerCore = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateSpotOptions.hs b/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateSpotOptions.hs
--- a/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateSpotOptions.hs
+++ b/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateSpotOptions.hs
@@ -14,18 +14,22 @@
 -- 'ec2LaunchTemplateSpotOptions' for a more convenient constructor.
 data EC2LaunchTemplateSpotOptions =
   EC2LaunchTemplateSpotOptions
-  { _eC2LaunchTemplateSpotOptionsInstanceInterruptionBehavior :: Maybe (Val Text)
+  { _eC2LaunchTemplateSpotOptionsBlockDurationMinutes :: Maybe (Val Integer)
+  , _eC2LaunchTemplateSpotOptionsInstanceInterruptionBehavior :: Maybe (Val Text)
   , _eC2LaunchTemplateSpotOptionsMaxPrice :: Maybe (Val Text)
   , _eC2LaunchTemplateSpotOptionsSpotInstanceType :: Maybe (Val Text)
+  , _eC2LaunchTemplateSpotOptionsValidUntil :: Maybe (Val Text)
   } deriving (Show, Eq)
 
 instance ToJSON EC2LaunchTemplateSpotOptions where
   toJSON EC2LaunchTemplateSpotOptions{..} =
     object $
     catMaybes
-    [ fmap (("InstanceInterruptionBehavior",) . toJSON) _eC2LaunchTemplateSpotOptionsInstanceInterruptionBehavior
+    [ fmap (("BlockDurationMinutes",) . toJSON) _eC2LaunchTemplateSpotOptionsBlockDurationMinutes
+    , fmap (("InstanceInterruptionBehavior",) . toJSON) _eC2LaunchTemplateSpotOptionsInstanceInterruptionBehavior
     , fmap (("MaxPrice",) . toJSON) _eC2LaunchTemplateSpotOptionsMaxPrice
     , fmap (("SpotInstanceType",) . toJSON) _eC2LaunchTemplateSpotOptionsSpotInstanceType
+    , fmap (("ValidUntil",) . toJSON) _eC2LaunchTemplateSpotOptionsValidUntil
     ]
 
 -- | Constructor for 'EC2LaunchTemplateSpotOptions' containing required fields
@@ -34,11 +38,17 @@
   :: EC2LaunchTemplateSpotOptions
 ec2LaunchTemplateSpotOptions  =
   EC2LaunchTemplateSpotOptions
-  { _eC2LaunchTemplateSpotOptionsInstanceInterruptionBehavior = Nothing
+  { _eC2LaunchTemplateSpotOptionsBlockDurationMinutes = Nothing
+  , _eC2LaunchTemplateSpotOptionsInstanceInterruptionBehavior = Nothing
   , _eC2LaunchTemplateSpotOptionsMaxPrice = Nothing
   , _eC2LaunchTemplateSpotOptionsSpotInstanceType = Nothing
+  , _eC2LaunchTemplateSpotOptionsValidUntil = Nothing
   }
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions-blockdurationminutes
+ecltsoBlockDurationMinutes :: Lens' EC2LaunchTemplateSpotOptions (Maybe (Val Integer))
+ecltsoBlockDurationMinutes = lens _eC2LaunchTemplateSpotOptionsBlockDurationMinutes (\s a -> s { _eC2LaunchTemplateSpotOptionsBlockDurationMinutes = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions-instanceinterruptionbehavior
 ecltsoInstanceInterruptionBehavior :: Lens' EC2LaunchTemplateSpotOptions (Maybe (Val Text))
 ecltsoInstanceInterruptionBehavior = lens _eC2LaunchTemplateSpotOptionsInstanceInterruptionBehavior (\s a -> s { _eC2LaunchTemplateSpotOptionsInstanceInterruptionBehavior = a })
@@ -50,3 +60,7 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions-spotinstancetype
 ecltsoSpotInstanceType :: Lens' EC2LaunchTemplateSpotOptions (Maybe (Val Text))
 ecltsoSpotInstanceType = lens _eC2LaunchTemplateSpotOptionsSpotInstanceType (\s a -> s { _eC2LaunchTemplateSpotOptionsSpotInstanceType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions-validuntil
+ecltsoValidUntil :: Lens' EC2LaunchTemplateSpotOptions (Maybe (Val Text))
+ecltsoValidUntil = lens _eC2LaunchTemplateSpotOptionsValidUntil (\s a -> s { _eC2LaunchTemplateSpotOptionsValidUntil = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionContainerDefinition.hs b/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionContainerDefinition.hs
--- a/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionContainerDefinition.hs
+++ b/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionContainerDefinition.hs
@@ -19,6 +19,7 @@
 import Stratosphere.ResourceProperties.ECSTaskDefinitionRepositoryCredentials
 import Stratosphere.ResourceProperties.ECSTaskDefinitionResourceRequirement
 import Stratosphere.ResourceProperties.ECSTaskDefinitionSecret
+import Stratosphere.ResourceProperties.ECSTaskDefinitionSystemControl
 import Stratosphere.ResourceProperties.ECSTaskDefinitionUlimit
 import Stratosphere.ResourceProperties.ECSTaskDefinitionVolumeFrom
 
@@ -41,6 +42,7 @@
   , _eCSTaskDefinitionContainerDefinitionHealthCheck :: Maybe ECSTaskDefinitionHealthCheck
   , _eCSTaskDefinitionContainerDefinitionHostname :: Maybe (Val Text)
   , _eCSTaskDefinitionContainerDefinitionImage :: Val Text
+  , _eCSTaskDefinitionContainerDefinitionInteractive :: Maybe (Val Bool)
   , _eCSTaskDefinitionContainerDefinitionLinks :: Maybe (ValList Text)
   , _eCSTaskDefinitionContainerDefinitionLinuxParameters :: Maybe ECSTaskDefinitionLinuxParameters
   , _eCSTaskDefinitionContainerDefinitionLogConfiguration :: Maybe ECSTaskDefinitionLogConfiguration
@@ -50,12 +52,14 @@
   , _eCSTaskDefinitionContainerDefinitionName :: Val Text
   , _eCSTaskDefinitionContainerDefinitionPortMappings :: Maybe [ECSTaskDefinitionPortMapping]
   , _eCSTaskDefinitionContainerDefinitionPrivileged :: Maybe (Val Bool)
+  , _eCSTaskDefinitionContainerDefinitionPseudoTerminal :: Maybe (Val Bool)
   , _eCSTaskDefinitionContainerDefinitionReadonlyRootFilesystem :: Maybe (Val Bool)
   , _eCSTaskDefinitionContainerDefinitionRepositoryCredentials :: Maybe ECSTaskDefinitionRepositoryCredentials
   , _eCSTaskDefinitionContainerDefinitionResourceRequirements :: Maybe [ECSTaskDefinitionResourceRequirement]
   , _eCSTaskDefinitionContainerDefinitionSecrets :: Maybe [ECSTaskDefinitionSecret]
   , _eCSTaskDefinitionContainerDefinitionStartTimeout :: Maybe (Val Integer)
   , _eCSTaskDefinitionContainerDefinitionStopTimeout :: Maybe (Val Integer)
+  , _eCSTaskDefinitionContainerDefinitionSystemControls :: Maybe [ECSTaskDefinitionSystemControl]
   , _eCSTaskDefinitionContainerDefinitionUlimits :: Maybe [ECSTaskDefinitionUlimit]
   , _eCSTaskDefinitionContainerDefinitionUser :: Maybe (Val Text)
   , _eCSTaskDefinitionContainerDefinitionVolumesFrom :: Maybe [ECSTaskDefinitionVolumeFrom]
@@ -81,6 +85,7 @@
     , fmap (("HealthCheck",) . toJSON) _eCSTaskDefinitionContainerDefinitionHealthCheck
     , fmap (("Hostname",) . toJSON) _eCSTaskDefinitionContainerDefinitionHostname
     , (Just . ("Image",) . toJSON) _eCSTaskDefinitionContainerDefinitionImage
+    , fmap (("Interactive",) . toJSON) _eCSTaskDefinitionContainerDefinitionInteractive
     , fmap (("Links",) . toJSON) _eCSTaskDefinitionContainerDefinitionLinks
     , fmap (("LinuxParameters",) . toJSON) _eCSTaskDefinitionContainerDefinitionLinuxParameters
     , fmap (("LogConfiguration",) . toJSON) _eCSTaskDefinitionContainerDefinitionLogConfiguration
@@ -90,12 +95,14 @@
     , (Just . ("Name",) . toJSON) _eCSTaskDefinitionContainerDefinitionName
     , fmap (("PortMappings",) . toJSON) _eCSTaskDefinitionContainerDefinitionPortMappings
     , fmap (("Privileged",) . toJSON) _eCSTaskDefinitionContainerDefinitionPrivileged
+    , fmap (("PseudoTerminal",) . toJSON) _eCSTaskDefinitionContainerDefinitionPseudoTerminal
     , fmap (("ReadonlyRootFilesystem",) . toJSON) _eCSTaskDefinitionContainerDefinitionReadonlyRootFilesystem
     , fmap (("RepositoryCredentials",) . toJSON) _eCSTaskDefinitionContainerDefinitionRepositoryCredentials
     , fmap (("ResourceRequirements",) . toJSON) _eCSTaskDefinitionContainerDefinitionResourceRequirements
     , fmap (("Secrets",) . toJSON) _eCSTaskDefinitionContainerDefinitionSecrets
     , fmap (("StartTimeout",) . toJSON) _eCSTaskDefinitionContainerDefinitionStartTimeout
     , fmap (("StopTimeout",) . toJSON) _eCSTaskDefinitionContainerDefinitionStopTimeout
+    , fmap (("SystemControls",) . toJSON) _eCSTaskDefinitionContainerDefinitionSystemControls
     , fmap (("Ulimits",) . toJSON) _eCSTaskDefinitionContainerDefinitionUlimits
     , fmap (("User",) . toJSON) _eCSTaskDefinitionContainerDefinitionUser
     , fmap (("VolumesFrom",) . toJSON) _eCSTaskDefinitionContainerDefinitionVolumesFrom
@@ -125,6 +132,7 @@
   , _eCSTaskDefinitionContainerDefinitionHealthCheck = Nothing
   , _eCSTaskDefinitionContainerDefinitionHostname = Nothing
   , _eCSTaskDefinitionContainerDefinitionImage = imagearg
+  , _eCSTaskDefinitionContainerDefinitionInteractive = Nothing
   , _eCSTaskDefinitionContainerDefinitionLinks = Nothing
   , _eCSTaskDefinitionContainerDefinitionLinuxParameters = Nothing
   , _eCSTaskDefinitionContainerDefinitionLogConfiguration = Nothing
@@ -134,12 +142,14 @@
   , _eCSTaskDefinitionContainerDefinitionName = namearg
   , _eCSTaskDefinitionContainerDefinitionPortMappings = Nothing
   , _eCSTaskDefinitionContainerDefinitionPrivileged = Nothing
+  , _eCSTaskDefinitionContainerDefinitionPseudoTerminal = Nothing
   , _eCSTaskDefinitionContainerDefinitionReadonlyRootFilesystem = Nothing
   , _eCSTaskDefinitionContainerDefinitionRepositoryCredentials = Nothing
   , _eCSTaskDefinitionContainerDefinitionResourceRequirements = Nothing
   , _eCSTaskDefinitionContainerDefinitionSecrets = Nothing
   , _eCSTaskDefinitionContainerDefinitionStartTimeout = Nothing
   , _eCSTaskDefinitionContainerDefinitionStopTimeout = Nothing
+  , _eCSTaskDefinitionContainerDefinitionSystemControls = Nothing
   , _eCSTaskDefinitionContainerDefinitionUlimits = Nothing
   , _eCSTaskDefinitionContainerDefinitionUser = Nothing
   , _eCSTaskDefinitionContainerDefinitionVolumesFrom = Nothing
@@ -206,6 +216,10 @@
 ecstdcdImage :: Lens' ECSTaskDefinitionContainerDefinition (Val Text)
 ecstdcdImage = lens _eCSTaskDefinitionContainerDefinitionImage (\s a -> s { _eCSTaskDefinitionContainerDefinitionImage = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-interactive
+ecstdcdInteractive :: Lens' ECSTaskDefinitionContainerDefinition (Maybe (Val Bool))
+ecstdcdInteractive = lens _eCSTaskDefinitionContainerDefinitionInteractive (\s a -> s { _eCSTaskDefinitionContainerDefinitionInteractive = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-links
 ecstdcdLinks :: Lens' ECSTaskDefinitionContainerDefinition (Maybe (ValList Text))
 ecstdcdLinks = lens _eCSTaskDefinitionContainerDefinitionLinks (\s a -> s { _eCSTaskDefinitionContainerDefinitionLinks = a })
@@ -242,6 +256,10 @@
 ecstdcdPrivileged :: Lens' ECSTaskDefinitionContainerDefinition (Maybe (Val Bool))
 ecstdcdPrivileged = lens _eCSTaskDefinitionContainerDefinitionPrivileged (\s a -> s { _eCSTaskDefinitionContainerDefinitionPrivileged = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-pseudoterminal
+ecstdcdPseudoTerminal :: Lens' ECSTaskDefinitionContainerDefinition (Maybe (Val Bool))
+ecstdcdPseudoTerminal = lens _eCSTaskDefinitionContainerDefinitionPseudoTerminal (\s a -> s { _eCSTaskDefinitionContainerDefinitionPseudoTerminal = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-readonlyrootfilesystem
 ecstdcdReadonlyRootFilesystem :: Lens' ECSTaskDefinitionContainerDefinition (Maybe (Val Bool))
 ecstdcdReadonlyRootFilesystem = lens _eCSTaskDefinitionContainerDefinitionReadonlyRootFilesystem (\s a -> s { _eCSTaskDefinitionContainerDefinitionReadonlyRootFilesystem = a })
@@ -265,6 +283,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-stoptimeout
 ecstdcdStopTimeout :: Lens' ECSTaskDefinitionContainerDefinition (Maybe (Val Integer))
 ecstdcdStopTimeout = lens _eCSTaskDefinitionContainerDefinitionStopTimeout (\s a -> s { _eCSTaskDefinitionContainerDefinitionStopTimeout = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-systemcontrols
+ecstdcdSystemControls :: Lens' ECSTaskDefinitionContainerDefinition (Maybe [ECSTaskDefinitionSystemControl])
+ecstdcdSystemControls = lens _eCSTaskDefinitionContainerDefinitionSystemControls (\s a -> s { _eCSTaskDefinitionContainerDefinitionSystemControls = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-ulimits
 ecstdcdUlimits :: Lens' ECSTaskDefinitionContainerDefinition (Maybe [ECSTaskDefinitionUlimit])
diff --git a/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionLogConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionLogConfiguration.hs
--- a/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionLogConfiguration.hs
+++ b/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionLogConfiguration.hs
@@ -8,7 +8,7 @@
 module Stratosphere.ResourceProperties.ECSTaskDefinitionLogConfiguration where
 
 import Stratosphere.ResourceImports
-
+import Stratosphere.ResourceProperties.ECSTaskDefinitionSecret
 
 -- | Full data type definition for ECSTaskDefinitionLogConfiguration. See
 -- 'ecsTaskDefinitionLogConfiguration' for a more convenient constructor.
@@ -16,6 +16,7 @@
   ECSTaskDefinitionLogConfiguration
   { _eCSTaskDefinitionLogConfigurationLogDriver :: Val Text
   , _eCSTaskDefinitionLogConfigurationOptions :: Maybe Object
+  , _eCSTaskDefinitionLogConfigurationSecretOptions :: Maybe [ECSTaskDefinitionSecret]
   } deriving (Show, Eq)
 
 instance ToJSON ECSTaskDefinitionLogConfiguration where
@@ -24,6 +25,7 @@
     catMaybes
     [ (Just . ("LogDriver",) . toJSON) _eCSTaskDefinitionLogConfigurationLogDriver
     , fmap (("Options",) . toJSON) _eCSTaskDefinitionLogConfigurationOptions
+    , fmap (("SecretOptions",) . toJSON) _eCSTaskDefinitionLogConfigurationSecretOptions
     ]
 
 -- | Constructor for 'ECSTaskDefinitionLogConfiguration' containing required
@@ -35,6 +37,7 @@
   ECSTaskDefinitionLogConfiguration
   { _eCSTaskDefinitionLogConfigurationLogDriver = logDriverarg
   , _eCSTaskDefinitionLogConfigurationOptions = Nothing
+  , _eCSTaskDefinitionLogConfigurationSecretOptions = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-logconfiguration.html#cfn-ecs-taskdefinition-containerdefinition-logconfiguration-logdriver
@@ -44,3 +47,7 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-logconfiguration.html#cfn-ecs-taskdefinition-containerdefinition-logconfiguration-options
 ecstdlcOptions :: Lens' ECSTaskDefinitionLogConfiguration (Maybe Object)
 ecstdlcOptions = lens _eCSTaskDefinitionLogConfigurationOptions (\s a -> s { _eCSTaskDefinitionLogConfigurationOptions = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-logconfiguration.html#cfn-ecs-taskdefinition-logconfiguration-secretoptions
+ecstdlcSecretOptions :: Lens' ECSTaskDefinitionLogConfiguration (Maybe [ECSTaskDefinitionSecret])
+ecstdlcSecretOptions = lens _eCSTaskDefinitionLogConfigurationSecretOptions (\s a -> s { _eCSTaskDefinitionLogConfigurationSecretOptions = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionSystemControl.hs b/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionSystemControl.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionSystemControl.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-systemcontrol.html
+
+module Stratosphere.ResourceProperties.ECSTaskDefinitionSystemControl where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for ECSTaskDefinitionSystemControl. See
+-- 'ecsTaskDefinitionSystemControl' for a more convenient constructor.
+data ECSTaskDefinitionSystemControl =
+  ECSTaskDefinitionSystemControl
+  { _eCSTaskDefinitionSystemControlNamespace :: Val Text
+  , _eCSTaskDefinitionSystemControlValue :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON ECSTaskDefinitionSystemControl where
+  toJSON ECSTaskDefinitionSystemControl{..} =
+    object $
+    catMaybes
+    [ (Just . ("Namespace",) . toJSON) _eCSTaskDefinitionSystemControlNamespace
+    , (Just . ("Value",) . toJSON) _eCSTaskDefinitionSystemControlValue
+    ]
+
+-- | Constructor for 'ECSTaskDefinitionSystemControl' containing required
+-- fields as arguments.
+ecsTaskDefinitionSystemControl
+  :: Val Text -- ^ 'ecstdscNamespace'
+  -> Val Text -- ^ 'ecstdscValue'
+  -> ECSTaskDefinitionSystemControl
+ecsTaskDefinitionSystemControl namespacearg valuearg =
+  ECSTaskDefinitionSystemControl
+  { _eCSTaskDefinitionSystemControlNamespace = namespacearg
+  , _eCSTaskDefinitionSystemControlValue = valuearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-systemcontrol.html#cfn-ecs-taskdefinition-systemcontrol-namespace
+ecstdscNamespace :: Lens' ECSTaskDefinitionSystemControl (Val Text)
+ecstdscNamespace = lens _eCSTaskDefinitionSystemControlNamespace (\s a -> s { _eCSTaskDefinitionSystemControlNamespace = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-systemcontrol.html#cfn-ecs-taskdefinition-systemcontrol-value
+ecstdscValue :: Lens' ECSTaskDefinitionSystemControl (Val Text)
+ecstdscValue = lens _eCSTaskDefinitionSystemControlValue (\s a -> s { _eCSTaskDefinitionSystemControlValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionTmpfs.hs b/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionTmpfs.hs
--- a/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionTmpfs.hs
+++ b/library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionTmpfs.hs
@@ -16,7 +16,7 @@
   ECSTaskDefinitionTmpfs
   { _eCSTaskDefinitionTmpfsContainerPath :: Maybe (Val Text)
   , _eCSTaskDefinitionTmpfsMountOptions :: Maybe (ValList Text)
-  , _eCSTaskDefinitionTmpfsSize :: Maybe (Val Integer)
+  , _eCSTaskDefinitionTmpfsSize :: Val Integer
   } deriving (Show, Eq)
 
 instance ToJSON ECSTaskDefinitionTmpfs where
@@ -25,18 +25,19 @@
     catMaybes
     [ fmap (("ContainerPath",) . toJSON) _eCSTaskDefinitionTmpfsContainerPath
     , fmap (("MountOptions",) . toJSON) _eCSTaskDefinitionTmpfsMountOptions
-    , fmap (("Size",) . toJSON) _eCSTaskDefinitionTmpfsSize
+    , (Just . ("Size",) . toJSON) _eCSTaskDefinitionTmpfsSize
     ]
 
 -- | Constructor for 'ECSTaskDefinitionTmpfs' containing required fields as
 -- arguments.
 ecsTaskDefinitionTmpfs
-  :: ECSTaskDefinitionTmpfs
-ecsTaskDefinitionTmpfs  =
+  :: Val Integer -- ^ 'ecstdtSize'
+  -> ECSTaskDefinitionTmpfs
+ecsTaskDefinitionTmpfs sizearg =
   ECSTaskDefinitionTmpfs
   { _eCSTaskDefinitionTmpfsContainerPath = Nothing
   , _eCSTaskDefinitionTmpfsMountOptions = Nothing
-  , _eCSTaskDefinitionTmpfsSize = Nothing
+  , _eCSTaskDefinitionTmpfsSize = sizearg
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-tmpfs.html#cfn-ecs-taskdefinition-tmpfs-containerpath
@@ -48,5 +49,5 @@
 ecstdtMountOptions = lens _eCSTaskDefinitionTmpfsMountOptions (\s a -> s { _eCSTaskDefinitionTmpfsMountOptions = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-tmpfs.html#cfn-ecs-taskdefinition-tmpfs-size
-ecstdtSize :: Lens' ECSTaskDefinitionTmpfs (Maybe (Val Integer))
+ecstdtSize :: Lens' ECSTaskDefinitionTmpfs (Val Integer)
 ecstdtSize = lens _eCSTaskDefinitionTmpfsSize (\s a -> s { _eCSTaskDefinitionTmpfsSize = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EventsRuleAwsVpcConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/EventsRuleAwsVpcConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EventsRuleAwsVpcConfiguration.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-awsvpcconfiguration.html
+
+module Stratosphere.ResourceProperties.EventsRuleAwsVpcConfiguration where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for EventsRuleAwsVpcConfiguration. See
+-- 'eventsRuleAwsVpcConfiguration' for a more convenient constructor.
+data EventsRuleAwsVpcConfiguration =
+  EventsRuleAwsVpcConfiguration
+  { _eventsRuleAwsVpcConfigurationAssignPublicIp :: Maybe (Val Text)
+  , _eventsRuleAwsVpcConfigurationSecurityGroups :: Maybe (ValList Text)
+  , _eventsRuleAwsVpcConfigurationSubnets :: ValList Text
+  } deriving (Show, Eq)
+
+instance ToJSON EventsRuleAwsVpcConfiguration where
+  toJSON EventsRuleAwsVpcConfiguration{..} =
+    object $
+    catMaybes
+    [ fmap (("AssignPublicIp",) . toJSON) _eventsRuleAwsVpcConfigurationAssignPublicIp
+    , fmap (("SecurityGroups",) . toJSON) _eventsRuleAwsVpcConfigurationSecurityGroups
+    , (Just . ("Subnets",) . toJSON) _eventsRuleAwsVpcConfigurationSubnets
+    ]
+
+-- | Constructor for 'EventsRuleAwsVpcConfiguration' containing required
+-- fields as arguments.
+eventsRuleAwsVpcConfiguration
+  :: ValList Text -- ^ 'eravcSubnets'
+  -> EventsRuleAwsVpcConfiguration
+eventsRuleAwsVpcConfiguration subnetsarg =
+  EventsRuleAwsVpcConfiguration
+  { _eventsRuleAwsVpcConfigurationAssignPublicIp = Nothing
+  , _eventsRuleAwsVpcConfigurationSecurityGroups = Nothing
+  , _eventsRuleAwsVpcConfigurationSubnets = subnetsarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-awsvpcconfiguration.html#cfn-events-rule-awsvpcconfiguration-assignpublicip
+eravcAssignPublicIp :: Lens' EventsRuleAwsVpcConfiguration (Maybe (Val Text))
+eravcAssignPublicIp = lens _eventsRuleAwsVpcConfigurationAssignPublicIp (\s a -> s { _eventsRuleAwsVpcConfigurationAssignPublicIp = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-awsvpcconfiguration.html#cfn-events-rule-awsvpcconfiguration-securitygroups
+eravcSecurityGroups :: Lens' EventsRuleAwsVpcConfiguration (Maybe (ValList Text))
+eravcSecurityGroups = lens _eventsRuleAwsVpcConfigurationSecurityGroups (\s a -> s { _eventsRuleAwsVpcConfigurationSecurityGroups = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-awsvpcconfiguration.html#cfn-events-rule-awsvpcconfiguration-subnets
+eravcSubnets :: Lens' EventsRuleAwsVpcConfiguration (ValList Text)
+eravcSubnets = lens _eventsRuleAwsVpcConfigurationSubnets (\s a -> s { _eventsRuleAwsVpcConfigurationSubnets = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EventsRuleEcsParameters.hs b/library-gen/Stratosphere/ResourceProperties/EventsRuleEcsParameters.hs
--- a/library-gen/Stratosphere/ResourceProperties/EventsRuleEcsParameters.hs
+++ b/library-gen/Stratosphere/ResourceProperties/EventsRuleEcsParameters.hs
@@ -8,13 +8,17 @@
 module Stratosphere.ResourceProperties.EventsRuleEcsParameters where
 
 import Stratosphere.ResourceImports
-
+import Stratosphere.ResourceProperties.EventsRuleNetworkConfiguration
 
 -- | Full data type definition for EventsRuleEcsParameters. See
 -- 'eventsRuleEcsParameters' for a more convenient constructor.
 data EventsRuleEcsParameters =
   EventsRuleEcsParameters
-  { _eventsRuleEcsParametersTaskCount :: Maybe (Val Integer)
+  { _eventsRuleEcsParametersGroup :: Maybe (Val Text)
+  , _eventsRuleEcsParametersLaunchType :: Maybe (Val Text)
+  , _eventsRuleEcsParametersNetworkConfiguration :: Maybe EventsRuleNetworkConfiguration
+  , _eventsRuleEcsParametersPlatformVersion :: Maybe (Val Text)
+  , _eventsRuleEcsParametersTaskCount :: Maybe (Val Integer)
   , _eventsRuleEcsParametersTaskDefinitionArn :: Val Text
   } deriving (Show, Eq)
 
@@ -22,7 +26,11 @@
   toJSON EventsRuleEcsParameters{..} =
     object $
     catMaybes
-    [ fmap (("TaskCount",) . toJSON) _eventsRuleEcsParametersTaskCount
+    [ fmap (("Group",) . toJSON) _eventsRuleEcsParametersGroup
+    , fmap (("LaunchType",) . toJSON) _eventsRuleEcsParametersLaunchType
+    , fmap (("NetworkConfiguration",) . toJSON) _eventsRuleEcsParametersNetworkConfiguration
+    , fmap (("PlatformVersion",) . toJSON) _eventsRuleEcsParametersPlatformVersion
+    , fmap (("TaskCount",) . toJSON) _eventsRuleEcsParametersTaskCount
     , (Just . ("TaskDefinitionArn",) . toJSON) _eventsRuleEcsParametersTaskDefinitionArn
     ]
 
@@ -33,9 +41,29 @@
   -> EventsRuleEcsParameters
 eventsRuleEcsParameters taskDefinitionArnarg =
   EventsRuleEcsParameters
-  { _eventsRuleEcsParametersTaskCount = Nothing
+  { _eventsRuleEcsParametersGroup = Nothing
+  , _eventsRuleEcsParametersLaunchType = Nothing
+  , _eventsRuleEcsParametersNetworkConfiguration = Nothing
+  , _eventsRuleEcsParametersPlatformVersion = Nothing
+  , _eventsRuleEcsParametersTaskCount = Nothing
   , _eventsRuleEcsParametersTaskDefinitionArn = taskDefinitionArnarg
   }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-group
+erepGroup :: Lens' EventsRuleEcsParameters (Maybe (Val Text))
+erepGroup = lens _eventsRuleEcsParametersGroup (\s a -> s { _eventsRuleEcsParametersGroup = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-launchtype
+erepLaunchType :: Lens' EventsRuleEcsParameters (Maybe (Val Text))
+erepLaunchType = lens _eventsRuleEcsParametersLaunchType (\s a -> s { _eventsRuleEcsParametersLaunchType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-networkconfiguration
+erepNetworkConfiguration :: Lens' EventsRuleEcsParameters (Maybe EventsRuleNetworkConfiguration)
+erepNetworkConfiguration = lens _eventsRuleEcsParametersNetworkConfiguration (\s a -> s { _eventsRuleEcsParametersNetworkConfiguration = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-platformversion
+erepPlatformVersion :: Lens' EventsRuleEcsParameters (Maybe (Val Text))
+erepPlatformVersion = lens _eventsRuleEcsParametersPlatformVersion (\s a -> s { _eventsRuleEcsParametersPlatformVersion = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-taskcount
 erepTaskCount :: Lens' EventsRuleEcsParameters (Maybe (Val Integer))
diff --git a/library-gen/Stratosphere/ResourceProperties/EventsRuleNetworkConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/EventsRuleNetworkConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EventsRuleNetworkConfiguration.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-networkconfiguration.html
+
+module Stratosphere.ResourceProperties.EventsRuleNetworkConfiguration where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.EventsRuleAwsVpcConfiguration
+
+-- | Full data type definition for EventsRuleNetworkConfiguration. See
+-- 'eventsRuleNetworkConfiguration' for a more convenient constructor.
+data EventsRuleNetworkConfiguration =
+  EventsRuleNetworkConfiguration
+  { _eventsRuleNetworkConfigurationAwsVpcConfiguration :: Maybe EventsRuleAwsVpcConfiguration
+  } deriving (Show, Eq)
+
+instance ToJSON EventsRuleNetworkConfiguration where
+  toJSON EventsRuleNetworkConfiguration{..} =
+    object $
+    catMaybes
+    [ fmap (("AwsVpcConfiguration",) . toJSON) _eventsRuleNetworkConfigurationAwsVpcConfiguration
+    ]
+
+-- | Constructor for 'EventsRuleNetworkConfiguration' containing required
+-- fields as arguments.
+eventsRuleNetworkConfiguration
+  :: EventsRuleNetworkConfiguration
+eventsRuleNetworkConfiguration  =
+  EventsRuleNetworkConfiguration
+  { _eventsRuleNetworkConfigurationAwsVpcConfiguration = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-networkconfiguration.html#cfn-events-rule-networkconfiguration-awsvpcconfiguration
+erncAwsVpcConfiguration :: Lens' EventsRuleNetworkConfiguration (Maybe EventsRuleAwsVpcConfiguration)
+erncAwsVpcConfiguration = lens _eventsRuleNetworkConfigurationAwsVpcConfiguration (\s a -> s { _eventsRuleNetworkConfigurationAwsVpcConfiguration = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTAnalyticsChannelChannelStorage.hs b/library-gen/Stratosphere/ResourceProperties/IoTAnalyticsChannelChannelStorage.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/IoTAnalyticsChannelChannelStorage.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-channelstorage.html
+
+module Stratosphere.ResourceProperties.IoTAnalyticsChannelChannelStorage where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.IoTAnalyticsChannelCustomerManagedS3
+import Stratosphere.ResourceProperties.IoTAnalyticsChannelServiceManagedS3
+
+-- | Full data type definition for IoTAnalyticsChannelChannelStorage. See
+-- 'ioTAnalyticsChannelChannelStorage' for a more convenient constructor.
+data IoTAnalyticsChannelChannelStorage =
+  IoTAnalyticsChannelChannelStorage
+  { _ioTAnalyticsChannelChannelStorageCustomerManagedS3 :: Maybe IoTAnalyticsChannelCustomerManagedS3
+  , _ioTAnalyticsChannelChannelStorageServiceManagedS3 :: Maybe IoTAnalyticsChannelServiceManagedS3
+  } deriving (Show, Eq)
+
+instance ToJSON IoTAnalyticsChannelChannelStorage where
+  toJSON IoTAnalyticsChannelChannelStorage{..} =
+    object $
+    catMaybes
+    [ fmap (("CustomerManagedS3",) . toJSON) _ioTAnalyticsChannelChannelStorageCustomerManagedS3
+    , fmap (("ServiceManagedS3",) . toJSON) _ioTAnalyticsChannelChannelStorageServiceManagedS3
+    ]
+
+-- | Constructor for 'IoTAnalyticsChannelChannelStorage' containing required
+-- fields as arguments.
+ioTAnalyticsChannelChannelStorage
+  :: IoTAnalyticsChannelChannelStorage
+ioTAnalyticsChannelChannelStorage  =
+  IoTAnalyticsChannelChannelStorage
+  { _ioTAnalyticsChannelChannelStorageCustomerManagedS3 = Nothing
+  , _ioTAnalyticsChannelChannelStorageServiceManagedS3 = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-channelstorage.html#cfn-iotanalytics-channel-channelstorage-customermanageds3
+itaccsCustomerManagedS3 :: Lens' IoTAnalyticsChannelChannelStorage (Maybe IoTAnalyticsChannelCustomerManagedS3)
+itaccsCustomerManagedS3 = lens _ioTAnalyticsChannelChannelStorageCustomerManagedS3 (\s a -> s { _ioTAnalyticsChannelChannelStorageCustomerManagedS3 = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-channelstorage.html#cfn-iotanalytics-channel-channelstorage-servicemanageds3
+itaccsServiceManagedS3 :: Lens' IoTAnalyticsChannelChannelStorage (Maybe IoTAnalyticsChannelServiceManagedS3)
+itaccsServiceManagedS3 = lens _ioTAnalyticsChannelChannelStorageServiceManagedS3 (\s a -> s { _ioTAnalyticsChannelChannelStorageServiceManagedS3 = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTAnalyticsChannelCustomerManagedS3.hs b/library-gen/Stratosphere/ResourceProperties/IoTAnalyticsChannelCustomerManagedS3.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/IoTAnalyticsChannelCustomerManagedS3.hs
@@ -0,0 +1,54 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-customermanageds3.html
+
+module Stratosphere.ResourceProperties.IoTAnalyticsChannelCustomerManagedS3 where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for IoTAnalyticsChannelCustomerManagedS3. See
+-- 'ioTAnalyticsChannelCustomerManagedS3' for a more convenient constructor.
+data IoTAnalyticsChannelCustomerManagedS3 =
+  IoTAnalyticsChannelCustomerManagedS3
+  { _ioTAnalyticsChannelCustomerManagedS3Bucket :: Val Text
+  , _ioTAnalyticsChannelCustomerManagedS3KeyPrefix :: Maybe (Val Text)
+  , _ioTAnalyticsChannelCustomerManagedS3RoleArn :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON IoTAnalyticsChannelCustomerManagedS3 where
+  toJSON IoTAnalyticsChannelCustomerManagedS3{..} =
+    object $
+    catMaybes
+    [ (Just . ("Bucket",) . toJSON) _ioTAnalyticsChannelCustomerManagedS3Bucket
+    , fmap (("KeyPrefix",) . toJSON) _ioTAnalyticsChannelCustomerManagedS3KeyPrefix
+    , (Just . ("RoleArn",) . toJSON) _ioTAnalyticsChannelCustomerManagedS3RoleArn
+    ]
+
+-- | Constructor for 'IoTAnalyticsChannelCustomerManagedS3' containing
+-- required fields as arguments.
+ioTAnalyticsChannelCustomerManagedS3
+  :: Val Text -- ^ 'itaccmsBucket'
+  -> Val Text -- ^ 'itaccmsRoleArn'
+  -> IoTAnalyticsChannelCustomerManagedS3
+ioTAnalyticsChannelCustomerManagedS3 bucketarg roleArnarg =
+  IoTAnalyticsChannelCustomerManagedS3
+  { _ioTAnalyticsChannelCustomerManagedS3Bucket = bucketarg
+  , _ioTAnalyticsChannelCustomerManagedS3KeyPrefix = Nothing
+  , _ioTAnalyticsChannelCustomerManagedS3RoleArn = roleArnarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-customermanageds3.html#cfn-iotanalytics-channel-customermanageds3-bucket
+itaccmsBucket :: Lens' IoTAnalyticsChannelCustomerManagedS3 (Val Text)
+itaccmsBucket = lens _ioTAnalyticsChannelCustomerManagedS3Bucket (\s a -> s { _ioTAnalyticsChannelCustomerManagedS3Bucket = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-customermanageds3.html#cfn-iotanalytics-channel-customermanageds3-keyprefix
+itaccmsKeyPrefix :: Lens' IoTAnalyticsChannelCustomerManagedS3 (Maybe (Val Text))
+itaccmsKeyPrefix = lens _ioTAnalyticsChannelCustomerManagedS3KeyPrefix (\s a -> s { _ioTAnalyticsChannelCustomerManagedS3KeyPrefix = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-customermanageds3.html#cfn-iotanalytics-channel-customermanageds3-rolearn
+itaccmsRoleArn :: Lens' IoTAnalyticsChannelCustomerManagedS3 (Val Text)
+itaccmsRoleArn = lens _ioTAnalyticsChannelCustomerManagedS3RoleArn (\s a -> s { _ioTAnalyticsChannelCustomerManagedS3RoleArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTAnalyticsChannelServiceManagedS3.hs b/library-gen/Stratosphere/ResourceProperties/IoTAnalyticsChannelServiceManagedS3.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/IoTAnalyticsChannelServiceManagedS3.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-servicemanageds3.html
+
+module Stratosphere.ResourceProperties.IoTAnalyticsChannelServiceManagedS3 where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for IoTAnalyticsChannelServiceManagedS3. See
+-- 'ioTAnalyticsChannelServiceManagedS3' for a more convenient constructor.
+data IoTAnalyticsChannelServiceManagedS3 =
+  IoTAnalyticsChannelServiceManagedS3
+  { 
+  } deriving (Show, Eq)
+
+instance ToJSON IoTAnalyticsChannelServiceManagedS3 where
+  toJSON _ = toJSON ([] :: [String])
+
+-- | Constructor for 'IoTAnalyticsChannelServiceManagedS3' containing required
+-- fields as arguments.
+ioTAnalyticsChannelServiceManagedS3
+  :: IoTAnalyticsChannelServiceManagedS3
+ioTAnalyticsChannelServiceManagedS3  =
+  IoTAnalyticsChannelServiceManagedS3
+  { 
+  }
+
+
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTAnalyticsDatastoreCustomerManagedS3.hs b/library-gen/Stratosphere/ResourceProperties/IoTAnalyticsDatastoreCustomerManagedS3.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/IoTAnalyticsDatastoreCustomerManagedS3.hs
@@ -0,0 +1,55 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-customermanageds3.html
+
+module Stratosphere.ResourceProperties.IoTAnalyticsDatastoreCustomerManagedS3 where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for IoTAnalyticsDatastoreCustomerManagedS3. See
+-- 'ioTAnalyticsDatastoreCustomerManagedS3' for a more convenient
+-- constructor.
+data IoTAnalyticsDatastoreCustomerManagedS3 =
+  IoTAnalyticsDatastoreCustomerManagedS3
+  { _ioTAnalyticsDatastoreCustomerManagedS3Bucket :: Val Text
+  , _ioTAnalyticsDatastoreCustomerManagedS3KeyPrefix :: Maybe (Val Text)
+  , _ioTAnalyticsDatastoreCustomerManagedS3RoleArn :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON IoTAnalyticsDatastoreCustomerManagedS3 where
+  toJSON IoTAnalyticsDatastoreCustomerManagedS3{..} =
+    object $
+    catMaybes
+    [ (Just . ("Bucket",) . toJSON) _ioTAnalyticsDatastoreCustomerManagedS3Bucket
+    , fmap (("KeyPrefix",) . toJSON) _ioTAnalyticsDatastoreCustomerManagedS3KeyPrefix
+    , (Just . ("RoleArn",) . toJSON) _ioTAnalyticsDatastoreCustomerManagedS3RoleArn
+    ]
+
+-- | Constructor for 'IoTAnalyticsDatastoreCustomerManagedS3' containing
+-- required fields as arguments.
+ioTAnalyticsDatastoreCustomerManagedS3
+  :: Val Text -- ^ 'itadcmsBucket'
+  -> Val Text -- ^ 'itadcmsRoleArn'
+  -> IoTAnalyticsDatastoreCustomerManagedS3
+ioTAnalyticsDatastoreCustomerManagedS3 bucketarg roleArnarg =
+  IoTAnalyticsDatastoreCustomerManagedS3
+  { _ioTAnalyticsDatastoreCustomerManagedS3Bucket = bucketarg
+  , _ioTAnalyticsDatastoreCustomerManagedS3KeyPrefix = Nothing
+  , _ioTAnalyticsDatastoreCustomerManagedS3RoleArn = roleArnarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-customermanageds3.html#cfn-iotanalytics-datastore-customermanageds3-bucket
+itadcmsBucket :: Lens' IoTAnalyticsDatastoreCustomerManagedS3 (Val Text)
+itadcmsBucket = lens _ioTAnalyticsDatastoreCustomerManagedS3Bucket (\s a -> s { _ioTAnalyticsDatastoreCustomerManagedS3Bucket = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-customermanageds3.html#cfn-iotanalytics-datastore-customermanageds3-keyprefix
+itadcmsKeyPrefix :: Lens' IoTAnalyticsDatastoreCustomerManagedS3 (Maybe (Val Text))
+itadcmsKeyPrefix = lens _ioTAnalyticsDatastoreCustomerManagedS3KeyPrefix (\s a -> s { _ioTAnalyticsDatastoreCustomerManagedS3KeyPrefix = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-customermanageds3.html#cfn-iotanalytics-datastore-customermanageds3-rolearn
+itadcmsRoleArn :: Lens' IoTAnalyticsDatastoreCustomerManagedS3 (Val Text)
+itadcmsRoleArn = lens _ioTAnalyticsDatastoreCustomerManagedS3RoleArn (\s a -> s { _ioTAnalyticsDatastoreCustomerManagedS3RoleArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTAnalyticsDatastoreDatastoreStorage.hs b/library-gen/Stratosphere/ResourceProperties/IoTAnalyticsDatastoreDatastoreStorage.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/IoTAnalyticsDatastoreDatastoreStorage.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorestorage.html
+
+module Stratosphere.ResourceProperties.IoTAnalyticsDatastoreDatastoreStorage where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.IoTAnalyticsDatastoreCustomerManagedS3
+import Stratosphere.ResourceProperties.IoTAnalyticsDatastoreServiceManagedS3
+
+-- | Full data type definition for IoTAnalyticsDatastoreDatastoreStorage. See
+-- 'ioTAnalyticsDatastoreDatastoreStorage' for a more convenient
+-- constructor.
+data IoTAnalyticsDatastoreDatastoreStorage =
+  IoTAnalyticsDatastoreDatastoreStorage
+  { _ioTAnalyticsDatastoreDatastoreStorageCustomerManagedS3 :: Maybe IoTAnalyticsDatastoreCustomerManagedS3
+  , _ioTAnalyticsDatastoreDatastoreStorageServiceManagedS3 :: Maybe IoTAnalyticsDatastoreServiceManagedS3
+  } deriving (Show, Eq)
+
+instance ToJSON IoTAnalyticsDatastoreDatastoreStorage where
+  toJSON IoTAnalyticsDatastoreDatastoreStorage{..} =
+    object $
+    catMaybes
+    [ fmap (("CustomerManagedS3",) . toJSON) _ioTAnalyticsDatastoreDatastoreStorageCustomerManagedS3
+    , fmap (("ServiceManagedS3",) . toJSON) _ioTAnalyticsDatastoreDatastoreStorageServiceManagedS3
+    ]
+
+-- | Constructor for 'IoTAnalyticsDatastoreDatastoreStorage' containing
+-- required fields as arguments.
+ioTAnalyticsDatastoreDatastoreStorage
+  :: IoTAnalyticsDatastoreDatastoreStorage
+ioTAnalyticsDatastoreDatastoreStorage  =
+  IoTAnalyticsDatastoreDatastoreStorage
+  { _ioTAnalyticsDatastoreDatastoreStorageCustomerManagedS3 = Nothing
+  , _ioTAnalyticsDatastoreDatastoreStorageServiceManagedS3 = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorestorage.html#cfn-iotanalytics-datastore-datastorestorage-customermanageds3
+itaddsCustomerManagedS3 :: Lens' IoTAnalyticsDatastoreDatastoreStorage (Maybe IoTAnalyticsDatastoreCustomerManagedS3)
+itaddsCustomerManagedS3 = lens _ioTAnalyticsDatastoreDatastoreStorageCustomerManagedS3 (\s a -> s { _ioTAnalyticsDatastoreDatastoreStorageCustomerManagedS3 = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorestorage.html#cfn-iotanalytics-datastore-datastorestorage-servicemanageds3
+itaddsServiceManagedS3 :: Lens' IoTAnalyticsDatastoreDatastoreStorage (Maybe IoTAnalyticsDatastoreServiceManagedS3)
+itaddsServiceManagedS3 = lens _ioTAnalyticsDatastoreDatastoreStorageServiceManagedS3 (\s a -> s { _ioTAnalyticsDatastoreDatastoreStorageServiceManagedS3 = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/IoTAnalyticsDatastoreServiceManagedS3.hs b/library-gen/Stratosphere/ResourceProperties/IoTAnalyticsDatastoreServiceManagedS3.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/IoTAnalyticsDatastoreServiceManagedS3.hs
@@ -0,0 +1,33 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-servicemanageds3.html
+
+module Stratosphere.ResourceProperties.IoTAnalyticsDatastoreServiceManagedS3 where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for IoTAnalyticsDatastoreServiceManagedS3. See
+-- 'ioTAnalyticsDatastoreServiceManagedS3' for a more convenient
+-- constructor.
+data IoTAnalyticsDatastoreServiceManagedS3 =
+  IoTAnalyticsDatastoreServiceManagedS3
+  { 
+  } deriving (Show, Eq)
+
+instance ToJSON IoTAnalyticsDatastoreServiceManagedS3 where
+  toJSON _ = toJSON ([] :: [String])
+
+-- | Constructor for 'IoTAnalyticsDatastoreServiceManagedS3' containing
+-- required fields as arguments.
+ioTAnalyticsDatastoreServiceManagedS3
+  :: IoTAnalyticsDatastoreServiceManagedS3
+ioTAnalyticsDatastoreServiceManagedS3  =
+  IoTAnalyticsDatastoreServiceManagedS3
+  { 
+  }
+
+
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelAribSourceSettings.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelAribSourceSettings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelAribSourceSettings.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aribsourcesettings.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelAribSourceSettings where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for MediaLiveChannelAribSourceSettings. See
+-- 'mediaLiveChannelAribSourceSettings' for a more convenient constructor.
+data MediaLiveChannelAribSourceSettings =
+  MediaLiveChannelAribSourceSettings
+  { 
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelAribSourceSettings where
+  toJSON _ = toJSON ([] :: [String])
+
+-- | Constructor for 'MediaLiveChannelAribSourceSettings' containing required
+-- fields as arguments.
+mediaLiveChannelAribSourceSettings
+  :: MediaLiveChannelAribSourceSettings
+mediaLiveChannelAribSourceSettings  =
+  MediaLiveChannelAribSourceSettings
+  { 
+  }
+
+
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelAudioLanguageSelection.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelAudioLanguageSelection.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelAudioLanguageSelection.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiolanguageselection.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelAudioLanguageSelection where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for MediaLiveChannelAudioLanguageSelection. See
+-- 'mediaLiveChannelAudioLanguageSelection' for a more convenient
+-- constructor.
+data MediaLiveChannelAudioLanguageSelection =
+  MediaLiveChannelAudioLanguageSelection
+  { _mediaLiveChannelAudioLanguageSelectionLanguageCode :: Maybe (Val Text)
+  , _mediaLiveChannelAudioLanguageSelectionLanguageSelectionPolicy :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelAudioLanguageSelection where
+  toJSON MediaLiveChannelAudioLanguageSelection{..} =
+    object $
+    catMaybes
+    [ fmap (("LanguageCode",) . toJSON) _mediaLiveChannelAudioLanguageSelectionLanguageCode
+    , fmap (("LanguageSelectionPolicy",) . toJSON) _mediaLiveChannelAudioLanguageSelectionLanguageSelectionPolicy
+    ]
+
+-- | Constructor for 'MediaLiveChannelAudioLanguageSelection' containing
+-- required fields as arguments.
+mediaLiveChannelAudioLanguageSelection
+  :: MediaLiveChannelAudioLanguageSelection
+mediaLiveChannelAudioLanguageSelection  =
+  MediaLiveChannelAudioLanguageSelection
+  { _mediaLiveChannelAudioLanguageSelectionLanguageCode = Nothing
+  , _mediaLiveChannelAudioLanguageSelectionLanguageSelectionPolicy = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiolanguageselection.html#cfn-medialive-channel-audiolanguageselection-languagecode
+mlcalsLanguageCode :: Lens' MediaLiveChannelAudioLanguageSelection (Maybe (Val Text))
+mlcalsLanguageCode = lens _mediaLiveChannelAudioLanguageSelectionLanguageCode (\s a -> s { _mediaLiveChannelAudioLanguageSelectionLanguageCode = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiolanguageselection.html#cfn-medialive-channel-audiolanguageselection-languageselectionpolicy
+mlcalsLanguageSelectionPolicy :: Lens' MediaLiveChannelAudioLanguageSelection (Maybe (Val Text))
+mlcalsLanguageSelectionPolicy = lens _mediaLiveChannelAudioLanguageSelectionLanguageSelectionPolicy (\s a -> s { _mediaLiveChannelAudioLanguageSelectionLanguageSelectionPolicy = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelAudioPidSelection.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelAudioPidSelection.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelAudioPidSelection.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiopidselection.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelAudioPidSelection where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for MediaLiveChannelAudioPidSelection. See
+-- 'mediaLiveChannelAudioPidSelection' for a more convenient constructor.
+data MediaLiveChannelAudioPidSelection =
+  MediaLiveChannelAudioPidSelection
+  { _mediaLiveChannelAudioPidSelectionPid :: Maybe (Val Integer)
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelAudioPidSelection where
+  toJSON MediaLiveChannelAudioPidSelection{..} =
+    object $
+    catMaybes
+    [ fmap (("Pid",) . toJSON) _mediaLiveChannelAudioPidSelectionPid
+    ]
+
+-- | Constructor for 'MediaLiveChannelAudioPidSelection' containing required
+-- fields as arguments.
+mediaLiveChannelAudioPidSelection
+  :: MediaLiveChannelAudioPidSelection
+mediaLiveChannelAudioPidSelection  =
+  MediaLiveChannelAudioPidSelection
+  { _mediaLiveChannelAudioPidSelectionPid = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiopidselection.html#cfn-medialive-channel-audiopidselection-pid
+mlcapsPid :: Lens' MediaLiveChannelAudioPidSelection (Maybe (Val Integer))
+mlcapsPid = lens _mediaLiveChannelAudioPidSelectionPid (\s a -> s { _mediaLiveChannelAudioPidSelectionPid = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelAudioSelector.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelAudioSelector.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelAudioSelector.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselector.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelAudioSelector where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.MediaLiveChannelAudioSelectorSettings
+
+-- | Full data type definition for MediaLiveChannelAudioSelector. See
+-- 'mediaLiveChannelAudioSelector' for a more convenient constructor.
+data MediaLiveChannelAudioSelector =
+  MediaLiveChannelAudioSelector
+  { _mediaLiveChannelAudioSelectorName :: Maybe (Val Text)
+  , _mediaLiveChannelAudioSelectorSelectorSettings :: Maybe MediaLiveChannelAudioSelectorSettings
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelAudioSelector where
+  toJSON MediaLiveChannelAudioSelector{..} =
+    object $
+    catMaybes
+    [ fmap (("Name",) . toJSON) _mediaLiveChannelAudioSelectorName
+    , fmap (("SelectorSettings",) . toJSON) _mediaLiveChannelAudioSelectorSelectorSettings
+    ]
+
+-- | Constructor for 'MediaLiveChannelAudioSelector' containing required
+-- fields as arguments.
+mediaLiveChannelAudioSelector
+  :: MediaLiveChannelAudioSelector
+mediaLiveChannelAudioSelector  =
+  MediaLiveChannelAudioSelector
+  { _mediaLiveChannelAudioSelectorName = Nothing
+  , _mediaLiveChannelAudioSelectorSelectorSettings = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselector.html#cfn-medialive-channel-audioselector-name
+mlcasName :: Lens' MediaLiveChannelAudioSelector (Maybe (Val Text))
+mlcasName = lens _mediaLiveChannelAudioSelectorName (\s a -> s { _mediaLiveChannelAudioSelectorName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselector.html#cfn-medialive-channel-audioselector-selectorsettings
+mlcasSelectorSettings :: Lens' MediaLiveChannelAudioSelector (Maybe MediaLiveChannelAudioSelectorSettings)
+mlcasSelectorSettings = lens _mediaLiveChannelAudioSelectorSelectorSettings (\s a -> s { _mediaLiveChannelAudioSelectorSelectorSettings = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelAudioSelectorSettings.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelAudioSelectorSettings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelAudioSelectorSettings.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselectorsettings.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelAudioSelectorSettings where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.MediaLiveChannelAudioLanguageSelection
+import Stratosphere.ResourceProperties.MediaLiveChannelAudioPidSelection
+
+-- | Full data type definition for MediaLiveChannelAudioSelectorSettings. See
+-- 'mediaLiveChannelAudioSelectorSettings' for a more convenient
+-- constructor.
+data MediaLiveChannelAudioSelectorSettings =
+  MediaLiveChannelAudioSelectorSettings
+  { _mediaLiveChannelAudioSelectorSettingsAudioLanguageSelection :: Maybe MediaLiveChannelAudioLanguageSelection
+  , _mediaLiveChannelAudioSelectorSettingsAudioPidSelection :: Maybe MediaLiveChannelAudioPidSelection
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelAudioSelectorSettings where
+  toJSON MediaLiveChannelAudioSelectorSettings{..} =
+    object $
+    catMaybes
+    [ fmap (("AudioLanguageSelection",) . toJSON) _mediaLiveChannelAudioSelectorSettingsAudioLanguageSelection
+    , fmap (("AudioPidSelection",) . toJSON) _mediaLiveChannelAudioSelectorSettingsAudioPidSelection
+    ]
+
+-- | Constructor for 'MediaLiveChannelAudioSelectorSettings' containing
+-- required fields as arguments.
+mediaLiveChannelAudioSelectorSettings
+  :: MediaLiveChannelAudioSelectorSettings
+mediaLiveChannelAudioSelectorSettings  =
+  MediaLiveChannelAudioSelectorSettings
+  { _mediaLiveChannelAudioSelectorSettingsAudioLanguageSelection = Nothing
+  , _mediaLiveChannelAudioSelectorSettingsAudioPidSelection = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselectorsettings.html#cfn-medialive-channel-audioselectorsettings-audiolanguageselection
+mlcassAudioLanguageSelection :: Lens' MediaLiveChannelAudioSelectorSettings (Maybe MediaLiveChannelAudioLanguageSelection)
+mlcassAudioLanguageSelection = lens _mediaLiveChannelAudioSelectorSettingsAudioLanguageSelection (\s a -> s { _mediaLiveChannelAudioSelectorSettingsAudioLanguageSelection = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselectorsettings.html#cfn-medialive-channel-audioselectorsettings-audiopidselection
+mlcassAudioPidSelection :: Lens' MediaLiveChannelAudioSelectorSettings (Maybe MediaLiveChannelAudioPidSelection)
+mlcassAudioPidSelection = lens _mediaLiveChannelAudioSelectorSettingsAudioPidSelection (\s a -> s { _mediaLiveChannelAudioSelectorSettingsAudioPidSelection = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelCaptionSelector.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelCaptionSelector.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelCaptionSelector.hs
@@ -0,0 +1,52 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselector.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelCaptionSelector where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.MediaLiveChannelCaptionSelectorSettings
+
+-- | Full data type definition for MediaLiveChannelCaptionSelector. See
+-- 'mediaLiveChannelCaptionSelector' for a more convenient constructor.
+data MediaLiveChannelCaptionSelector =
+  MediaLiveChannelCaptionSelector
+  { _mediaLiveChannelCaptionSelectorLanguageCode :: Maybe (Val Text)
+  , _mediaLiveChannelCaptionSelectorName :: Maybe (Val Text)
+  , _mediaLiveChannelCaptionSelectorSelectorSettings :: Maybe MediaLiveChannelCaptionSelectorSettings
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelCaptionSelector where
+  toJSON MediaLiveChannelCaptionSelector{..} =
+    object $
+    catMaybes
+    [ fmap (("LanguageCode",) . toJSON) _mediaLiveChannelCaptionSelectorLanguageCode
+    , fmap (("Name",) . toJSON) _mediaLiveChannelCaptionSelectorName
+    , fmap (("SelectorSettings",) . toJSON) _mediaLiveChannelCaptionSelectorSelectorSettings
+    ]
+
+-- | Constructor for 'MediaLiveChannelCaptionSelector' containing required
+-- fields as arguments.
+mediaLiveChannelCaptionSelector
+  :: MediaLiveChannelCaptionSelector
+mediaLiveChannelCaptionSelector  =
+  MediaLiveChannelCaptionSelector
+  { _mediaLiveChannelCaptionSelectorLanguageCode = Nothing
+  , _mediaLiveChannelCaptionSelectorName = Nothing
+  , _mediaLiveChannelCaptionSelectorSelectorSettings = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselector.html#cfn-medialive-channel-captionselector-languagecode
+mlccsLanguageCode :: Lens' MediaLiveChannelCaptionSelector (Maybe (Val Text))
+mlccsLanguageCode = lens _mediaLiveChannelCaptionSelectorLanguageCode (\s a -> s { _mediaLiveChannelCaptionSelectorLanguageCode = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselector.html#cfn-medialive-channel-captionselector-name
+mlccsName :: Lens' MediaLiveChannelCaptionSelector (Maybe (Val Text))
+mlccsName = lens _mediaLiveChannelCaptionSelectorName (\s a -> s { _mediaLiveChannelCaptionSelectorName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselector.html#cfn-medialive-channel-captionselector-selectorsettings
+mlccsSelectorSettings :: Lens' MediaLiveChannelCaptionSelector (Maybe MediaLiveChannelCaptionSelectorSettings)
+mlccsSelectorSettings = lens _mediaLiveChannelCaptionSelectorSelectorSettings (\s a -> s { _mediaLiveChannelCaptionSelectorSelectorSettings = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelCaptionSelectorSettings.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelCaptionSelectorSettings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelCaptionSelectorSettings.hs
@@ -0,0 +1,79 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelCaptionSelectorSettings where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.MediaLiveChannelAribSourceSettings
+import Stratosphere.ResourceProperties.MediaLiveChannelDvbSubSourceSettings
+import Stratosphere.ResourceProperties.MediaLiveChannelEmbeddedSourceSettings
+import Stratosphere.ResourceProperties.MediaLiveChannelScte20SourceSettings
+import Stratosphere.ResourceProperties.MediaLiveChannelScte27SourceSettings
+import Stratosphere.ResourceProperties.MediaLiveChannelTeletextSourceSettings
+
+-- | Full data type definition for MediaLiveChannelCaptionSelectorSettings.
+-- See 'mediaLiveChannelCaptionSelectorSettings' for a more convenient
+-- constructor.
+data MediaLiveChannelCaptionSelectorSettings =
+  MediaLiveChannelCaptionSelectorSettings
+  { _mediaLiveChannelCaptionSelectorSettingsAribSourceSettings :: Maybe MediaLiveChannelAribSourceSettings
+  , _mediaLiveChannelCaptionSelectorSettingsDvbSubSourceSettings :: Maybe MediaLiveChannelDvbSubSourceSettings
+  , _mediaLiveChannelCaptionSelectorSettingsEmbeddedSourceSettings :: Maybe MediaLiveChannelEmbeddedSourceSettings
+  , _mediaLiveChannelCaptionSelectorSettingsScte20SourceSettings :: Maybe MediaLiveChannelScte20SourceSettings
+  , _mediaLiveChannelCaptionSelectorSettingsScte27SourceSettings :: Maybe MediaLiveChannelScte27SourceSettings
+  , _mediaLiveChannelCaptionSelectorSettingsTeletextSourceSettings :: Maybe MediaLiveChannelTeletextSourceSettings
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelCaptionSelectorSettings where
+  toJSON MediaLiveChannelCaptionSelectorSettings{..} =
+    object $
+    catMaybes
+    [ fmap (("AribSourceSettings",) . toJSON) _mediaLiveChannelCaptionSelectorSettingsAribSourceSettings
+    , fmap (("DvbSubSourceSettings",) . toJSON) _mediaLiveChannelCaptionSelectorSettingsDvbSubSourceSettings
+    , fmap (("EmbeddedSourceSettings",) . toJSON) _mediaLiveChannelCaptionSelectorSettingsEmbeddedSourceSettings
+    , fmap (("Scte20SourceSettings",) . toJSON) _mediaLiveChannelCaptionSelectorSettingsScte20SourceSettings
+    , fmap (("Scte27SourceSettings",) . toJSON) _mediaLiveChannelCaptionSelectorSettingsScte27SourceSettings
+    , fmap (("TeletextSourceSettings",) . toJSON) _mediaLiveChannelCaptionSelectorSettingsTeletextSourceSettings
+    ]
+
+-- | Constructor for 'MediaLiveChannelCaptionSelectorSettings' containing
+-- required fields as arguments.
+mediaLiveChannelCaptionSelectorSettings
+  :: MediaLiveChannelCaptionSelectorSettings
+mediaLiveChannelCaptionSelectorSettings  =
+  MediaLiveChannelCaptionSelectorSettings
+  { _mediaLiveChannelCaptionSelectorSettingsAribSourceSettings = Nothing
+  , _mediaLiveChannelCaptionSelectorSettingsDvbSubSourceSettings = Nothing
+  , _mediaLiveChannelCaptionSelectorSettingsEmbeddedSourceSettings = Nothing
+  , _mediaLiveChannelCaptionSelectorSettingsScte20SourceSettings = Nothing
+  , _mediaLiveChannelCaptionSelectorSettingsScte27SourceSettings = Nothing
+  , _mediaLiveChannelCaptionSelectorSettingsTeletextSourceSettings = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-aribsourcesettings
+mlccssAribSourceSettings :: Lens' MediaLiveChannelCaptionSelectorSettings (Maybe MediaLiveChannelAribSourceSettings)
+mlccssAribSourceSettings = lens _mediaLiveChannelCaptionSelectorSettingsAribSourceSettings (\s a -> s { _mediaLiveChannelCaptionSelectorSettingsAribSourceSettings = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-dvbsubsourcesettings
+mlccssDvbSubSourceSettings :: Lens' MediaLiveChannelCaptionSelectorSettings (Maybe MediaLiveChannelDvbSubSourceSettings)
+mlccssDvbSubSourceSettings = lens _mediaLiveChannelCaptionSelectorSettingsDvbSubSourceSettings (\s a -> s { _mediaLiveChannelCaptionSelectorSettingsDvbSubSourceSettings = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-embeddedsourcesettings
+mlccssEmbeddedSourceSettings :: Lens' MediaLiveChannelCaptionSelectorSettings (Maybe MediaLiveChannelEmbeddedSourceSettings)
+mlccssEmbeddedSourceSettings = lens _mediaLiveChannelCaptionSelectorSettingsEmbeddedSourceSettings (\s a -> s { _mediaLiveChannelCaptionSelectorSettingsEmbeddedSourceSettings = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-scte20sourcesettings
+mlccssScte20SourceSettings :: Lens' MediaLiveChannelCaptionSelectorSettings (Maybe MediaLiveChannelScte20SourceSettings)
+mlccssScte20SourceSettings = lens _mediaLiveChannelCaptionSelectorSettingsScte20SourceSettings (\s a -> s { _mediaLiveChannelCaptionSelectorSettingsScte20SourceSettings = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-scte27sourcesettings
+mlccssScte27SourceSettings :: Lens' MediaLiveChannelCaptionSelectorSettings (Maybe MediaLiveChannelScte27SourceSettings)
+mlccssScte27SourceSettings = lens _mediaLiveChannelCaptionSelectorSettingsScte27SourceSettings (\s a -> s { _mediaLiveChannelCaptionSelectorSettingsScte27SourceSettings = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-teletextsourcesettings
+mlccssTeletextSourceSettings :: Lens' MediaLiveChannelCaptionSelectorSettings (Maybe MediaLiveChannelTeletextSourceSettings)
+mlccssTeletextSourceSettings = lens _mediaLiveChannelCaptionSelectorSettingsTeletextSourceSettings (\s a -> s { _mediaLiveChannelCaptionSelectorSettingsTeletextSourceSettings = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelDvbSubSourceSettings.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelDvbSubSourceSettings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelDvbSubSourceSettings.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubsourcesettings.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelDvbSubSourceSettings where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for MediaLiveChannelDvbSubSourceSettings. See
+-- 'mediaLiveChannelDvbSubSourceSettings' for a more convenient constructor.
+data MediaLiveChannelDvbSubSourceSettings =
+  MediaLiveChannelDvbSubSourceSettings
+  { _mediaLiveChannelDvbSubSourceSettingsPid :: Maybe (Val Integer)
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelDvbSubSourceSettings where
+  toJSON MediaLiveChannelDvbSubSourceSettings{..} =
+    object $
+    catMaybes
+    [ fmap (("Pid",) . toJSON) _mediaLiveChannelDvbSubSourceSettingsPid
+    ]
+
+-- | Constructor for 'MediaLiveChannelDvbSubSourceSettings' containing
+-- required fields as arguments.
+mediaLiveChannelDvbSubSourceSettings
+  :: MediaLiveChannelDvbSubSourceSettings
+mediaLiveChannelDvbSubSourceSettings  =
+  MediaLiveChannelDvbSubSourceSettings
+  { _mediaLiveChannelDvbSubSourceSettingsPid = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubsourcesettings.html#cfn-medialive-channel-dvbsubsourcesettings-pid
+mlcdsssPid :: Lens' MediaLiveChannelDvbSubSourceSettings (Maybe (Val Integer))
+mlcdsssPid = lens _mediaLiveChannelDvbSubSourceSettingsPid (\s a -> s { _mediaLiveChannelDvbSubSourceSettingsPid = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelEmbeddedSourceSettings.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelEmbeddedSourceSettings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelEmbeddedSourceSettings.hs
@@ -0,0 +1,60 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-embeddedsourcesettings.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelEmbeddedSourceSettings where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for MediaLiveChannelEmbeddedSourceSettings. See
+-- 'mediaLiveChannelEmbeddedSourceSettings' for a more convenient
+-- constructor.
+data MediaLiveChannelEmbeddedSourceSettings =
+  MediaLiveChannelEmbeddedSourceSettings
+  { _mediaLiveChannelEmbeddedSourceSettingsConvert608To708 :: Maybe (Val Text)
+  , _mediaLiveChannelEmbeddedSourceSettingsScte20Detection :: Maybe (Val Text)
+  , _mediaLiveChannelEmbeddedSourceSettingsSource608ChannelNumber :: Maybe (Val Integer)
+  , _mediaLiveChannelEmbeddedSourceSettingsSource608TrackNumber :: Maybe (Val Integer)
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelEmbeddedSourceSettings where
+  toJSON MediaLiveChannelEmbeddedSourceSettings{..} =
+    object $
+    catMaybes
+    [ fmap (("Convert608To708",) . toJSON) _mediaLiveChannelEmbeddedSourceSettingsConvert608To708
+    , fmap (("Scte20Detection",) . toJSON) _mediaLiveChannelEmbeddedSourceSettingsScte20Detection
+    , fmap (("Source608ChannelNumber",) . toJSON) _mediaLiveChannelEmbeddedSourceSettingsSource608ChannelNumber
+    , fmap (("Source608TrackNumber",) . toJSON) _mediaLiveChannelEmbeddedSourceSettingsSource608TrackNumber
+    ]
+
+-- | Constructor for 'MediaLiveChannelEmbeddedSourceSettings' containing
+-- required fields as arguments.
+mediaLiveChannelEmbeddedSourceSettings
+  :: MediaLiveChannelEmbeddedSourceSettings
+mediaLiveChannelEmbeddedSourceSettings  =
+  MediaLiveChannelEmbeddedSourceSettings
+  { _mediaLiveChannelEmbeddedSourceSettingsConvert608To708 = Nothing
+  , _mediaLiveChannelEmbeddedSourceSettingsScte20Detection = Nothing
+  , _mediaLiveChannelEmbeddedSourceSettingsSource608ChannelNumber = Nothing
+  , _mediaLiveChannelEmbeddedSourceSettingsSource608TrackNumber = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-embeddedsourcesettings.html#cfn-medialive-channel-embeddedsourcesettings-convert608to708
+mlcessConvert608To708 :: Lens' MediaLiveChannelEmbeddedSourceSettings (Maybe (Val Text))
+mlcessConvert608To708 = lens _mediaLiveChannelEmbeddedSourceSettingsConvert608To708 (\s a -> s { _mediaLiveChannelEmbeddedSourceSettingsConvert608To708 = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-embeddedsourcesettings.html#cfn-medialive-channel-embeddedsourcesettings-scte20detection
+mlcessScte20Detection :: Lens' MediaLiveChannelEmbeddedSourceSettings (Maybe (Val Text))
+mlcessScte20Detection = lens _mediaLiveChannelEmbeddedSourceSettingsScte20Detection (\s a -> s { _mediaLiveChannelEmbeddedSourceSettingsScte20Detection = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-embeddedsourcesettings.html#cfn-medialive-channel-embeddedsourcesettings-source608channelnumber
+mlcessSource608ChannelNumber :: Lens' MediaLiveChannelEmbeddedSourceSettings (Maybe (Val Integer))
+mlcessSource608ChannelNumber = lens _mediaLiveChannelEmbeddedSourceSettingsSource608ChannelNumber (\s a -> s { _mediaLiveChannelEmbeddedSourceSettingsSource608ChannelNumber = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-embeddedsourcesettings.html#cfn-medialive-channel-embeddedsourcesettings-source608tracknumber
+mlcessSource608TrackNumber :: Lens' MediaLiveChannelEmbeddedSourceSettings (Maybe (Val Integer))
+mlcessSource608TrackNumber = lens _mediaLiveChannelEmbeddedSourceSettingsSource608TrackNumber (\s a -> s { _mediaLiveChannelEmbeddedSourceSettingsSource608TrackNumber = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelHlsInputSettings.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelHlsInputSettings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelHlsInputSettings.hs
@@ -0,0 +1,59 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsinputsettings.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelHlsInputSettings where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for MediaLiveChannelHlsInputSettings. See
+-- 'mediaLiveChannelHlsInputSettings' for a more convenient constructor.
+data MediaLiveChannelHlsInputSettings =
+  MediaLiveChannelHlsInputSettings
+  { _mediaLiveChannelHlsInputSettingsBandwidth :: Maybe (Val Integer)
+  , _mediaLiveChannelHlsInputSettingsBufferSegments :: Maybe (Val Integer)
+  , _mediaLiveChannelHlsInputSettingsRetries :: Maybe (Val Integer)
+  , _mediaLiveChannelHlsInputSettingsRetryInterval :: Maybe (Val Integer)
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelHlsInputSettings where
+  toJSON MediaLiveChannelHlsInputSettings{..} =
+    object $
+    catMaybes
+    [ fmap (("Bandwidth",) . toJSON) _mediaLiveChannelHlsInputSettingsBandwidth
+    , fmap (("BufferSegments",) . toJSON) _mediaLiveChannelHlsInputSettingsBufferSegments
+    , fmap (("Retries",) . toJSON) _mediaLiveChannelHlsInputSettingsRetries
+    , fmap (("RetryInterval",) . toJSON) _mediaLiveChannelHlsInputSettingsRetryInterval
+    ]
+
+-- | Constructor for 'MediaLiveChannelHlsInputSettings' containing required
+-- fields as arguments.
+mediaLiveChannelHlsInputSettings
+  :: MediaLiveChannelHlsInputSettings
+mediaLiveChannelHlsInputSettings  =
+  MediaLiveChannelHlsInputSettings
+  { _mediaLiveChannelHlsInputSettingsBandwidth = Nothing
+  , _mediaLiveChannelHlsInputSettingsBufferSegments = Nothing
+  , _mediaLiveChannelHlsInputSettingsRetries = Nothing
+  , _mediaLiveChannelHlsInputSettingsRetryInterval = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsinputsettings.html#cfn-medialive-channel-hlsinputsettings-bandwidth
+mlchisBandwidth :: Lens' MediaLiveChannelHlsInputSettings (Maybe (Val Integer))
+mlchisBandwidth = lens _mediaLiveChannelHlsInputSettingsBandwidth (\s a -> s { _mediaLiveChannelHlsInputSettingsBandwidth = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsinputsettings.html#cfn-medialive-channel-hlsinputsettings-buffersegments
+mlchisBufferSegments :: Lens' MediaLiveChannelHlsInputSettings (Maybe (Val Integer))
+mlchisBufferSegments = lens _mediaLiveChannelHlsInputSettingsBufferSegments (\s a -> s { _mediaLiveChannelHlsInputSettingsBufferSegments = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsinputsettings.html#cfn-medialive-channel-hlsinputsettings-retries
+mlchisRetries :: Lens' MediaLiveChannelHlsInputSettings (Maybe (Val Integer))
+mlchisRetries = lens _mediaLiveChannelHlsInputSettingsRetries (\s a -> s { _mediaLiveChannelHlsInputSettingsRetries = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsinputsettings.html#cfn-medialive-channel-hlsinputsettings-retryinterval
+mlchisRetryInterval :: Lens' MediaLiveChannelHlsInputSettings (Maybe (Val Integer))
+mlchisRetryInterval = lens _mediaLiveChannelHlsInputSettingsRetryInterval (\s a -> s { _mediaLiveChannelHlsInputSettingsRetryInterval = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelInputAttachment.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelInputAttachment.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelInputAttachment.hs
@@ -0,0 +1,52 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputattachment.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelInputAttachment where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.MediaLiveChannelInputSettings
+
+-- | Full data type definition for MediaLiveChannelInputAttachment. See
+-- 'mediaLiveChannelInputAttachment' for a more convenient constructor.
+data MediaLiveChannelInputAttachment =
+  MediaLiveChannelInputAttachment
+  { _mediaLiveChannelInputAttachmentInputAttachmentName :: Maybe (Val Text)
+  , _mediaLiveChannelInputAttachmentInputId :: Maybe (Val Text)
+  , _mediaLiveChannelInputAttachmentInputSettings :: Maybe MediaLiveChannelInputSettings
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelInputAttachment where
+  toJSON MediaLiveChannelInputAttachment{..} =
+    object $
+    catMaybes
+    [ fmap (("InputAttachmentName",) . toJSON) _mediaLiveChannelInputAttachmentInputAttachmentName
+    , fmap (("InputId",) . toJSON) _mediaLiveChannelInputAttachmentInputId
+    , fmap (("InputSettings",) . toJSON) _mediaLiveChannelInputAttachmentInputSettings
+    ]
+
+-- | Constructor for 'MediaLiveChannelInputAttachment' containing required
+-- fields as arguments.
+mediaLiveChannelInputAttachment
+  :: MediaLiveChannelInputAttachment
+mediaLiveChannelInputAttachment  =
+  MediaLiveChannelInputAttachment
+  { _mediaLiveChannelInputAttachmentInputAttachmentName = Nothing
+  , _mediaLiveChannelInputAttachmentInputId = Nothing
+  , _mediaLiveChannelInputAttachmentInputSettings = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputattachment.html#cfn-medialive-channel-inputattachment-inputattachmentname
+mlciaInputAttachmentName :: Lens' MediaLiveChannelInputAttachment (Maybe (Val Text))
+mlciaInputAttachmentName = lens _mediaLiveChannelInputAttachmentInputAttachmentName (\s a -> s { _mediaLiveChannelInputAttachmentInputAttachmentName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputattachment.html#cfn-medialive-channel-inputattachment-inputid
+mlciaInputId :: Lens' MediaLiveChannelInputAttachment (Maybe (Val Text))
+mlciaInputId = lens _mediaLiveChannelInputAttachmentInputId (\s a -> s { _mediaLiveChannelInputAttachmentInputId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputattachment.html#cfn-medialive-channel-inputattachment-inputsettings
+mlciaInputSettings :: Lens' MediaLiveChannelInputAttachment (Maybe MediaLiveChannelInputSettings)
+mlciaInputSettings = lens _mediaLiveChannelInputAttachmentInputSettings (\s a -> s { _mediaLiveChannelInputAttachmentInputSettings = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelInputSettings.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelInputSettings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelInputSettings.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelInputSettings where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.MediaLiveChannelAudioSelector
+import Stratosphere.ResourceProperties.MediaLiveChannelCaptionSelector
+import Stratosphere.ResourceProperties.MediaLiveChannelNetworkInputSettings
+import Stratosphere.ResourceProperties.MediaLiveChannelVideoSelector
+
+-- | Full data type definition for MediaLiveChannelInputSettings. See
+-- 'mediaLiveChannelInputSettings' for a more convenient constructor.
+data MediaLiveChannelInputSettings =
+  MediaLiveChannelInputSettings
+  { _mediaLiveChannelInputSettingsAudioSelectors :: Maybe [MediaLiveChannelAudioSelector]
+  , _mediaLiveChannelInputSettingsCaptionSelectors :: Maybe [MediaLiveChannelCaptionSelector]
+  , _mediaLiveChannelInputSettingsDeblockFilter :: Maybe (Val Text)
+  , _mediaLiveChannelInputSettingsDenoiseFilter :: Maybe (Val Text)
+  , _mediaLiveChannelInputSettingsFilterStrength :: Maybe (Val Integer)
+  , _mediaLiveChannelInputSettingsInputFilter :: Maybe (Val Text)
+  , _mediaLiveChannelInputSettingsNetworkInputSettings :: Maybe MediaLiveChannelNetworkInputSettings
+  , _mediaLiveChannelInputSettingsSourceEndBehavior :: Maybe (Val Text)
+  , _mediaLiveChannelInputSettingsVideoSelector :: Maybe MediaLiveChannelVideoSelector
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelInputSettings where
+  toJSON MediaLiveChannelInputSettings{..} =
+    object $
+    catMaybes
+    [ fmap (("AudioSelectors",) . toJSON) _mediaLiveChannelInputSettingsAudioSelectors
+    , fmap (("CaptionSelectors",) . toJSON) _mediaLiveChannelInputSettingsCaptionSelectors
+    , fmap (("DeblockFilter",) . toJSON) _mediaLiveChannelInputSettingsDeblockFilter
+    , fmap (("DenoiseFilter",) . toJSON) _mediaLiveChannelInputSettingsDenoiseFilter
+    , fmap (("FilterStrength",) . toJSON) _mediaLiveChannelInputSettingsFilterStrength
+    , fmap (("InputFilter",) . toJSON) _mediaLiveChannelInputSettingsInputFilter
+    , fmap (("NetworkInputSettings",) . toJSON) _mediaLiveChannelInputSettingsNetworkInputSettings
+    , fmap (("SourceEndBehavior",) . toJSON) _mediaLiveChannelInputSettingsSourceEndBehavior
+    , fmap (("VideoSelector",) . toJSON) _mediaLiveChannelInputSettingsVideoSelector
+    ]
+
+-- | Constructor for 'MediaLiveChannelInputSettings' containing required
+-- fields as arguments.
+mediaLiveChannelInputSettings
+  :: MediaLiveChannelInputSettings
+mediaLiveChannelInputSettings  =
+  MediaLiveChannelInputSettings
+  { _mediaLiveChannelInputSettingsAudioSelectors = Nothing
+  , _mediaLiveChannelInputSettingsCaptionSelectors = Nothing
+  , _mediaLiveChannelInputSettingsDeblockFilter = Nothing
+  , _mediaLiveChannelInputSettingsDenoiseFilter = Nothing
+  , _mediaLiveChannelInputSettingsFilterStrength = Nothing
+  , _mediaLiveChannelInputSettingsInputFilter = Nothing
+  , _mediaLiveChannelInputSettingsNetworkInputSettings = Nothing
+  , _mediaLiveChannelInputSettingsSourceEndBehavior = Nothing
+  , _mediaLiveChannelInputSettingsVideoSelector = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-audioselectors
+mlcisAudioSelectors :: Lens' MediaLiveChannelInputSettings (Maybe [MediaLiveChannelAudioSelector])
+mlcisAudioSelectors = lens _mediaLiveChannelInputSettingsAudioSelectors (\s a -> s { _mediaLiveChannelInputSettingsAudioSelectors = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-captionselectors
+mlcisCaptionSelectors :: Lens' MediaLiveChannelInputSettings (Maybe [MediaLiveChannelCaptionSelector])
+mlcisCaptionSelectors = lens _mediaLiveChannelInputSettingsCaptionSelectors (\s a -> s { _mediaLiveChannelInputSettingsCaptionSelectors = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-deblockfilter
+mlcisDeblockFilter :: Lens' MediaLiveChannelInputSettings (Maybe (Val Text))
+mlcisDeblockFilter = lens _mediaLiveChannelInputSettingsDeblockFilter (\s a -> s { _mediaLiveChannelInputSettingsDeblockFilter = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-denoisefilter
+mlcisDenoiseFilter :: Lens' MediaLiveChannelInputSettings (Maybe (Val Text))
+mlcisDenoiseFilter = lens _mediaLiveChannelInputSettingsDenoiseFilter (\s a -> s { _mediaLiveChannelInputSettingsDenoiseFilter = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-filterstrength
+mlcisFilterStrength :: Lens' MediaLiveChannelInputSettings (Maybe (Val Integer))
+mlcisFilterStrength = lens _mediaLiveChannelInputSettingsFilterStrength (\s a -> s { _mediaLiveChannelInputSettingsFilterStrength = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-inputfilter
+mlcisInputFilter :: Lens' MediaLiveChannelInputSettings (Maybe (Val Text))
+mlcisInputFilter = lens _mediaLiveChannelInputSettingsInputFilter (\s a -> s { _mediaLiveChannelInputSettingsInputFilter = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-networkinputsettings
+mlcisNetworkInputSettings :: Lens' MediaLiveChannelInputSettings (Maybe MediaLiveChannelNetworkInputSettings)
+mlcisNetworkInputSettings = lens _mediaLiveChannelInputSettingsNetworkInputSettings (\s a -> s { _mediaLiveChannelInputSettingsNetworkInputSettings = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-sourceendbehavior
+mlcisSourceEndBehavior :: Lens' MediaLiveChannelInputSettings (Maybe (Val Text))
+mlcisSourceEndBehavior = lens _mediaLiveChannelInputSettingsSourceEndBehavior (\s a -> s { _mediaLiveChannelInputSettingsSourceEndBehavior = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-videoselector
+mlcisVideoSelector :: Lens' MediaLiveChannelInputSettings (Maybe MediaLiveChannelVideoSelector)
+mlcisVideoSelector = lens _mediaLiveChannelInputSettingsVideoSelector (\s a -> s { _mediaLiveChannelInputSettingsVideoSelector = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelInputSpecification.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelInputSpecification.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelInputSpecification.hs
@@ -0,0 +1,52 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputspecification.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelInputSpecification where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for MediaLiveChannelInputSpecification. See
+-- 'mediaLiveChannelInputSpecification' for a more convenient constructor.
+data MediaLiveChannelInputSpecification =
+  MediaLiveChannelInputSpecification
+  { _mediaLiveChannelInputSpecificationCodec :: Maybe (Val Text)
+  , _mediaLiveChannelInputSpecificationMaximumBitrate :: Maybe (Val Text)
+  , _mediaLiveChannelInputSpecificationResolution :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelInputSpecification where
+  toJSON MediaLiveChannelInputSpecification{..} =
+    object $
+    catMaybes
+    [ fmap (("Codec",) . toJSON) _mediaLiveChannelInputSpecificationCodec
+    , fmap (("MaximumBitrate",) . toJSON) _mediaLiveChannelInputSpecificationMaximumBitrate
+    , fmap (("Resolution",) . toJSON) _mediaLiveChannelInputSpecificationResolution
+    ]
+
+-- | Constructor for 'MediaLiveChannelInputSpecification' containing required
+-- fields as arguments.
+mediaLiveChannelInputSpecification
+  :: MediaLiveChannelInputSpecification
+mediaLiveChannelInputSpecification  =
+  MediaLiveChannelInputSpecification
+  { _mediaLiveChannelInputSpecificationCodec = Nothing
+  , _mediaLiveChannelInputSpecificationMaximumBitrate = Nothing
+  , _mediaLiveChannelInputSpecificationResolution = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputspecification.html#cfn-medialive-channel-inputspecification-codec
+mlcisCodec :: Lens' MediaLiveChannelInputSpecification (Maybe (Val Text))
+mlcisCodec = lens _mediaLiveChannelInputSpecificationCodec (\s a -> s { _mediaLiveChannelInputSpecificationCodec = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputspecification.html#cfn-medialive-channel-inputspecification-maximumbitrate
+mlcisMaximumBitrate :: Lens' MediaLiveChannelInputSpecification (Maybe (Val Text))
+mlcisMaximumBitrate = lens _mediaLiveChannelInputSpecificationMaximumBitrate (\s a -> s { _mediaLiveChannelInputSpecificationMaximumBitrate = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputspecification.html#cfn-medialive-channel-inputspecification-resolution
+mlcisResolution :: Lens' MediaLiveChannelInputSpecification (Maybe (Val Text))
+mlcisResolution = lens _mediaLiveChannelInputSpecificationResolution (\s a -> s { _mediaLiveChannelInputSpecificationResolution = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelMediaPackageOutputDestinationSettings.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelMediaPackageOutputDestinationSettings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelMediaPackageOutputDestinationSettings.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mediapackageoutputdestinationsettings.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelMediaPackageOutputDestinationSettings where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- MediaLiveChannelMediaPackageOutputDestinationSettings. See
+-- 'mediaLiveChannelMediaPackageOutputDestinationSettings' for a more
+-- convenient constructor.
+data MediaLiveChannelMediaPackageOutputDestinationSettings =
+  MediaLiveChannelMediaPackageOutputDestinationSettings
+  { _mediaLiveChannelMediaPackageOutputDestinationSettingsChannelId :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelMediaPackageOutputDestinationSettings where
+  toJSON MediaLiveChannelMediaPackageOutputDestinationSettings{..} =
+    object $
+    catMaybes
+    [ fmap (("ChannelId",) . toJSON) _mediaLiveChannelMediaPackageOutputDestinationSettingsChannelId
+    ]
+
+-- | Constructor for 'MediaLiveChannelMediaPackageOutputDestinationSettings'
+-- containing required fields as arguments.
+mediaLiveChannelMediaPackageOutputDestinationSettings
+  :: MediaLiveChannelMediaPackageOutputDestinationSettings
+mediaLiveChannelMediaPackageOutputDestinationSettings  =
+  MediaLiveChannelMediaPackageOutputDestinationSettings
+  { _mediaLiveChannelMediaPackageOutputDestinationSettingsChannelId = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mediapackageoutputdestinationsettings.html#cfn-medialive-channel-mediapackageoutputdestinationsettings-channelid
+mlcmpodsChannelId :: Lens' MediaLiveChannelMediaPackageOutputDestinationSettings (Maybe (Val Text))
+mlcmpodsChannelId = lens _mediaLiveChannelMediaPackageOutputDestinationSettingsChannelId (\s a -> s { _mediaLiveChannelMediaPackageOutputDestinationSettingsChannelId = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelNetworkInputSettings.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelNetworkInputSettings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelNetworkInputSettings.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-networkinputsettings.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelNetworkInputSettings where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.MediaLiveChannelHlsInputSettings
+
+-- | Full data type definition for MediaLiveChannelNetworkInputSettings. See
+-- 'mediaLiveChannelNetworkInputSettings' for a more convenient constructor.
+data MediaLiveChannelNetworkInputSettings =
+  MediaLiveChannelNetworkInputSettings
+  { _mediaLiveChannelNetworkInputSettingsHlsInputSettings :: Maybe MediaLiveChannelHlsInputSettings
+  , _mediaLiveChannelNetworkInputSettingsServerValidation :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelNetworkInputSettings where
+  toJSON MediaLiveChannelNetworkInputSettings{..} =
+    object $
+    catMaybes
+    [ fmap (("HlsInputSettings",) . toJSON) _mediaLiveChannelNetworkInputSettingsHlsInputSettings
+    , fmap (("ServerValidation",) . toJSON) _mediaLiveChannelNetworkInputSettingsServerValidation
+    ]
+
+-- | Constructor for 'MediaLiveChannelNetworkInputSettings' containing
+-- required fields as arguments.
+mediaLiveChannelNetworkInputSettings
+  :: MediaLiveChannelNetworkInputSettings
+mediaLiveChannelNetworkInputSettings  =
+  MediaLiveChannelNetworkInputSettings
+  { _mediaLiveChannelNetworkInputSettingsHlsInputSettings = Nothing
+  , _mediaLiveChannelNetworkInputSettingsServerValidation = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-networkinputsettings.html#cfn-medialive-channel-networkinputsettings-hlsinputsettings
+mlcnisHlsInputSettings :: Lens' MediaLiveChannelNetworkInputSettings (Maybe MediaLiveChannelHlsInputSettings)
+mlcnisHlsInputSettings = lens _mediaLiveChannelNetworkInputSettingsHlsInputSettings (\s a -> s { _mediaLiveChannelNetworkInputSettingsHlsInputSettings = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-networkinputsettings.html#cfn-medialive-channel-networkinputsettings-servervalidation
+mlcnisServerValidation :: Lens' MediaLiveChannelNetworkInputSettings (Maybe (Val Text))
+mlcnisServerValidation = lens _mediaLiveChannelNetworkInputSettingsServerValidation (\s a -> s { _mediaLiveChannelNetworkInputSettingsServerValidation = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelOutputDestination.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelOutputDestination.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelOutputDestination.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestination.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelOutputDestination where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.MediaLiveChannelMediaPackageOutputDestinationSettings
+import Stratosphere.ResourceProperties.MediaLiveChannelOutputDestinationSettings
+
+-- | Full data type definition for MediaLiveChannelOutputDestination. See
+-- 'mediaLiveChannelOutputDestination' for a more convenient constructor.
+data MediaLiveChannelOutputDestination =
+  MediaLiveChannelOutputDestination
+  { _mediaLiveChannelOutputDestinationId :: Maybe (Val Text)
+  , _mediaLiveChannelOutputDestinationMediaPackageSettings :: Maybe [MediaLiveChannelMediaPackageOutputDestinationSettings]
+  , _mediaLiveChannelOutputDestinationSettings :: Maybe [MediaLiveChannelOutputDestinationSettings]
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelOutputDestination where
+  toJSON MediaLiveChannelOutputDestination{..} =
+    object $
+    catMaybes
+    [ fmap (("Id",) . toJSON) _mediaLiveChannelOutputDestinationId
+    , fmap (("MediaPackageSettings",) . toJSON) _mediaLiveChannelOutputDestinationMediaPackageSettings
+    , fmap (("Settings",) . toJSON) _mediaLiveChannelOutputDestinationSettings
+    ]
+
+-- | Constructor for 'MediaLiveChannelOutputDestination' containing required
+-- fields as arguments.
+mediaLiveChannelOutputDestination
+  :: MediaLiveChannelOutputDestination
+mediaLiveChannelOutputDestination  =
+  MediaLiveChannelOutputDestination
+  { _mediaLiveChannelOutputDestinationId = Nothing
+  , _mediaLiveChannelOutputDestinationMediaPackageSettings = Nothing
+  , _mediaLiveChannelOutputDestinationSettings = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestination.html#cfn-medialive-channel-outputdestination-id
+mlcodId :: Lens' MediaLiveChannelOutputDestination (Maybe (Val Text))
+mlcodId = lens _mediaLiveChannelOutputDestinationId (\s a -> s { _mediaLiveChannelOutputDestinationId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestination.html#cfn-medialive-channel-outputdestination-mediapackagesettings
+mlcodMediaPackageSettings :: Lens' MediaLiveChannelOutputDestination (Maybe [MediaLiveChannelMediaPackageOutputDestinationSettings])
+mlcodMediaPackageSettings = lens _mediaLiveChannelOutputDestinationMediaPackageSettings (\s a -> s { _mediaLiveChannelOutputDestinationMediaPackageSettings = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestination.html#cfn-medialive-channel-outputdestination-settings
+mlcodSettings :: Lens' MediaLiveChannelOutputDestination (Maybe [MediaLiveChannelOutputDestinationSettings])
+mlcodSettings = lens _mediaLiveChannelOutputDestinationSettings (\s a -> s { _mediaLiveChannelOutputDestinationSettings = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelOutputDestinationSettings.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelOutputDestinationSettings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelOutputDestinationSettings.hs
@@ -0,0 +1,60 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestinationsettings.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelOutputDestinationSettings where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for MediaLiveChannelOutputDestinationSettings.
+-- See 'mediaLiveChannelOutputDestinationSettings' for a more convenient
+-- constructor.
+data MediaLiveChannelOutputDestinationSettings =
+  MediaLiveChannelOutputDestinationSettings
+  { _mediaLiveChannelOutputDestinationSettingsPasswordParam :: Maybe (Val Text)
+  , _mediaLiveChannelOutputDestinationSettingsStreamName :: Maybe (Val Text)
+  , _mediaLiveChannelOutputDestinationSettingsUrl :: Maybe (Val Text)
+  , _mediaLiveChannelOutputDestinationSettingsUsername :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelOutputDestinationSettings where
+  toJSON MediaLiveChannelOutputDestinationSettings{..} =
+    object $
+    catMaybes
+    [ fmap (("PasswordParam",) . toJSON) _mediaLiveChannelOutputDestinationSettingsPasswordParam
+    , fmap (("StreamName",) . toJSON) _mediaLiveChannelOutputDestinationSettingsStreamName
+    , fmap (("Url",) . toJSON) _mediaLiveChannelOutputDestinationSettingsUrl
+    , fmap (("Username",) . toJSON) _mediaLiveChannelOutputDestinationSettingsUsername
+    ]
+
+-- | Constructor for 'MediaLiveChannelOutputDestinationSettings' containing
+-- required fields as arguments.
+mediaLiveChannelOutputDestinationSettings
+  :: MediaLiveChannelOutputDestinationSettings
+mediaLiveChannelOutputDestinationSettings  =
+  MediaLiveChannelOutputDestinationSettings
+  { _mediaLiveChannelOutputDestinationSettingsPasswordParam = Nothing
+  , _mediaLiveChannelOutputDestinationSettingsStreamName = Nothing
+  , _mediaLiveChannelOutputDestinationSettingsUrl = Nothing
+  , _mediaLiveChannelOutputDestinationSettingsUsername = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestinationsettings.html#cfn-medialive-channel-outputdestinationsettings-passwordparam
+mlcodsPasswordParam :: Lens' MediaLiveChannelOutputDestinationSettings (Maybe (Val Text))
+mlcodsPasswordParam = lens _mediaLiveChannelOutputDestinationSettingsPasswordParam (\s a -> s { _mediaLiveChannelOutputDestinationSettingsPasswordParam = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestinationsettings.html#cfn-medialive-channel-outputdestinationsettings-streamname
+mlcodsStreamName :: Lens' MediaLiveChannelOutputDestinationSettings (Maybe (Val Text))
+mlcodsStreamName = lens _mediaLiveChannelOutputDestinationSettingsStreamName (\s a -> s { _mediaLiveChannelOutputDestinationSettingsStreamName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestinationsettings.html#cfn-medialive-channel-outputdestinationsettings-url
+mlcodsUrl :: Lens' MediaLiveChannelOutputDestinationSettings (Maybe (Val Text))
+mlcodsUrl = lens _mediaLiveChannelOutputDestinationSettingsUrl (\s a -> s { _mediaLiveChannelOutputDestinationSettingsUrl = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestinationsettings.html#cfn-medialive-channel-outputdestinationsettings-username
+mlcodsUsername :: Lens' MediaLiveChannelOutputDestinationSettings (Maybe (Val Text))
+mlcodsUsername = lens _mediaLiveChannelOutputDestinationSettingsUsername (\s a -> s { _mediaLiveChannelOutputDestinationSettingsUsername = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelScte20SourceSettings.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelScte20SourceSettings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelScte20SourceSettings.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte20sourcesettings.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelScte20SourceSettings where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for MediaLiveChannelScte20SourceSettings. See
+-- 'mediaLiveChannelScte20SourceSettings' for a more convenient constructor.
+data MediaLiveChannelScte20SourceSettings =
+  MediaLiveChannelScte20SourceSettings
+  { _mediaLiveChannelScte20SourceSettingsConvert608To708 :: Maybe (Val Text)
+  , _mediaLiveChannelScte20SourceSettingsSource608ChannelNumber :: Maybe (Val Integer)
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelScte20SourceSettings where
+  toJSON MediaLiveChannelScte20SourceSettings{..} =
+    object $
+    catMaybes
+    [ fmap (("Convert608To708",) . toJSON) _mediaLiveChannelScte20SourceSettingsConvert608To708
+    , fmap (("Source608ChannelNumber",) . toJSON) _mediaLiveChannelScte20SourceSettingsSource608ChannelNumber
+    ]
+
+-- | Constructor for 'MediaLiveChannelScte20SourceSettings' containing
+-- required fields as arguments.
+mediaLiveChannelScte20SourceSettings
+  :: MediaLiveChannelScte20SourceSettings
+mediaLiveChannelScte20SourceSettings  =
+  MediaLiveChannelScte20SourceSettings
+  { _mediaLiveChannelScte20SourceSettingsConvert608To708 = Nothing
+  , _mediaLiveChannelScte20SourceSettingsSource608ChannelNumber = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte20sourcesettings.html#cfn-medialive-channel-scte20sourcesettings-convert608to708
+mlcsssConvert608To708 :: Lens' MediaLiveChannelScte20SourceSettings (Maybe (Val Text))
+mlcsssConvert608To708 = lens _mediaLiveChannelScte20SourceSettingsConvert608To708 (\s a -> s { _mediaLiveChannelScte20SourceSettingsConvert608To708 = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte20sourcesettings.html#cfn-medialive-channel-scte20sourcesettings-source608channelnumber
+mlcsssSource608ChannelNumber :: Lens' MediaLiveChannelScte20SourceSettings (Maybe (Val Integer))
+mlcsssSource608ChannelNumber = lens _mediaLiveChannelScte20SourceSettingsSource608ChannelNumber (\s a -> s { _mediaLiveChannelScte20SourceSettingsSource608ChannelNumber = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelScte27SourceSettings.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelScte27SourceSettings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelScte27SourceSettings.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte27sourcesettings.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelScte27SourceSettings where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for MediaLiveChannelScte27SourceSettings. See
+-- 'mediaLiveChannelScte27SourceSettings' for a more convenient constructor.
+data MediaLiveChannelScte27SourceSettings =
+  MediaLiveChannelScte27SourceSettings
+  { _mediaLiveChannelScte27SourceSettingsPid :: Maybe (Val Integer)
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelScte27SourceSettings where
+  toJSON MediaLiveChannelScte27SourceSettings{..} =
+    object $
+    catMaybes
+    [ fmap (("Pid",) . toJSON) _mediaLiveChannelScte27SourceSettingsPid
+    ]
+
+-- | Constructor for 'MediaLiveChannelScte27SourceSettings' containing
+-- required fields as arguments.
+mediaLiveChannelScte27SourceSettings
+  :: MediaLiveChannelScte27SourceSettings
+mediaLiveChannelScte27SourceSettings  =
+  MediaLiveChannelScte27SourceSettings
+  { _mediaLiveChannelScte27SourceSettingsPid = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte27sourcesettings.html#cfn-medialive-channel-scte27sourcesettings-pid
+mlcsssPid :: Lens' MediaLiveChannelScte27SourceSettings (Maybe (Val Integer))
+mlcsssPid = lens _mediaLiveChannelScte27SourceSettingsPid (\s a -> s { _mediaLiveChannelScte27SourceSettingsPid = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelTeletextSourceSettings.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelTeletextSourceSettings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelTeletextSourceSettings.hs
@@ -0,0 +1,39 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-teletextsourcesettings.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelTeletextSourceSettings where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for MediaLiveChannelTeletextSourceSettings. See
+-- 'mediaLiveChannelTeletextSourceSettings' for a more convenient
+-- constructor.
+data MediaLiveChannelTeletextSourceSettings =
+  MediaLiveChannelTeletextSourceSettings
+  { _mediaLiveChannelTeletextSourceSettingsPageNumber :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelTeletextSourceSettings where
+  toJSON MediaLiveChannelTeletextSourceSettings{..} =
+    object $
+    catMaybes
+    [ fmap (("PageNumber",) . toJSON) _mediaLiveChannelTeletextSourceSettingsPageNumber
+    ]
+
+-- | Constructor for 'MediaLiveChannelTeletextSourceSettings' containing
+-- required fields as arguments.
+mediaLiveChannelTeletextSourceSettings
+  :: MediaLiveChannelTeletextSourceSettings
+mediaLiveChannelTeletextSourceSettings  =
+  MediaLiveChannelTeletextSourceSettings
+  { _mediaLiveChannelTeletextSourceSettingsPageNumber = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-teletextsourcesettings.html#cfn-medialive-channel-teletextsourcesettings-pagenumber
+mlctssPageNumber :: Lens' MediaLiveChannelTeletextSourceSettings (Maybe (Val Text))
+mlctssPageNumber = lens _mediaLiveChannelTeletextSourceSettingsPageNumber (\s a -> s { _mediaLiveChannelTeletextSourceSettingsPageNumber = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelVideoSelector.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelVideoSelector.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelVideoSelector.hs
@@ -0,0 +1,52 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselector.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelVideoSelector where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.MediaLiveChannelVideoSelectorSettings
+
+-- | Full data type definition for MediaLiveChannelVideoSelector. See
+-- 'mediaLiveChannelVideoSelector' for a more convenient constructor.
+data MediaLiveChannelVideoSelector =
+  MediaLiveChannelVideoSelector
+  { _mediaLiveChannelVideoSelectorColorSpace :: Maybe (Val Text)
+  , _mediaLiveChannelVideoSelectorColorSpaceUsage :: Maybe (Val Text)
+  , _mediaLiveChannelVideoSelectorSelectorSettings :: Maybe MediaLiveChannelVideoSelectorSettings
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelVideoSelector where
+  toJSON MediaLiveChannelVideoSelector{..} =
+    object $
+    catMaybes
+    [ fmap (("ColorSpace",) . toJSON) _mediaLiveChannelVideoSelectorColorSpace
+    , fmap (("ColorSpaceUsage",) . toJSON) _mediaLiveChannelVideoSelectorColorSpaceUsage
+    , fmap (("SelectorSettings",) . toJSON) _mediaLiveChannelVideoSelectorSelectorSettings
+    ]
+
+-- | Constructor for 'MediaLiveChannelVideoSelector' containing required
+-- fields as arguments.
+mediaLiveChannelVideoSelector
+  :: MediaLiveChannelVideoSelector
+mediaLiveChannelVideoSelector  =
+  MediaLiveChannelVideoSelector
+  { _mediaLiveChannelVideoSelectorColorSpace = Nothing
+  , _mediaLiveChannelVideoSelectorColorSpaceUsage = Nothing
+  , _mediaLiveChannelVideoSelectorSelectorSettings = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselector.html#cfn-medialive-channel-videoselector-colorspace
+mlcvsColorSpace :: Lens' MediaLiveChannelVideoSelector (Maybe (Val Text))
+mlcvsColorSpace = lens _mediaLiveChannelVideoSelectorColorSpace (\s a -> s { _mediaLiveChannelVideoSelectorColorSpace = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselector.html#cfn-medialive-channel-videoselector-colorspaceusage
+mlcvsColorSpaceUsage :: Lens' MediaLiveChannelVideoSelector (Maybe (Val Text))
+mlcvsColorSpaceUsage = lens _mediaLiveChannelVideoSelectorColorSpaceUsage (\s a -> s { _mediaLiveChannelVideoSelectorColorSpaceUsage = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselector.html#cfn-medialive-channel-videoselector-selectorsettings
+mlcvsSelectorSettings :: Lens' MediaLiveChannelVideoSelector (Maybe MediaLiveChannelVideoSelectorSettings)
+mlcvsSelectorSettings = lens _mediaLiveChannelVideoSelectorSelectorSettings (\s a -> s { _mediaLiveChannelVideoSelectorSelectorSettings = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelVideoSelectorPid.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelVideoSelectorPid.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelVideoSelectorPid.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorpid.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelVideoSelectorPid where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for MediaLiveChannelVideoSelectorPid. See
+-- 'mediaLiveChannelVideoSelectorPid' for a more convenient constructor.
+data MediaLiveChannelVideoSelectorPid =
+  MediaLiveChannelVideoSelectorPid
+  { _mediaLiveChannelVideoSelectorPidPid :: Maybe (Val Integer)
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelVideoSelectorPid where
+  toJSON MediaLiveChannelVideoSelectorPid{..} =
+    object $
+    catMaybes
+    [ fmap (("Pid",) . toJSON) _mediaLiveChannelVideoSelectorPidPid
+    ]
+
+-- | Constructor for 'MediaLiveChannelVideoSelectorPid' containing required
+-- fields as arguments.
+mediaLiveChannelVideoSelectorPid
+  :: MediaLiveChannelVideoSelectorPid
+mediaLiveChannelVideoSelectorPid  =
+  MediaLiveChannelVideoSelectorPid
+  { _mediaLiveChannelVideoSelectorPidPid = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorpid.html#cfn-medialive-channel-videoselectorpid-pid
+mlcvspPid :: Lens' MediaLiveChannelVideoSelectorPid (Maybe (Val Integer))
+mlcvspPid = lens _mediaLiveChannelVideoSelectorPidPid (\s a -> s { _mediaLiveChannelVideoSelectorPidPid = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelVideoSelectorProgramId.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelVideoSelectorProgramId.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelVideoSelectorProgramId.hs
@@ -0,0 +1,39 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorprogramid.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelVideoSelectorProgramId where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for MediaLiveChannelVideoSelectorProgramId. See
+-- 'mediaLiveChannelVideoSelectorProgramId' for a more convenient
+-- constructor.
+data MediaLiveChannelVideoSelectorProgramId =
+  MediaLiveChannelVideoSelectorProgramId
+  { _mediaLiveChannelVideoSelectorProgramIdProgramId :: Maybe (Val Integer)
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelVideoSelectorProgramId where
+  toJSON MediaLiveChannelVideoSelectorProgramId{..} =
+    object $
+    catMaybes
+    [ fmap (("ProgramId",) . toJSON) _mediaLiveChannelVideoSelectorProgramIdProgramId
+    ]
+
+-- | Constructor for 'MediaLiveChannelVideoSelectorProgramId' containing
+-- required fields as arguments.
+mediaLiveChannelVideoSelectorProgramId
+  :: MediaLiveChannelVideoSelectorProgramId
+mediaLiveChannelVideoSelectorProgramId  =
+  MediaLiveChannelVideoSelectorProgramId
+  { _mediaLiveChannelVideoSelectorProgramIdProgramId = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorprogramid.html#cfn-medialive-channel-videoselectorprogramid-programid
+mlcvspiProgramId :: Lens' MediaLiveChannelVideoSelectorProgramId (Maybe (Val Integer))
+mlcvspiProgramId = lens _mediaLiveChannelVideoSelectorProgramIdProgramId (\s a -> s { _mediaLiveChannelVideoSelectorProgramIdProgramId = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelVideoSelectorSettings.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelVideoSelectorSettings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveChannelVideoSelectorSettings.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorsettings.html
+
+module Stratosphere.ResourceProperties.MediaLiveChannelVideoSelectorSettings where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.MediaLiveChannelVideoSelectorPid
+import Stratosphere.ResourceProperties.MediaLiveChannelVideoSelectorProgramId
+
+-- | Full data type definition for MediaLiveChannelVideoSelectorSettings. See
+-- 'mediaLiveChannelVideoSelectorSettings' for a more convenient
+-- constructor.
+data MediaLiveChannelVideoSelectorSettings =
+  MediaLiveChannelVideoSelectorSettings
+  { _mediaLiveChannelVideoSelectorSettingsVideoSelectorPid :: Maybe MediaLiveChannelVideoSelectorPid
+  , _mediaLiveChannelVideoSelectorSettingsVideoSelectorProgramId :: Maybe MediaLiveChannelVideoSelectorProgramId
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveChannelVideoSelectorSettings where
+  toJSON MediaLiveChannelVideoSelectorSettings{..} =
+    object $
+    catMaybes
+    [ fmap (("VideoSelectorPid",) . toJSON) _mediaLiveChannelVideoSelectorSettingsVideoSelectorPid
+    , fmap (("VideoSelectorProgramId",) . toJSON) _mediaLiveChannelVideoSelectorSettingsVideoSelectorProgramId
+    ]
+
+-- | Constructor for 'MediaLiveChannelVideoSelectorSettings' containing
+-- required fields as arguments.
+mediaLiveChannelVideoSelectorSettings
+  :: MediaLiveChannelVideoSelectorSettings
+mediaLiveChannelVideoSelectorSettings  =
+  MediaLiveChannelVideoSelectorSettings
+  { _mediaLiveChannelVideoSelectorSettingsVideoSelectorPid = Nothing
+  , _mediaLiveChannelVideoSelectorSettingsVideoSelectorProgramId = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorsettings.html#cfn-medialive-channel-videoselectorsettings-videoselectorpid
+mlcvssVideoSelectorPid :: Lens' MediaLiveChannelVideoSelectorSettings (Maybe MediaLiveChannelVideoSelectorPid)
+mlcvssVideoSelectorPid = lens _mediaLiveChannelVideoSelectorSettingsVideoSelectorPid (\s a -> s { _mediaLiveChannelVideoSelectorSettingsVideoSelectorPid = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorsettings.html#cfn-medialive-channel-videoselectorsettings-videoselectorprogramid
+mlcvssVideoSelectorProgramId :: Lens' MediaLiveChannelVideoSelectorSettings (Maybe MediaLiveChannelVideoSelectorProgramId)
+mlcvssVideoSelectorProgramId = lens _mediaLiveChannelVideoSelectorSettingsVideoSelectorProgramId (\s a -> s { _mediaLiveChannelVideoSelectorSettingsVideoSelectorProgramId = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveInputInputDestinationRequest.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveInputInputDestinationRequest.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveInputInputDestinationRequest.hs
@@ -0,0 +1,39 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputdestinationrequest.html
+
+module Stratosphere.ResourceProperties.MediaLiveInputInputDestinationRequest where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for MediaLiveInputInputDestinationRequest. See
+-- 'mediaLiveInputInputDestinationRequest' for a more convenient
+-- constructor.
+data MediaLiveInputInputDestinationRequest =
+  MediaLiveInputInputDestinationRequest
+  { _mediaLiveInputInputDestinationRequestStreamName :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveInputInputDestinationRequest where
+  toJSON MediaLiveInputInputDestinationRequest{..} =
+    object $
+    catMaybes
+    [ fmap (("StreamName",) . toJSON) _mediaLiveInputInputDestinationRequestStreamName
+    ]
+
+-- | Constructor for 'MediaLiveInputInputDestinationRequest' containing
+-- required fields as arguments.
+mediaLiveInputInputDestinationRequest
+  :: MediaLiveInputInputDestinationRequest
+mediaLiveInputInputDestinationRequest  =
+  MediaLiveInputInputDestinationRequest
+  { _mediaLiveInputInputDestinationRequestStreamName = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputdestinationrequest.html#cfn-medialive-input-inputdestinationrequest-streamname
+mliidrStreamName :: Lens' MediaLiveInputInputDestinationRequest (Maybe (Val Text))
+mliidrStreamName = lens _mediaLiveInputInputDestinationRequestStreamName (\s a -> s { _mediaLiveInputInputDestinationRequestStreamName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveInputInputSourceRequest.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveInputInputSourceRequest.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveInputInputSourceRequest.hs
@@ -0,0 +1,52 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputsourcerequest.html
+
+module Stratosphere.ResourceProperties.MediaLiveInputInputSourceRequest where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for MediaLiveInputInputSourceRequest. See
+-- 'mediaLiveInputInputSourceRequest' for a more convenient constructor.
+data MediaLiveInputInputSourceRequest =
+  MediaLiveInputInputSourceRequest
+  { _mediaLiveInputInputSourceRequestPasswordParam :: Maybe (Val Text)
+  , _mediaLiveInputInputSourceRequestUrl :: Maybe (Val Text)
+  , _mediaLiveInputInputSourceRequestUsername :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveInputInputSourceRequest where
+  toJSON MediaLiveInputInputSourceRequest{..} =
+    object $
+    catMaybes
+    [ fmap (("PasswordParam",) . toJSON) _mediaLiveInputInputSourceRequestPasswordParam
+    , fmap (("Url",) . toJSON) _mediaLiveInputInputSourceRequestUrl
+    , fmap (("Username",) . toJSON) _mediaLiveInputInputSourceRequestUsername
+    ]
+
+-- | Constructor for 'MediaLiveInputInputSourceRequest' containing required
+-- fields as arguments.
+mediaLiveInputInputSourceRequest
+  :: MediaLiveInputInputSourceRequest
+mediaLiveInputInputSourceRequest  =
+  MediaLiveInputInputSourceRequest
+  { _mediaLiveInputInputSourceRequestPasswordParam = Nothing
+  , _mediaLiveInputInputSourceRequestUrl = Nothing
+  , _mediaLiveInputInputSourceRequestUsername = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputsourcerequest.html#cfn-medialive-input-inputsourcerequest-passwordparam
+mliisrPasswordParam :: Lens' MediaLiveInputInputSourceRequest (Maybe (Val Text))
+mliisrPasswordParam = lens _mediaLiveInputInputSourceRequestPasswordParam (\s a -> s { _mediaLiveInputInputSourceRequestPasswordParam = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputsourcerequest.html#cfn-medialive-input-inputsourcerequest-url
+mliisrUrl :: Lens' MediaLiveInputInputSourceRequest (Maybe (Val Text))
+mliisrUrl = lens _mediaLiveInputInputSourceRequestUrl (\s a -> s { _mediaLiveInputInputSourceRequestUrl = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputsourcerequest.html#cfn-medialive-input-inputsourcerequest-username
+mliisrUsername :: Lens' MediaLiveInputInputSourceRequest (Maybe (Val Text))
+mliisrUsername = lens _mediaLiveInputInputSourceRequestUsername (\s a -> s { _mediaLiveInputInputSourceRequestUsername = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveInputInputVpcRequest.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveInputInputVpcRequest.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveInputInputVpcRequest.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputvpcrequest.html
+
+module Stratosphere.ResourceProperties.MediaLiveInputInputVpcRequest where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for MediaLiveInputInputVpcRequest. See
+-- 'mediaLiveInputInputVpcRequest' for a more convenient constructor.
+data MediaLiveInputInputVpcRequest =
+  MediaLiveInputInputVpcRequest
+  { _mediaLiveInputInputVpcRequestSecurityGroupIds :: Maybe (ValList Text)
+  , _mediaLiveInputInputVpcRequestSubnetIds :: Maybe (ValList Text)
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveInputInputVpcRequest where
+  toJSON MediaLiveInputInputVpcRequest{..} =
+    object $
+    catMaybes
+    [ fmap (("SecurityGroupIds",) . toJSON) _mediaLiveInputInputVpcRequestSecurityGroupIds
+    , fmap (("SubnetIds",) . toJSON) _mediaLiveInputInputVpcRequestSubnetIds
+    ]
+
+-- | Constructor for 'MediaLiveInputInputVpcRequest' containing required
+-- fields as arguments.
+mediaLiveInputInputVpcRequest
+  :: MediaLiveInputInputVpcRequest
+mediaLiveInputInputVpcRequest  =
+  MediaLiveInputInputVpcRequest
+  { _mediaLiveInputInputVpcRequestSecurityGroupIds = Nothing
+  , _mediaLiveInputInputVpcRequestSubnetIds = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputvpcrequest.html#cfn-medialive-input-inputvpcrequest-securitygroupids
+mliivrSecurityGroupIds :: Lens' MediaLiveInputInputVpcRequest (Maybe (ValList Text))
+mliivrSecurityGroupIds = lens _mediaLiveInputInputVpcRequestSecurityGroupIds (\s a -> s { _mediaLiveInputInputVpcRequestSecurityGroupIds = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputvpcrequest.html#cfn-medialive-input-inputvpcrequest-subnetids
+mliivrSubnetIds :: Lens' MediaLiveInputInputVpcRequest (Maybe (ValList Text))
+mliivrSubnetIds = lens _mediaLiveInputInputVpcRequestSubnetIds (\s a -> s { _mediaLiveInputInputVpcRequestSubnetIds = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveInputMediaConnectFlowRequest.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveInputMediaConnectFlowRequest.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveInputMediaConnectFlowRequest.hs
@@ -0,0 +1,39 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-mediaconnectflowrequest.html
+
+module Stratosphere.ResourceProperties.MediaLiveInputMediaConnectFlowRequest where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for MediaLiveInputMediaConnectFlowRequest. See
+-- 'mediaLiveInputMediaConnectFlowRequest' for a more convenient
+-- constructor.
+data MediaLiveInputMediaConnectFlowRequest =
+  MediaLiveInputMediaConnectFlowRequest
+  { _mediaLiveInputMediaConnectFlowRequestFlowArn :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveInputMediaConnectFlowRequest where
+  toJSON MediaLiveInputMediaConnectFlowRequest{..} =
+    object $
+    catMaybes
+    [ fmap (("FlowArn",) . toJSON) _mediaLiveInputMediaConnectFlowRequestFlowArn
+    ]
+
+-- | Constructor for 'MediaLiveInputMediaConnectFlowRequest' containing
+-- required fields as arguments.
+mediaLiveInputMediaConnectFlowRequest
+  :: MediaLiveInputMediaConnectFlowRequest
+mediaLiveInputMediaConnectFlowRequest  =
+  MediaLiveInputMediaConnectFlowRequest
+  { _mediaLiveInputMediaConnectFlowRequestFlowArn = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-mediaconnectflowrequest.html#cfn-medialive-input-mediaconnectflowrequest-flowarn
+mlimcfrFlowArn :: Lens' MediaLiveInputMediaConnectFlowRequest (Maybe (Val Text))
+mlimcfrFlowArn = lens _mediaLiveInputMediaConnectFlowRequestFlowArn (\s a -> s { _mediaLiveInputMediaConnectFlowRequestFlowArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/MediaLiveInputSecurityGroupInputWhitelistRuleCidr.hs b/library-gen/Stratosphere/ResourceProperties/MediaLiveInputSecurityGroupInputWhitelistRuleCidr.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/MediaLiveInputSecurityGroupInputWhitelistRuleCidr.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-inputsecuritygroup-inputwhitelistrulecidr.html
+
+module Stratosphere.ResourceProperties.MediaLiveInputSecurityGroupInputWhitelistRuleCidr where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- MediaLiveInputSecurityGroupInputWhitelistRuleCidr. See
+-- 'mediaLiveInputSecurityGroupInputWhitelistRuleCidr' for a more convenient
+-- constructor.
+data MediaLiveInputSecurityGroupInputWhitelistRuleCidr =
+  MediaLiveInputSecurityGroupInputWhitelistRuleCidr
+  { _mediaLiveInputSecurityGroupInputWhitelistRuleCidrCidr :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON MediaLiveInputSecurityGroupInputWhitelistRuleCidr where
+  toJSON MediaLiveInputSecurityGroupInputWhitelistRuleCidr{..} =
+    object $
+    catMaybes
+    [ fmap (("Cidr",) . toJSON) _mediaLiveInputSecurityGroupInputWhitelistRuleCidrCidr
+    ]
+
+-- | Constructor for 'MediaLiveInputSecurityGroupInputWhitelistRuleCidr'
+-- containing required fields as arguments.
+mediaLiveInputSecurityGroupInputWhitelistRuleCidr
+  :: MediaLiveInputSecurityGroupInputWhitelistRuleCidr
+mediaLiveInputSecurityGroupInputWhitelistRuleCidr  =
+  MediaLiveInputSecurityGroupInputWhitelistRuleCidr
+  { _mediaLiveInputSecurityGroupInputWhitelistRuleCidrCidr = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-inputsecuritygroup-inputwhitelistrulecidr.html#cfn-medialive-inputsecuritygroup-inputwhitelistrulecidr-cidr
+mlisgiwrcCidr :: Lens' MediaLiveInputSecurityGroupInputWhitelistRuleCidr (Maybe (Val Text))
+mlisgiwrcCidr = lens _mediaLiveInputSecurityGroupInputWhitelistRuleCidrCidr (\s a -> s { _mediaLiveInputSecurityGroupInputWhitelistRuleCidrCidr = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/RDSDBClusterDBClusterRole.hs b/library-gen/Stratosphere/ResourceProperties/RDSDBClusterDBClusterRole.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/RDSDBClusterDBClusterRole.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-dbclusterrole.html
+
+module Stratosphere.ResourceProperties.RDSDBClusterDBClusterRole where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for RDSDBClusterDBClusterRole. See
+-- 'rdsdbClusterDBClusterRole' for a more convenient constructor.
+data RDSDBClusterDBClusterRole =
+  RDSDBClusterDBClusterRole
+  { _rDSDBClusterDBClusterRoleFeatureName :: Maybe (Val Text)
+  , _rDSDBClusterDBClusterRoleRoleArn :: Val Text
+  , _rDSDBClusterDBClusterRoleStatus :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON RDSDBClusterDBClusterRole where
+  toJSON RDSDBClusterDBClusterRole{..} =
+    object $
+    catMaybes
+    [ fmap (("FeatureName",) . toJSON) _rDSDBClusterDBClusterRoleFeatureName
+    , (Just . ("RoleArn",) . toJSON) _rDSDBClusterDBClusterRoleRoleArn
+    , fmap (("Status",) . toJSON) _rDSDBClusterDBClusterRoleStatus
+    ]
+
+-- | Constructor for 'RDSDBClusterDBClusterRole' containing required fields as
+-- arguments.
+rdsdbClusterDBClusterRole
+  :: Val Text -- ^ 'rdsdbcdbcrRoleArn'
+  -> RDSDBClusterDBClusterRole
+rdsdbClusterDBClusterRole roleArnarg =
+  RDSDBClusterDBClusterRole
+  { _rDSDBClusterDBClusterRoleFeatureName = Nothing
+  , _rDSDBClusterDBClusterRoleRoleArn = roleArnarg
+  , _rDSDBClusterDBClusterRoleStatus = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-dbclusterrole.html#cfn-rds-dbcluster-dbclusterrole-featurename
+rdsdbcdbcrFeatureName :: Lens' RDSDBClusterDBClusterRole (Maybe (Val Text))
+rdsdbcdbcrFeatureName = lens _rDSDBClusterDBClusterRoleFeatureName (\s a -> s { _rDSDBClusterDBClusterRoleFeatureName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-dbclusterrole.html#cfn-rds-dbcluster-dbclusterrole-rolearn
+rdsdbcdbcrRoleArn :: Lens' RDSDBClusterDBClusterRole (Val Text)
+rdsdbcdbcrRoleArn = lens _rDSDBClusterDBClusterRoleRoleArn (\s a -> s { _rDSDBClusterDBClusterRoleRoleArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-dbclusterrole.html#cfn-rds-dbcluster-dbclusterrole-status
+rdsdbcdbcrStatus :: Lens' RDSDBClusterDBClusterRole (Maybe (Val Text))
+rdsdbcdbcrStatus = lens _rDSDBClusterDBClusterRoleStatus (\s a -> s { _rDSDBClusterDBClusterRoleStatus = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/RDSDBInstanceDBInstanceRole.hs b/library-gen/Stratosphere/ResourceProperties/RDSDBInstanceDBInstanceRole.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/RDSDBInstanceDBInstanceRole.hs
@@ -0,0 +1,54 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbinstance-dbinstancerole.html
+
+module Stratosphere.ResourceProperties.RDSDBInstanceDBInstanceRole where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for RDSDBInstanceDBInstanceRole. See
+-- 'rdsdbInstanceDBInstanceRole' for a more convenient constructor.
+data RDSDBInstanceDBInstanceRole =
+  RDSDBInstanceDBInstanceRole
+  { _rDSDBInstanceDBInstanceRoleFeatureName :: Val Text
+  , _rDSDBInstanceDBInstanceRoleRoleArn :: Val Text
+  , _rDSDBInstanceDBInstanceRoleStatus :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON RDSDBInstanceDBInstanceRole where
+  toJSON RDSDBInstanceDBInstanceRole{..} =
+    object $
+    catMaybes
+    [ (Just . ("FeatureName",) . toJSON) _rDSDBInstanceDBInstanceRoleFeatureName
+    , (Just . ("RoleArn",) . toJSON) _rDSDBInstanceDBInstanceRoleRoleArn
+    , fmap (("Status",) . toJSON) _rDSDBInstanceDBInstanceRoleStatus
+    ]
+
+-- | Constructor for 'RDSDBInstanceDBInstanceRole' containing required fields
+-- as arguments.
+rdsdbInstanceDBInstanceRole
+  :: Val Text -- ^ 'rdsdbidbirFeatureName'
+  -> Val Text -- ^ 'rdsdbidbirRoleArn'
+  -> RDSDBInstanceDBInstanceRole
+rdsdbInstanceDBInstanceRole featureNamearg roleArnarg =
+  RDSDBInstanceDBInstanceRole
+  { _rDSDBInstanceDBInstanceRoleFeatureName = featureNamearg
+  , _rDSDBInstanceDBInstanceRoleRoleArn = roleArnarg
+  , _rDSDBInstanceDBInstanceRoleStatus = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbinstance-dbinstancerole.html#cfn-rds-dbinstance-dbinstancerole-featurename
+rdsdbidbirFeatureName :: Lens' RDSDBInstanceDBInstanceRole (Val Text)
+rdsdbidbirFeatureName = lens _rDSDBInstanceDBInstanceRoleFeatureName (\s a -> s { _rDSDBInstanceDBInstanceRoleFeatureName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbinstance-dbinstancerole.html#cfn-rds-dbinstance-dbinstancerole-rolearn
+rdsdbidbirRoleArn :: Lens' RDSDBInstanceDBInstanceRole (Val Text)
+rdsdbidbirRoleArn = lens _rDSDBInstanceDBInstanceRoleRoleArn (\s a -> s { _rDSDBInstanceDBInstanceRoleRoleArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbinstance-dbinstancerole.html#cfn-rds-dbinstance-dbinstancerole-status
+rdsdbidbirStatus :: Lens' RDSDBInstanceDBInstanceRole (Maybe (Val Text))
+rdsdbidbirStatus = lens _rDSDBInstanceDBInstanceRoleStatus (\s a -> s { _rDSDBInstanceDBInstanceRoleStatus = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/Route53ResolverResolverRuleTargetAddress.hs b/library-gen/Stratosphere/ResourceProperties/Route53ResolverResolverRuleTargetAddress.hs
--- a/library-gen/Stratosphere/ResourceProperties/Route53ResolverResolverRuleTargetAddress.hs
+++ b/library-gen/Stratosphere/ResourceProperties/Route53ResolverResolverRuleTargetAddress.hs
@@ -16,7 +16,7 @@
 data Route53ResolverResolverRuleTargetAddress =
   Route53ResolverResolverRuleTargetAddress
   { _route53ResolverResolverRuleTargetAddressIp :: Val Text
-  , _route53ResolverResolverRuleTargetAddressPort :: Val Text
+  , _route53ResolverResolverRuleTargetAddressPort :: Maybe (Val Text)
   } deriving (Show, Eq)
 
 instance ToJSON Route53ResolverResolverRuleTargetAddress where
@@ -24,19 +24,18 @@
     object $
     catMaybes
     [ (Just . ("Ip",) . toJSON) _route53ResolverResolverRuleTargetAddressIp
-    , (Just . ("Port",) . toJSON) _route53ResolverResolverRuleTargetAddressPort
+    , fmap (("Port",) . toJSON) _route53ResolverResolverRuleTargetAddressPort
     ]
 
 -- | Constructor for 'Route53ResolverResolverRuleTargetAddress' containing
 -- required fields as arguments.
 route53ResolverResolverRuleTargetAddress
   :: Val Text -- ^ 'rrrrtaIp'
-  -> Val Text -- ^ 'rrrrtaPort'
   -> Route53ResolverResolverRuleTargetAddress
-route53ResolverResolverRuleTargetAddress iparg portarg =
+route53ResolverResolverRuleTargetAddress iparg =
   Route53ResolverResolverRuleTargetAddress
   { _route53ResolverResolverRuleTargetAddressIp = iparg
-  , _route53ResolverResolverRuleTargetAddressPort = portarg
+  , _route53ResolverResolverRuleTargetAddressPort = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53resolver-resolverrule-targetaddress.html#cfn-route53resolver-resolverrule-targetaddress-ip
@@ -44,5 +43,5 @@
 rrrrtaIp = lens _route53ResolverResolverRuleTargetAddressIp (\s a -> s { _route53ResolverResolverRuleTargetAddressIp = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53resolver-resolverrule-targetaddress.html#cfn-route53resolver-resolverrule-targetaddress-port
-rrrrtaPort :: Lens' Route53ResolverResolverRuleTargetAddress (Val Text)
+rrrrtaPort :: Lens' Route53ResolverResolverRuleTargetAddress (Maybe (Val Text))
 rrrrtaPort = lens _route53ResolverResolverRuleTargetAddressPort (\s a -> s { _route53ResolverResolverRuleTargetAddressPort = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences.hs b/library-gen/Stratosphere/ResourceProperties/ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences.hs
@@ -0,0 +1,84 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences.html
+
+module Stratosphere.ResourceProperties.ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences.
+-- See
+-- 'serviceCatalogCloudFormationProvisionedProductProvisioningPreferences'
+-- for a more convenient constructor.
+data ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences =
+  ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences
+  { _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetAccounts :: Maybe (ValList Text)
+  , _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetFailureToleranceCount :: Maybe (Val Integer)
+  , _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetFailureTolerancePercentage :: Maybe (Val Integer)
+  , _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetMaxConcurrencyCount :: Maybe (Val Integer)
+  , _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetMaxConcurrencyPercentage :: Maybe (Val Integer)
+  , _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetOperationType :: Maybe (Val Text)
+  , _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetRegions :: Maybe (ValList Text)
+  } deriving (Show, Eq)
+
+instance ToJSON ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences where
+  toJSON ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences{..} =
+    object $
+    catMaybes
+    [ fmap (("StackSetAccounts",) . toJSON) _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetAccounts
+    , fmap (("StackSetFailureToleranceCount",) . toJSON) _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetFailureToleranceCount
+    , fmap (("StackSetFailureTolerancePercentage",) . toJSON) _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetFailureTolerancePercentage
+    , fmap (("StackSetMaxConcurrencyCount",) . toJSON) _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetMaxConcurrencyCount
+    , fmap (("StackSetMaxConcurrencyPercentage",) . toJSON) _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetMaxConcurrencyPercentage
+    , fmap (("StackSetOperationType",) . toJSON) _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetOperationType
+    , fmap (("StackSetRegions",) . toJSON) _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetRegions
+    ]
+
+-- | Constructor for
+-- 'ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences'
+-- containing required fields as arguments.
+serviceCatalogCloudFormationProvisionedProductProvisioningPreferences
+  :: ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences
+serviceCatalogCloudFormationProvisionedProductProvisioningPreferences  =
+  ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences
+  { _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetAccounts = Nothing
+  , _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetFailureToleranceCount = Nothing
+  , _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetFailureTolerancePercentage = Nothing
+  , _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetMaxConcurrencyCount = Nothing
+  , _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetMaxConcurrencyPercentage = Nothing
+  , _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetOperationType = Nothing
+  , _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetRegions = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences-stacksetaccounts
+sccfppppStackSetAccounts :: Lens' ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences (Maybe (ValList Text))
+sccfppppStackSetAccounts = lens _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetAccounts (\s a -> s { _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetAccounts = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences-stacksetfailuretolerancecount
+sccfppppStackSetFailureToleranceCount :: Lens' ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences (Maybe (Val Integer))
+sccfppppStackSetFailureToleranceCount = lens _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetFailureToleranceCount (\s a -> s { _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetFailureToleranceCount = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences-stacksetfailuretolerancepercentage
+sccfppppStackSetFailureTolerancePercentage :: Lens' ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences (Maybe (Val Integer))
+sccfppppStackSetFailureTolerancePercentage = lens _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetFailureTolerancePercentage (\s a -> s { _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetFailureTolerancePercentage = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences-stacksetmaxconcurrencycount
+sccfppppStackSetMaxConcurrencyCount :: Lens' ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences (Maybe (Val Integer))
+sccfppppStackSetMaxConcurrencyCount = lens _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetMaxConcurrencyCount (\s a -> s { _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetMaxConcurrencyCount = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences-stacksetmaxconcurrencypercentage
+sccfppppStackSetMaxConcurrencyPercentage :: Lens' ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences (Maybe (Val Integer))
+sccfppppStackSetMaxConcurrencyPercentage = lens _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetMaxConcurrencyPercentage (\s a -> s { _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetMaxConcurrencyPercentage = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences-stacksetoperationtype
+sccfppppStackSetOperationType :: Lens' ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences (Maybe (Val Text))
+sccfppppStackSetOperationType = lens _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetOperationType (\s a -> s { _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetOperationType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences-stacksetregions
+sccfppppStackSetRegions :: Lens' ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences (Maybe (ValList Text))
+sccfppppStackSetRegions = lens _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetRegions (\s a -> s { _serviceCatalogCloudFormationProvisionedProductProvisioningPreferencesStackSetRegions = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/Tag.hs b/library-gen/Stratosphere/ResourceProperties/Tag.hs
--- a/library-gen/Stratosphere/ResourceProperties/Tag.hs
+++ b/library-gen/Stratosphere/ResourceProperties/Tag.hs
@@ -3,7 +3,7 @@
 {-# LANGUAGE StrictData #-}
 {-# LANGUAGE TupleSections #-}
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-branch-tag.html
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html
 
 module Stratosphere.ResourceProperties.Tag where
 
@@ -37,10 +37,10 @@
   , _tagValue = valuearg
   }
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-branch-tag.html#cfn-amplify-branch-tag-key
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html#cfn-resource-tags-key
 tagKey :: Lens' Tag (Val Text)
 tagKey = lens _tagKey (\s a -> s { _tagKey = a })
 
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-branch-tag.html#cfn-amplify-branch-tag-value
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html#cfn-resource-tags-value
 tagValue :: Lens' Tag (Val Text)
 tagValue = lens _tagValue (\s a -> s { _tagValue = 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
@@ -107,6 +107,9 @@
 import Stratosphere.Resources.AutoScalingScalingPolicy as X
 import Stratosphere.Resources.AutoScalingScheduledAction as X
 import Stratosphere.Resources.AutoScalingPlansScalingPlan as X
+import Stratosphere.Resources.BackupBackupPlan as X
+import Stratosphere.Resources.BackupBackupSelection as X
+import Stratosphere.Resources.BackupBackupVault as X
 import Stratosphere.Resources.BatchComputeEnvironment as X
 import Stratosphere.Resources.BatchJobDefinition as X
 import Stratosphere.Resources.BatchJobQueue as X
@@ -144,6 +147,7 @@
 import Stratosphere.Resources.ConfigConfigurationAggregator as X
 import Stratosphere.Resources.ConfigConfigurationRecorder as X
 import Stratosphere.Resources.ConfigDeliveryChannel as X
+import Stratosphere.Resources.ConfigRemediationConfiguration as X
 import Stratosphere.Resources.DAXCluster as X
 import Stratosphere.Resources.DAXParameterGroup as X
 import Stratosphere.Resources.DAXSubnetGroup as X
@@ -334,6 +338,9 @@
 import Stratosphere.Resources.LogsMetricFilter as X
 import Stratosphere.Resources.LogsSubscriptionFilter as X
 import Stratosphere.Resources.MSKCluster as X
+import Stratosphere.Resources.MediaLiveChannel as X
+import Stratosphere.Resources.MediaLiveInput as X
+import Stratosphere.Resources.MediaLiveInputSecurityGroup as X
 import Stratosphere.Resources.MediaStoreContainer as X
 import Stratosphere.Resources.NeptuneDBCluster as X
 import Stratosphere.Resources.NeptuneDBClusterParameterGroup as X
@@ -425,6 +432,7 @@
 import Stratosphere.Resources.SecretsManagerRotationSchedule as X
 import Stratosphere.Resources.SecretsManagerSecret as X
 import Stratosphere.Resources.SecretsManagerSecretTargetAttachment as X
+import Stratosphere.Resources.SecurityHubHub as X
 import Stratosphere.Resources.ServiceCatalogAcceptedPortfolioShare as X
 import Stratosphere.Resources.ServiceCatalogCloudFormationProduct as X
 import Stratosphere.Resources.ServiceCatalogCloudFormationProvisionedProduct as X
@@ -436,6 +444,7 @@
 import Stratosphere.Resources.ServiceCatalogPortfolioProductAssociation as X
 import Stratosphere.Resources.ServiceCatalogPortfolioShare as X
 import Stratosphere.Resources.ServiceCatalogResourceUpdateConstraint as X
+import Stratosphere.Resources.ServiceCatalogStackSetConstraint as X
 import Stratosphere.Resources.ServiceCatalogTagOption as X
 import Stratosphere.Resources.ServiceCatalogTagOptionAssociation as X
 import Stratosphere.Resources.ServiceDiscoveryHttpNamespace as X
@@ -477,7 +486,6 @@
 import Stratosphere.ResourceProperties.AmplifyAppBasicAuthConfig as X
 import Stratosphere.ResourceProperties.AmplifyAppCustomRule as X
 import Stratosphere.ResourceProperties.AmplifyAppEnvironmentVariable as X
-import Stratosphere.ResourceProperties.AmplifyAppToken as X
 import Stratosphere.ResourceProperties.AmplifyBranchBasicAuthConfig as X
 import Stratosphere.ResourceProperties.AmplifyBranchEnvironmentVariable as X
 import Stratosphere.ResourceProperties.AmplifyDomainSubDomainSetting as X
@@ -507,16 +515,16 @@
 import Stratosphere.ResourceProperties.ApiGatewayV2StageRouteSettings as X
 import Stratosphere.ResourceProperties.AppMeshMeshEgressFilter as X
 import Stratosphere.ResourceProperties.AppMeshMeshMeshSpec as X
-import Stratosphere.ResourceProperties.AppMeshMeshTagRef as X
 import Stratosphere.ResourceProperties.AppMeshRouteHttpRoute as X
 import Stratosphere.ResourceProperties.AppMeshRouteHttpRouteAction as X
 import Stratosphere.ResourceProperties.AppMeshRouteHttpRouteMatch as X
 import Stratosphere.ResourceProperties.AppMeshRouteRouteSpec as X
-import Stratosphere.ResourceProperties.AppMeshRouteTagRef as X
 import Stratosphere.ResourceProperties.AppMeshRouteTcpRoute as X
 import Stratosphere.ResourceProperties.AppMeshRouteTcpRouteAction as X
 import Stratosphere.ResourceProperties.AppMeshRouteWeightedTarget as X
 import Stratosphere.ResourceProperties.AppMeshVirtualNodeAccessLog as X
+import Stratosphere.ResourceProperties.AppMeshVirtualNodeAwsCloudMapInstanceAttribute as X
+import Stratosphere.ResourceProperties.AppMeshVirtualNodeAwsCloudMapServiceDiscovery as X
 import Stratosphere.ResourceProperties.AppMeshVirtualNodeBackend as X
 import Stratosphere.ResourceProperties.AppMeshVirtualNodeDnsServiceDiscovery as X
 import Stratosphere.ResourceProperties.AppMeshVirtualNodeFileAccessLog as X
@@ -525,14 +533,11 @@
 import Stratosphere.ResourceProperties.AppMeshVirtualNodeLogging as X
 import Stratosphere.ResourceProperties.AppMeshVirtualNodePortMapping as X
 import Stratosphere.ResourceProperties.AppMeshVirtualNodeServiceDiscovery as X
-import Stratosphere.ResourceProperties.AppMeshVirtualNodeTagRef as X
 import Stratosphere.ResourceProperties.AppMeshVirtualNodeVirtualNodeSpec as X
 import Stratosphere.ResourceProperties.AppMeshVirtualNodeVirtualServiceBackend as X
 import Stratosphere.ResourceProperties.AppMeshVirtualRouterPortMapping as X
-import Stratosphere.ResourceProperties.AppMeshVirtualRouterTagRef as X
 import Stratosphere.ResourceProperties.AppMeshVirtualRouterVirtualRouterListener as X
 import Stratosphere.ResourceProperties.AppMeshVirtualRouterVirtualRouterSpec as X
-import Stratosphere.ResourceProperties.AppMeshVirtualServiceTagRef as X
 import Stratosphere.ResourceProperties.AppMeshVirtualServiceVirtualNodeServiceProvider as X
 import Stratosphere.ResourceProperties.AppMeshVirtualServiceVirtualRouterServiceProvider as X
 import Stratosphere.ResourceProperties.AppMeshVirtualServiceVirtualServiceProvider as X
@@ -593,6 +598,12 @@
 import Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanScalingInstruction as X
 import Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanTagFilter as X
 import Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanTargetTrackingConfiguration as X
+import Stratosphere.ResourceProperties.BackupBackupPlanBackupPlanResourceType as X
+import Stratosphere.ResourceProperties.BackupBackupPlanBackupRuleResourceType as X
+import Stratosphere.ResourceProperties.BackupBackupPlanLifecycleResourceType as X
+import Stratosphere.ResourceProperties.BackupBackupSelectionBackupSelectionResourceType as X
+import Stratosphere.ResourceProperties.BackupBackupSelectionConditionResourceType as X
+import Stratosphere.ResourceProperties.BackupBackupVaultNotificationObjectType as X
 import Stratosphere.ResourceProperties.BatchComputeEnvironmentComputeResources as X
 import Stratosphere.ResourceProperties.BatchComputeEnvironmentLaunchTemplateSpecification as X
 import Stratosphere.ResourceProperties.BatchJobDefinitionContainerProperties as X
@@ -719,6 +730,9 @@
 import Stratosphere.ResourceProperties.ConfigConfigurationAggregatorOrganizationAggregationSource as X
 import Stratosphere.ResourceProperties.ConfigConfigurationRecorderRecordingGroup as X
 import Stratosphere.ResourceProperties.ConfigDeliveryChannelConfigSnapshotDeliveryProperties as X
+import Stratosphere.ResourceProperties.ConfigRemediationConfigurationRemediationParameterValue as X
+import Stratosphere.ResourceProperties.ConfigRemediationConfigurationResourceValue as X
+import Stratosphere.ResourceProperties.ConfigRemediationConfigurationStaticValue as X
 import Stratosphere.ResourceProperties.DAXClusterSSESpecification as X
 import Stratosphere.ResourceProperties.DLMLifecyclePolicyCreateRule as X
 import Stratosphere.ResourceProperties.DLMLifecyclePolicyParameters as X
@@ -764,6 +778,7 @@
 import Stratosphere.ResourceProperties.EC2EC2FleetTargetCapacitySpecificationRequest as X
 import Stratosphere.ResourceProperties.EC2InstanceAssociationParameter as X
 import Stratosphere.ResourceProperties.EC2InstanceBlockDeviceMapping as X
+import Stratosphere.ResourceProperties.EC2InstanceCpuOptions as X
 import Stratosphere.ResourceProperties.EC2InstanceCreditSpecification as X
 import Stratosphere.ResourceProperties.EC2InstanceEbs as X
 import Stratosphere.ResourceProperties.EC2InstanceElasticGpuSpecification as X
@@ -848,6 +863,7 @@
 import Stratosphere.ResourceProperties.ECSTaskDefinitionRepositoryCredentials as X
 import Stratosphere.ResourceProperties.ECSTaskDefinitionResourceRequirement as X
 import Stratosphere.ResourceProperties.ECSTaskDefinitionSecret as X
+import Stratosphere.ResourceProperties.ECSTaskDefinitionSystemControl as X
 import Stratosphere.ResourceProperties.ECSTaskDefinitionTaskDefinitionPlacementConstraint as X
 import Stratosphere.ResourceProperties.ECSTaskDefinitionTmpfs as X
 import Stratosphere.ResourceProperties.ECSTaskDefinitionUlimit as X
@@ -953,9 +969,11 @@
 import Stratosphere.ResourceProperties.ElasticsearchDomainSnapshotOptions as X
 import Stratosphere.ResourceProperties.ElasticsearchDomainVPCOptions as X
 import Stratosphere.ResourceProperties.EventsEventBusPolicyCondition as X
+import Stratosphere.ResourceProperties.EventsRuleAwsVpcConfiguration as X
 import Stratosphere.ResourceProperties.EventsRuleEcsParameters as X
 import Stratosphere.ResourceProperties.EventsRuleInputTransformer as X
 import Stratosphere.ResourceProperties.EventsRuleKinesisParameters as X
+import Stratosphere.ResourceProperties.EventsRuleNetworkConfiguration as X
 import Stratosphere.ResourceProperties.EventsRuleRunCommandParameters as X
 import Stratosphere.ResourceProperties.EventsRuleRunCommandTarget as X
 import Stratosphere.ResourceProperties.EventsRuleSqsParameters as X
@@ -1076,7 +1094,10 @@
 import Stratosphere.ResourceProperties.IoTTopicRuleSqsAction as X
 import Stratosphere.ResourceProperties.IoTTopicRuleStepFunctionsAction as X
 import Stratosphere.ResourceProperties.IoTTopicRuleTopicRulePayload as X
+import Stratosphere.ResourceProperties.IoTAnalyticsChannelChannelStorage as X
+import Stratosphere.ResourceProperties.IoTAnalyticsChannelCustomerManagedS3 as X
 import Stratosphere.ResourceProperties.IoTAnalyticsChannelRetentionPeriod as X
+import Stratosphere.ResourceProperties.IoTAnalyticsChannelServiceManagedS3 as X
 import Stratosphere.ResourceProperties.IoTAnalyticsDatasetAction as X
 import Stratosphere.ResourceProperties.IoTAnalyticsDatasetContainerAction as X
 import Stratosphere.ResourceProperties.IoTAnalyticsDatasetDatasetContentDeliveryRule as X
@@ -1096,7 +1117,10 @@
 import Stratosphere.ResourceProperties.IoTAnalyticsDatasetTriggeringDataset as X
 import Stratosphere.ResourceProperties.IoTAnalyticsDatasetVariable as X
 import Stratosphere.ResourceProperties.IoTAnalyticsDatasetVersioningConfiguration as X
+import Stratosphere.ResourceProperties.IoTAnalyticsDatastoreCustomerManagedS3 as X
+import Stratosphere.ResourceProperties.IoTAnalyticsDatastoreDatastoreStorage as X
 import Stratosphere.ResourceProperties.IoTAnalyticsDatastoreRetentionPeriod as X
+import Stratosphere.ResourceProperties.IoTAnalyticsDatastoreServiceManagedS3 as X
 import Stratosphere.ResourceProperties.IoTAnalyticsPipelineActivity as X
 import Stratosphere.ResourceProperties.IoTAnalyticsPipelineAddAttributes as X
 import Stratosphere.ResourceProperties.IoTAnalyticsPipelineChannel as X
@@ -1218,6 +1242,35 @@
 import Stratosphere.ResourceProperties.MSKClusterEncryptionInfo as X
 import Stratosphere.ResourceProperties.MSKClusterStorageInfo as X
 import Stratosphere.ResourceProperties.MSKClusterTls as X
+import Stratosphere.ResourceProperties.MediaLiveChannelAribSourceSettings as X
+import Stratosphere.ResourceProperties.MediaLiveChannelAudioLanguageSelection as X
+import Stratosphere.ResourceProperties.MediaLiveChannelAudioPidSelection as X
+import Stratosphere.ResourceProperties.MediaLiveChannelAudioSelector as X
+import Stratosphere.ResourceProperties.MediaLiveChannelAudioSelectorSettings as X
+import Stratosphere.ResourceProperties.MediaLiveChannelCaptionSelector as X
+import Stratosphere.ResourceProperties.MediaLiveChannelCaptionSelectorSettings as X
+import Stratosphere.ResourceProperties.MediaLiveChannelDvbSubSourceSettings as X
+import Stratosphere.ResourceProperties.MediaLiveChannelEmbeddedSourceSettings as X
+import Stratosphere.ResourceProperties.MediaLiveChannelHlsInputSettings as X
+import Stratosphere.ResourceProperties.MediaLiveChannelInputAttachment as X
+import Stratosphere.ResourceProperties.MediaLiveChannelInputSettings as X
+import Stratosphere.ResourceProperties.MediaLiveChannelInputSpecification as X
+import Stratosphere.ResourceProperties.MediaLiveChannelMediaPackageOutputDestinationSettings as X
+import Stratosphere.ResourceProperties.MediaLiveChannelNetworkInputSettings as X
+import Stratosphere.ResourceProperties.MediaLiveChannelOutputDestination as X
+import Stratosphere.ResourceProperties.MediaLiveChannelOutputDestinationSettings as X
+import Stratosphere.ResourceProperties.MediaLiveChannelScte20SourceSettings as X
+import Stratosphere.ResourceProperties.MediaLiveChannelScte27SourceSettings as X
+import Stratosphere.ResourceProperties.MediaLiveChannelTeletextSourceSettings as X
+import Stratosphere.ResourceProperties.MediaLiveChannelVideoSelector as X
+import Stratosphere.ResourceProperties.MediaLiveChannelVideoSelectorPid as X
+import Stratosphere.ResourceProperties.MediaLiveChannelVideoSelectorProgramId as X
+import Stratosphere.ResourceProperties.MediaLiveChannelVideoSelectorSettings as X
+import Stratosphere.ResourceProperties.MediaLiveInputInputDestinationRequest as X
+import Stratosphere.ResourceProperties.MediaLiveInputInputSourceRequest as X
+import Stratosphere.ResourceProperties.MediaLiveInputInputVpcRequest as X
+import Stratosphere.ResourceProperties.MediaLiveInputMediaConnectFlowRequest as X
+import Stratosphere.ResourceProperties.MediaLiveInputSecurityGroupInputWhitelistRuleCidr as X
 import Stratosphere.ResourceProperties.MediaStoreContainerCorsRule as X
 import Stratosphere.ResourceProperties.OpsWorksAppDataSource as X
 import Stratosphere.ResourceProperties.OpsWorksAppEnvironmentVariable as X
@@ -1281,7 +1334,9 @@
 import Stratosphere.ResourceProperties.PinpointEmailDedicatedIpPoolTags as X
 import Stratosphere.ResourceProperties.PinpointEmailIdentityMailFromAttributes as X
 import Stratosphere.ResourceProperties.PinpointEmailIdentityTags as X
+import Stratosphere.ResourceProperties.RDSDBClusterDBClusterRole as X
 import Stratosphere.ResourceProperties.RDSDBClusterScalingConfiguration as X
+import Stratosphere.ResourceProperties.RDSDBInstanceDBInstanceRole as X
 import Stratosphere.ResourceProperties.RDSDBInstanceProcessorFeature as X
 import Stratosphere.ResourceProperties.RDSDBSecurityGroupIngressProperty as X
 import Stratosphere.ResourceProperties.RDSOptionGroupOptionConfiguration as X
@@ -1393,6 +1448,7 @@
 import Stratosphere.ResourceProperties.SecretsManagerSecretGenerateSecretString as X
 import Stratosphere.ResourceProperties.ServiceCatalogCloudFormationProductProvisioningArtifactProperties as X
 import Stratosphere.ResourceProperties.ServiceCatalogCloudFormationProvisionedProductProvisioningParameter as X
+import Stratosphere.ResourceProperties.ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences as X
 import Stratosphere.ResourceProperties.ServiceDiscoveryServiceDnsConfig as X
 import Stratosphere.ResourceProperties.ServiceDiscoveryServiceDnsRecord as X
 import Stratosphere.ResourceProperties.ServiceDiscoveryServiceHealthCheckConfig as X
diff --git a/library-gen/Stratosphere/Resources/AmplifyApp.hs b/library-gen/Stratosphere/Resources/AmplifyApp.hs
--- a/library-gen/Stratosphere/Resources/AmplifyApp.hs
+++ b/library-gen/Stratosphere/Resources/AmplifyApp.hs
@@ -26,7 +26,7 @@
   , _amplifyAppIAMServiceRole :: Maybe (Val Text)
   , _amplifyAppName :: Val Text
   , _amplifyAppOauthToken :: Maybe (Val Text)
-  , _amplifyAppRepository :: Val Text
+  , _amplifyAppRepository :: Maybe (Val Text)
   , _amplifyAppTags :: Maybe [Tag]
   } deriving (Show, Eq)
 
@@ -45,7 +45,7 @@
         , fmap (("IAMServiceRole",) . toJSON) _amplifyAppIAMServiceRole
         , (Just . ("Name",) . toJSON) _amplifyAppName
         , fmap (("OauthToken",) . toJSON) _amplifyAppOauthToken
-        , (Just . ("Repository",) . toJSON) _amplifyAppRepository
+        , fmap (("Repository",) . toJSON) _amplifyAppRepository
         , fmap (("Tags",) . toJSON) _amplifyAppTags
         ]
     }
@@ -53,9 +53,8 @@
 -- | Constructor for 'AmplifyApp' containing required fields as arguments.
 amplifyApp
   :: Val Text -- ^ 'aaName'
-  -> Val Text -- ^ 'aaRepository'
   -> AmplifyApp
-amplifyApp namearg repositoryarg =
+amplifyApp namearg =
   AmplifyApp
   { _amplifyAppAccessToken = Nothing
   , _amplifyAppBasicAuthConfig = Nothing
@@ -66,7 +65,7 @@
   , _amplifyAppIAMServiceRole = Nothing
   , _amplifyAppName = namearg
   , _amplifyAppOauthToken = Nothing
-  , _amplifyAppRepository = repositoryarg
+  , _amplifyAppRepository = Nothing
   , _amplifyAppTags = Nothing
   }
 
@@ -107,7 +106,7 @@
 aaOauthToken = lens _amplifyAppOauthToken (\s a -> s { _amplifyAppOauthToken = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-repository
-aaRepository :: Lens' AmplifyApp (Val Text)
+aaRepository :: Lens' AmplifyApp (Maybe (Val Text))
 aaRepository = lens _amplifyAppRepository (\s a -> s { _amplifyAppRepository = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-tags
diff --git a/library-gen/Stratosphere/Resources/ApiGatewayV2Api.hs b/library-gen/Stratosphere/Resources/ApiGatewayV2Api.hs
--- a/library-gen/Stratosphere/Resources/ApiGatewayV2Api.hs
+++ b/library-gen/Stratosphere/Resources/ApiGatewayV2Api.hs
@@ -20,6 +20,7 @@
   , _apiGatewayV2ApiName :: Val Text
   , _apiGatewayV2ApiProtocolType :: Val Text
   , _apiGatewayV2ApiRouteSelectionExpression :: Val Text
+  , _apiGatewayV2ApiTags :: Maybe Object
   , _apiGatewayV2ApiVersion :: Maybe (Val Text)
   } deriving (Show, Eq)
 
@@ -35,6 +36,7 @@
         , (Just . ("Name",) . toJSON) _apiGatewayV2ApiName
         , (Just . ("ProtocolType",) . toJSON) _apiGatewayV2ApiProtocolType
         , (Just . ("RouteSelectionExpression",) . toJSON) _apiGatewayV2ApiRouteSelectionExpression
+        , fmap (("Tags",) . toJSON) _apiGatewayV2ApiTags
         , fmap (("Version",) . toJSON) _apiGatewayV2ApiVersion
         ]
     }
@@ -54,6 +56,7 @@
   , _apiGatewayV2ApiName = namearg
   , _apiGatewayV2ApiProtocolType = protocolTypearg
   , _apiGatewayV2ApiRouteSelectionExpression = routeSelectionExpressionarg
+  , _apiGatewayV2ApiTags = Nothing
   , _apiGatewayV2ApiVersion = Nothing
   }
 
@@ -80,6 +83,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-routeselectionexpression
 agvapRouteSelectionExpression :: Lens' ApiGatewayV2Api (Val Text)
 agvapRouteSelectionExpression = lens _apiGatewayV2ApiRouteSelectionExpression (\s a -> s { _apiGatewayV2ApiRouteSelectionExpression = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-tags
+agvapTags :: Lens' ApiGatewayV2Api (Maybe Object)
+agvapTags = lens _apiGatewayV2ApiTags (\s a -> s { _apiGatewayV2ApiTags = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-version
 agvapVersion :: Lens' ApiGatewayV2Api (Maybe (Val Text))
diff --git a/library-gen/Stratosphere/Resources/ApiGatewayV2DomainName.hs b/library-gen/Stratosphere/Resources/ApiGatewayV2DomainName.hs
--- a/library-gen/Stratosphere/Resources/ApiGatewayV2DomainName.hs
+++ b/library-gen/Stratosphere/Resources/ApiGatewayV2DomainName.hs
@@ -16,6 +16,7 @@
   ApiGatewayV2DomainName
   { _apiGatewayV2DomainNameDomainName :: Val Text
   , _apiGatewayV2DomainNameDomainNameConfigurations :: Maybe [ApiGatewayV2DomainNameDomainNameConfiguration]
+  , _apiGatewayV2DomainNameTags :: Maybe Object
   } deriving (Show, Eq)
 
 instance ToResourceProperties ApiGatewayV2DomainName where
@@ -26,6 +27,7 @@
         hashMapFromList $ catMaybes
         [ (Just . ("DomainName",) . toJSON) _apiGatewayV2DomainNameDomainName
         , fmap (("DomainNameConfigurations",) . toJSON) _apiGatewayV2DomainNameDomainNameConfigurations
+        , fmap (("Tags",) . toJSON) _apiGatewayV2DomainNameTags
         ]
     }
 
@@ -38,6 +40,7 @@
   ApiGatewayV2DomainName
   { _apiGatewayV2DomainNameDomainName = domainNamearg
   , _apiGatewayV2DomainNameDomainNameConfigurations = Nothing
+  , _apiGatewayV2DomainNameTags = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-domainname
@@ -47,3 +50,7 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-domainnameconfigurations
 agvdnDomainNameConfigurations :: Lens' ApiGatewayV2DomainName (Maybe [ApiGatewayV2DomainNameDomainNameConfiguration])
 agvdnDomainNameConfigurations = lens _apiGatewayV2DomainNameDomainNameConfigurations (\s a -> s { _apiGatewayV2DomainNameDomainNameConfigurations = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-tags
+agvdnTags :: Lens' ApiGatewayV2DomainName (Maybe Object)
+agvdnTags = lens _apiGatewayV2DomainNameTags (\s a -> s { _apiGatewayV2DomainNameTags = a })
diff --git a/library-gen/Stratosphere/Resources/ApiGatewayV2Stage.hs b/library-gen/Stratosphere/Resources/ApiGatewayV2Stage.hs
--- a/library-gen/Stratosphere/Resources/ApiGatewayV2Stage.hs
+++ b/library-gen/Stratosphere/Resources/ApiGatewayV2Stage.hs
@@ -24,6 +24,7 @@
   , _apiGatewayV2StageRouteSettings :: Maybe Object
   , _apiGatewayV2StageStageName :: Val Text
   , _apiGatewayV2StageStageVariables :: Maybe Object
+  , _apiGatewayV2StageTags :: Maybe Object
   } deriving (Show, Eq)
 
 instance ToResourceProperties ApiGatewayV2Stage where
@@ -41,6 +42,7 @@
         , fmap (("RouteSettings",) . toJSON) _apiGatewayV2StageRouteSettings
         , (Just . ("StageName",) . toJSON) _apiGatewayV2StageStageName
         , fmap (("StageVariables",) . toJSON) _apiGatewayV2StageStageVariables
+        , fmap (("Tags",) . toJSON) _apiGatewayV2StageTags
         ]
     }
 
@@ -62,6 +64,7 @@
   , _apiGatewayV2StageRouteSettings = Nothing
   , _apiGatewayV2StageStageName = stageNamearg
   , _apiGatewayV2StageStageVariables = Nothing
+  , _apiGatewayV2StageTags = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings
@@ -99,3 +102,7 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables
 agvsStageVariables :: Lens' ApiGatewayV2Stage (Maybe Object)
 agvsStageVariables = lens _apiGatewayV2StageStageVariables (\s a -> s { _apiGatewayV2StageStageVariables = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-tags
+agvsTags :: Lens' ApiGatewayV2Stage (Maybe Object)
+agvsTags = lens _apiGatewayV2StageTags (\s a -> s { _apiGatewayV2StageTags = a })
diff --git a/library-gen/Stratosphere/Resources/AppMeshMesh.hs b/library-gen/Stratosphere/Resources/AppMeshMesh.hs
--- a/library-gen/Stratosphere/Resources/AppMeshMesh.hs
+++ b/library-gen/Stratosphere/Resources/AppMeshMesh.hs
@@ -9,7 +9,7 @@
 
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.AppMeshMeshMeshSpec
-import Stratosphere.ResourceProperties.AppMeshMeshTagRef
+import Stratosphere.ResourceProperties.Tag
 
 -- | Full data type definition for AppMeshMesh. See 'appMeshMesh' for a more
 -- convenient constructor.
@@ -17,7 +17,7 @@
   AppMeshMesh
   { _appMeshMeshMeshName :: Val Text
   , _appMeshMeshSpec :: Maybe AppMeshMeshMeshSpec
-  , _appMeshMeshTags :: Maybe [AppMeshMeshTagRef]
+  , _appMeshMeshTags :: Maybe [Tag]
   } deriving (Show, Eq)
 
 instance ToResourceProperties AppMeshMesh where
@@ -52,5 +52,5 @@
 ammSpec = lens _appMeshMeshSpec (\s a -> s { _appMeshMeshSpec = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-mesh.html#cfn-appmesh-mesh-tags
-ammTags :: Lens' AppMeshMesh (Maybe [AppMeshMeshTagRef])
+ammTags :: Lens' AppMeshMesh (Maybe [Tag])
 ammTags = lens _appMeshMeshTags (\s a -> s { _appMeshMeshTags = a })
diff --git a/library-gen/Stratosphere/Resources/AppMeshRoute.hs b/library-gen/Stratosphere/Resources/AppMeshRoute.hs
--- a/library-gen/Stratosphere/Resources/AppMeshRoute.hs
+++ b/library-gen/Stratosphere/Resources/AppMeshRoute.hs
@@ -9,7 +9,7 @@
 
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.AppMeshRouteRouteSpec
-import Stratosphere.ResourceProperties.AppMeshRouteTagRef
+import Stratosphere.ResourceProperties.Tag
 
 -- | Full data type definition for AppMeshRoute. See 'appMeshRoute' for a more
 -- convenient constructor.
@@ -18,7 +18,7 @@
   { _appMeshRouteMeshName :: Val Text
   , _appMeshRouteRouteName :: Val Text
   , _appMeshRouteSpec :: AppMeshRouteRouteSpec
-  , _appMeshRouteTags :: Maybe [AppMeshRouteTagRef]
+  , _appMeshRouteTags :: Maybe [Tag]
   , _appMeshRouteVirtualRouterName :: Val Text
   } deriving (Show, Eq)
 
@@ -65,7 +65,7 @@
 amrSpec = lens _appMeshRouteSpec (\s a -> s { _appMeshRouteSpec = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-route.html#cfn-appmesh-route-tags
-amrTags :: Lens' AppMeshRoute (Maybe [AppMeshRouteTagRef])
+amrTags :: Lens' AppMeshRoute (Maybe [Tag])
 amrTags = lens _appMeshRouteTags (\s a -> s { _appMeshRouteTags = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-route.html#cfn-appmesh-route-virtualroutername
diff --git a/library-gen/Stratosphere/Resources/AppMeshVirtualNode.hs b/library-gen/Stratosphere/Resources/AppMeshVirtualNode.hs
--- a/library-gen/Stratosphere/Resources/AppMeshVirtualNode.hs
+++ b/library-gen/Stratosphere/Resources/AppMeshVirtualNode.hs
@@ -9,7 +9,7 @@
 
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.AppMeshVirtualNodeVirtualNodeSpec
-import Stratosphere.ResourceProperties.AppMeshVirtualNodeTagRef
+import Stratosphere.ResourceProperties.Tag
 
 -- | Full data type definition for AppMeshVirtualNode. See
 -- 'appMeshVirtualNode' for a more convenient constructor.
@@ -17,7 +17,7 @@
   AppMeshVirtualNode
   { _appMeshVirtualNodeMeshName :: Val Text
   , _appMeshVirtualNodeSpec :: AppMeshVirtualNodeVirtualNodeSpec
-  , _appMeshVirtualNodeTags :: Maybe [AppMeshVirtualNodeTagRef]
+  , _appMeshVirtualNodeTags :: Maybe [Tag]
   , _appMeshVirtualNodeVirtualNodeName :: Val Text
   } deriving (Show, Eq)
 
@@ -58,7 +58,7 @@
 amvnSpec = lens _appMeshVirtualNodeSpec (\s a -> s { _appMeshVirtualNodeSpec = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualnode.html#cfn-appmesh-virtualnode-tags
-amvnTags :: Lens' AppMeshVirtualNode (Maybe [AppMeshVirtualNodeTagRef])
+amvnTags :: Lens' AppMeshVirtualNode (Maybe [Tag])
 amvnTags = lens _appMeshVirtualNodeTags (\s a -> s { _appMeshVirtualNodeTags = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualnode.html#cfn-appmesh-virtualnode-virtualnodename
diff --git a/library-gen/Stratosphere/Resources/AppMeshVirtualRouter.hs b/library-gen/Stratosphere/Resources/AppMeshVirtualRouter.hs
--- a/library-gen/Stratosphere/Resources/AppMeshVirtualRouter.hs
+++ b/library-gen/Stratosphere/Resources/AppMeshVirtualRouter.hs
@@ -9,7 +9,7 @@
 
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.AppMeshVirtualRouterVirtualRouterSpec
-import Stratosphere.ResourceProperties.AppMeshVirtualRouterTagRef
+import Stratosphere.ResourceProperties.Tag
 
 -- | Full data type definition for AppMeshVirtualRouter. See
 -- 'appMeshVirtualRouter' for a more convenient constructor.
@@ -17,7 +17,7 @@
   AppMeshVirtualRouter
   { _appMeshVirtualRouterMeshName :: Val Text
   , _appMeshVirtualRouterSpec :: AppMeshVirtualRouterVirtualRouterSpec
-  , _appMeshVirtualRouterTags :: Maybe [AppMeshVirtualRouterTagRef]
+  , _appMeshVirtualRouterTags :: Maybe [Tag]
   , _appMeshVirtualRouterVirtualRouterName :: Val Text
   } deriving (Show, Eq)
 
@@ -58,7 +58,7 @@
 amvrSpec = lens _appMeshVirtualRouterSpec (\s a -> s { _appMeshVirtualRouterSpec = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualrouter.html#cfn-appmesh-virtualrouter-tags
-amvrTags :: Lens' AppMeshVirtualRouter (Maybe [AppMeshVirtualRouterTagRef])
+amvrTags :: Lens' AppMeshVirtualRouter (Maybe [Tag])
 amvrTags = lens _appMeshVirtualRouterTags (\s a -> s { _appMeshVirtualRouterTags = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualrouter.html#cfn-appmesh-virtualrouter-virtualroutername
diff --git a/library-gen/Stratosphere/Resources/AppMeshVirtualService.hs b/library-gen/Stratosphere/Resources/AppMeshVirtualService.hs
--- a/library-gen/Stratosphere/Resources/AppMeshVirtualService.hs
+++ b/library-gen/Stratosphere/Resources/AppMeshVirtualService.hs
@@ -9,7 +9,7 @@
 
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.AppMeshVirtualServiceVirtualServiceSpec
-import Stratosphere.ResourceProperties.AppMeshVirtualServiceTagRef
+import Stratosphere.ResourceProperties.Tag
 
 -- | Full data type definition for AppMeshVirtualService. See
 -- 'appMeshVirtualService' for a more convenient constructor.
@@ -17,7 +17,7 @@
   AppMeshVirtualService
   { _appMeshVirtualServiceMeshName :: Val Text
   , _appMeshVirtualServiceSpec :: AppMeshVirtualServiceVirtualServiceSpec
-  , _appMeshVirtualServiceTags :: Maybe [AppMeshVirtualServiceTagRef]
+  , _appMeshVirtualServiceTags :: Maybe [Tag]
   , _appMeshVirtualServiceVirtualServiceName :: Val Text
   } deriving (Show, Eq)
 
@@ -58,7 +58,7 @@
 amvsSpec = lens _appMeshVirtualServiceSpec (\s a -> s { _appMeshVirtualServiceSpec = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualservice.html#cfn-appmesh-virtualservice-tags
-amvsTags :: Lens' AppMeshVirtualService (Maybe [AppMeshVirtualServiceTagRef])
+amvsTags :: Lens' AppMeshVirtualService (Maybe [Tag])
 amvsTags = lens _appMeshVirtualServiceTags (\s a -> s { _appMeshVirtualServiceTags = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualservice.html#cfn-appmesh-virtualservice-virtualservicename
diff --git a/library-gen/Stratosphere/Resources/AppStreamFleet.hs b/library-gen/Stratosphere/Resources/AppStreamFleet.hs
--- a/library-gen/Stratosphere/Resources/AppStreamFleet.hs
+++ b/library-gen/Stratosphere/Resources/AppStreamFleet.hs
@@ -24,6 +24,7 @@
   , _appStreamFleetDomainJoinInfo :: Maybe AppStreamFleetDomainJoinInfo
   , _appStreamFleetEnableDefaultInternetAccess :: Maybe (Val Bool)
   , _appStreamFleetFleetType :: Maybe (Val Text)
+  , _appStreamFleetIdleDisconnectTimeoutInSeconds :: Maybe (Val Integer)
   , _appStreamFleetImageArn :: Maybe (Val Text)
   , _appStreamFleetImageName :: Maybe (Val Text)
   , _appStreamFleetInstanceType :: Val Text
@@ -46,6 +47,7 @@
         , fmap (("DomainJoinInfo",) . toJSON) _appStreamFleetDomainJoinInfo
         , fmap (("EnableDefaultInternetAccess",) . toJSON) _appStreamFleetEnableDefaultInternetAccess
         , fmap (("FleetType",) . toJSON) _appStreamFleetFleetType
+        , fmap (("IdleDisconnectTimeoutInSeconds",) . toJSON) _appStreamFleetIdleDisconnectTimeoutInSeconds
         , fmap (("ImageArn",) . toJSON) _appStreamFleetImageArn
         , fmap (("ImageName",) . toJSON) _appStreamFleetImageName
         , (Just . ("InstanceType",) . toJSON) _appStreamFleetInstanceType
@@ -70,6 +72,7 @@
   , _appStreamFleetDomainJoinInfo = Nothing
   , _appStreamFleetEnableDefaultInternetAccess = Nothing
   , _appStreamFleetFleetType = Nothing
+  , _appStreamFleetIdleDisconnectTimeoutInSeconds = Nothing
   , _appStreamFleetImageArn = Nothing
   , _appStreamFleetImageName = Nothing
   , _appStreamFleetInstanceType = instanceTypearg
@@ -106,6 +109,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-fleettype
 asfFleetType :: Lens' AppStreamFleet (Maybe (Val Text))
 asfFleetType = lens _appStreamFleetFleetType (\s a -> s { _appStreamFleetFleetType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-idledisconnecttimeoutinseconds
+asfIdleDisconnectTimeoutInSeconds :: Lens' AppStreamFleet (Maybe (Val Integer))
+asfIdleDisconnectTimeoutInSeconds = lens _appStreamFleetIdleDisconnectTimeoutInSeconds (\s a -> s { _appStreamFleetIdleDisconnectTimeoutInSeconds = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-imagearn
 asfImageArn :: Lens' AppStreamFleet (Maybe (Val Text))
diff --git a/library-gen/Stratosphere/Resources/BackupBackupPlan.hs b/library-gen/Stratosphere/Resources/BackupBackupPlan.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/BackupBackupPlan.hs
@@ -0,0 +1,49 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupplan.html
+
+module Stratosphere.Resources.BackupBackupPlan where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.BackupBackupPlanBackupPlanResourceType
+
+-- | Full data type definition for BackupBackupPlan. See 'backupBackupPlan'
+-- for a more convenient constructor.
+data BackupBackupPlan =
+  BackupBackupPlan
+  { _backupBackupPlanBackupPlan :: BackupBackupPlanBackupPlanResourceType
+  , _backupBackupPlanBackupPlanTags :: Maybe Object
+  } deriving (Show, Eq)
+
+instance ToResourceProperties BackupBackupPlan where
+  toResourceProperties BackupBackupPlan{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::Backup::BackupPlan"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ (Just . ("BackupPlan",) . toJSON) _backupBackupPlanBackupPlan
+        , fmap (("BackupPlanTags",) . toJSON) _backupBackupPlanBackupPlanTags
+        ]
+    }
+
+-- | Constructor for 'BackupBackupPlan' containing required fields as
+-- arguments.
+backupBackupPlan
+  :: BackupBackupPlanBackupPlanResourceType -- ^ 'bbpBackupPlan'
+  -> BackupBackupPlan
+backupBackupPlan backupPlanarg =
+  BackupBackupPlan
+  { _backupBackupPlanBackupPlan = backupPlanarg
+  , _backupBackupPlanBackupPlanTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupplan.html#cfn-backup-backupplan-backupplan
+bbpBackupPlan :: Lens' BackupBackupPlan BackupBackupPlanBackupPlanResourceType
+bbpBackupPlan = lens _backupBackupPlanBackupPlan (\s a -> s { _backupBackupPlanBackupPlan = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupplan.html#cfn-backup-backupplan-backupplantags
+bbpBackupPlanTags :: Lens' BackupBackupPlan (Maybe Object)
+bbpBackupPlanTags = lens _backupBackupPlanBackupPlanTags (\s a -> s { _backupBackupPlanBackupPlanTags = a })
diff --git a/library-gen/Stratosphere/Resources/BackupBackupSelection.hs b/library-gen/Stratosphere/Resources/BackupBackupSelection.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/BackupBackupSelection.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupselection.html
+
+module Stratosphere.Resources.BackupBackupSelection where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.BackupBackupSelectionBackupSelectionResourceType
+
+-- | Full data type definition for BackupBackupSelection. See
+-- 'backupBackupSelection' for a more convenient constructor.
+data BackupBackupSelection =
+  BackupBackupSelection
+  { _backupBackupSelectionBackupPlanId :: Val Text
+  , _backupBackupSelectionBackupSelection :: BackupBackupSelectionBackupSelectionResourceType
+  } deriving (Show, Eq)
+
+instance ToResourceProperties BackupBackupSelection where
+  toResourceProperties BackupBackupSelection{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::Backup::BackupSelection"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ (Just . ("BackupPlanId",) . toJSON) _backupBackupSelectionBackupPlanId
+        , (Just . ("BackupSelection",) . toJSON) _backupBackupSelectionBackupSelection
+        ]
+    }
+
+-- | Constructor for 'BackupBackupSelection' containing required fields as
+-- arguments.
+backupBackupSelection
+  :: Val Text -- ^ 'bbsBackupPlanId'
+  -> BackupBackupSelectionBackupSelectionResourceType -- ^ 'bbsBackupSelection'
+  -> BackupBackupSelection
+backupBackupSelection backupPlanIdarg backupSelectionarg =
+  BackupBackupSelection
+  { _backupBackupSelectionBackupPlanId = backupPlanIdarg
+  , _backupBackupSelectionBackupSelection = backupSelectionarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupselection.html#cfn-backup-backupselection-backupplanid
+bbsBackupPlanId :: Lens' BackupBackupSelection (Val Text)
+bbsBackupPlanId = lens _backupBackupSelectionBackupPlanId (\s a -> s { _backupBackupSelectionBackupPlanId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupselection.html#cfn-backup-backupselection-backupselection
+bbsBackupSelection :: Lens' BackupBackupSelection BackupBackupSelectionBackupSelectionResourceType
+bbsBackupSelection = lens _backupBackupSelectionBackupSelection (\s a -> s { _backupBackupSelectionBackupSelection = a })
diff --git a/library-gen/Stratosphere/Resources/BackupBackupVault.hs b/library-gen/Stratosphere/Resources/BackupBackupVault.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/BackupBackupVault.hs
@@ -0,0 +1,70 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html
+
+module Stratosphere.Resources.BackupBackupVault where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.BackupBackupVaultNotificationObjectType
+
+-- | Full data type definition for BackupBackupVault. See 'backupBackupVault'
+-- for a more convenient constructor.
+data BackupBackupVault =
+  BackupBackupVault
+  { _backupBackupVaultAccessPolicy :: Maybe Object
+  , _backupBackupVaultBackupVaultName :: Val Text
+  , _backupBackupVaultBackupVaultTags :: Maybe Object
+  , _backupBackupVaultEncryptionKeyArn :: Maybe (Val Text)
+  , _backupBackupVaultNotifications :: Maybe BackupBackupVaultNotificationObjectType
+  } deriving (Show, Eq)
+
+instance ToResourceProperties BackupBackupVault where
+  toResourceProperties BackupBackupVault{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::Backup::BackupVault"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("AccessPolicy",) . toJSON) _backupBackupVaultAccessPolicy
+        , (Just . ("BackupVaultName",) . toJSON) _backupBackupVaultBackupVaultName
+        , fmap (("BackupVaultTags",) . toJSON) _backupBackupVaultBackupVaultTags
+        , fmap (("EncryptionKeyArn",) . toJSON) _backupBackupVaultEncryptionKeyArn
+        , fmap (("Notifications",) . toJSON) _backupBackupVaultNotifications
+        ]
+    }
+
+-- | Constructor for 'BackupBackupVault' containing required fields as
+-- arguments.
+backupBackupVault
+  :: Val Text -- ^ 'bbvBackupVaultName'
+  -> BackupBackupVault
+backupBackupVault backupVaultNamearg =
+  BackupBackupVault
+  { _backupBackupVaultAccessPolicy = Nothing
+  , _backupBackupVaultBackupVaultName = backupVaultNamearg
+  , _backupBackupVaultBackupVaultTags = Nothing
+  , _backupBackupVaultEncryptionKeyArn = Nothing
+  , _backupBackupVaultNotifications = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html#cfn-backup-backupvault-accesspolicy
+bbvAccessPolicy :: Lens' BackupBackupVault (Maybe Object)
+bbvAccessPolicy = lens _backupBackupVaultAccessPolicy (\s a -> s { _backupBackupVaultAccessPolicy = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html#cfn-backup-backupvault-backupvaultname
+bbvBackupVaultName :: Lens' BackupBackupVault (Val Text)
+bbvBackupVaultName = lens _backupBackupVaultBackupVaultName (\s a -> s { _backupBackupVaultBackupVaultName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html#cfn-backup-backupvault-backupvaulttags
+bbvBackupVaultTags :: Lens' BackupBackupVault (Maybe Object)
+bbvBackupVaultTags = lens _backupBackupVaultBackupVaultTags (\s a -> s { _backupBackupVaultBackupVaultTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html#cfn-backup-backupvault-encryptionkeyarn
+bbvEncryptionKeyArn :: Lens' BackupBackupVault (Maybe (Val Text))
+bbvEncryptionKeyArn = lens _backupBackupVaultEncryptionKeyArn (\s a -> s { _backupBackupVaultEncryptionKeyArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html#cfn-backup-backupvault-notifications
+bbvNotifications :: Lens' BackupBackupVault (Maybe BackupBackupVaultNotificationObjectType)
+bbvNotifications = lens _backupBackupVaultNotifications (\s a -> s { _backupBackupVaultNotifications = a })
diff --git a/library-gen/Stratosphere/Resources/ConfigRemediationConfiguration.hs b/library-gen/Stratosphere/Resources/ConfigRemediationConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ConfigRemediationConfiguration.hs
@@ -0,0 +1,79 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html
+
+module Stratosphere.Resources.ConfigRemediationConfiguration where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for ConfigRemediationConfiguration. See
+-- 'configRemediationConfiguration' for a more convenient constructor.
+data ConfigRemediationConfiguration =
+  ConfigRemediationConfiguration
+  { _configRemediationConfigurationConfigRuleName :: Val Text
+  , _configRemediationConfigurationParameters :: Maybe Object
+  , _configRemediationConfigurationResourceType :: Maybe (Val Text)
+  , _configRemediationConfigurationTargetId :: Val Text
+  , _configRemediationConfigurationTargetType :: Val Text
+  , _configRemediationConfigurationTargetVersion :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToResourceProperties ConfigRemediationConfiguration where
+  toResourceProperties ConfigRemediationConfiguration{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::Config::RemediationConfiguration"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ (Just . ("ConfigRuleName",) . toJSON) _configRemediationConfigurationConfigRuleName
+        , fmap (("Parameters",) . toJSON) _configRemediationConfigurationParameters
+        , fmap (("ResourceType",) . toJSON) _configRemediationConfigurationResourceType
+        , (Just . ("TargetId",) . toJSON) _configRemediationConfigurationTargetId
+        , (Just . ("TargetType",) . toJSON) _configRemediationConfigurationTargetType
+        , fmap (("TargetVersion",) . toJSON) _configRemediationConfigurationTargetVersion
+        ]
+    }
+
+-- | Constructor for 'ConfigRemediationConfiguration' containing required
+-- fields as arguments.
+configRemediationConfiguration
+  :: Val Text -- ^ 'crcConfigRuleName'
+  -> Val Text -- ^ 'crcTargetId'
+  -> Val Text -- ^ 'crcTargetType'
+  -> ConfigRemediationConfiguration
+configRemediationConfiguration configRuleNamearg targetIdarg targetTypearg =
+  ConfigRemediationConfiguration
+  { _configRemediationConfigurationConfigRuleName = configRuleNamearg
+  , _configRemediationConfigurationParameters = Nothing
+  , _configRemediationConfigurationResourceType = Nothing
+  , _configRemediationConfigurationTargetId = targetIdarg
+  , _configRemediationConfigurationTargetType = targetTypearg
+  , _configRemediationConfigurationTargetVersion = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html#cfn-config-remediationconfiguration-configrulename
+crcConfigRuleName :: Lens' ConfigRemediationConfiguration (Val Text)
+crcConfigRuleName = lens _configRemediationConfigurationConfigRuleName (\s a -> s { _configRemediationConfigurationConfigRuleName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html#cfn-config-remediationconfiguration-parameters
+crcParameters :: Lens' ConfigRemediationConfiguration (Maybe Object)
+crcParameters = lens _configRemediationConfigurationParameters (\s a -> s { _configRemediationConfigurationParameters = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html#cfn-config-remediationconfiguration-resourcetype
+crcResourceType :: Lens' ConfigRemediationConfiguration (Maybe (Val Text))
+crcResourceType = lens _configRemediationConfigurationResourceType (\s a -> s { _configRemediationConfigurationResourceType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html#cfn-config-remediationconfiguration-targetid
+crcTargetId :: Lens' ConfigRemediationConfiguration (Val Text)
+crcTargetId = lens _configRemediationConfigurationTargetId (\s a -> s { _configRemediationConfigurationTargetId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html#cfn-config-remediationconfiguration-targettype
+crcTargetType :: Lens' ConfigRemediationConfiguration (Val Text)
+crcTargetType = lens _configRemediationConfigurationTargetType (\s a -> s { _configRemediationConfigurationTargetType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html#cfn-config-remediationconfiguration-targetversion
+crcTargetVersion :: Lens' ConfigRemediationConfiguration (Maybe (Val Text))
+crcTargetVersion = lens _configRemediationConfigurationTargetVersion (\s a -> s { _configRemediationConfigurationTargetVersion = a })
diff --git a/library-gen/Stratosphere/Resources/EC2Instance.hs b/library-gen/Stratosphere/Resources/EC2Instance.hs
--- a/library-gen/Stratosphere/Resources/EC2Instance.hs
+++ b/library-gen/Stratosphere/Resources/EC2Instance.hs
@@ -9,6 +9,7 @@
 
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.EC2InstanceBlockDeviceMapping
+import Stratosphere.ResourceProperties.EC2InstanceCpuOptions
 import Stratosphere.ResourceProperties.EC2InstanceCreditSpecification
 import Stratosphere.ResourceProperties.EC2InstanceElasticGpuSpecification
 import Stratosphere.ResourceProperties.EC2InstanceElasticInferenceAccelerator
@@ -28,6 +29,7 @@
   , _eC2InstanceAffinity :: Maybe (Val Text)
   , _eC2InstanceAvailabilityZone :: Maybe (Val Text)
   , _eC2InstanceBlockDeviceMappings :: Maybe [EC2InstanceBlockDeviceMapping]
+  , _eC2InstanceCpuOptions :: Maybe EC2InstanceCpuOptions
   , _eC2InstanceCreditSpecification :: Maybe EC2InstanceCreditSpecification
   , _eC2InstanceDisableApiTermination :: Maybe (Val Bool)
   , _eC2InstanceEbsOptimized :: Maybe (Val Bool)
@@ -70,6 +72,7 @@
         , fmap (("Affinity",) . toJSON) _eC2InstanceAffinity
         , fmap (("AvailabilityZone",) . toJSON) _eC2InstanceAvailabilityZone
         , fmap (("BlockDeviceMappings",) . toJSON) _eC2InstanceBlockDeviceMappings
+        , fmap (("CpuOptions",) . toJSON) _eC2InstanceCpuOptions
         , fmap (("CreditSpecification",) . toJSON) _eC2InstanceCreditSpecification
         , fmap (("DisableApiTermination",) . toJSON) _eC2InstanceDisableApiTermination
         , fmap (("EbsOptimized",) . toJSON) _eC2InstanceEbsOptimized
@@ -112,6 +115,7 @@
   , _eC2InstanceAffinity = Nothing
   , _eC2InstanceAvailabilityZone = Nothing
   , _eC2InstanceBlockDeviceMappings = Nothing
+  , _eC2InstanceCpuOptions = Nothing
   , _eC2InstanceCreditSpecification = Nothing
   , _eC2InstanceDisableApiTermination = Nothing
   , _eC2InstanceEbsOptimized = Nothing
@@ -159,6 +163,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-blockdevicemappings
 eciBlockDeviceMappings :: Lens' EC2Instance (Maybe [EC2InstanceBlockDeviceMapping])
 eciBlockDeviceMappings = lens _eC2InstanceBlockDeviceMappings (\s a -> s { _eC2InstanceBlockDeviceMappings = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-cpuoptions
+eciCpuOptions :: Lens' EC2Instance (Maybe EC2InstanceCpuOptions)
+eciCpuOptions = lens _eC2InstanceCpuOptions (\s a -> s { _eC2InstanceCpuOptions = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-creditspecification
 eciCreditSpecification :: Lens' EC2Instance (Maybe EC2InstanceCreditSpecification)
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,8 +22,10 @@
   , _eCSTaskDefinitionCpu :: Maybe (Val Text)
   , _eCSTaskDefinitionExecutionRoleArn :: Maybe (Val Text)
   , _eCSTaskDefinitionFamily :: Maybe (Val Text)
+  , _eCSTaskDefinitionIpcMode :: Maybe (Val Text)
   , _eCSTaskDefinitionMemory :: Maybe (Val Text)
   , _eCSTaskDefinitionNetworkMode :: Maybe (Val Text)
+  , _eCSTaskDefinitionPidMode :: Maybe (Val Text)
   , _eCSTaskDefinitionPlacementConstraints :: Maybe [ECSTaskDefinitionTaskDefinitionPlacementConstraint]
   , _eCSTaskDefinitionProxyConfiguration :: Maybe ECSTaskDefinitionProxyConfiguration
   , _eCSTaskDefinitionRequiresCompatibilities :: Maybe (ValList Text)
@@ -42,8 +44,10 @@
         , fmap (("Cpu",) . toJSON) _eCSTaskDefinitionCpu
         , fmap (("ExecutionRoleArn",) . toJSON) _eCSTaskDefinitionExecutionRoleArn
         , fmap (("Family",) . toJSON) _eCSTaskDefinitionFamily
+        , fmap (("IpcMode",) . toJSON) _eCSTaskDefinitionIpcMode
         , fmap (("Memory",) . toJSON) _eCSTaskDefinitionMemory
         , fmap (("NetworkMode",) . toJSON) _eCSTaskDefinitionNetworkMode
+        , fmap (("PidMode",) . toJSON) _eCSTaskDefinitionPidMode
         , fmap (("PlacementConstraints",) . toJSON) _eCSTaskDefinitionPlacementConstraints
         , fmap (("ProxyConfiguration",) . toJSON) _eCSTaskDefinitionProxyConfiguration
         , fmap (("RequiresCompatibilities",) . toJSON) _eCSTaskDefinitionRequiresCompatibilities
@@ -63,8 +67,10 @@
   , _eCSTaskDefinitionCpu = Nothing
   , _eCSTaskDefinitionExecutionRoleArn = Nothing
   , _eCSTaskDefinitionFamily = Nothing
+  , _eCSTaskDefinitionIpcMode = Nothing
   , _eCSTaskDefinitionMemory = Nothing
   , _eCSTaskDefinitionNetworkMode = Nothing
+  , _eCSTaskDefinitionPidMode = Nothing
   , _eCSTaskDefinitionPlacementConstraints = Nothing
   , _eCSTaskDefinitionProxyConfiguration = Nothing
   , _eCSTaskDefinitionRequiresCompatibilities = Nothing
@@ -89,6 +95,10 @@
 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-ipcmode
+ecstdIpcMode :: Lens' ECSTaskDefinition (Maybe (Val Text))
+ecstdIpcMode = lens _eCSTaskDefinitionIpcMode (\s a -> s { _eCSTaskDefinitionIpcMode = 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 })
@@ -96,6 +106,10 @@
 -- | 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 })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-pidmode
+ecstdPidMode :: Lens' ECSTaskDefinition (Maybe (Val Text))
+ecstdPidMode = lens _eCSTaskDefinitionPidMode (\s a -> s { _eCSTaskDefinitionPidMode = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-placementconstraints
 ecstdPlacementConstraints :: Lens' ECSTaskDefinition (Maybe [ECSTaskDefinitionTaskDefinitionPlacementConstraint])
diff --git a/library-gen/Stratosphere/Resources/IAMRole.hs b/library-gen/Stratosphere/Resources/IAMRole.hs
--- a/library-gen/Stratosphere/Resources/IAMRole.hs
+++ b/library-gen/Stratosphere/Resources/IAMRole.hs
@@ -9,18 +9,21 @@
 
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.IAMRolePolicy
+import Stratosphere.ResourceProperties.Tag
 
 -- | Full data type definition for IAMRole. See 'iamRole' for a more
 -- convenient constructor.
 data IAMRole =
   IAMRole
   { _iAMRoleAssumeRolePolicyDocument :: Object
+  , _iAMRoleDescription :: Maybe (Val Text)
   , _iAMRoleManagedPolicyArns :: Maybe (ValList Text)
   , _iAMRoleMaxSessionDuration :: Maybe (Val Integer)
   , _iAMRolePath :: Maybe (Val Text)
   , _iAMRolePermissionsBoundary :: Maybe (Val Text)
   , _iAMRolePolicies :: Maybe [IAMRolePolicy]
   , _iAMRoleRoleName :: Maybe (Val Text)
+  , _iAMRoleTags :: Maybe [Tag]
   } deriving (Show, Eq)
 
 instance ToResourceProperties IAMRole where
@@ -30,12 +33,14 @@
     , resourcePropertiesProperties =
         hashMapFromList $ catMaybes
         [ (Just . ("AssumeRolePolicyDocument",) . toJSON) _iAMRoleAssumeRolePolicyDocument
+        , fmap (("Description",) . toJSON) _iAMRoleDescription
         , fmap (("ManagedPolicyArns",) . toJSON) _iAMRoleManagedPolicyArns
         , fmap (("MaxSessionDuration",) . toJSON) _iAMRoleMaxSessionDuration
         , fmap (("Path",) . toJSON) _iAMRolePath
         , fmap (("PermissionsBoundary",) . toJSON) _iAMRolePermissionsBoundary
         , fmap (("Policies",) . toJSON) _iAMRolePolicies
         , fmap (("RoleName",) . toJSON) _iAMRoleRoleName
+        , fmap (("Tags",) . toJSON) _iAMRoleTags
         ]
     }
 
@@ -46,18 +51,24 @@
 iamRole assumeRolePolicyDocumentarg =
   IAMRole
   { _iAMRoleAssumeRolePolicyDocument = assumeRolePolicyDocumentarg
+  , _iAMRoleDescription = Nothing
   , _iAMRoleManagedPolicyArns = Nothing
   , _iAMRoleMaxSessionDuration = Nothing
   , _iAMRolePath = Nothing
   , _iAMRolePermissionsBoundary = Nothing
   , _iAMRolePolicies = Nothing
   , _iAMRoleRoleName = Nothing
+  , _iAMRoleTags = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-assumerolepolicydocument
 iamrAssumeRolePolicyDocument :: Lens' IAMRole Object
 iamrAssumeRolePolicyDocument = lens _iAMRoleAssumeRolePolicyDocument (\s a -> s { _iAMRoleAssumeRolePolicyDocument = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-description
+iamrDescription :: Lens' IAMRole (Maybe (Val Text))
+iamrDescription = lens _iAMRoleDescription (\s a -> s { _iAMRoleDescription = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-managepolicyarns
 iamrManagedPolicyArns :: Lens' IAMRole (Maybe (ValList Text))
 iamrManagedPolicyArns = lens _iAMRoleManagedPolicyArns (\s a -> s { _iAMRoleManagedPolicyArns = a })
@@ -81,3 +92,7 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-rolename
 iamrRoleName :: Lens' IAMRole (Maybe (Val Text))
 iamrRoleName = lens _iAMRoleRoleName (\s a -> s { _iAMRoleRoleName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-tags
+iamrTags :: Lens' IAMRole (Maybe [Tag])
+iamrTags = lens _iAMRoleTags (\s a -> s { _iAMRoleTags = a })
diff --git a/library-gen/Stratosphere/Resources/IoTAnalyticsChannel.hs b/library-gen/Stratosphere/Resources/IoTAnalyticsChannel.hs
--- a/library-gen/Stratosphere/Resources/IoTAnalyticsChannel.hs
+++ b/library-gen/Stratosphere/Resources/IoTAnalyticsChannel.hs
@@ -8,6 +8,7 @@
 module Stratosphere.Resources.IoTAnalyticsChannel where
 
 import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.IoTAnalyticsChannelChannelStorage
 import Stratosphere.ResourceProperties.IoTAnalyticsChannelRetentionPeriod
 import Stratosphere.ResourceProperties.Tag
 
@@ -16,6 +17,7 @@
 data IoTAnalyticsChannel =
   IoTAnalyticsChannel
   { _ioTAnalyticsChannelChannelName :: Maybe (Val Text)
+  , _ioTAnalyticsChannelChannelStorage :: Maybe IoTAnalyticsChannelChannelStorage
   , _ioTAnalyticsChannelRetentionPeriod :: Maybe IoTAnalyticsChannelRetentionPeriod
   , _ioTAnalyticsChannelTags :: Maybe [Tag]
   } deriving (Show, Eq)
@@ -27,6 +29,7 @@
     , resourcePropertiesProperties =
         hashMapFromList $ catMaybes
         [ fmap (("ChannelName",) . toJSON) _ioTAnalyticsChannelChannelName
+        , fmap (("ChannelStorage",) . toJSON) _ioTAnalyticsChannelChannelStorage
         , fmap (("RetentionPeriod",) . toJSON) _ioTAnalyticsChannelRetentionPeriod
         , fmap (("Tags",) . toJSON) _ioTAnalyticsChannelTags
         ]
@@ -39,6 +42,7 @@
 ioTAnalyticsChannel  =
   IoTAnalyticsChannel
   { _ioTAnalyticsChannelChannelName = Nothing
+  , _ioTAnalyticsChannelChannelStorage = Nothing
   , _ioTAnalyticsChannelRetentionPeriod = Nothing
   , _ioTAnalyticsChannelTags = Nothing
   }
@@ -46,6 +50,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-channel.html#cfn-iotanalytics-channel-channelname
 itacChannelName :: Lens' IoTAnalyticsChannel (Maybe (Val Text))
 itacChannelName = lens _ioTAnalyticsChannelChannelName (\s a -> s { _ioTAnalyticsChannelChannelName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-channel.html#cfn-iotanalytics-channel-channelstorage
+itacChannelStorage :: Lens' IoTAnalyticsChannel (Maybe IoTAnalyticsChannelChannelStorage)
+itacChannelStorage = lens _ioTAnalyticsChannelChannelStorage (\s a -> s { _ioTAnalyticsChannelChannelStorage = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-channel.html#cfn-iotanalytics-channel-retentionperiod
 itacRetentionPeriod :: Lens' IoTAnalyticsChannel (Maybe IoTAnalyticsChannelRetentionPeriod)
diff --git a/library-gen/Stratosphere/Resources/IoTAnalyticsDatastore.hs b/library-gen/Stratosphere/Resources/IoTAnalyticsDatastore.hs
--- a/library-gen/Stratosphere/Resources/IoTAnalyticsDatastore.hs
+++ b/library-gen/Stratosphere/Resources/IoTAnalyticsDatastore.hs
@@ -8,6 +8,7 @@
 module Stratosphere.Resources.IoTAnalyticsDatastore where
 
 import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.IoTAnalyticsDatastoreDatastoreStorage
 import Stratosphere.ResourceProperties.IoTAnalyticsDatastoreRetentionPeriod
 import Stratosphere.ResourceProperties.Tag
 
@@ -16,6 +17,7 @@
 data IoTAnalyticsDatastore =
   IoTAnalyticsDatastore
   { _ioTAnalyticsDatastoreDatastoreName :: Maybe (Val Text)
+  , _ioTAnalyticsDatastoreDatastoreStorage :: Maybe IoTAnalyticsDatastoreDatastoreStorage
   , _ioTAnalyticsDatastoreRetentionPeriod :: Maybe IoTAnalyticsDatastoreRetentionPeriod
   , _ioTAnalyticsDatastoreTags :: Maybe [Tag]
   } deriving (Show, Eq)
@@ -27,6 +29,7 @@
     , resourcePropertiesProperties =
         hashMapFromList $ catMaybes
         [ fmap (("DatastoreName",) . toJSON) _ioTAnalyticsDatastoreDatastoreName
+        , fmap (("DatastoreStorage",) . toJSON) _ioTAnalyticsDatastoreDatastoreStorage
         , fmap (("RetentionPeriod",) . toJSON) _ioTAnalyticsDatastoreRetentionPeriod
         , fmap (("Tags",) . toJSON) _ioTAnalyticsDatastoreTags
         ]
@@ -39,6 +42,7 @@
 ioTAnalyticsDatastore  =
   IoTAnalyticsDatastore
   { _ioTAnalyticsDatastoreDatastoreName = Nothing
+  , _ioTAnalyticsDatastoreDatastoreStorage = Nothing
   , _ioTAnalyticsDatastoreRetentionPeriod = Nothing
   , _ioTAnalyticsDatastoreTags = Nothing
   }
@@ -46,6 +50,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-datastore.html#cfn-iotanalytics-datastore-datastorename
 itadstDatastoreName :: Lens' IoTAnalyticsDatastore (Maybe (Val Text))
 itadstDatastoreName = lens _ioTAnalyticsDatastoreDatastoreName (\s a -> s { _ioTAnalyticsDatastoreDatastoreName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-datastore.html#cfn-iotanalytics-datastore-datastorestorage
+itadstDatastoreStorage :: Lens' IoTAnalyticsDatastore (Maybe IoTAnalyticsDatastoreDatastoreStorage)
+itadstDatastoreStorage = lens _ioTAnalyticsDatastoreDatastoreStorage (\s a -> s { _ioTAnalyticsDatastoreDatastoreStorage = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-datastore.html#cfn-iotanalytics-datastore-retentionperiod
 itadstRetentionPeriod :: Lens' IoTAnalyticsDatastore (Maybe IoTAnalyticsDatastoreRetentionPeriod)
diff --git a/library-gen/Stratosphere/Resources/MediaLiveChannel.hs b/library-gen/Stratosphere/Resources/MediaLiveChannel.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/MediaLiveChannel.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html
+
+module Stratosphere.Resources.MediaLiveChannel where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.MediaLiveChannelOutputDestination
+import Stratosphere.ResourceProperties.MediaLiveChannelInputAttachment
+import Stratosphere.ResourceProperties.MediaLiveChannelInputSpecification
+
+-- | Full data type definition for MediaLiveChannel. See 'mediaLiveChannel'
+-- for a more convenient constructor.
+data MediaLiveChannel =
+  MediaLiveChannel
+  { _mediaLiveChannelChannelClass :: Maybe (Val Text)
+  , _mediaLiveChannelDestinations :: Maybe [MediaLiveChannelOutputDestination]
+  , _mediaLiveChannelEncoderSettings :: Maybe Object
+  , _mediaLiveChannelInputAttachments :: Maybe [MediaLiveChannelInputAttachment]
+  , _mediaLiveChannelInputSpecification :: Maybe MediaLiveChannelInputSpecification
+  , _mediaLiveChannelLogLevel :: Maybe (Val Text)
+  , _mediaLiveChannelName :: Maybe (Val Text)
+  , _mediaLiveChannelRoleArn :: Maybe (Val Text)
+  , _mediaLiveChannelTags :: Maybe Object
+  } deriving (Show, Eq)
+
+instance ToResourceProperties MediaLiveChannel where
+  toResourceProperties MediaLiveChannel{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::MediaLive::Channel"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("ChannelClass",) . toJSON) _mediaLiveChannelChannelClass
+        , fmap (("Destinations",) . toJSON) _mediaLiveChannelDestinations
+        , fmap (("EncoderSettings",) . toJSON) _mediaLiveChannelEncoderSettings
+        , fmap (("InputAttachments",) . toJSON) _mediaLiveChannelInputAttachments
+        , fmap (("InputSpecification",) . toJSON) _mediaLiveChannelInputSpecification
+        , fmap (("LogLevel",) . toJSON) _mediaLiveChannelLogLevel
+        , fmap (("Name",) . toJSON) _mediaLiveChannelName
+        , fmap (("RoleArn",) . toJSON) _mediaLiveChannelRoleArn
+        , fmap (("Tags",) . toJSON) _mediaLiveChannelTags
+        ]
+    }
+
+-- | Constructor for 'MediaLiveChannel' containing required fields as
+-- arguments.
+mediaLiveChannel
+  :: MediaLiveChannel
+mediaLiveChannel  =
+  MediaLiveChannel
+  { _mediaLiveChannelChannelClass = Nothing
+  , _mediaLiveChannelDestinations = Nothing
+  , _mediaLiveChannelEncoderSettings = Nothing
+  , _mediaLiveChannelInputAttachments = Nothing
+  , _mediaLiveChannelInputSpecification = Nothing
+  , _mediaLiveChannelLogLevel = Nothing
+  , _mediaLiveChannelName = Nothing
+  , _mediaLiveChannelRoleArn = Nothing
+  , _mediaLiveChannelTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-channelclass
+mlcChannelClass :: Lens' MediaLiveChannel (Maybe (Val Text))
+mlcChannelClass = lens _mediaLiveChannelChannelClass (\s a -> s { _mediaLiveChannelChannelClass = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-destinations
+mlcDestinations :: Lens' MediaLiveChannel (Maybe [MediaLiveChannelOutputDestination])
+mlcDestinations = lens _mediaLiveChannelDestinations (\s a -> s { _mediaLiveChannelDestinations = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-encodersettings
+mlcEncoderSettings :: Lens' MediaLiveChannel (Maybe Object)
+mlcEncoderSettings = lens _mediaLiveChannelEncoderSettings (\s a -> s { _mediaLiveChannelEncoderSettings = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-inputattachments
+mlcInputAttachments :: Lens' MediaLiveChannel (Maybe [MediaLiveChannelInputAttachment])
+mlcInputAttachments = lens _mediaLiveChannelInputAttachments (\s a -> s { _mediaLiveChannelInputAttachments = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-inputspecification
+mlcInputSpecification :: Lens' MediaLiveChannel (Maybe MediaLiveChannelInputSpecification)
+mlcInputSpecification = lens _mediaLiveChannelInputSpecification (\s a -> s { _mediaLiveChannelInputSpecification = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-loglevel
+mlcLogLevel :: Lens' MediaLiveChannel (Maybe (Val Text))
+mlcLogLevel = lens _mediaLiveChannelLogLevel (\s a -> s { _mediaLiveChannelLogLevel = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-name
+mlcName :: Lens' MediaLiveChannel (Maybe (Val Text))
+mlcName = lens _mediaLiveChannelName (\s a -> s { _mediaLiveChannelName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-rolearn
+mlcRoleArn :: Lens' MediaLiveChannel (Maybe (Val Text))
+mlcRoleArn = lens _mediaLiveChannelRoleArn (\s a -> s { _mediaLiveChannelRoleArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-tags
+mlcTags :: Lens' MediaLiveChannel (Maybe Object)
+mlcTags = lens _mediaLiveChannelTags (\s a -> s { _mediaLiveChannelTags = a })
diff --git a/library-gen/Stratosphere/Resources/MediaLiveInput.hs b/library-gen/Stratosphere/Resources/MediaLiveInput.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/MediaLiveInput.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html
+
+module Stratosphere.Resources.MediaLiveInput where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.MediaLiveInputInputDestinationRequest
+import Stratosphere.ResourceProperties.MediaLiveInputMediaConnectFlowRequest
+import Stratosphere.ResourceProperties.MediaLiveInputInputSourceRequest
+import Stratosphere.ResourceProperties.MediaLiveInputInputVpcRequest
+
+-- | Full data type definition for MediaLiveInput. See 'mediaLiveInput' for a
+-- more convenient constructor.
+data MediaLiveInput =
+  MediaLiveInput
+  { _mediaLiveInputDestinations :: Maybe [MediaLiveInputInputDestinationRequest]
+  , _mediaLiveInputInputSecurityGroups :: Maybe (ValList Text)
+  , _mediaLiveInputMediaConnectFlows :: Maybe [MediaLiveInputMediaConnectFlowRequest]
+  , _mediaLiveInputName :: Maybe (Val Text)
+  , _mediaLiveInputRoleArn :: Maybe (Val Text)
+  , _mediaLiveInputSources :: Maybe [MediaLiveInputInputSourceRequest]
+  , _mediaLiveInputTags :: Maybe Object
+  , _mediaLiveInputType :: Maybe (Val Text)
+  , _mediaLiveInputVpc :: Maybe MediaLiveInputInputVpcRequest
+  } deriving (Show, Eq)
+
+instance ToResourceProperties MediaLiveInput where
+  toResourceProperties MediaLiveInput{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::MediaLive::Input"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("Destinations",) . toJSON) _mediaLiveInputDestinations
+        , fmap (("InputSecurityGroups",) . toJSON) _mediaLiveInputInputSecurityGroups
+        , fmap (("MediaConnectFlows",) . toJSON) _mediaLiveInputMediaConnectFlows
+        , fmap (("Name",) . toJSON) _mediaLiveInputName
+        , fmap (("RoleArn",) . toJSON) _mediaLiveInputRoleArn
+        , fmap (("Sources",) . toJSON) _mediaLiveInputSources
+        , fmap (("Tags",) . toJSON) _mediaLiveInputTags
+        , fmap (("Type",) . toJSON) _mediaLiveInputType
+        , fmap (("Vpc",) . toJSON) _mediaLiveInputVpc
+        ]
+    }
+
+-- | Constructor for 'MediaLiveInput' containing required fields as arguments.
+mediaLiveInput
+  :: MediaLiveInput
+mediaLiveInput  =
+  MediaLiveInput
+  { _mediaLiveInputDestinations = Nothing
+  , _mediaLiveInputInputSecurityGroups = Nothing
+  , _mediaLiveInputMediaConnectFlows = Nothing
+  , _mediaLiveInputName = Nothing
+  , _mediaLiveInputRoleArn = Nothing
+  , _mediaLiveInputSources = Nothing
+  , _mediaLiveInputTags = Nothing
+  , _mediaLiveInputType = Nothing
+  , _mediaLiveInputVpc = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-destinations
+mliDestinations :: Lens' MediaLiveInput (Maybe [MediaLiveInputInputDestinationRequest])
+mliDestinations = lens _mediaLiveInputDestinations (\s a -> s { _mediaLiveInputDestinations = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-inputsecuritygroups
+mliInputSecurityGroups :: Lens' MediaLiveInput (Maybe (ValList Text))
+mliInputSecurityGroups = lens _mediaLiveInputInputSecurityGroups (\s a -> s { _mediaLiveInputInputSecurityGroups = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-mediaconnectflows
+mliMediaConnectFlows :: Lens' MediaLiveInput (Maybe [MediaLiveInputMediaConnectFlowRequest])
+mliMediaConnectFlows = lens _mediaLiveInputMediaConnectFlows (\s a -> s { _mediaLiveInputMediaConnectFlows = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-name
+mliName :: Lens' MediaLiveInput (Maybe (Val Text))
+mliName = lens _mediaLiveInputName (\s a -> s { _mediaLiveInputName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-rolearn
+mliRoleArn :: Lens' MediaLiveInput (Maybe (Val Text))
+mliRoleArn = lens _mediaLiveInputRoleArn (\s a -> s { _mediaLiveInputRoleArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-sources
+mliSources :: Lens' MediaLiveInput (Maybe [MediaLiveInputInputSourceRequest])
+mliSources = lens _mediaLiveInputSources (\s a -> s { _mediaLiveInputSources = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-tags
+mliTags :: Lens' MediaLiveInput (Maybe Object)
+mliTags = lens _mediaLiveInputTags (\s a -> s { _mediaLiveInputTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-type
+mliType :: Lens' MediaLiveInput (Maybe (Val Text))
+mliType = lens _mediaLiveInputType (\s a -> s { _mediaLiveInputType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-vpc
+mliVpc :: Lens' MediaLiveInput (Maybe MediaLiveInputInputVpcRequest)
+mliVpc = lens _mediaLiveInputVpc (\s a -> s { _mediaLiveInputVpc = a })
diff --git a/library-gen/Stratosphere/Resources/MediaLiveInputSecurityGroup.hs b/library-gen/Stratosphere/Resources/MediaLiveInputSecurityGroup.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/MediaLiveInputSecurityGroup.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-inputsecuritygroup.html
+
+module Stratosphere.Resources.MediaLiveInputSecurityGroup where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.MediaLiveInputSecurityGroupInputWhitelistRuleCidr
+
+-- | Full data type definition for MediaLiveInputSecurityGroup. See
+-- 'mediaLiveInputSecurityGroup' for a more convenient constructor.
+data MediaLiveInputSecurityGroup =
+  MediaLiveInputSecurityGroup
+  { _mediaLiveInputSecurityGroupTags :: Maybe Object
+  , _mediaLiveInputSecurityGroupWhitelistRules :: Maybe [MediaLiveInputSecurityGroupInputWhitelistRuleCidr]
+  } deriving (Show, Eq)
+
+instance ToResourceProperties MediaLiveInputSecurityGroup where
+  toResourceProperties MediaLiveInputSecurityGroup{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::MediaLive::InputSecurityGroup"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("Tags",) . toJSON) _mediaLiveInputSecurityGroupTags
+        , fmap (("WhitelistRules",) . toJSON) _mediaLiveInputSecurityGroupWhitelistRules
+        ]
+    }
+
+-- | Constructor for 'MediaLiveInputSecurityGroup' containing required fields
+-- as arguments.
+mediaLiveInputSecurityGroup
+  :: MediaLiveInputSecurityGroup
+mediaLiveInputSecurityGroup  =
+  MediaLiveInputSecurityGroup
+  { _mediaLiveInputSecurityGroupTags = Nothing
+  , _mediaLiveInputSecurityGroupWhitelistRules = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-inputsecuritygroup.html#cfn-medialive-inputsecuritygroup-tags
+mlisgTags :: Lens' MediaLiveInputSecurityGroup (Maybe Object)
+mlisgTags = lens _mediaLiveInputSecurityGroupTags (\s a -> s { _mediaLiveInputSecurityGroupTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-inputsecuritygroup.html#cfn-medialive-inputsecuritygroup-whitelistrules
+mlisgWhitelistRules :: Lens' MediaLiveInputSecurityGroup (Maybe [MediaLiveInputSecurityGroupInputWhitelistRuleCidr])
+mlisgWhitelistRules = lens _mediaLiveInputSecurityGroupWhitelistRules (\s a -> s { _mediaLiveInputSecurityGroupWhitelistRules = a })
diff --git a/library-gen/Stratosphere/Resources/RDSDBCluster.hs b/library-gen/Stratosphere/Resources/RDSDBCluster.hs
--- a/library-gen/Stratosphere/Resources/RDSDBCluster.hs
+++ b/library-gen/Stratosphere/Resources/RDSDBCluster.hs
@@ -8,6 +8,7 @@
 module Stratosphere.Resources.RDSDBCluster where
 
 import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.RDSDBClusterDBClusterRole
 import Stratosphere.ResourceProperties.RDSDBClusterScalingConfiguration
 import Stratosphere.ResourceProperties.Tag
 
@@ -15,7 +16,8 @@
 -- convenient constructor.
 data RDSDBCluster =
   RDSDBCluster
-  { _rDSDBClusterAvailabilityZones :: Maybe (ValList Text)
+  { _rDSDBClusterAssociatedRoles :: Maybe [RDSDBClusterDBClusterRole]
+  , _rDSDBClusterAvailabilityZones :: Maybe (ValList Text)
   , _rDSDBClusterBacktrackWindow :: Maybe (Val Integer)
   , _rDSDBClusterBackupRetentionPeriod :: Maybe (Val Integer)
   , _rDSDBClusterDBClusterIdentifier :: Maybe (Val Text)
@@ -35,11 +37,14 @@
   , _rDSDBClusterPreferredBackupWindow :: Maybe (Val Text)
   , _rDSDBClusterPreferredMaintenanceWindow :: Maybe (Val Text)
   , _rDSDBClusterReplicationSourceIdentifier :: Maybe (Val Text)
+  , _rDSDBClusterRestoreType :: Maybe (Val Text)
   , _rDSDBClusterScalingConfiguration :: Maybe RDSDBClusterScalingConfiguration
   , _rDSDBClusterSnapshotIdentifier :: Maybe (Val Text)
+  , _rDSDBClusterSourceDBClusterIdentifier :: Maybe (Val Text)
   , _rDSDBClusterSourceRegion :: Maybe (Val Text)
   , _rDSDBClusterStorageEncrypted :: Maybe (Val Bool)
   , _rDSDBClusterTags :: Maybe [Tag]
+  , _rDSDBClusterUseLatestRestorableTime :: Maybe (Val Bool)
   , _rDSDBClusterVpcSecurityGroupIds :: Maybe (ValList Text)
   } deriving (Show, Eq)
 
@@ -49,7 +54,8 @@
     { resourcePropertiesType = "AWS::RDS::DBCluster"
     , resourcePropertiesProperties =
         hashMapFromList $ catMaybes
-        [ fmap (("AvailabilityZones",) . toJSON) _rDSDBClusterAvailabilityZones
+        [ fmap (("AssociatedRoles",) . toJSON) _rDSDBClusterAssociatedRoles
+        , fmap (("AvailabilityZones",) . toJSON) _rDSDBClusterAvailabilityZones
         , fmap (("BacktrackWindow",) . toJSON) _rDSDBClusterBacktrackWindow
         , fmap (("BackupRetentionPeriod",) . toJSON) _rDSDBClusterBackupRetentionPeriod
         , fmap (("DBClusterIdentifier",) . toJSON) _rDSDBClusterDBClusterIdentifier
@@ -69,11 +75,14 @@
         , fmap (("PreferredBackupWindow",) . toJSON) _rDSDBClusterPreferredBackupWindow
         , fmap (("PreferredMaintenanceWindow",) . toJSON) _rDSDBClusterPreferredMaintenanceWindow
         , fmap (("ReplicationSourceIdentifier",) . toJSON) _rDSDBClusterReplicationSourceIdentifier
+        , fmap (("RestoreType",) . toJSON) _rDSDBClusterRestoreType
         , fmap (("ScalingConfiguration",) . toJSON) _rDSDBClusterScalingConfiguration
         , fmap (("SnapshotIdentifier",) . toJSON) _rDSDBClusterSnapshotIdentifier
+        , fmap (("SourceDBClusterIdentifier",) . toJSON) _rDSDBClusterSourceDBClusterIdentifier
         , fmap (("SourceRegion",) . toJSON) _rDSDBClusterSourceRegion
         , fmap (("StorageEncrypted",) . toJSON) _rDSDBClusterStorageEncrypted
         , fmap (("Tags",) . toJSON) _rDSDBClusterTags
+        , fmap (("UseLatestRestorableTime",) . toJSON) _rDSDBClusterUseLatestRestorableTime
         , fmap (("VpcSecurityGroupIds",) . toJSON) _rDSDBClusterVpcSecurityGroupIds
         ]
     }
@@ -84,7 +93,8 @@
   -> RDSDBCluster
 rdsdbCluster enginearg =
   RDSDBCluster
-  { _rDSDBClusterAvailabilityZones = Nothing
+  { _rDSDBClusterAssociatedRoles = Nothing
+  , _rDSDBClusterAvailabilityZones = Nothing
   , _rDSDBClusterBacktrackWindow = Nothing
   , _rDSDBClusterBackupRetentionPeriod = Nothing
   , _rDSDBClusterDBClusterIdentifier = Nothing
@@ -104,14 +114,21 @@
   , _rDSDBClusterPreferredBackupWindow = Nothing
   , _rDSDBClusterPreferredMaintenanceWindow = Nothing
   , _rDSDBClusterReplicationSourceIdentifier = Nothing
+  , _rDSDBClusterRestoreType = Nothing
   , _rDSDBClusterScalingConfiguration = Nothing
   , _rDSDBClusterSnapshotIdentifier = Nothing
+  , _rDSDBClusterSourceDBClusterIdentifier = Nothing
   , _rDSDBClusterSourceRegion = Nothing
   , _rDSDBClusterStorageEncrypted = Nothing
   , _rDSDBClusterTags = Nothing
+  , _rDSDBClusterUseLatestRestorableTime = Nothing
   , _rDSDBClusterVpcSecurityGroupIds = Nothing
   }
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-associatedroles
+rdsdbcAssociatedRoles :: Lens' RDSDBCluster (Maybe [RDSDBClusterDBClusterRole])
+rdsdbcAssociatedRoles = lens _rDSDBClusterAssociatedRoles (\s a -> s { _rDSDBClusterAssociatedRoles = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-availabilityzones
 rdsdbcAvailabilityZones :: Lens' RDSDBCluster (Maybe (ValList Text))
 rdsdbcAvailabilityZones = lens _rDSDBClusterAvailabilityZones (\s a -> s { _rDSDBClusterAvailabilityZones = a })
@@ -192,6 +209,10 @@
 rdsdbcReplicationSourceIdentifier :: Lens' RDSDBCluster (Maybe (Val Text))
 rdsdbcReplicationSourceIdentifier = lens _rDSDBClusterReplicationSourceIdentifier (\s a -> s { _rDSDBClusterReplicationSourceIdentifier = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-restoretype
+rdsdbcRestoreType :: Lens' RDSDBCluster (Maybe (Val Text))
+rdsdbcRestoreType = lens _rDSDBClusterRestoreType (\s a -> s { _rDSDBClusterRestoreType = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-scalingconfiguration
 rdsdbcScalingConfiguration :: Lens' RDSDBCluster (Maybe RDSDBClusterScalingConfiguration)
 rdsdbcScalingConfiguration = lens _rDSDBClusterScalingConfiguration (\s a -> s { _rDSDBClusterScalingConfiguration = a })
@@ -200,6 +221,10 @@
 rdsdbcSnapshotIdentifier :: Lens' RDSDBCluster (Maybe (Val Text))
 rdsdbcSnapshotIdentifier = lens _rDSDBClusterSnapshotIdentifier (\s a -> s { _rDSDBClusterSnapshotIdentifier = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-sourcedbclusteridentifier
+rdsdbcSourceDBClusterIdentifier :: Lens' RDSDBCluster (Maybe (Val Text))
+rdsdbcSourceDBClusterIdentifier = lens _rDSDBClusterSourceDBClusterIdentifier (\s a -> s { _rDSDBClusterSourceDBClusterIdentifier = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-sourceregion
 rdsdbcSourceRegion :: Lens' RDSDBCluster (Maybe (Val Text))
 rdsdbcSourceRegion = lens _rDSDBClusterSourceRegion (\s a -> s { _rDSDBClusterSourceRegion = a })
@@ -211,6 +236,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-tags
 rdsdbcTags :: Lens' RDSDBCluster (Maybe [Tag])
 rdsdbcTags = lens _rDSDBClusterTags (\s a -> s { _rDSDBClusterTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-uselatestrestorabletime
+rdsdbcUseLatestRestorableTime :: Lens' RDSDBCluster (Maybe (Val Bool))
+rdsdbcUseLatestRestorableTime = lens _rDSDBClusterUseLatestRestorableTime (\s a -> s { _rDSDBClusterUseLatestRestorableTime = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-vpcsecuritygroupids
 rdsdbcVpcSecurityGroupIds :: Lens' RDSDBCluster (Maybe (ValList Text))
diff --git a/library-gen/Stratosphere/Resources/RDSDBInstance.hs b/library-gen/Stratosphere/Resources/RDSDBInstance.hs
--- a/library-gen/Stratosphere/Resources/RDSDBInstance.hs
+++ b/library-gen/Stratosphere/Resources/RDSDBInstance.hs
@@ -8,6 +8,7 @@
 module Stratosphere.Resources.RDSDBInstance where
 
 import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.RDSDBInstanceDBInstanceRole
 import Stratosphere.ResourceProperties.RDSDBInstanceProcessorFeature
 import Stratosphere.ResourceProperties.Tag
 
@@ -17,6 +18,7 @@
   RDSDBInstance
   { _rDSDBInstanceAllocatedStorage :: Maybe (Val Text)
   , _rDSDBInstanceAllowMajorVersionUpgrade :: Maybe (Val Bool)
+  , _rDSDBInstanceAssociatedRoles :: Maybe [RDSDBInstanceDBInstanceRole]
   , _rDSDBInstanceAutoMinorVersionUpgrade :: Maybe (Val Bool)
   , _rDSDBInstanceAvailabilityZone :: Maybe (Val Text)
   , _rDSDBInstanceBackupRetentionPeriod :: Maybe (Val Integer)
@@ -74,6 +76,7 @@
         hashMapFromList $ catMaybes
         [ fmap (("AllocatedStorage",) . toJSON) _rDSDBInstanceAllocatedStorage
         , fmap (("AllowMajorVersionUpgrade",) . toJSON) _rDSDBInstanceAllowMajorVersionUpgrade
+        , fmap (("AssociatedRoles",) . toJSON) _rDSDBInstanceAssociatedRoles
         , fmap (("AutoMinorVersionUpgrade",) . toJSON) _rDSDBInstanceAutoMinorVersionUpgrade
         , fmap (("AvailabilityZone",) . toJSON) _rDSDBInstanceAvailabilityZone
         , fmap (("BackupRetentionPeriod",) . toJSON) _rDSDBInstanceBackupRetentionPeriod
@@ -132,6 +135,7 @@
   RDSDBInstance
   { _rDSDBInstanceAllocatedStorage = Nothing
   , _rDSDBInstanceAllowMajorVersionUpgrade = Nothing
+  , _rDSDBInstanceAssociatedRoles = Nothing
   , _rDSDBInstanceAutoMinorVersionUpgrade = Nothing
   , _rDSDBInstanceAvailabilityZone = Nothing
   , _rDSDBInstanceBackupRetentionPeriod = Nothing
@@ -188,6 +192,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-allowmajorversionupgrade
 rdsdbiAllowMajorVersionUpgrade :: Lens' RDSDBInstance (Maybe (Val Bool))
 rdsdbiAllowMajorVersionUpgrade = lens _rDSDBInstanceAllowMajorVersionUpgrade (\s a -> s { _rDSDBInstanceAllowMajorVersionUpgrade = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-associatedroles
+rdsdbiAssociatedRoles :: Lens' RDSDBInstance (Maybe [RDSDBInstanceDBInstanceRole])
+rdsdbiAssociatedRoles = lens _rDSDBInstanceAssociatedRoles (\s a -> s { _rDSDBInstanceAssociatedRoles = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-autominorversionupgrade
 rdsdbiAutoMinorVersionUpgrade :: Lens' RDSDBInstance (Maybe (Val Bool))
diff --git a/library-gen/Stratosphere/Resources/SecurityHubHub.hs b/library-gen/Stratosphere/Resources/SecurityHubHub.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/SecurityHubHub.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-hub.html
+
+module Stratosphere.Resources.SecurityHubHub where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for SecurityHubHub. See 'securityHubHub' for a
+-- more convenient constructor.
+data SecurityHubHub =
+  SecurityHubHub
+  { _securityHubHubTags :: Maybe Object
+  } deriving (Show, Eq)
+
+instance ToResourceProperties SecurityHubHub where
+  toResourceProperties SecurityHubHub{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::SecurityHub::Hub"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("Tags",) . toJSON) _securityHubHubTags
+        ]
+    }
+
+-- | Constructor for 'SecurityHubHub' containing required fields as arguments.
+securityHubHub
+  :: SecurityHubHub
+securityHubHub  =
+  SecurityHubHub
+  { _securityHubHubTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-hub.html#cfn-securityhub-hub-tags
+shhTags :: Lens' SecurityHubHub (Maybe Object)
+shhTags = lens _securityHubHubTags (\s a -> s { _securityHubHubTags = a })
diff --git a/library-gen/Stratosphere/Resources/ServiceCatalogCloudFormationProvisionedProduct.hs b/library-gen/Stratosphere/Resources/ServiceCatalogCloudFormationProvisionedProduct.hs
--- a/library-gen/Stratosphere/Resources/ServiceCatalogCloudFormationProvisionedProduct.hs
+++ b/library-gen/Stratosphere/Resources/ServiceCatalogCloudFormationProvisionedProduct.hs
@@ -9,6 +9,7 @@
 
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.ServiceCatalogCloudFormationProvisionedProductProvisioningParameter
+import Stratosphere.ResourceProperties.ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences
 import Stratosphere.ResourceProperties.Tag
 
 -- | Full data type definition for
@@ -26,6 +27,7 @@
   , _serviceCatalogCloudFormationProvisionedProductProvisioningArtifactId :: Maybe (Val Text)
   , _serviceCatalogCloudFormationProvisionedProductProvisioningArtifactName :: Maybe (Val Text)
   , _serviceCatalogCloudFormationProvisionedProductProvisioningParameters :: Maybe [ServiceCatalogCloudFormationProvisionedProductProvisioningParameter]
+  , _serviceCatalogCloudFormationProvisionedProductProvisioningPreferences :: Maybe ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences
   , _serviceCatalogCloudFormationProvisionedProductTags :: Maybe [Tag]
   } deriving (Show, Eq)
 
@@ -44,6 +46,7 @@
         , fmap (("ProvisioningArtifactId",) . toJSON) _serviceCatalogCloudFormationProvisionedProductProvisioningArtifactId
         , fmap (("ProvisioningArtifactName",) . toJSON) _serviceCatalogCloudFormationProvisionedProductProvisioningArtifactName
         , fmap (("ProvisioningParameters",) . toJSON) _serviceCatalogCloudFormationProvisionedProductProvisioningParameters
+        , fmap (("ProvisioningPreferences",) . toJSON) _serviceCatalogCloudFormationProvisionedProductProvisioningPreferences
         , fmap (("Tags",) . toJSON) _serviceCatalogCloudFormationProvisionedProductTags
         ]
     }
@@ -63,6 +66,7 @@
   , _serviceCatalogCloudFormationProvisionedProductProvisioningArtifactId = Nothing
   , _serviceCatalogCloudFormationProvisionedProductProvisioningArtifactName = Nothing
   , _serviceCatalogCloudFormationProvisionedProductProvisioningParameters = Nothing
+  , _serviceCatalogCloudFormationProvisionedProductProvisioningPreferences = Nothing
   , _serviceCatalogCloudFormationProvisionedProductTags = Nothing
   }
 
@@ -101,6 +105,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningparameters
 sccfppProvisioningParameters :: Lens' ServiceCatalogCloudFormationProvisionedProduct (Maybe [ServiceCatalogCloudFormationProvisionedProductProvisioningParameter])
 sccfppProvisioningParameters = lens _serviceCatalogCloudFormationProvisionedProductProvisioningParameters (\s a -> s { _serviceCatalogCloudFormationProvisionedProductProvisioningParameters = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences
+sccfppProvisioningPreferences :: Lens' ServiceCatalogCloudFormationProvisionedProduct (Maybe ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences)
+sccfppProvisioningPreferences = lens _serviceCatalogCloudFormationProvisionedProductProvisioningPreferences (\s a -> s { _serviceCatalogCloudFormationProvisionedProductProvisioningPreferences = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-tags
 sccfppTags :: Lens' ServiceCatalogCloudFormationProvisionedProduct (Maybe [Tag])
diff --git a/library-gen/Stratosphere/Resources/ServiceCatalogStackSetConstraint.hs b/library-gen/Stratosphere/Resources/ServiceCatalogStackSetConstraint.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ServiceCatalogStackSetConstraint.hs
@@ -0,0 +1,105 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-stacksetconstraint.html
+
+module Stratosphere.Resources.ServiceCatalogStackSetConstraint where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for ServiceCatalogStackSetConstraint. See
+-- 'serviceCatalogStackSetConstraint' for a more convenient constructor.
+data ServiceCatalogStackSetConstraint =
+  ServiceCatalogStackSetConstraint
+  { _serviceCatalogStackSetConstraintAcceptLanguage :: Maybe (Val Text)
+  , _serviceCatalogStackSetConstraintAccountList :: ValList Text
+  , _serviceCatalogStackSetConstraintAdminRole :: Val Text
+  , _serviceCatalogStackSetConstraintDescription :: Val Text
+  , _serviceCatalogStackSetConstraintExecutionRole :: Val Text
+  , _serviceCatalogStackSetConstraintPortfolioId :: Val Text
+  , _serviceCatalogStackSetConstraintProductId :: Val Text
+  , _serviceCatalogStackSetConstraintRegionList :: ValList Text
+  , _serviceCatalogStackSetConstraintStackInstanceControl :: Val Text
+  } deriving (Show, Eq)
+
+instance ToResourceProperties ServiceCatalogStackSetConstraint where
+  toResourceProperties ServiceCatalogStackSetConstraint{..} =
+    ResourceProperties
+    { resourcePropertiesType = "AWS::ServiceCatalog::StackSetConstraint"
+    , resourcePropertiesProperties =
+        hashMapFromList $ catMaybes
+        [ fmap (("AcceptLanguage",) . toJSON) _serviceCatalogStackSetConstraintAcceptLanguage
+        , (Just . ("AccountList",) . toJSON) _serviceCatalogStackSetConstraintAccountList
+        , (Just . ("AdminRole",) . toJSON) _serviceCatalogStackSetConstraintAdminRole
+        , (Just . ("Description",) . toJSON) _serviceCatalogStackSetConstraintDescription
+        , (Just . ("ExecutionRole",) . toJSON) _serviceCatalogStackSetConstraintExecutionRole
+        , (Just . ("PortfolioId",) . toJSON) _serviceCatalogStackSetConstraintPortfolioId
+        , (Just . ("ProductId",) . toJSON) _serviceCatalogStackSetConstraintProductId
+        , (Just . ("RegionList",) . toJSON) _serviceCatalogStackSetConstraintRegionList
+        , (Just . ("StackInstanceControl",) . toJSON) _serviceCatalogStackSetConstraintStackInstanceControl
+        ]
+    }
+
+-- | Constructor for 'ServiceCatalogStackSetConstraint' containing required
+-- fields as arguments.
+serviceCatalogStackSetConstraint
+  :: ValList Text -- ^ 'scsscAccountList'
+  -> Val Text -- ^ 'scsscAdminRole'
+  -> Val Text -- ^ 'scsscDescription'
+  -> Val Text -- ^ 'scsscExecutionRole'
+  -> Val Text -- ^ 'scsscPortfolioId'
+  -> Val Text -- ^ 'scsscProductId'
+  -> ValList Text -- ^ 'scsscRegionList'
+  -> Val Text -- ^ 'scsscStackInstanceControl'
+  -> ServiceCatalogStackSetConstraint
+serviceCatalogStackSetConstraint accountListarg adminRolearg descriptionarg executionRolearg portfolioIdarg productIdarg regionListarg stackInstanceControlarg =
+  ServiceCatalogStackSetConstraint
+  { _serviceCatalogStackSetConstraintAcceptLanguage = Nothing
+  , _serviceCatalogStackSetConstraintAccountList = accountListarg
+  , _serviceCatalogStackSetConstraintAdminRole = adminRolearg
+  , _serviceCatalogStackSetConstraintDescription = descriptionarg
+  , _serviceCatalogStackSetConstraintExecutionRole = executionRolearg
+  , _serviceCatalogStackSetConstraintPortfolioId = portfolioIdarg
+  , _serviceCatalogStackSetConstraintProductId = productIdarg
+  , _serviceCatalogStackSetConstraintRegionList = regionListarg
+  , _serviceCatalogStackSetConstraintStackInstanceControl = stackInstanceControlarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-stacksetconstraint.html#cfn-servicecatalog-stacksetconstraint-acceptlanguage
+scsscAcceptLanguage :: Lens' ServiceCatalogStackSetConstraint (Maybe (Val Text))
+scsscAcceptLanguage = lens _serviceCatalogStackSetConstraintAcceptLanguage (\s a -> s { _serviceCatalogStackSetConstraintAcceptLanguage = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-stacksetconstraint.html#cfn-servicecatalog-stacksetconstraint-accountlist
+scsscAccountList :: Lens' ServiceCatalogStackSetConstraint (ValList Text)
+scsscAccountList = lens _serviceCatalogStackSetConstraintAccountList (\s a -> s { _serviceCatalogStackSetConstraintAccountList = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-stacksetconstraint.html#cfn-servicecatalog-stacksetconstraint-adminrole
+scsscAdminRole :: Lens' ServiceCatalogStackSetConstraint (Val Text)
+scsscAdminRole = lens _serviceCatalogStackSetConstraintAdminRole (\s a -> s { _serviceCatalogStackSetConstraintAdminRole = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-stacksetconstraint.html#cfn-servicecatalog-stacksetconstraint-description
+scsscDescription :: Lens' ServiceCatalogStackSetConstraint (Val Text)
+scsscDescription = lens _serviceCatalogStackSetConstraintDescription (\s a -> s { _serviceCatalogStackSetConstraintDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-stacksetconstraint.html#cfn-servicecatalog-stacksetconstraint-executionrole
+scsscExecutionRole :: Lens' ServiceCatalogStackSetConstraint (Val Text)
+scsscExecutionRole = lens _serviceCatalogStackSetConstraintExecutionRole (\s a -> s { _serviceCatalogStackSetConstraintExecutionRole = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-stacksetconstraint.html#cfn-servicecatalog-stacksetconstraint-portfolioid
+scsscPortfolioId :: Lens' ServiceCatalogStackSetConstraint (Val Text)
+scsscPortfolioId = lens _serviceCatalogStackSetConstraintPortfolioId (\s a -> s { _serviceCatalogStackSetConstraintPortfolioId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-stacksetconstraint.html#cfn-servicecatalog-stacksetconstraint-productid
+scsscProductId :: Lens' ServiceCatalogStackSetConstraint (Val Text)
+scsscProductId = lens _serviceCatalogStackSetConstraintProductId (\s a -> s { _serviceCatalogStackSetConstraintProductId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-stacksetconstraint.html#cfn-servicecatalog-stacksetconstraint-regionlist
+scsscRegionList :: Lens' ServiceCatalogStackSetConstraint (ValList Text)
+scsscRegionList = lens _serviceCatalogStackSetConstraintRegionList (\s a -> s { _serviceCatalogStackSetConstraintRegionList = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-stacksetconstraint.html#cfn-servicecatalog-stacksetconstraint-stackinstancecontrol
+scsscStackInstanceControl :: Lens' ServiceCatalogStackSetConstraint (Val Text)
+scsscStackInstanceControl = lens _serviceCatalogStackSetConstraintStackInstanceControl (\s a -> s { _serviceCatalogStackSetConstraintStackInstanceControl = a })
diff --git a/stratosphere.cabal b/stratosphere.cabal
--- a/stratosphere.cabal
+++ b/stratosphere.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 8b9ce3b7b409c9c1990a3745ec4c4d60a4f2f270e6aa9ba5f5d293ca90cfae84
+-- hash: 971a1247872b8bcc983f4f4b3db7a5a892b9a5194f19d6a8eb647e0e67211b3b
 
 name:           stratosphere
-version:        0.39.0
+version:        0.40.0
 synopsis:       EDSL for AWS CloudFormation
 description:    EDSL for AWS CloudFormation
 category:       AWS, Cloud
@@ -59,7 +59,6 @@
       Stratosphere.ResourceProperties.AmplifyAppBasicAuthConfig
       Stratosphere.ResourceProperties.AmplifyAppCustomRule
       Stratosphere.ResourceProperties.AmplifyAppEnvironmentVariable
-      Stratosphere.ResourceProperties.AmplifyAppToken
       Stratosphere.ResourceProperties.AmplifyBranchBasicAuthConfig
       Stratosphere.ResourceProperties.AmplifyBranchEnvironmentVariable
       Stratosphere.ResourceProperties.AmplifyDomainSubDomainSetting
@@ -97,16 +96,16 @@
       Stratosphere.ResourceProperties.ApplicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfiguration
       Stratosphere.ResourceProperties.AppMeshMeshEgressFilter
       Stratosphere.ResourceProperties.AppMeshMeshMeshSpec
-      Stratosphere.ResourceProperties.AppMeshMeshTagRef
       Stratosphere.ResourceProperties.AppMeshRouteHttpRoute
       Stratosphere.ResourceProperties.AppMeshRouteHttpRouteAction
       Stratosphere.ResourceProperties.AppMeshRouteHttpRouteMatch
       Stratosphere.ResourceProperties.AppMeshRouteRouteSpec
-      Stratosphere.ResourceProperties.AppMeshRouteTagRef
       Stratosphere.ResourceProperties.AppMeshRouteTcpRoute
       Stratosphere.ResourceProperties.AppMeshRouteTcpRouteAction
       Stratosphere.ResourceProperties.AppMeshRouteWeightedTarget
       Stratosphere.ResourceProperties.AppMeshVirtualNodeAccessLog
+      Stratosphere.ResourceProperties.AppMeshVirtualNodeAwsCloudMapInstanceAttribute
+      Stratosphere.ResourceProperties.AppMeshVirtualNodeAwsCloudMapServiceDiscovery
       Stratosphere.ResourceProperties.AppMeshVirtualNodeBackend
       Stratosphere.ResourceProperties.AppMeshVirtualNodeDnsServiceDiscovery
       Stratosphere.ResourceProperties.AppMeshVirtualNodeFileAccessLog
@@ -115,14 +114,11 @@
       Stratosphere.ResourceProperties.AppMeshVirtualNodeLogging
       Stratosphere.ResourceProperties.AppMeshVirtualNodePortMapping
       Stratosphere.ResourceProperties.AppMeshVirtualNodeServiceDiscovery
-      Stratosphere.ResourceProperties.AppMeshVirtualNodeTagRef
       Stratosphere.ResourceProperties.AppMeshVirtualNodeVirtualNodeSpec
       Stratosphere.ResourceProperties.AppMeshVirtualNodeVirtualServiceBackend
       Stratosphere.ResourceProperties.AppMeshVirtualRouterPortMapping
-      Stratosphere.ResourceProperties.AppMeshVirtualRouterTagRef
       Stratosphere.ResourceProperties.AppMeshVirtualRouterVirtualRouterListener
       Stratosphere.ResourceProperties.AppMeshVirtualRouterVirtualRouterSpec
-      Stratosphere.ResourceProperties.AppMeshVirtualServiceTagRef
       Stratosphere.ResourceProperties.AppMeshVirtualServiceVirtualNodeServiceProvider
       Stratosphere.ResourceProperties.AppMeshVirtualServiceVirtualRouterServiceProvider
       Stratosphere.ResourceProperties.AppMeshVirtualServiceVirtualServiceProvider
@@ -178,6 +174,12 @@
       Stratosphere.ResourceProperties.AutoScalingScalingPolicyPredefinedMetricSpecification
       Stratosphere.ResourceProperties.AutoScalingScalingPolicyStepAdjustment
       Stratosphere.ResourceProperties.AutoScalingScalingPolicyTargetTrackingConfiguration
+      Stratosphere.ResourceProperties.BackupBackupPlanBackupPlanResourceType
+      Stratosphere.ResourceProperties.BackupBackupPlanBackupRuleResourceType
+      Stratosphere.ResourceProperties.BackupBackupPlanLifecycleResourceType
+      Stratosphere.ResourceProperties.BackupBackupSelectionBackupSelectionResourceType
+      Stratosphere.ResourceProperties.BackupBackupSelectionConditionResourceType
+      Stratosphere.ResourceProperties.BackupBackupVaultNotificationObjectType
       Stratosphere.ResourceProperties.BatchComputeEnvironmentComputeResources
       Stratosphere.ResourceProperties.BatchComputeEnvironmentLaunchTemplateSpecification
       Stratosphere.ResourceProperties.BatchJobDefinitionContainerProperties
@@ -304,6 +306,9 @@
       Stratosphere.ResourceProperties.ConfigConfigurationAggregatorOrganizationAggregationSource
       Stratosphere.ResourceProperties.ConfigConfigurationRecorderRecordingGroup
       Stratosphere.ResourceProperties.ConfigDeliveryChannelConfigSnapshotDeliveryProperties
+      Stratosphere.ResourceProperties.ConfigRemediationConfigurationRemediationParameterValue
+      Stratosphere.ResourceProperties.ConfigRemediationConfigurationResourceValue
+      Stratosphere.ResourceProperties.ConfigRemediationConfigurationStaticValue
       Stratosphere.ResourceProperties.DataPipelinePipelineField
       Stratosphere.ResourceProperties.DataPipelinePipelineParameterAttribute
       Stratosphere.ResourceProperties.DataPipelinePipelineParameterObject
@@ -349,6 +354,7 @@
       Stratosphere.ResourceProperties.EC2EC2FleetTargetCapacitySpecificationRequest
       Stratosphere.ResourceProperties.EC2InstanceAssociationParameter
       Stratosphere.ResourceProperties.EC2InstanceBlockDeviceMapping
+      Stratosphere.ResourceProperties.EC2InstanceCpuOptions
       Stratosphere.ResourceProperties.EC2InstanceCreditSpecification
       Stratosphere.ResourceProperties.EC2InstanceEbs
       Stratosphere.ResourceProperties.EC2InstanceElasticGpuSpecification
@@ -433,6 +439,7 @@
       Stratosphere.ResourceProperties.ECSTaskDefinitionRepositoryCredentials
       Stratosphere.ResourceProperties.ECSTaskDefinitionResourceRequirement
       Stratosphere.ResourceProperties.ECSTaskDefinitionSecret
+      Stratosphere.ResourceProperties.ECSTaskDefinitionSystemControl
       Stratosphere.ResourceProperties.ECSTaskDefinitionTaskDefinitionPlacementConstraint
       Stratosphere.ResourceProperties.ECSTaskDefinitionTmpfs
       Stratosphere.ResourceProperties.ECSTaskDefinitionUlimit
@@ -538,9 +545,11 @@
       Stratosphere.ResourceProperties.EMRStepHadoopJarStepConfig
       Stratosphere.ResourceProperties.EMRStepKeyValue
       Stratosphere.ResourceProperties.EventsEventBusPolicyCondition
+      Stratosphere.ResourceProperties.EventsRuleAwsVpcConfiguration
       Stratosphere.ResourceProperties.EventsRuleEcsParameters
       Stratosphere.ResourceProperties.EventsRuleInputTransformer
       Stratosphere.ResourceProperties.EventsRuleKinesisParameters
+      Stratosphere.ResourceProperties.EventsRuleNetworkConfiguration
       Stratosphere.ResourceProperties.EventsRuleRunCommandParameters
       Stratosphere.ResourceProperties.EventsRuleRunCommandTarget
       Stratosphere.ResourceProperties.EventsRuleSqsParameters
@@ -643,7 +652,10 @@
       Stratosphere.ResourceProperties.IAMUserPolicy
       Stratosphere.ResourceProperties.IoT1ClickProjectDeviceTemplate
       Stratosphere.ResourceProperties.IoT1ClickProjectPlacementTemplate
+      Stratosphere.ResourceProperties.IoTAnalyticsChannelChannelStorage
+      Stratosphere.ResourceProperties.IoTAnalyticsChannelCustomerManagedS3
       Stratosphere.ResourceProperties.IoTAnalyticsChannelRetentionPeriod
+      Stratosphere.ResourceProperties.IoTAnalyticsChannelServiceManagedS3
       Stratosphere.ResourceProperties.IoTAnalyticsDatasetAction
       Stratosphere.ResourceProperties.IoTAnalyticsDatasetContainerAction
       Stratosphere.ResourceProperties.IoTAnalyticsDatasetDatasetContentDeliveryRule
@@ -663,7 +675,10 @@
       Stratosphere.ResourceProperties.IoTAnalyticsDatasetTriggeringDataset
       Stratosphere.ResourceProperties.IoTAnalyticsDatasetVariable
       Stratosphere.ResourceProperties.IoTAnalyticsDatasetVersioningConfiguration
+      Stratosphere.ResourceProperties.IoTAnalyticsDatastoreCustomerManagedS3
+      Stratosphere.ResourceProperties.IoTAnalyticsDatastoreDatastoreStorage
       Stratosphere.ResourceProperties.IoTAnalyticsDatastoreRetentionPeriod
+      Stratosphere.ResourceProperties.IoTAnalyticsDatastoreServiceManagedS3
       Stratosphere.ResourceProperties.IoTAnalyticsPipelineActivity
       Stratosphere.ResourceProperties.IoTAnalyticsPipelineAddAttributes
       Stratosphere.ResourceProperties.IoTAnalyticsPipelineChannel
@@ -794,6 +809,35 @@
       Stratosphere.ResourceProperties.LambdaFunctionVpcConfig
       Stratosphere.ResourceProperties.LambdaLayerVersionContent
       Stratosphere.ResourceProperties.LogsMetricFilterMetricTransformation
+      Stratosphere.ResourceProperties.MediaLiveChannelAribSourceSettings
+      Stratosphere.ResourceProperties.MediaLiveChannelAudioLanguageSelection
+      Stratosphere.ResourceProperties.MediaLiveChannelAudioPidSelection
+      Stratosphere.ResourceProperties.MediaLiveChannelAudioSelector
+      Stratosphere.ResourceProperties.MediaLiveChannelAudioSelectorSettings
+      Stratosphere.ResourceProperties.MediaLiveChannelCaptionSelector
+      Stratosphere.ResourceProperties.MediaLiveChannelCaptionSelectorSettings
+      Stratosphere.ResourceProperties.MediaLiveChannelDvbSubSourceSettings
+      Stratosphere.ResourceProperties.MediaLiveChannelEmbeddedSourceSettings
+      Stratosphere.ResourceProperties.MediaLiveChannelHlsInputSettings
+      Stratosphere.ResourceProperties.MediaLiveChannelInputAttachment
+      Stratosphere.ResourceProperties.MediaLiveChannelInputSettings
+      Stratosphere.ResourceProperties.MediaLiveChannelInputSpecification
+      Stratosphere.ResourceProperties.MediaLiveChannelMediaPackageOutputDestinationSettings
+      Stratosphere.ResourceProperties.MediaLiveChannelNetworkInputSettings
+      Stratosphere.ResourceProperties.MediaLiveChannelOutputDestination
+      Stratosphere.ResourceProperties.MediaLiveChannelOutputDestinationSettings
+      Stratosphere.ResourceProperties.MediaLiveChannelScte20SourceSettings
+      Stratosphere.ResourceProperties.MediaLiveChannelScte27SourceSettings
+      Stratosphere.ResourceProperties.MediaLiveChannelTeletextSourceSettings
+      Stratosphere.ResourceProperties.MediaLiveChannelVideoSelector
+      Stratosphere.ResourceProperties.MediaLiveChannelVideoSelectorPid
+      Stratosphere.ResourceProperties.MediaLiveChannelVideoSelectorProgramId
+      Stratosphere.ResourceProperties.MediaLiveChannelVideoSelectorSettings
+      Stratosphere.ResourceProperties.MediaLiveInputInputDestinationRequest
+      Stratosphere.ResourceProperties.MediaLiveInputInputSourceRequest
+      Stratosphere.ResourceProperties.MediaLiveInputInputVpcRequest
+      Stratosphere.ResourceProperties.MediaLiveInputMediaConnectFlowRequest
+      Stratosphere.ResourceProperties.MediaLiveInputSecurityGroupInputWhitelistRuleCidr
       Stratosphere.ResourceProperties.MediaStoreContainerCorsRule
       Stratosphere.ResourceProperties.MSKClusterBrokerNodeGroupInfo
       Stratosphere.ResourceProperties.MSKClusterClientAuthentication
@@ -866,7 +910,9 @@
       Stratosphere.ResourceProperties.PinpointSegmentSegmentGroups
       Stratosphere.ResourceProperties.PinpointSegmentSetDimension
       Stratosphere.ResourceProperties.PinpointSegmentSourceSegments
+      Stratosphere.ResourceProperties.RDSDBClusterDBClusterRole
       Stratosphere.ResourceProperties.RDSDBClusterScalingConfiguration
+      Stratosphere.ResourceProperties.RDSDBInstanceDBInstanceRole
       Stratosphere.ResourceProperties.RDSDBInstanceProcessorFeature
       Stratosphere.ResourceProperties.RDSDBSecurityGroupIngressProperty
       Stratosphere.ResourceProperties.RDSOptionGroupOptionConfiguration
@@ -944,6 +990,7 @@
       Stratosphere.ResourceProperties.SecretsManagerSecretGenerateSecretString
       Stratosphere.ResourceProperties.ServiceCatalogCloudFormationProductProvisioningArtifactProperties
       Stratosphere.ResourceProperties.ServiceCatalogCloudFormationProvisionedProductProvisioningParameter
+      Stratosphere.ResourceProperties.ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences
       Stratosphere.ResourceProperties.ServiceDiscoveryServiceDnsConfig
       Stratosphere.ResourceProperties.ServiceDiscoveryServiceDnsRecord
       Stratosphere.ResourceProperties.ServiceDiscoveryServiceHealthCheckConfig
@@ -1079,6 +1126,9 @@
       Stratosphere.Resources.AutoScalingPlansScalingPlan
       Stratosphere.Resources.AutoScalingScalingPolicy
       Stratosphere.Resources.AutoScalingScheduledAction
+      Stratosphere.Resources.BackupBackupPlan
+      Stratosphere.Resources.BackupBackupSelection
+      Stratosphere.Resources.BackupBackupVault
       Stratosphere.Resources.BatchComputeEnvironment
       Stratosphere.Resources.BatchJobDefinition
       Stratosphere.Resources.BatchJobQueue
@@ -1116,6 +1166,7 @@
       Stratosphere.Resources.ConfigConfigurationAggregator
       Stratosphere.Resources.ConfigConfigurationRecorder
       Stratosphere.Resources.ConfigDeliveryChannel
+      Stratosphere.Resources.ConfigRemediationConfiguration
       Stratosphere.Resources.DataPipelinePipeline
       Stratosphere.Resources.DAXCluster
       Stratosphere.Resources.DAXParameterGroup
@@ -1305,6 +1356,9 @@
       Stratosphere.Resources.LogsLogStream
       Stratosphere.Resources.LogsMetricFilter
       Stratosphere.Resources.LogsSubscriptionFilter
+      Stratosphere.Resources.MediaLiveChannel
+      Stratosphere.Resources.MediaLiveInput
+      Stratosphere.Resources.MediaLiveInputSecurityGroup
       Stratosphere.Resources.MediaStoreContainer
       Stratosphere.Resources.MSKCluster
       Stratosphere.Resources.NeptuneDBCluster
@@ -1379,6 +1433,7 @@
       Stratosphere.Resources.SecretsManagerRotationSchedule
       Stratosphere.Resources.SecretsManagerSecret
       Stratosphere.Resources.SecretsManagerSecretTargetAttachment
+      Stratosphere.Resources.SecurityHubHub
       Stratosphere.Resources.ServiceCatalogAcceptedPortfolioShare
       Stratosphere.Resources.ServiceCatalogCloudFormationProduct
       Stratosphere.Resources.ServiceCatalogCloudFormationProvisionedProduct
@@ -1390,6 +1445,7 @@
       Stratosphere.Resources.ServiceCatalogPortfolioProductAssociation
       Stratosphere.Resources.ServiceCatalogPortfolioShare
       Stratosphere.Resources.ServiceCatalogResourceUpdateConstraint
+      Stratosphere.Resources.ServiceCatalogStackSetConstraint
       Stratosphere.Resources.ServiceCatalogTagOption
       Stratosphere.Resources.ServiceCatalogTagOptionAssociation
       Stratosphere.Resources.ServiceDiscoveryHttpNamespace
