diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
 # Change Log
 
+## 0.31.0
+
+* Update resource specification document to version 2.25.0
+* Added `Condition` field to resources
+
 ## 0.30.1
 
 * Update resource specification document to version 2.21.0
diff --git a/library-gen/Stratosphere/ResourceProperties/ApiGatewayV2RouteParameterConstraints.hs b/library-gen/Stratosphere/ResourceProperties/ApiGatewayV2RouteParameterConstraints.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ApiGatewayV2RouteParameterConstraints.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-route-parameterconstraints.html
+
+module Stratosphere.ResourceProperties.ApiGatewayV2RouteParameterConstraints where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for ApiGatewayV2RouteParameterConstraints. See
+-- 'apiGatewayV2RouteParameterConstraints' for a more convenient
+-- constructor.
+data ApiGatewayV2RouteParameterConstraints =
+  ApiGatewayV2RouteParameterConstraints
+  { _apiGatewayV2RouteParameterConstraintsRequired :: Val Bool
+  } deriving (Show, Eq)
+
+instance ToJSON ApiGatewayV2RouteParameterConstraints where
+  toJSON ApiGatewayV2RouteParameterConstraints{..} =
+    object $
+    catMaybes
+    [ (Just . ("Required",) . toJSON . fmap Bool') _apiGatewayV2RouteParameterConstraintsRequired
+    ]
+
+instance FromJSON ApiGatewayV2RouteParameterConstraints where
+  parseJSON (Object obj) =
+    ApiGatewayV2RouteParameterConstraints <$>
+      fmap (fmap unBool') (obj .: "Required")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ApiGatewayV2RouteParameterConstraints' containing
+-- required fields as arguments.
+apiGatewayV2RouteParameterConstraints
+  :: Val Bool -- ^ 'agvrpcRequired'
+  -> ApiGatewayV2RouteParameterConstraints
+apiGatewayV2RouteParameterConstraints requiredarg =
+  ApiGatewayV2RouteParameterConstraints
+  { _apiGatewayV2RouteParameterConstraintsRequired = requiredarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-route-parameterconstraints.html#cfn-apigatewayv2-route-parameterconstraints-required
+agvrpcRequired :: Lens' ApiGatewayV2RouteParameterConstraints (Val Bool)
+agvrpcRequired = lens _apiGatewayV2RouteParameterConstraintsRequired (\s a -> s { _apiGatewayV2RouteParameterConstraintsRequired = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ApiGatewayV2RouteResponseParameterConstraints.hs b/library-gen/Stratosphere/ResourceProperties/ApiGatewayV2RouteResponseParameterConstraints.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ApiGatewayV2RouteResponseParameterConstraints.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-routeresponse-parameterconstraints.html
+
+module Stratosphere.ResourceProperties.ApiGatewayV2RouteResponseParameterConstraints where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- ApiGatewayV2RouteResponseParameterConstraints. See
+-- 'apiGatewayV2RouteResponseParameterConstraints' for a more convenient
+-- constructor.
+data ApiGatewayV2RouteResponseParameterConstraints =
+  ApiGatewayV2RouteResponseParameterConstraints
+  { _apiGatewayV2RouteResponseParameterConstraintsRequired :: Val Bool
+  } deriving (Show, Eq)
+
+instance ToJSON ApiGatewayV2RouteResponseParameterConstraints where
+  toJSON ApiGatewayV2RouteResponseParameterConstraints{..} =
+    object $
+    catMaybes
+    [ (Just . ("Required",) . toJSON . fmap Bool') _apiGatewayV2RouteResponseParameterConstraintsRequired
+    ]
+
+instance FromJSON ApiGatewayV2RouteResponseParameterConstraints where
+  parseJSON (Object obj) =
+    ApiGatewayV2RouteResponseParameterConstraints <$>
+      fmap (fmap unBool') (obj .: "Required")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ApiGatewayV2RouteResponseParameterConstraints'
+-- containing required fields as arguments.
+apiGatewayV2RouteResponseParameterConstraints
+  :: Val Bool -- ^ 'agvrrpcRequired'
+  -> ApiGatewayV2RouteResponseParameterConstraints
+apiGatewayV2RouteResponseParameterConstraints requiredarg =
+  ApiGatewayV2RouteResponseParameterConstraints
+  { _apiGatewayV2RouteResponseParameterConstraintsRequired = requiredarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-routeresponse-parameterconstraints.html#cfn-apigatewayv2-routeresponse-parameterconstraints-required
+agvrrpcRequired :: Lens' ApiGatewayV2RouteResponseParameterConstraints (Val Bool)
+agvrrpcRequired = lens _apiGatewayV2RouteResponseParameterConstraintsRequired (\s a -> s { _apiGatewayV2RouteResponseParameterConstraintsRequired = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ApiGatewayV2StageAccessLogSettings.hs b/library-gen/Stratosphere/ResourceProperties/ApiGatewayV2StageAccessLogSettings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ApiGatewayV2StageAccessLogSettings.hs
@@ -0,0 +1,51 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-accesslogsettings.html
+
+module Stratosphere.ResourceProperties.ApiGatewayV2StageAccessLogSettings where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for ApiGatewayV2StageAccessLogSettings. See
+-- 'apiGatewayV2StageAccessLogSettings' for a more convenient constructor.
+data ApiGatewayV2StageAccessLogSettings =
+  ApiGatewayV2StageAccessLogSettings
+  { _apiGatewayV2StageAccessLogSettingsDestinationArn :: Maybe (Val Text)
+  , _apiGatewayV2StageAccessLogSettingsFormat :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON ApiGatewayV2StageAccessLogSettings where
+  toJSON ApiGatewayV2StageAccessLogSettings{..} =
+    object $
+    catMaybes
+    [ fmap (("DestinationArn",) . toJSON) _apiGatewayV2StageAccessLogSettingsDestinationArn
+    , fmap (("Format",) . toJSON) _apiGatewayV2StageAccessLogSettingsFormat
+    ]
+
+instance FromJSON ApiGatewayV2StageAccessLogSettings where
+  parseJSON (Object obj) =
+    ApiGatewayV2StageAccessLogSettings <$>
+      (obj .:? "DestinationArn") <*>
+      (obj .:? "Format")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ApiGatewayV2StageAccessLogSettings' containing required
+-- fields as arguments.
+apiGatewayV2StageAccessLogSettings
+  :: ApiGatewayV2StageAccessLogSettings
+apiGatewayV2StageAccessLogSettings  =
+  ApiGatewayV2StageAccessLogSettings
+  { _apiGatewayV2StageAccessLogSettingsDestinationArn = Nothing
+  , _apiGatewayV2StageAccessLogSettingsFormat = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-accesslogsettings.html#cfn-apigatewayv2-stage-accesslogsettings-destinationarn
+agvsalsDestinationArn :: Lens' ApiGatewayV2StageAccessLogSettings (Maybe (Val Text))
+agvsalsDestinationArn = lens _apiGatewayV2StageAccessLogSettingsDestinationArn (\s a -> s { _apiGatewayV2StageAccessLogSettingsDestinationArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-accesslogsettings.html#cfn-apigatewayv2-stage-accesslogsettings-format
+agvsalsFormat :: Lens' ApiGatewayV2StageAccessLogSettings (Maybe (Val Text))
+agvsalsFormat = lens _apiGatewayV2StageAccessLogSettingsFormat (\s a -> s { _apiGatewayV2StageAccessLogSettingsFormat = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/ApiGatewayV2StageRouteSettings.hs b/library-gen/Stratosphere/ResourceProperties/ApiGatewayV2StageRouteSettings.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/ApiGatewayV2StageRouteSettings.hs
@@ -0,0 +1,75 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html
+
+module Stratosphere.ResourceProperties.ApiGatewayV2StageRouteSettings where
+
+import Stratosphere.ResourceImports
+import Stratosphere.Types
+
+-- | Full data type definition for ApiGatewayV2StageRouteSettings. See
+-- 'apiGatewayV2StageRouteSettings' for a more convenient constructor.
+data ApiGatewayV2StageRouteSettings =
+  ApiGatewayV2StageRouteSettings
+  { _apiGatewayV2StageRouteSettingsDataTraceEnabled :: Maybe (Val Bool)
+  , _apiGatewayV2StageRouteSettingsDetailedMetricsEnabled :: Maybe (Val Bool)
+  , _apiGatewayV2StageRouteSettingsLoggingLevel :: Maybe (Val LoggingLevel)
+  , _apiGatewayV2StageRouteSettingsThrottlingBurstLimit :: Maybe (Val Integer)
+  , _apiGatewayV2StageRouteSettingsThrottlingRateLimit :: Maybe (Val Double)
+  } deriving (Show, Eq)
+
+instance ToJSON ApiGatewayV2StageRouteSettings where
+  toJSON ApiGatewayV2StageRouteSettings{..} =
+    object $
+    catMaybes
+    [ fmap (("DataTraceEnabled",) . toJSON . fmap Bool') _apiGatewayV2StageRouteSettingsDataTraceEnabled
+    , fmap (("DetailedMetricsEnabled",) . toJSON . fmap Bool') _apiGatewayV2StageRouteSettingsDetailedMetricsEnabled
+    , fmap (("LoggingLevel",) . toJSON) _apiGatewayV2StageRouteSettingsLoggingLevel
+    , fmap (("ThrottlingBurstLimit",) . toJSON . fmap Integer') _apiGatewayV2StageRouteSettingsThrottlingBurstLimit
+    , fmap (("ThrottlingRateLimit",) . toJSON . fmap Double') _apiGatewayV2StageRouteSettingsThrottlingRateLimit
+    ]
+
+instance FromJSON ApiGatewayV2StageRouteSettings where
+  parseJSON (Object obj) =
+    ApiGatewayV2StageRouteSettings <$>
+      fmap (fmap (fmap unBool')) (obj .:? "DataTraceEnabled") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "DetailedMetricsEnabled") <*>
+      (obj .:? "LoggingLevel") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "ThrottlingBurstLimit") <*>
+      fmap (fmap (fmap unDouble')) (obj .:? "ThrottlingRateLimit")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ApiGatewayV2StageRouteSettings' containing required
+-- fields as arguments.
+apiGatewayV2StageRouteSettings
+  :: ApiGatewayV2StageRouteSettings
+apiGatewayV2StageRouteSettings  =
+  ApiGatewayV2StageRouteSettings
+  { _apiGatewayV2StageRouteSettingsDataTraceEnabled = Nothing
+  , _apiGatewayV2StageRouteSettingsDetailedMetricsEnabled = Nothing
+  , _apiGatewayV2StageRouteSettingsLoggingLevel = Nothing
+  , _apiGatewayV2StageRouteSettingsThrottlingBurstLimit = Nothing
+  , _apiGatewayV2StageRouteSettingsThrottlingRateLimit = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-datatraceenabled
+agvsrsDataTraceEnabled :: Lens' ApiGatewayV2StageRouteSettings (Maybe (Val Bool))
+agvsrsDataTraceEnabled = lens _apiGatewayV2StageRouteSettingsDataTraceEnabled (\s a -> s { _apiGatewayV2StageRouteSettingsDataTraceEnabled = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-detailedmetricsenabled
+agvsrsDetailedMetricsEnabled :: Lens' ApiGatewayV2StageRouteSettings (Maybe (Val Bool))
+agvsrsDetailedMetricsEnabled = lens _apiGatewayV2StageRouteSettingsDetailedMetricsEnabled (\s a -> s { _apiGatewayV2StageRouteSettingsDetailedMetricsEnabled = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-logginglevel
+agvsrsLoggingLevel :: Lens' ApiGatewayV2StageRouteSettings (Maybe (Val LoggingLevel))
+agvsrsLoggingLevel = lens _apiGatewayV2StageRouteSettingsLoggingLevel (\s a -> s { _apiGatewayV2StageRouteSettingsLoggingLevel = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-throttlingburstlimit
+agvsrsThrottlingBurstLimit :: Lens' ApiGatewayV2StageRouteSettings (Maybe (Val Integer))
+agvsrsThrottlingBurstLimit = lens _apiGatewayV2StageRouteSettingsThrottlingBurstLimit (\s a -> s { _apiGatewayV2StageRouteSettingsThrottlingBurstLimit = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-throttlingratelimit
+agvsrsThrottlingRateLimit :: Lens' ApiGatewayV2StageRouteSettings (Maybe (Val Double))
+agvsrsThrottlingRateLimit = lens _apiGatewayV2StageRouteSettingsThrottlingRateLimit (\s a -> s { _apiGatewayV2StageRouteSettingsThrottlingRateLimit = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CloudWatchAlarmMetric.hs b/library-gen/Stratosphere/ResourceProperties/CloudWatchAlarmMetric.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/CloudWatchAlarmMetric.hs
@@ -0,0 +1,59 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metric.html
+
+module Stratosphere.ResourceProperties.CloudWatchAlarmMetric where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.CloudWatchAlarmDimension
+
+-- | Full data type definition for CloudWatchAlarmMetric. See
+-- 'cloudWatchAlarmMetric' for a more convenient constructor.
+data CloudWatchAlarmMetric =
+  CloudWatchAlarmMetric
+  { _cloudWatchAlarmMetricDimensions :: Maybe [CloudWatchAlarmDimension]
+  , _cloudWatchAlarmMetricMetricName :: Maybe (Val Text)
+  , _cloudWatchAlarmMetricNamespace :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON CloudWatchAlarmMetric where
+  toJSON CloudWatchAlarmMetric{..} =
+    object $
+    catMaybes
+    [ fmap (("Dimensions",) . toJSON) _cloudWatchAlarmMetricDimensions
+    , fmap (("MetricName",) . toJSON) _cloudWatchAlarmMetricMetricName
+    , fmap (("Namespace",) . toJSON) _cloudWatchAlarmMetricNamespace
+    ]
+
+instance FromJSON CloudWatchAlarmMetric where
+  parseJSON (Object obj) =
+    CloudWatchAlarmMetric <$>
+      (obj .:? "Dimensions") <*>
+      (obj .:? "MetricName") <*>
+      (obj .:? "Namespace")
+  parseJSON _ = mempty
+
+-- | Constructor for 'CloudWatchAlarmMetric' containing required fields as
+-- arguments.
+cloudWatchAlarmMetric
+  :: CloudWatchAlarmMetric
+cloudWatchAlarmMetric  =
+  CloudWatchAlarmMetric
+  { _cloudWatchAlarmMetricDimensions = Nothing
+  , _cloudWatchAlarmMetricMetricName = Nothing
+  , _cloudWatchAlarmMetricNamespace = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metric.html#cfn-cloudwatch-alarm-metric-dimensions
+cwamDimensions :: Lens' CloudWatchAlarmMetric (Maybe [CloudWatchAlarmDimension])
+cwamDimensions = lens _cloudWatchAlarmMetricDimensions (\s a -> s { _cloudWatchAlarmMetricDimensions = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metric.html#cfn-cloudwatch-alarm-metric-metricname
+cwamMetricName :: Lens' CloudWatchAlarmMetric (Maybe (Val Text))
+cwamMetricName = lens _cloudWatchAlarmMetricMetricName (\s a -> s { _cloudWatchAlarmMetricMetricName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metric.html#cfn-cloudwatch-alarm-metric-namespace
+cwamNamespace :: Lens' CloudWatchAlarmMetric (Maybe (Val Text))
+cwamNamespace = lens _cloudWatchAlarmMetricNamespace (\s a -> s { _cloudWatchAlarmMetricNamespace = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CloudWatchAlarmMetricDataQuery.hs b/library-gen/Stratosphere/ResourceProperties/CloudWatchAlarmMetricDataQuery.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/CloudWatchAlarmMetricDataQuery.hs
@@ -0,0 +1,76 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html
+
+module Stratosphere.ResourceProperties.CloudWatchAlarmMetricDataQuery where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.CloudWatchAlarmMetricStat
+
+-- | Full data type definition for CloudWatchAlarmMetricDataQuery. See
+-- 'cloudWatchAlarmMetricDataQuery' for a more convenient constructor.
+data CloudWatchAlarmMetricDataQuery =
+  CloudWatchAlarmMetricDataQuery
+  { _cloudWatchAlarmMetricDataQueryExpression :: Maybe (Val Text)
+  , _cloudWatchAlarmMetricDataQueryId :: Val Text
+  , _cloudWatchAlarmMetricDataQueryLabel :: Maybe (Val Text)
+  , _cloudWatchAlarmMetricDataQueryMetricStat :: Maybe CloudWatchAlarmMetricStat
+  , _cloudWatchAlarmMetricDataQueryReturnData :: Maybe (Val Bool)
+  } deriving (Show, Eq)
+
+instance ToJSON CloudWatchAlarmMetricDataQuery where
+  toJSON CloudWatchAlarmMetricDataQuery{..} =
+    object $
+    catMaybes
+    [ fmap (("Expression",) . toJSON) _cloudWatchAlarmMetricDataQueryExpression
+    , (Just . ("Id",) . toJSON) _cloudWatchAlarmMetricDataQueryId
+    , fmap (("Label",) . toJSON) _cloudWatchAlarmMetricDataQueryLabel
+    , fmap (("MetricStat",) . toJSON) _cloudWatchAlarmMetricDataQueryMetricStat
+    , fmap (("ReturnData",) . toJSON . fmap Bool') _cloudWatchAlarmMetricDataQueryReturnData
+    ]
+
+instance FromJSON CloudWatchAlarmMetricDataQuery where
+  parseJSON (Object obj) =
+    CloudWatchAlarmMetricDataQuery <$>
+      (obj .:? "Expression") <*>
+      (obj .: "Id") <*>
+      (obj .:? "Label") <*>
+      (obj .:? "MetricStat") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "ReturnData")
+  parseJSON _ = mempty
+
+-- | Constructor for 'CloudWatchAlarmMetricDataQuery' containing required
+-- fields as arguments.
+cloudWatchAlarmMetricDataQuery
+  :: Val Text -- ^ 'cwamdqId'
+  -> CloudWatchAlarmMetricDataQuery
+cloudWatchAlarmMetricDataQuery idarg =
+  CloudWatchAlarmMetricDataQuery
+  { _cloudWatchAlarmMetricDataQueryExpression = Nothing
+  , _cloudWatchAlarmMetricDataQueryId = idarg
+  , _cloudWatchAlarmMetricDataQueryLabel = Nothing
+  , _cloudWatchAlarmMetricDataQueryMetricStat = Nothing
+  , _cloudWatchAlarmMetricDataQueryReturnData = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html#cfn-cloudwatch-alarm-metricdataquery-expression
+cwamdqExpression :: Lens' CloudWatchAlarmMetricDataQuery (Maybe (Val Text))
+cwamdqExpression = lens _cloudWatchAlarmMetricDataQueryExpression (\s a -> s { _cloudWatchAlarmMetricDataQueryExpression = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html#cfn-cloudwatch-alarm-metricdataquery-id
+cwamdqId :: Lens' CloudWatchAlarmMetricDataQuery (Val Text)
+cwamdqId = lens _cloudWatchAlarmMetricDataQueryId (\s a -> s { _cloudWatchAlarmMetricDataQueryId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html#cfn-cloudwatch-alarm-metricdataquery-label
+cwamdqLabel :: Lens' CloudWatchAlarmMetricDataQuery (Maybe (Val Text))
+cwamdqLabel = lens _cloudWatchAlarmMetricDataQueryLabel (\s a -> s { _cloudWatchAlarmMetricDataQueryLabel = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html#cfn-cloudwatch-alarm-metricdataquery-metricstat
+cwamdqMetricStat :: Lens' CloudWatchAlarmMetricDataQuery (Maybe CloudWatchAlarmMetricStat)
+cwamdqMetricStat = lens _cloudWatchAlarmMetricDataQueryMetricStat (\s a -> s { _cloudWatchAlarmMetricDataQueryMetricStat = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html#cfn-cloudwatch-alarm-metricdataquery-returndata
+cwamdqReturnData :: Lens' CloudWatchAlarmMetricDataQuery (Maybe (Val Bool))
+cwamdqReturnData = lens _cloudWatchAlarmMetricDataQueryReturnData (\s a -> s { _cloudWatchAlarmMetricDataQueryReturnData = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CloudWatchAlarmMetricStat.hs b/library-gen/Stratosphere/ResourceProperties/CloudWatchAlarmMetricStat.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/CloudWatchAlarmMetricStat.hs
@@ -0,0 +1,70 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html
+
+module Stratosphere.ResourceProperties.CloudWatchAlarmMetricStat where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.CloudWatchAlarmMetric
+
+-- | Full data type definition for CloudWatchAlarmMetricStat. See
+-- 'cloudWatchAlarmMetricStat' for a more convenient constructor.
+data CloudWatchAlarmMetricStat =
+  CloudWatchAlarmMetricStat
+  { _cloudWatchAlarmMetricStatMetric :: CloudWatchAlarmMetric
+  , _cloudWatchAlarmMetricStatPeriod :: Val Integer
+  , _cloudWatchAlarmMetricStatStat :: Val Text
+  , _cloudWatchAlarmMetricStatUnit :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON CloudWatchAlarmMetricStat where
+  toJSON CloudWatchAlarmMetricStat{..} =
+    object $
+    catMaybes
+    [ (Just . ("Metric",) . toJSON) _cloudWatchAlarmMetricStatMetric
+    , (Just . ("Period",) . toJSON . fmap Integer') _cloudWatchAlarmMetricStatPeriod
+    , (Just . ("Stat",) . toJSON) _cloudWatchAlarmMetricStatStat
+    , fmap (("Unit",) . toJSON) _cloudWatchAlarmMetricStatUnit
+    ]
+
+instance FromJSON CloudWatchAlarmMetricStat where
+  parseJSON (Object obj) =
+    CloudWatchAlarmMetricStat <$>
+      (obj .: "Metric") <*>
+      fmap (fmap unInteger') (obj .: "Period") <*>
+      (obj .: "Stat") <*>
+      (obj .:? "Unit")
+  parseJSON _ = mempty
+
+-- | Constructor for 'CloudWatchAlarmMetricStat' containing required fields as
+-- arguments.
+cloudWatchAlarmMetricStat
+  :: CloudWatchAlarmMetric -- ^ 'cwamsMetric'
+  -> Val Integer -- ^ 'cwamsPeriod'
+  -> Val Text -- ^ 'cwamsStat'
+  -> CloudWatchAlarmMetricStat
+cloudWatchAlarmMetricStat metricarg periodarg statarg =
+  CloudWatchAlarmMetricStat
+  { _cloudWatchAlarmMetricStatMetric = metricarg
+  , _cloudWatchAlarmMetricStatPeriod = periodarg
+  , _cloudWatchAlarmMetricStatStat = statarg
+  , _cloudWatchAlarmMetricStatUnit = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html#cfn-cloudwatch-alarm-metricstat-metric
+cwamsMetric :: Lens' CloudWatchAlarmMetricStat CloudWatchAlarmMetric
+cwamsMetric = lens _cloudWatchAlarmMetricStatMetric (\s a -> s { _cloudWatchAlarmMetricStatMetric = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html#cfn-cloudwatch-alarm-metricstat-period
+cwamsPeriod :: Lens' CloudWatchAlarmMetricStat (Val Integer)
+cwamsPeriod = lens _cloudWatchAlarmMetricStatPeriod (\s a -> s { _cloudWatchAlarmMetricStatPeriod = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html#cfn-cloudwatch-alarm-metricstat-stat
+cwamsStat :: Lens' CloudWatchAlarmMetricStat (Val Text)
+cwamsStat = lens _cloudWatchAlarmMetricStatStat (\s a -> s { _cloudWatchAlarmMetricStatStat = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html#cfn-cloudwatch-alarm-metricstat-unit
+cwamsUnit :: Lens' CloudWatchAlarmMetricStat (Maybe (Val Text))
+cwamsUnit = lens _cloudWatchAlarmMetricStatUnit (\s a -> s { _cloudWatchAlarmMetricStatUnit = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectProjectCache.hs b/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectProjectCache.hs
--- a/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectProjectCache.hs
+++ b/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectProjectCache.hs
@@ -14,6 +14,7 @@
 data CodeBuildProjectProjectCache =
   CodeBuildProjectProjectCache
   { _codeBuildProjectProjectCacheLocation :: Maybe (Val Text)
+  , _codeBuildProjectProjectCacheModes :: Maybe (ValList Text)
   , _codeBuildProjectProjectCacheType :: Val Text
   } deriving (Show, Eq)
 
@@ -22,6 +23,7 @@
     object $
     catMaybes
     [ fmap (("Location",) . toJSON) _codeBuildProjectProjectCacheLocation
+    , fmap (("Modes",) . toJSON) _codeBuildProjectProjectCacheModes
     , (Just . ("Type",) . toJSON) _codeBuildProjectProjectCacheType
     ]
 
@@ -29,6 +31,7 @@
   parseJSON (Object obj) =
     CodeBuildProjectProjectCache <$>
       (obj .:? "Location") <*>
+      (obj .:? "Modes") <*>
       (obj .: "Type")
   parseJSON _ = mempty
 
@@ -40,12 +43,17 @@
 codeBuildProjectProjectCache typearg =
   CodeBuildProjectProjectCache
   { _codeBuildProjectProjectCacheLocation = Nothing
+  , _codeBuildProjectProjectCacheModes = Nothing
   , _codeBuildProjectProjectCacheType = typearg
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html#cfn-codebuild-project-projectcache-location
 cbppcLocation :: Lens' CodeBuildProjectProjectCache (Maybe (Val Text))
 cbppcLocation = lens _codeBuildProjectProjectCacheLocation (\s a -> s { _codeBuildProjectProjectCacheLocation = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html#cfn-codebuild-project-projectcache-modes
+cbppcModes :: Lens' CodeBuildProjectProjectCache (Maybe (ValList Text))
+cbppcModes = lens _codeBuildProjectProjectCacheModes (\s a -> s { _codeBuildProjectProjectCacheModes = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html#cfn-codebuild-project-projectcache-type
 cbppcType :: Lens' CodeBuildProjectProjectCache (Val Text)
diff --git a/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectWebhookFilter.hs b/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectWebhookFilter.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectWebhookFilter.hs
@@ -0,0 +1,61 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-webhookfilter.html
+
+module Stratosphere.ResourceProperties.CodeBuildProjectWebhookFilter where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for CodeBuildProjectWebhookFilter. See
+-- 'codeBuildProjectWebhookFilter' for a more convenient constructor.
+data CodeBuildProjectWebhookFilter =
+  CodeBuildProjectWebhookFilter
+  { _codeBuildProjectWebhookFilterExcludeMatchedPattern :: Maybe (Val Bool)
+  , _codeBuildProjectWebhookFilterPattern :: Val Text
+  , _codeBuildProjectWebhookFilterType :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON CodeBuildProjectWebhookFilter where
+  toJSON CodeBuildProjectWebhookFilter{..} =
+    object $
+    catMaybes
+    [ fmap (("ExcludeMatchedPattern",) . toJSON . fmap Bool') _codeBuildProjectWebhookFilterExcludeMatchedPattern
+    , (Just . ("Pattern",) . toJSON) _codeBuildProjectWebhookFilterPattern
+    , (Just . ("Type",) . toJSON) _codeBuildProjectWebhookFilterType
+    ]
+
+instance FromJSON CodeBuildProjectWebhookFilter where
+  parseJSON (Object obj) =
+    CodeBuildProjectWebhookFilter <$>
+      fmap (fmap (fmap unBool')) (obj .:? "ExcludeMatchedPattern") <*>
+      (obj .: "Pattern") <*>
+      (obj .: "Type")
+  parseJSON _ = mempty
+
+-- | Constructor for 'CodeBuildProjectWebhookFilter' containing required
+-- fields as arguments.
+codeBuildProjectWebhookFilter
+  :: Val Text -- ^ 'cbpwfPattern'
+  -> Val Text -- ^ 'cbpwfType'
+  -> CodeBuildProjectWebhookFilter
+codeBuildProjectWebhookFilter patternarg typearg =
+  CodeBuildProjectWebhookFilter
+  { _codeBuildProjectWebhookFilterExcludeMatchedPattern = Nothing
+  , _codeBuildProjectWebhookFilterPattern = patternarg
+  , _codeBuildProjectWebhookFilterType = typearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-webhookfilter.html#cfn-codebuild-project-webhookfilter-excludematchedpattern
+cbpwfExcludeMatchedPattern :: Lens' CodeBuildProjectWebhookFilter (Maybe (Val Bool))
+cbpwfExcludeMatchedPattern = lens _codeBuildProjectWebhookFilterExcludeMatchedPattern (\s a -> s { _codeBuildProjectWebhookFilterExcludeMatchedPattern = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-webhookfilter.html#cfn-codebuild-project-webhookfilter-pattern
+cbpwfPattern :: Lens' CodeBuildProjectWebhookFilter (Val Text)
+cbpwfPattern = lens _codeBuildProjectWebhookFilterPattern (\s a -> s { _codeBuildProjectWebhookFilterPattern = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-webhookfilter.html#cfn-codebuild-project-webhookfilter-type
+cbpwfType :: Lens' CodeBuildProjectWebhookFilter (Val Text)
+cbpwfType = lens _codeBuildProjectWebhookFilterType (\s a -> s { _codeBuildProjectWebhookFilterType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateCapacityReservationSpecification.hs b/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateCapacityReservationSpecification.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateCapacityReservationSpecification.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-capacityreservationspecification.html
+
+module Stratosphere.ResourceProperties.EC2LaunchTemplateCapacityReservationSpecification where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.EC2LaunchTemplateCapacityReservationTarget
+
+-- | Full data type definition for
+-- EC2LaunchTemplateCapacityReservationSpecification. See
+-- 'ec2LaunchTemplateCapacityReservationSpecification' for a more convenient
+-- constructor.
+data EC2LaunchTemplateCapacityReservationSpecification =
+  EC2LaunchTemplateCapacityReservationSpecification
+  { _eC2LaunchTemplateCapacityReservationSpecificationCapacityReservationTarget :: Maybe EC2LaunchTemplateCapacityReservationTarget
+  } deriving (Show, Eq)
+
+instance ToJSON EC2LaunchTemplateCapacityReservationSpecification where
+  toJSON EC2LaunchTemplateCapacityReservationSpecification{..} =
+    object $
+    catMaybes
+    [ fmap (("CapacityReservationTarget",) . toJSON) _eC2LaunchTemplateCapacityReservationSpecificationCapacityReservationTarget
+    ]
+
+instance FromJSON EC2LaunchTemplateCapacityReservationSpecification where
+  parseJSON (Object obj) =
+    EC2LaunchTemplateCapacityReservationSpecification <$>
+      (obj .:? "CapacityReservationTarget")
+  parseJSON _ = mempty
+
+-- | Constructor for 'EC2LaunchTemplateCapacityReservationSpecification'
+-- containing required fields as arguments.
+ec2LaunchTemplateCapacityReservationSpecification
+  :: EC2LaunchTemplateCapacityReservationSpecification
+ec2LaunchTemplateCapacityReservationSpecification  =
+  EC2LaunchTemplateCapacityReservationSpecification
+  { _eC2LaunchTemplateCapacityReservationSpecificationCapacityReservationTarget = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-capacityreservationspecification.html#cfn-ec2-launchtemplate-launchtemplatedata-capacityreservationspecification-capacityreservationtarget
+ecltcrsCapacityReservationTarget :: Lens' EC2LaunchTemplateCapacityReservationSpecification (Maybe EC2LaunchTemplateCapacityReservationTarget)
+ecltcrsCapacityReservationTarget = lens _eC2LaunchTemplateCapacityReservationSpecificationCapacityReservationTarget (\s a -> s { _eC2LaunchTemplateCapacityReservationSpecificationCapacityReservationTarget = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateCapacityReservationTarget.hs b/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateCapacityReservationTarget.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateCapacityReservationTarget.hs
@@ -0,0 +1,44 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-capacityreservationtarget.html
+
+module Stratosphere.ResourceProperties.EC2LaunchTemplateCapacityReservationTarget where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for EC2LaunchTemplateCapacityReservationTarget.
+-- See 'ec2LaunchTemplateCapacityReservationTarget' for a more convenient
+-- constructor.
+data EC2LaunchTemplateCapacityReservationTarget =
+  EC2LaunchTemplateCapacityReservationTarget
+  { _eC2LaunchTemplateCapacityReservationTargetCapacityReservationId :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON EC2LaunchTemplateCapacityReservationTarget where
+  toJSON EC2LaunchTemplateCapacityReservationTarget{..} =
+    object $
+    catMaybes
+    [ fmap (("CapacityReservationId",) . toJSON) _eC2LaunchTemplateCapacityReservationTargetCapacityReservationId
+    ]
+
+instance FromJSON EC2LaunchTemplateCapacityReservationTarget where
+  parseJSON (Object obj) =
+    EC2LaunchTemplateCapacityReservationTarget <$>
+      (obj .:? "CapacityReservationId")
+  parseJSON _ = mempty
+
+-- | Constructor for 'EC2LaunchTemplateCapacityReservationTarget' containing
+-- required fields as arguments.
+ec2LaunchTemplateCapacityReservationTarget
+  :: EC2LaunchTemplateCapacityReservationTarget
+ec2LaunchTemplateCapacityReservationTarget  =
+  EC2LaunchTemplateCapacityReservationTarget
+  { _eC2LaunchTemplateCapacityReservationTargetCapacityReservationId = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-capacityreservationtarget.html#cfn-ec2-launchtemplate-capacityreservationtarget-capacityreservationid
+ecltcrtCapacityReservationId :: Lens' EC2LaunchTemplateCapacityReservationTarget (Maybe (Val Text))
+ecltcrtCapacityReservationId = lens _eC2LaunchTemplateCapacityReservationTargetCapacityReservationId (\s a -> s { _eC2LaunchTemplateCapacityReservationTargetCapacityReservationId = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateCpuOptions.hs b/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateCpuOptions.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateCpuOptions.hs
@@ -0,0 +1,51 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-cpuoptions.html
+
+module Stratosphere.ResourceProperties.EC2LaunchTemplateCpuOptions where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for EC2LaunchTemplateCpuOptions. See
+-- 'ec2LaunchTemplateCpuOptions' for a more convenient constructor.
+data EC2LaunchTemplateCpuOptions =
+  EC2LaunchTemplateCpuOptions
+  { _eC2LaunchTemplateCpuOptionsCoreCount :: Maybe (Val Integer)
+  , _eC2LaunchTemplateCpuOptionsThreadsPerCore :: Maybe (Val Integer)
+  } deriving (Show, Eq)
+
+instance ToJSON EC2LaunchTemplateCpuOptions where
+  toJSON EC2LaunchTemplateCpuOptions{..} =
+    object $
+    catMaybes
+    [ fmap (("CoreCount",) . toJSON . fmap Integer') _eC2LaunchTemplateCpuOptionsCoreCount
+    , fmap (("ThreadsPerCore",) . toJSON . fmap Integer') _eC2LaunchTemplateCpuOptionsThreadsPerCore
+    ]
+
+instance FromJSON EC2LaunchTemplateCpuOptions where
+  parseJSON (Object obj) =
+    EC2LaunchTemplateCpuOptions <$>
+      fmap (fmap (fmap unInteger')) (obj .:? "CoreCount") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "ThreadsPerCore")
+  parseJSON _ = mempty
+
+-- | Constructor for 'EC2LaunchTemplateCpuOptions' containing required fields
+-- as arguments.
+ec2LaunchTemplateCpuOptions
+  :: EC2LaunchTemplateCpuOptions
+ec2LaunchTemplateCpuOptions  =
+  EC2LaunchTemplateCpuOptions
+  { _eC2LaunchTemplateCpuOptionsCoreCount = Nothing
+  , _eC2LaunchTemplateCpuOptionsThreadsPerCore = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-cpuoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-cpuoptions-corecount
+ecltcoCoreCount :: Lens' EC2LaunchTemplateCpuOptions (Maybe (Val Integer))
+ecltcoCoreCount = lens _eC2LaunchTemplateCpuOptionsCoreCount (\s a -> s { _eC2LaunchTemplateCpuOptionsCoreCount = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-cpuoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-cpuoptions-threadspercore
+ecltcoThreadsPerCore :: Lens' EC2LaunchTemplateCpuOptions (Maybe (Val Integer))
+ecltcoThreadsPerCore = lens _eC2LaunchTemplateCpuOptionsThreadsPerCore (\s a -> s { _eC2LaunchTemplateCpuOptionsThreadsPerCore = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateHibernationOptions.hs b/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateHibernationOptions.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateHibernationOptions.hs
@@ -0,0 +1,43 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-hibernationoptions.html
+
+module Stratosphere.ResourceProperties.EC2LaunchTemplateHibernationOptions where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for EC2LaunchTemplateHibernationOptions. See
+-- 'ec2LaunchTemplateHibernationOptions' for a more convenient constructor.
+data EC2LaunchTemplateHibernationOptions =
+  EC2LaunchTemplateHibernationOptions
+  { _eC2LaunchTemplateHibernationOptionsConfigured :: Maybe (Val Bool)
+  } deriving (Show, Eq)
+
+instance ToJSON EC2LaunchTemplateHibernationOptions where
+  toJSON EC2LaunchTemplateHibernationOptions{..} =
+    object $
+    catMaybes
+    [ fmap (("Configured",) . toJSON . fmap Bool') _eC2LaunchTemplateHibernationOptionsConfigured
+    ]
+
+instance FromJSON EC2LaunchTemplateHibernationOptions where
+  parseJSON (Object obj) =
+    EC2LaunchTemplateHibernationOptions <$>
+      fmap (fmap (fmap unBool')) (obj .:? "Configured")
+  parseJSON _ = mempty
+
+-- | Constructor for 'EC2LaunchTemplateHibernationOptions' containing required
+-- fields as arguments.
+ec2LaunchTemplateHibernationOptions
+  :: EC2LaunchTemplateHibernationOptions
+ec2LaunchTemplateHibernationOptions  =
+  EC2LaunchTemplateHibernationOptions
+  { _eC2LaunchTemplateHibernationOptionsConfigured = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-hibernationoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-hibernationoptions-configured
+eclthoConfigured :: Lens' EC2LaunchTemplateHibernationOptions (Maybe (Val Bool))
+eclthoConfigured = lens _eC2LaunchTemplateHibernationOptionsConfigured (\s a -> s { _eC2LaunchTemplateHibernationOptionsConfigured = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateLaunchTemplateData.hs b/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateLaunchTemplateData.hs
--- a/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateLaunchTemplateData.hs
+++ b/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateLaunchTemplateData.hs
@@ -8,10 +8,15 @@
 
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.EC2LaunchTemplateBlockDeviceMapping
+import Stratosphere.ResourceProperties.EC2LaunchTemplateCapacityReservationSpecification
+import Stratosphere.ResourceProperties.EC2LaunchTemplateCpuOptions
 import Stratosphere.ResourceProperties.EC2LaunchTemplateCreditSpecification
 import Stratosphere.ResourceProperties.EC2LaunchTemplateElasticGpuSpecification
+import Stratosphere.ResourceProperties.EC2LaunchTemplateLaunchTemplateElasticInferenceAccelerator
+import Stratosphere.ResourceProperties.EC2LaunchTemplateHibernationOptions
 import Stratosphere.ResourceProperties.EC2LaunchTemplateIamInstanceProfile
 import Stratosphere.ResourceProperties.EC2LaunchTemplateInstanceMarketOptions
+import Stratosphere.ResourceProperties.EC2LaunchTemplateLicenseSpecification
 import Stratosphere.ResourceProperties.EC2LaunchTemplateMonitoring
 import Stratosphere.ResourceProperties.EC2LaunchTemplateNetworkInterface
 import Stratosphere.ResourceProperties.EC2LaunchTemplatePlacement
@@ -22,10 +27,14 @@
 data EC2LaunchTemplateLaunchTemplateData =
   EC2LaunchTemplateLaunchTemplateData
   { _eC2LaunchTemplateLaunchTemplateDataBlockDeviceMappings :: Maybe [EC2LaunchTemplateBlockDeviceMapping]
+  , _eC2LaunchTemplateLaunchTemplateDataCapacityReservationSpecification :: Maybe EC2LaunchTemplateCapacityReservationSpecification
+  , _eC2LaunchTemplateLaunchTemplateDataCpuOptions :: Maybe EC2LaunchTemplateCpuOptions
   , _eC2LaunchTemplateLaunchTemplateDataCreditSpecification :: Maybe EC2LaunchTemplateCreditSpecification
   , _eC2LaunchTemplateLaunchTemplateDataDisableApiTermination :: Maybe (Val Bool)
   , _eC2LaunchTemplateLaunchTemplateDataEbsOptimized :: Maybe (Val Bool)
   , _eC2LaunchTemplateLaunchTemplateDataElasticGpuSpecifications :: Maybe [EC2LaunchTemplateElasticGpuSpecification]
+  , _eC2LaunchTemplateLaunchTemplateDataElasticInferenceAccelerators :: Maybe [EC2LaunchTemplateLaunchTemplateElasticInferenceAccelerator]
+  , _eC2LaunchTemplateLaunchTemplateDataHibernationOptions :: Maybe EC2LaunchTemplateHibernationOptions
   , _eC2LaunchTemplateLaunchTemplateDataIamInstanceProfile :: Maybe EC2LaunchTemplateIamInstanceProfile
   , _eC2LaunchTemplateLaunchTemplateDataImageId :: Maybe (Val Text)
   , _eC2LaunchTemplateLaunchTemplateDataInstanceInitiatedShutdownBehavior :: Maybe (Val Text)
@@ -33,6 +42,7 @@
   , _eC2LaunchTemplateLaunchTemplateDataInstanceType :: Maybe (Val Text)
   , _eC2LaunchTemplateLaunchTemplateDataKernelId :: Maybe (Val Text)
   , _eC2LaunchTemplateLaunchTemplateDataKeyName :: Maybe (Val Text)
+  , _eC2LaunchTemplateLaunchTemplateDataLicenseSpecifications :: Maybe [EC2LaunchTemplateLicenseSpecification]
   , _eC2LaunchTemplateLaunchTemplateDataMonitoring :: Maybe EC2LaunchTemplateMonitoring
   , _eC2LaunchTemplateLaunchTemplateDataNetworkInterfaces :: Maybe [EC2LaunchTemplateNetworkInterface]
   , _eC2LaunchTemplateLaunchTemplateDataPlacement :: Maybe EC2LaunchTemplatePlacement
@@ -48,10 +58,14 @@
     object $
     catMaybes
     [ fmap (("BlockDeviceMappings",) . toJSON) _eC2LaunchTemplateLaunchTemplateDataBlockDeviceMappings
+    , fmap (("CapacityReservationSpecification",) . toJSON) _eC2LaunchTemplateLaunchTemplateDataCapacityReservationSpecification
+    , fmap (("CpuOptions",) . toJSON) _eC2LaunchTemplateLaunchTemplateDataCpuOptions
     , fmap (("CreditSpecification",) . toJSON) _eC2LaunchTemplateLaunchTemplateDataCreditSpecification
     , fmap (("DisableApiTermination",) . toJSON . fmap Bool') _eC2LaunchTemplateLaunchTemplateDataDisableApiTermination
     , fmap (("EbsOptimized",) . toJSON . fmap Bool') _eC2LaunchTemplateLaunchTemplateDataEbsOptimized
     , fmap (("ElasticGpuSpecifications",) . toJSON) _eC2LaunchTemplateLaunchTemplateDataElasticGpuSpecifications
+    , fmap (("ElasticInferenceAccelerators",) . toJSON) _eC2LaunchTemplateLaunchTemplateDataElasticInferenceAccelerators
+    , fmap (("HibernationOptions",) . toJSON) _eC2LaunchTemplateLaunchTemplateDataHibernationOptions
     , fmap (("IamInstanceProfile",) . toJSON) _eC2LaunchTemplateLaunchTemplateDataIamInstanceProfile
     , fmap (("ImageId",) . toJSON) _eC2LaunchTemplateLaunchTemplateDataImageId
     , fmap (("InstanceInitiatedShutdownBehavior",) . toJSON) _eC2LaunchTemplateLaunchTemplateDataInstanceInitiatedShutdownBehavior
@@ -59,6 +73,7 @@
     , fmap (("InstanceType",) . toJSON) _eC2LaunchTemplateLaunchTemplateDataInstanceType
     , fmap (("KernelId",) . toJSON) _eC2LaunchTemplateLaunchTemplateDataKernelId
     , fmap (("KeyName",) . toJSON) _eC2LaunchTemplateLaunchTemplateDataKeyName
+    , fmap (("LicenseSpecifications",) . toJSON) _eC2LaunchTemplateLaunchTemplateDataLicenseSpecifications
     , fmap (("Monitoring",) . toJSON) _eC2LaunchTemplateLaunchTemplateDataMonitoring
     , fmap (("NetworkInterfaces",) . toJSON) _eC2LaunchTemplateLaunchTemplateDataNetworkInterfaces
     , fmap (("Placement",) . toJSON) _eC2LaunchTemplateLaunchTemplateDataPlacement
@@ -73,10 +88,14 @@
   parseJSON (Object obj) =
     EC2LaunchTemplateLaunchTemplateData <$>
       (obj .:? "BlockDeviceMappings") <*>
+      (obj .:? "CapacityReservationSpecification") <*>
+      (obj .:? "CpuOptions") <*>
       (obj .:? "CreditSpecification") <*>
       fmap (fmap (fmap unBool')) (obj .:? "DisableApiTermination") <*>
       fmap (fmap (fmap unBool')) (obj .:? "EbsOptimized") <*>
       (obj .:? "ElasticGpuSpecifications") <*>
+      (obj .:? "ElasticInferenceAccelerators") <*>
+      (obj .:? "HibernationOptions") <*>
       (obj .:? "IamInstanceProfile") <*>
       (obj .:? "ImageId") <*>
       (obj .:? "InstanceInitiatedShutdownBehavior") <*>
@@ -84,6 +103,7 @@
       (obj .:? "InstanceType") <*>
       (obj .:? "KernelId") <*>
       (obj .:? "KeyName") <*>
+      (obj .:? "LicenseSpecifications") <*>
       (obj .:? "Monitoring") <*>
       (obj .:? "NetworkInterfaces") <*>
       (obj .:? "Placement") <*>
@@ -101,10 +121,14 @@
 ec2LaunchTemplateLaunchTemplateData  =
   EC2LaunchTemplateLaunchTemplateData
   { _eC2LaunchTemplateLaunchTemplateDataBlockDeviceMappings = Nothing
+  , _eC2LaunchTemplateLaunchTemplateDataCapacityReservationSpecification = Nothing
+  , _eC2LaunchTemplateLaunchTemplateDataCpuOptions = Nothing
   , _eC2LaunchTemplateLaunchTemplateDataCreditSpecification = Nothing
   , _eC2LaunchTemplateLaunchTemplateDataDisableApiTermination = Nothing
   , _eC2LaunchTemplateLaunchTemplateDataEbsOptimized = Nothing
   , _eC2LaunchTemplateLaunchTemplateDataElasticGpuSpecifications = Nothing
+  , _eC2LaunchTemplateLaunchTemplateDataElasticInferenceAccelerators = Nothing
+  , _eC2LaunchTemplateLaunchTemplateDataHibernationOptions = Nothing
   , _eC2LaunchTemplateLaunchTemplateDataIamInstanceProfile = Nothing
   , _eC2LaunchTemplateLaunchTemplateDataImageId = Nothing
   , _eC2LaunchTemplateLaunchTemplateDataInstanceInitiatedShutdownBehavior = Nothing
@@ -112,6 +136,7 @@
   , _eC2LaunchTemplateLaunchTemplateDataInstanceType = Nothing
   , _eC2LaunchTemplateLaunchTemplateDataKernelId = Nothing
   , _eC2LaunchTemplateLaunchTemplateDataKeyName = Nothing
+  , _eC2LaunchTemplateLaunchTemplateDataLicenseSpecifications = Nothing
   , _eC2LaunchTemplateLaunchTemplateDataMonitoring = Nothing
   , _eC2LaunchTemplateLaunchTemplateDataNetworkInterfaces = Nothing
   , _eC2LaunchTemplateLaunchTemplateDataPlacement = Nothing
@@ -126,6 +151,14 @@
 ecltltdBlockDeviceMappings :: Lens' EC2LaunchTemplateLaunchTemplateData (Maybe [EC2LaunchTemplateBlockDeviceMapping])
 ecltltdBlockDeviceMappings = lens _eC2LaunchTemplateLaunchTemplateDataBlockDeviceMappings (\s a -> s { _eC2LaunchTemplateLaunchTemplateDataBlockDeviceMappings = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-capacityreservationspecification
+ecltltdCapacityReservationSpecification :: Lens' EC2LaunchTemplateLaunchTemplateData (Maybe EC2LaunchTemplateCapacityReservationSpecification)
+ecltltdCapacityReservationSpecification = lens _eC2LaunchTemplateLaunchTemplateDataCapacityReservationSpecification (\s a -> s { _eC2LaunchTemplateLaunchTemplateDataCapacityReservationSpecification = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-cpuoptions
+ecltltdCpuOptions :: Lens' EC2LaunchTemplateLaunchTemplateData (Maybe EC2LaunchTemplateCpuOptions)
+ecltltdCpuOptions = lens _eC2LaunchTemplateLaunchTemplateDataCpuOptions (\s a -> s { _eC2LaunchTemplateLaunchTemplateDataCpuOptions = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-creditspecification
 ecltltdCreditSpecification :: Lens' EC2LaunchTemplateLaunchTemplateData (Maybe EC2LaunchTemplateCreditSpecification)
 ecltltdCreditSpecification = lens _eC2LaunchTemplateLaunchTemplateDataCreditSpecification (\s a -> s { _eC2LaunchTemplateLaunchTemplateDataCreditSpecification = a })
@@ -142,6 +175,14 @@
 ecltltdElasticGpuSpecifications :: Lens' EC2LaunchTemplateLaunchTemplateData (Maybe [EC2LaunchTemplateElasticGpuSpecification])
 ecltltdElasticGpuSpecifications = lens _eC2LaunchTemplateLaunchTemplateDataElasticGpuSpecifications (\s a -> s { _eC2LaunchTemplateLaunchTemplateDataElasticGpuSpecifications = a })
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-elasticinferenceaccelerators
+ecltltdElasticInferenceAccelerators :: Lens' EC2LaunchTemplateLaunchTemplateData (Maybe [EC2LaunchTemplateLaunchTemplateElasticInferenceAccelerator])
+ecltltdElasticInferenceAccelerators = lens _eC2LaunchTemplateLaunchTemplateDataElasticInferenceAccelerators (\s a -> s { _eC2LaunchTemplateLaunchTemplateDataElasticInferenceAccelerators = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-hibernationoptions
+ecltltdHibernationOptions :: Lens' EC2LaunchTemplateLaunchTemplateData (Maybe EC2LaunchTemplateHibernationOptions)
+ecltltdHibernationOptions = lens _eC2LaunchTemplateLaunchTemplateDataHibernationOptions (\s a -> s { _eC2LaunchTemplateLaunchTemplateDataHibernationOptions = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-iaminstanceprofile
 ecltltdIamInstanceProfile :: Lens' EC2LaunchTemplateLaunchTemplateData (Maybe EC2LaunchTemplateIamInstanceProfile)
 ecltltdIamInstanceProfile = lens _eC2LaunchTemplateLaunchTemplateDataIamInstanceProfile (\s a -> s { _eC2LaunchTemplateLaunchTemplateDataIamInstanceProfile = a })
@@ -169,6 +210,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-keyname
 ecltltdKeyName :: Lens' EC2LaunchTemplateLaunchTemplateData (Maybe (Val Text))
 ecltltdKeyName = lens _eC2LaunchTemplateLaunchTemplateDataKeyName (\s a -> s { _eC2LaunchTemplateLaunchTemplateDataKeyName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-licensespecifications
+ecltltdLicenseSpecifications :: Lens' EC2LaunchTemplateLaunchTemplateData (Maybe [EC2LaunchTemplateLicenseSpecification])
+ecltltdLicenseSpecifications = lens _eC2LaunchTemplateLaunchTemplateDataLicenseSpecifications (\s a -> s { _eC2LaunchTemplateLaunchTemplateDataLicenseSpecifications = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-monitoring
 ecltltdMonitoring :: Lens' EC2LaunchTemplateLaunchTemplateData (Maybe EC2LaunchTemplateMonitoring)
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateLaunchTemplateElasticInferenceAccelerator.hs b/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateLaunchTemplateElasticInferenceAccelerator.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateLaunchTemplateElasticInferenceAccelerator.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplateelasticinferenceaccelerator.html
+
+module Stratosphere.ResourceProperties.EC2LaunchTemplateLaunchTemplateElasticInferenceAccelerator where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- EC2LaunchTemplateLaunchTemplateElasticInferenceAccelerator. See
+-- 'ec2LaunchTemplateLaunchTemplateElasticInferenceAccelerator' for a more
+-- convenient constructor.
+data EC2LaunchTemplateLaunchTemplateElasticInferenceAccelerator =
+  EC2LaunchTemplateLaunchTemplateElasticInferenceAccelerator
+  { _eC2LaunchTemplateLaunchTemplateElasticInferenceAcceleratorType :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON EC2LaunchTemplateLaunchTemplateElasticInferenceAccelerator where
+  toJSON EC2LaunchTemplateLaunchTemplateElasticInferenceAccelerator{..} =
+    object $
+    catMaybes
+    [ fmap (("Type",) . toJSON) _eC2LaunchTemplateLaunchTemplateElasticInferenceAcceleratorType
+    ]
+
+instance FromJSON EC2LaunchTemplateLaunchTemplateElasticInferenceAccelerator where
+  parseJSON (Object obj) =
+    EC2LaunchTemplateLaunchTemplateElasticInferenceAccelerator <$>
+      (obj .:? "Type")
+  parseJSON _ = mempty
+
+-- | Constructor for
+-- 'EC2LaunchTemplateLaunchTemplateElasticInferenceAccelerator' containing
+-- required fields as arguments.
+ec2LaunchTemplateLaunchTemplateElasticInferenceAccelerator
+  :: EC2LaunchTemplateLaunchTemplateElasticInferenceAccelerator
+ec2LaunchTemplateLaunchTemplateElasticInferenceAccelerator  =
+  EC2LaunchTemplateLaunchTemplateElasticInferenceAccelerator
+  { _eC2LaunchTemplateLaunchTemplateElasticInferenceAcceleratorType = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplateelasticinferenceaccelerator.html#cfn-ec2-launchtemplate-launchtemplateelasticinferenceaccelerator-type
+ecltlteiaType :: Lens' EC2LaunchTemplateLaunchTemplateElasticInferenceAccelerator (Maybe (Val Text))
+ecltlteiaType = lens _eC2LaunchTemplateLaunchTemplateElasticInferenceAcceleratorType (\s a -> s { _eC2LaunchTemplateLaunchTemplateElasticInferenceAcceleratorType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateLicenseSpecification.hs b/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateLicenseSpecification.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateLicenseSpecification.hs
@@ -0,0 +1,44 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-licensespecification.html
+
+module Stratosphere.ResourceProperties.EC2LaunchTemplateLicenseSpecification where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for EC2LaunchTemplateLicenseSpecification. See
+-- 'ec2LaunchTemplateLicenseSpecification' for a more convenient
+-- constructor.
+data EC2LaunchTemplateLicenseSpecification =
+  EC2LaunchTemplateLicenseSpecification
+  { _eC2LaunchTemplateLicenseSpecificationLicenseConfigurationArn :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON EC2LaunchTemplateLicenseSpecification where
+  toJSON EC2LaunchTemplateLicenseSpecification{..} =
+    object $
+    catMaybes
+    [ fmap (("LicenseConfigurationArn",) . toJSON) _eC2LaunchTemplateLicenseSpecificationLicenseConfigurationArn
+    ]
+
+instance FromJSON EC2LaunchTemplateLicenseSpecification where
+  parseJSON (Object obj) =
+    EC2LaunchTemplateLicenseSpecification <$>
+      (obj .:? "LicenseConfigurationArn")
+  parseJSON _ = mempty
+
+-- | Constructor for 'EC2LaunchTemplateLicenseSpecification' containing
+-- required fields as arguments.
+ec2LaunchTemplateLicenseSpecification
+  :: EC2LaunchTemplateLicenseSpecification
+ec2LaunchTemplateLicenseSpecification  =
+  EC2LaunchTemplateLicenseSpecification
+  { _eC2LaunchTemplateLicenseSpecificationLicenseConfigurationArn = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-licensespecification.html#cfn-ec2-launchtemplate-licensespecification-licenseconfigurationarn
+ecltlsLicenseConfigurationArn :: Lens' EC2LaunchTemplateLicenseSpecification (Maybe (Val Text))
+ecltlsLicenseConfigurationArn = lens _eC2LaunchTemplateLicenseSpecificationLicenseConfigurationArn (\s a -> s { _eC2LaunchTemplateLicenseSpecificationLicenseConfigurationArn = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/FSxFileSystemLustreConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/FSxFileSystemLustreConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/FSxFileSystemLustreConfiguration.hs
@@ -0,0 +1,67 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html
+
+module Stratosphere.ResourceProperties.FSxFileSystemLustreConfiguration where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for FSxFileSystemLustreConfiguration. See
+-- 'fSxFileSystemLustreConfiguration' for a more convenient constructor.
+data FSxFileSystemLustreConfiguration =
+  FSxFileSystemLustreConfiguration
+  { _fSxFileSystemLustreConfigurationExportPath :: Maybe (Val Text)
+  , _fSxFileSystemLustreConfigurationImportPath :: Maybe (Val Text)
+  , _fSxFileSystemLustreConfigurationImportedFileChunkSize :: Maybe (Val Integer)
+  , _fSxFileSystemLustreConfigurationWeeklyMaintenanceStartTime :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON FSxFileSystemLustreConfiguration where
+  toJSON FSxFileSystemLustreConfiguration{..} =
+    object $
+    catMaybes
+    [ fmap (("ExportPath",) . toJSON) _fSxFileSystemLustreConfigurationExportPath
+    , fmap (("ImportPath",) . toJSON) _fSxFileSystemLustreConfigurationImportPath
+    , fmap (("ImportedFileChunkSize",) . toJSON . fmap Integer') _fSxFileSystemLustreConfigurationImportedFileChunkSize
+    , fmap (("WeeklyMaintenanceStartTime",) . toJSON) _fSxFileSystemLustreConfigurationWeeklyMaintenanceStartTime
+    ]
+
+instance FromJSON FSxFileSystemLustreConfiguration where
+  parseJSON (Object obj) =
+    FSxFileSystemLustreConfiguration <$>
+      (obj .:? "ExportPath") <*>
+      (obj .:? "ImportPath") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "ImportedFileChunkSize") <*>
+      (obj .:? "WeeklyMaintenanceStartTime")
+  parseJSON _ = mempty
+
+-- | Constructor for 'FSxFileSystemLustreConfiguration' containing required
+-- fields as arguments.
+fSxFileSystemLustreConfiguration
+  :: FSxFileSystemLustreConfiguration
+fSxFileSystemLustreConfiguration  =
+  FSxFileSystemLustreConfiguration
+  { _fSxFileSystemLustreConfigurationExportPath = Nothing
+  , _fSxFileSystemLustreConfigurationImportPath = Nothing
+  , _fSxFileSystemLustreConfigurationImportedFileChunkSize = Nothing
+  , _fSxFileSystemLustreConfigurationWeeklyMaintenanceStartTime = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-exportpath
+fsfslcExportPath :: Lens' FSxFileSystemLustreConfiguration (Maybe (Val Text))
+fsfslcExportPath = lens _fSxFileSystemLustreConfigurationExportPath (\s a -> s { _fSxFileSystemLustreConfigurationExportPath = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-importpath
+fsfslcImportPath :: Lens' FSxFileSystemLustreConfiguration (Maybe (Val Text))
+fsfslcImportPath = lens _fSxFileSystemLustreConfigurationImportPath (\s a -> s { _fSxFileSystemLustreConfigurationImportPath = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-importedfilechunksize
+fsfslcImportedFileChunkSize :: Lens' FSxFileSystemLustreConfiguration (Maybe (Val Integer))
+fsfslcImportedFileChunkSize = lens _fSxFileSystemLustreConfigurationImportedFileChunkSize (\s a -> s { _fSxFileSystemLustreConfigurationImportedFileChunkSize = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-weeklymaintenancestarttime
+fsfslcWeeklyMaintenanceStartTime :: Lens' FSxFileSystemLustreConfiguration (Maybe (Val Text))
+fsfslcWeeklyMaintenanceStartTime = lens _fSxFileSystemLustreConfigurationWeeklyMaintenanceStartTime (\s a -> s { _fSxFileSystemLustreConfigurationWeeklyMaintenanceStartTime = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/FSxFileSystemTagEntry.hs b/library-gen/Stratosphere/ResourceProperties/FSxFileSystemTagEntry.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/FSxFileSystemTagEntry.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-tagentry.html
+
+module Stratosphere.ResourceProperties.FSxFileSystemTagEntry where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for FSxFileSystemTagEntry. See
+-- 'fSxFileSystemTagEntry' for a more convenient constructor.
+data FSxFileSystemTagEntry =
+  FSxFileSystemTagEntry
+  { _fSxFileSystemTagEntryKey :: Val Text
+  , _fSxFileSystemTagEntryValue :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON FSxFileSystemTagEntry where
+  toJSON FSxFileSystemTagEntry{..} =
+    object $
+    catMaybes
+    [ (Just . ("Key",) . toJSON) _fSxFileSystemTagEntryKey
+    , (Just . ("Value",) . toJSON) _fSxFileSystemTagEntryValue
+    ]
+
+instance FromJSON FSxFileSystemTagEntry where
+  parseJSON (Object obj) =
+    FSxFileSystemTagEntry <$>
+      (obj .: "Key") <*>
+      (obj .: "Value")
+  parseJSON _ = mempty
+
+-- | Constructor for 'FSxFileSystemTagEntry' containing required fields as
+-- arguments.
+fSxFileSystemTagEntry
+  :: Val Text -- ^ 'fsfsteKey'
+  -> Val Text -- ^ 'fsfsteValue'
+  -> FSxFileSystemTagEntry
+fSxFileSystemTagEntry keyarg valuearg =
+  FSxFileSystemTagEntry
+  { _fSxFileSystemTagEntryKey = keyarg
+  , _fSxFileSystemTagEntryValue = valuearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-tagentry.html#cfn-fsx-filesystem-tagentry-key
+fsfsteKey :: Lens' FSxFileSystemTagEntry (Val Text)
+fsfsteKey = lens _fSxFileSystemTagEntryKey (\s a -> s { _fSxFileSystemTagEntryKey = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-tagentry.html#cfn-fsx-filesystem-tagentry-value
+fsfsteValue :: Lens' FSxFileSystemTagEntry (Val Text)
+fsfsteValue = lens _fSxFileSystemTagEntryValue (\s a -> s { _fSxFileSystemTagEntryValue = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/FSxFileSystemWindowsConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/FSxFileSystemWindowsConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/FSxFileSystemWindowsConfiguration.hs
@@ -0,0 +1,83 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html
+
+module Stratosphere.ResourceProperties.FSxFileSystemWindowsConfiguration where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for FSxFileSystemWindowsConfiguration. See
+-- 'fSxFileSystemWindowsConfiguration' for a more convenient constructor.
+data FSxFileSystemWindowsConfiguration =
+  FSxFileSystemWindowsConfiguration
+  { _fSxFileSystemWindowsConfigurationActiveDirectoryId :: Maybe (Val Text)
+  , _fSxFileSystemWindowsConfigurationAutomaticBackupRetentionDays :: Maybe (Val Integer)
+  , _fSxFileSystemWindowsConfigurationCopyTagsToBackups :: Maybe (Val Bool)
+  , _fSxFileSystemWindowsConfigurationDailyAutomaticBackupStartTime :: Maybe (Val Text)
+  , _fSxFileSystemWindowsConfigurationThroughputCapacity :: Maybe (Val Integer)
+  , _fSxFileSystemWindowsConfigurationWeeklyMaintenanceStartTime :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON FSxFileSystemWindowsConfiguration where
+  toJSON FSxFileSystemWindowsConfiguration{..} =
+    object $
+    catMaybes
+    [ fmap (("ActiveDirectoryId",) . toJSON) _fSxFileSystemWindowsConfigurationActiveDirectoryId
+    , fmap (("AutomaticBackupRetentionDays",) . toJSON . fmap Integer') _fSxFileSystemWindowsConfigurationAutomaticBackupRetentionDays
+    , fmap (("CopyTagsToBackups",) . toJSON . fmap Bool') _fSxFileSystemWindowsConfigurationCopyTagsToBackups
+    , fmap (("DailyAutomaticBackupStartTime",) . toJSON) _fSxFileSystemWindowsConfigurationDailyAutomaticBackupStartTime
+    , fmap (("ThroughputCapacity",) . toJSON . fmap Integer') _fSxFileSystemWindowsConfigurationThroughputCapacity
+    , fmap (("WeeklyMaintenanceStartTime",) . toJSON) _fSxFileSystemWindowsConfigurationWeeklyMaintenanceStartTime
+    ]
+
+instance FromJSON FSxFileSystemWindowsConfiguration where
+  parseJSON (Object obj) =
+    FSxFileSystemWindowsConfiguration <$>
+      (obj .:? "ActiveDirectoryId") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "AutomaticBackupRetentionDays") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "CopyTagsToBackups") <*>
+      (obj .:? "DailyAutomaticBackupStartTime") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "ThroughputCapacity") <*>
+      (obj .:? "WeeklyMaintenanceStartTime")
+  parseJSON _ = mempty
+
+-- | Constructor for 'FSxFileSystemWindowsConfiguration' containing required
+-- fields as arguments.
+fSxFileSystemWindowsConfiguration
+  :: FSxFileSystemWindowsConfiguration
+fSxFileSystemWindowsConfiguration  =
+  FSxFileSystemWindowsConfiguration
+  { _fSxFileSystemWindowsConfigurationActiveDirectoryId = Nothing
+  , _fSxFileSystemWindowsConfigurationAutomaticBackupRetentionDays = Nothing
+  , _fSxFileSystemWindowsConfigurationCopyTagsToBackups = Nothing
+  , _fSxFileSystemWindowsConfigurationDailyAutomaticBackupStartTime = Nothing
+  , _fSxFileSystemWindowsConfigurationThroughputCapacity = Nothing
+  , _fSxFileSystemWindowsConfigurationWeeklyMaintenanceStartTime = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-activedirectoryid
+fsfswcActiveDirectoryId :: Lens' FSxFileSystemWindowsConfiguration (Maybe (Val Text))
+fsfswcActiveDirectoryId = lens _fSxFileSystemWindowsConfigurationActiveDirectoryId (\s a -> s { _fSxFileSystemWindowsConfigurationActiveDirectoryId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-automaticbackupretentiondays
+fsfswcAutomaticBackupRetentionDays :: Lens' FSxFileSystemWindowsConfiguration (Maybe (Val Integer))
+fsfswcAutomaticBackupRetentionDays = lens _fSxFileSystemWindowsConfigurationAutomaticBackupRetentionDays (\s a -> s { _fSxFileSystemWindowsConfigurationAutomaticBackupRetentionDays = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-copytagstobackups
+fsfswcCopyTagsToBackups :: Lens' FSxFileSystemWindowsConfiguration (Maybe (Val Bool))
+fsfswcCopyTagsToBackups = lens _fSxFileSystemWindowsConfigurationCopyTagsToBackups (\s a -> s { _fSxFileSystemWindowsConfigurationCopyTagsToBackups = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-dailyautomaticbackupstarttime
+fsfswcDailyAutomaticBackupStartTime :: Lens' FSxFileSystemWindowsConfiguration (Maybe (Val Text))
+fsfswcDailyAutomaticBackupStartTime = lens _fSxFileSystemWindowsConfigurationDailyAutomaticBackupStartTime (\s a -> s { _fSxFileSystemWindowsConfigurationDailyAutomaticBackupStartTime = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-throughputcapacity
+fsfswcThroughputCapacity :: Lens' FSxFileSystemWindowsConfiguration (Maybe (Val Integer))
+fsfswcThroughputCapacity = lens _fSxFileSystemWindowsConfigurationThroughputCapacity (\s a -> s { _fSxFileSystemWindowsConfigurationThroughputCapacity = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-weeklymaintenancestarttime
+fsfswcWeeklyMaintenanceStartTime :: Lens' FSxFileSystemWindowsConfiguration (Maybe (Val Text))
+fsfswcWeeklyMaintenanceStartTime = lens _fSxFileSystemWindowsConfigurationWeeklyMaintenanceStartTime (\s a -> s { _fSxFileSystemWindowsConfigurationWeeklyMaintenanceStartTime = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationApplicationCodeConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationApplicationCodeConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationApplicationCodeConfiguration.hs
@@ -0,0 +1,56 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationcodeconfiguration.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationApplicationCodeConfiguration where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationCodeContent
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationApplicationCodeConfiguration. See
+-- 'kinesisAnalyticsV2ApplicationApplicationCodeConfiguration' for a more
+-- convenient constructor.
+data KinesisAnalyticsV2ApplicationApplicationCodeConfiguration =
+  KinesisAnalyticsV2ApplicationApplicationCodeConfiguration
+  { _kinesisAnalyticsV2ApplicationApplicationCodeConfigurationCodeContent :: KinesisAnalyticsV2ApplicationCodeContent
+  , _kinesisAnalyticsV2ApplicationApplicationCodeConfigurationCodeContentType :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationApplicationCodeConfiguration where
+  toJSON KinesisAnalyticsV2ApplicationApplicationCodeConfiguration{..} =
+    object $
+    catMaybes
+    [ (Just . ("CodeContent",) . toJSON) _kinesisAnalyticsV2ApplicationApplicationCodeConfigurationCodeContent
+    , (Just . ("CodeContentType",) . toJSON) _kinesisAnalyticsV2ApplicationApplicationCodeConfigurationCodeContentType
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationApplicationCodeConfiguration where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationApplicationCodeConfiguration <$>
+      (obj .: "CodeContent") <*>
+      (obj .: "CodeContentType")
+  parseJSON _ = mempty
+
+-- | Constructor for
+-- 'KinesisAnalyticsV2ApplicationApplicationCodeConfiguration' containing
+-- required fields as arguments.
+kinesisAnalyticsV2ApplicationApplicationCodeConfiguration
+  :: KinesisAnalyticsV2ApplicationCodeContent -- ^ 'kavaaccCodeContent'
+  -> Val Text -- ^ 'kavaaccCodeContentType'
+  -> KinesisAnalyticsV2ApplicationApplicationCodeConfiguration
+kinesisAnalyticsV2ApplicationApplicationCodeConfiguration codeContentarg codeContentTypearg =
+  KinesisAnalyticsV2ApplicationApplicationCodeConfiguration
+  { _kinesisAnalyticsV2ApplicationApplicationCodeConfigurationCodeContent = codeContentarg
+  , _kinesisAnalyticsV2ApplicationApplicationCodeConfigurationCodeContentType = codeContentTypearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationcodeconfiguration.html#cfn-kinesisanalyticsv2-application-applicationcodeconfiguration-codecontent
+kavaaccCodeContent :: Lens' KinesisAnalyticsV2ApplicationApplicationCodeConfiguration KinesisAnalyticsV2ApplicationCodeContent
+kavaaccCodeContent = lens _kinesisAnalyticsV2ApplicationApplicationCodeConfigurationCodeContent (\s a -> s { _kinesisAnalyticsV2ApplicationApplicationCodeConfigurationCodeContent = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationcodeconfiguration.html#cfn-kinesisanalyticsv2-application-applicationcodeconfiguration-codecontenttype
+kavaaccCodeContentType :: Lens' KinesisAnalyticsV2ApplicationApplicationCodeConfiguration (Val Text)
+kavaaccCodeContentType = lens _kinesisAnalyticsV2ApplicationApplicationCodeConfigurationCodeContentType (\s a -> s { _kinesisAnalyticsV2ApplicationApplicationCodeConfigurationCodeContentType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationApplicationConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationApplicationConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationApplicationConfiguration.hs
@@ -0,0 +1,81 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationApplicationConfiguration where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationApplicationCodeConfiguration
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationEnvironmentProperties
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationSqlApplicationConfiguration
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationApplicationConfiguration. See
+-- 'kinesisAnalyticsV2ApplicationApplicationConfiguration' for a more
+-- convenient constructor.
+data KinesisAnalyticsV2ApplicationApplicationConfiguration =
+  KinesisAnalyticsV2ApplicationApplicationConfiguration
+  { _kinesisAnalyticsV2ApplicationApplicationConfigurationApplicationCodeConfiguration :: Maybe KinesisAnalyticsV2ApplicationApplicationCodeConfiguration
+  , _kinesisAnalyticsV2ApplicationApplicationConfigurationApplicationSnapshotConfiguration :: Maybe KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration
+  , _kinesisAnalyticsV2ApplicationApplicationConfigurationEnvironmentProperties :: Maybe KinesisAnalyticsV2ApplicationEnvironmentProperties
+  , _kinesisAnalyticsV2ApplicationApplicationConfigurationFlinkApplicationConfiguration :: Maybe KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration
+  , _kinesisAnalyticsV2ApplicationApplicationConfigurationSqlApplicationConfiguration :: Maybe KinesisAnalyticsV2ApplicationSqlApplicationConfiguration
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationApplicationConfiguration where
+  toJSON KinesisAnalyticsV2ApplicationApplicationConfiguration{..} =
+    object $
+    catMaybes
+    [ fmap (("ApplicationCodeConfiguration",) . toJSON) _kinesisAnalyticsV2ApplicationApplicationConfigurationApplicationCodeConfiguration
+    , fmap (("ApplicationSnapshotConfiguration",) . toJSON) _kinesisAnalyticsV2ApplicationApplicationConfigurationApplicationSnapshotConfiguration
+    , fmap (("EnvironmentProperties",) . toJSON) _kinesisAnalyticsV2ApplicationApplicationConfigurationEnvironmentProperties
+    , fmap (("FlinkApplicationConfiguration",) . toJSON) _kinesisAnalyticsV2ApplicationApplicationConfigurationFlinkApplicationConfiguration
+    , fmap (("SqlApplicationConfiguration",) . toJSON) _kinesisAnalyticsV2ApplicationApplicationConfigurationSqlApplicationConfiguration
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationApplicationConfiguration where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationApplicationConfiguration <$>
+      (obj .:? "ApplicationCodeConfiguration") <*>
+      (obj .:? "ApplicationSnapshotConfiguration") <*>
+      (obj .:? "EnvironmentProperties") <*>
+      (obj .:? "FlinkApplicationConfiguration") <*>
+      (obj .:? "SqlApplicationConfiguration")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationApplicationConfiguration'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationApplicationConfiguration
+  :: KinesisAnalyticsV2ApplicationApplicationConfiguration
+kinesisAnalyticsV2ApplicationApplicationConfiguration  =
+  KinesisAnalyticsV2ApplicationApplicationConfiguration
+  { _kinesisAnalyticsV2ApplicationApplicationConfigurationApplicationCodeConfiguration = Nothing
+  , _kinesisAnalyticsV2ApplicationApplicationConfigurationApplicationSnapshotConfiguration = Nothing
+  , _kinesisAnalyticsV2ApplicationApplicationConfigurationEnvironmentProperties = Nothing
+  , _kinesisAnalyticsV2ApplicationApplicationConfigurationFlinkApplicationConfiguration = Nothing
+  , _kinesisAnalyticsV2ApplicationApplicationConfigurationSqlApplicationConfiguration = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html#cfn-kinesisanalyticsv2-application-applicationconfiguration-applicationcodeconfiguration
+kavaacApplicationCodeConfiguration :: Lens' KinesisAnalyticsV2ApplicationApplicationConfiguration (Maybe KinesisAnalyticsV2ApplicationApplicationCodeConfiguration)
+kavaacApplicationCodeConfiguration = lens _kinesisAnalyticsV2ApplicationApplicationConfigurationApplicationCodeConfiguration (\s a -> s { _kinesisAnalyticsV2ApplicationApplicationConfigurationApplicationCodeConfiguration = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html#cfn-kinesisanalyticsv2-application-applicationconfiguration-applicationsnapshotconfiguration
+kavaacApplicationSnapshotConfiguration :: Lens' KinesisAnalyticsV2ApplicationApplicationConfiguration (Maybe KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration)
+kavaacApplicationSnapshotConfiguration = lens _kinesisAnalyticsV2ApplicationApplicationConfigurationApplicationSnapshotConfiguration (\s a -> s { _kinesisAnalyticsV2ApplicationApplicationConfigurationApplicationSnapshotConfiguration = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html#cfn-kinesisanalyticsv2-application-applicationconfiguration-environmentproperties
+kavaacEnvironmentProperties :: Lens' KinesisAnalyticsV2ApplicationApplicationConfiguration (Maybe KinesisAnalyticsV2ApplicationEnvironmentProperties)
+kavaacEnvironmentProperties = lens _kinesisAnalyticsV2ApplicationApplicationConfigurationEnvironmentProperties (\s a -> s { _kinesisAnalyticsV2ApplicationApplicationConfigurationEnvironmentProperties = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html#cfn-kinesisanalyticsv2-application-applicationconfiguration-flinkapplicationconfiguration
+kavaacFlinkApplicationConfiguration :: Lens' KinesisAnalyticsV2ApplicationApplicationConfiguration (Maybe KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration)
+kavaacFlinkApplicationConfiguration = lens _kinesisAnalyticsV2ApplicationApplicationConfigurationFlinkApplicationConfiguration (\s a -> s { _kinesisAnalyticsV2ApplicationApplicationConfigurationFlinkApplicationConfiguration = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html#cfn-kinesisanalyticsv2-application-applicationconfiguration-sqlapplicationconfiguration
+kavaacSqlApplicationConfiguration :: Lens' KinesisAnalyticsV2ApplicationApplicationConfiguration (Maybe KinesisAnalyticsV2ApplicationSqlApplicationConfiguration)
+kavaacSqlApplicationConfiguration = lens _kinesisAnalyticsV2ApplicationApplicationConfigurationSqlApplicationConfiguration (\s a -> s { _kinesisAnalyticsV2ApplicationApplicationConfigurationSqlApplicationConfiguration = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationsnapshotconfiguration.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration. See
+-- 'kinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration' for a
+-- more convenient constructor.
+data KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration =
+  KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration
+  { _kinesisAnalyticsV2ApplicationApplicationSnapshotConfigurationSnapshotsEnabled :: Val Bool
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration where
+  toJSON KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration{..} =
+    object $
+    catMaybes
+    [ (Just . ("SnapshotsEnabled",) . toJSON . fmap Bool') _kinesisAnalyticsV2ApplicationApplicationSnapshotConfigurationSnapshotsEnabled
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration <$>
+      fmap (fmap unBool') (obj .: "SnapshotsEnabled")
+  parseJSON _ = mempty
+
+-- | Constructor for
+-- 'KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration
+  :: Val Bool -- ^ 'kavaascSnapshotsEnabled'
+  -> KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration
+kinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration snapshotsEnabledarg =
+  KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration
+  { _kinesisAnalyticsV2ApplicationApplicationSnapshotConfigurationSnapshotsEnabled = snapshotsEnabledarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationsnapshotconfiguration.html#cfn-kinesisanalyticsv2-application-applicationsnapshotconfiguration-snapshotsenabled
+kavaascSnapshotsEnabled :: Lens' KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration (Val Bool)
+kavaascSnapshotsEnabled = lens _kinesisAnalyticsV2ApplicationApplicationSnapshotConfigurationSnapshotsEnabled (\s a -> s { _kinesisAnalyticsV2ApplicationApplicationSnapshotConfigurationSnapshotsEnabled = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationCSVMappingParameters.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationCSVMappingParameters.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationCSVMappingParameters.hs
@@ -0,0 +1,55 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-csvmappingparameters.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationCSVMappingParameters where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationCSVMappingParameters. See
+-- 'kinesisAnalyticsV2ApplicationCSVMappingParameters' for a more convenient
+-- constructor.
+data KinesisAnalyticsV2ApplicationCSVMappingParameters =
+  KinesisAnalyticsV2ApplicationCSVMappingParameters
+  { _kinesisAnalyticsV2ApplicationCSVMappingParametersRecordColumnDelimiter :: Val Text
+  , _kinesisAnalyticsV2ApplicationCSVMappingParametersRecordRowDelimiter :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationCSVMappingParameters where
+  toJSON KinesisAnalyticsV2ApplicationCSVMappingParameters{..} =
+    object $
+    catMaybes
+    [ (Just . ("RecordColumnDelimiter",) . toJSON) _kinesisAnalyticsV2ApplicationCSVMappingParametersRecordColumnDelimiter
+    , (Just . ("RecordRowDelimiter",) . toJSON) _kinesisAnalyticsV2ApplicationCSVMappingParametersRecordRowDelimiter
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationCSVMappingParameters where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationCSVMappingParameters <$>
+      (obj .: "RecordColumnDelimiter") <*>
+      (obj .: "RecordRowDelimiter")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationCSVMappingParameters'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationCSVMappingParameters
+  :: Val Text -- ^ 'kavacsvmpRecordColumnDelimiter'
+  -> Val Text -- ^ 'kavacsvmpRecordRowDelimiter'
+  -> KinesisAnalyticsV2ApplicationCSVMappingParameters
+kinesisAnalyticsV2ApplicationCSVMappingParameters recordColumnDelimiterarg recordRowDelimiterarg =
+  KinesisAnalyticsV2ApplicationCSVMappingParameters
+  { _kinesisAnalyticsV2ApplicationCSVMappingParametersRecordColumnDelimiter = recordColumnDelimiterarg
+  , _kinesisAnalyticsV2ApplicationCSVMappingParametersRecordRowDelimiter = recordRowDelimiterarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-csvmappingparameters.html#cfn-kinesisanalyticsv2-application-csvmappingparameters-recordcolumndelimiter
+kavacsvmpRecordColumnDelimiter :: Lens' KinesisAnalyticsV2ApplicationCSVMappingParameters (Val Text)
+kavacsvmpRecordColumnDelimiter = lens _kinesisAnalyticsV2ApplicationCSVMappingParametersRecordColumnDelimiter (\s a -> s { _kinesisAnalyticsV2ApplicationCSVMappingParametersRecordColumnDelimiter = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-csvmappingparameters.html#cfn-kinesisanalyticsv2-application-csvmappingparameters-recordrowdelimiter
+kavacsvmpRecordRowDelimiter :: Lens' KinesisAnalyticsV2ApplicationCSVMappingParameters (Val Text)
+kavacsvmpRecordRowDelimiter = lens _kinesisAnalyticsV2ApplicationCSVMappingParametersRecordRowDelimiter (\s a -> s { _kinesisAnalyticsV2ApplicationCSVMappingParametersRecordRowDelimiter = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationCheckpointConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationCheckpointConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationCheckpointConfiguration.hs
@@ -0,0 +1,70 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-checkpointconfiguration.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationCheckpointConfiguration where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationCheckpointConfiguration. See
+-- 'kinesisAnalyticsV2ApplicationCheckpointConfiguration' for a more
+-- convenient constructor.
+data KinesisAnalyticsV2ApplicationCheckpointConfiguration =
+  KinesisAnalyticsV2ApplicationCheckpointConfiguration
+  { _kinesisAnalyticsV2ApplicationCheckpointConfigurationCheckpointInterval :: Maybe (Val Integer)
+  , _kinesisAnalyticsV2ApplicationCheckpointConfigurationCheckpointingEnabled :: Maybe (Val Bool)
+  , _kinesisAnalyticsV2ApplicationCheckpointConfigurationConfigurationType :: Val Text
+  , _kinesisAnalyticsV2ApplicationCheckpointConfigurationMinPauseBetweenCheckpoints :: Maybe (Val Integer)
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationCheckpointConfiguration where
+  toJSON KinesisAnalyticsV2ApplicationCheckpointConfiguration{..} =
+    object $
+    catMaybes
+    [ fmap (("CheckpointInterval",) . toJSON . fmap Integer') _kinesisAnalyticsV2ApplicationCheckpointConfigurationCheckpointInterval
+    , fmap (("CheckpointingEnabled",) . toJSON . fmap Bool') _kinesisAnalyticsV2ApplicationCheckpointConfigurationCheckpointingEnabled
+    , (Just . ("ConfigurationType",) . toJSON) _kinesisAnalyticsV2ApplicationCheckpointConfigurationConfigurationType
+    , fmap (("MinPauseBetweenCheckpoints",) . toJSON . fmap Integer') _kinesisAnalyticsV2ApplicationCheckpointConfigurationMinPauseBetweenCheckpoints
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationCheckpointConfiguration where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationCheckpointConfiguration <$>
+      fmap (fmap (fmap unInteger')) (obj .:? "CheckpointInterval") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "CheckpointingEnabled") <*>
+      (obj .: "ConfigurationType") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "MinPauseBetweenCheckpoints")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationCheckpointConfiguration'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationCheckpointConfiguration
+  :: Val Text -- ^ 'kavaccConfigurationType'
+  -> KinesisAnalyticsV2ApplicationCheckpointConfiguration
+kinesisAnalyticsV2ApplicationCheckpointConfiguration configurationTypearg =
+  KinesisAnalyticsV2ApplicationCheckpointConfiguration
+  { _kinesisAnalyticsV2ApplicationCheckpointConfigurationCheckpointInterval = Nothing
+  , _kinesisAnalyticsV2ApplicationCheckpointConfigurationCheckpointingEnabled = Nothing
+  , _kinesisAnalyticsV2ApplicationCheckpointConfigurationConfigurationType = configurationTypearg
+  , _kinesisAnalyticsV2ApplicationCheckpointConfigurationMinPauseBetweenCheckpoints = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-checkpointconfiguration.html#cfn-kinesisanalyticsv2-application-checkpointconfiguration-checkpointinterval
+kavaccCheckpointInterval :: Lens' KinesisAnalyticsV2ApplicationCheckpointConfiguration (Maybe (Val Integer))
+kavaccCheckpointInterval = lens _kinesisAnalyticsV2ApplicationCheckpointConfigurationCheckpointInterval (\s a -> s { _kinesisAnalyticsV2ApplicationCheckpointConfigurationCheckpointInterval = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-checkpointconfiguration.html#cfn-kinesisanalyticsv2-application-checkpointconfiguration-checkpointingenabled
+kavaccCheckpointingEnabled :: Lens' KinesisAnalyticsV2ApplicationCheckpointConfiguration (Maybe (Val Bool))
+kavaccCheckpointingEnabled = lens _kinesisAnalyticsV2ApplicationCheckpointConfigurationCheckpointingEnabled (\s a -> s { _kinesisAnalyticsV2ApplicationCheckpointConfigurationCheckpointingEnabled = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-checkpointconfiguration.html#cfn-kinesisanalyticsv2-application-checkpointconfiguration-configurationtype
+kavaccConfigurationType :: Lens' KinesisAnalyticsV2ApplicationCheckpointConfiguration (Val Text)
+kavaccConfigurationType = lens _kinesisAnalyticsV2ApplicationCheckpointConfigurationConfigurationType (\s a -> s { _kinesisAnalyticsV2ApplicationCheckpointConfigurationConfigurationType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-checkpointconfiguration.html#cfn-kinesisanalyticsv2-application-checkpointconfiguration-minpausebetweencheckpoints
+kavaccMinPauseBetweenCheckpoints :: Lens' KinesisAnalyticsV2ApplicationCheckpointConfiguration (Maybe (Val Integer))
+kavaccMinPauseBetweenCheckpoints = lens _kinesisAnalyticsV2ApplicationCheckpointConfigurationMinPauseBetweenCheckpoints (\s a -> s { _kinesisAnalyticsV2ApplicationCheckpointConfigurationMinPauseBetweenCheckpoints = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationcloudwatchloggingoption-cloudwatchloggingoption.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption.
+-- See
+-- 'kinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption'
+-- for a more convenient constructor.
+data KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption =
+  KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption
+  { _kinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOptionLogStreamARN :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption where
+  toJSON KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption{..} =
+    object $
+    catMaybes
+    [ (Just . ("LogStreamARN",) . toJSON) _kinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOptionLogStreamARN
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption <$>
+      (obj .: "LogStreamARN")
+  parseJSON _ = mempty
+
+-- | Constructor for
+-- 'KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption
+  :: Val Text -- ^ 'kavacwlocwloLogStreamARN'
+  -> KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption
+kinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption logStreamARNarg =
+  KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption
+  { _kinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOptionLogStreamARN = logStreamARNarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationcloudwatchloggingoption-cloudwatchloggingoption.html#cfn-kinesisanalyticsv2-applicationcloudwatchloggingoption-cloudwatchloggingoption-logstreamarn
+kavacwlocwloLogStreamARN :: Lens' KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption (Val Text)
+kavacwlocwloLogStreamARN = lens _kinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOptionLogStreamARN (\s a -> s { _kinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOptionLogStreamARN = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationCodeContent.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationCodeContent.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationCodeContent.hs
@@ -0,0 +1,60 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-codecontent.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationCodeContent where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationS3ContentLocation
+
+-- | Full data type definition for KinesisAnalyticsV2ApplicationCodeContent.
+-- See 'kinesisAnalyticsV2ApplicationCodeContent' for a more convenient
+-- constructor.
+data KinesisAnalyticsV2ApplicationCodeContent =
+  KinesisAnalyticsV2ApplicationCodeContent
+  { _kinesisAnalyticsV2ApplicationCodeContentS3ContentLocation :: Maybe KinesisAnalyticsV2ApplicationS3ContentLocation
+  , _kinesisAnalyticsV2ApplicationCodeContentTextContent :: Maybe (Val Text)
+  , _kinesisAnalyticsV2ApplicationCodeContentZipFileContent :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationCodeContent where
+  toJSON KinesisAnalyticsV2ApplicationCodeContent{..} =
+    object $
+    catMaybes
+    [ fmap (("S3ContentLocation",) . toJSON) _kinesisAnalyticsV2ApplicationCodeContentS3ContentLocation
+    , fmap (("TextContent",) . toJSON) _kinesisAnalyticsV2ApplicationCodeContentTextContent
+    , fmap (("ZipFileContent",) . toJSON) _kinesisAnalyticsV2ApplicationCodeContentZipFileContent
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationCodeContent where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationCodeContent <$>
+      (obj .:? "S3ContentLocation") <*>
+      (obj .:? "TextContent") <*>
+      (obj .:? "ZipFileContent")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationCodeContent' containing
+-- required fields as arguments.
+kinesisAnalyticsV2ApplicationCodeContent
+  :: KinesisAnalyticsV2ApplicationCodeContent
+kinesisAnalyticsV2ApplicationCodeContent  =
+  KinesisAnalyticsV2ApplicationCodeContent
+  { _kinesisAnalyticsV2ApplicationCodeContentS3ContentLocation = Nothing
+  , _kinesisAnalyticsV2ApplicationCodeContentTextContent = Nothing
+  , _kinesisAnalyticsV2ApplicationCodeContentZipFileContent = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-codecontent.html#cfn-kinesisanalyticsv2-application-codecontent-s3contentlocation
+kavaccS3ContentLocation :: Lens' KinesisAnalyticsV2ApplicationCodeContent (Maybe KinesisAnalyticsV2ApplicationS3ContentLocation)
+kavaccS3ContentLocation = lens _kinesisAnalyticsV2ApplicationCodeContentS3ContentLocation (\s a -> s { _kinesisAnalyticsV2ApplicationCodeContentS3ContentLocation = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-codecontent.html#cfn-kinesisanalyticsv2-application-codecontent-textcontent
+kavaccTextContent :: Lens' KinesisAnalyticsV2ApplicationCodeContent (Maybe (Val Text))
+kavaccTextContent = lens _kinesisAnalyticsV2ApplicationCodeContentTextContent (\s a -> s { _kinesisAnalyticsV2ApplicationCodeContentTextContent = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-codecontent.html#cfn-kinesisanalyticsv2-application-codecontent-zipfilecontent
+kavaccZipFileContent :: Lens' KinesisAnalyticsV2ApplicationCodeContent (Maybe (Val Text))
+kavaccZipFileContent = lens _kinesisAnalyticsV2ApplicationCodeContentZipFileContent (\s a -> s { _kinesisAnalyticsV2ApplicationCodeContentZipFileContent = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationEnvironmentProperties.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationEnvironmentProperties.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationEnvironmentProperties.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-environmentproperties.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationEnvironmentProperties where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationPropertyGroup
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationEnvironmentProperties. See
+-- 'kinesisAnalyticsV2ApplicationEnvironmentProperties' for a more
+-- convenient constructor.
+data KinesisAnalyticsV2ApplicationEnvironmentProperties =
+  KinesisAnalyticsV2ApplicationEnvironmentProperties
+  { _kinesisAnalyticsV2ApplicationEnvironmentPropertiesPropertyGroups :: Maybe [KinesisAnalyticsV2ApplicationPropertyGroup]
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationEnvironmentProperties where
+  toJSON KinesisAnalyticsV2ApplicationEnvironmentProperties{..} =
+    object $
+    catMaybes
+    [ fmap (("PropertyGroups",) . toJSON) _kinesisAnalyticsV2ApplicationEnvironmentPropertiesPropertyGroups
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationEnvironmentProperties where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationEnvironmentProperties <$>
+      (obj .:? "PropertyGroups")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationEnvironmentProperties'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationEnvironmentProperties
+  :: KinesisAnalyticsV2ApplicationEnvironmentProperties
+kinesisAnalyticsV2ApplicationEnvironmentProperties  =
+  KinesisAnalyticsV2ApplicationEnvironmentProperties
+  { _kinesisAnalyticsV2ApplicationEnvironmentPropertiesPropertyGroups = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-environmentproperties.html#cfn-kinesisanalyticsv2-application-environmentproperties-propertygroups
+kavaepPropertyGroups :: Lens' KinesisAnalyticsV2ApplicationEnvironmentProperties (Maybe [KinesisAnalyticsV2ApplicationPropertyGroup])
+kavaepPropertyGroups = lens _kinesisAnalyticsV2ApplicationEnvironmentPropertiesPropertyGroups (\s a -> s { _kinesisAnalyticsV2ApplicationEnvironmentPropertiesPropertyGroups = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration.hs
@@ -0,0 +1,64 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-flinkapplicationconfiguration.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationCheckpointConfiguration
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationMonitoringConfiguration
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationParallelismConfiguration
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration. See
+-- 'kinesisAnalyticsV2ApplicationFlinkApplicationConfiguration' for a more
+-- convenient constructor.
+data KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration =
+  KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration
+  { _kinesisAnalyticsV2ApplicationFlinkApplicationConfigurationCheckpointConfiguration :: Maybe KinesisAnalyticsV2ApplicationCheckpointConfiguration
+  , _kinesisAnalyticsV2ApplicationFlinkApplicationConfigurationMonitoringConfiguration :: Maybe KinesisAnalyticsV2ApplicationMonitoringConfiguration
+  , _kinesisAnalyticsV2ApplicationFlinkApplicationConfigurationParallelismConfiguration :: Maybe KinesisAnalyticsV2ApplicationParallelismConfiguration
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration where
+  toJSON KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration{..} =
+    object $
+    catMaybes
+    [ fmap (("CheckpointConfiguration",) . toJSON) _kinesisAnalyticsV2ApplicationFlinkApplicationConfigurationCheckpointConfiguration
+    , fmap (("MonitoringConfiguration",) . toJSON) _kinesisAnalyticsV2ApplicationFlinkApplicationConfigurationMonitoringConfiguration
+    , fmap (("ParallelismConfiguration",) . toJSON) _kinesisAnalyticsV2ApplicationFlinkApplicationConfigurationParallelismConfiguration
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration <$>
+      (obj .:? "CheckpointConfiguration") <*>
+      (obj .:? "MonitoringConfiguration") <*>
+      (obj .:? "ParallelismConfiguration")
+  parseJSON _ = mempty
+
+-- | Constructor for
+-- 'KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration' containing
+-- required fields as arguments.
+kinesisAnalyticsV2ApplicationFlinkApplicationConfiguration
+  :: KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration
+kinesisAnalyticsV2ApplicationFlinkApplicationConfiguration  =
+  KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration
+  { _kinesisAnalyticsV2ApplicationFlinkApplicationConfigurationCheckpointConfiguration = Nothing
+  , _kinesisAnalyticsV2ApplicationFlinkApplicationConfigurationMonitoringConfiguration = Nothing
+  , _kinesisAnalyticsV2ApplicationFlinkApplicationConfigurationParallelismConfiguration = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-flinkapplicationconfiguration.html#cfn-kinesisanalyticsv2-application-flinkapplicationconfiguration-checkpointconfiguration
+kavafacCheckpointConfiguration :: Lens' KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration (Maybe KinesisAnalyticsV2ApplicationCheckpointConfiguration)
+kavafacCheckpointConfiguration = lens _kinesisAnalyticsV2ApplicationFlinkApplicationConfigurationCheckpointConfiguration (\s a -> s { _kinesisAnalyticsV2ApplicationFlinkApplicationConfigurationCheckpointConfiguration = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-flinkapplicationconfiguration.html#cfn-kinesisanalyticsv2-application-flinkapplicationconfiguration-monitoringconfiguration
+kavafacMonitoringConfiguration :: Lens' KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration (Maybe KinesisAnalyticsV2ApplicationMonitoringConfiguration)
+kavafacMonitoringConfiguration = lens _kinesisAnalyticsV2ApplicationFlinkApplicationConfigurationMonitoringConfiguration (\s a -> s { _kinesisAnalyticsV2ApplicationFlinkApplicationConfigurationMonitoringConfiguration = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-flinkapplicationconfiguration.html#cfn-kinesisanalyticsv2-application-flinkapplicationconfiguration-parallelismconfiguration
+kavafacParallelismConfiguration :: Lens' KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration (Maybe KinesisAnalyticsV2ApplicationParallelismConfiguration)
+kavafacParallelismConfiguration = lens _kinesisAnalyticsV2ApplicationFlinkApplicationConfigurationParallelismConfiguration (\s a -> s { _kinesisAnalyticsV2ApplicationFlinkApplicationConfigurationParallelismConfiguration = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationInput.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationInput.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationInput.hs
@@ -0,0 +1,89 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationInput where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationInputParallelism
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationInputProcessingConfiguration
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationInputSchema
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationKinesisFirehoseInput
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationKinesisStreamsInput
+
+-- | Full data type definition for KinesisAnalyticsV2ApplicationInput. See
+-- 'kinesisAnalyticsV2ApplicationInput' for a more convenient constructor.
+data KinesisAnalyticsV2ApplicationInput =
+  KinesisAnalyticsV2ApplicationInput
+  { _kinesisAnalyticsV2ApplicationInputInputParallelism :: Maybe KinesisAnalyticsV2ApplicationInputParallelism
+  , _kinesisAnalyticsV2ApplicationInputInputProcessingConfiguration :: Maybe KinesisAnalyticsV2ApplicationInputProcessingConfiguration
+  , _kinesisAnalyticsV2ApplicationInputInputSchema :: KinesisAnalyticsV2ApplicationInputSchema
+  , _kinesisAnalyticsV2ApplicationInputKinesisFirehoseInput :: Maybe KinesisAnalyticsV2ApplicationKinesisFirehoseInput
+  , _kinesisAnalyticsV2ApplicationInputKinesisStreamsInput :: Maybe KinesisAnalyticsV2ApplicationKinesisStreamsInput
+  , _kinesisAnalyticsV2ApplicationInputNamePrefix :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationInput where
+  toJSON KinesisAnalyticsV2ApplicationInput{..} =
+    object $
+    catMaybes
+    [ fmap (("InputParallelism",) . toJSON) _kinesisAnalyticsV2ApplicationInputInputParallelism
+    , fmap (("InputProcessingConfiguration",) . toJSON) _kinesisAnalyticsV2ApplicationInputInputProcessingConfiguration
+    , (Just . ("InputSchema",) . toJSON) _kinesisAnalyticsV2ApplicationInputInputSchema
+    , fmap (("KinesisFirehoseInput",) . toJSON) _kinesisAnalyticsV2ApplicationInputKinesisFirehoseInput
+    , fmap (("KinesisStreamsInput",) . toJSON) _kinesisAnalyticsV2ApplicationInputKinesisStreamsInput
+    , (Just . ("NamePrefix",) . toJSON) _kinesisAnalyticsV2ApplicationInputNamePrefix
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationInput where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationInput <$>
+      (obj .:? "InputParallelism") <*>
+      (obj .:? "InputProcessingConfiguration") <*>
+      (obj .: "InputSchema") <*>
+      (obj .:? "KinesisFirehoseInput") <*>
+      (obj .:? "KinesisStreamsInput") <*>
+      (obj .: "NamePrefix")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationInput' containing required
+-- fields as arguments.
+kinesisAnalyticsV2ApplicationInput
+  :: KinesisAnalyticsV2ApplicationInputSchema -- ^ 'kavaiInputSchema'
+  -> Val Text -- ^ 'kavaiNamePrefix'
+  -> KinesisAnalyticsV2ApplicationInput
+kinesisAnalyticsV2ApplicationInput inputSchemaarg namePrefixarg =
+  KinesisAnalyticsV2ApplicationInput
+  { _kinesisAnalyticsV2ApplicationInputInputParallelism = Nothing
+  , _kinesisAnalyticsV2ApplicationInputInputProcessingConfiguration = Nothing
+  , _kinesisAnalyticsV2ApplicationInputInputSchema = inputSchemaarg
+  , _kinesisAnalyticsV2ApplicationInputKinesisFirehoseInput = Nothing
+  , _kinesisAnalyticsV2ApplicationInputKinesisStreamsInput = Nothing
+  , _kinesisAnalyticsV2ApplicationInputNamePrefix = namePrefixarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html#cfn-kinesisanalyticsv2-application-input-inputparallelism
+kavaiInputParallelism :: Lens' KinesisAnalyticsV2ApplicationInput (Maybe KinesisAnalyticsV2ApplicationInputParallelism)
+kavaiInputParallelism = lens _kinesisAnalyticsV2ApplicationInputInputParallelism (\s a -> s { _kinesisAnalyticsV2ApplicationInputInputParallelism = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html#cfn-kinesisanalyticsv2-application-input-inputprocessingconfiguration
+kavaiInputProcessingConfiguration :: Lens' KinesisAnalyticsV2ApplicationInput (Maybe KinesisAnalyticsV2ApplicationInputProcessingConfiguration)
+kavaiInputProcessingConfiguration = lens _kinesisAnalyticsV2ApplicationInputInputProcessingConfiguration (\s a -> s { _kinesisAnalyticsV2ApplicationInputInputProcessingConfiguration = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html#cfn-kinesisanalyticsv2-application-input-inputschema
+kavaiInputSchema :: Lens' KinesisAnalyticsV2ApplicationInput KinesisAnalyticsV2ApplicationInputSchema
+kavaiInputSchema = lens _kinesisAnalyticsV2ApplicationInputInputSchema (\s a -> s { _kinesisAnalyticsV2ApplicationInputInputSchema = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html#cfn-kinesisanalyticsv2-application-input-kinesisfirehoseinput
+kavaiKinesisFirehoseInput :: Lens' KinesisAnalyticsV2ApplicationInput (Maybe KinesisAnalyticsV2ApplicationKinesisFirehoseInput)
+kavaiKinesisFirehoseInput = lens _kinesisAnalyticsV2ApplicationInputKinesisFirehoseInput (\s a -> s { _kinesisAnalyticsV2ApplicationInputKinesisFirehoseInput = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html#cfn-kinesisanalyticsv2-application-input-kinesisstreamsinput
+kavaiKinesisStreamsInput :: Lens' KinesisAnalyticsV2ApplicationInput (Maybe KinesisAnalyticsV2ApplicationKinesisStreamsInput)
+kavaiKinesisStreamsInput = lens _kinesisAnalyticsV2ApplicationInputKinesisStreamsInput (\s a -> s { _kinesisAnalyticsV2ApplicationInputKinesisStreamsInput = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html#cfn-kinesisanalyticsv2-application-input-nameprefix
+kavaiNamePrefix :: Lens' KinesisAnalyticsV2ApplicationInput (Val Text)
+kavaiNamePrefix = lens _kinesisAnalyticsV2ApplicationInputNamePrefix (\s a -> s { _kinesisAnalyticsV2ApplicationInputNamePrefix = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationInputLambdaProcessor.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationInputLambdaProcessor.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationInputLambdaProcessor.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputlambdaprocessor.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationInputLambdaProcessor where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationInputLambdaProcessor. See
+-- 'kinesisAnalyticsV2ApplicationInputLambdaProcessor' for a more convenient
+-- constructor.
+data KinesisAnalyticsV2ApplicationInputLambdaProcessor =
+  KinesisAnalyticsV2ApplicationInputLambdaProcessor
+  { _kinesisAnalyticsV2ApplicationInputLambdaProcessorResourceARN :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationInputLambdaProcessor where
+  toJSON KinesisAnalyticsV2ApplicationInputLambdaProcessor{..} =
+    object $
+    catMaybes
+    [ (Just . ("ResourceARN",) . toJSON) _kinesisAnalyticsV2ApplicationInputLambdaProcessorResourceARN
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationInputLambdaProcessor where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationInputLambdaProcessor <$>
+      (obj .: "ResourceARN")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationInputLambdaProcessor'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationInputLambdaProcessor
+  :: Val Text -- ^ 'kavailpResourceARN'
+  -> KinesisAnalyticsV2ApplicationInputLambdaProcessor
+kinesisAnalyticsV2ApplicationInputLambdaProcessor resourceARNarg =
+  KinesisAnalyticsV2ApplicationInputLambdaProcessor
+  { _kinesisAnalyticsV2ApplicationInputLambdaProcessorResourceARN = resourceARNarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputlambdaprocessor.html#cfn-kinesisanalyticsv2-application-inputlambdaprocessor-resourcearn
+kavailpResourceARN :: Lens' KinesisAnalyticsV2ApplicationInputLambdaProcessor (Val Text)
+kavailpResourceARN = lens _kinesisAnalyticsV2ApplicationInputLambdaProcessorResourceARN (\s a -> s { _kinesisAnalyticsV2ApplicationInputLambdaProcessorResourceARN = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationInputParallelism.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationInputParallelism.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationInputParallelism.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputparallelism.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationInputParallelism where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationInputParallelism. See
+-- 'kinesisAnalyticsV2ApplicationInputParallelism' for a more convenient
+-- constructor.
+data KinesisAnalyticsV2ApplicationInputParallelism =
+  KinesisAnalyticsV2ApplicationInputParallelism
+  { _kinesisAnalyticsV2ApplicationInputParallelismCount :: Maybe (Val Integer)
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationInputParallelism where
+  toJSON KinesisAnalyticsV2ApplicationInputParallelism{..} =
+    object $
+    catMaybes
+    [ fmap (("Count",) . toJSON . fmap Integer') _kinesisAnalyticsV2ApplicationInputParallelismCount
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationInputParallelism where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationInputParallelism <$>
+      fmap (fmap (fmap unInteger')) (obj .:? "Count")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationInputParallelism'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationInputParallelism
+  :: KinesisAnalyticsV2ApplicationInputParallelism
+kinesisAnalyticsV2ApplicationInputParallelism  =
+  KinesisAnalyticsV2ApplicationInputParallelism
+  { _kinesisAnalyticsV2ApplicationInputParallelismCount = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputparallelism.html#cfn-kinesisanalyticsv2-application-inputparallelism-count
+kavaipCount :: Lens' KinesisAnalyticsV2ApplicationInputParallelism (Maybe (Val Integer))
+kavaipCount = lens _kinesisAnalyticsV2ApplicationInputParallelismCount (\s a -> s { _kinesisAnalyticsV2ApplicationInputParallelismCount = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationInputProcessingConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationInputProcessingConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationInputProcessingConfiguration.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputprocessingconfiguration.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationInputProcessingConfiguration where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationInputLambdaProcessor
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationInputProcessingConfiguration. See
+-- 'kinesisAnalyticsV2ApplicationInputProcessingConfiguration' for a more
+-- convenient constructor.
+data KinesisAnalyticsV2ApplicationInputProcessingConfiguration =
+  KinesisAnalyticsV2ApplicationInputProcessingConfiguration
+  { _kinesisAnalyticsV2ApplicationInputProcessingConfigurationInputLambdaProcessor :: Maybe KinesisAnalyticsV2ApplicationInputLambdaProcessor
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationInputProcessingConfiguration where
+  toJSON KinesisAnalyticsV2ApplicationInputProcessingConfiguration{..} =
+    object $
+    catMaybes
+    [ fmap (("InputLambdaProcessor",) . toJSON) _kinesisAnalyticsV2ApplicationInputProcessingConfigurationInputLambdaProcessor
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationInputProcessingConfiguration where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationInputProcessingConfiguration <$>
+      (obj .:? "InputLambdaProcessor")
+  parseJSON _ = mempty
+
+-- | Constructor for
+-- 'KinesisAnalyticsV2ApplicationInputProcessingConfiguration' containing
+-- required fields as arguments.
+kinesisAnalyticsV2ApplicationInputProcessingConfiguration
+  :: KinesisAnalyticsV2ApplicationInputProcessingConfiguration
+kinesisAnalyticsV2ApplicationInputProcessingConfiguration  =
+  KinesisAnalyticsV2ApplicationInputProcessingConfiguration
+  { _kinesisAnalyticsV2ApplicationInputProcessingConfigurationInputLambdaProcessor = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputprocessingconfiguration.html#cfn-kinesisanalyticsv2-application-inputprocessingconfiguration-inputlambdaprocessor
+kavaipcInputLambdaProcessor :: Lens' KinesisAnalyticsV2ApplicationInputProcessingConfiguration (Maybe KinesisAnalyticsV2ApplicationInputLambdaProcessor)
+kavaipcInputLambdaProcessor = lens _kinesisAnalyticsV2ApplicationInputProcessingConfigurationInputLambdaProcessor (\s a -> s { _kinesisAnalyticsV2ApplicationInputProcessingConfigurationInputLambdaProcessor = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationInputSchema.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationInputSchema.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationInputSchema.hs
@@ -0,0 +1,63 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputschema.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationInputSchema where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationRecordColumn
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationRecordFormat
+
+-- | Full data type definition for KinesisAnalyticsV2ApplicationInputSchema.
+-- See 'kinesisAnalyticsV2ApplicationInputSchema' for a more convenient
+-- constructor.
+data KinesisAnalyticsV2ApplicationInputSchema =
+  KinesisAnalyticsV2ApplicationInputSchema
+  { _kinesisAnalyticsV2ApplicationInputSchemaRecordColumns :: [KinesisAnalyticsV2ApplicationRecordColumn]
+  , _kinesisAnalyticsV2ApplicationInputSchemaRecordEncoding :: Maybe (Val Text)
+  , _kinesisAnalyticsV2ApplicationInputSchemaRecordFormat :: KinesisAnalyticsV2ApplicationRecordFormat
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationInputSchema where
+  toJSON KinesisAnalyticsV2ApplicationInputSchema{..} =
+    object $
+    catMaybes
+    [ (Just . ("RecordColumns",) . toJSON) _kinesisAnalyticsV2ApplicationInputSchemaRecordColumns
+    , fmap (("RecordEncoding",) . toJSON) _kinesisAnalyticsV2ApplicationInputSchemaRecordEncoding
+    , (Just . ("RecordFormat",) . toJSON) _kinesisAnalyticsV2ApplicationInputSchemaRecordFormat
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationInputSchema where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationInputSchema <$>
+      (obj .: "RecordColumns") <*>
+      (obj .:? "RecordEncoding") <*>
+      (obj .: "RecordFormat")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationInputSchema' containing
+-- required fields as arguments.
+kinesisAnalyticsV2ApplicationInputSchema
+  :: [KinesisAnalyticsV2ApplicationRecordColumn] -- ^ 'kavaisRecordColumns'
+  -> KinesisAnalyticsV2ApplicationRecordFormat -- ^ 'kavaisRecordFormat'
+  -> KinesisAnalyticsV2ApplicationInputSchema
+kinesisAnalyticsV2ApplicationInputSchema recordColumnsarg recordFormatarg =
+  KinesisAnalyticsV2ApplicationInputSchema
+  { _kinesisAnalyticsV2ApplicationInputSchemaRecordColumns = recordColumnsarg
+  , _kinesisAnalyticsV2ApplicationInputSchemaRecordEncoding = Nothing
+  , _kinesisAnalyticsV2ApplicationInputSchemaRecordFormat = recordFormatarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputschema.html#cfn-kinesisanalyticsv2-application-inputschema-recordcolumns
+kavaisRecordColumns :: Lens' KinesisAnalyticsV2ApplicationInputSchema [KinesisAnalyticsV2ApplicationRecordColumn]
+kavaisRecordColumns = lens _kinesisAnalyticsV2ApplicationInputSchemaRecordColumns (\s a -> s { _kinesisAnalyticsV2ApplicationInputSchemaRecordColumns = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputschema.html#cfn-kinesisanalyticsv2-application-inputschema-recordencoding
+kavaisRecordEncoding :: Lens' KinesisAnalyticsV2ApplicationInputSchema (Maybe (Val Text))
+kavaisRecordEncoding = lens _kinesisAnalyticsV2ApplicationInputSchemaRecordEncoding (\s a -> s { _kinesisAnalyticsV2ApplicationInputSchemaRecordEncoding = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputschema.html#cfn-kinesisanalyticsv2-application-inputschema-recordformat
+kavaisRecordFormat :: Lens' KinesisAnalyticsV2ApplicationInputSchema KinesisAnalyticsV2ApplicationRecordFormat
+kavaisRecordFormat = lens _kinesisAnalyticsV2ApplicationInputSchemaRecordFormat (\s a -> s { _kinesisAnalyticsV2ApplicationInputSchemaRecordFormat = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationJSONMappingParameters.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationJSONMappingParameters.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationJSONMappingParameters.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-jsonmappingparameters.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationJSONMappingParameters where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationJSONMappingParameters. See
+-- 'kinesisAnalyticsV2ApplicationJSONMappingParameters' for a more
+-- convenient constructor.
+data KinesisAnalyticsV2ApplicationJSONMappingParameters =
+  KinesisAnalyticsV2ApplicationJSONMappingParameters
+  { _kinesisAnalyticsV2ApplicationJSONMappingParametersRecordRowPath :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationJSONMappingParameters where
+  toJSON KinesisAnalyticsV2ApplicationJSONMappingParameters{..} =
+    object $
+    catMaybes
+    [ (Just . ("RecordRowPath",) . toJSON) _kinesisAnalyticsV2ApplicationJSONMappingParametersRecordRowPath
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationJSONMappingParameters where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationJSONMappingParameters <$>
+      (obj .: "RecordRowPath")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationJSONMappingParameters'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationJSONMappingParameters
+  :: Val Text -- ^ 'kavajsonmpRecordRowPath'
+  -> KinesisAnalyticsV2ApplicationJSONMappingParameters
+kinesisAnalyticsV2ApplicationJSONMappingParameters recordRowPatharg =
+  KinesisAnalyticsV2ApplicationJSONMappingParameters
+  { _kinesisAnalyticsV2ApplicationJSONMappingParametersRecordRowPath = recordRowPatharg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-jsonmappingparameters.html#cfn-kinesisanalyticsv2-application-jsonmappingparameters-recordrowpath
+kavajsonmpRecordRowPath :: Lens' KinesisAnalyticsV2ApplicationJSONMappingParameters (Val Text)
+kavajsonmpRecordRowPath = lens _kinesisAnalyticsV2ApplicationJSONMappingParametersRecordRowPath (\s a -> s { _kinesisAnalyticsV2ApplicationJSONMappingParametersRecordRowPath = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationKinesisFirehoseInput.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationKinesisFirehoseInput.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationKinesisFirehoseInput.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-kinesisfirehoseinput.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationKinesisFirehoseInput where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationKinesisFirehoseInput. See
+-- 'kinesisAnalyticsV2ApplicationKinesisFirehoseInput' for a more convenient
+-- constructor.
+data KinesisAnalyticsV2ApplicationKinesisFirehoseInput =
+  KinesisAnalyticsV2ApplicationKinesisFirehoseInput
+  { _kinesisAnalyticsV2ApplicationKinesisFirehoseInputResourceARN :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationKinesisFirehoseInput where
+  toJSON KinesisAnalyticsV2ApplicationKinesisFirehoseInput{..} =
+    object $
+    catMaybes
+    [ (Just . ("ResourceARN",) . toJSON) _kinesisAnalyticsV2ApplicationKinesisFirehoseInputResourceARN
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationKinesisFirehoseInput where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationKinesisFirehoseInput <$>
+      (obj .: "ResourceARN")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationKinesisFirehoseInput'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationKinesisFirehoseInput
+  :: Val Text -- ^ 'kavakfiResourceARN'
+  -> KinesisAnalyticsV2ApplicationKinesisFirehoseInput
+kinesisAnalyticsV2ApplicationKinesisFirehoseInput resourceARNarg =
+  KinesisAnalyticsV2ApplicationKinesisFirehoseInput
+  { _kinesisAnalyticsV2ApplicationKinesisFirehoseInputResourceARN = resourceARNarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-kinesisfirehoseinput.html#cfn-kinesisanalyticsv2-application-kinesisfirehoseinput-resourcearn
+kavakfiResourceARN :: Lens' KinesisAnalyticsV2ApplicationKinesisFirehoseInput (Val Text)
+kavakfiResourceARN = lens _kinesisAnalyticsV2ApplicationKinesisFirehoseInputResourceARN (\s a -> s { _kinesisAnalyticsV2ApplicationKinesisFirehoseInputResourceARN = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationKinesisStreamsInput.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationKinesisStreamsInput.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationKinesisStreamsInput.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-kinesisstreamsinput.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationKinesisStreamsInput where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationKinesisStreamsInput. See
+-- 'kinesisAnalyticsV2ApplicationKinesisStreamsInput' for a more convenient
+-- constructor.
+data KinesisAnalyticsV2ApplicationKinesisStreamsInput =
+  KinesisAnalyticsV2ApplicationKinesisStreamsInput
+  { _kinesisAnalyticsV2ApplicationKinesisStreamsInputResourceARN :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationKinesisStreamsInput where
+  toJSON KinesisAnalyticsV2ApplicationKinesisStreamsInput{..} =
+    object $
+    catMaybes
+    [ (Just . ("ResourceARN",) . toJSON) _kinesisAnalyticsV2ApplicationKinesisStreamsInputResourceARN
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationKinesisStreamsInput where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationKinesisStreamsInput <$>
+      (obj .: "ResourceARN")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationKinesisStreamsInput'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationKinesisStreamsInput
+  :: Val Text -- ^ 'kavaksiResourceARN'
+  -> KinesisAnalyticsV2ApplicationKinesisStreamsInput
+kinesisAnalyticsV2ApplicationKinesisStreamsInput resourceARNarg =
+  KinesisAnalyticsV2ApplicationKinesisStreamsInput
+  { _kinesisAnalyticsV2ApplicationKinesisStreamsInputResourceARN = resourceARNarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-kinesisstreamsinput.html#cfn-kinesisanalyticsv2-application-kinesisstreamsinput-resourcearn
+kavaksiResourceARN :: Lens' KinesisAnalyticsV2ApplicationKinesisStreamsInput (Val Text)
+kavaksiResourceARN = lens _kinesisAnalyticsV2ApplicationKinesisStreamsInputResourceARN (\s a -> s { _kinesisAnalyticsV2ApplicationKinesisStreamsInputResourceARN = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationMappingParameters.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationMappingParameters.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationMappingParameters.hs
@@ -0,0 +1,54 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-mappingparameters.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationMappingParameters where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationCSVMappingParameters
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationJSONMappingParameters
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationMappingParameters. See
+-- 'kinesisAnalyticsV2ApplicationMappingParameters' for a more convenient
+-- constructor.
+data KinesisAnalyticsV2ApplicationMappingParameters =
+  KinesisAnalyticsV2ApplicationMappingParameters
+  { _kinesisAnalyticsV2ApplicationMappingParametersCSVMappingParameters :: Maybe KinesisAnalyticsV2ApplicationCSVMappingParameters
+  , _kinesisAnalyticsV2ApplicationMappingParametersJSONMappingParameters :: Maybe KinesisAnalyticsV2ApplicationJSONMappingParameters
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationMappingParameters where
+  toJSON KinesisAnalyticsV2ApplicationMappingParameters{..} =
+    object $
+    catMaybes
+    [ fmap (("CSVMappingParameters",) . toJSON) _kinesisAnalyticsV2ApplicationMappingParametersCSVMappingParameters
+    , fmap (("JSONMappingParameters",) . toJSON) _kinesisAnalyticsV2ApplicationMappingParametersJSONMappingParameters
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationMappingParameters where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationMappingParameters <$>
+      (obj .:? "CSVMappingParameters") <*>
+      (obj .:? "JSONMappingParameters")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationMappingParameters'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationMappingParameters
+  :: KinesisAnalyticsV2ApplicationMappingParameters
+kinesisAnalyticsV2ApplicationMappingParameters  =
+  KinesisAnalyticsV2ApplicationMappingParameters
+  { _kinesisAnalyticsV2ApplicationMappingParametersCSVMappingParameters = Nothing
+  , _kinesisAnalyticsV2ApplicationMappingParametersJSONMappingParameters = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-mappingparameters.html#cfn-kinesisanalyticsv2-application-mappingparameters-csvmappingparameters
+kavampCSVMappingParameters :: Lens' KinesisAnalyticsV2ApplicationMappingParameters (Maybe KinesisAnalyticsV2ApplicationCSVMappingParameters)
+kavampCSVMappingParameters = lens _kinesisAnalyticsV2ApplicationMappingParametersCSVMappingParameters (\s a -> s { _kinesisAnalyticsV2ApplicationMappingParametersCSVMappingParameters = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-mappingparameters.html#cfn-kinesisanalyticsv2-application-mappingparameters-jsonmappingparameters
+kavampJSONMappingParameters :: Lens' KinesisAnalyticsV2ApplicationMappingParameters (Maybe KinesisAnalyticsV2ApplicationJSONMappingParameters)
+kavampJSONMappingParameters = lens _kinesisAnalyticsV2ApplicationMappingParametersJSONMappingParameters (\s a -> s { _kinesisAnalyticsV2ApplicationMappingParametersJSONMappingParameters = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationMonitoringConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationMonitoringConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationMonitoringConfiguration.hs
@@ -0,0 +1,62 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-monitoringconfiguration.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationMonitoringConfiguration where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationMonitoringConfiguration. See
+-- 'kinesisAnalyticsV2ApplicationMonitoringConfiguration' for a more
+-- convenient constructor.
+data KinesisAnalyticsV2ApplicationMonitoringConfiguration =
+  KinesisAnalyticsV2ApplicationMonitoringConfiguration
+  { _kinesisAnalyticsV2ApplicationMonitoringConfigurationConfigurationType :: Val Text
+  , _kinesisAnalyticsV2ApplicationMonitoringConfigurationLogLevel :: Maybe (Val Text)
+  , _kinesisAnalyticsV2ApplicationMonitoringConfigurationMetricsLevel :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationMonitoringConfiguration where
+  toJSON KinesisAnalyticsV2ApplicationMonitoringConfiguration{..} =
+    object $
+    catMaybes
+    [ (Just . ("ConfigurationType",) . toJSON) _kinesisAnalyticsV2ApplicationMonitoringConfigurationConfigurationType
+    , fmap (("LogLevel",) . toJSON) _kinesisAnalyticsV2ApplicationMonitoringConfigurationLogLevel
+    , fmap (("MetricsLevel",) . toJSON) _kinesisAnalyticsV2ApplicationMonitoringConfigurationMetricsLevel
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationMonitoringConfiguration where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationMonitoringConfiguration <$>
+      (obj .: "ConfigurationType") <*>
+      (obj .:? "LogLevel") <*>
+      (obj .:? "MetricsLevel")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationMonitoringConfiguration'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationMonitoringConfiguration
+  :: Val Text -- ^ 'kavamcConfigurationType'
+  -> KinesisAnalyticsV2ApplicationMonitoringConfiguration
+kinesisAnalyticsV2ApplicationMonitoringConfiguration configurationTypearg =
+  KinesisAnalyticsV2ApplicationMonitoringConfiguration
+  { _kinesisAnalyticsV2ApplicationMonitoringConfigurationConfigurationType = configurationTypearg
+  , _kinesisAnalyticsV2ApplicationMonitoringConfigurationLogLevel = Nothing
+  , _kinesisAnalyticsV2ApplicationMonitoringConfigurationMetricsLevel = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-monitoringconfiguration.html#cfn-kinesisanalyticsv2-application-monitoringconfiguration-configurationtype
+kavamcConfigurationType :: Lens' KinesisAnalyticsV2ApplicationMonitoringConfiguration (Val Text)
+kavamcConfigurationType = lens _kinesisAnalyticsV2ApplicationMonitoringConfigurationConfigurationType (\s a -> s { _kinesisAnalyticsV2ApplicationMonitoringConfigurationConfigurationType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-monitoringconfiguration.html#cfn-kinesisanalyticsv2-application-monitoringconfiguration-loglevel
+kavamcLogLevel :: Lens' KinesisAnalyticsV2ApplicationMonitoringConfiguration (Maybe (Val Text))
+kavamcLogLevel = lens _kinesisAnalyticsV2ApplicationMonitoringConfigurationLogLevel (\s a -> s { _kinesisAnalyticsV2ApplicationMonitoringConfigurationLogLevel = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-monitoringconfiguration.html#cfn-kinesisanalyticsv2-application-monitoringconfiguration-metricslevel
+kavamcMetricsLevel :: Lens' KinesisAnalyticsV2ApplicationMonitoringConfiguration (Maybe (Val Text))
+kavamcMetricsLevel = lens _kinesisAnalyticsV2ApplicationMonitoringConfigurationMetricsLevel (\s a -> s { _kinesisAnalyticsV2ApplicationMonitoringConfigurationMetricsLevel = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationOutputDestinationSchema.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationOutputDestinationSchema.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationOutputDestinationSchema.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-destinationschema.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationOutputDestinationSchema where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationOutputDestinationSchema. See
+-- 'kinesisAnalyticsV2ApplicationOutputDestinationSchema' for a more
+-- convenient constructor.
+data KinesisAnalyticsV2ApplicationOutputDestinationSchema =
+  KinesisAnalyticsV2ApplicationOutputDestinationSchema
+  { _kinesisAnalyticsV2ApplicationOutputDestinationSchemaRecordFormatType :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationOutputDestinationSchema where
+  toJSON KinesisAnalyticsV2ApplicationOutputDestinationSchema{..} =
+    object $
+    catMaybes
+    [ fmap (("RecordFormatType",) . toJSON) _kinesisAnalyticsV2ApplicationOutputDestinationSchemaRecordFormatType
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationOutputDestinationSchema where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationOutputDestinationSchema <$>
+      (obj .:? "RecordFormatType")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationOutputDestinationSchema'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationOutputDestinationSchema
+  :: KinesisAnalyticsV2ApplicationOutputDestinationSchema
+kinesisAnalyticsV2ApplicationOutputDestinationSchema  =
+  KinesisAnalyticsV2ApplicationOutputDestinationSchema
+  { _kinesisAnalyticsV2ApplicationOutputDestinationSchemaRecordFormatType = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-destinationschema.html#cfn-kinesisanalyticsv2-applicationoutput-destinationschema-recordformattype
+kavaodsRecordFormatType :: Lens' KinesisAnalyticsV2ApplicationOutputDestinationSchema (Maybe (Val Text))
+kavaodsRecordFormatType = lens _kinesisAnalyticsV2ApplicationOutputDestinationSchemaRecordFormatType (\s a -> s { _kinesisAnalyticsV2ApplicationOutputDestinationSchemaRecordFormatType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-kinesisfirehoseoutput.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput. See
+-- 'kinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput' for a more
+-- convenient constructor.
+data KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput =
+  KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput
+  { _kinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutputResourceARN :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput where
+  toJSON KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput{..} =
+    object $
+    catMaybes
+    [ (Just . ("ResourceARN",) . toJSON) _kinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutputResourceARN
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput <$>
+      (obj .: "ResourceARN")
+  parseJSON _ = mempty
+
+-- | Constructor for
+-- 'KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput' containing
+-- required fields as arguments.
+kinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput
+  :: Val Text -- ^ 'kavaokfoResourceARN'
+  -> KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput
+kinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput resourceARNarg =
+  KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput
+  { _kinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutputResourceARN = resourceARNarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-kinesisfirehoseoutput.html#cfn-kinesisanalyticsv2-applicationoutput-kinesisfirehoseoutput-resourcearn
+kavaokfoResourceARN :: Lens' KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput (Val Text)
+kavaokfoResourceARN = lens _kinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutputResourceARN (\s a -> s { _kinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutputResourceARN = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-kinesisstreamsoutput.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput. See
+-- 'kinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput' for a more
+-- convenient constructor.
+data KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput =
+  KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput
+  { _kinesisAnalyticsV2ApplicationOutputKinesisStreamsOutputResourceARN :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput where
+  toJSON KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput{..} =
+    object $
+    catMaybes
+    [ (Just . ("ResourceARN",) . toJSON) _kinesisAnalyticsV2ApplicationOutputKinesisStreamsOutputResourceARN
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput <$>
+      (obj .: "ResourceARN")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput
+  :: Val Text -- ^ 'kavaoksoResourceARN'
+  -> KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput
+kinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput resourceARNarg =
+  KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput
+  { _kinesisAnalyticsV2ApplicationOutputKinesisStreamsOutputResourceARN = resourceARNarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-kinesisstreamsoutput.html#cfn-kinesisanalyticsv2-applicationoutput-kinesisstreamsoutput-resourcearn
+kavaoksoResourceARN :: Lens' KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput (Val Text)
+kavaoksoResourceARN = lens _kinesisAnalyticsV2ApplicationOutputKinesisStreamsOutputResourceARN (\s a -> s { _kinesisAnalyticsV2ApplicationOutputKinesisStreamsOutputResourceARN = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationOutputLambdaOutput.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationOutputLambdaOutput.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationOutputLambdaOutput.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-lambdaoutput.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationOutputLambdaOutput where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationOutputLambdaOutput. See
+-- 'kinesisAnalyticsV2ApplicationOutputLambdaOutput' for a more convenient
+-- constructor.
+data KinesisAnalyticsV2ApplicationOutputLambdaOutput =
+  KinesisAnalyticsV2ApplicationOutputLambdaOutput
+  { _kinesisAnalyticsV2ApplicationOutputLambdaOutputResourceARN :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationOutputLambdaOutput where
+  toJSON KinesisAnalyticsV2ApplicationOutputLambdaOutput{..} =
+    object $
+    catMaybes
+    [ (Just . ("ResourceARN",) . toJSON) _kinesisAnalyticsV2ApplicationOutputLambdaOutputResourceARN
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationOutputLambdaOutput where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationOutputLambdaOutput <$>
+      (obj .: "ResourceARN")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationOutputLambdaOutput'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationOutputLambdaOutput
+  :: Val Text -- ^ 'kavaoloResourceARN'
+  -> KinesisAnalyticsV2ApplicationOutputLambdaOutput
+kinesisAnalyticsV2ApplicationOutputLambdaOutput resourceARNarg =
+  KinesisAnalyticsV2ApplicationOutputLambdaOutput
+  { _kinesisAnalyticsV2ApplicationOutputLambdaOutputResourceARN = resourceARNarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-lambdaoutput.html#cfn-kinesisanalyticsv2-applicationoutput-lambdaoutput-resourcearn
+kavaoloResourceARN :: Lens' KinesisAnalyticsV2ApplicationOutputLambdaOutput (Val Text)
+kavaoloResourceARN = lens _kinesisAnalyticsV2ApplicationOutputLambdaOutputResourceARN (\s a -> s { _kinesisAnalyticsV2ApplicationOutputLambdaOutputResourceARN = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationOutputOutput.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationOutputOutput.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationOutputOutput.hs
@@ -0,0 +1,80 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationOutputOutput where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationOutputDestinationSchema
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationOutputLambdaOutput
+
+-- | Full data type definition for KinesisAnalyticsV2ApplicationOutputOutput.
+-- See 'kinesisAnalyticsV2ApplicationOutputOutput' for a more convenient
+-- constructor.
+data KinesisAnalyticsV2ApplicationOutputOutput =
+  KinesisAnalyticsV2ApplicationOutputOutput
+  { _kinesisAnalyticsV2ApplicationOutputOutputDestinationSchema :: KinesisAnalyticsV2ApplicationOutputDestinationSchema
+  , _kinesisAnalyticsV2ApplicationOutputOutputKinesisFirehoseOutput :: Maybe KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput
+  , _kinesisAnalyticsV2ApplicationOutputOutputKinesisStreamsOutput :: Maybe KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput
+  , _kinesisAnalyticsV2ApplicationOutputOutputLambdaOutput :: Maybe KinesisAnalyticsV2ApplicationOutputLambdaOutput
+  , _kinesisAnalyticsV2ApplicationOutputOutputName :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationOutputOutput where
+  toJSON KinesisAnalyticsV2ApplicationOutputOutput{..} =
+    object $
+    catMaybes
+    [ (Just . ("DestinationSchema",) . toJSON) _kinesisAnalyticsV2ApplicationOutputOutputDestinationSchema
+    , fmap (("KinesisFirehoseOutput",) . toJSON) _kinesisAnalyticsV2ApplicationOutputOutputKinesisFirehoseOutput
+    , fmap (("KinesisStreamsOutput",) . toJSON) _kinesisAnalyticsV2ApplicationOutputOutputKinesisStreamsOutput
+    , fmap (("LambdaOutput",) . toJSON) _kinesisAnalyticsV2ApplicationOutputOutputLambdaOutput
+    , fmap (("Name",) . toJSON) _kinesisAnalyticsV2ApplicationOutputOutputName
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationOutputOutput where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationOutputOutput <$>
+      (obj .: "DestinationSchema") <*>
+      (obj .:? "KinesisFirehoseOutput") <*>
+      (obj .:? "KinesisStreamsOutput") <*>
+      (obj .:? "LambdaOutput") <*>
+      (obj .:? "Name")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationOutputOutput' containing
+-- required fields as arguments.
+kinesisAnalyticsV2ApplicationOutputOutput
+  :: KinesisAnalyticsV2ApplicationOutputDestinationSchema -- ^ 'kavaooDestinationSchema'
+  -> KinesisAnalyticsV2ApplicationOutputOutput
+kinesisAnalyticsV2ApplicationOutputOutput destinationSchemaarg =
+  KinesisAnalyticsV2ApplicationOutputOutput
+  { _kinesisAnalyticsV2ApplicationOutputOutputDestinationSchema = destinationSchemaarg
+  , _kinesisAnalyticsV2ApplicationOutputOutputKinesisFirehoseOutput = Nothing
+  , _kinesisAnalyticsV2ApplicationOutputOutputKinesisStreamsOutput = Nothing
+  , _kinesisAnalyticsV2ApplicationOutputOutputLambdaOutput = Nothing
+  , _kinesisAnalyticsV2ApplicationOutputOutputName = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html#cfn-kinesisanalyticsv2-applicationoutput-output-destinationschema
+kavaooDestinationSchema :: Lens' KinesisAnalyticsV2ApplicationOutputOutput KinesisAnalyticsV2ApplicationOutputDestinationSchema
+kavaooDestinationSchema = lens _kinesisAnalyticsV2ApplicationOutputOutputDestinationSchema (\s a -> s { _kinesisAnalyticsV2ApplicationOutputOutputDestinationSchema = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html#cfn-kinesisanalyticsv2-applicationoutput-output-kinesisfirehoseoutput
+kavaooKinesisFirehoseOutput :: Lens' KinesisAnalyticsV2ApplicationOutputOutput (Maybe KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput)
+kavaooKinesisFirehoseOutput = lens _kinesisAnalyticsV2ApplicationOutputOutputKinesisFirehoseOutput (\s a -> s { _kinesisAnalyticsV2ApplicationOutputOutputKinesisFirehoseOutput = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html#cfn-kinesisanalyticsv2-applicationoutput-output-kinesisstreamsoutput
+kavaooKinesisStreamsOutput :: Lens' KinesisAnalyticsV2ApplicationOutputOutput (Maybe KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput)
+kavaooKinesisStreamsOutput = lens _kinesisAnalyticsV2ApplicationOutputOutputKinesisStreamsOutput (\s a -> s { _kinesisAnalyticsV2ApplicationOutputOutputKinesisStreamsOutput = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html#cfn-kinesisanalyticsv2-applicationoutput-output-lambdaoutput
+kavaooLambdaOutput :: Lens' KinesisAnalyticsV2ApplicationOutputOutput (Maybe KinesisAnalyticsV2ApplicationOutputLambdaOutput)
+kavaooLambdaOutput = lens _kinesisAnalyticsV2ApplicationOutputOutputLambdaOutput (\s a -> s { _kinesisAnalyticsV2ApplicationOutputOutputLambdaOutput = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html#cfn-kinesisanalyticsv2-applicationoutput-output-name
+kavaooName :: Lens' KinesisAnalyticsV2ApplicationOutputOutput (Maybe (Val Text))
+kavaooName = lens _kinesisAnalyticsV2ApplicationOutputOutputName (\s a -> s { _kinesisAnalyticsV2ApplicationOutputOutputName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationParallelismConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationParallelismConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationParallelismConfiguration.hs
@@ -0,0 +1,70 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-parallelismconfiguration.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationParallelismConfiguration where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationParallelismConfiguration. See
+-- 'kinesisAnalyticsV2ApplicationParallelismConfiguration' for a more
+-- convenient constructor.
+data KinesisAnalyticsV2ApplicationParallelismConfiguration =
+  KinesisAnalyticsV2ApplicationParallelismConfiguration
+  { _kinesisAnalyticsV2ApplicationParallelismConfigurationAutoScalingEnabled :: Maybe (Val Bool)
+  , _kinesisAnalyticsV2ApplicationParallelismConfigurationConfigurationType :: Val Text
+  , _kinesisAnalyticsV2ApplicationParallelismConfigurationParallelism :: Maybe (Val Integer)
+  , _kinesisAnalyticsV2ApplicationParallelismConfigurationParallelismPerKPU :: Maybe (Val Integer)
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationParallelismConfiguration where
+  toJSON KinesisAnalyticsV2ApplicationParallelismConfiguration{..} =
+    object $
+    catMaybes
+    [ fmap (("AutoScalingEnabled",) . toJSON . fmap Bool') _kinesisAnalyticsV2ApplicationParallelismConfigurationAutoScalingEnabled
+    , (Just . ("ConfigurationType",) . toJSON) _kinesisAnalyticsV2ApplicationParallelismConfigurationConfigurationType
+    , fmap (("Parallelism",) . toJSON . fmap Integer') _kinesisAnalyticsV2ApplicationParallelismConfigurationParallelism
+    , fmap (("ParallelismPerKPU",) . toJSON . fmap Integer') _kinesisAnalyticsV2ApplicationParallelismConfigurationParallelismPerKPU
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationParallelismConfiguration where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationParallelismConfiguration <$>
+      fmap (fmap (fmap unBool')) (obj .:? "AutoScalingEnabled") <*>
+      (obj .: "ConfigurationType") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "Parallelism") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "ParallelismPerKPU")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationParallelismConfiguration'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationParallelismConfiguration
+  :: Val Text -- ^ 'kavapcConfigurationType'
+  -> KinesisAnalyticsV2ApplicationParallelismConfiguration
+kinesisAnalyticsV2ApplicationParallelismConfiguration configurationTypearg =
+  KinesisAnalyticsV2ApplicationParallelismConfiguration
+  { _kinesisAnalyticsV2ApplicationParallelismConfigurationAutoScalingEnabled = Nothing
+  , _kinesisAnalyticsV2ApplicationParallelismConfigurationConfigurationType = configurationTypearg
+  , _kinesisAnalyticsV2ApplicationParallelismConfigurationParallelism = Nothing
+  , _kinesisAnalyticsV2ApplicationParallelismConfigurationParallelismPerKPU = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-parallelismconfiguration.html#cfn-kinesisanalyticsv2-application-parallelismconfiguration-autoscalingenabled
+kavapcAutoScalingEnabled :: Lens' KinesisAnalyticsV2ApplicationParallelismConfiguration (Maybe (Val Bool))
+kavapcAutoScalingEnabled = lens _kinesisAnalyticsV2ApplicationParallelismConfigurationAutoScalingEnabled (\s a -> s { _kinesisAnalyticsV2ApplicationParallelismConfigurationAutoScalingEnabled = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-parallelismconfiguration.html#cfn-kinesisanalyticsv2-application-parallelismconfiguration-configurationtype
+kavapcConfigurationType :: Lens' KinesisAnalyticsV2ApplicationParallelismConfiguration (Val Text)
+kavapcConfigurationType = lens _kinesisAnalyticsV2ApplicationParallelismConfigurationConfigurationType (\s a -> s { _kinesisAnalyticsV2ApplicationParallelismConfigurationConfigurationType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-parallelismconfiguration.html#cfn-kinesisanalyticsv2-application-parallelismconfiguration-parallelism
+kavapcParallelism :: Lens' KinesisAnalyticsV2ApplicationParallelismConfiguration (Maybe (Val Integer))
+kavapcParallelism = lens _kinesisAnalyticsV2ApplicationParallelismConfigurationParallelism (\s a -> s { _kinesisAnalyticsV2ApplicationParallelismConfigurationParallelism = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-parallelismconfiguration.html#cfn-kinesisanalyticsv2-application-parallelismconfiguration-parallelismperkpu
+kavapcParallelismPerKPU :: Lens' KinesisAnalyticsV2ApplicationParallelismConfiguration (Maybe (Val Integer))
+kavapcParallelismPerKPU = lens _kinesisAnalyticsV2ApplicationParallelismConfigurationParallelismPerKPU (\s a -> s { _kinesisAnalyticsV2ApplicationParallelismConfigurationParallelismPerKPU = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationPropertyGroup.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationPropertyGroup.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationPropertyGroup.hs
@@ -0,0 +1,52 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-propertygroup.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationPropertyGroup where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for KinesisAnalyticsV2ApplicationPropertyGroup.
+-- See 'kinesisAnalyticsV2ApplicationPropertyGroup' for a more convenient
+-- constructor.
+data KinesisAnalyticsV2ApplicationPropertyGroup =
+  KinesisAnalyticsV2ApplicationPropertyGroup
+  { _kinesisAnalyticsV2ApplicationPropertyGroupPropertyGroupId :: Maybe (Val Text)
+  , _kinesisAnalyticsV2ApplicationPropertyGroupPropertyMap :: Maybe Object
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationPropertyGroup where
+  toJSON KinesisAnalyticsV2ApplicationPropertyGroup{..} =
+    object $
+    catMaybes
+    [ fmap (("PropertyGroupId",) . toJSON) _kinesisAnalyticsV2ApplicationPropertyGroupPropertyGroupId
+    , fmap (("PropertyMap",) . toJSON) _kinesisAnalyticsV2ApplicationPropertyGroupPropertyMap
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationPropertyGroup where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationPropertyGroup <$>
+      (obj .:? "PropertyGroupId") <*>
+      (obj .:? "PropertyMap")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationPropertyGroup' containing
+-- required fields as arguments.
+kinesisAnalyticsV2ApplicationPropertyGroup
+  :: KinesisAnalyticsV2ApplicationPropertyGroup
+kinesisAnalyticsV2ApplicationPropertyGroup  =
+  KinesisAnalyticsV2ApplicationPropertyGroup
+  { _kinesisAnalyticsV2ApplicationPropertyGroupPropertyGroupId = Nothing
+  , _kinesisAnalyticsV2ApplicationPropertyGroupPropertyMap = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-propertygroup.html#cfn-kinesisanalyticsv2-application-propertygroup-propertygroupid
+kavapgPropertyGroupId :: Lens' KinesisAnalyticsV2ApplicationPropertyGroup (Maybe (Val Text))
+kavapgPropertyGroupId = lens _kinesisAnalyticsV2ApplicationPropertyGroupPropertyGroupId (\s a -> s { _kinesisAnalyticsV2ApplicationPropertyGroupPropertyGroupId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-propertygroup.html#cfn-kinesisanalyticsv2-application-propertygroup-propertymap
+kavapgPropertyMap :: Lens' KinesisAnalyticsV2ApplicationPropertyGroup (Maybe Object)
+kavapgPropertyMap = lens _kinesisAnalyticsV2ApplicationPropertyGroupPropertyMap (\s a -> s { _kinesisAnalyticsV2ApplicationPropertyGroupPropertyMap = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationRecordColumn.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationRecordColumn.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationRecordColumn.hs
@@ -0,0 +1,62 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordcolumn.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationRecordColumn where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for KinesisAnalyticsV2ApplicationRecordColumn.
+-- See 'kinesisAnalyticsV2ApplicationRecordColumn' for a more convenient
+-- constructor.
+data KinesisAnalyticsV2ApplicationRecordColumn =
+  KinesisAnalyticsV2ApplicationRecordColumn
+  { _kinesisAnalyticsV2ApplicationRecordColumnMapping :: Maybe (Val Text)
+  , _kinesisAnalyticsV2ApplicationRecordColumnName :: Val Text
+  , _kinesisAnalyticsV2ApplicationRecordColumnSqlType :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationRecordColumn where
+  toJSON KinesisAnalyticsV2ApplicationRecordColumn{..} =
+    object $
+    catMaybes
+    [ fmap (("Mapping",) . toJSON) _kinesisAnalyticsV2ApplicationRecordColumnMapping
+    , (Just . ("Name",) . toJSON) _kinesisAnalyticsV2ApplicationRecordColumnName
+    , (Just . ("SqlType",) . toJSON) _kinesisAnalyticsV2ApplicationRecordColumnSqlType
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationRecordColumn where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationRecordColumn <$>
+      (obj .:? "Mapping") <*>
+      (obj .: "Name") <*>
+      (obj .: "SqlType")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationRecordColumn' containing
+-- required fields as arguments.
+kinesisAnalyticsV2ApplicationRecordColumn
+  :: Val Text -- ^ 'kavarcName'
+  -> Val Text -- ^ 'kavarcSqlType'
+  -> KinesisAnalyticsV2ApplicationRecordColumn
+kinesisAnalyticsV2ApplicationRecordColumn namearg sqlTypearg =
+  KinesisAnalyticsV2ApplicationRecordColumn
+  { _kinesisAnalyticsV2ApplicationRecordColumnMapping = Nothing
+  , _kinesisAnalyticsV2ApplicationRecordColumnName = namearg
+  , _kinesisAnalyticsV2ApplicationRecordColumnSqlType = sqlTypearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordcolumn.html#cfn-kinesisanalyticsv2-application-recordcolumn-mapping
+kavarcMapping :: Lens' KinesisAnalyticsV2ApplicationRecordColumn (Maybe (Val Text))
+kavarcMapping = lens _kinesisAnalyticsV2ApplicationRecordColumnMapping (\s a -> s { _kinesisAnalyticsV2ApplicationRecordColumnMapping = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordcolumn.html#cfn-kinesisanalyticsv2-application-recordcolumn-name
+kavarcName :: Lens' KinesisAnalyticsV2ApplicationRecordColumn (Val Text)
+kavarcName = lens _kinesisAnalyticsV2ApplicationRecordColumnName (\s a -> s { _kinesisAnalyticsV2ApplicationRecordColumnName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordcolumn.html#cfn-kinesisanalyticsv2-application-recordcolumn-sqltype
+kavarcSqlType :: Lens' KinesisAnalyticsV2ApplicationRecordColumn (Val Text)
+kavarcSqlType = lens _kinesisAnalyticsV2ApplicationRecordColumnSqlType (\s a -> s { _kinesisAnalyticsV2ApplicationRecordColumnSqlType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationRecordFormat.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationRecordFormat.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationRecordFormat.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordformat.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationRecordFormat where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationMappingParameters
+
+-- | Full data type definition for KinesisAnalyticsV2ApplicationRecordFormat.
+-- See 'kinesisAnalyticsV2ApplicationRecordFormat' for a more convenient
+-- constructor.
+data KinesisAnalyticsV2ApplicationRecordFormat =
+  KinesisAnalyticsV2ApplicationRecordFormat
+  { _kinesisAnalyticsV2ApplicationRecordFormatMappingParameters :: Maybe KinesisAnalyticsV2ApplicationMappingParameters
+  , _kinesisAnalyticsV2ApplicationRecordFormatRecordFormatType :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationRecordFormat where
+  toJSON KinesisAnalyticsV2ApplicationRecordFormat{..} =
+    object $
+    catMaybes
+    [ fmap (("MappingParameters",) . toJSON) _kinesisAnalyticsV2ApplicationRecordFormatMappingParameters
+    , (Just . ("RecordFormatType",) . toJSON) _kinesisAnalyticsV2ApplicationRecordFormatRecordFormatType
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationRecordFormat where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationRecordFormat <$>
+      (obj .:? "MappingParameters") <*>
+      (obj .: "RecordFormatType")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationRecordFormat' containing
+-- required fields as arguments.
+kinesisAnalyticsV2ApplicationRecordFormat
+  :: Val Text -- ^ 'kavarfRecordFormatType'
+  -> KinesisAnalyticsV2ApplicationRecordFormat
+kinesisAnalyticsV2ApplicationRecordFormat recordFormatTypearg =
+  KinesisAnalyticsV2ApplicationRecordFormat
+  { _kinesisAnalyticsV2ApplicationRecordFormatMappingParameters = Nothing
+  , _kinesisAnalyticsV2ApplicationRecordFormatRecordFormatType = recordFormatTypearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordformat.html#cfn-kinesisanalyticsv2-application-recordformat-mappingparameters
+kavarfMappingParameters :: Lens' KinesisAnalyticsV2ApplicationRecordFormat (Maybe KinesisAnalyticsV2ApplicationMappingParameters)
+kavarfMappingParameters = lens _kinesisAnalyticsV2ApplicationRecordFormatMappingParameters (\s a -> s { _kinesisAnalyticsV2ApplicationRecordFormatMappingParameters = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordformat.html#cfn-kinesisanalyticsv2-application-recordformat-recordformattype
+kavarfRecordFormatType :: Lens' KinesisAnalyticsV2ApplicationRecordFormat (Val Text)
+kavarfRecordFormatType = lens _kinesisAnalyticsV2ApplicationRecordFormatRecordFormatType (\s a -> s { _kinesisAnalyticsV2ApplicationRecordFormatRecordFormatType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters.hs
@@ -0,0 +1,56 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-csvmappingparameters.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters. See
+-- 'kinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters'
+-- for a more convenient constructor.
+data KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters =
+  KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters
+  { _kinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParametersRecordColumnDelimiter :: Val Text
+  , _kinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParametersRecordRowDelimiter :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters where
+  toJSON KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters{..} =
+    object $
+    catMaybes
+    [ (Just . ("RecordColumnDelimiter",) . toJSON) _kinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParametersRecordColumnDelimiter
+    , (Just . ("RecordRowDelimiter",) . toJSON) _kinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParametersRecordRowDelimiter
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters <$>
+      (obj .: "RecordColumnDelimiter") <*>
+      (obj .: "RecordRowDelimiter")
+  parseJSON _ = mempty
+
+-- | Constructor for
+-- 'KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters
+  :: Val Text -- ^ 'kavardscsvmpRecordColumnDelimiter'
+  -> Val Text -- ^ 'kavardscsvmpRecordRowDelimiter'
+  -> KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters
+kinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters recordColumnDelimiterarg recordRowDelimiterarg =
+  KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters
+  { _kinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParametersRecordColumnDelimiter = recordColumnDelimiterarg
+  , _kinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParametersRecordRowDelimiter = recordRowDelimiterarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-csvmappingparameters.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-csvmappingparameters-recordcolumndelimiter
+kavardscsvmpRecordColumnDelimiter :: Lens' KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters (Val Text)
+kavardscsvmpRecordColumnDelimiter = lens _kinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParametersRecordColumnDelimiter (\s a -> s { _kinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParametersRecordColumnDelimiter = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-csvmappingparameters.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-csvmappingparameters-recordrowdelimiter
+kavardscsvmpRecordRowDelimiter :: Lens' KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters (Val Text)
+kavardscsvmpRecordRowDelimiter = lens _kinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParametersRecordRowDelimiter (\s a -> s { _kinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParametersRecordRowDelimiter = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-jsonmappingparameters.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters.
+-- See
+-- 'kinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters'
+-- for a more convenient constructor.
+data KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters =
+  KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters
+  { _kinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParametersRecordRowPath :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters where
+  toJSON KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters{..} =
+    object $
+    catMaybes
+    [ (Just . ("RecordRowPath",) . toJSON) _kinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParametersRecordRowPath
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters <$>
+      (obj .: "RecordRowPath")
+  parseJSON _ = mempty
+
+-- | Constructor for
+-- 'KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters
+  :: Val Text -- ^ 'kavardsjsonmpRecordRowPath'
+  -> KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters
+kinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters recordRowPatharg =
+  KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters
+  { _kinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParametersRecordRowPath = recordRowPatharg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-jsonmappingparameters.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-jsonmappingparameters-recordrowpath
+kavardsjsonmpRecordRowPath :: Lens' KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters (Val Text)
+kavardsjsonmpRecordRowPath = lens _kinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParametersRecordRowPath (\s a -> s { _kinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParametersRecordRowPath = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters.hs
@@ -0,0 +1,55 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-mappingparameters.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters. See
+-- 'kinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters' for a
+-- more convenient constructor.
+data KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters =
+  KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters
+  { _kinesisAnalyticsV2ApplicationReferenceDataSourceMappingParametersCSVMappingParameters :: Maybe KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters
+  , _kinesisAnalyticsV2ApplicationReferenceDataSourceMappingParametersJSONMappingParameters :: Maybe KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters where
+  toJSON KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters{..} =
+    object $
+    catMaybes
+    [ fmap (("CSVMappingParameters",) . toJSON) _kinesisAnalyticsV2ApplicationReferenceDataSourceMappingParametersCSVMappingParameters
+    , fmap (("JSONMappingParameters",) . toJSON) _kinesisAnalyticsV2ApplicationReferenceDataSourceMappingParametersJSONMappingParameters
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters <$>
+      (obj .:? "CSVMappingParameters") <*>
+      (obj .:? "JSONMappingParameters")
+  parseJSON _ = mempty
+
+-- | Constructor for
+-- 'KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters
+  :: KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters
+kinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters  =
+  KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters
+  { _kinesisAnalyticsV2ApplicationReferenceDataSourceMappingParametersCSVMappingParameters = Nothing
+  , _kinesisAnalyticsV2ApplicationReferenceDataSourceMappingParametersJSONMappingParameters = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-mappingparameters.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-mappingparameters-csvmappingparameters
+kavardsmpCSVMappingParameters :: Lens' KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters (Maybe KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters)
+kavardsmpCSVMappingParameters = lens _kinesisAnalyticsV2ApplicationReferenceDataSourceMappingParametersCSVMappingParameters (\s a -> s { _kinesisAnalyticsV2ApplicationReferenceDataSourceMappingParametersCSVMappingParameters = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-mappingparameters.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-mappingparameters-jsonmappingparameters
+kavardsmpJSONMappingParameters :: Lens' KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters (Maybe KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters)
+kavardsmpJSONMappingParameters = lens _kinesisAnalyticsV2ApplicationReferenceDataSourceMappingParametersJSONMappingParameters (\s a -> s { _kinesisAnalyticsV2ApplicationReferenceDataSourceMappingParametersJSONMappingParameters = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn.hs
@@ -0,0 +1,64 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn. See
+-- 'kinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn' for a more
+-- convenient constructor.
+data KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn =
+  KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn
+  { _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumnMapping :: Maybe (Val Text)
+  , _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumnName :: Val Text
+  , _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumnSqlType :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn where
+  toJSON KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn{..} =
+    object $
+    catMaybes
+    [ fmap (("Mapping",) . toJSON) _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumnMapping
+    , (Just . ("Name",) . toJSON) _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumnName
+    , (Just . ("SqlType",) . toJSON) _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumnSqlType
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn <$>
+      (obj .:? "Mapping") <*>
+      (obj .: "Name") <*>
+      (obj .: "SqlType")
+  parseJSON _ = mempty
+
+-- | Constructor for
+-- 'KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn' containing
+-- required fields as arguments.
+kinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn
+  :: Val Text -- ^ 'kavardsrcName'
+  -> Val Text -- ^ 'kavardsrcSqlType'
+  -> KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn
+kinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn namearg sqlTypearg =
+  KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn
+  { _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumnMapping = Nothing
+  , _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumnName = namearg
+  , _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumnSqlType = sqlTypearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn-mapping
+kavardsrcMapping :: Lens' KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn (Maybe (Val Text))
+kavardsrcMapping = lens _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumnMapping (\s a -> s { _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumnMapping = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn-name
+kavardsrcName :: Lens' KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn (Val Text)
+kavardsrcName = lens _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumnName (\s a -> s { _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumnName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn-sqltype
+kavardsrcSqlType :: Lens' KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn (Val Text)
+kavardsrcSqlType = lens _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumnSqlType (\s a -> s { _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumnSqlType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat.hs
@@ -0,0 +1,55 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordformat.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat. See
+-- 'kinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat' for a more
+-- convenient constructor.
+data KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat =
+  KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat
+  { _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormatMappingParameters :: Maybe KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters
+  , _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormatRecordFormatType :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat where
+  toJSON KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat{..} =
+    object $
+    catMaybes
+    [ fmap (("MappingParameters",) . toJSON) _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormatMappingParameters
+    , (Just . ("RecordFormatType",) . toJSON) _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormatRecordFormatType
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat <$>
+      (obj .:? "MappingParameters") <*>
+      (obj .: "RecordFormatType")
+  parseJSON _ = mempty
+
+-- | Constructor for
+-- 'KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat' containing
+-- required fields as arguments.
+kinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat
+  :: Val Text -- ^ 'kavardsrfRecordFormatType'
+  -> KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat
+kinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat recordFormatTypearg =
+  KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat
+  { _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormatMappingParameters = Nothing
+  , _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormatRecordFormatType = recordFormatTypearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordformat.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-recordformat-mappingparameters
+kavardsrfMappingParameters :: Lens' KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat (Maybe KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters)
+kavardsrfMappingParameters = lens _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormatMappingParameters (\s a -> s { _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormatMappingParameters = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordformat.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-recordformat-recordformattype
+kavardsrfRecordFormatType :: Lens' KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat (Val Text)
+kavardsrfRecordFormatType = lens _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormatRecordFormatType (\s a -> s { _kinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormatRecordFormatType = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource.hs
@@ -0,0 +1,64 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource. See
+-- 'kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource' for
+-- a more convenient constructor.
+data KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource =
+  KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource
+  { _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSourceReferenceSchema :: KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema
+  , _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSourceS3ReferenceDataSource :: Maybe KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource
+  , _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSourceTableName :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource where
+  toJSON KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource{..} =
+    object $
+    catMaybes
+    [ (Just . ("ReferenceSchema",) . toJSON) _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSourceReferenceSchema
+    , fmap (("S3ReferenceDataSource",) . toJSON) _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSourceS3ReferenceDataSource
+    , fmap (("TableName",) . toJSON) _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSourceTableName
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource <$>
+      (obj .: "ReferenceSchema") <*>
+      (obj .:? "S3ReferenceDataSource") <*>
+      (obj .:? "TableName")
+  parseJSON _ = mempty
+
+-- | Constructor for
+-- 'KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource
+  :: KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema -- ^ 'kavardsrdsReferenceSchema'
+  -> KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource
+kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource referenceSchemaarg =
+  KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource
+  { _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSourceReferenceSchema = referenceSchemaarg
+  , _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSourceS3ReferenceDataSource = Nothing
+  , _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSourceTableName = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource-referenceschema
+kavardsrdsReferenceSchema :: Lens' KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema
+kavardsrdsReferenceSchema = lens _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSourceReferenceSchema (\s a -> s { _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSourceReferenceSchema = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource-s3referencedatasource
+kavardsrdsS3ReferenceDataSource :: Lens' KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource (Maybe KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource)
+kavardsrdsS3ReferenceDataSource = lens _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSourceS3ReferenceDataSource (\s a -> s { _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSourceS3ReferenceDataSource = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource-tablename
+kavardsrdsTableName :: Lens' KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource (Maybe (Val Text))
+kavardsrdsTableName = lens _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSourceTableName (\s a -> s { _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSourceTableName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema.hs
@@ -0,0 +1,65 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referenceschema.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema. See
+-- 'kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema' for a
+-- more convenient constructor.
+data KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema =
+  KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema
+  { _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchemaRecordColumns :: [KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn]
+  , _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchemaRecordEncoding :: Maybe (Val Text)
+  , _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchemaRecordFormat :: KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema where
+  toJSON KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema{..} =
+    object $
+    catMaybes
+    [ (Just . ("RecordColumns",) . toJSON) _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchemaRecordColumns
+    , fmap (("RecordEncoding",) . toJSON) _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchemaRecordEncoding
+    , (Just . ("RecordFormat",) . toJSON) _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchemaRecordFormat
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema <$>
+      (obj .: "RecordColumns") <*>
+      (obj .:? "RecordEncoding") <*>
+      (obj .: "RecordFormat")
+  parseJSON _ = mempty
+
+-- | Constructor for
+-- 'KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema
+  :: [KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn] -- ^ 'kavardsrsRecordColumns'
+  -> KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat -- ^ 'kavardsrsRecordFormat'
+  -> KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema
+kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema recordColumnsarg recordFormatarg =
+  KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema
+  { _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchemaRecordColumns = recordColumnsarg
+  , _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchemaRecordEncoding = Nothing
+  , _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchemaRecordFormat = recordFormatarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referenceschema.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referenceschema-recordcolumns
+kavardsrsRecordColumns :: Lens' KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema [KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn]
+kavardsrsRecordColumns = lens _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchemaRecordColumns (\s a -> s { _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchemaRecordColumns = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referenceschema.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referenceschema-recordencoding
+kavardsrsRecordEncoding :: Lens' KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema (Maybe (Val Text))
+kavardsrsRecordEncoding = lens _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchemaRecordEncoding (\s a -> s { _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchemaRecordEncoding = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referenceschema.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referenceschema-recordformat
+kavardsrsRecordFormat :: Lens' KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat
+kavardsrsRecordFormat = lens _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchemaRecordFormat (\s a -> s { _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchemaRecordFormat = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource.hs
@@ -0,0 +1,57 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-s3referencedatasource.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource.
+-- See
+-- 'kinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource'
+-- for a more convenient constructor.
+data KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource =
+  KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource
+  { _kinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSourceBucketARN :: Val Text
+  , _kinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSourceFileKey :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource where
+  toJSON KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource{..} =
+    object $
+    catMaybes
+    [ (Just . ("BucketARN",) . toJSON) _kinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSourceBucketARN
+    , (Just . ("FileKey",) . toJSON) _kinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSourceFileKey
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource <$>
+      (obj .: "BucketARN") <*>
+      (obj .: "FileKey")
+  parseJSON _ = mempty
+
+-- | Constructor for
+-- 'KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource
+  :: Val Text -- ^ 'kavardssrdsBucketARN'
+  -> Val Text -- ^ 'kavardssrdsFileKey'
+  -> KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource
+kinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource bucketARNarg fileKeyarg =
+  KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource
+  { _kinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSourceBucketARN = bucketARNarg
+  , _kinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSourceFileKey = fileKeyarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-s3referencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-s3referencedatasource-bucketarn
+kavardssrdsBucketARN :: Lens' KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource (Val Text)
+kavardssrdsBucketARN = lens _kinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSourceBucketARN (\s a -> s { _kinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSourceBucketARN = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-s3referencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-s3referencedatasource-filekey
+kavardssrdsFileKey :: Lens' KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource (Val Text)
+kavardssrdsFileKey = lens _kinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSourceFileKey (\s a -> s { _kinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSourceFileKey = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationS3ContentLocation.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationS3ContentLocation.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationS3ContentLocation.hs
@@ -0,0 +1,61 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-s3contentlocation.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationS3ContentLocation where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationS3ContentLocation. See
+-- 'kinesisAnalyticsV2ApplicationS3ContentLocation' for a more convenient
+-- constructor.
+data KinesisAnalyticsV2ApplicationS3ContentLocation =
+  KinesisAnalyticsV2ApplicationS3ContentLocation
+  { _kinesisAnalyticsV2ApplicationS3ContentLocationBucketARN :: Maybe (Val Text)
+  , _kinesisAnalyticsV2ApplicationS3ContentLocationFileKey :: Maybe (Val Text)
+  , _kinesisAnalyticsV2ApplicationS3ContentLocationObjectVersion :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationS3ContentLocation where
+  toJSON KinesisAnalyticsV2ApplicationS3ContentLocation{..} =
+    object $
+    catMaybes
+    [ fmap (("BucketARN",) . toJSON) _kinesisAnalyticsV2ApplicationS3ContentLocationBucketARN
+    , fmap (("FileKey",) . toJSON) _kinesisAnalyticsV2ApplicationS3ContentLocationFileKey
+    , fmap (("ObjectVersion",) . toJSON) _kinesisAnalyticsV2ApplicationS3ContentLocationObjectVersion
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationS3ContentLocation where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationS3ContentLocation <$>
+      (obj .:? "BucketARN") <*>
+      (obj .:? "FileKey") <*>
+      (obj .:? "ObjectVersion")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationS3ContentLocation'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationS3ContentLocation
+  :: KinesisAnalyticsV2ApplicationS3ContentLocation
+kinesisAnalyticsV2ApplicationS3ContentLocation  =
+  KinesisAnalyticsV2ApplicationS3ContentLocation
+  { _kinesisAnalyticsV2ApplicationS3ContentLocationBucketARN = Nothing
+  , _kinesisAnalyticsV2ApplicationS3ContentLocationFileKey = Nothing
+  , _kinesisAnalyticsV2ApplicationS3ContentLocationObjectVersion = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-s3contentlocation.html#cfn-kinesisanalyticsv2-application-s3contentlocation-bucketarn
+kavasclBucketARN :: Lens' KinesisAnalyticsV2ApplicationS3ContentLocation (Maybe (Val Text))
+kavasclBucketARN = lens _kinesisAnalyticsV2ApplicationS3ContentLocationBucketARN (\s a -> s { _kinesisAnalyticsV2ApplicationS3ContentLocationBucketARN = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-s3contentlocation.html#cfn-kinesisanalyticsv2-application-s3contentlocation-filekey
+kavasclFileKey :: Lens' KinesisAnalyticsV2ApplicationS3ContentLocation (Maybe (Val Text))
+kavasclFileKey = lens _kinesisAnalyticsV2ApplicationS3ContentLocationFileKey (\s a -> s { _kinesisAnalyticsV2ApplicationS3ContentLocationFileKey = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-s3contentlocation.html#cfn-kinesisanalyticsv2-application-s3contentlocation-objectversion
+kavasclObjectVersion :: Lens' KinesisAnalyticsV2ApplicationS3ContentLocation (Maybe (Val Text))
+kavasclObjectVersion = lens _kinesisAnalyticsV2ApplicationS3ContentLocationObjectVersion (\s a -> s { _kinesisAnalyticsV2ApplicationS3ContentLocationObjectVersion = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationSqlApplicationConfiguration.hs b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationSqlApplicationConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsV2ApplicationSqlApplicationConfiguration.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-sqlapplicationconfiguration.html
+
+module Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationSqlApplicationConfiguration where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationInput
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationSqlApplicationConfiguration. See
+-- 'kinesisAnalyticsV2ApplicationSqlApplicationConfiguration' for a more
+-- convenient constructor.
+data KinesisAnalyticsV2ApplicationSqlApplicationConfiguration =
+  KinesisAnalyticsV2ApplicationSqlApplicationConfiguration
+  { _kinesisAnalyticsV2ApplicationSqlApplicationConfigurationInputs :: Maybe [KinesisAnalyticsV2ApplicationInput]
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationSqlApplicationConfiguration where
+  toJSON KinesisAnalyticsV2ApplicationSqlApplicationConfiguration{..} =
+    object $
+    catMaybes
+    [ fmap (("Inputs",) . toJSON) _kinesisAnalyticsV2ApplicationSqlApplicationConfigurationInputs
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationSqlApplicationConfiguration where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationSqlApplicationConfiguration <$>
+      (obj .:? "Inputs")
+  parseJSON _ = mempty
+
+-- | Constructor for
+-- 'KinesisAnalyticsV2ApplicationSqlApplicationConfiguration' containing
+-- required fields as arguments.
+kinesisAnalyticsV2ApplicationSqlApplicationConfiguration
+  :: KinesisAnalyticsV2ApplicationSqlApplicationConfiguration
+kinesisAnalyticsV2ApplicationSqlApplicationConfiguration  =
+  KinesisAnalyticsV2ApplicationSqlApplicationConfiguration
+  { _kinesisAnalyticsV2ApplicationSqlApplicationConfigurationInputs = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-sqlapplicationconfiguration.html#cfn-kinesisanalyticsv2-application-sqlapplicationconfiguration-inputs
+kavasacInputs :: Lens' KinesisAnalyticsV2ApplicationSqlApplicationConfiguration (Maybe [KinesisAnalyticsV2ApplicationInput])
+kavasacInputs = lens _kinesisAnalyticsV2ApplicationSqlApplicationConfigurationInputs (\s a -> s { _kinesisAnalyticsV2ApplicationSqlApplicationConfigurationInputs = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/RoboMakerRobotApplicationRobotSoftwareSuite.hs b/library-gen/Stratosphere/ResourceProperties/RoboMakerRobotApplicationRobotSoftwareSuite.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/RoboMakerRobotApplicationRobotSoftwareSuite.hs
@@ -0,0 +1,55 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-robotsoftwaresuite.html
+
+module Stratosphere.ResourceProperties.RoboMakerRobotApplicationRobotSoftwareSuite where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- RoboMakerRobotApplicationRobotSoftwareSuite. See
+-- 'roboMakerRobotApplicationRobotSoftwareSuite' for a more convenient
+-- constructor.
+data RoboMakerRobotApplicationRobotSoftwareSuite =
+  RoboMakerRobotApplicationRobotSoftwareSuite
+  { _roboMakerRobotApplicationRobotSoftwareSuiteName :: Val Text
+  , _roboMakerRobotApplicationRobotSoftwareSuiteVersion :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON RoboMakerRobotApplicationRobotSoftwareSuite where
+  toJSON RoboMakerRobotApplicationRobotSoftwareSuite{..} =
+    object $
+    catMaybes
+    [ (Just . ("Name",) . toJSON) _roboMakerRobotApplicationRobotSoftwareSuiteName
+    , (Just . ("Version",) . toJSON) _roboMakerRobotApplicationRobotSoftwareSuiteVersion
+    ]
+
+instance FromJSON RoboMakerRobotApplicationRobotSoftwareSuite where
+  parseJSON (Object obj) =
+    RoboMakerRobotApplicationRobotSoftwareSuite <$>
+      (obj .: "Name") <*>
+      (obj .: "Version")
+  parseJSON _ = mempty
+
+-- | Constructor for 'RoboMakerRobotApplicationRobotSoftwareSuite' containing
+-- required fields as arguments.
+roboMakerRobotApplicationRobotSoftwareSuite
+  :: Val Text -- ^ 'rmrarssName'
+  -> Val Text -- ^ 'rmrarssVersion'
+  -> RoboMakerRobotApplicationRobotSoftwareSuite
+roboMakerRobotApplicationRobotSoftwareSuite namearg versionarg =
+  RoboMakerRobotApplicationRobotSoftwareSuite
+  { _roboMakerRobotApplicationRobotSoftwareSuiteName = namearg
+  , _roboMakerRobotApplicationRobotSoftwareSuiteVersion = versionarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-robotsoftwaresuite.html#cfn-robomaker-robotapplication-robotsoftwaresuite-name
+rmrarssName :: Lens' RoboMakerRobotApplicationRobotSoftwareSuite (Val Text)
+rmrarssName = lens _roboMakerRobotApplicationRobotSoftwareSuiteName (\s a -> s { _roboMakerRobotApplicationRobotSoftwareSuiteName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-robotsoftwaresuite.html#cfn-robomaker-robotapplication-robotsoftwaresuite-version
+rmrarssVersion :: Lens' RoboMakerRobotApplicationRobotSoftwareSuite (Val Text)
+rmrarssVersion = lens _roboMakerRobotApplicationRobotSoftwareSuiteVersion (\s a -> s { _roboMakerRobotApplicationRobotSoftwareSuiteVersion = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/RoboMakerRobotApplicationSourceConfig.hs b/library-gen/Stratosphere/ResourceProperties/RoboMakerRobotApplicationSourceConfig.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/RoboMakerRobotApplicationSourceConfig.hs
@@ -0,0 +1,63 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-sourceconfig.html
+
+module Stratosphere.ResourceProperties.RoboMakerRobotApplicationSourceConfig where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for RoboMakerRobotApplicationSourceConfig. See
+-- 'roboMakerRobotApplicationSourceConfig' for a more convenient
+-- constructor.
+data RoboMakerRobotApplicationSourceConfig =
+  RoboMakerRobotApplicationSourceConfig
+  { _roboMakerRobotApplicationSourceConfigArchitecture :: Val Text
+  , _roboMakerRobotApplicationSourceConfigS3Bucket :: Val Text
+  , _roboMakerRobotApplicationSourceConfigS3Key :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON RoboMakerRobotApplicationSourceConfig where
+  toJSON RoboMakerRobotApplicationSourceConfig{..} =
+    object $
+    catMaybes
+    [ (Just . ("Architecture",) . toJSON) _roboMakerRobotApplicationSourceConfigArchitecture
+    , (Just . ("S3Bucket",) . toJSON) _roboMakerRobotApplicationSourceConfigS3Bucket
+    , (Just . ("S3Key",) . toJSON) _roboMakerRobotApplicationSourceConfigS3Key
+    ]
+
+instance FromJSON RoboMakerRobotApplicationSourceConfig where
+  parseJSON (Object obj) =
+    RoboMakerRobotApplicationSourceConfig <$>
+      (obj .: "Architecture") <*>
+      (obj .: "S3Bucket") <*>
+      (obj .: "S3Key")
+  parseJSON _ = mempty
+
+-- | Constructor for 'RoboMakerRobotApplicationSourceConfig' containing
+-- required fields as arguments.
+roboMakerRobotApplicationSourceConfig
+  :: Val Text -- ^ 'rmrascArchitecture'
+  -> Val Text -- ^ 'rmrascS3Bucket'
+  -> Val Text -- ^ 'rmrascS3Key'
+  -> RoboMakerRobotApplicationSourceConfig
+roboMakerRobotApplicationSourceConfig architecturearg s3Bucketarg s3Keyarg =
+  RoboMakerRobotApplicationSourceConfig
+  { _roboMakerRobotApplicationSourceConfigArchitecture = architecturearg
+  , _roboMakerRobotApplicationSourceConfigS3Bucket = s3Bucketarg
+  , _roboMakerRobotApplicationSourceConfigS3Key = s3Keyarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-sourceconfig.html#cfn-robomaker-robotapplication-sourceconfig-architecture
+rmrascArchitecture :: Lens' RoboMakerRobotApplicationSourceConfig (Val Text)
+rmrascArchitecture = lens _roboMakerRobotApplicationSourceConfigArchitecture (\s a -> s { _roboMakerRobotApplicationSourceConfigArchitecture = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-sourceconfig.html#cfn-robomaker-robotapplication-sourceconfig-s3bucket
+rmrascS3Bucket :: Lens' RoboMakerRobotApplicationSourceConfig (Val Text)
+rmrascS3Bucket = lens _roboMakerRobotApplicationSourceConfigS3Bucket (\s a -> s { _roboMakerRobotApplicationSourceConfigS3Bucket = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-sourceconfig.html#cfn-robomaker-robotapplication-sourceconfig-s3key
+rmrascS3Key :: Lens' RoboMakerRobotApplicationSourceConfig (Val Text)
+rmrascS3Key = lens _roboMakerRobotApplicationSourceConfigS3Key (\s a -> s { _roboMakerRobotApplicationSourceConfigS3Key = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/RoboMakerSimulationApplicationRenderingEngine.hs b/library-gen/Stratosphere/ResourceProperties/RoboMakerSimulationApplicationRenderingEngine.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/RoboMakerSimulationApplicationRenderingEngine.hs
@@ -0,0 +1,55 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-renderingengine.html
+
+module Stratosphere.ResourceProperties.RoboMakerSimulationApplicationRenderingEngine where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- RoboMakerSimulationApplicationRenderingEngine. See
+-- 'roboMakerSimulationApplicationRenderingEngine' for a more convenient
+-- constructor.
+data RoboMakerSimulationApplicationRenderingEngine =
+  RoboMakerSimulationApplicationRenderingEngine
+  { _roboMakerSimulationApplicationRenderingEngineName :: Val Text
+  , _roboMakerSimulationApplicationRenderingEngineVersion :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON RoboMakerSimulationApplicationRenderingEngine where
+  toJSON RoboMakerSimulationApplicationRenderingEngine{..} =
+    object $
+    catMaybes
+    [ (Just . ("Name",) . toJSON) _roboMakerSimulationApplicationRenderingEngineName
+    , (Just . ("Version",) . toJSON) _roboMakerSimulationApplicationRenderingEngineVersion
+    ]
+
+instance FromJSON RoboMakerSimulationApplicationRenderingEngine where
+  parseJSON (Object obj) =
+    RoboMakerSimulationApplicationRenderingEngine <$>
+      (obj .: "Name") <*>
+      (obj .: "Version")
+  parseJSON _ = mempty
+
+-- | Constructor for 'RoboMakerSimulationApplicationRenderingEngine'
+-- containing required fields as arguments.
+roboMakerSimulationApplicationRenderingEngine
+  :: Val Text -- ^ 'rmsareName'
+  -> Val Text -- ^ 'rmsareVersion'
+  -> RoboMakerSimulationApplicationRenderingEngine
+roboMakerSimulationApplicationRenderingEngine namearg versionarg =
+  RoboMakerSimulationApplicationRenderingEngine
+  { _roboMakerSimulationApplicationRenderingEngineName = namearg
+  , _roboMakerSimulationApplicationRenderingEngineVersion = versionarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-renderingengine.html#cfn-robomaker-simulationapplication-renderingengine-name
+rmsareName :: Lens' RoboMakerSimulationApplicationRenderingEngine (Val Text)
+rmsareName = lens _roboMakerSimulationApplicationRenderingEngineName (\s a -> s { _roboMakerSimulationApplicationRenderingEngineName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-renderingengine.html#cfn-robomaker-simulationapplication-renderingengine-version
+rmsareVersion :: Lens' RoboMakerSimulationApplicationRenderingEngine (Val Text)
+rmsareVersion = lens _roboMakerSimulationApplicationRenderingEngineVersion (\s a -> s { _roboMakerSimulationApplicationRenderingEngineVersion = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/RoboMakerSimulationApplicationRobotSoftwareSuite.hs b/library-gen/Stratosphere/ResourceProperties/RoboMakerSimulationApplicationRobotSoftwareSuite.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/RoboMakerSimulationApplicationRobotSoftwareSuite.hs
@@ -0,0 +1,55 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-robotsoftwaresuite.html
+
+module Stratosphere.ResourceProperties.RoboMakerSimulationApplicationRobotSoftwareSuite where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- RoboMakerSimulationApplicationRobotSoftwareSuite. See
+-- 'roboMakerSimulationApplicationRobotSoftwareSuite' for a more convenient
+-- constructor.
+data RoboMakerSimulationApplicationRobotSoftwareSuite =
+  RoboMakerSimulationApplicationRobotSoftwareSuite
+  { _roboMakerSimulationApplicationRobotSoftwareSuiteName :: Val Text
+  , _roboMakerSimulationApplicationRobotSoftwareSuiteVersion :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON RoboMakerSimulationApplicationRobotSoftwareSuite where
+  toJSON RoboMakerSimulationApplicationRobotSoftwareSuite{..} =
+    object $
+    catMaybes
+    [ (Just . ("Name",) . toJSON) _roboMakerSimulationApplicationRobotSoftwareSuiteName
+    , (Just . ("Version",) . toJSON) _roboMakerSimulationApplicationRobotSoftwareSuiteVersion
+    ]
+
+instance FromJSON RoboMakerSimulationApplicationRobotSoftwareSuite where
+  parseJSON (Object obj) =
+    RoboMakerSimulationApplicationRobotSoftwareSuite <$>
+      (obj .: "Name") <*>
+      (obj .: "Version")
+  parseJSON _ = mempty
+
+-- | Constructor for 'RoboMakerSimulationApplicationRobotSoftwareSuite'
+-- containing required fields as arguments.
+roboMakerSimulationApplicationRobotSoftwareSuite
+  :: Val Text -- ^ 'rmsarssName'
+  -> Val Text -- ^ 'rmsarssVersion'
+  -> RoboMakerSimulationApplicationRobotSoftwareSuite
+roboMakerSimulationApplicationRobotSoftwareSuite namearg versionarg =
+  RoboMakerSimulationApplicationRobotSoftwareSuite
+  { _roboMakerSimulationApplicationRobotSoftwareSuiteName = namearg
+  , _roboMakerSimulationApplicationRobotSoftwareSuiteVersion = versionarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-robotsoftwaresuite.html#cfn-robomaker-simulationapplication-robotsoftwaresuite-name
+rmsarssName :: Lens' RoboMakerSimulationApplicationRobotSoftwareSuite (Val Text)
+rmsarssName = lens _roboMakerSimulationApplicationRobotSoftwareSuiteName (\s a -> s { _roboMakerSimulationApplicationRobotSoftwareSuiteName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-robotsoftwaresuite.html#cfn-robomaker-simulationapplication-robotsoftwaresuite-version
+rmsarssVersion :: Lens' RoboMakerSimulationApplicationRobotSoftwareSuite (Val Text)
+rmsarssVersion = lens _roboMakerSimulationApplicationRobotSoftwareSuiteVersion (\s a -> s { _roboMakerSimulationApplicationRobotSoftwareSuiteVersion = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/RoboMakerSimulationApplicationSimulationSoftwareSuite.hs b/library-gen/Stratosphere/ResourceProperties/RoboMakerSimulationApplicationSimulationSoftwareSuite.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/RoboMakerSimulationApplicationSimulationSoftwareSuite.hs
@@ -0,0 +1,55 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-simulationsoftwaresuite.html
+
+module Stratosphere.ResourceProperties.RoboMakerSimulationApplicationSimulationSoftwareSuite where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for
+-- RoboMakerSimulationApplicationSimulationSoftwareSuite. See
+-- 'roboMakerSimulationApplicationSimulationSoftwareSuite' for a more
+-- convenient constructor.
+data RoboMakerSimulationApplicationSimulationSoftwareSuite =
+  RoboMakerSimulationApplicationSimulationSoftwareSuite
+  { _roboMakerSimulationApplicationSimulationSoftwareSuiteName :: Val Text
+  , _roboMakerSimulationApplicationSimulationSoftwareSuiteVersion :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON RoboMakerSimulationApplicationSimulationSoftwareSuite where
+  toJSON RoboMakerSimulationApplicationSimulationSoftwareSuite{..} =
+    object $
+    catMaybes
+    [ (Just . ("Name",) . toJSON) _roboMakerSimulationApplicationSimulationSoftwareSuiteName
+    , (Just . ("Version",) . toJSON) _roboMakerSimulationApplicationSimulationSoftwareSuiteVersion
+    ]
+
+instance FromJSON RoboMakerSimulationApplicationSimulationSoftwareSuite where
+  parseJSON (Object obj) =
+    RoboMakerSimulationApplicationSimulationSoftwareSuite <$>
+      (obj .: "Name") <*>
+      (obj .: "Version")
+  parseJSON _ = mempty
+
+-- | Constructor for 'RoboMakerSimulationApplicationSimulationSoftwareSuite'
+-- containing required fields as arguments.
+roboMakerSimulationApplicationSimulationSoftwareSuite
+  :: Val Text -- ^ 'rmsasssName'
+  -> Val Text -- ^ 'rmsasssVersion'
+  -> RoboMakerSimulationApplicationSimulationSoftwareSuite
+roboMakerSimulationApplicationSimulationSoftwareSuite namearg versionarg =
+  RoboMakerSimulationApplicationSimulationSoftwareSuite
+  { _roboMakerSimulationApplicationSimulationSoftwareSuiteName = namearg
+  , _roboMakerSimulationApplicationSimulationSoftwareSuiteVersion = versionarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-simulationsoftwaresuite.html#cfn-robomaker-simulationapplication-simulationsoftwaresuite-name
+rmsasssName :: Lens' RoboMakerSimulationApplicationSimulationSoftwareSuite (Val Text)
+rmsasssName = lens _roboMakerSimulationApplicationSimulationSoftwareSuiteName (\s a -> s { _roboMakerSimulationApplicationSimulationSoftwareSuiteName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-simulationsoftwaresuite.html#cfn-robomaker-simulationapplication-simulationsoftwaresuite-version
+rmsasssVersion :: Lens' RoboMakerSimulationApplicationSimulationSoftwareSuite (Val Text)
+rmsasssVersion = lens _roboMakerSimulationApplicationSimulationSoftwareSuiteVersion (\s a -> s { _roboMakerSimulationApplicationSimulationSoftwareSuiteVersion = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/RoboMakerSimulationApplicationSourceConfig.hs b/library-gen/Stratosphere/ResourceProperties/RoboMakerSimulationApplicationSourceConfig.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/RoboMakerSimulationApplicationSourceConfig.hs
@@ -0,0 +1,63 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-sourceconfig.html
+
+module Stratosphere.ResourceProperties.RoboMakerSimulationApplicationSourceConfig where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for RoboMakerSimulationApplicationSourceConfig.
+-- See 'roboMakerSimulationApplicationSourceConfig' for a more convenient
+-- constructor.
+data RoboMakerSimulationApplicationSourceConfig =
+  RoboMakerSimulationApplicationSourceConfig
+  { _roboMakerSimulationApplicationSourceConfigArchitecture :: Val Text
+  , _roboMakerSimulationApplicationSourceConfigS3Bucket :: Val Text
+  , _roboMakerSimulationApplicationSourceConfigS3Key :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON RoboMakerSimulationApplicationSourceConfig where
+  toJSON RoboMakerSimulationApplicationSourceConfig{..} =
+    object $
+    catMaybes
+    [ (Just . ("Architecture",) . toJSON) _roboMakerSimulationApplicationSourceConfigArchitecture
+    , (Just . ("S3Bucket",) . toJSON) _roboMakerSimulationApplicationSourceConfigS3Bucket
+    , (Just . ("S3Key",) . toJSON) _roboMakerSimulationApplicationSourceConfigS3Key
+    ]
+
+instance FromJSON RoboMakerSimulationApplicationSourceConfig where
+  parseJSON (Object obj) =
+    RoboMakerSimulationApplicationSourceConfig <$>
+      (obj .: "Architecture") <*>
+      (obj .: "S3Bucket") <*>
+      (obj .: "S3Key")
+  parseJSON _ = mempty
+
+-- | Constructor for 'RoboMakerSimulationApplicationSourceConfig' containing
+-- required fields as arguments.
+roboMakerSimulationApplicationSourceConfig
+  :: Val Text -- ^ 'rmsascArchitecture'
+  -> Val Text -- ^ 'rmsascS3Bucket'
+  -> Val Text -- ^ 'rmsascS3Key'
+  -> RoboMakerSimulationApplicationSourceConfig
+roboMakerSimulationApplicationSourceConfig architecturearg s3Bucketarg s3Keyarg =
+  RoboMakerSimulationApplicationSourceConfig
+  { _roboMakerSimulationApplicationSourceConfigArchitecture = architecturearg
+  , _roboMakerSimulationApplicationSourceConfigS3Bucket = s3Bucketarg
+  , _roboMakerSimulationApplicationSourceConfigS3Key = s3Keyarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-sourceconfig.html#cfn-robomaker-simulationapplication-sourceconfig-architecture
+rmsascArchitecture :: Lens' RoboMakerSimulationApplicationSourceConfig (Val Text)
+rmsascArchitecture = lens _roboMakerSimulationApplicationSourceConfigArchitecture (\s a -> s { _roboMakerSimulationApplicationSourceConfigArchitecture = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-sourceconfig.html#cfn-robomaker-simulationapplication-sourceconfig-s3bucket
+rmsascS3Bucket :: Lens' RoboMakerSimulationApplicationSourceConfig (Val Text)
+rmsascS3Bucket = lens _roboMakerSimulationApplicationSourceConfigS3Bucket (\s a -> s { _roboMakerSimulationApplicationSourceConfigS3Bucket = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-sourceconfig.html#cfn-robomaker-simulationapplication-sourceconfig-s3key
+rmsascS3Key :: Lens' RoboMakerSimulationApplicationSourceConfig (Val Text)
+rmsascS3Key = lens _roboMakerSimulationApplicationSourceConfigS3Key (\s a -> s { _roboMakerSimulationApplicationSourceConfigS3Key = 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
@@ -33,6 +33,7 @@
   , resourceUpdatePolicy
   , resourceDependsOn
   , resourceMetadata
+  , resourceCondition
   , ResourceProperties (..)
   , DeletionPolicy (..)
   , Resources (..)
@@ -69,6 +70,15 @@
 import Stratosphere.Resources.ApiGatewayUsagePlan as X
 import Stratosphere.Resources.ApiGatewayUsagePlanKey as X
 import Stratosphere.Resources.ApiGatewayVpcLink as X
+import Stratosphere.Resources.ApiGatewayV2Api as X
+import Stratosphere.Resources.ApiGatewayV2Authorizer as X
+import Stratosphere.Resources.ApiGatewayV2Deployment as X
+import Stratosphere.Resources.ApiGatewayV2Integration as X
+import Stratosphere.Resources.ApiGatewayV2IntegrationResponse as X
+import Stratosphere.Resources.ApiGatewayV2Model as X
+import Stratosphere.Resources.ApiGatewayV2Route as X
+import Stratosphere.Resources.ApiGatewayV2RouteResponse as X
+import Stratosphere.Resources.ApiGatewayV2Stage as X
 import Stratosphere.Resources.AppStreamDirectoryConfig as X
 import Stratosphere.Resources.AppStreamFleet as X
 import Stratosphere.Resources.AppStreamImageBuilder as X
@@ -226,6 +236,7 @@
 import Stratosphere.Resources.ElasticsearchDomain as X
 import Stratosphere.Resources.EventsEventBusPolicy as X
 import Stratosphere.Resources.EventsRule as X
+import Stratosphere.Resources.FSxFileSystem as X
 import Stratosphere.Resources.GameLiftAlias as X
 import Stratosphere.Resources.GameLiftBuild as X
 import Stratosphere.Resources.GameLiftFleet as X
@@ -276,6 +287,10 @@
 import Stratosphere.Resources.KinesisAnalyticsApplication as X
 import Stratosphere.Resources.KinesisAnalyticsApplicationOutput as X
 import Stratosphere.Resources.KinesisAnalyticsApplicationReferenceDataSource as X
+import Stratosphere.Resources.KinesisAnalyticsV2Application as X
+import Stratosphere.Resources.KinesisAnalyticsV2ApplicationCloudWatchLoggingOption as X
+import Stratosphere.Resources.KinesisAnalyticsV2ApplicationOutput as X
+import Stratosphere.Resources.KinesisAnalyticsV2ApplicationReferenceDataSource as X
 import Stratosphere.Resources.KinesisFirehoseDeliveryStream as X
 import Stratosphere.Resources.LambdaAlias as X
 import Stratosphere.Resources.LambdaEventSourceMapping as X
@@ -302,6 +317,7 @@
 import Stratosphere.Resources.OpsWorksUserProfile as X
 import Stratosphere.Resources.OpsWorksVolume as X
 import Stratosphere.Resources.OpsWorksCMServer as X
+import Stratosphere.Resources.RAMResourceShare as X
 import Stratosphere.Resources.RDSDBCluster as X
 import Stratosphere.Resources.RDSDBClusterParameterGroup as X
 import Stratosphere.Resources.RDSDBInstance as X
@@ -316,6 +332,12 @@
 import Stratosphere.Resources.RedshiftClusterSecurityGroup as X
 import Stratosphere.Resources.RedshiftClusterSecurityGroupIngress as X
 import Stratosphere.Resources.RedshiftClusterSubnetGroup as X
+import Stratosphere.Resources.RoboMakerFleet as X
+import Stratosphere.Resources.RoboMakerRobot as X
+import Stratosphere.Resources.RoboMakerRobotApplication as X
+import Stratosphere.Resources.RoboMakerRobotApplicationVersion as X
+import Stratosphere.Resources.RoboMakerSimulationApplication as X
+import Stratosphere.Resources.RoboMakerSimulationApplicationVersion as X
 import Stratosphere.Resources.Route53HealthCheck as X
 import Stratosphere.Resources.Route53HostedZone as X
 import Stratosphere.Resources.Route53RecordSet as X
@@ -415,6 +437,10 @@
 import Stratosphere.ResourceProperties.ApiGatewayUsagePlanApiStage as X
 import Stratosphere.ResourceProperties.ApiGatewayUsagePlanQuotaSettings as X
 import Stratosphere.ResourceProperties.ApiGatewayUsagePlanThrottleSettings as X
+import Stratosphere.ResourceProperties.ApiGatewayV2RouteParameterConstraints as X
+import Stratosphere.ResourceProperties.ApiGatewayV2RouteResponseParameterConstraints as X
+import Stratosphere.ResourceProperties.ApiGatewayV2StageAccessLogSettings as X
+import Stratosphere.ResourceProperties.ApiGatewayV2StageRouteSettings as X
 import Stratosphere.ResourceProperties.AppStreamDirectoryConfigServiceAccountCredentials as X
 import Stratosphere.ResourceProperties.AppStreamFleetComputeCapacity as X
 import Stratosphere.ResourceProperties.AppStreamFleetDomainJoinInfo as X
@@ -514,6 +540,9 @@
 import Stratosphere.ResourceProperties.CloudTrailTrailDataResource as X
 import Stratosphere.ResourceProperties.CloudTrailTrailEventSelector as X
 import Stratosphere.ResourceProperties.CloudWatchAlarmDimension as X
+import Stratosphere.ResourceProperties.CloudWatchAlarmMetric as X
+import Stratosphere.ResourceProperties.CloudWatchAlarmMetricDataQuery as X
+import Stratosphere.ResourceProperties.CloudWatchAlarmMetricStat as X
 import Stratosphere.ResourceProperties.CodeBuildProjectArtifacts as X
 import Stratosphere.ResourceProperties.CodeBuildProjectCloudWatchLogsConfig as X
 import Stratosphere.ResourceProperties.CodeBuildProjectEnvironment as X
@@ -526,6 +555,7 @@
 import Stratosphere.ResourceProperties.CodeBuildProjectSource as X
 import Stratosphere.ResourceProperties.CodeBuildProjectSourceAuth as X
 import Stratosphere.ResourceProperties.CodeBuildProjectVpcConfig as X
+import Stratosphere.ResourceProperties.CodeBuildProjectWebhookFilter as X
 import Stratosphere.ResourceProperties.CodeCommitRepositoryRepositoryTrigger as X
 import Stratosphere.ResourceProperties.CodeDeployDeploymentConfigMinimumHealthyHosts as X
 import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupAlarm as X
@@ -637,13 +667,19 @@
 import Stratosphere.ResourceProperties.EC2InstanceSsmAssociation as X
 import Stratosphere.ResourceProperties.EC2InstanceVolume as X
 import Stratosphere.ResourceProperties.EC2LaunchTemplateBlockDeviceMapping as X
+import Stratosphere.ResourceProperties.EC2LaunchTemplateCapacityReservationSpecification as X
+import Stratosphere.ResourceProperties.EC2LaunchTemplateCapacityReservationTarget as X
+import Stratosphere.ResourceProperties.EC2LaunchTemplateCpuOptions as X
 import Stratosphere.ResourceProperties.EC2LaunchTemplateCreditSpecification as X
 import Stratosphere.ResourceProperties.EC2LaunchTemplateEbs as X
 import Stratosphere.ResourceProperties.EC2LaunchTemplateElasticGpuSpecification as X
+import Stratosphere.ResourceProperties.EC2LaunchTemplateHibernationOptions as X
 import Stratosphere.ResourceProperties.EC2LaunchTemplateIamInstanceProfile as X
 import Stratosphere.ResourceProperties.EC2LaunchTemplateInstanceMarketOptions as X
 import Stratosphere.ResourceProperties.EC2LaunchTemplateIpv6Add as X
 import Stratosphere.ResourceProperties.EC2LaunchTemplateLaunchTemplateData as X
+import Stratosphere.ResourceProperties.EC2LaunchTemplateLaunchTemplateElasticInferenceAccelerator as X
+import Stratosphere.ResourceProperties.EC2LaunchTemplateLicenseSpecification as X
 import Stratosphere.ResourceProperties.EC2LaunchTemplateMonitoring as X
 import Stratosphere.ResourceProperties.EC2LaunchTemplateNetworkInterface as X
 import Stratosphere.ResourceProperties.EC2LaunchTemplatePlacement as X
@@ -802,6 +838,9 @@
 import Stratosphere.ResourceProperties.EventsRuleRunCommandTarget as X
 import Stratosphere.ResourceProperties.EventsRuleSqsParameters as X
 import Stratosphere.ResourceProperties.EventsRuleTarget as X
+import Stratosphere.ResourceProperties.FSxFileSystemLustreConfiguration as X
+import Stratosphere.ResourceProperties.FSxFileSystemTagEntry as X
+import Stratosphere.ResourceProperties.FSxFileSystemWindowsConfiguration as X
 import Stratosphere.ResourceProperties.GameLiftAliasRoutingStrategy as X
 import Stratosphere.ResourceProperties.GameLiftBuildS3Location as X
 import Stratosphere.ResourceProperties.GameLiftFleetIpPermission as X
@@ -912,6 +951,44 @@
 import Stratosphere.ResourceProperties.KinesisAnalyticsApplicationReferenceDataSourceReferenceDataSource as X
 import Stratosphere.ResourceProperties.KinesisAnalyticsApplicationReferenceDataSourceReferenceSchema as X
 import Stratosphere.ResourceProperties.KinesisAnalyticsApplicationReferenceDataSourceS3ReferenceDataSource as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationApplicationCodeConfiguration as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationApplicationConfiguration as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationCSVMappingParameters as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationCheckpointConfiguration as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationCodeContent as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationEnvironmentProperties as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationInput as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationInputLambdaProcessor as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationInputParallelism as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationInputProcessingConfiguration as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationInputSchema as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationJSONMappingParameters as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationKinesisFirehoseInput as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationKinesisStreamsInput as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationMappingParameters as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationMonitoringConfiguration as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationParallelismConfiguration as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationPropertyGroup as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationRecordColumn as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationRecordFormat as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationS3ContentLocation as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationSqlApplicationConfiguration as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationOutputDestinationSchema as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationOutputLambdaOutput as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationOutputOutput as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema as X
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource as X
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamBufferingHints as X
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions as X
 import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamCopyCommand as X
@@ -964,6 +1041,12 @@
 import Stratosphere.ResourceProperties.RDSOptionGroupOptionSetting as X
 import Stratosphere.ResourceProperties.RedshiftClusterLoggingProperties as X
 import Stratosphere.ResourceProperties.RedshiftClusterParameterGroupParameter as X
+import Stratosphere.ResourceProperties.RoboMakerRobotApplicationRobotSoftwareSuite as X
+import Stratosphere.ResourceProperties.RoboMakerRobotApplicationSourceConfig as X
+import Stratosphere.ResourceProperties.RoboMakerSimulationApplicationRenderingEngine as X
+import Stratosphere.ResourceProperties.RoboMakerSimulationApplicationRobotSoftwareSuite as X
+import Stratosphere.ResourceProperties.RoboMakerSimulationApplicationSimulationSoftwareSuite as X
+import Stratosphere.ResourceProperties.RoboMakerSimulationApplicationSourceConfig as X
 import Stratosphere.ResourceProperties.Route53HealthCheckAlarmIdentifier as X
 import Stratosphere.ResourceProperties.Route53HealthCheckHealthCheckConfig as X
 import Stratosphere.ResourceProperties.Route53HealthCheckHealthCheckTag as X
@@ -1126,6 +1209,15 @@
   | ApiGatewayUsagePlanProperties ApiGatewayUsagePlan
   | ApiGatewayUsagePlanKeyProperties ApiGatewayUsagePlanKey
   | ApiGatewayVpcLinkProperties ApiGatewayVpcLink
+  | ApiGatewayV2ApiProperties ApiGatewayV2Api
+  | ApiGatewayV2AuthorizerProperties ApiGatewayV2Authorizer
+  | ApiGatewayV2DeploymentProperties ApiGatewayV2Deployment
+  | ApiGatewayV2IntegrationProperties ApiGatewayV2Integration
+  | ApiGatewayV2IntegrationResponseProperties ApiGatewayV2IntegrationResponse
+  | ApiGatewayV2ModelProperties ApiGatewayV2Model
+  | ApiGatewayV2RouteProperties ApiGatewayV2Route
+  | ApiGatewayV2RouteResponseProperties ApiGatewayV2RouteResponse
+  | ApiGatewayV2StageProperties ApiGatewayV2Stage
   | AppStreamDirectoryConfigProperties AppStreamDirectoryConfig
   | AppStreamFleetProperties AppStreamFleet
   | AppStreamImageBuilderProperties AppStreamImageBuilder
@@ -1283,6 +1375,7 @@
   | ElasticsearchDomainProperties ElasticsearchDomain
   | EventsEventBusPolicyProperties EventsEventBusPolicy
   | EventsRuleProperties EventsRule
+  | FSxFileSystemProperties FSxFileSystem
   | GameLiftAliasProperties GameLiftAlias
   | GameLiftBuildProperties GameLiftBuild
   | GameLiftFleetProperties GameLiftFleet
@@ -1333,6 +1426,10 @@
   | KinesisAnalyticsApplicationProperties KinesisAnalyticsApplication
   | KinesisAnalyticsApplicationOutputProperties KinesisAnalyticsApplicationOutput
   | KinesisAnalyticsApplicationReferenceDataSourceProperties KinesisAnalyticsApplicationReferenceDataSource
+  | KinesisAnalyticsV2ApplicationProperties KinesisAnalyticsV2Application
+  | KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionProperties KinesisAnalyticsV2ApplicationCloudWatchLoggingOption
+  | KinesisAnalyticsV2ApplicationOutputProperties KinesisAnalyticsV2ApplicationOutput
+  | KinesisAnalyticsV2ApplicationReferenceDataSourceProperties KinesisAnalyticsV2ApplicationReferenceDataSource
   | KinesisFirehoseDeliveryStreamProperties KinesisFirehoseDeliveryStream
   | LambdaAliasProperties LambdaAlias
   | LambdaEventSourceMappingProperties LambdaEventSourceMapping
@@ -1359,6 +1456,7 @@
   | OpsWorksUserProfileProperties OpsWorksUserProfile
   | OpsWorksVolumeProperties OpsWorksVolume
   | OpsWorksCMServerProperties OpsWorksCMServer
+  | RAMResourceShareProperties RAMResourceShare
   | RDSDBClusterProperties RDSDBCluster
   | RDSDBClusterParameterGroupProperties RDSDBClusterParameterGroup
   | RDSDBInstanceProperties RDSDBInstance
@@ -1373,6 +1471,12 @@
   | RedshiftClusterSecurityGroupProperties RedshiftClusterSecurityGroup
   | RedshiftClusterSecurityGroupIngressProperties RedshiftClusterSecurityGroupIngress
   | RedshiftClusterSubnetGroupProperties RedshiftClusterSubnetGroup
+  | RoboMakerFleetProperties RoboMakerFleet
+  | RoboMakerRobotProperties RoboMakerRobot
+  | RoboMakerRobotApplicationProperties RoboMakerRobotApplication
+  | RoboMakerRobotApplicationVersionProperties RoboMakerRobotApplicationVersion
+  | RoboMakerSimulationApplicationProperties RoboMakerSimulationApplication
+  | RoboMakerSimulationApplicationVersionProperties RoboMakerSimulationApplicationVersion
   | Route53HealthCheckProperties Route53HealthCheck
   | Route53HostedZoneProperties Route53HostedZone
   | Route53RecordSetProperties Route53RecordSet
@@ -1467,6 +1571,7 @@
   , _resourceUpdatePolicy :: Maybe UpdatePolicy
   , _resourceDependsOn :: Maybe [T.Text]
   , _resourceMetadata :: Maybe Object
+  , _resourceCondition :: Maybe T.Text
   } deriving (Show, Eq)
 
 instance ToRef Resource b where
@@ -1486,18 +1591,20 @@
   , _resourceUpdatePolicy = Nothing
   , _resourceDependsOn = Nothing
   , _resourceMetadata = Nothing
+  , _resourceCondition = Nothing
   }
 
 $(makeLenses ''Resource)
 
 resourceToJSON :: Resource -> Value
-resourceToJSON (Resource _ props dp cp up deps meta) =
+resourceToJSON (Resource _ props dp cp up deps meta cond) =
     object $ resourcePropertiesJSON props ++ catMaybes
     [ maybeField "DeletionPolicy" dp
     , maybeField "CreationPolicy" cp
     , maybeField "UpdatePolicy" up
     , maybeField "DependsOn" deps
     , maybeField "Metadata" meta
+    , maybeField "Condition" cond
     ]
 
 resourcePropertiesJSON :: ResourceProperties -> [Pair]
@@ -1545,6 +1652,24 @@
   [ "Type" .= ("AWS::ApiGateway::UsagePlanKey" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (ApiGatewayVpcLinkProperties x) =
   [ "Type" .= ("AWS::ApiGateway::VpcLink" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (ApiGatewayV2ApiProperties x) =
+  [ "Type" .= ("AWS::ApiGatewayV2::Api" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (ApiGatewayV2AuthorizerProperties x) =
+  [ "Type" .= ("AWS::ApiGatewayV2::Authorizer" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (ApiGatewayV2DeploymentProperties x) =
+  [ "Type" .= ("AWS::ApiGatewayV2::Deployment" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (ApiGatewayV2IntegrationProperties x) =
+  [ "Type" .= ("AWS::ApiGatewayV2::Integration" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (ApiGatewayV2IntegrationResponseProperties x) =
+  [ "Type" .= ("AWS::ApiGatewayV2::IntegrationResponse" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (ApiGatewayV2ModelProperties x) =
+  [ "Type" .= ("AWS::ApiGatewayV2::Model" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (ApiGatewayV2RouteProperties x) =
+  [ "Type" .= ("AWS::ApiGatewayV2::Route" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (ApiGatewayV2RouteResponseProperties x) =
+  [ "Type" .= ("AWS::ApiGatewayV2::RouteResponse" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (ApiGatewayV2StageProperties x) =
+  [ "Type" .= ("AWS::ApiGatewayV2::Stage" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (AppStreamDirectoryConfigProperties x) =
   [ "Type" .= ("AWS::AppStream::DirectoryConfig" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (AppStreamFleetProperties x) =
@@ -1859,6 +1984,8 @@
   [ "Type" .= ("AWS::Events::EventBusPolicy" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (EventsRuleProperties x) =
   [ "Type" .= ("AWS::Events::Rule" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (FSxFileSystemProperties x) =
+  [ "Type" .= ("AWS::FSx::FileSystem" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (GameLiftAliasProperties x) =
   [ "Type" .= ("AWS::GameLift::Alias" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (GameLiftBuildProperties x) =
@@ -1959,6 +2086,14 @@
   [ "Type" .= ("AWS::KinesisAnalytics::ApplicationOutput" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (KinesisAnalyticsApplicationReferenceDataSourceProperties x) =
   [ "Type" .= ("AWS::KinesisAnalytics::ApplicationReferenceDataSource" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (KinesisAnalyticsV2ApplicationProperties x) =
+  [ "Type" .= ("AWS::KinesisAnalyticsV2::Application" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionProperties x) =
+  [ "Type" .= ("AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (KinesisAnalyticsV2ApplicationOutputProperties x) =
+  [ "Type" .= ("AWS::KinesisAnalyticsV2::ApplicationOutput" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (KinesisAnalyticsV2ApplicationReferenceDataSourceProperties x) =
+  [ "Type" .= ("AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (KinesisFirehoseDeliveryStreamProperties x) =
   [ "Type" .= ("AWS::KinesisFirehose::DeliveryStream" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (LambdaAliasProperties x) =
@@ -2011,6 +2146,8 @@
   [ "Type" .= ("AWS::OpsWorks::Volume" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (OpsWorksCMServerProperties x) =
   [ "Type" .= ("AWS::OpsWorksCM::Server" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (RAMResourceShareProperties x) =
+  [ "Type" .= ("AWS::RAM::ResourceShare" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (RDSDBClusterProperties x) =
   [ "Type" .= ("AWS::RDS::DBCluster" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (RDSDBClusterParameterGroupProperties x) =
@@ -2039,6 +2176,18 @@
   [ "Type" .= ("AWS::Redshift::ClusterSecurityGroupIngress" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (RedshiftClusterSubnetGroupProperties x) =
   [ "Type" .= ("AWS::Redshift::ClusterSubnetGroup" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (RoboMakerFleetProperties x) =
+  [ "Type" .= ("AWS::RoboMaker::Fleet" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (RoboMakerRobotProperties x) =
+  [ "Type" .= ("AWS::RoboMaker::Robot" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (RoboMakerRobotApplicationProperties x) =
+  [ "Type" .= ("AWS::RoboMaker::RobotApplication" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (RoboMakerRobotApplicationVersionProperties x) =
+  [ "Type" .= ("AWS::RoboMaker::RobotApplicationVersion" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (RoboMakerSimulationApplicationProperties x) =
+  [ "Type" .= ("AWS::RoboMaker::SimulationApplication" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (RoboMakerSimulationApplicationVersionProperties x) =
+  [ "Type" .= ("AWS::RoboMaker::SimulationApplicationVersion" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (Route53HealthCheckProperties x) =
   [ "Type" .= ("AWS::Route53::HealthCheck" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (Route53HostedZoneProperties x) =
@@ -2213,6 +2362,15 @@
          "AWS::ApiGateway::UsagePlan" -> ApiGatewayUsagePlanProperties <$> (o .: "Properties")
          "AWS::ApiGateway::UsagePlanKey" -> ApiGatewayUsagePlanKeyProperties <$> (o .: "Properties")
          "AWS::ApiGateway::VpcLink" -> ApiGatewayVpcLinkProperties <$> (o .: "Properties")
+         "AWS::ApiGatewayV2::Api" -> ApiGatewayV2ApiProperties <$> (o .: "Properties")
+         "AWS::ApiGatewayV2::Authorizer" -> ApiGatewayV2AuthorizerProperties <$> (o .: "Properties")
+         "AWS::ApiGatewayV2::Deployment" -> ApiGatewayV2DeploymentProperties <$> (o .: "Properties")
+         "AWS::ApiGatewayV2::Integration" -> ApiGatewayV2IntegrationProperties <$> (o .: "Properties")
+         "AWS::ApiGatewayV2::IntegrationResponse" -> ApiGatewayV2IntegrationResponseProperties <$> (o .: "Properties")
+         "AWS::ApiGatewayV2::Model" -> ApiGatewayV2ModelProperties <$> (o .: "Properties")
+         "AWS::ApiGatewayV2::Route" -> ApiGatewayV2RouteProperties <$> (o .: "Properties")
+         "AWS::ApiGatewayV2::RouteResponse" -> ApiGatewayV2RouteResponseProperties <$> (o .: "Properties")
+         "AWS::ApiGatewayV2::Stage" -> ApiGatewayV2StageProperties <$> (o .: "Properties")
          "AWS::AppStream::DirectoryConfig" -> AppStreamDirectoryConfigProperties <$> (o .: "Properties")
          "AWS::AppStream::Fleet" -> AppStreamFleetProperties <$> (o .: "Properties")
          "AWS::AppStream::ImageBuilder" -> AppStreamImageBuilderProperties <$> (o .: "Properties")
@@ -2370,6 +2528,7 @@
          "AWS::Elasticsearch::Domain" -> ElasticsearchDomainProperties <$> (o .: "Properties")
          "AWS::Events::EventBusPolicy" -> EventsEventBusPolicyProperties <$> (o .: "Properties")
          "AWS::Events::Rule" -> EventsRuleProperties <$> (o .: "Properties")
+         "AWS::FSx::FileSystem" -> FSxFileSystemProperties <$> (o .: "Properties")
          "AWS::GameLift::Alias" -> GameLiftAliasProperties <$> (o .: "Properties")
          "AWS::GameLift::Build" -> GameLiftBuildProperties <$> (o .: "Properties")
          "AWS::GameLift::Fleet" -> GameLiftFleetProperties <$> (o .: "Properties")
@@ -2420,6 +2579,10 @@
          "AWS::KinesisAnalytics::Application" -> KinesisAnalyticsApplicationProperties <$> (o .: "Properties")
          "AWS::KinesisAnalytics::ApplicationOutput" -> KinesisAnalyticsApplicationOutputProperties <$> (o .: "Properties")
          "AWS::KinesisAnalytics::ApplicationReferenceDataSource" -> KinesisAnalyticsApplicationReferenceDataSourceProperties <$> (o .: "Properties")
+         "AWS::KinesisAnalyticsV2::Application" -> KinesisAnalyticsV2ApplicationProperties <$> (o .: "Properties")
+         "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption" -> KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionProperties <$> (o .: "Properties")
+         "AWS::KinesisAnalyticsV2::ApplicationOutput" -> KinesisAnalyticsV2ApplicationOutputProperties <$> (o .: "Properties")
+         "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource" -> KinesisAnalyticsV2ApplicationReferenceDataSourceProperties <$> (o .: "Properties")
          "AWS::KinesisFirehose::DeliveryStream" -> KinesisFirehoseDeliveryStreamProperties <$> (o .: "Properties")
          "AWS::Lambda::Alias" -> LambdaAliasProperties <$> (o .: "Properties")
          "AWS::Lambda::EventSourceMapping" -> LambdaEventSourceMappingProperties <$> (o .: "Properties")
@@ -2446,6 +2609,7 @@
          "AWS::OpsWorks::UserProfile" -> OpsWorksUserProfileProperties <$> (o .: "Properties")
          "AWS::OpsWorks::Volume" -> OpsWorksVolumeProperties <$> (o .: "Properties")
          "AWS::OpsWorksCM::Server" -> OpsWorksCMServerProperties <$> (o .: "Properties")
+         "AWS::RAM::ResourceShare" -> RAMResourceShareProperties <$> (o .: "Properties")
          "AWS::RDS::DBCluster" -> RDSDBClusterProperties <$> (o .: "Properties")
          "AWS::RDS::DBClusterParameterGroup" -> RDSDBClusterParameterGroupProperties <$> (o .: "Properties")
          "AWS::RDS::DBInstance" -> RDSDBInstanceProperties <$> (o .: "Properties")
@@ -2460,6 +2624,12 @@
          "AWS::Redshift::ClusterSecurityGroup" -> RedshiftClusterSecurityGroupProperties <$> (o .: "Properties")
          "AWS::Redshift::ClusterSecurityGroupIngress" -> RedshiftClusterSecurityGroupIngressProperties <$> (o .: "Properties")
          "AWS::Redshift::ClusterSubnetGroup" -> RedshiftClusterSubnetGroupProperties <$> (o .: "Properties")
+         "AWS::RoboMaker::Fleet" -> RoboMakerFleetProperties <$> (o .: "Properties")
+         "AWS::RoboMaker::Robot" -> RoboMakerRobotProperties <$> (o .: "Properties")
+         "AWS::RoboMaker::RobotApplication" -> RoboMakerRobotApplicationProperties <$> (o .: "Properties")
+         "AWS::RoboMaker::RobotApplicationVersion" -> RoboMakerRobotApplicationVersionProperties <$> (o .: "Properties")
+         "AWS::RoboMaker::SimulationApplication" -> RoboMakerSimulationApplicationProperties <$> (o .: "Properties")
+         "AWS::RoboMaker::SimulationApplicationVersion" -> RoboMakerSimulationApplicationVersionProperties <$> (o .: "Properties")
          "AWS::Route53::HealthCheck" -> Route53HealthCheckProperties <$> (o .: "Properties")
          "AWS::Route53::HostedZone" -> Route53HostedZoneProperties <$> (o .: "Properties")
          "AWS::Route53::RecordSet" -> Route53RecordSetProperties <$> (o .: "Properties")
@@ -2540,7 +2710,8 @@
        up <- o .:? "UpdatePolicy"
        deps <- o .:? "DependsOn"
        meta <- o .:? "Metadata"
-       return $ Resource n props dp cp up deps meta
+       cond <- o .:? "Condition"
+       return $ Resource n props dp cp up deps meta cond
 
 -- | Wrapper around a list of 'Resources's to we can modify the aeson
 -- instances.
diff --git a/library-gen/Stratosphere/Resources/ApiGatewayAuthorizer.hs b/library-gen/Stratosphere/Resources/ApiGatewayAuthorizer.hs
--- a/library-gen/Stratosphere/Resources/ApiGatewayAuthorizer.hs
+++ b/library-gen/Stratosphere/Resources/ApiGatewayAuthorizer.hs
@@ -22,7 +22,7 @@
   , _apiGatewayAuthorizerName :: Maybe (Val Text)
   , _apiGatewayAuthorizerProviderARNs :: Maybe (ValList Text)
   , _apiGatewayAuthorizerRestApiId :: Val Text
-  , _apiGatewayAuthorizerType :: Maybe (Val AuthorizerType)
+  , _apiGatewayAuthorizerType :: Val AuthorizerType
   } deriving (Show, Eq)
 
 instance ToJSON ApiGatewayAuthorizer where
@@ -38,7 +38,7 @@
     , fmap (("Name",) . toJSON) _apiGatewayAuthorizerName
     , fmap (("ProviderARNs",) . toJSON) _apiGatewayAuthorizerProviderARNs
     , (Just . ("RestApiId",) . toJSON) _apiGatewayAuthorizerRestApiId
-    , fmap (("Type",) . toJSON) _apiGatewayAuthorizerType
+    , (Just . ("Type",) . toJSON) _apiGatewayAuthorizerType
     ]
 
 instance FromJSON ApiGatewayAuthorizer where
@@ -53,15 +53,16 @@
       (obj .:? "Name") <*>
       (obj .:? "ProviderARNs") <*>
       (obj .: "RestApiId") <*>
-      (obj .:? "Type")
+      (obj .: "Type")
   parseJSON _ = mempty
 
 -- | Constructor for 'ApiGatewayAuthorizer' containing required fields as
 -- arguments.
 apiGatewayAuthorizer
   :: Val Text -- ^ 'agaRestApiId'
+  -> Val AuthorizerType -- ^ 'agaType'
   -> ApiGatewayAuthorizer
-apiGatewayAuthorizer restApiIdarg =
+apiGatewayAuthorizer restApiIdarg typearg =
   ApiGatewayAuthorizer
   { _apiGatewayAuthorizerAuthType = Nothing
   , _apiGatewayAuthorizerAuthorizerCredentials = Nothing
@@ -72,7 +73,7 @@
   , _apiGatewayAuthorizerName = Nothing
   , _apiGatewayAuthorizerProviderARNs = Nothing
   , _apiGatewayAuthorizerRestApiId = restApiIdarg
-  , _apiGatewayAuthorizerType = Nothing
+  , _apiGatewayAuthorizerType = typearg
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-authtype
@@ -112,5 +113,5 @@
 agaRestApiId = lens _apiGatewayAuthorizerRestApiId (\s a -> s { _apiGatewayAuthorizerRestApiId = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-type
-agaType :: Lens' ApiGatewayAuthorizer (Maybe (Val AuthorizerType))
+agaType :: Lens' ApiGatewayAuthorizer (Val AuthorizerType)
 agaType = lens _apiGatewayAuthorizerType (\s a -> s { _apiGatewayAuthorizerType = a })
diff --git a/library-gen/Stratosphere/Resources/ApiGatewayV2Api.hs b/library-gen/Stratosphere/Resources/ApiGatewayV2Api.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ApiGatewayV2Api.hs
@@ -0,0 +1,94 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html
+
+module Stratosphere.Resources.ApiGatewayV2Api where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for ApiGatewayV2Api. See 'apiGatewayV2Api' for
+-- a more convenient constructor.
+data ApiGatewayV2Api =
+  ApiGatewayV2Api
+  { _apiGatewayV2ApiApiKeySelectionExpression :: Maybe (Val Text)
+  , _apiGatewayV2ApiDescription :: Maybe (Val Text)
+  , _apiGatewayV2ApiDisableSchemaValidation :: Maybe (Val Bool)
+  , _apiGatewayV2ApiName :: Val Text
+  , _apiGatewayV2ApiProtocolType :: Val Text
+  , _apiGatewayV2ApiRouteSelectionExpression :: Val Text
+  , _apiGatewayV2ApiVersion :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON ApiGatewayV2Api where
+  toJSON ApiGatewayV2Api{..} =
+    object $
+    catMaybes
+    [ fmap (("ApiKeySelectionExpression",) . toJSON) _apiGatewayV2ApiApiKeySelectionExpression
+    , fmap (("Description",) . toJSON) _apiGatewayV2ApiDescription
+    , fmap (("DisableSchemaValidation",) . toJSON . fmap Bool') _apiGatewayV2ApiDisableSchemaValidation
+    , (Just . ("Name",) . toJSON) _apiGatewayV2ApiName
+    , (Just . ("ProtocolType",) . toJSON) _apiGatewayV2ApiProtocolType
+    , (Just . ("RouteSelectionExpression",) . toJSON) _apiGatewayV2ApiRouteSelectionExpression
+    , fmap (("Version",) . toJSON) _apiGatewayV2ApiVersion
+    ]
+
+instance FromJSON ApiGatewayV2Api where
+  parseJSON (Object obj) =
+    ApiGatewayV2Api <$>
+      (obj .:? "ApiKeySelectionExpression") <*>
+      (obj .:? "Description") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "DisableSchemaValidation") <*>
+      (obj .: "Name") <*>
+      (obj .: "ProtocolType") <*>
+      (obj .: "RouteSelectionExpression") <*>
+      (obj .:? "Version")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ApiGatewayV2Api' containing required fields as
+-- arguments.
+apiGatewayV2Api
+  :: Val Text -- ^ 'agvapName'
+  -> Val Text -- ^ 'agvapProtocolType'
+  -> Val Text -- ^ 'agvapRouteSelectionExpression'
+  -> ApiGatewayV2Api
+apiGatewayV2Api namearg protocolTypearg routeSelectionExpressionarg =
+  ApiGatewayV2Api
+  { _apiGatewayV2ApiApiKeySelectionExpression = Nothing
+  , _apiGatewayV2ApiDescription = Nothing
+  , _apiGatewayV2ApiDisableSchemaValidation = Nothing
+  , _apiGatewayV2ApiName = namearg
+  , _apiGatewayV2ApiProtocolType = protocolTypearg
+  , _apiGatewayV2ApiRouteSelectionExpression = routeSelectionExpressionarg
+  , _apiGatewayV2ApiVersion = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-apikeyselectionexpression
+agvapApiKeySelectionExpression :: Lens' ApiGatewayV2Api (Maybe (Val Text))
+agvapApiKeySelectionExpression = lens _apiGatewayV2ApiApiKeySelectionExpression (\s a -> s { _apiGatewayV2ApiApiKeySelectionExpression = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-description
+agvapDescription :: Lens' ApiGatewayV2Api (Maybe (Val Text))
+agvapDescription = lens _apiGatewayV2ApiDescription (\s a -> s { _apiGatewayV2ApiDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableschemavalidation
+agvapDisableSchemaValidation :: Lens' ApiGatewayV2Api (Maybe (Val Bool))
+agvapDisableSchemaValidation = lens _apiGatewayV2ApiDisableSchemaValidation (\s a -> s { _apiGatewayV2ApiDisableSchemaValidation = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-name
+agvapName :: Lens' ApiGatewayV2Api (Val Text)
+agvapName = lens _apiGatewayV2ApiName (\s a -> s { _apiGatewayV2ApiName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-protocoltype
+agvapProtocolType :: Lens' ApiGatewayV2Api (Val Text)
+agvapProtocolType = lens _apiGatewayV2ApiProtocolType (\s a -> s { _apiGatewayV2ApiProtocolType = a })
+
+-- | 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-version
+agvapVersion :: Lens' ApiGatewayV2Api (Maybe (Val Text))
+agvapVersion = lens _apiGatewayV2ApiVersion (\s a -> s { _apiGatewayV2ApiVersion = a })
diff --git a/library-gen/Stratosphere/Resources/ApiGatewayV2Authorizer.hs b/library-gen/Stratosphere/Resources/ApiGatewayV2Authorizer.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ApiGatewayV2Authorizer.hs
@@ -0,0 +1,104 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html
+
+module Stratosphere.Resources.ApiGatewayV2Authorizer where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for ApiGatewayV2Authorizer. See
+-- 'apiGatewayV2Authorizer' for a more convenient constructor.
+data ApiGatewayV2Authorizer =
+  ApiGatewayV2Authorizer
+  { _apiGatewayV2AuthorizerApiId :: Val Text
+  , _apiGatewayV2AuthorizerAuthorizerCredentialsArn :: Maybe (Val Text)
+  , _apiGatewayV2AuthorizerAuthorizerResultTtlInSeconds :: Maybe (Val Integer)
+  , _apiGatewayV2AuthorizerAuthorizerType :: Val Text
+  , _apiGatewayV2AuthorizerAuthorizerUri :: Val Text
+  , _apiGatewayV2AuthorizerIdentitySource :: ValList Text
+  , _apiGatewayV2AuthorizerIdentityValidationExpression :: Maybe (Val Text)
+  , _apiGatewayV2AuthorizerName :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON ApiGatewayV2Authorizer where
+  toJSON ApiGatewayV2Authorizer{..} =
+    object $
+    catMaybes
+    [ (Just . ("ApiId",) . toJSON) _apiGatewayV2AuthorizerApiId
+    , fmap (("AuthorizerCredentialsArn",) . toJSON) _apiGatewayV2AuthorizerAuthorizerCredentialsArn
+    , fmap (("AuthorizerResultTtlInSeconds",) . toJSON . fmap Integer') _apiGatewayV2AuthorizerAuthorizerResultTtlInSeconds
+    , (Just . ("AuthorizerType",) . toJSON) _apiGatewayV2AuthorizerAuthorizerType
+    , (Just . ("AuthorizerUri",) . toJSON) _apiGatewayV2AuthorizerAuthorizerUri
+    , (Just . ("IdentitySource",) . toJSON) _apiGatewayV2AuthorizerIdentitySource
+    , fmap (("IdentityValidationExpression",) . toJSON) _apiGatewayV2AuthorizerIdentityValidationExpression
+    , (Just . ("Name",) . toJSON) _apiGatewayV2AuthorizerName
+    ]
+
+instance FromJSON ApiGatewayV2Authorizer where
+  parseJSON (Object obj) =
+    ApiGatewayV2Authorizer <$>
+      (obj .: "ApiId") <*>
+      (obj .:? "AuthorizerCredentialsArn") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "AuthorizerResultTtlInSeconds") <*>
+      (obj .: "AuthorizerType") <*>
+      (obj .: "AuthorizerUri") <*>
+      (obj .: "IdentitySource") <*>
+      (obj .:? "IdentityValidationExpression") <*>
+      (obj .: "Name")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ApiGatewayV2Authorizer' containing required fields as
+-- arguments.
+apiGatewayV2Authorizer
+  :: Val Text -- ^ 'agvauApiId'
+  -> Val Text -- ^ 'agvauAuthorizerType'
+  -> Val Text -- ^ 'agvauAuthorizerUri'
+  -> ValList Text -- ^ 'agvauIdentitySource'
+  -> Val Text -- ^ 'agvauName'
+  -> ApiGatewayV2Authorizer
+apiGatewayV2Authorizer apiIdarg authorizerTypearg authorizerUriarg identitySourcearg namearg =
+  ApiGatewayV2Authorizer
+  { _apiGatewayV2AuthorizerApiId = apiIdarg
+  , _apiGatewayV2AuthorizerAuthorizerCredentialsArn = Nothing
+  , _apiGatewayV2AuthorizerAuthorizerResultTtlInSeconds = Nothing
+  , _apiGatewayV2AuthorizerAuthorizerType = authorizerTypearg
+  , _apiGatewayV2AuthorizerAuthorizerUri = authorizerUriarg
+  , _apiGatewayV2AuthorizerIdentitySource = identitySourcearg
+  , _apiGatewayV2AuthorizerIdentityValidationExpression = Nothing
+  , _apiGatewayV2AuthorizerName = namearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-apiid
+agvauApiId :: Lens' ApiGatewayV2Authorizer (Val Text)
+agvauApiId = lens _apiGatewayV2AuthorizerApiId (\s a -> s { _apiGatewayV2AuthorizerApiId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-authorizercredentialsarn
+agvauAuthorizerCredentialsArn :: Lens' ApiGatewayV2Authorizer (Maybe (Val Text))
+agvauAuthorizerCredentialsArn = lens _apiGatewayV2AuthorizerAuthorizerCredentialsArn (\s a -> s { _apiGatewayV2AuthorizerAuthorizerCredentialsArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-authorizerresultttlinseconds
+agvauAuthorizerResultTtlInSeconds :: Lens' ApiGatewayV2Authorizer (Maybe (Val Integer))
+agvauAuthorizerResultTtlInSeconds = lens _apiGatewayV2AuthorizerAuthorizerResultTtlInSeconds (\s a -> s { _apiGatewayV2AuthorizerAuthorizerResultTtlInSeconds = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-authorizertype
+agvauAuthorizerType :: Lens' ApiGatewayV2Authorizer (Val Text)
+agvauAuthorizerType = lens _apiGatewayV2AuthorizerAuthorizerType (\s a -> s { _apiGatewayV2AuthorizerAuthorizerType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-authorizeruri
+agvauAuthorizerUri :: Lens' ApiGatewayV2Authorizer (Val Text)
+agvauAuthorizerUri = lens _apiGatewayV2AuthorizerAuthorizerUri (\s a -> s { _apiGatewayV2AuthorizerAuthorizerUri = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-identitysource
+agvauIdentitySource :: Lens' ApiGatewayV2Authorizer (ValList Text)
+agvauIdentitySource = lens _apiGatewayV2AuthorizerIdentitySource (\s a -> s { _apiGatewayV2AuthorizerIdentitySource = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-identityvalidationexpression
+agvauIdentityValidationExpression :: Lens' ApiGatewayV2Authorizer (Maybe (Val Text))
+agvauIdentityValidationExpression = lens _apiGatewayV2AuthorizerIdentityValidationExpression (\s a -> s { _apiGatewayV2AuthorizerIdentityValidationExpression = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-name
+agvauName :: Lens' ApiGatewayV2Authorizer (Val Text)
+agvauName = lens _apiGatewayV2AuthorizerName (\s a -> s { _apiGatewayV2AuthorizerName = a })
diff --git a/library-gen/Stratosphere/Resources/ApiGatewayV2Deployment.hs b/library-gen/Stratosphere/Resources/ApiGatewayV2Deployment.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ApiGatewayV2Deployment.hs
@@ -0,0 +1,60 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-deployment.html
+
+module Stratosphere.Resources.ApiGatewayV2Deployment where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for ApiGatewayV2Deployment. See
+-- 'apiGatewayV2Deployment' for a more convenient constructor.
+data ApiGatewayV2Deployment =
+  ApiGatewayV2Deployment
+  { _apiGatewayV2DeploymentApiId :: Val Text
+  , _apiGatewayV2DeploymentDescription :: Maybe (Val Text)
+  , _apiGatewayV2DeploymentStageName :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON ApiGatewayV2Deployment where
+  toJSON ApiGatewayV2Deployment{..} =
+    object $
+    catMaybes
+    [ (Just . ("ApiId",) . toJSON) _apiGatewayV2DeploymentApiId
+    , fmap (("Description",) . toJSON) _apiGatewayV2DeploymentDescription
+    , fmap (("StageName",) . toJSON) _apiGatewayV2DeploymentStageName
+    ]
+
+instance FromJSON ApiGatewayV2Deployment where
+  parseJSON (Object obj) =
+    ApiGatewayV2Deployment <$>
+      (obj .: "ApiId") <*>
+      (obj .:? "Description") <*>
+      (obj .:? "StageName")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ApiGatewayV2Deployment' containing required fields as
+-- arguments.
+apiGatewayV2Deployment
+  :: Val Text -- ^ 'agvdApiId'
+  -> ApiGatewayV2Deployment
+apiGatewayV2Deployment apiIdarg =
+  ApiGatewayV2Deployment
+  { _apiGatewayV2DeploymentApiId = apiIdarg
+  , _apiGatewayV2DeploymentDescription = Nothing
+  , _apiGatewayV2DeploymentStageName = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-deployment.html#cfn-apigatewayv2-deployment-apiid
+agvdApiId :: Lens' ApiGatewayV2Deployment (Val Text)
+agvdApiId = lens _apiGatewayV2DeploymentApiId (\s a -> s { _apiGatewayV2DeploymentApiId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-deployment.html#cfn-apigatewayv2-deployment-description
+agvdDescription :: Lens' ApiGatewayV2Deployment (Maybe (Val Text))
+agvdDescription = lens _apiGatewayV2DeploymentDescription (\s a -> s { _apiGatewayV2DeploymentDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-deployment.html#cfn-apigatewayv2-deployment-stagename
+agvdStageName :: Lens' ApiGatewayV2Deployment (Maybe (Val Text))
+agvdStageName = lens _apiGatewayV2DeploymentStageName (\s a -> s { _apiGatewayV2DeploymentStageName = a })
diff --git a/library-gen/Stratosphere/Resources/ApiGatewayV2Integration.hs b/library-gen/Stratosphere/Resources/ApiGatewayV2Integration.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ApiGatewayV2Integration.hs
@@ -0,0 +1,141 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html
+
+module Stratosphere.Resources.ApiGatewayV2Integration where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for ApiGatewayV2Integration. See
+-- 'apiGatewayV2Integration' for a more convenient constructor.
+data ApiGatewayV2Integration =
+  ApiGatewayV2Integration
+  { _apiGatewayV2IntegrationApiId :: Val Text
+  , _apiGatewayV2IntegrationConnectionType :: Maybe (Val Text)
+  , _apiGatewayV2IntegrationContentHandlingStrategy :: Maybe (Val Text)
+  , _apiGatewayV2IntegrationCredentialsArn :: Maybe (Val Text)
+  , _apiGatewayV2IntegrationDescription :: Maybe (Val Text)
+  , _apiGatewayV2IntegrationIntegrationMethod :: Maybe (Val Text)
+  , _apiGatewayV2IntegrationIntegrationType :: Val Text
+  , _apiGatewayV2IntegrationIntegrationUri :: Maybe (Val Text)
+  , _apiGatewayV2IntegrationPassthroughBehavior :: Maybe (Val Text)
+  , _apiGatewayV2IntegrationRequestParameters :: Maybe Object
+  , _apiGatewayV2IntegrationRequestTemplates :: Maybe Object
+  , _apiGatewayV2IntegrationTemplateSelectionExpression :: Maybe (Val Text)
+  , _apiGatewayV2IntegrationTimeoutInMillis :: Maybe (Val Integer)
+  } deriving (Show, Eq)
+
+instance ToJSON ApiGatewayV2Integration where
+  toJSON ApiGatewayV2Integration{..} =
+    object $
+    catMaybes
+    [ (Just . ("ApiId",) . toJSON) _apiGatewayV2IntegrationApiId
+    , fmap (("ConnectionType",) . toJSON) _apiGatewayV2IntegrationConnectionType
+    , fmap (("ContentHandlingStrategy",) . toJSON) _apiGatewayV2IntegrationContentHandlingStrategy
+    , fmap (("CredentialsArn",) . toJSON) _apiGatewayV2IntegrationCredentialsArn
+    , fmap (("Description",) . toJSON) _apiGatewayV2IntegrationDescription
+    , fmap (("IntegrationMethod",) . toJSON) _apiGatewayV2IntegrationIntegrationMethod
+    , (Just . ("IntegrationType",) . toJSON) _apiGatewayV2IntegrationIntegrationType
+    , fmap (("IntegrationUri",) . toJSON) _apiGatewayV2IntegrationIntegrationUri
+    , fmap (("PassthroughBehavior",) . toJSON) _apiGatewayV2IntegrationPassthroughBehavior
+    , fmap (("RequestParameters",) . toJSON) _apiGatewayV2IntegrationRequestParameters
+    , fmap (("RequestTemplates",) . toJSON) _apiGatewayV2IntegrationRequestTemplates
+    , fmap (("TemplateSelectionExpression",) . toJSON) _apiGatewayV2IntegrationTemplateSelectionExpression
+    , fmap (("TimeoutInMillis",) . toJSON . fmap Integer') _apiGatewayV2IntegrationTimeoutInMillis
+    ]
+
+instance FromJSON ApiGatewayV2Integration where
+  parseJSON (Object obj) =
+    ApiGatewayV2Integration <$>
+      (obj .: "ApiId") <*>
+      (obj .:? "ConnectionType") <*>
+      (obj .:? "ContentHandlingStrategy") <*>
+      (obj .:? "CredentialsArn") <*>
+      (obj .:? "Description") <*>
+      (obj .:? "IntegrationMethod") <*>
+      (obj .: "IntegrationType") <*>
+      (obj .:? "IntegrationUri") <*>
+      (obj .:? "PassthroughBehavior") <*>
+      (obj .:? "RequestParameters") <*>
+      (obj .:? "RequestTemplates") <*>
+      (obj .:? "TemplateSelectionExpression") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "TimeoutInMillis")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ApiGatewayV2Integration' containing required fields as
+-- arguments.
+apiGatewayV2Integration
+  :: Val Text -- ^ 'agviApiId'
+  -> Val Text -- ^ 'agviIntegrationType'
+  -> ApiGatewayV2Integration
+apiGatewayV2Integration apiIdarg integrationTypearg =
+  ApiGatewayV2Integration
+  { _apiGatewayV2IntegrationApiId = apiIdarg
+  , _apiGatewayV2IntegrationConnectionType = Nothing
+  , _apiGatewayV2IntegrationContentHandlingStrategy = Nothing
+  , _apiGatewayV2IntegrationCredentialsArn = Nothing
+  , _apiGatewayV2IntegrationDescription = Nothing
+  , _apiGatewayV2IntegrationIntegrationMethod = Nothing
+  , _apiGatewayV2IntegrationIntegrationType = integrationTypearg
+  , _apiGatewayV2IntegrationIntegrationUri = Nothing
+  , _apiGatewayV2IntegrationPassthroughBehavior = Nothing
+  , _apiGatewayV2IntegrationRequestParameters = Nothing
+  , _apiGatewayV2IntegrationRequestTemplates = Nothing
+  , _apiGatewayV2IntegrationTemplateSelectionExpression = Nothing
+  , _apiGatewayV2IntegrationTimeoutInMillis = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-apiid
+agviApiId :: Lens' ApiGatewayV2Integration (Val Text)
+agviApiId = lens _apiGatewayV2IntegrationApiId (\s a -> s { _apiGatewayV2IntegrationApiId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-connectiontype
+agviConnectionType :: Lens' ApiGatewayV2Integration (Maybe (Val Text))
+agviConnectionType = lens _apiGatewayV2IntegrationConnectionType (\s a -> s { _apiGatewayV2IntegrationConnectionType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-contenthandlingstrategy
+agviContentHandlingStrategy :: Lens' ApiGatewayV2Integration (Maybe (Val Text))
+agviContentHandlingStrategy = lens _apiGatewayV2IntegrationContentHandlingStrategy (\s a -> s { _apiGatewayV2IntegrationContentHandlingStrategy = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-credentialsarn
+agviCredentialsArn :: Lens' ApiGatewayV2Integration (Maybe (Val Text))
+agviCredentialsArn = lens _apiGatewayV2IntegrationCredentialsArn (\s a -> s { _apiGatewayV2IntegrationCredentialsArn = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-description
+agviDescription :: Lens' ApiGatewayV2Integration (Maybe (Val Text))
+agviDescription = lens _apiGatewayV2IntegrationDescription (\s a -> s { _apiGatewayV2IntegrationDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-integrationmethod
+agviIntegrationMethod :: Lens' ApiGatewayV2Integration (Maybe (Val Text))
+agviIntegrationMethod = lens _apiGatewayV2IntegrationIntegrationMethod (\s a -> s { _apiGatewayV2IntegrationIntegrationMethod = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-integrationtype
+agviIntegrationType :: Lens' ApiGatewayV2Integration (Val Text)
+agviIntegrationType = lens _apiGatewayV2IntegrationIntegrationType (\s a -> s { _apiGatewayV2IntegrationIntegrationType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-integrationuri
+agviIntegrationUri :: Lens' ApiGatewayV2Integration (Maybe (Val Text))
+agviIntegrationUri = lens _apiGatewayV2IntegrationIntegrationUri (\s a -> s { _apiGatewayV2IntegrationIntegrationUri = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-passthroughbehavior
+agviPassthroughBehavior :: Lens' ApiGatewayV2Integration (Maybe (Val Text))
+agviPassthroughBehavior = lens _apiGatewayV2IntegrationPassthroughBehavior (\s a -> s { _apiGatewayV2IntegrationPassthroughBehavior = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-requestparameters
+agviRequestParameters :: Lens' ApiGatewayV2Integration (Maybe Object)
+agviRequestParameters = lens _apiGatewayV2IntegrationRequestParameters (\s a -> s { _apiGatewayV2IntegrationRequestParameters = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-requesttemplates
+agviRequestTemplates :: Lens' ApiGatewayV2Integration (Maybe Object)
+agviRequestTemplates = lens _apiGatewayV2IntegrationRequestTemplates (\s a -> s { _apiGatewayV2IntegrationRequestTemplates = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-templateselectionexpression
+agviTemplateSelectionExpression :: Lens' ApiGatewayV2Integration (Maybe (Val Text))
+agviTemplateSelectionExpression = lens _apiGatewayV2IntegrationTemplateSelectionExpression (\s a -> s { _apiGatewayV2IntegrationTemplateSelectionExpression = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-timeoutinmillis
+agviTimeoutInMillis :: Lens' ApiGatewayV2Integration (Maybe (Val Integer))
+agviTimeoutInMillis = lens _apiGatewayV2IntegrationTimeoutInMillis (\s a -> s { _apiGatewayV2IntegrationTimeoutInMillis = a })
diff --git a/library-gen/Stratosphere/Resources/ApiGatewayV2IntegrationResponse.hs b/library-gen/Stratosphere/Resources/ApiGatewayV2IntegrationResponse.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ApiGatewayV2IntegrationResponse.hs
@@ -0,0 +1,94 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html
+
+module Stratosphere.Resources.ApiGatewayV2IntegrationResponse where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for ApiGatewayV2IntegrationResponse. See
+-- 'apiGatewayV2IntegrationResponse' for a more convenient constructor.
+data ApiGatewayV2IntegrationResponse =
+  ApiGatewayV2IntegrationResponse
+  { _apiGatewayV2IntegrationResponseApiId :: Val Text
+  , _apiGatewayV2IntegrationResponseContentHandlingStrategy :: Maybe (Val Text)
+  , _apiGatewayV2IntegrationResponseIntegrationId :: Val Text
+  , _apiGatewayV2IntegrationResponseIntegrationResponseKey :: Val Text
+  , _apiGatewayV2IntegrationResponseResponseParameters :: Maybe Object
+  , _apiGatewayV2IntegrationResponseResponseTemplates :: Maybe Object
+  , _apiGatewayV2IntegrationResponseTemplateSelectionExpression :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON ApiGatewayV2IntegrationResponse where
+  toJSON ApiGatewayV2IntegrationResponse{..} =
+    object $
+    catMaybes
+    [ (Just . ("ApiId",) . toJSON) _apiGatewayV2IntegrationResponseApiId
+    , fmap (("ContentHandlingStrategy",) . toJSON) _apiGatewayV2IntegrationResponseContentHandlingStrategy
+    , (Just . ("IntegrationId",) . toJSON) _apiGatewayV2IntegrationResponseIntegrationId
+    , (Just . ("IntegrationResponseKey",) . toJSON) _apiGatewayV2IntegrationResponseIntegrationResponseKey
+    , fmap (("ResponseParameters",) . toJSON) _apiGatewayV2IntegrationResponseResponseParameters
+    , fmap (("ResponseTemplates",) . toJSON) _apiGatewayV2IntegrationResponseResponseTemplates
+    , fmap (("TemplateSelectionExpression",) . toJSON) _apiGatewayV2IntegrationResponseTemplateSelectionExpression
+    ]
+
+instance FromJSON ApiGatewayV2IntegrationResponse where
+  parseJSON (Object obj) =
+    ApiGatewayV2IntegrationResponse <$>
+      (obj .: "ApiId") <*>
+      (obj .:? "ContentHandlingStrategy") <*>
+      (obj .: "IntegrationId") <*>
+      (obj .: "IntegrationResponseKey") <*>
+      (obj .:? "ResponseParameters") <*>
+      (obj .:? "ResponseTemplates") <*>
+      (obj .:? "TemplateSelectionExpression")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ApiGatewayV2IntegrationResponse' containing required
+-- fields as arguments.
+apiGatewayV2IntegrationResponse
+  :: Val Text -- ^ 'agvirApiId'
+  -> Val Text -- ^ 'agvirIntegrationId'
+  -> Val Text -- ^ 'agvirIntegrationResponseKey'
+  -> ApiGatewayV2IntegrationResponse
+apiGatewayV2IntegrationResponse apiIdarg integrationIdarg integrationResponseKeyarg =
+  ApiGatewayV2IntegrationResponse
+  { _apiGatewayV2IntegrationResponseApiId = apiIdarg
+  , _apiGatewayV2IntegrationResponseContentHandlingStrategy = Nothing
+  , _apiGatewayV2IntegrationResponseIntegrationId = integrationIdarg
+  , _apiGatewayV2IntegrationResponseIntegrationResponseKey = integrationResponseKeyarg
+  , _apiGatewayV2IntegrationResponseResponseParameters = Nothing
+  , _apiGatewayV2IntegrationResponseResponseTemplates = Nothing
+  , _apiGatewayV2IntegrationResponseTemplateSelectionExpression = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html#cfn-apigatewayv2-integrationresponse-apiid
+agvirApiId :: Lens' ApiGatewayV2IntegrationResponse (Val Text)
+agvirApiId = lens _apiGatewayV2IntegrationResponseApiId (\s a -> s { _apiGatewayV2IntegrationResponseApiId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html#cfn-apigatewayv2-integrationresponse-contenthandlingstrategy
+agvirContentHandlingStrategy :: Lens' ApiGatewayV2IntegrationResponse (Maybe (Val Text))
+agvirContentHandlingStrategy = lens _apiGatewayV2IntegrationResponseContentHandlingStrategy (\s a -> s { _apiGatewayV2IntegrationResponseContentHandlingStrategy = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html#cfn-apigatewayv2-integrationresponse-integrationid
+agvirIntegrationId :: Lens' ApiGatewayV2IntegrationResponse (Val Text)
+agvirIntegrationId = lens _apiGatewayV2IntegrationResponseIntegrationId (\s a -> s { _apiGatewayV2IntegrationResponseIntegrationId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html#cfn-apigatewayv2-integrationresponse-integrationresponsekey
+agvirIntegrationResponseKey :: Lens' ApiGatewayV2IntegrationResponse (Val Text)
+agvirIntegrationResponseKey = lens _apiGatewayV2IntegrationResponseIntegrationResponseKey (\s a -> s { _apiGatewayV2IntegrationResponseIntegrationResponseKey = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html#cfn-apigatewayv2-integrationresponse-responseparameters
+agvirResponseParameters :: Lens' ApiGatewayV2IntegrationResponse (Maybe Object)
+agvirResponseParameters = lens _apiGatewayV2IntegrationResponseResponseParameters (\s a -> s { _apiGatewayV2IntegrationResponseResponseParameters = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html#cfn-apigatewayv2-integrationresponse-responsetemplates
+agvirResponseTemplates :: Lens' ApiGatewayV2IntegrationResponse (Maybe Object)
+agvirResponseTemplates = lens _apiGatewayV2IntegrationResponseResponseTemplates (\s a -> s { _apiGatewayV2IntegrationResponseResponseTemplates = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html#cfn-apigatewayv2-integrationresponse-templateselectionexpression
+agvirTemplateSelectionExpression :: Lens' ApiGatewayV2IntegrationResponse (Maybe (Val Text))
+agvirTemplateSelectionExpression = lens _apiGatewayV2IntegrationResponseTemplateSelectionExpression (\s a -> s { _apiGatewayV2IntegrationResponseTemplateSelectionExpression = a })
diff --git a/library-gen/Stratosphere/Resources/ApiGatewayV2Model.hs b/library-gen/Stratosphere/Resources/ApiGatewayV2Model.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ApiGatewayV2Model.hs
@@ -0,0 +1,78 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-model.html
+
+module Stratosphere.Resources.ApiGatewayV2Model where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for ApiGatewayV2Model. See 'apiGatewayV2Model'
+-- for a more convenient constructor.
+data ApiGatewayV2Model =
+  ApiGatewayV2Model
+  { _apiGatewayV2ModelApiId :: Val Text
+  , _apiGatewayV2ModelContentType :: Maybe (Val Text)
+  , _apiGatewayV2ModelDescription :: Maybe (Val Text)
+  , _apiGatewayV2ModelName :: Val Text
+  , _apiGatewayV2ModelSchema :: Object
+  } deriving (Show, Eq)
+
+instance ToJSON ApiGatewayV2Model where
+  toJSON ApiGatewayV2Model{..} =
+    object $
+    catMaybes
+    [ (Just . ("ApiId",) . toJSON) _apiGatewayV2ModelApiId
+    , fmap (("ContentType",) . toJSON) _apiGatewayV2ModelContentType
+    , fmap (("Description",) . toJSON) _apiGatewayV2ModelDescription
+    , (Just . ("Name",) . toJSON) _apiGatewayV2ModelName
+    , (Just . ("Schema",) . toJSON) _apiGatewayV2ModelSchema
+    ]
+
+instance FromJSON ApiGatewayV2Model where
+  parseJSON (Object obj) =
+    ApiGatewayV2Model <$>
+      (obj .: "ApiId") <*>
+      (obj .:? "ContentType") <*>
+      (obj .:? "Description") <*>
+      (obj .: "Name") <*>
+      (obj .: "Schema")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ApiGatewayV2Model' containing required fields as
+-- arguments.
+apiGatewayV2Model
+  :: Val Text -- ^ 'agvmApiId'
+  -> Val Text -- ^ 'agvmName'
+  -> Object -- ^ 'agvmSchema'
+  -> ApiGatewayV2Model
+apiGatewayV2Model apiIdarg namearg schemaarg =
+  ApiGatewayV2Model
+  { _apiGatewayV2ModelApiId = apiIdarg
+  , _apiGatewayV2ModelContentType = Nothing
+  , _apiGatewayV2ModelDescription = Nothing
+  , _apiGatewayV2ModelName = namearg
+  , _apiGatewayV2ModelSchema = schemaarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-model.html#cfn-apigatewayv2-model-apiid
+agvmApiId :: Lens' ApiGatewayV2Model (Val Text)
+agvmApiId = lens _apiGatewayV2ModelApiId (\s a -> s { _apiGatewayV2ModelApiId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-model.html#cfn-apigatewayv2-model-contenttype
+agvmContentType :: Lens' ApiGatewayV2Model (Maybe (Val Text))
+agvmContentType = lens _apiGatewayV2ModelContentType (\s a -> s { _apiGatewayV2ModelContentType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-model.html#cfn-apigatewayv2-model-description
+agvmDescription :: Lens' ApiGatewayV2Model (Maybe (Val Text))
+agvmDescription = lens _apiGatewayV2ModelDescription (\s a -> s { _apiGatewayV2ModelDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-model.html#cfn-apigatewayv2-model-name
+agvmName :: Lens' ApiGatewayV2Model (Val Text)
+agvmName = lens _apiGatewayV2ModelName (\s a -> s { _apiGatewayV2ModelName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-model.html#cfn-apigatewayv2-model-schema
+agvmSchema :: Lens' ApiGatewayV2Model Object
+agvmSchema = lens _apiGatewayV2ModelSchema (\s a -> s { _apiGatewayV2ModelSchema = a })
diff --git a/library-gen/Stratosphere/Resources/ApiGatewayV2Route.hs b/library-gen/Stratosphere/Resources/ApiGatewayV2Route.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ApiGatewayV2Route.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html
+
+module Stratosphere.Resources.ApiGatewayV2Route where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for ApiGatewayV2Route. See 'apiGatewayV2Route'
+-- for a more convenient constructor.
+data ApiGatewayV2Route =
+  ApiGatewayV2Route
+  { _apiGatewayV2RouteApiId :: Val Text
+  , _apiGatewayV2RouteApiKeyRequired :: Maybe (Val Bool)
+  , _apiGatewayV2RouteAuthorizationScopes :: Maybe (ValList Text)
+  , _apiGatewayV2RouteAuthorizationType :: Maybe (Val Text)
+  , _apiGatewayV2RouteAuthorizerId :: Maybe (Val Text)
+  , _apiGatewayV2RouteModelSelectionExpression :: Maybe (Val Text)
+  , _apiGatewayV2RouteOperationName :: Maybe (Val Text)
+  , _apiGatewayV2RouteRequestModels :: Maybe Object
+  , _apiGatewayV2RouteRequestParameters :: Maybe Object
+  , _apiGatewayV2RouteRouteKey :: Val Text
+  , _apiGatewayV2RouteRouteResponseSelectionExpression :: Maybe (Val Text)
+  , _apiGatewayV2RouteTarget :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON ApiGatewayV2Route where
+  toJSON ApiGatewayV2Route{..} =
+    object $
+    catMaybes
+    [ (Just . ("ApiId",) . toJSON) _apiGatewayV2RouteApiId
+    , fmap (("ApiKeyRequired",) . toJSON . fmap Bool') _apiGatewayV2RouteApiKeyRequired
+    , fmap (("AuthorizationScopes",) . toJSON) _apiGatewayV2RouteAuthorizationScopes
+    , fmap (("AuthorizationType",) . toJSON) _apiGatewayV2RouteAuthorizationType
+    , fmap (("AuthorizerId",) . toJSON) _apiGatewayV2RouteAuthorizerId
+    , fmap (("ModelSelectionExpression",) . toJSON) _apiGatewayV2RouteModelSelectionExpression
+    , fmap (("OperationName",) . toJSON) _apiGatewayV2RouteOperationName
+    , fmap (("RequestModels",) . toJSON) _apiGatewayV2RouteRequestModels
+    , fmap (("RequestParameters",) . toJSON) _apiGatewayV2RouteRequestParameters
+    , (Just . ("RouteKey",) . toJSON) _apiGatewayV2RouteRouteKey
+    , fmap (("RouteResponseSelectionExpression",) . toJSON) _apiGatewayV2RouteRouteResponseSelectionExpression
+    , fmap (("Target",) . toJSON) _apiGatewayV2RouteTarget
+    ]
+
+instance FromJSON ApiGatewayV2Route where
+  parseJSON (Object obj) =
+    ApiGatewayV2Route <$>
+      (obj .: "ApiId") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "ApiKeyRequired") <*>
+      (obj .:? "AuthorizationScopes") <*>
+      (obj .:? "AuthorizationType") <*>
+      (obj .:? "AuthorizerId") <*>
+      (obj .:? "ModelSelectionExpression") <*>
+      (obj .:? "OperationName") <*>
+      (obj .:? "RequestModels") <*>
+      (obj .:? "RequestParameters") <*>
+      (obj .: "RouteKey") <*>
+      (obj .:? "RouteResponseSelectionExpression") <*>
+      (obj .:? "Target")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ApiGatewayV2Route' containing required fields as
+-- arguments.
+apiGatewayV2Route
+  :: Val Text -- ^ 'agvrApiId'
+  -> Val Text -- ^ 'agvrRouteKey'
+  -> ApiGatewayV2Route
+apiGatewayV2Route apiIdarg routeKeyarg =
+  ApiGatewayV2Route
+  { _apiGatewayV2RouteApiId = apiIdarg
+  , _apiGatewayV2RouteApiKeyRequired = Nothing
+  , _apiGatewayV2RouteAuthorizationScopes = Nothing
+  , _apiGatewayV2RouteAuthorizationType = Nothing
+  , _apiGatewayV2RouteAuthorizerId = Nothing
+  , _apiGatewayV2RouteModelSelectionExpression = Nothing
+  , _apiGatewayV2RouteOperationName = Nothing
+  , _apiGatewayV2RouteRequestModels = Nothing
+  , _apiGatewayV2RouteRequestParameters = Nothing
+  , _apiGatewayV2RouteRouteKey = routeKeyarg
+  , _apiGatewayV2RouteRouteResponseSelectionExpression = Nothing
+  , _apiGatewayV2RouteTarget = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-apiid
+agvrApiId :: Lens' ApiGatewayV2Route (Val Text)
+agvrApiId = lens _apiGatewayV2RouteApiId (\s a -> s { _apiGatewayV2RouteApiId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-apikeyrequired
+agvrApiKeyRequired :: Lens' ApiGatewayV2Route (Maybe (Val Bool))
+agvrApiKeyRequired = lens _apiGatewayV2RouteApiKeyRequired (\s a -> s { _apiGatewayV2RouteApiKeyRequired = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-authorizationscopes
+agvrAuthorizationScopes :: Lens' ApiGatewayV2Route (Maybe (ValList Text))
+agvrAuthorizationScopes = lens _apiGatewayV2RouteAuthorizationScopes (\s a -> s { _apiGatewayV2RouteAuthorizationScopes = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-authorizationtype
+agvrAuthorizationType :: Lens' ApiGatewayV2Route (Maybe (Val Text))
+agvrAuthorizationType = lens _apiGatewayV2RouteAuthorizationType (\s a -> s { _apiGatewayV2RouteAuthorizationType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-authorizerid
+agvrAuthorizerId :: Lens' ApiGatewayV2Route (Maybe (Val Text))
+agvrAuthorizerId = lens _apiGatewayV2RouteAuthorizerId (\s a -> s { _apiGatewayV2RouteAuthorizerId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-modelselectionexpression
+agvrModelSelectionExpression :: Lens' ApiGatewayV2Route (Maybe (Val Text))
+agvrModelSelectionExpression = lens _apiGatewayV2RouteModelSelectionExpression (\s a -> s { _apiGatewayV2RouteModelSelectionExpression = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-operationname
+agvrOperationName :: Lens' ApiGatewayV2Route (Maybe (Val Text))
+agvrOperationName = lens _apiGatewayV2RouteOperationName (\s a -> s { _apiGatewayV2RouteOperationName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-requestmodels
+agvrRequestModels :: Lens' ApiGatewayV2Route (Maybe Object)
+agvrRequestModels = lens _apiGatewayV2RouteRequestModels (\s a -> s { _apiGatewayV2RouteRequestModels = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-requestparameters
+agvrRequestParameters :: Lens' ApiGatewayV2Route (Maybe Object)
+agvrRequestParameters = lens _apiGatewayV2RouteRequestParameters (\s a -> s { _apiGatewayV2RouteRequestParameters = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-routekey
+agvrRouteKey :: Lens' ApiGatewayV2Route (Val Text)
+agvrRouteKey = lens _apiGatewayV2RouteRouteKey (\s a -> s { _apiGatewayV2RouteRouteKey = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-routeresponseselectionexpression
+agvrRouteResponseSelectionExpression :: Lens' ApiGatewayV2Route (Maybe (Val Text))
+agvrRouteResponseSelectionExpression = lens _apiGatewayV2RouteRouteResponseSelectionExpression (\s a -> s { _apiGatewayV2RouteRouteResponseSelectionExpression = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-target
+agvrTarget :: Lens' ApiGatewayV2Route (Maybe (Val Text))
+agvrTarget = lens _apiGatewayV2RouteTarget (\s a -> s { _apiGatewayV2RouteTarget = a })
diff --git a/library-gen/Stratosphere/Resources/ApiGatewayV2RouteResponse.hs b/library-gen/Stratosphere/Resources/ApiGatewayV2RouteResponse.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ApiGatewayV2RouteResponse.hs
@@ -0,0 +1,86 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html
+
+module Stratosphere.Resources.ApiGatewayV2RouteResponse where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for ApiGatewayV2RouteResponse. See
+-- 'apiGatewayV2RouteResponse' for a more convenient constructor.
+data ApiGatewayV2RouteResponse =
+  ApiGatewayV2RouteResponse
+  { _apiGatewayV2RouteResponseApiId :: Val Text
+  , _apiGatewayV2RouteResponseModelSelectionExpression :: Maybe (Val Text)
+  , _apiGatewayV2RouteResponseResponseModels :: Maybe Object
+  , _apiGatewayV2RouteResponseResponseParameters :: Maybe Object
+  , _apiGatewayV2RouteResponseRouteId :: Val Text
+  , _apiGatewayV2RouteResponseRouteResponseKey :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON ApiGatewayV2RouteResponse where
+  toJSON ApiGatewayV2RouteResponse{..} =
+    object $
+    catMaybes
+    [ (Just . ("ApiId",) . toJSON) _apiGatewayV2RouteResponseApiId
+    , fmap (("ModelSelectionExpression",) . toJSON) _apiGatewayV2RouteResponseModelSelectionExpression
+    , fmap (("ResponseModels",) . toJSON) _apiGatewayV2RouteResponseResponseModels
+    , fmap (("ResponseParameters",) . toJSON) _apiGatewayV2RouteResponseResponseParameters
+    , (Just . ("RouteId",) . toJSON) _apiGatewayV2RouteResponseRouteId
+    , (Just . ("RouteResponseKey",) . toJSON) _apiGatewayV2RouteResponseRouteResponseKey
+    ]
+
+instance FromJSON ApiGatewayV2RouteResponse where
+  parseJSON (Object obj) =
+    ApiGatewayV2RouteResponse <$>
+      (obj .: "ApiId") <*>
+      (obj .:? "ModelSelectionExpression") <*>
+      (obj .:? "ResponseModels") <*>
+      (obj .:? "ResponseParameters") <*>
+      (obj .: "RouteId") <*>
+      (obj .: "RouteResponseKey")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ApiGatewayV2RouteResponse' containing required fields as
+-- arguments.
+apiGatewayV2RouteResponse
+  :: Val Text -- ^ 'agvrrApiId'
+  -> Val Text -- ^ 'agvrrRouteId'
+  -> Val Text -- ^ 'agvrrRouteResponseKey'
+  -> ApiGatewayV2RouteResponse
+apiGatewayV2RouteResponse apiIdarg routeIdarg routeResponseKeyarg =
+  ApiGatewayV2RouteResponse
+  { _apiGatewayV2RouteResponseApiId = apiIdarg
+  , _apiGatewayV2RouteResponseModelSelectionExpression = Nothing
+  , _apiGatewayV2RouteResponseResponseModels = Nothing
+  , _apiGatewayV2RouteResponseResponseParameters = Nothing
+  , _apiGatewayV2RouteResponseRouteId = routeIdarg
+  , _apiGatewayV2RouteResponseRouteResponseKey = routeResponseKeyarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-apiid
+agvrrApiId :: Lens' ApiGatewayV2RouteResponse (Val Text)
+agvrrApiId = lens _apiGatewayV2RouteResponseApiId (\s a -> s { _apiGatewayV2RouteResponseApiId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-modelselectionexpression
+agvrrModelSelectionExpression :: Lens' ApiGatewayV2RouteResponse (Maybe (Val Text))
+agvrrModelSelectionExpression = lens _apiGatewayV2RouteResponseModelSelectionExpression (\s a -> s { _apiGatewayV2RouteResponseModelSelectionExpression = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-responsemodels
+agvrrResponseModels :: Lens' ApiGatewayV2RouteResponse (Maybe Object)
+agvrrResponseModels = lens _apiGatewayV2RouteResponseResponseModels (\s a -> s { _apiGatewayV2RouteResponseResponseModels = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-responseparameters
+agvrrResponseParameters :: Lens' ApiGatewayV2RouteResponse (Maybe Object)
+agvrrResponseParameters = lens _apiGatewayV2RouteResponseResponseParameters (\s a -> s { _apiGatewayV2RouteResponseResponseParameters = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-routeid
+agvrrRouteId :: Lens' ApiGatewayV2RouteResponse (Val Text)
+agvrrRouteId = lens _apiGatewayV2RouteResponseRouteId (\s a -> s { _apiGatewayV2RouteResponseRouteId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-routeresponsekey
+agvrrRouteResponseKey :: Lens' ApiGatewayV2RouteResponse (Val Text)
+agvrrRouteResponseKey = lens _apiGatewayV2RouteResponseRouteResponseKey (\s a -> s { _apiGatewayV2RouteResponseRouteResponseKey = a })
diff --git a/library-gen/Stratosphere/Resources/ApiGatewayV2Stage.hs b/library-gen/Stratosphere/Resources/ApiGatewayV2Stage.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/ApiGatewayV2Stage.hs
@@ -0,0 +1,111 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html
+
+module Stratosphere.Resources.ApiGatewayV2Stage where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.ApiGatewayV2StageAccessLogSettings
+import Stratosphere.ResourceProperties.ApiGatewayV2StageRouteSettings
+
+-- | Full data type definition for ApiGatewayV2Stage. See 'apiGatewayV2Stage'
+-- for a more convenient constructor.
+data ApiGatewayV2Stage =
+  ApiGatewayV2Stage
+  { _apiGatewayV2StageAccessLogSettings :: Maybe ApiGatewayV2StageAccessLogSettings
+  , _apiGatewayV2StageApiId :: Val Text
+  , _apiGatewayV2StageClientCertificateId :: Maybe (Val Text)
+  , _apiGatewayV2StageDefaultRouteSettings :: Maybe ApiGatewayV2StageRouteSettings
+  , _apiGatewayV2StageDeploymentId :: Val Text
+  , _apiGatewayV2StageDescription :: Maybe (Val Text)
+  , _apiGatewayV2StageRouteSettings :: Maybe Object
+  , _apiGatewayV2StageStageName :: Val Text
+  , _apiGatewayV2StageStageVariables :: Maybe Object
+  } deriving (Show, Eq)
+
+instance ToJSON ApiGatewayV2Stage where
+  toJSON ApiGatewayV2Stage{..} =
+    object $
+    catMaybes
+    [ fmap (("AccessLogSettings",) . toJSON) _apiGatewayV2StageAccessLogSettings
+    , (Just . ("ApiId",) . toJSON) _apiGatewayV2StageApiId
+    , fmap (("ClientCertificateId",) . toJSON) _apiGatewayV2StageClientCertificateId
+    , fmap (("DefaultRouteSettings",) . toJSON) _apiGatewayV2StageDefaultRouteSettings
+    , (Just . ("DeploymentId",) . toJSON) _apiGatewayV2StageDeploymentId
+    , fmap (("Description",) . toJSON) _apiGatewayV2StageDescription
+    , fmap (("RouteSettings",) . toJSON) _apiGatewayV2StageRouteSettings
+    , (Just . ("StageName",) . toJSON) _apiGatewayV2StageStageName
+    , fmap (("StageVariables",) . toJSON) _apiGatewayV2StageStageVariables
+    ]
+
+instance FromJSON ApiGatewayV2Stage where
+  parseJSON (Object obj) =
+    ApiGatewayV2Stage <$>
+      (obj .:? "AccessLogSettings") <*>
+      (obj .: "ApiId") <*>
+      (obj .:? "ClientCertificateId") <*>
+      (obj .:? "DefaultRouteSettings") <*>
+      (obj .: "DeploymentId") <*>
+      (obj .:? "Description") <*>
+      (obj .:? "RouteSettings") <*>
+      (obj .: "StageName") <*>
+      (obj .:? "StageVariables")
+  parseJSON _ = mempty
+
+-- | Constructor for 'ApiGatewayV2Stage' containing required fields as
+-- arguments.
+apiGatewayV2Stage
+  :: Val Text -- ^ 'agvsApiId'
+  -> Val Text -- ^ 'agvsDeploymentId'
+  -> Val Text -- ^ 'agvsStageName'
+  -> ApiGatewayV2Stage
+apiGatewayV2Stage apiIdarg deploymentIdarg stageNamearg =
+  ApiGatewayV2Stage
+  { _apiGatewayV2StageAccessLogSettings = Nothing
+  , _apiGatewayV2StageApiId = apiIdarg
+  , _apiGatewayV2StageClientCertificateId = Nothing
+  , _apiGatewayV2StageDefaultRouteSettings = Nothing
+  , _apiGatewayV2StageDeploymentId = deploymentIdarg
+  , _apiGatewayV2StageDescription = Nothing
+  , _apiGatewayV2StageRouteSettings = Nothing
+  , _apiGatewayV2StageStageName = stageNamearg
+  , _apiGatewayV2StageStageVariables = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings
+agvsAccessLogSettings :: Lens' ApiGatewayV2Stage (Maybe ApiGatewayV2StageAccessLogSettings)
+agvsAccessLogSettings = lens _apiGatewayV2StageAccessLogSettings (\s a -> s { _apiGatewayV2StageAccessLogSettings = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-apiid
+agvsApiId :: Lens' ApiGatewayV2Stage (Val Text)
+agvsApiId = lens _apiGatewayV2StageApiId (\s a -> s { _apiGatewayV2StageApiId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-clientcertificateid
+agvsClientCertificateId :: Lens' ApiGatewayV2Stage (Maybe (Val Text))
+agvsClientCertificateId = lens _apiGatewayV2StageClientCertificateId (\s a -> s { _apiGatewayV2StageClientCertificateId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-defaultroutesettings
+agvsDefaultRouteSettings :: Lens' ApiGatewayV2Stage (Maybe ApiGatewayV2StageRouteSettings)
+agvsDefaultRouteSettings = lens _apiGatewayV2StageDefaultRouteSettings (\s a -> s { _apiGatewayV2StageDefaultRouteSettings = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-deploymentid
+agvsDeploymentId :: Lens' ApiGatewayV2Stage (Val Text)
+agvsDeploymentId = lens _apiGatewayV2StageDeploymentId (\s a -> s { _apiGatewayV2StageDeploymentId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-description
+agvsDescription :: Lens' ApiGatewayV2Stage (Maybe (Val Text))
+agvsDescription = lens _apiGatewayV2StageDescription (\s a -> s { _apiGatewayV2StageDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings
+agvsRouteSettings :: Lens' ApiGatewayV2Stage (Maybe Object)
+agvsRouteSettings = lens _apiGatewayV2StageRouteSettings (\s a -> s { _apiGatewayV2StageRouteSettings = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagename
+agvsStageName :: Lens' ApiGatewayV2Stage (Val Text)
+agvsStageName = lens _apiGatewayV2StageStageName (\s a -> s { _apiGatewayV2StageStageName = a })
+
+-- | 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 })
diff --git a/library-gen/Stratosphere/Resources/CloudWatchAlarm.hs b/library-gen/Stratosphere/Resources/CloudWatchAlarm.hs
--- a/library-gen/Stratosphere/Resources/CloudWatchAlarm.hs
+++ b/library-gen/Stratosphere/Resources/CloudWatchAlarm.hs
@@ -8,6 +8,7 @@
 
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.CloudWatchAlarmDimension
+import Stratosphere.ResourceProperties.CloudWatchAlarmMetricDataQuery
 
 -- | Full data type definition for CloudWatchAlarm. See 'cloudWatchAlarm' for
 -- a more convenient constructor.
@@ -25,6 +26,7 @@
   , _cloudWatchAlarmExtendedStatistic :: Maybe (Val Text)
   , _cloudWatchAlarmInsufficientDataActions :: Maybe (ValList Text)
   , _cloudWatchAlarmMetricName :: Maybe (Val Text)
+  , _cloudWatchAlarmMetrics :: Maybe [CloudWatchAlarmMetricDataQuery]
   , _cloudWatchAlarmNamespace :: Maybe (Val Text)
   , _cloudWatchAlarmOKActions :: Maybe (ValList Text)
   , _cloudWatchAlarmPeriod :: Maybe (Val Integer)
@@ -50,6 +52,7 @@
     , fmap (("ExtendedStatistic",) . toJSON) _cloudWatchAlarmExtendedStatistic
     , fmap (("InsufficientDataActions",) . toJSON) _cloudWatchAlarmInsufficientDataActions
     , fmap (("MetricName",) . toJSON) _cloudWatchAlarmMetricName
+    , fmap (("Metrics",) . toJSON) _cloudWatchAlarmMetrics
     , fmap (("Namespace",) . toJSON) _cloudWatchAlarmNamespace
     , fmap (("OKActions",) . toJSON) _cloudWatchAlarmOKActions
     , fmap (("Period",) . toJSON . fmap Integer') _cloudWatchAlarmPeriod
@@ -74,6 +77,7 @@
       (obj .:? "ExtendedStatistic") <*>
       (obj .:? "InsufficientDataActions") <*>
       (obj .:? "MetricName") <*>
+      (obj .:? "Metrics") <*>
       (obj .:? "Namespace") <*>
       (obj .:? "OKActions") <*>
       fmap (fmap (fmap unInteger')) (obj .:? "Period") <*>
@@ -104,6 +108,7 @@
   , _cloudWatchAlarmExtendedStatistic = Nothing
   , _cloudWatchAlarmInsufficientDataActions = Nothing
   , _cloudWatchAlarmMetricName = Nothing
+  , _cloudWatchAlarmMetrics = Nothing
   , _cloudWatchAlarmNamespace = Nothing
   , _cloudWatchAlarmOKActions = Nothing
   , _cloudWatchAlarmPeriod = Nothing
@@ -160,6 +165,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-metricname
 cwaMetricName :: Lens' CloudWatchAlarm (Maybe (Val Text))
 cwaMetricName = lens _cloudWatchAlarmMetricName (\s a -> s { _cloudWatchAlarmMetricName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarm-metrics
+cwaMetrics :: Lens' CloudWatchAlarm (Maybe [CloudWatchAlarmMetricDataQuery])
+cwaMetrics = lens _cloudWatchAlarmMetrics (\s a -> s { _cloudWatchAlarmMetrics = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-namespace
 cwaNamespace :: Lens' CloudWatchAlarm (Maybe (Val Text))
diff --git a/library-gen/Stratosphere/Resources/EC2VPCEndpoint.hs b/library-gen/Stratosphere/Resources/EC2VPCEndpoint.hs
--- a/library-gen/Stratosphere/Resources/EC2VPCEndpoint.hs
+++ b/library-gen/Stratosphere/Resources/EC2VPCEndpoint.hs
@@ -19,7 +19,7 @@
   , _eC2VPCEndpointSecurityGroupIds :: Maybe (ValList Text)
   , _eC2VPCEndpointServiceName :: Val Text
   , _eC2VPCEndpointSubnetIds :: Maybe (ValList Text)
-  , _eC2VPCEndpointVPCEndpointType :: Maybe (Val Text)
+  , _eC2VPCEndpointVpcEndpointType :: Maybe (Val Text)
   , _eC2VPCEndpointVpcId :: Val Text
   } deriving (Show, Eq)
 
@@ -33,7 +33,7 @@
     , fmap (("SecurityGroupIds",) . toJSON) _eC2VPCEndpointSecurityGroupIds
     , (Just . ("ServiceName",) . toJSON) _eC2VPCEndpointServiceName
     , fmap (("SubnetIds",) . toJSON) _eC2VPCEndpointSubnetIds
-    , fmap (("VPCEndpointType",) . toJSON) _eC2VPCEndpointVPCEndpointType
+    , fmap (("VpcEndpointType",) . toJSON) _eC2VPCEndpointVpcEndpointType
     , (Just . ("VpcId",) . toJSON) _eC2VPCEndpointVpcId
     ]
 
@@ -46,7 +46,7 @@
       (obj .:? "SecurityGroupIds") <*>
       (obj .: "ServiceName") <*>
       (obj .:? "SubnetIds") <*>
-      (obj .:? "VPCEndpointType") <*>
+      (obj .:? "VpcEndpointType") <*>
       (obj .: "VpcId")
   parseJSON _ = mempty
 
@@ -63,7 +63,7 @@
   , _eC2VPCEndpointSecurityGroupIds = Nothing
   , _eC2VPCEndpointServiceName = serviceNamearg
   , _eC2VPCEndpointSubnetIds = Nothing
-  , _eC2VPCEndpointVPCEndpointType = Nothing
+  , _eC2VPCEndpointVpcEndpointType = Nothing
   , _eC2VPCEndpointVpcId = vpcIdarg
   }
 
@@ -92,8 +92,8 @@
 ecvpceSubnetIds = lens _eC2VPCEndpointSubnetIds (\s a -> s { _eC2VPCEndpointSubnetIds = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html#cfn-ec2-vpcendpoint-vpcendpointtype
-ecvpceVPCEndpointType :: Lens' EC2VPCEndpoint (Maybe (Val Text))
-ecvpceVPCEndpointType = lens _eC2VPCEndpointVPCEndpointType (\s a -> s { _eC2VPCEndpointVPCEndpointType = a })
+ecvpceVpcEndpointType :: Lens' EC2VPCEndpoint (Maybe (Val Text))
+ecvpceVpcEndpointType = lens _eC2VPCEndpointVpcEndpointType (\s a -> s { _eC2VPCEndpointVpcEndpointType = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html#cfn-ec2-vpcendpoint-vpcid
 ecvpceVpcId :: Lens' EC2VPCEndpoint (Val Text)
diff --git a/library-gen/Stratosphere/Resources/ECSCluster.hs b/library-gen/Stratosphere/Resources/ECSCluster.hs
--- a/library-gen/Stratosphere/Resources/ECSCluster.hs
+++ b/library-gen/Stratosphere/Resources/ECSCluster.hs
@@ -7,14 +7,13 @@
 module Stratosphere.Resources.ECSCluster where
 
 import Stratosphere.ResourceImports
-import Stratosphere.ResourceProperties.Tag
 
+
 -- | Full data type definition for ECSCluster. See 'ecsCluster' for a more
 -- convenient constructor.
 data ECSCluster =
   ECSCluster
   { _eCSClusterClusterName :: Maybe (Val Text)
-  , _eCSClusterTags :: Maybe [Tag]
   } deriving (Show, Eq)
 
 instance ToJSON ECSCluster where
@@ -22,14 +21,12 @@
     object $
     catMaybes
     [ fmap (("ClusterName",) . toJSON) _eCSClusterClusterName
-    , fmap (("Tags",) . toJSON) _eCSClusterTags
     ]
 
 instance FromJSON ECSCluster where
   parseJSON (Object obj) =
     ECSCluster <$>
-      (obj .:? "ClusterName") <*>
-      (obj .:? "Tags")
+      (obj .:? "ClusterName")
   parseJSON _ = mempty
 
 -- | Constructor for 'ECSCluster' containing required fields as arguments.
@@ -38,13 +35,8 @@
 ecsCluster  =
   ECSCluster
   { _eCSClusterClusterName = Nothing
-  , _eCSClusterTags = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#cfn-ecs-cluster-clustername
 ecscClusterName :: Lens' ECSCluster (Maybe (Val Text))
 ecscClusterName = lens _eCSClusterClusterName (\s a -> s { _eCSClusterClusterName = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#cfn-ecs-cluster-tags
-ecscTags :: Lens' ECSCluster (Maybe [Tag])
-ecscTags = lens _eCSClusterTags (\s a -> s { _eCSClusterTags = a })
diff --git a/library-gen/Stratosphere/Resources/ECSService.hs b/library-gen/Stratosphere/Resources/ECSService.hs
--- a/library-gen/Stratosphere/Resources/ECSService.hs
+++ b/library-gen/Stratosphere/Resources/ECSService.hs
@@ -13,7 +13,6 @@
 import Stratosphere.ResourceProperties.ECSServicePlacementConstraint
 import Stratosphere.ResourceProperties.ECSServicePlacementStrategy
 import Stratosphere.ResourceProperties.ECSServiceServiceRegistry
-import Stratosphere.ResourceProperties.Tag
 
 -- | Full data type definition for ECSService. See 'ecsService' for a more
 -- convenient constructor.
@@ -33,7 +32,6 @@
   , _eCSServiceSchedulingStrategy :: Maybe (Val Text)
   , _eCSServiceServiceName :: Maybe (Val Text)
   , _eCSServiceServiceRegistries :: Maybe [ECSServiceServiceRegistry]
-  , _eCSServiceTags :: Maybe [Tag]
   , _eCSServiceTaskDefinition :: Val Text
   } deriving (Show, Eq)
 
@@ -55,7 +53,6 @@
     , fmap (("SchedulingStrategy",) . toJSON) _eCSServiceSchedulingStrategy
     , fmap (("ServiceName",) . toJSON) _eCSServiceServiceName
     , fmap (("ServiceRegistries",) . toJSON) _eCSServiceServiceRegistries
-    , fmap (("Tags",) . toJSON) _eCSServiceTags
     , (Just . ("TaskDefinition",) . toJSON) _eCSServiceTaskDefinition
     ]
 
@@ -76,7 +73,6 @@
       (obj .:? "SchedulingStrategy") <*>
       (obj .:? "ServiceName") <*>
       (obj .:? "ServiceRegistries") <*>
-      (obj .:? "Tags") <*>
       (obj .: "TaskDefinition")
   parseJSON _ = mempty
 
@@ -100,7 +96,6 @@
   , _eCSServiceSchedulingStrategy = Nothing
   , _eCSServiceServiceName = Nothing
   , _eCSServiceServiceRegistries = Nothing
-  , _eCSServiceTags = Nothing
   , _eCSServiceTaskDefinition = taskDefinitionarg
   }
 
@@ -159,10 +154,6 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-serviceregistries
 ecssServiceRegistries :: Lens' ECSService (Maybe [ECSServiceServiceRegistry])
 ecssServiceRegistries = lens _eCSServiceServiceRegistries (\s a -> s { _eCSServiceServiceRegistries = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-tags
-ecssTags :: Lens' ECSService (Maybe [Tag])
-ecssTags = lens _eCSServiceTags (\s a -> s { _eCSServiceTags = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-taskdefinition
 ecssTaskDefinition :: Lens' ECSService (Val Text)
diff --git a/library-gen/Stratosphere/Resources/ECSTaskDefinition.hs b/library-gen/Stratosphere/Resources/ECSTaskDefinition.hs
--- a/library-gen/Stratosphere/Resources/ECSTaskDefinition.hs
+++ b/library-gen/Stratosphere/Resources/ECSTaskDefinition.hs
@@ -9,7 +9,6 @@
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.ECSTaskDefinitionContainerDefinition
 import Stratosphere.ResourceProperties.ECSTaskDefinitionTaskDefinitionPlacementConstraint
-import Stratosphere.ResourceProperties.Tag
 import Stratosphere.ResourceProperties.ECSTaskDefinitionVolume
 
 -- | Full data type definition for ECSTaskDefinition. See 'ecsTaskDefinition'
@@ -24,7 +23,6 @@
   , _eCSTaskDefinitionNetworkMode :: Maybe (Val Text)
   , _eCSTaskDefinitionPlacementConstraints :: Maybe [ECSTaskDefinitionTaskDefinitionPlacementConstraint]
   , _eCSTaskDefinitionRequiresCompatibilities :: Maybe (ValList Text)
-  , _eCSTaskDefinitionTags :: Maybe [Tag]
   , _eCSTaskDefinitionTaskRoleArn :: Maybe (Val Text)
   , _eCSTaskDefinitionVolumes :: Maybe [ECSTaskDefinitionVolume]
   } deriving (Show, Eq)
@@ -41,7 +39,6 @@
     , fmap (("NetworkMode",) . toJSON) _eCSTaskDefinitionNetworkMode
     , fmap (("PlacementConstraints",) . toJSON) _eCSTaskDefinitionPlacementConstraints
     , fmap (("RequiresCompatibilities",) . toJSON) _eCSTaskDefinitionRequiresCompatibilities
-    , fmap (("Tags",) . toJSON) _eCSTaskDefinitionTags
     , fmap (("TaskRoleArn",) . toJSON) _eCSTaskDefinitionTaskRoleArn
     , fmap (("Volumes",) . toJSON) _eCSTaskDefinitionVolumes
     ]
@@ -57,7 +54,6 @@
       (obj .:? "NetworkMode") <*>
       (obj .:? "PlacementConstraints") <*>
       (obj .:? "RequiresCompatibilities") <*>
-      (obj .:? "Tags") <*>
       (obj .:? "TaskRoleArn") <*>
       (obj .:? "Volumes")
   parseJSON _ = mempty
@@ -76,7 +72,6 @@
   , _eCSTaskDefinitionNetworkMode = Nothing
   , _eCSTaskDefinitionPlacementConstraints = Nothing
   , _eCSTaskDefinitionRequiresCompatibilities = Nothing
-  , _eCSTaskDefinitionTags = Nothing
   , _eCSTaskDefinitionTaskRoleArn = Nothing
   , _eCSTaskDefinitionVolumes = Nothing
   }
@@ -112,10 +107,6 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-requirescompatibilities
 ecstdRequiresCompatibilities :: Lens' ECSTaskDefinition (Maybe (ValList Text))
 ecstdRequiresCompatibilities = lens _eCSTaskDefinitionRequiresCompatibilities (\s a -> s { _eCSTaskDefinitionRequiresCompatibilities = a })
-
--- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-tags
-ecstdTags :: Lens' ECSTaskDefinition (Maybe [Tag])
-ecstdTags = lens _eCSTaskDefinitionTags (\s a -> s { _eCSTaskDefinitionTags = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-taskrolearn
 ecstdTaskRoleArn :: Lens' ECSTaskDefinition (Maybe (Val Text))
diff --git a/library-gen/Stratosphere/Resources/ElasticLoadBalancingV2TargetGroup.hs b/library-gen/Stratosphere/Resources/ElasticLoadBalancingV2TargetGroup.hs
--- a/library-gen/Stratosphere/Resources/ElasticLoadBalancingV2TargetGroup.hs
+++ b/library-gen/Stratosphere/Resources/ElasticLoadBalancingV2TargetGroup.hs
@@ -16,7 +16,8 @@
 -- 'elasticLoadBalancingV2TargetGroup' for a more convenient constructor.
 data ElasticLoadBalancingV2TargetGroup =
   ElasticLoadBalancingV2TargetGroup
-  { _elasticLoadBalancingV2TargetGroupHealthCheckIntervalSeconds :: Maybe (Val Integer)
+  { _elasticLoadBalancingV2TargetGroupHealthCheckEnabled :: Maybe (Val Bool)
+  , _elasticLoadBalancingV2TargetGroupHealthCheckIntervalSeconds :: Maybe (Val Integer)
   , _elasticLoadBalancingV2TargetGroupHealthCheckPath :: Maybe (Val Text)
   , _elasticLoadBalancingV2TargetGroupHealthCheckPort :: Maybe (Val Text)
   , _elasticLoadBalancingV2TargetGroupHealthCheckProtocol :: Maybe (Val Text)
@@ -24,21 +25,22 @@
   , _elasticLoadBalancingV2TargetGroupHealthyThresholdCount :: Maybe (Val Integer)
   , _elasticLoadBalancingV2TargetGroupMatcher :: Maybe ElasticLoadBalancingV2TargetGroupMatcher
   , _elasticLoadBalancingV2TargetGroupName :: Maybe (Val Text)
-  , _elasticLoadBalancingV2TargetGroupPort :: Val Integer
-  , _elasticLoadBalancingV2TargetGroupProtocol :: Val Text
+  , _elasticLoadBalancingV2TargetGroupPort :: Maybe (Val Integer)
+  , _elasticLoadBalancingV2TargetGroupProtocol :: Maybe (Val Text)
   , _elasticLoadBalancingV2TargetGroupTags :: Maybe [Tag]
   , _elasticLoadBalancingV2TargetGroupTargetGroupAttributes :: Maybe [ElasticLoadBalancingV2TargetGroupTargetGroupAttribute]
   , _elasticLoadBalancingV2TargetGroupTargetType :: Maybe (Val Text)
   , _elasticLoadBalancingV2TargetGroupTargets :: Maybe [ElasticLoadBalancingV2TargetGroupTargetDescription]
   , _elasticLoadBalancingV2TargetGroupUnhealthyThresholdCount :: Maybe (Val Integer)
-  , _elasticLoadBalancingV2TargetGroupVpcId :: Val Text
+  , _elasticLoadBalancingV2TargetGroupVpcId :: Maybe (Val Text)
   } deriving (Show, Eq)
 
 instance ToJSON ElasticLoadBalancingV2TargetGroup where
   toJSON ElasticLoadBalancingV2TargetGroup{..} =
     object $
     catMaybes
-    [ fmap (("HealthCheckIntervalSeconds",) . toJSON . fmap Integer') _elasticLoadBalancingV2TargetGroupHealthCheckIntervalSeconds
+    [ fmap (("HealthCheckEnabled",) . toJSON . fmap Bool') _elasticLoadBalancingV2TargetGroupHealthCheckEnabled
+    , fmap (("HealthCheckIntervalSeconds",) . toJSON . fmap Integer') _elasticLoadBalancingV2TargetGroupHealthCheckIntervalSeconds
     , fmap (("HealthCheckPath",) . toJSON) _elasticLoadBalancingV2TargetGroupHealthCheckPath
     , fmap (("HealthCheckPort",) . toJSON) _elasticLoadBalancingV2TargetGroupHealthCheckPort
     , fmap (("HealthCheckProtocol",) . toJSON) _elasticLoadBalancingV2TargetGroupHealthCheckProtocol
@@ -46,19 +48,20 @@
     , fmap (("HealthyThresholdCount",) . toJSON . fmap Integer') _elasticLoadBalancingV2TargetGroupHealthyThresholdCount
     , fmap (("Matcher",) . toJSON) _elasticLoadBalancingV2TargetGroupMatcher
     , fmap (("Name",) . toJSON) _elasticLoadBalancingV2TargetGroupName
-    , (Just . ("Port",) . toJSON . fmap Integer') _elasticLoadBalancingV2TargetGroupPort
-    , (Just . ("Protocol",) . toJSON) _elasticLoadBalancingV2TargetGroupProtocol
+    , fmap (("Port",) . toJSON . fmap Integer') _elasticLoadBalancingV2TargetGroupPort
+    , fmap (("Protocol",) . toJSON) _elasticLoadBalancingV2TargetGroupProtocol
     , fmap (("Tags",) . toJSON) _elasticLoadBalancingV2TargetGroupTags
     , fmap (("TargetGroupAttributes",) . toJSON) _elasticLoadBalancingV2TargetGroupTargetGroupAttributes
     , fmap (("TargetType",) . toJSON) _elasticLoadBalancingV2TargetGroupTargetType
     , fmap (("Targets",) . toJSON) _elasticLoadBalancingV2TargetGroupTargets
     , fmap (("UnhealthyThresholdCount",) . toJSON . fmap Integer') _elasticLoadBalancingV2TargetGroupUnhealthyThresholdCount
-    , (Just . ("VpcId",) . toJSON) _elasticLoadBalancingV2TargetGroupVpcId
+    , fmap (("VpcId",) . toJSON) _elasticLoadBalancingV2TargetGroupVpcId
     ]
 
 instance FromJSON ElasticLoadBalancingV2TargetGroup where
   parseJSON (Object obj) =
     ElasticLoadBalancingV2TargetGroup <$>
+      fmap (fmap (fmap unBool')) (obj .:? "HealthCheckEnabled") <*>
       fmap (fmap (fmap unInteger')) (obj .:? "HealthCheckIntervalSeconds") <*>
       (obj .:? "HealthCheckPath") <*>
       (obj .:? "HealthCheckPort") <*>
@@ -67,26 +70,24 @@
       fmap (fmap (fmap unInteger')) (obj .:? "HealthyThresholdCount") <*>
       (obj .:? "Matcher") <*>
       (obj .:? "Name") <*>
-      fmap (fmap unInteger') (obj .: "Port") <*>
-      (obj .: "Protocol") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "Port") <*>
+      (obj .:? "Protocol") <*>
       (obj .:? "Tags") <*>
       (obj .:? "TargetGroupAttributes") <*>
       (obj .:? "TargetType") <*>
       (obj .:? "Targets") <*>
       fmap (fmap (fmap unInteger')) (obj .:? "UnhealthyThresholdCount") <*>
-      (obj .: "VpcId")
+      (obj .:? "VpcId")
   parseJSON _ = mempty
 
 -- | Constructor for 'ElasticLoadBalancingV2TargetGroup' containing required
 -- fields as arguments.
 elasticLoadBalancingV2TargetGroup
-  :: Val Integer -- ^ 'elbvtgPort'
-  -> Val Text -- ^ 'elbvtgProtocol'
-  -> Val Text -- ^ 'elbvtgVpcId'
-  -> ElasticLoadBalancingV2TargetGroup
-elasticLoadBalancingV2TargetGroup portarg protocolarg vpcIdarg =
+  :: ElasticLoadBalancingV2TargetGroup
+elasticLoadBalancingV2TargetGroup  =
   ElasticLoadBalancingV2TargetGroup
-  { _elasticLoadBalancingV2TargetGroupHealthCheckIntervalSeconds = Nothing
+  { _elasticLoadBalancingV2TargetGroupHealthCheckEnabled = Nothing
+  , _elasticLoadBalancingV2TargetGroupHealthCheckIntervalSeconds = Nothing
   , _elasticLoadBalancingV2TargetGroupHealthCheckPath = Nothing
   , _elasticLoadBalancingV2TargetGroupHealthCheckPort = Nothing
   , _elasticLoadBalancingV2TargetGroupHealthCheckProtocol = Nothing
@@ -94,16 +95,20 @@
   , _elasticLoadBalancingV2TargetGroupHealthyThresholdCount = Nothing
   , _elasticLoadBalancingV2TargetGroupMatcher = Nothing
   , _elasticLoadBalancingV2TargetGroupName = Nothing
-  , _elasticLoadBalancingV2TargetGroupPort = portarg
-  , _elasticLoadBalancingV2TargetGroupProtocol = protocolarg
+  , _elasticLoadBalancingV2TargetGroupPort = Nothing
+  , _elasticLoadBalancingV2TargetGroupProtocol = Nothing
   , _elasticLoadBalancingV2TargetGroupTags = Nothing
   , _elasticLoadBalancingV2TargetGroupTargetGroupAttributes = Nothing
   , _elasticLoadBalancingV2TargetGroupTargetType = Nothing
   , _elasticLoadBalancingV2TargetGroupTargets = Nothing
   , _elasticLoadBalancingV2TargetGroupUnhealthyThresholdCount = Nothing
-  , _elasticLoadBalancingV2TargetGroupVpcId = vpcIdarg
+  , _elasticLoadBalancingV2TargetGroupVpcId = Nothing
   }
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-healthcheckenabled
+elbvtgHealthCheckEnabled :: Lens' ElasticLoadBalancingV2TargetGroup (Maybe (Val Bool))
+elbvtgHealthCheckEnabled = lens _elasticLoadBalancingV2TargetGroupHealthCheckEnabled (\s a -> s { _elasticLoadBalancingV2TargetGroupHealthCheckEnabled = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-healthcheckintervalseconds
 elbvtgHealthCheckIntervalSeconds :: Lens' ElasticLoadBalancingV2TargetGroup (Maybe (Val Integer))
 elbvtgHealthCheckIntervalSeconds = lens _elasticLoadBalancingV2TargetGroupHealthCheckIntervalSeconds (\s a -> s { _elasticLoadBalancingV2TargetGroupHealthCheckIntervalSeconds = a })
@@ -137,11 +142,11 @@
 elbvtgName = lens _elasticLoadBalancingV2TargetGroupName (\s a -> s { _elasticLoadBalancingV2TargetGroupName = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-port
-elbvtgPort :: Lens' ElasticLoadBalancingV2TargetGroup (Val Integer)
+elbvtgPort :: Lens' ElasticLoadBalancingV2TargetGroup (Maybe (Val Integer))
 elbvtgPort = lens _elasticLoadBalancingV2TargetGroupPort (\s a -> s { _elasticLoadBalancingV2TargetGroupPort = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-protocol
-elbvtgProtocol :: Lens' ElasticLoadBalancingV2TargetGroup (Val Text)
+elbvtgProtocol :: Lens' ElasticLoadBalancingV2TargetGroup (Maybe (Val Text))
 elbvtgProtocol = lens _elasticLoadBalancingV2TargetGroupProtocol (\s a -> s { _elasticLoadBalancingV2TargetGroupProtocol = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-tags
@@ -165,5 +170,5 @@
 elbvtgUnhealthyThresholdCount = lens _elasticLoadBalancingV2TargetGroupUnhealthyThresholdCount (\s a -> s { _elasticLoadBalancingV2TargetGroupUnhealthyThresholdCount = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-vpcid
-elbvtgVpcId :: Lens' ElasticLoadBalancingV2TargetGroup (Val Text)
+elbvtgVpcId :: Lens' ElasticLoadBalancingV2TargetGroup (Maybe (Val Text))
 elbvtgVpcId = lens _elasticLoadBalancingV2TargetGroupVpcId (\s a -> s { _elasticLoadBalancingV2TargetGroupVpcId = a })
diff --git a/library-gen/Stratosphere/Resources/FSxFileSystem.hs b/library-gen/Stratosphere/Resources/FSxFileSystem.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/FSxFileSystem.hs
@@ -0,0 +1,108 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html
+
+module Stratosphere.Resources.FSxFileSystem where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.FSxFileSystemLustreConfiguration
+import Stratosphere.ResourceProperties.FSxFileSystemTagEntry
+import Stratosphere.ResourceProperties.FSxFileSystemWindowsConfiguration
+
+-- | Full data type definition for FSxFileSystem. See 'fSxFileSystem' for a
+-- more convenient constructor.
+data FSxFileSystem =
+  FSxFileSystem
+  { _fSxFileSystemBackupId :: Maybe (Val Text)
+  , _fSxFileSystemFileSystemType :: Maybe (Val Text)
+  , _fSxFileSystemKmsKeyId :: Maybe (Val Text)
+  , _fSxFileSystemLustreConfiguration :: Maybe FSxFileSystemLustreConfiguration
+  , _fSxFileSystemSecurityGroupIds :: Maybe (ValList Text)
+  , _fSxFileSystemStorageCapacity :: Maybe (Val Integer)
+  , _fSxFileSystemSubnetIds :: Maybe (ValList Text)
+  , _fSxFileSystemTags :: Maybe [FSxFileSystemTagEntry]
+  , _fSxFileSystemWindowsConfiguration :: Maybe FSxFileSystemWindowsConfiguration
+  } deriving (Show, Eq)
+
+instance ToJSON FSxFileSystem where
+  toJSON FSxFileSystem{..} =
+    object $
+    catMaybes
+    [ fmap (("BackupId",) . toJSON) _fSxFileSystemBackupId
+    , fmap (("FileSystemType",) . toJSON) _fSxFileSystemFileSystemType
+    , fmap (("KmsKeyId",) . toJSON) _fSxFileSystemKmsKeyId
+    , fmap (("LustreConfiguration",) . toJSON) _fSxFileSystemLustreConfiguration
+    , fmap (("SecurityGroupIds",) . toJSON) _fSxFileSystemSecurityGroupIds
+    , fmap (("StorageCapacity",) . toJSON . fmap Integer') _fSxFileSystemStorageCapacity
+    , fmap (("SubnetIds",) . toJSON) _fSxFileSystemSubnetIds
+    , fmap (("Tags",) . toJSON) _fSxFileSystemTags
+    , fmap (("WindowsConfiguration",) . toJSON) _fSxFileSystemWindowsConfiguration
+    ]
+
+instance FromJSON FSxFileSystem where
+  parseJSON (Object obj) =
+    FSxFileSystem <$>
+      (obj .:? "BackupId") <*>
+      (obj .:? "FileSystemType") <*>
+      (obj .:? "KmsKeyId") <*>
+      (obj .:? "LustreConfiguration") <*>
+      (obj .:? "SecurityGroupIds") <*>
+      fmap (fmap (fmap unInteger')) (obj .:? "StorageCapacity") <*>
+      (obj .:? "SubnetIds") <*>
+      (obj .:? "Tags") <*>
+      (obj .:? "WindowsConfiguration")
+  parseJSON _ = mempty
+
+-- | Constructor for 'FSxFileSystem' containing required fields as arguments.
+fSxFileSystem
+  :: FSxFileSystem
+fSxFileSystem  =
+  FSxFileSystem
+  { _fSxFileSystemBackupId = Nothing
+  , _fSxFileSystemFileSystemType = Nothing
+  , _fSxFileSystemKmsKeyId = Nothing
+  , _fSxFileSystemLustreConfiguration = Nothing
+  , _fSxFileSystemSecurityGroupIds = Nothing
+  , _fSxFileSystemStorageCapacity = Nothing
+  , _fSxFileSystemSubnetIds = Nothing
+  , _fSxFileSystemTags = Nothing
+  , _fSxFileSystemWindowsConfiguration = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-backupid
+fsfsBackupId :: Lens' FSxFileSystem (Maybe (Val Text))
+fsfsBackupId = lens _fSxFileSystemBackupId (\s a -> s { _fSxFileSystemBackupId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-filesystemtype
+fsfsFileSystemType :: Lens' FSxFileSystem (Maybe (Val Text))
+fsfsFileSystemType = lens _fSxFileSystemFileSystemType (\s a -> s { _fSxFileSystemFileSystemType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-kmskeyid
+fsfsKmsKeyId :: Lens' FSxFileSystem (Maybe (Val Text))
+fsfsKmsKeyId = lens _fSxFileSystemKmsKeyId (\s a -> s { _fSxFileSystemKmsKeyId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-lustreconfiguration
+fsfsLustreConfiguration :: Lens' FSxFileSystem (Maybe FSxFileSystemLustreConfiguration)
+fsfsLustreConfiguration = lens _fSxFileSystemLustreConfiguration (\s a -> s { _fSxFileSystemLustreConfiguration = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-securitygroupids
+fsfsSecurityGroupIds :: Lens' FSxFileSystem (Maybe (ValList Text))
+fsfsSecurityGroupIds = lens _fSxFileSystemSecurityGroupIds (\s a -> s { _fSxFileSystemSecurityGroupIds = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-storagecapacity
+fsfsStorageCapacity :: Lens' FSxFileSystem (Maybe (Val Integer))
+fsfsStorageCapacity = lens _fSxFileSystemStorageCapacity (\s a -> s { _fSxFileSystemStorageCapacity = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-subnetids
+fsfsSubnetIds :: Lens' FSxFileSystem (Maybe (ValList Text))
+fsfsSubnetIds = lens _fSxFileSystemSubnetIds (\s a -> s { _fSxFileSystemSubnetIds = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-tags
+fsfsTags :: Lens' FSxFileSystem (Maybe [FSxFileSystemTagEntry])
+fsfsTags = lens _fSxFileSystemTags (\s a -> s { _fSxFileSystemTags = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-windowsconfiguration
+fsfsWindowsConfiguration :: Lens' FSxFileSystem (Maybe FSxFileSystemWindowsConfiguration)
+fsfsWindowsConfiguration = lens _fSxFileSystemWindowsConfiguration (\s a -> s { _fSxFileSystemWindowsConfiguration = a })
diff --git a/library-gen/Stratosphere/Resources/KinesisAnalyticsV2Application.hs b/library-gen/Stratosphere/Resources/KinesisAnalyticsV2Application.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/KinesisAnalyticsV2Application.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html
+
+module Stratosphere.Resources.KinesisAnalyticsV2Application where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationApplicationConfiguration
+
+-- | Full data type definition for KinesisAnalyticsV2Application. See
+-- 'kinesisAnalyticsV2Application' for a more convenient constructor.
+data KinesisAnalyticsV2Application =
+  KinesisAnalyticsV2Application
+  { _kinesisAnalyticsV2ApplicationApplicationConfiguration :: Maybe KinesisAnalyticsV2ApplicationApplicationConfiguration
+  , _kinesisAnalyticsV2ApplicationApplicationDescription :: Maybe (Val Text)
+  , _kinesisAnalyticsV2ApplicationApplicationName :: Maybe (Val Text)
+  , _kinesisAnalyticsV2ApplicationRuntimeEnvironment :: Val Text
+  , _kinesisAnalyticsV2ApplicationServiceExecutionRole :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2Application where
+  toJSON KinesisAnalyticsV2Application{..} =
+    object $
+    catMaybes
+    [ fmap (("ApplicationConfiguration",) . toJSON) _kinesisAnalyticsV2ApplicationApplicationConfiguration
+    , fmap (("ApplicationDescription",) . toJSON) _kinesisAnalyticsV2ApplicationApplicationDescription
+    , fmap (("ApplicationName",) . toJSON) _kinesisAnalyticsV2ApplicationApplicationName
+    , (Just . ("RuntimeEnvironment",) . toJSON) _kinesisAnalyticsV2ApplicationRuntimeEnvironment
+    , (Just . ("ServiceExecutionRole",) . toJSON) _kinesisAnalyticsV2ApplicationServiceExecutionRole
+    ]
+
+instance FromJSON KinesisAnalyticsV2Application where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2Application <$>
+      (obj .:? "ApplicationConfiguration") <*>
+      (obj .:? "ApplicationDescription") <*>
+      (obj .:? "ApplicationName") <*>
+      (obj .: "RuntimeEnvironment") <*>
+      (obj .: "ServiceExecutionRole")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2Application' containing required
+-- fields as arguments.
+kinesisAnalyticsV2Application
+  :: Val Text -- ^ 'kavaRuntimeEnvironment'
+  -> Val Text -- ^ 'kavaServiceExecutionRole'
+  -> KinesisAnalyticsV2Application
+kinesisAnalyticsV2Application runtimeEnvironmentarg serviceExecutionRolearg =
+  KinesisAnalyticsV2Application
+  { _kinesisAnalyticsV2ApplicationApplicationConfiguration = Nothing
+  , _kinesisAnalyticsV2ApplicationApplicationDescription = Nothing
+  , _kinesisAnalyticsV2ApplicationApplicationName = Nothing
+  , _kinesisAnalyticsV2ApplicationRuntimeEnvironment = runtimeEnvironmentarg
+  , _kinesisAnalyticsV2ApplicationServiceExecutionRole = serviceExecutionRolearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html#cfn-kinesisanalyticsv2-application-applicationconfiguration
+kavaApplicationConfiguration :: Lens' KinesisAnalyticsV2Application (Maybe KinesisAnalyticsV2ApplicationApplicationConfiguration)
+kavaApplicationConfiguration = lens _kinesisAnalyticsV2ApplicationApplicationConfiguration (\s a -> s { _kinesisAnalyticsV2ApplicationApplicationConfiguration = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html#cfn-kinesisanalyticsv2-application-applicationdescription
+kavaApplicationDescription :: Lens' KinesisAnalyticsV2Application (Maybe (Val Text))
+kavaApplicationDescription = lens _kinesisAnalyticsV2ApplicationApplicationDescription (\s a -> s { _kinesisAnalyticsV2ApplicationApplicationDescription = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html#cfn-kinesisanalyticsv2-application-applicationname
+kavaApplicationName :: Lens' KinesisAnalyticsV2Application (Maybe (Val Text))
+kavaApplicationName = lens _kinesisAnalyticsV2ApplicationApplicationName (\s a -> s { _kinesisAnalyticsV2ApplicationApplicationName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html#cfn-kinesisanalyticsv2-application-runtimeenvironment
+kavaRuntimeEnvironment :: Lens' KinesisAnalyticsV2Application (Val Text)
+kavaRuntimeEnvironment = lens _kinesisAnalyticsV2ApplicationRuntimeEnvironment (\s a -> s { _kinesisAnalyticsV2ApplicationRuntimeEnvironment = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html#cfn-kinesisanalyticsv2-application-serviceexecutionrole
+kavaServiceExecutionRole :: Lens' KinesisAnalyticsV2Application (Val Text)
+kavaServiceExecutionRole = lens _kinesisAnalyticsV2ApplicationServiceExecutionRole (\s a -> s { _kinesisAnalyticsV2ApplicationServiceExecutionRole = a })
diff --git a/library-gen/Stratosphere/Resources/KinesisAnalyticsV2ApplicationCloudWatchLoggingOption.hs b/library-gen/Stratosphere/Resources/KinesisAnalyticsV2ApplicationCloudWatchLoggingOption.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/KinesisAnalyticsV2ApplicationCloudWatchLoggingOption.hs
@@ -0,0 +1,55 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationcloudwatchloggingoption.html
+
+module Stratosphere.Resources.KinesisAnalyticsV2ApplicationCloudWatchLoggingOption where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationCloudWatchLoggingOption. See
+-- 'kinesisAnalyticsV2ApplicationCloudWatchLoggingOption' for a more
+-- convenient constructor.
+data KinesisAnalyticsV2ApplicationCloudWatchLoggingOption =
+  KinesisAnalyticsV2ApplicationCloudWatchLoggingOption
+  { _kinesisAnalyticsV2ApplicationCloudWatchLoggingOptionApplicationName :: Val Text
+  , _kinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption :: KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationCloudWatchLoggingOption where
+  toJSON KinesisAnalyticsV2ApplicationCloudWatchLoggingOption{..} =
+    object $
+    catMaybes
+    [ (Just . ("ApplicationName",) . toJSON) _kinesisAnalyticsV2ApplicationCloudWatchLoggingOptionApplicationName
+    , (Just . ("CloudWatchLoggingOption",) . toJSON) _kinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationCloudWatchLoggingOption where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationCloudWatchLoggingOption <$>
+      (obj .: "ApplicationName") <*>
+      (obj .: "CloudWatchLoggingOption")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationCloudWatchLoggingOption'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationCloudWatchLoggingOption
+  :: Val Text -- ^ 'kavacwloApplicationName'
+  -> KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption -- ^ 'kavacwloCloudWatchLoggingOption'
+  -> KinesisAnalyticsV2ApplicationCloudWatchLoggingOption
+kinesisAnalyticsV2ApplicationCloudWatchLoggingOption applicationNamearg cloudWatchLoggingOptionarg =
+  KinesisAnalyticsV2ApplicationCloudWatchLoggingOption
+  { _kinesisAnalyticsV2ApplicationCloudWatchLoggingOptionApplicationName = applicationNamearg
+  , _kinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption = cloudWatchLoggingOptionarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationcloudwatchloggingoption.html#cfn-kinesisanalyticsv2-applicationcloudwatchloggingoption-applicationname
+kavacwloApplicationName :: Lens' KinesisAnalyticsV2ApplicationCloudWatchLoggingOption (Val Text)
+kavacwloApplicationName = lens _kinesisAnalyticsV2ApplicationCloudWatchLoggingOptionApplicationName (\s a -> s { _kinesisAnalyticsV2ApplicationCloudWatchLoggingOptionApplicationName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationcloudwatchloggingoption.html#cfn-kinesisanalyticsv2-applicationcloudwatchloggingoption-cloudwatchloggingoption
+kavacwloCloudWatchLoggingOption :: Lens' KinesisAnalyticsV2ApplicationCloudWatchLoggingOption KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption
+kavacwloCloudWatchLoggingOption = lens _kinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption (\s a -> s { _kinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption = a })
diff --git a/library-gen/Stratosphere/Resources/KinesisAnalyticsV2ApplicationOutput.hs b/library-gen/Stratosphere/Resources/KinesisAnalyticsV2ApplicationOutput.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/KinesisAnalyticsV2ApplicationOutput.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html
+
+module Stratosphere.Resources.KinesisAnalyticsV2ApplicationOutput where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationOutputOutput
+
+-- | Full data type definition for KinesisAnalyticsV2ApplicationOutput. See
+-- 'kinesisAnalyticsV2ApplicationOutput' for a more convenient constructor.
+data KinesisAnalyticsV2ApplicationOutput =
+  KinesisAnalyticsV2ApplicationOutput
+  { _kinesisAnalyticsV2ApplicationOutputApplicationName :: Val Text
+  , _kinesisAnalyticsV2ApplicationOutputOutput :: KinesisAnalyticsV2ApplicationOutputOutput
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationOutput where
+  toJSON KinesisAnalyticsV2ApplicationOutput{..} =
+    object $
+    catMaybes
+    [ (Just . ("ApplicationName",) . toJSON) _kinesisAnalyticsV2ApplicationOutputApplicationName
+    , (Just . ("Output",) . toJSON) _kinesisAnalyticsV2ApplicationOutputOutput
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationOutput where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationOutput <$>
+      (obj .: "ApplicationName") <*>
+      (obj .: "Output")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationOutput' containing required
+-- fields as arguments.
+kinesisAnalyticsV2ApplicationOutput
+  :: Val Text -- ^ 'kavaoApplicationName'
+  -> KinesisAnalyticsV2ApplicationOutputOutput -- ^ 'kavaoOutput'
+  -> KinesisAnalyticsV2ApplicationOutput
+kinesisAnalyticsV2ApplicationOutput applicationNamearg outputarg =
+  KinesisAnalyticsV2ApplicationOutput
+  { _kinesisAnalyticsV2ApplicationOutputApplicationName = applicationNamearg
+  , _kinesisAnalyticsV2ApplicationOutputOutput = outputarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html#cfn-kinesisanalyticsv2-applicationoutput-applicationname
+kavaoApplicationName :: Lens' KinesisAnalyticsV2ApplicationOutput (Val Text)
+kavaoApplicationName = lens _kinesisAnalyticsV2ApplicationOutputApplicationName (\s a -> s { _kinesisAnalyticsV2ApplicationOutputApplicationName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html#cfn-kinesisanalyticsv2-applicationoutput-output
+kavaoOutput :: Lens' KinesisAnalyticsV2ApplicationOutput KinesisAnalyticsV2ApplicationOutputOutput
+kavaoOutput = lens _kinesisAnalyticsV2ApplicationOutputOutput (\s a -> s { _kinesisAnalyticsV2ApplicationOutputOutput = a })
diff --git a/library-gen/Stratosphere/Resources/KinesisAnalyticsV2ApplicationReferenceDataSource.hs b/library-gen/Stratosphere/Resources/KinesisAnalyticsV2ApplicationReferenceDataSource.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/KinesisAnalyticsV2ApplicationReferenceDataSource.hs
@@ -0,0 +1,55 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html
+
+module Stratosphere.Resources.KinesisAnalyticsV2ApplicationReferenceDataSource where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource
+
+-- | Full data type definition for
+-- KinesisAnalyticsV2ApplicationReferenceDataSource. See
+-- 'kinesisAnalyticsV2ApplicationReferenceDataSource' for a more convenient
+-- constructor.
+data KinesisAnalyticsV2ApplicationReferenceDataSource =
+  KinesisAnalyticsV2ApplicationReferenceDataSource
+  { _kinesisAnalyticsV2ApplicationReferenceDataSourceApplicationName :: Val Text
+  , _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource :: KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource
+  } deriving (Show, Eq)
+
+instance ToJSON KinesisAnalyticsV2ApplicationReferenceDataSource where
+  toJSON KinesisAnalyticsV2ApplicationReferenceDataSource{..} =
+    object $
+    catMaybes
+    [ (Just . ("ApplicationName",) . toJSON) _kinesisAnalyticsV2ApplicationReferenceDataSourceApplicationName
+    , (Just . ("ReferenceDataSource",) . toJSON) _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource
+    ]
+
+instance FromJSON KinesisAnalyticsV2ApplicationReferenceDataSource where
+  parseJSON (Object obj) =
+    KinesisAnalyticsV2ApplicationReferenceDataSource <$>
+      (obj .: "ApplicationName") <*>
+      (obj .: "ReferenceDataSource")
+  parseJSON _ = mempty
+
+-- | Constructor for 'KinesisAnalyticsV2ApplicationReferenceDataSource'
+-- containing required fields as arguments.
+kinesisAnalyticsV2ApplicationReferenceDataSource
+  :: Val Text -- ^ 'kavardsApplicationName'
+  -> KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource -- ^ 'kavardsReferenceDataSource'
+  -> KinesisAnalyticsV2ApplicationReferenceDataSource
+kinesisAnalyticsV2ApplicationReferenceDataSource applicationNamearg referenceDataSourcearg =
+  KinesisAnalyticsV2ApplicationReferenceDataSource
+  { _kinesisAnalyticsV2ApplicationReferenceDataSourceApplicationName = applicationNamearg
+  , _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource = referenceDataSourcearg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-applicationname
+kavardsApplicationName :: Lens' KinesisAnalyticsV2ApplicationReferenceDataSource (Val Text)
+kavardsApplicationName = lens _kinesisAnalyticsV2ApplicationReferenceDataSourceApplicationName (\s a -> s { _kinesisAnalyticsV2ApplicationReferenceDataSourceApplicationName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource
+kavardsReferenceDataSource :: Lens' KinesisAnalyticsV2ApplicationReferenceDataSource KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource
+kavardsReferenceDataSource = lens _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource (\s a -> s { _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource = a })
diff --git a/library-gen/Stratosphere/Resources/OpsWorksCMServer.hs b/library-gen/Stratosphere/Resources/OpsWorksCMServer.hs
--- a/library-gen/Stratosphere/Resources/OpsWorksCMServer.hs
+++ b/library-gen/Stratosphere/Resources/OpsWorksCMServer.hs
@@ -13,7 +13,8 @@
 -- for a more convenient constructor.
 data OpsWorksCMServer =
   OpsWorksCMServer
-  { _opsWorksCMServerBackupId :: Maybe (Val Text)
+  { _opsWorksCMServerAssociatePublicIpAddress :: Maybe (Val Bool)
+  , _opsWorksCMServerBackupId :: Maybe (Val Text)
   , _opsWorksCMServerBackupRetentionCount :: Maybe (Val Integer)
   , _opsWorksCMServerDisableAutomatedBackup :: Maybe (Val Bool)
   , _opsWorksCMServerEngine :: Maybe (Val Text)
@@ -35,7 +36,8 @@
   toJSON OpsWorksCMServer{..} =
     object $
     catMaybes
-    [ fmap (("BackupId",) . toJSON) _opsWorksCMServerBackupId
+    [ fmap (("AssociatePublicIpAddress",) . toJSON . fmap Bool') _opsWorksCMServerAssociatePublicIpAddress
+    , fmap (("BackupId",) . toJSON) _opsWorksCMServerBackupId
     , fmap (("BackupRetentionCount",) . toJSON . fmap Integer') _opsWorksCMServerBackupRetentionCount
     , fmap (("DisableAutomatedBackup",) . toJSON . fmap Bool') _opsWorksCMServerDisableAutomatedBackup
     , fmap (("Engine",) . toJSON) _opsWorksCMServerEngine
@@ -56,6 +58,7 @@
 instance FromJSON OpsWorksCMServer where
   parseJSON (Object obj) =
     OpsWorksCMServer <$>
+      fmap (fmap (fmap unBool')) (obj .:? "AssociatePublicIpAddress") <*>
       (obj .:? "BackupId") <*>
       fmap (fmap (fmap unInteger')) (obj .:? "BackupRetentionCount") <*>
       fmap (fmap (fmap unBool')) (obj .:? "DisableAutomatedBackup") <*>
@@ -83,7 +86,8 @@
   -> OpsWorksCMServer
 opsWorksCMServer instanceProfileArnarg instanceTypearg serviceRoleArnarg =
   OpsWorksCMServer
-  { _opsWorksCMServerBackupId = Nothing
+  { _opsWorksCMServerAssociatePublicIpAddress = Nothing
+  , _opsWorksCMServerBackupId = Nothing
   , _opsWorksCMServerBackupRetentionCount = Nothing
   , _opsWorksCMServerDisableAutomatedBackup = Nothing
   , _opsWorksCMServerEngine = Nothing
@@ -100,6 +104,10 @@
   , _opsWorksCMServerServiceRoleArn = serviceRoleArnarg
   , _opsWorksCMServerSubnetIds = Nothing
   }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html#cfn-opsworkscm-server-associatepublicipaddress
+owcmsAssociatePublicIpAddress :: Lens' OpsWorksCMServer (Maybe (Val Bool))
+owcmsAssociatePublicIpAddress = lens _opsWorksCMServerAssociatePublicIpAddress (\s a -> s { _opsWorksCMServerAssociatePublicIpAddress = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html#cfn-opsworkscm-server-backupid
 owcmsBackupId :: Lens' OpsWorksCMServer (Maybe (Val Text))
diff --git a/library-gen/Stratosphere/Resources/RAMResourceShare.hs b/library-gen/Stratosphere/Resources/RAMResourceShare.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/RAMResourceShare.hs
@@ -0,0 +1,76 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ram-resourceshare.html
+
+module Stratosphere.Resources.RAMResourceShare where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.Tag
+
+-- | Full data type definition for RAMResourceShare. See 'ramResourceShare'
+-- for a more convenient constructor.
+data RAMResourceShare =
+  RAMResourceShare
+  { _rAMResourceShareAllowExternalPrincipals :: Maybe (Val Bool)
+  , _rAMResourceShareName :: Val Text
+  , _rAMResourceSharePrincipals :: Maybe (ValList Text)
+  , _rAMResourceShareResourceArns :: Maybe (ValList Text)
+  , _rAMResourceShareTags :: Maybe [Tag]
+  } deriving (Show, Eq)
+
+instance ToJSON RAMResourceShare where
+  toJSON RAMResourceShare{..} =
+    object $
+    catMaybes
+    [ fmap (("AllowExternalPrincipals",) . toJSON . fmap Bool') _rAMResourceShareAllowExternalPrincipals
+    , (Just . ("Name",) . toJSON) _rAMResourceShareName
+    , fmap (("Principals",) . toJSON) _rAMResourceSharePrincipals
+    , fmap (("ResourceArns",) . toJSON) _rAMResourceShareResourceArns
+    , fmap (("Tags",) . toJSON) _rAMResourceShareTags
+    ]
+
+instance FromJSON RAMResourceShare where
+  parseJSON (Object obj) =
+    RAMResourceShare <$>
+      fmap (fmap (fmap unBool')) (obj .:? "AllowExternalPrincipals") <*>
+      (obj .: "Name") <*>
+      (obj .:? "Principals") <*>
+      (obj .:? "ResourceArns") <*>
+      (obj .:? "Tags")
+  parseJSON _ = mempty
+
+-- | Constructor for 'RAMResourceShare' containing required fields as
+-- arguments.
+ramResourceShare
+  :: Val Text -- ^ 'ramrsName'
+  -> RAMResourceShare
+ramResourceShare namearg =
+  RAMResourceShare
+  { _rAMResourceShareAllowExternalPrincipals = Nothing
+  , _rAMResourceShareName = namearg
+  , _rAMResourceSharePrincipals = Nothing
+  , _rAMResourceShareResourceArns = Nothing
+  , _rAMResourceShareTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ram-resourceshare.html#cfn-ram-resourceshare-allowexternalprincipals
+ramrsAllowExternalPrincipals :: Lens' RAMResourceShare (Maybe (Val Bool))
+ramrsAllowExternalPrincipals = lens _rAMResourceShareAllowExternalPrincipals (\s a -> s { _rAMResourceShareAllowExternalPrincipals = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ram-resourceshare.html#cfn-ram-resourceshare-name
+ramrsName :: Lens' RAMResourceShare (Val Text)
+ramrsName = lens _rAMResourceShareName (\s a -> s { _rAMResourceShareName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ram-resourceshare.html#cfn-ram-resourceshare-principals
+ramrsPrincipals :: Lens' RAMResourceShare (Maybe (ValList Text))
+ramrsPrincipals = lens _rAMResourceSharePrincipals (\s a -> s { _rAMResourceSharePrincipals = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ram-resourceshare.html#cfn-ram-resourceshare-resourcearns
+ramrsResourceArns :: Lens' RAMResourceShare (Maybe (ValList Text))
+ramrsResourceArns = lens _rAMResourceShareResourceArns (\s a -> s { _rAMResourceShareResourceArns = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ram-resourceshare.html#cfn-ram-resourceshare-tags
+ramrsTags :: Lens' RAMResourceShare (Maybe [Tag])
+ramrsTags = lens _rAMResourceShareTags (\s a -> s { _rAMResourceShareTags = a })
diff --git a/library-gen/Stratosphere/Resources/RoboMakerFleet.hs b/library-gen/Stratosphere/Resources/RoboMakerFleet.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/RoboMakerFleet.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-fleet.html
+
+module Stratosphere.Resources.RoboMakerFleet where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for RoboMakerFleet. See 'roboMakerFleet' for a
+-- more convenient constructor.
+data RoboMakerFleet =
+  RoboMakerFleet
+  { _roboMakerFleetName :: Maybe (Val Text)
+  , _roboMakerFleetTags :: Maybe Object
+  } deriving (Show, Eq)
+
+instance ToJSON RoboMakerFleet where
+  toJSON RoboMakerFleet{..} =
+    object $
+    catMaybes
+    [ fmap (("Name",) . toJSON) _roboMakerFleetName
+    , fmap (("Tags",) . toJSON) _roboMakerFleetTags
+    ]
+
+instance FromJSON RoboMakerFleet where
+  parseJSON (Object obj) =
+    RoboMakerFleet <$>
+      (obj .:? "Name") <*>
+      (obj .:? "Tags")
+  parseJSON _ = mempty
+
+-- | Constructor for 'RoboMakerFleet' containing required fields as arguments.
+roboMakerFleet
+  :: RoboMakerFleet
+roboMakerFleet  =
+  RoboMakerFleet
+  { _roboMakerFleetName = Nothing
+  , _roboMakerFleetTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-fleet.html#cfn-robomaker-fleet-name
+rmfName :: Lens' RoboMakerFleet (Maybe (Val Text))
+rmfName = lens _roboMakerFleetName (\s a -> s { _roboMakerFleetName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-fleet.html#cfn-robomaker-fleet-tags
+rmfTags :: Lens' RoboMakerFleet (Maybe Object)
+rmfTags = lens _roboMakerFleetTags (\s a -> s { _roboMakerFleetTags = a })
diff --git a/library-gen/Stratosphere/Resources/RoboMakerRobot.hs b/library-gen/Stratosphere/Resources/RoboMakerRobot.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/RoboMakerRobot.hs
@@ -0,0 +1,76 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robot.html
+
+module Stratosphere.Resources.RoboMakerRobot where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for RoboMakerRobot. See 'roboMakerRobot' for a
+-- more convenient constructor.
+data RoboMakerRobot =
+  RoboMakerRobot
+  { _roboMakerRobotArchitecture :: Val Text
+  , _roboMakerRobotFleet :: Maybe (Val Text)
+  , _roboMakerRobotGreengrassGroupId :: Val Text
+  , _roboMakerRobotName :: Maybe (Val Text)
+  , _roboMakerRobotTags :: Maybe Object
+  } deriving (Show, Eq)
+
+instance ToJSON RoboMakerRobot where
+  toJSON RoboMakerRobot{..} =
+    object $
+    catMaybes
+    [ (Just . ("Architecture",) . toJSON) _roboMakerRobotArchitecture
+    , fmap (("Fleet",) . toJSON) _roboMakerRobotFleet
+    , (Just . ("GreengrassGroupId",) . toJSON) _roboMakerRobotGreengrassGroupId
+    , fmap (("Name",) . toJSON) _roboMakerRobotName
+    , fmap (("Tags",) . toJSON) _roboMakerRobotTags
+    ]
+
+instance FromJSON RoboMakerRobot where
+  parseJSON (Object obj) =
+    RoboMakerRobot <$>
+      (obj .: "Architecture") <*>
+      (obj .:? "Fleet") <*>
+      (obj .: "GreengrassGroupId") <*>
+      (obj .:? "Name") <*>
+      (obj .:? "Tags")
+  parseJSON _ = mempty
+
+-- | Constructor for 'RoboMakerRobot' containing required fields as arguments.
+roboMakerRobot
+  :: Val Text -- ^ 'rmrArchitecture'
+  -> Val Text -- ^ 'rmrGreengrassGroupId'
+  -> RoboMakerRobot
+roboMakerRobot architecturearg greengrassGroupIdarg =
+  RoboMakerRobot
+  { _roboMakerRobotArchitecture = architecturearg
+  , _roboMakerRobotFleet = Nothing
+  , _roboMakerRobotGreengrassGroupId = greengrassGroupIdarg
+  , _roboMakerRobotName = Nothing
+  , _roboMakerRobotTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robot.html#cfn-robomaker-robot-architecture
+rmrArchitecture :: Lens' RoboMakerRobot (Val Text)
+rmrArchitecture = lens _roboMakerRobotArchitecture (\s a -> s { _roboMakerRobotArchitecture = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robot.html#cfn-robomaker-robot-fleet
+rmrFleet :: Lens' RoboMakerRobot (Maybe (Val Text))
+rmrFleet = lens _roboMakerRobotFleet (\s a -> s { _roboMakerRobotFleet = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robot.html#cfn-robomaker-robot-greengrassgroupid
+rmrGreengrassGroupId :: Lens' RoboMakerRobot (Val Text)
+rmrGreengrassGroupId = lens _roboMakerRobotGreengrassGroupId (\s a -> s { _roboMakerRobotGreengrassGroupId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robot.html#cfn-robomaker-robot-name
+rmrName :: Lens' RoboMakerRobot (Maybe (Val Text))
+rmrName = lens _roboMakerRobotName (\s a -> s { _roboMakerRobotName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robot.html#cfn-robomaker-robot-tags
+rmrTags :: Lens' RoboMakerRobot (Maybe Object)
+rmrTags = lens _roboMakerRobotTags (\s a -> s { _roboMakerRobotTags = a })
diff --git a/library-gen/Stratosphere/Resources/RoboMakerRobotApplication.hs b/library-gen/Stratosphere/Resources/RoboMakerRobotApplication.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/RoboMakerRobotApplication.hs
@@ -0,0 +1,78 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplication.html
+
+module Stratosphere.Resources.RoboMakerRobotApplication where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.RoboMakerRobotApplicationRobotSoftwareSuite
+import Stratosphere.ResourceProperties.RoboMakerRobotApplicationSourceConfig
+
+-- | Full data type definition for RoboMakerRobotApplication. See
+-- 'roboMakerRobotApplication' for a more convenient constructor.
+data RoboMakerRobotApplication =
+  RoboMakerRobotApplication
+  { _roboMakerRobotApplicationCurrentRevisionId :: Maybe (Val Text)
+  , _roboMakerRobotApplicationName :: Maybe (Val Text)
+  , _roboMakerRobotApplicationRobotSoftwareSuite :: RoboMakerRobotApplicationRobotSoftwareSuite
+  , _roboMakerRobotApplicationSources :: [RoboMakerRobotApplicationSourceConfig]
+  , _roboMakerRobotApplicationTags :: Maybe Object
+  } deriving (Show, Eq)
+
+instance ToJSON RoboMakerRobotApplication where
+  toJSON RoboMakerRobotApplication{..} =
+    object $
+    catMaybes
+    [ fmap (("CurrentRevisionId",) . toJSON) _roboMakerRobotApplicationCurrentRevisionId
+    , fmap (("Name",) . toJSON) _roboMakerRobotApplicationName
+    , (Just . ("RobotSoftwareSuite",) . toJSON) _roboMakerRobotApplicationRobotSoftwareSuite
+    , (Just . ("Sources",) . toJSON) _roboMakerRobotApplicationSources
+    , fmap (("Tags",) . toJSON) _roboMakerRobotApplicationTags
+    ]
+
+instance FromJSON RoboMakerRobotApplication where
+  parseJSON (Object obj) =
+    RoboMakerRobotApplication <$>
+      (obj .:? "CurrentRevisionId") <*>
+      (obj .:? "Name") <*>
+      (obj .: "RobotSoftwareSuite") <*>
+      (obj .: "Sources") <*>
+      (obj .:? "Tags")
+  parseJSON _ = mempty
+
+-- | Constructor for 'RoboMakerRobotApplication' containing required fields as
+-- arguments.
+roboMakerRobotApplication
+  :: RoboMakerRobotApplicationRobotSoftwareSuite -- ^ 'rmraRobotSoftwareSuite'
+  -> [RoboMakerRobotApplicationSourceConfig] -- ^ 'rmraSources'
+  -> RoboMakerRobotApplication
+roboMakerRobotApplication robotSoftwareSuitearg sourcesarg =
+  RoboMakerRobotApplication
+  { _roboMakerRobotApplicationCurrentRevisionId = Nothing
+  , _roboMakerRobotApplicationName = Nothing
+  , _roboMakerRobotApplicationRobotSoftwareSuite = robotSoftwareSuitearg
+  , _roboMakerRobotApplicationSources = sourcesarg
+  , _roboMakerRobotApplicationTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplication.html#cfn-robomaker-robotapplication-currentrevisionid
+rmraCurrentRevisionId :: Lens' RoboMakerRobotApplication (Maybe (Val Text))
+rmraCurrentRevisionId = lens _roboMakerRobotApplicationCurrentRevisionId (\s a -> s { _roboMakerRobotApplicationCurrentRevisionId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplication.html#cfn-robomaker-robotapplication-name
+rmraName :: Lens' RoboMakerRobotApplication (Maybe (Val Text))
+rmraName = lens _roboMakerRobotApplicationName (\s a -> s { _roboMakerRobotApplicationName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplication.html#cfn-robomaker-robotapplication-robotsoftwaresuite
+rmraRobotSoftwareSuite :: Lens' RoboMakerRobotApplication RoboMakerRobotApplicationRobotSoftwareSuite
+rmraRobotSoftwareSuite = lens _roboMakerRobotApplicationRobotSoftwareSuite (\s a -> s { _roboMakerRobotApplicationRobotSoftwareSuite = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplication.html#cfn-robomaker-robotapplication-sources
+rmraSources :: Lens' RoboMakerRobotApplication [RoboMakerRobotApplicationSourceConfig]
+rmraSources = lens _roboMakerRobotApplicationSources (\s a -> s { _roboMakerRobotApplicationSources = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplication.html#cfn-robomaker-robotapplication-tags
+rmraTags :: Lens' RoboMakerRobotApplication (Maybe Object)
+rmraTags = lens _roboMakerRobotApplicationTags (\s a -> s { _roboMakerRobotApplicationTags = a })
diff --git a/library-gen/Stratosphere/Resources/RoboMakerRobotApplicationVersion.hs b/library-gen/Stratosphere/Resources/RoboMakerRobotApplicationVersion.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/RoboMakerRobotApplicationVersion.hs
@@ -0,0 +1,52 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplicationversion.html
+
+module Stratosphere.Resources.RoboMakerRobotApplicationVersion where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for RoboMakerRobotApplicationVersion. See
+-- 'roboMakerRobotApplicationVersion' for a more convenient constructor.
+data RoboMakerRobotApplicationVersion =
+  RoboMakerRobotApplicationVersion
+  { _roboMakerRobotApplicationVersionApplication :: Val Text
+  , _roboMakerRobotApplicationVersionCurrentRevisionId :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON RoboMakerRobotApplicationVersion where
+  toJSON RoboMakerRobotApplicationVersion{..} =
+    object $
+    catMaybes
+    [ (Just . ("Application",) . toJSON) _roboMakerRobotApplicationVersionApplication
+    , fmap (("CurrentRevisionId",) . toJSON) _roboMakerRobotApplicationVersionCurrentRevisionId
+    ]
+
+instance FromJSON RoboMakerRobotApplicationVersion where
+  parseJSON (Object obj) =
+    RoboMakerRobotApplicationVersion <$>
+      (obj .: "Application") <*>
+      (obj .:? "CurrentRevisionId")
+  parseJSON _ = mempty
+
+-- | Constructor for 'RoboMakerRobotApplicationVersion' containing required
+-- fields as arguments.
+roboMakerRobotApplicationVersion
+  :: Val Text -- ^ 'rmravApplication'
+  -> RoboMakerRobotApplicationVersion
+roboMakerRobotApplicationVersion applicationarg =
+  RoboMakerRobotApplicationVersion
+  { _roboMakerRobotApplicationVersionApplication = applicationarg
+  , _roboMakerRobotApplicationVersionCurrentRevisionId = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplicationversion.html#cfn-robomaker-robotapplicationversion-application
+rmravApplication :: Lens' RoboMakerRobotApplicationVersion (Val Text)
+rmravApplication = lens _roboMakerRobotApplicationVersionApplication (\s a -> s { _roboMakerRobotApplicationVersionApplication = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplicationversion.html#cfn-robomaker-robotapplicationversion-currentrevisionid
+rmravCurrentRevisionId :: Lens' RoboMakerRobotApplicationVersion (Maybe (Val Text))
+rmravCurrentRevisionId = lens _roboMakerRobotApplicationVersionCurrentRevisionId (\s a -> s { _roboMakerRobotApplicationVersionCurrentRevisionId = a })
diff --git a/library-gen/Stratosphere/Resources/RoboMakerSimulationApplication.hs b/library-gen/Stratosphere/Resources/RoboMakerSimulationApplication.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/RoboMakerSimulationApplication.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html
+
+module Stratosphere.Resources.RoboMakerSimulationApplication where
+
+import Stratosphere.ResourceImports
+import Stratosphere.ResourceProperties.RoboMakerSimulationApplicationRenderingEngine
+import Stratosphere.ResourceProperties.RoboMakerSimulationApplicationRobotSoftwareSuite
+import Stratosphere.ResourceProperties.RoboMakerSimulationApplicationSimulationSoftwareSuite
+import Stratosphere.ResourceProperties.RoboMakerSimulationApplicationSourceConfig
+
+-- | Full data type definition for RoboMakerSimulationApplication. See
+-- 'roboMakerSimulationApplication' for a more convenient constructor.
+data RoboMakerSimulationApplication =
+  RoboMakerSimulationApplication
+  { _roboMakerSimulationApplicationCurrentRevisionId :: Maybe (Val Text)
+  , _roboMakerSimulationApplicationName :: Maybe (Val Text)
+  , _roboMakerSimulationApplicationRenderingEngine :: RoboMakerSimulationApplicationRenderingEngine
+  , _roboMakerSimulationApplicationRobotSoftwareSuite :: RoboMakerSimulationApplicationRobotSoftwareSuite
+  , _roboMakerSimulationApplicationSimulationSoftwareSuite :: RoboMakerSimulationApplicationSimulationSoftwareSuite
+  , _roboMakerSimulationApplicationSources :: [RoboMakerSimulationApplicationSourceConfig]
+  , _roboMakerSimulationApplicationTags :: Maybe Object
+  } deriving (Show, Eq)
+
+instance ToJSON RoboMakerSimulationApplication where
+  toJSON RoboMakerSimulationApplication{..} =
+    object $
+    catMaybes
+    [ fmap (("CurrentRevisionId",) . toJSON) _roboMakerSimulationApplicationCurrentRevisionId
+    , fmap (("Name",) . toJSON) _roboMakerSimulationApplicationName
+    , (Just . ("RenderingEngine",) . toJSON) _roboMakerSimulationApplicationRenderingEngine
+    , (Just . ("RobotSoftwareSuite",) . toJSON) _roboMakerSimulationApplicationRobotSoftwareSuite
+    , (Just . ("SimulationSoftwareSuite",) . toJSON) _roboMakerSimulationApplicationSimulationSoftwareSuite
+    , (Just . ("Sources",) . toJSON) _roboMakerSimulationApplicationSources
+    , fmap (("Tags",) . toJSON) _roboMakerSimulationApplicationTags
+    ]
+
+instance FromJSON RoboMakerSimulationApplication where
+  parseJSON (Object obj) =
+    RoboMakerSimulationApplication <$>
+      (obj .:? "CurrentRevisionId") <*>
+      (obj .:? "Name") <*>
+      (obj .: "RenderingEngine") <*>
+      (obj .: "RobotSoftwareSuite") <*>
+      (obj .: "SimulationSoftwareSuite") <*>
+      (obj .: "Sources") <*>
+      (obj .:? "Tags")
+  parseJSON _ = mempty
+
+-- | Constructor for 'RoboMakerSimulationApplication' containing required
+-- fields as arguments.
+roboMakerSimulationApplication
+  :: RoboMakerSimulationApplicationRenderingEngine -- ^ 'rmsaRenderingEngine'
+  -> RoboMakerSimulationApplicationRobotSoftwareSuite -- ^ 'rmsaRobotSoftwareSuite'
+  -> RoboMakerSimulationApplicationSimulationSoftwareSuite -- ^ 'rmsaSimulationSoftwareSuite'
+  -> [RoboMakerSimulationApplicationSourceConfig] -- ^ 'rmsaSources'
+  -> RoboMakerSimulationApplication
+roboMakerSimulationApplication renderingEnginearg robotSoftwareSuitearg simulationSoftwareSuitearg sourcesarg =
+  RoboMakerSimulationApplication
+  { _roboMakerSimulationApplicationCurrentRevisionId = Nothing
+  , _roboMakerSimulationApplicationName = Nothing
+  , _roboMakerSimulationApplicationRenderingEngine = renderingEnginearg
+  , _roboMakerSimulationApplicationRobotSoftwareSuite = robotSoftwareSuitearg
+  , _roboMakerSimulationApplicationSimulationSoftwareSuite = simulationSoftwareSuitearg
+  , _roboMakerSimulationApplicationSources = sourcesarg
+  , _roboMakerSimulationApplicationTags = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-currentrevisionid
+rmsaCurrentRevisionId :: Lens' RoboMakerSimulationApplication (Maybe (Val Text))
+rmsaCurrentRevisionId = lens _roboMakerSimulationApplicationCurrentRevisionId (\s a -> s { _roboMakerSimulationApplicationCurrentRevisionId = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-name
+rmsaName :: Lens' RoboMakerSimulationApplication (Maybe (Val Text))
+rmsaName = lens _roboMakerSimulationApplicationName (\s a -> s { _roboMakerSimulationApplicationName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-renderingengine
+rmsaRenderingEngine :: Lens' RoboMakerSimulationApplication RoboMakerSimulationApplicationRenderingEngine
+rmsaRenderingEngine = lens _roboMakerSimulationApplicationRenderingEngine (\s a -> s { _roboMakerSimulationApplicationRenderingEngine = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-robotsoftwaresuite
+rmsaRobotSoftwareSuite :: Lens' RoboMakerSimulationApplication RoboMakerSimulationApplicationRobotSoftwareSuite
+rmsaRobotSoftwareSuite = lens _roboMakerSimulationApplicationRobotSoftwareSuite (\s a -> s { _roboMakerSimulationApplicationRobotSoftwareSuite = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-simulationsoftwaresuite
+rmsaSimulationSoftwareSuite :: Lens' RoboMakerSimulationApplication RoboMakerSimulationApplicationSimulationSoftwareSuite
+rmsaSimulationSoftwareSuite = lens _roboMakerSimulationApplicationSimulationSoftwareSuite (\s a -> s { _roboMakerSimulationApplicationSimulationSoftwareSuite = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-sources
+rmsaSources :: Lens' RoboMakerSimulationApplication [RoboMakerSimulationApplicationSourceConfig]
+rmsaSources = lens _roboMakerSimulationApplicationSources (\s a -> s { _roboMakerSimulationApplicationSources = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-tags
+rmsaTags :: Lens' RoboMakerSimulationApplication (Maybe Object)
+rmsaTags = lens _roboMakerSimulationApplicationTags (\s a -> s { _roboMakerSimulationApplicationTags = a })
diff --git a/library-gen/Stratosphere/Resources/RoboMakerSimulationApplicationVersion.hs b/library-gen/Stratosphere/Resources/RoboMakerSimulationApplicationVersion.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/RoboMakerSimulationApplicationVersion.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplicationversion.html
+
+module Stratosphere.Resources.RoboMakerSimulationApplicationVersion where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for RoboMakerSimulationApplicationVersion. See
+-- 'roboMakerSimulationApplicationVersion' for a more convenient
+-- constructor.
+data RoboMakerSimulationApplicationVersion =
+  RoboMakerSimulationApplicationVersion
+  { _roboMakerSimulationApplicationVersionApplication :: Val Text
+  , _roboMakerSimulationApplicationVersionCurrentRevisionId :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON RoboMakerSimulationApplicationVersion where
+  toJSON RoboMakerSimulationApplicationVersion{..} =
+    object $
+    catMaybes
+    [ (Just . ("Application",) . toJSON) _roboMakerSimulationApplicationVersionApplication
+    , fmap (("CurrentRevisionId",) . toJSON) _roboMakerSimulationApplicationVersionCurrentRevisionId
+    ]
+
+instance FromJSON RoboMakerSimulationApplicationVersion where
+  parseJSON (Object obj) =
+    RoboMakerSimulationApplicationVersion <$>
+      (obj .: "Application") <*>
+      (obj .:? "CurrentRevisionId")
+  parseJSON _ = mempty
+
+-- | Constructor for 'RoboMakerSimulationApplicationVersion' containing
+-- required fields as arguments.
+roboMakerSimulationApplicationVersion
+  :: Val Text -- ^ 'rmsavApplication'
+  -> RoboMakerSimulationApplicationVersion
+roboMakerSimulationApplicationVersion applicationarg =
+  RoboMakerSimulationApplicationVersion
+  { _roboMakerSimulationApplicationVersionApplication = applicationarg
+  , _roboMakerSimulationApplicationVersionCurrentRevisionId = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplicationversion.html#cfn-robomaker-simulationapplicationversion-application
+rmsavApplication :: Lens' RoboMakerSimulationApplicationVersion (Val Text)
+rmsavApplication = lens _roboMakerSimulationApplicationVersionApplication (\s a -> s { _roboMakerSimulationApplicationVersionApplication = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplicationversion.html#cfn-robomaker-simulationapplicationversion-currentrevisionid
+rmsavCurrentRevisionId :: Lens' RoboMakerSimulationApplicationVersion (Maybe (Val Text))
+rmsavCurrentRevisionId = lens _roboMakerSimulationApplicationVersionCurrentRevisionId (\s a -> s { _roboMakerSimulationApplicationVersionCurrentRevisionId = a })
diff --git a/library-gen/Stratosphere/Resources/SNSSubscription.hs b/library-gen/Stratosphere/Resources/SNSSubscription.hs
--- a/library-gen/Stratosphere/Resources/SNSSubscription.hs
+++ b/library-gen/Stratosphere/Resources/SNSSubscription.hs
@@ -16,10 +16,10 @@
   { _sNSSubscriptionDeliveryPolicy :: Maybe Object
   , _sNSSubscriptionEndpoint :: Maybe (Val Text)
   , _sNSSubscriptionFilterPolicy :: Maybe Object
-  , _sNSSubscriptionProtocol :: Maybe (Val SNSProtocol)
+  , _sNSSubscriptionProtocol :: Val SNSProtocol
   , _sNSSubscriptionRawMessageDelivery :: Maybe (Val Bool)
   , _sNSSubscriptionRegion :: Maybe (Val Text)
-  , _sNSSubscriptionTopicArn :: Maybe (Val Text)
+  , _sNSSubscriptionTopicArn :: Val Text
   } deriving (Show, Eq)
 
 instance ToJSON SNSSubscription where
@@ -29,10 +29,10 @@
     [ fmap (("DeliveryPolicy",) . toJSON) _sNSSubscriptionDeliveryPolicy
     , fmap (("Endpoint",) . toJSON) _sNSSubscriptionEndpoint
     , fmap (("FilterPolicy",) . toJSON) _sNSSubscriptionFilterPolicy
-    , fmap (("Protocol",) . toJSON) _sNSSubscriptionProtocol
+    , (Just . ("Protocol",) . toJSON) _sNSSubscriptionProtocol
     , fmap (("RawMessageDelivery",) . toJSON . fmap Bool') _sNSSubscriptionRawMessageDelivery
     , fmap (("Region",) . toJSON) _sNSSubscriptionRegion
-    , fmap (("TopicArn",) . toJSON) _sNSSubscriptionTopicArn
+    , (Just . ("TopicArn",) . toJSON) _sNSSubscriptionTopicArn
     ]
 
 instance FromJSON SNSSubscription where
@@ -41,25 +41,27 @@
       (obj .:? "DeliveryPolicy") <*>
       (obj .:? "Endpoint") <*>
       (obj .:? "FilterPolicy") <*>
-      (obj .:? "Protocol") <*>
+      (obj .: "Protocol") <*>
       fmap (fmap (fmap unBool')) (obj .:? "RawMessageDelivery") <*>
       (obj .:? "Region") <*>
-      (obj .:? "TopicArn")
+      (obj .: "TopicArn")
   parseJSON _ = mempty
 
 -- | Constructor for 'SNSSubscription' containing required fields as
 -- arguments.
 snsSubscription
-  :: SNSSubscription
-snsSubscription  =
+  :: Val SNSProtocol -- ^ 'snssProtocol'
+  -> Val Text -- ^ 'snssTopicArn'
+  -> SNSSubscription
+snsSubscription protocolarg topicArnarg =
   SNSSubscription
   { _sNSSubscriptionDeliveryPolicy = Nothing
   , _sNSSubscriptionEndpoint = Nothing
   , _sNSSubscriptionFilterPolicy = Nothing
-  , _sNSSubscriptionProtocol = Nothing
+  , _sNSSubscriptionProtocol = protocolarg
   , _sNSSubscriptionRawMessageDelivery = Nothing
   , _sNSSubscriptionRegion = Nothing
-  , _sNSSubscriptionTopicArn = Nothing
+  , _sNSSubscriptionTopicArn = topicArnarg
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-deliverypolicy
@@ -75,7 +77,7 @@
 snssFilterPolicy = lens _sNSSubscriptionFilterPolicy (\s a -> s { _sNSSubscriptionFilterPolicy = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-protocol
-snssProtocol :: Lens' SNSSubscription (Maybe (Val SNSProtocol))
+snssProtocol :: Lens' SNSSubscription (Val SNSProtocol)
 snssProtocol = lens _sNSSubscriptionProtocol (\s a -> s { _sNSSubscriptionProtocol = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-rawmessagedelivery
@@ -87,5 +89,5 @@
 snssRegion = lens _sNSSubscriptionRegion (\s a -> s { _sNSSubscriptionRegion = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#topicarn
-snssTopicArn :: Lens' SNSSubscription (Maybe (Val Text))
+snssTopicArn :: Lens' SNSSubscription (Val Text)
 snssTopicArn = lens _sNSSubscriptionTopicArn (\s a -> s { _sNSSubscriptionTopicArn = a })
diff --git a/library-gen/Stratosphere/Resources/SSMMaintenanceWindow.hs b/library-gen/Stratosphere/Resources/SSMMaintenanceWindow.hs
--- a/library-gen/Stratosphere/Resources/SSMMaintenanceWindow.hs
+++ b/library-gen/Stratosphere/Resources/SSMMaintenanceWindow.hs
@@ -7,7 +7,7 @@
 module Stratosphere.Resources.SSMMaintenanceWindow where
 
 import Stratosphere.ResourceImports
-
+import Stratosphere.ResourceProperties.Tag
 
 -- | Full data type definition for SSMMaintenanceWindow. See
 -- 'ssmMaintenanceWindow' for a more convenient constructor.
@@ -22,6 +22,7 @@
   , _sSMMaintenanceWindowSchedule :: Val Text
   , _sSMMaintenanceWindowScheduleTimezone :: Maybe (Val Text)
   , _sSMMaintenanceWindowStartDate :: Maybe (Val Text)
+  , _sSMMaintenanceWindowTags :: Maybe [Tag]
   } deriving (Show, Eq)
 
 instance ToJSON SSMMaintenanceWindow where
@@ -37,6 +38,7 @@
     , (Just . ("Schedule",) . toJSON) _sSMMaintenanceWindowSchedule
     , fmap (("ScheduleTimezone",) . toJSON) _sSMMaintenanceWindowScheduleTimezone
     , fmap (("StartDate",) . toJSON) _sSMMaintenanceWindowStartDate
+    , fmap (("Tags",) . toJSON) _sSMMaintenanceWindowTags
     ]
 
 instance FromJSON SSMMaintenanceWindow where
@@ -50,7 +52,8 @@
       (obj .: "Name") <*>
       (obj .: "Schedule") <*>
       (obj .:? "ScheduleTimezone") <*>
-      (obj .:? "StartDate")
+      (obj .:? "StartDate") <*>
+      (obj .:? "Tags")
   parseJSON _ = mempty
 
 -- | Constructor for 'SSMMaintenanceWindow' containing required fields as
@@ -73,6 +76,7 @@
   , _sSMMaintenanceWindowSchedule = schedulearg
   , _sSMMaintenanceWindowScheduleTimezone = Nothing
   , _sSMMaintenanceWindowStartDate = Nothing
+  , _sSMMaintenanceWindowTags = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-allowunassociatedtargets
@@ -110,3 +114,7 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-startdate
 ssmmwStartDate :: Lens' SSMMaintenanceWindow (Maybe (Val Text))
 ssmmwStartDate = lens _sSMMaintenanceWindowStartDate (\s a -> s { _sSMMaintenanceWindowStartDate = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-tags
+ssmmwTags :: Lens' SSMMaintenanceWindow (Maybe [Tag])
+ssmmwTags = lens _sSMMaintenanceWindowTags (\s a -> s { _sSMMaintenanceWindowTags = 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: e95cff19c73e1cabc2aa2df35a2af67996c3163bbe98fc87d625943bb0bb0279
+-- hash: 1b39c35a049bf62220d11130ca8043229817186cc4af03e3f7be35aeb3519779
 
 name:           stratosphere
-version:        0.30.1
+version:        0.31.0
 synopsis:       EDSL for AWS CloudFormation
 description:    EDSL for AWS CloudFormation
 category:       AWS, Cloud
@@ -74,6 +74,10 @@
       Stratosphere.ResourceProperties.ApiGatewayUsagePlanApiStage
       Stratosphere.ResourceProperties.ApiGatewayUsagePlanQuotaSettings
       Stratosphere.ResourceProperties.ApiGatewayUsagePlanThrottleSettings
+      Stratosphere.ResourceProperties.ApiGatewayV2RouteParameterConstraints
+      Stratosphere.ResourceProperties.ApiGatewayV2RouteResponseParameterConstraints
+      Stratosphere.ResourceProperties.ApiGatewayV2StageAccessLogSettings
+      Stratosphere.ResourceProperties.ApiGatewayV2StageRouteSettings
       Stratosphere.ResourceProperties.ApplicationAutoScalingScalableTargetScalableTargetAction
       Stratosphere.ResourceProperties.ApplicationAutoScalingScalableTargetScheduledAction
       Stratosphere.ResourceProperties.ApplicationAutoScalingScalingPolicyCustomizedMetricSpecification
@@ -176,6 +180,9 @@
       Stratosphere.ResourceProperties.CloudTrailTrailDataResource
       Stratosphere.ResourceProperties.CloudTrailTrailEventSelector
       Stratosphere.ResourceProperties.CloudWatchAlarmDimension
+      Stratosphere.ResourceProperties.CloudWatchAlarmMetric
+      Stratosphere.ResourceProperties.CloudWatchAlarmMetricDataQuery
+      Stratosphere.ResourceProperties.CloudWatchAlarmMetricStat
       Stratosphere.ResourceProperties.CodeBuildProjectArtifacts
       Stratosphere.ResourceProperties.CodeBuildProjectCloudWatchLogsConfig
       Stratosphere.ResourceProperties.CodeBuildProjectEnvironment
@@ -188,6 +195,7 @@
       Stratosphere.ResourceProperties.CodeBuildProjectSource
       Stratosphere.ResourceProperties.CodeBuildProjectSourceAuth
       Stratosphere.ResourceProperties.CodeBuildProjectVpcConfig
+      Stratosphere.ResourceProperties.CodeBuildProjectWebhookFilter
       Stratosphere.ResourceProperties.CodeCommitRepositoryRepositoryTrigger
       Stratosphere.ResourceProperties.CodeDeployDeploymentConfigMinimumHealthyHosts
       Stratosphere.ResourceProperties.CodeDeployDeploymentGroupAlarm
@@ -299,13 +307,19 @@
       Stratosphere.ResourceProperties.EC2InstanceSsmAssociation
       Stratosphere.ResourceProperties.EC2InstanceVolume
       Stratosphere.ResourceProperties.EC2LaunchTemplateBlockDeviceMapping
+      Stratosphere.ResourceProperties.EC2LaunchTemplateCapacityReservationSpecification
+      Stratosphere.ResourceProperties.EC2LaunchTemplateCapacityReservationTarget
+      Stratosphere.ResourceProperties.EC2LaunchTemplateCpuOptions
       Stratosphere.ResourceProperties.EC2LaunchTemplateCreditSpecification
       Stratosphere.ResourceProperties.EC2LaunchTemplateEbs
       Stratosphere.ResourceProperties.EC2LaunchTemplateElasticGpuSpecification
+      Stratosphere.ResourceProperties.EC2LaunchTemplateHibernationOptions
       Stratosphere.ResourceProperties.EC2LaunchTemplateIamInstanceProfile
       Stratosphere.ResourceProperties.EC2LaunchTemplateInstanceMarketOptions
       Stratosphere.ResourceProperties.EC2LaunchTemplateIpv6Add
       Stratosphere.ResourceProperties.EC2LaunchTemplateLaunchTemplateData
+      Stratosphere.ResourceProperties.EC2LaunchTemplateLaunchTemplateElasticInferenceAccelerator
+      Stratosphere.ResourceProperties.EC2LaunchTemplateLicenseSpecification
       Stratosphere.ResourceProperties.EC2LaunchTemplateMonitoring
       Stratosphere.ResourceProperties.EC2LaunchTemplateNetworkInterface
       Stratosphere.ResourceProperties.EC2LaunchTemplatePlacement
@@ -464,6 +478,9 @@
       Stratosphere.ResourceProperties.EventsRuleRunCommandTarget
       Stratosphere.ResourceProperties.EventsRuleSqsParameters
       Stratosphere.ResourceProperties.EventsRuleTarget
+      Stratosphere.ResourceProperties.FSxFileSystemLustreConfiguration
+      Stratosphere.ResourceProperties.FSxFileSystemTagEntry
+      Stratosphere.ResourceProperties.FSxFileSystemWindowsConfiguration
       Stratosphere.ResourceProperties.GameLiftAliasRoutingStrategy
       Stratosphere.ResourceProperties.GameLiftBuildS3Location
       Stratosphere.ResourceProperties.GameLiftFleetIpPermission
@@ -573,6 +590,44 @@
       Stratosphere.ResourceProperties.KinesisAnalyticsApplicationReferenceDataSourceReferenceDataSource
       Stratosphere.ResourceProperties.KinesisAnalyticsApplicationReferenceDataSourceReferenceSchema
       Stratosphere.ResourceProperties.KinesisAnalyticsApplicationReferenceDataSourceS3ReferenceDataSource
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationApplicationCodeConfiguration
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationApplicationConfiguration
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationCheckpointConfiguration
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationCodeContent
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationCSVMappingParameters
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationEnvironmentProperties
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationInput
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationInputLambdaProcessor
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationInputParallelism
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationInputProcessingConfiguration
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationInputSchema
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationJSONMappingParameters
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationKinesisFirehoseInput
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationKinesisStreamsInput
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationMappingParameters
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationMonitoringConfiguration
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationOutputDestinationSchema
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationOutputLambdaOutput
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationOutputOutput
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationParallelismConfiguration
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationPropertyGroup
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationRecordColumn
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationRecordFormat
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationS3ContentLocation
+      Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationSqlApplicationConfiguration
       Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamBufferingHints
       Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions
       Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamCopyCommand
@@ -626,6 +681,12 @@
       Stratosphere.ResourceProperties.RDSOptionGroupOptionSetting
       Stratosphere.ResourceProperties.RedshiftClusterLoggingProperties
       Stratosphere.ResourceProperties.RedshiftClusterParameterGroupParameter
+      Stratosphere.ResourceProperties.RoboMakerRobotApplicationRobotSoftwareSuite
+      Stratosphere.ResourceProperties.RoboMakerRobotApplicationSourceConfig
+      Stratosphere.ResourceProperties.RoboMakerSimulationApplicationRenderingEngine
+      Stratosphere.ResourceProperties.RoboMakerSimulationApplicationRobotSoftwareSuite
+      Stratosphere.ResourceProperties.RoboMakerSimulationApplicationSimulationSoftwareSuite
+      Stratosphere.ResourceProperties.RoboMakerSimulationApplicationSourceConfig
       Stratosphere.ResourceProperties.Route53HealthCheckAlarmIdentifier
       Stratosphere.ResourceProperties.Route53HealthCheckHealthCheckConfig
       Stratosphere.ResourceProperties.Route53HealthCheckHealthCheckTag
@@ -774,6 +835,15 @@
       Stratosphere.Resources.ApiGatewayStage
       Stratosphere.Resources.ApiGatewayUsagePlan
       Stratosphere.Resources.ApiGatewayUsagePlanKey
+      Stratosphere.Resources.ApiGatewayV2Api
+      Stratosphere.Resources.ApiGatewayV2Authorizer
+      Stratosphere.Resources.ApiGatewayV2Deployment
+      Stratosphere.Resources.ApiGatewayV2Integration
+      Stratosphere.Resources.ApiGatewayV2IntegrationResponse
+      Stratosphere.Resources.ApiGatewayV2Model
+      Stratosphere.Resources.ApiGatewayV2Route
+      Stratosphere.Resources.ApiGatewayV2RouteResponse
+      Stratosphere.Resources.ApiGatewayV2Stage
       Stratosphere.Resources.ApiGatewayVpcLink
       Stratosphere.Resources.ApplicationAutoScalingScalableTarget
       Stratosphere.Resources.ApplicationAutoScalingScalingPolicy
@@ -933,6 +1003,7 @@
       Stratosphere.Resources.EMRStep
       Stratosphere.Resources.EventsEventBusPolicy
       Stratosphere.Resources.EventsRule
+      Stratosphere.Resources.FSxFileSystem
       Stratosphere.Resources.GameLiftAlias
       Stratosphere.Resources.GameLiftBuild
       Stratosphere.Resources.GameLiftFleet
@@ -979,6 +1050,10 @@
       Stratosphere.Resources.KinesisAnalyticsApplication
       Stratosphere.Resources.KinesisAnalyticsApplicationOutput
       Stratosphere.Resources.KinesisAnalyticsApplicationReferenceDataSource
+      Stratosphere.Resources.KinesisAnalyticsV2Application
+      Stratosphere.Resources.KinesisAnalyticsV2ApplicationCloudWatchLoggingOption
+      Stratosphere.Resources.KinesisAnalyticsV2ApplicationOutput
+      Stratosphere.Resources.KinesisAnalyticsV2ApplicationReferenceDataSource
       Stratosphere.Resources.KinesisFirehoseDeliveryStream
       Stratosphere.Resources.KinesisStream
       Stratosphere.Resources.KinesisStreamConsumer
@@ -1009,6 +1084,7 @@
       Stratosphere.Resources.OpsWorksStack
       Stratosphere.Resources.OpsWorksUserProfile
       Stratosphere.Resources.OpsWorksVolume
+      Stratosphere.Resources.RAMResourceShare
       Stratosphere.Resources.RDSDBCluster
       Stratosphere.Resources.RDSDBClusterParameterGroup
       Stratosphere.Resources.RDSDBInstance
@@ -1023,6 +1099,12 @@
       Stratosphere.Resources.RedshiftClusterSecurityGroup
       Stratosphere.Resources.RedshiftClusterSecurityGroupIngress
       Stratosphere.Resources.RedshiftClusterSubnetGroup
+      Stratosphere.Resources.RoboMakerFleet
+      Stratosphere.Resources.RoboMakerRobot
+      Stratosphere.Resources.RoboMakerRobotApplication
+      Stratosphere.Resources.RoboMakerRobotApplicationVersion
+      Stratosphere.Resources.RoboMakerSimulationApplication
+      Stratosphere.Resources.RoboMakerSimulationApplicationVersion
       Stratosphere.Resources.Route53HealthCheck
       Stratosphere.Resources.Route53HostedZone
       Stratosphere.Resources.Route53RecordSet
