diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Change Log
 
+## 0.24.4
+
+* Update resource specification document to new unspecified version
+
 ## 0.24.3
 
 * Update resource specification document to new unspecified version
diff --git a/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectArtifacts.hs b/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectArtifacts.hs
--- a/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectArtifacts.hs
+++ b/library-gen/Stratosphere/ResourceProperties/CodeBuildProjectArtifacts.hs
@@ -13,9 +13,11 @@
 -- 'codeBuildProjectArtifacts' for a more convenient constructor.
 data CodeBuildProjectArtifacts =
   CodeBuildProjectArtifacts
-  { _codeBuildProjectArtifactsLocation :: Maybe (Val Text)
+  { _codeBuildProjectArtifactsEncryptionDisabled :: Maybe (Val Bool)
+  , _codeBuildProjectArtifactsLocation :: Maybe (Val Text)
   , _codeBuildProjectArtifactsName :: Maybe (Val Text)
   , _codeBuildProjectArtifactsNamespaceType :: Maybe (Val Text)
+  , _codeBuildProjectArtifactsOverrideArtifactName :: Maybe (Val Bool)
   , _codeBuildProjectArtifactsPackaging :: Maybe (Val Text)
   , _codeBuildProjectArtifactsPath :: Maybe (Val Text)
   , _codeBuildProjectArtifactsType :: Val Text
@@ -25,9 +27,11 @@
   toJSON CodeBuildProjectArtifacts{..} =
     object $
     catMaybes
-    [ fmap (("Location",) . toJSON) _codeBuildProjectArtifactsLocation
+    [ fmap (("EncryptionDisabled",) . toJSON . fmap Bool') _codeBuildProjectArtifactsEncryptionDisabled
+    , fmap (("Location",) . toJSON) _codeBuildProjectArtifactsLocation
     , fmap (("Name",) . toJSON) _codeBuildProjectArtifactsName
     , fmap (("NamespaceType",) . toJSON) _codeBuildProjectArtifactsNamespaceType
+    , fmap (("OverrideArtifactName",) . toJSON . fmap Bool') _codeBuildProjectArtifactsOverrideArtifactName
     , fmap (("Packaging",) . toJSON) _codeBuildProjectArtifactsPackaging
     , fmap (("Path",) . toJSON) _codeBuildProjectArtifactsPath
     , (Just . ("Type",) . toJSON) _codeBuildProjectArtifactsType
@@ -36,9 +40,11 @@
 instance FromJSON CodeBuildProjectArtifacts where
   parseJSON (Object obj) =
     CodeBuildProjectArtifacts <$>
+      fmap (fmap (fmap unBool')) (obj .:? "EncryptionDisabled") <*>
       (obj .:? "Location") <*>
       (obj .:? "Name") <*>
       (obj .:? "NamespaceType") <*>
+      fmap (fmap (fmap unBool')) (obj .:? "OverrideArtifactName") <*>
       (obj .:? "Packaging") <*>
       (obj .:? "Path") <*>
       (obj .: "Type")
@@ -51,14 +57,20 @@
   -> CodeBuildProjectArtifacts
 codeBuildProjectArtifacts typearg =
   CodeBuildProjectArtifacts
-  { _codeBuildProjectArtifactsLocation = Nothing
+  { _codeBuildProjectArtifactsEncryptionDisabled = Nothing
+  , _codeBuildProjectArtifactsLocation = Nothing
   , _codeBuildProjectArtifactsName = Nothing
   , _codeBuildProjectArtifactsNamespaceType = Nothing
+  , _codeBuildProjectArtifactsOverrideArtifactName = Nothing
   , _codeBuildProjectArtifactsPackaging = Nothing
   , _codeBuildProjectArtifactsPath = Nothing
   , _codeBuildProjectArtifactsType = typearg
   }
 
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-encryptiondisabled
+cbpaEncryptionDisabled :: Lens' CodeBuildProjectArtifacts (Maybe (Val Bool))
+cbpaEncryptionDisabled = lens _codeBuildProjectArtifactsEncryptionDisabled (\s a -> s { _codeBuildProjectArtifactsEncryptionDisabled = a })
+
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-location
 cbpaLocation :: Lens' CodeBuildProjectArtifacts (Maybe (Val Text))
 cbpaLocation = lens _codeBuildProjectArtifactsLocation (\s a -> s { _codeBuildProjectArtifactsLocation = a })
@@ -70,6 +82,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-namespacetype
 cbpaNamespaceType :: Lens' CodeBuildProjectArtifacts (Maybe (Val Text))
 cbpaNamespaceType = lens _codeBuildProjectArtifactsNamespaceType (\s a -> s { _codeBuildProjectArtifactsNamespaceType = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-overrideartifactname
+cbpaOverrideArtifactName :: Lens' CodeBuildProjectArtifacts (Maybe (Val Bool))
+cbpaOverrideArtifactName = lens _codeBuildProjectArtifactsOverrideArtifactName (\s a -> s { _codeBuildProjectArtifactsOverrideArtifactName = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-packaging
 cbpaPackaging :: Lens' CodeBuildProjectArtifacts (Maybe (Val Text))
diff --git a/library-gen/Stratosphere/ResourceProperties/GlueClassifierJsonClassifier.hs b/library-gen/Stratosphere/ResourceProperties/GlueClassifierJsonClassifier.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/GlueClassifierJsonClassifier.hs
@@ -0,0 +1,52 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-jsonclassifier.html
+
+module Stratosphere.ResourceProperties.GlueClassifierJsonClassifier where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for GlueClassifierJsonClassifier. See
+-- 'glueClassifierJsonClassifier' for a more convenient constructor.
+data GlueClassifierJsonClassifier =
+  GlueClassifierJsonClassifier
+  { _glueClassifierJsonClassifierJsonPath :: Val Text
+  , _glueClassifierJsonClassifierName :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON GlueClassifierJsonClassifier where
+  toJSON GlueClassifierJsonClassifier{..} =
+    object $
+    catMaybes
+    [ (Just . ("JsonPath",) . toJSON) _glueClassifierJsonClassifierJsonPath
+    , fmap (("Name",) . toJSON) _glueClassifierJsonClassifierName
+    ]
+
+instance FromJSON GlueClassifierJsonClassifier where
+  parseJSON (Object obj) =
+    GlueClassifierJsonClassifier <$>
+      (obj .: "JsonPath") <*>
+      (obj .:? "Name")
+  parseJSON _ = mempty
+
+-- | Constructor for 'GlueClassifierJsonClassifier' containing required fields
+-- as arguments.
+glueClassifierJsonClassifier
+  :: Val Text -- ^ 'gcjcJsonPath'
+  -> GlueClassifierJsonClassifier
+glueClassifierJsonClassifier jsonPatharg =
+  GlueClassifierJsonClassifier
+  { _glueClassifierJsonClassifierJsonPath = jsonPatharg
+  , _glueClassifierJsonClassifierName = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-jsonclassifier.html#cfn-glue-classifier-jsonclassifier-jsonpath
+gcjcJsonPath :: Lens' GlueClassifierJsonClassifier (Val Text)
+gcjcJsonPath = lens _glueClassifierJsonClassifierJsonPath (\s a -> s { _glueClassifierJsonClassifierJsonPath = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-jsonclassifier.html#cfn-glue-classifier-jsonclassifier-name
+gcjcName :: Lens' GlueClassifierJsonClassifier (Maybe (Val Text))
+gcjcName = lens _glueClassifierJsonClassifierName (\s a -> s { _glueClassifierJsonClassifierName = a })
diff --git a/library-gen/Stratosphere/ResourceProperties/GlueClassifierXMLClassifier.hs b/library-gen/Stratosphere/ResourceProperties/GlueClassifierXMLClassifier.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/ResourceProperties/GlueClassifierXMLClassifier.hs
@@ -0,0 +1,61 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-xmlclassifier.html
+
+module Stratosphere.ResourceProperties.GlueClassifierXMLClassifier where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for GlueClassifierXMLClassifier. See
+-- 'glueClassifierXMLClassifier' for a more convenient constructor.
+data GlueClassifierXMLClassifier =
+  GlueClassifierXMLClassifier
+  { _glueClassifierXMLClassifierClassification :: Val Text
+  , _glueClassifierXMLClassifierName :: Maybe (Val Text)
+  , _glueClassifierXMLClassifierRowTag :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON GlueClassifierXMLClassifier where
+  toJSON GlueClassifierXMLClassifier{..} =
+    object $
+    catMaybes
+    [ (Just . ("Classification",) . toJSON) _glueClassifierXMLClassifierClassification
+    , fmap (("Name",) . toJSON) _glueClassifierXMLClassifierName
+    , (Just . ("RowTag",) . toJSON) _glueClassifierXMLClassifierRowTag
+    ]
+
+instance FromJSON GlueClassifierXMLClassifier where
+  parseJSON (Object obj) =
+    GlueClassifierXMLClassifier <$>
+      (obj .: "Classification") <*>
+      (obj .:? "Name") <*>
+      (obj .: "RowTag")
+  parseJSON _ = mempty
+
+-- | Constructor for 'GlueClassifierXMLClassifier' containing required fields
+-- as arguments.
+glueClassifierXMLClassifier
+  :: Val Text -- ^ 'gcxmlcClassification'
+  -> Val Text -- ^ 'gcxmlcRowTag'
+  -> GlueClassifierXMLClassifier
+glueClassifierXMLClassifier classificationarg rowTagarg =
+  GlueClassifierXMLClassifier
+  { _glueClassifierXMLClassifierClassification = classificationarg
+  , _glueClassifierXMLClassifierName = Nothing
+  , _glueClassifierXMLClassifierRowTag = rowTagarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-xmlclassifier.html#cfn-glue-classifier-xmlclassifier-classification
+gcxmlcClassification :: Lens' GlueClassifierXMLClassifier (Val Text)
+gcxmlcClassification = lens _glueClassifierXMLClassifierClassification (\s a -> s { _glueClassifierXMLClassifierClassification = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-xmlclassifier.html#cfn-glue-classifier-xmlclassifier-name
+gcxmlcName :: Lens' GlueClassifierXMLClassifier (Maybe (Val Text))
+gcxmlcName = lens _glueClassifierXMLClassifierName (\s a -> s { _glueClassifierXMLClassifierName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-xmlclassifier.html#cfn-glue-classifier-xmlclassifier-rowtag
+gcxmlcRowTag :: Lens' GlueClassifierXMLClassifier (Val Text)
+gcxmlcRowTag = lens _glueClassifierXMLClassifierRowTag (\s a -> s { _glueClassifierXMLClassifierRowTag = 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
@@ -164,6 +164,7 @@
 import Stratosphere.Resources.EC2VPCDHCPOptionsAssociation as X
 import Stratosphere.Resources.EC2VPCEndpoint as X
 import Stratosphere.Resources.EC2VPCEndpointConnectionNotification as X
+import Stratosphere.Resources.EC2VPCEndpointServicePermissions as X
 import Stratosphere.Resources.EC2VPCGatewayAttachment as X
 import Stratosphere.Resources.EC2VPCPeeringConnection as X
 import Stratosphere.Resources.EC2VPNConnection as X
@@ -226,6 +227,7 @@
 import Stratosphere.Resources.IAMManagedPolicy as X
 import Stratosphere.Resources.IAMPolicy as X
 import Stratosphere.Resources.IAMRole as X
+import Stratosphere.Resources.IAMServiceLinkedRole as X
 import Stratosphere.Resources.IAMUser as X
 import Stratosphere.Resources.IAMUserToGroupAddition as X
 import Stratosphere.Resources.InspectorAssessmentTarget as X
@@ -675,6 +677,8 @@
 import Stratosphere.ResourceProperties.GameLiftBuildS3Location as X
 import Stratosphere.ResourceProperties.GameLiftFleetIpPermission as X
 import Stratosphere.ResourceProperties.GlueClassifierGrokClassifier as X
+import Stratosphere.ResourceProperties.GlueClassifierJsonClassifier as X
+import Stratosphere.ResourceProperties.GlueClassifierXMLClassifier as X
 import Stratosphere.ResourceProperties.GlueConnectionConnectionInput as X
 import Stratosphere.ResourceProperties.GlueConnectionPhysicalConnectionRequirements as X
 import Stratosphere.ResourceProperties.GlueCrawlerJdbcTarget as X
@@ -1045,6 +1049,7 @@
   | EC2VPCDHCPOptionsAssociationProperties EC2VPCDHCPOptionsAssociation
   | EC2VPCEndpointProperties EC2VPCEndpoint
   | EC2VPCEndpointConnectionNotificationProperties EC2VPCEndpointConnectionNotification
+  | EC2VPCEndpointServicePermissionsProperties EC2VPCEndpointServicePermissions
   | EC2VPCGatewayAttachmentProperties EC2VPCGatewayAttachment
   | EC2VPCPeeringConnectionProperties EC2VPCPeeringConnection
   | EC2VPNConnectionProperties EC2VPNConnection
@@ -1107,6 +1112,7 @@
   | IAMManagedPolicyProperties IAMManagedPolicy
   | IAMPolicyProperties IAMPolicy
   | IAMRoleProperties IAMRole
+  | IAMServiceLinkedRoleProperties IAMServiceLinkedRole
   | IAMUserProperties IAMUser
   | IAMUserToGroupAdditionProperties IAMUserToGroupAddition
   | InspectorAssessmentTargetProperties InspectorAssessmentTarget
@@ -1513,6 +1519,8 @@
   [ "Type" .= ("AWS::EC2::VPCEndpoint" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (EC2VPCEndpointConnectionNotificationProperties x) =
   [ "Type" .= ("AWS::EC2::VPCEndpointConnectionNotification" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (EC2VPCEndpointServicePermissionsProperties x) =
+  [ "Type" .= ("AWS::EC2::VPCEndpointServicePermissions" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (EC2VPCGatewayAttachmentProperties x) =
   [ "Type" .= ("AWS::EC2::VPCGatewayAttachment" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (EC2VPCPeeringConnectionProperties x) =
@@ -1637,6 +1645,8 @@
   [ "Type" .= ("AWS::IAM::Policy" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (IAMRoleProperties x) =
   [ "Type" .= ("AWS::IAM::Role" :: String), "Properties" .= toJSON x]
+resourcePropertiesJSON (IAMServiceLinkedRoleProperties x) =
+  [ "Type" .= ("AWS::IAM::ServiceLinkedRole" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (IAMUserProperties x) =
   [ "Type" .= ("AWS::IAM::User" :: String), "Properties" .= toJSON x]
 resourcePropertiesJSON (IAMUserToGroupAdditionProperties x) =
@@ -1994,6 +2004,7 @@
          "AWS::EC2::VPCDHCPOptionsAssociation" -> EC2VPCDHCPOptionsAssociationProperties <$> (o .: "Properties")
          "AWS::EC2::VPCEndpoint" -> EC2VPCEndpointProperties <$> (o .: "Properties")
          "AWS::EC2::VPCEndpointConnectionNotification" -> EC2VPCEndpointConnectionNotificationProperties <$> (o .: "Properties")
+         "AWS::EC2::VPCEndpointServicePermissions" -> EC2VPCEndpointServicePermissionsProperties <$> (o .: "Properties")
          "AWS::EC2::VPCGatewayAttachment" -> EC2VPCGatewayAttachmentProperties <$> (o .: "Properties")
          "AWS::EC2::VPCPeeringConnection" -> EC2VPCPeeringConnectionProperties <$> (o .: "Properties")
          "AWS::EC2::VPNConnection" -> EC2VPNConnectionProperties <$> (o .: "Properties")
@@ -2056,6 +2067,7 @@
          "AWS::IAM::ManagedPolicy" -> IAMManagedPolicyProperties <$> (o .: "Properties")
          "AWS::IAM::Policy" -> IAMPolicyProperties <$> (o .: "Properties")
          "AWS::IAM::Role" -> IAMRoleProperties <$> (o .: "Properties")
+         "AWS::IAM::ServiceLinkedRole" -> IAMServiceLinkedRoleProperties <$> (o .: "Properties")
          "AWS::IAM::User" -> IAMUserProperties <$> (o .: "Properties")
          "AWS::IAM::UserToGroupAddition" -> IAMUserToGroupAdditionProperties <$> (o .: "Properties")
          "AWS::Inspector::AssessmentTarget" -> InspectorAssessmentTargetProperties <$> (o .: "Properties")
diff --git a/library-gen/Stratosphere/Resources/EC2VPCEndpointServicePermissions.hs b/library-gen/Stratosphere/Resources/EC2VPCEndpointServicePermissions.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/EC2VPCEndpointServicePermissions.hs
@@ -0,0 +1,52 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservicepermissions.html
+
+module Stratosphere.Resources.EC2VPCEndpointServicePermissions where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for EC2VPCEndpointServicePermissions. See
+-- 'ec2VPCEndpointServicePermissions' for a more convenient constructor.
+data EC2VPCEndpointServicePermissions =
+  EC2VPCEndpointServicePermissions
+  { _eC2VPCEndpointServicePermissionsAllowedPrincipals :: Maybe (ValList Text)
+  , _eC2VPCEndpointServicePermissionsServiceId :: Val Text
+  } deriving (Show, Eq)
+
+instance ToJSON EC2VPCEndpointServicePermissions where
+  toJSON EC2VPCEndpointServicePermissions{..} =
+    object $
+    catMaybes
+    [ fmap (("AllowedPrincipals",) . toJSON) _eC2VPCEndpointServicePermissionsAllowedPrincipals
+    , (Just . ("ServiceId",) . toJSON) _eC2VPCEndpointServicePermissionsServiceId
+    ]
+
+instance FromJSON EC2VPCEndpointServicePermissions where
+  parseJSON (Object obj) =
+    EC2VPCEndpointServicePermissions <$>
+      (obj .:? "AllowedPrincipals") <*>
+      (obj .: "ServiceId")
+  parseJSON _ = mempty
+
+-- | Constructor for 'EC2VPCEndpointServicePermissions' containing required
+-- fields as arguments.
+ec2VPCEndpointServicePermissions
+  :: Val Text -- ^ 'ecvpcespServiceId'
+  -> EC2VPCEndpointServicePermissions
+ec2VPCEndpointServicePermissions serviceIdarg =
+  EC2VPCEndpointServicePermissions
+  { _eC2VPCEndpointServicePermissionsAllowedPrincipals = Nothing
+  , _eC2VPCEndpointServicePermissionsServiceId = serviceIdarg
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservicepermissions.html#cfn-ec2-vpcendpointservicepermissions-allowedprincipals
+ecvpcespAllowedPrincipals :: Lens' EC2VPCEndpointServicePermissions (Maybe (ValList Text))
+ecvpcespAllowedPrincipals = lens _eC2VPCEndpointServicePermissionsAllowedPrincipals (\s a -> s { _eC2VPCEndpointServicePermissionsAllowedPrincipals = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservicepermissions.html#cfn-ec2-vpcendpointservicepermissions-serviceid
+ecvpcespServiceId :: Lens' EC2VPCEndpointServicePermissions (Val Text)
+ecvpcespServiceId = lens _eC2VPCEndpointServicePermissionsServiceId (\s a -> s { _eC2VPCEndpointServicePermissionsServiceId = a })
diff --git a/library-gen/Stratosphere/Resources/GlueClassifier.hs b/library-gen/Stratosphere/Resources/GlueClassifier.hs
--- a/library-gen/Stratosphere/Resources/GlueClassifier.hs
+++ b/library-gen/Stratosphere/Resources/GlueClassifier.hs
@@ -8,12 +8,16 @@
 
 import Stratosphere.ResourceImports
 import Stratosphere.ResourceProperties.GlueClassifierGrokClassifier
+import Stratosphere.ResourceProperties.GlueClassifierJsonClassifier
+import Stratosphere.ResourceProperties.GlueClassifierXMLClassifier
 
 -- | Full data type definition for GlueClassifier. See 'glueClassifier' for a
 -- more convenient constructor.
 data GlueClassifier =
   GlueClassifier
   { _glueClassifierGrokClassifier :: Maybe GlueClassifierGrokClassifier
+  , _glueClassifierJsonClassifier :: Maybe GlueClassifierJsonClassifier
+  , _glueClassifierXMLClassifier :: Maybe GlueClassifierXMLClassifier
   } deriving (Show, Eq)
 
 instance ToJSON GlueClassifier where
@@ -21,12 +25,16 @@
     object $
     catMaybes
     [ fmap (("GrokClassifier",) . toJSON) _glueClassifierGrokClassifier
+    , fmap (("JsonClassifier",) . toJSON) _glueClassifierJsonClassifier
+    , fmap (("XMLClassifier",) . toJSON) _glueClassifierXMLClassifier
     ]
 
 instance FromJSON GlueClassifier where
   parseJSON (Object obj) =
     GlueClassifier <$>
-      (obj .:? "GrokClassifier")
+      (obj .:? "GrokClassifier") <*>
+      (obj .:? "JsonClassifier") <*>
+      (obj .:? "XMLClassifier")
   parseJSON _ = mempty
 
 -- | Constructor for 'GlueClassifier' containing required fields as arguments.
@@ -35,8 +43,18 @@
 glueClassifier  =
   GlueClassifier
   { _glueClassifierGrokClassifier = Nothing
+  , _glueClassifierJsonClassifier = Nothing
+  , _glueClassifierXMLClassifier = Nothing
   }
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-classifier.html#cfn-glue-classifier-grokclassifier
 gcGrokClassifier :: Lens' GlueClassifier (Maybe GlueClassifierGrokClassifier)
 gcGrokClassifier = lens _glueClassifierGrokClassifier (\s a -> s { _glueClassifierGrokClassifier = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-classifier.html#cfn-glue-classifier-jsonclassifier
+gcJsonClassifier :: Lens' GlueClassifier (Maybe GlueClassifierJsonClassifier)
+gcJsonClassifier = lens _glueClassifierJsonClassifier (\s a -> s { _glueClassifierJsonClassifier = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-classifier.html#cfn-glue-classifier-xmlclassifier
+gcXMLClassifier :: Lens' GlueClassifier (Maybe GlueClassifierXMLClassifier)
+gcXMLClassifier = lens _glueClassifierXMLClassifier (\s a -> s { _glueClassifierXMLClassifier = a })
diff --git a/library-gen/Stratosphere/Resources/GlueCrawler.hs b/library-gen/Stratosphere/Resources/GlueCrawler.hs
--- a/library-gen/Stratosphere/Resources/GlueCrawler.hs
+++ b/library-gen/Stratosphere/Resources/GlueCrawler.hs
@@ -16,6 +16,7 @@
 data GlueCrawler =
   GlueCrawler
   { _glueCrawlerClassifiers :: Maybe (ValList Text)
+  , _glueCrawlerConfiguration :: Maybe (Val Text)
   , _glueCrawlerDatabaseName :: Val Text
   , _glueCrawlerDescription :: Maybe (Val Text)
   , _glueCrawlerName :: Maybe (Val Text)
@@ -31,6 +32,7 @@
     object $
     catMaybes
     [ fmap (("Classifiers",) . toJSON) _glueCrawlerClassifiers
+    , fmap (("Configuration",) . toJSON) _glueCrawlerConfiguration
     , (Just . ("DatabaseName",) . toJSON) _glueCrawlerDatabaseName
     , fmap (("Description",) . toJSON) _glueCrawlerDescription
     , fmap (("Name",) . toJSON) _glueCrawlerName
@@ -45,6 +47,7 @@
   parseJSON (Object obj) =
     GlueCrawler <$>
       (obj .:? "Classifiers") <*>
+      (obj .:? "Configuration") <*>
       (obj .: "DatabaseName") <*>
       (obj .:? "Description") <*>
       (obj .:? "Name") <*>
@@ -64,6 +67,7 @@
 glueCrawler databaseNamearg rolearg targetsarg =
   GlueCrawler
   { _glueCrawlerClassifiers = Nothing
+  , _glueCrawlerConfiguration = Nothing
   , _glueCrawlerDatabaseName = databaseNamearg
   , _glueCrawlerDescription = Nothing
   , _glueCrawlerName = Nothing
@@ -77,6 +81,10 @@
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-classifiers
 gcClassifiers :: Lens' GlueCrawler (Maybe (ValList Text))
 gcClassifiers = lens _glueCrawlerClassifiers (\s a -> s { _glueCrawlerClassifiers = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-configuration
+gcConfiguration :: Lens' GlueCrawler (Maybe (Val Text))
+gcConfiguration = lens _glueCrawlerConfiguration (\s a -> s { _glueCrawlerConfiguration = a })
 
 -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-databasename
 gcDatabaseName :: Lens' GlueCrawler (Val Text)
diff --git a/library-gen/Stratosphere/Resources/IAMServiceLinkedRole.hs b/library-gen/Stratosphere/Resources/IAMServiceLinkedRole.hs
new file mode 100644
--- /dev/null
+++ b/library-gen/Stratosphere/Resources/IAMServiceLinkedRole.hs
@@ -0,0 +1,60 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html
+
+module Stratosphere.Resources.IAMServiceLinkedRole where
+
+import Stratosphere.ResourceImports
+
+
+-- | Full data type definition for IAMServiceLinkedRole. See
+-- 'iamServiceLinkedRole' for a more convenient constructor.
+data IAMServiceLinkedRole =
+  IAMServiceLinkedRole
+  { _iAMServiceLinkedRoleAWSServiceName :: Val Text
+  , _iAMServiceLinkedRoleCustomSuffix :: Maybe (Val Text)
+  , _iAMServiceLinkedRoleDescription :: Maybe (Val Text)
+  } deriving (Show, Eq)
+
+instance ToJSON IAMServiceLinkedRole where
+  toJSON IAMServiceLinkedRole{..} =
+    object $
+    catMaybes
+    [ (Just . ("AWSServiceName",) . toJSON) _iAMServiceLinkedRoleAWSServiceName
+    , fmap (("CustomSuffix",) . toJSON) _iAMServiceLinkedRoleCustomSuffix
+    , fmap (("Description",) . toJSON) _iAMServiceLinkedRoleDescription
+    ]
+
+instance FromJSON IAMServiceLinkedRole where
+  parseJSON (Object obj) =
+    IAMServiceLinkedRole <$>
+      (obj .: "AWSServiceName") <*>
+      (obj .:? "CustomSuffix") <*>
+      (obj .:? "Description")
+  parseJSON _ = mempty
+
+-- | Constructor for 'IAMServiceLinkedRole' containing required fields as
+-- arguments.
+iamServiceLinkedRole
+  :: Val Text -- ^ 'iamslrAWSServiceName'
+  -> IAMServiceLinkedRole
+iamServiceLinkedRole aWSServiceNamearg =
+  IAMServiceLinkedRole
+  { _iAMServiceLinkedRoleAWSServiceName = aWSServiceNamearg
+  , _iAMServiceLinkedRoleCustomSuffix = Nothing
+  , _iAMServiceLinkedRoleDescription = Nothing
+  }
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html#cfn-iam-servicelinkedrole-awsservicename
+iamslrAWSServiceName :: Lens' IAMServiceLinkedRole (Val Text)
+iamslrAWSServiceName = lens _iAMServiceLinkedRoleAWSServiceName (\s a -> s { _iAMServiceLinkedRoleAWSServiceName = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html#cfn-iam-servicelinkedrole-customsuffix
+iamslrCustomSuffix :: Lens' IAMServiceLinkedRole (Maybe (Val Text))
+iamslrCustomSuffix = lens _iAMServiceLinkedRoleCustomSuffix (\s a -> s { _iAMServiceLinkedRoleCustomSuffix = a })
+
+-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html#cfn-iam-servicelinkedrole-description
+iamslrDescription :: Lens' IAMServiceLinkedRole (Maybe (Val Text))
+iamslrDescription = lens _iAMServiceLinkedRoleDescription (\s a -> s { _iAMServiceLinkedRoleDescription = a })
diff --git a/stratosphere.cabal b/stratosphere.cabal
--- a/stratosphere.cabal
+++ b/stratosphere.cabal
@@ -2,10 +2,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 9a967e0f56d8f06f24e3d8b89033e5eee5691b6face3eae84ed633e35815a8d9
+-- hash: 83bf792117e7f6a55911f942484536c93826f6cd02831415741fa235711b3273
 
 name:           stratosphere
-version:        0.24.3
+version:        0.24.4
 synopsis:       EDSL for AWS CloudFormation
 description:    EDSL for AWS CloudFormation
 category:       AWS, Cloud
@@ -379,6 +379,8 @@
       Stratosphere.ResourceProperties.GameLiftBuildS3Location
       Stratosphere.ResourceProperties.GameLiftFleetIpPermission
       Stratosphere.ResourceProperties.GlueClassifierGrokClassifier
+      Stratosphere.ResourceProperties.GlueClassifierJsonClassifier
+      Stratosphere.ResourceProperties.GlueClassifierXMLClassifier
       Stratosphere.ResourceProperties.GlueConnectionConnectionInput
       Stratosphere.ResourceProperties.GlueConnectionPhysicalConnectionRequirements
       Stratosphere.ResourceProperties.GlueCrawlerJdbcTarget
@@ -741,6 +743,7 @@
       Stratosphere.Resources.EC2VPCDHCPOptionsAssociation
       Stratosphere.Resources.EC2VPCEndpoint
       Stratosphere.Resources.EC2VPCEndpointConnectionNotification
+      Stratosphere.Resources.EC2VPCEndpointServicePermissions
       Stratosphere.Resources.EC2VPCGatewayAttachment
       Stratosphere.Resources.EC2VPCPeeringConnection
       Stratosphere.Resources.EC2VPNConnection
@@ -801,6 +804,7 @@
       Stratosphere.Resources.IAMManagedPolicy
       Stratosphere.Resources.IAMPolicy
       Stratosphere.Resources.IAMRole
+      Stratosphere.Resources.IAMServiceLinkedRole
       Stratosphere.Resources.IAMUser
       Stratosphere.Resources.IAMUserToGroupAddition
       Stratosphere.Resources.InspectorAssessmentTarget
