packages feed

stratosphere 0.4.0 → 0.4.1

raw patch · 447 files changed

+9192/−3106 lines, 447 files

Files

CHANGELOG.md view
@@ -1,5 +1,11 @@ # Change Log +## 0.4.1++* Manually write out all JSON instances to speed up compilation+* Fix bug in CloudFormation specification where `EvaluationPeriods` was+  accidentally set to `Double`.+ ## 0.4.0  * Derive the `Eq` type class for everything. This is useful when comparing two
library-gen/Stratosphere/ResourceProperties/ApiGatewayApiKeyStageKey.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-apikey-stagekey.html  module Stratosphere.ResourceProperties.ApiGatewayApiKeyStageKey where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   ApiGatewayApiKeyStageKey   { _apiGatewayApiKeyStageKeyRestApiId :: Maybe (Val Text)   , _apiGatewayApiKeyStageKeyStageName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayApiKeyStageKey where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 25, omitNothingFields = True }+  toJSON ApiGatewayApiKeyStageKey{..} =+    object $+    catMaybes+    [ ("RestApiId" .=) <$> _apiGatewayApiKeyStageKeyRestApiId+    , ("StageName" .=) <$> _apiGatewayApiKeyStageKeyStageName+    ]  instance FromJSON ApiGatewayApiKeyStageKey where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 25, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayApiKeyStageKey <$>+      obj .:? "RestApiId" <*>+      obj .:? "StageName"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayApiKeyStageKey' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/ApiGatewayDeploymentMethodSetting.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-deployment-stagedescription-methodsetting.html  module Stratosphere.ResourceProperties.ApiGatewayDeploymentMethodSetting where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.Types@@ -28,13 +28,38 @@   , _apiGatewayDeploymentMethodSettingResourcePath :: Maybe (Val Text)   , _apiGatewayDeploymentMethodSettingThrottlingBurstLimit :: Maybe (Val Integer')   , _apiGatewayDeploymentMethodSettingThrottlingRateLimit :: Maybe (Val Double')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayDeploymentMethodSetting where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  toJSON ApiGatewayDeploymentMethodSetting{..} =+    object $+    catMaybes+    [ ("CacheDataEncrypted" .=) <$> _apiGatewayDeploymentMethodSettingCacheDataEncrypted+    , ("CacheTtlInSeconds" .=) <$> _apiGatewayDeploymentMethodSettingCacheTtlInSeconds+    , ("CachingEnabled" .=) <$> _apiGatewayDeploymentMethodSettingCachingEnabled+    , ("DataTraceEnabled" .=) <$> _apiGatewayDeploymentMethodSettingDataTraceEnabled+    , ("HttpMethod" .=) <$> _apiGatewayDeploymentMethodSettingHttpMethod+    , ("LoggingLevel" .=) <$> _apiGatewayDeploymentMethodSettingLoggingLevel+    , ("MetricsEnabled" .=) <$> _apiGatewayDeploymentMethodSettingMetricsEnabled+    , ("ResourcePath" .=) <$> _apiGatewayDeploymentMethodSettingResourcePath+    , ("ThrottlingBurstLimit" .=) <$> _apiGatewayDeploymentMethodSettingThrottlingBurstLimit+    , ("ThrottlingRateLimit" .=) <$> _apiGatewayDeploymentMethodSettingThrottlingRateLimit+    ]  instance FromJSON ApiGatewayDeploymentMethodSetting where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayDeploymentMethodSetting <$>+      obj .:? "CacheDataEncrypted" <*>+      obj .:? "CacheTtlInSeconds" <*>+      obj .:? "CachingEnabled" <*>+      obj .:? "DataTraceEnabled" <*>+      obj .:? "HttpMethod" <*>+      obj .:? "LoggingLevel" <*>+      obj .:? "MetricsEnabled" <*>+      obj .:? "ResourcePath" <*>+      obj .:? "ThrottlingBurstLimit" <*>+      obj .:? "ThrottlingRateLimit"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayDeploymentMethodSetting' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/ApiGatewayDeploymentStageDescription.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-deployment-stagedescription.html  module Stratosphere.ResourceProperties.ApiGatewayDeploymentStageDescription where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.Types@@ -34,13 +34,48 @@   , _apiGatewayDeploymentStageDescriptionThrottlingBurstLimit :: Maybe (Val Integer')   , _apiGatewayDeploymentStageDescriptionThrottlingRateLimit :: Maybe (Val Double')   , _apiGatewayDeploymentStageDescriptionVariables :: Maybe Object-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayDeploymentStageDescription where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 37, omitNothingFields = True }+  toJSON ApiGatewayDeploymentStageDescription{..} =+    object $+    catMaybes+    [ ("CacheClusterEnabled" .=) <$> _apiGatewayDeploymentStageDescriptionCacheClusterEnabled+    , ("CacheClusterSize" .=) <$> _apiGatewayDeploymentStageDescriptionCacheClusterSize+    , ("CacheDataEncrypted" .=) <$> _apiGatewayDeploymentStageDescriptionCacheDataEncrypted+    , ("CacheTtlInSeconds" .=) <$> _apiGatewayDeploymentStageDescriptionCacheTtlInSeconds+    , ("CachingEnabled" .=) <$> _apiGatewayDeploymentStageDescriptionCachingEnabled+    , ("ClientCertificateId" .=) <$> _apiGatewayDeploymentStageDescriptionClientCertificateId+    , ("DataTraceEnabled" .=) <$> _apiGatewayDeploymentStageDescriptionDataTraceEnabled+    , ("Description" .=) <$> _apiGatewayDeploymentStageDescriptionDescription+    , ("LoggingLevel" .=) <$> _apiGatewayDeploymentStageDescriptionLoggingLevel+    , ("MethodSettings" .=) <$> _apiGatewayDeploymentStageDescriptionMethodSettings+    , ("MetricsEnabled" .=) <$> _apiGatewayDeploymentStageDescriptionMetricsEnabled+    , ("StageName" .=) <$> _apiGatewayDeploymentStageDescriptionStageName+    , ("ThrottlingBurstLimit" .=) <$> _apiGatewayDeploymentStageDescriptionThrottlingBurstLimit+    , ("ThrottlingRateLimit" .=) <$> _apiGatewayDeploymentStageDescriptionThrottlingRateLimit+    , ("Variables" .=) <$> _apiGatewayDeploymentStageDescriptionVariables+    ]  instance FromJSON ApiGatewayDeploymentStageDescription where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 37, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayDeploymentStageDescription <$>+      obj .:? "CacheClusterEnabled" <*>+      obj .:? "CacheClusterSize" <*>+      obj .:? "CacheDataEncrypted" <*>+      obj .:? "CacheTtlInSeconds" <*>+      obj .:? "CachingEnabled" <*>+      obj .:? "ClientCertificateId" <*>+      obj .:? "DataTraceEnabled" <*>+      obj .:? "Description" <*>+      obj .:? "LoggingLevel" <*>+      obj .:? "MethodSettings" <*>+      obj .:? "MetricsEnabled" <*>+      obj .:? "StageName" <*>+      obj .:? "ThrottlingBurstLimit" <*>+      obj .:? "ThrottlingRateLimit" <*>+      obj .:? "Variables"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayDeploymentStageDescription' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ApiGatewayMethodIntegration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html  module Stratosphere.ResourceProperties.ApiGatewayMethodIntegration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.Types@@ -29,13 +29,38 @@   , _apiGatewayMethodIntegrationRequestTemplates :: Maybe Object   , _apiGatewayMethodIntegrationType :: Maybe (Val ApiBackendType)   , _apiGatewayMethodIntegrationUri :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayMethodIntegration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON ApiGatewayMethodIntegration{..} =+    object $+    catMaybes+    [ ("CacheKeyParameters" .=) <$> _apiGatewayMethodIntegrationCacheKeyParameters+    , ("CacheNamespace" .=) <$> _apiGatewayMethodIntegrationCacheNamespace+    , ("Credentials" .=) <$> _apiGatewayMethodIntegrationCredentials+    , ("IntegrationHttpMethod" .=) <$> _apiGatewayMethodIntegrationIntegrationHttpMethod+    , ("IntegrationResponses" .=) <$> _apiGatewayMethodIntegrationIntegrationResponses+    , ("PassthroughBehavior" .=) <$> _apiGatewayMethodIntegrationPassthroughBehavior+    , ("RequestParameters" .=) <$> _apiGatewayMethodIntegrationRequestParameters+    , ("RequestTemplates" .=) <$> _apiGatewayMethodIntegrationRequestTemplates+    , ("Type" .=) <$> _apiGatewayMethodIntegrationType+    , ("Uri" .=) <$> _apiGatewayMethodIntegrationUri+    ]  instance FromJSON ApiGatewayMethodIntegration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayMethodIntegration <$>+      obj .:? "CacheKeyParameters" <*>+      obj .:? "CacheNamespace" <*>+      obj .:? "Credentials" <*>+      obj .:? "IntegrationHttpMethod" <*>+      obj .:? "IntegrationResponses" <*>+      obj .:? "PassthroughBehavior" <*>+      obj .:? "RequestParameters" <*>+      obj .:? "RequestTemplates" <*>+      obj .:? "Type" <*>+      obj .:? "Uri"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayMethodIntegration' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/ApiGatewayMethodIntegrationResponse.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration-integrationresponse.html  module Stratosphere.ResourceProperties.ApiGatewayMethodIntegrationResponse where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,26 @@   , _apiGatewayMethodIntegrationResponseResponseTemplates :: Maybe Object   , _apiGatewayMethodIntegrationResponseSelectionPattern :: Maybe (Val Text)   , _apiGatewayMethodIntegrationResponseStatusCode :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayMethodIntegrationResponse where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  toJSON ApiGatewayMethodIntegrationResponse{..} =+    object $+    catMaybes+    [ ("ResponseParameters" .=) <$> _apiGatewayMethodIntegrationResponseResponseParameters+    , ("ResponseTemplates" .=) <$> _apiGatewayMethodIntegrationResponseResponseTemplates+    , ("SelectionPattern" .=) <$> _apiGatewayMethodIntegrationResponseSelectionPattern+    , ("StatusCode" .=) <$> _apiGatewayMethodIntegrationResponseStatusCode+    ]  instance FromJSON ApiGatewayMethodIntegrationResponse where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayMethodIntegrationResponse <$>+      obj .:? "ResponseParameters" <*>+      obj .:? "ResponseTemplates" <*>+      obj .:? "SelectionPattern" <*>+      obj .:? "StatusCode"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayMethodIntegrationResponse' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/ApiGatewayMethodMethodResponse.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-methodresponse.html  module Stratosphere.ResourceProperties.ApiGatewayMethodMethodResponse where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _apiGatewayMethodMethodResponseResponseModels :: Maybe Object   , _apiGatewayMethodMethodResponseResponseParameters :: Maybe Object   , _apiGatewayMethodMethodResponseStatusCode :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayMethodMethodResponse where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  toJSON ApiGatewayMethodMethodResponse{..} =+    object $+    catMaybes+    [ ("ResponseModels" .=) <$> _apiGatewayMethodMethodResponseResponseModels+    , ("ResponseParameters" .=) <$> _apiGatewayMethodMethodResponseResponseParameters+    , ("StatusCode" .=) <$> _apiGatewayMethodMethodResponseStatusCode+    ]  instance FromJSON ApiGatewayMethodMethodResponse where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayMethodMethodResponse <$>+      obj .:? "ResponseModels" <*>+      obj .:? "ResponseParameters" <*>+      obj .:? "StatusCode"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayMethodMethodResponse' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/ApiGatewayRestApiS3Location.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-restapi-bodys3location.html  module Stratosphere.ResourceProperties.ApiGatewayRestApiS3Location where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,26 @@   , _apiGatewayRestApiS3LocationETag :: Maybe (Val Text)   , _apiGatewayRestApiS3LocationKey :: Maybe (Val Text)   , _apiGatewayRestApiS3LocationVersion :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayRestApiS3Location where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON ApiGatewayRestApiS3Location{..} =+    object $+    catMaybes+    [ ("Bucket" .=) <$> _apiGatewayRestApiS3LocationBucket+    , ("ETag" .=) <$> _apiGatewayRestApiS3LocationETag+    , ("Key" .=) <$> _apiGatewayRestApiS3LocationKey+    , ("Version" .=) <$> _apiGatewayRestApiS3LocationVersion+    ]  instance FromJSON ApiGatewayRestApiS3Location where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayRestApiS3Location <$>+      obj .:? "Bucket" <*>+      obj .:? "ETag" <*>+      obj .:? "Key" <*>+      obj .:? "Version"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayRestApiS3Location' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/ApiGatewayStageMethodSetting.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html  module Stratosphere.ResourceProperties.ApiGatewayStageMethodSetting where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.Types@@ -28,13 +28,38 @@   , _apiGatewayStageMethodSettingResourcePath :: Maybe (Val Text)   , _apiGatewayStageMethodSettingThrottlingBurstLimit :: Maybe (Val Integer')   , _apiGatewayStageMethodSettingThrottlingRateLimit :: Maybe (Val Double')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayStageMethodSetting where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  toJSON ApiGatewayStageMethodSetting{..} =+    object $+    catMaybes+    [ ("CacheDataEncrypted" .=) <$> _apiGatewayStageMethodSettingCacheDataEncrypted+    , ("CacheTtlInSeconds" .=) <$> _apiGatewayStageMethodSettingCacheTtlInSeconds+    , ("CachingEnabled" .=) <$> _apiGatewayStageMethodSettingCachingEnabled+    , ("DataTraceEnabled" .=) <$> _apiGatewayStageMethodSettingDataTraceEnabled+    , ("HttpMethod" .=) <$> _apiGatewayStageMethodSettingHttpMethod+    , ("LoggingLevel" .=) <$> _apiGatewayStageMethodSettingLoggingLevel+    , ("MetricsEnabled" .=) <$> _apiGatewayStageMethodSettingMetricsEnabled+    , ("ResourcePath" .=) <$> _apiGatewayStageMethodSettingResourcePath+    , ("ThrottlingBurstLimit" .=) <$> _apiGatewayStageMethodSettingThrottlingBurstLimit+    , ("ThrottlingRateLimit" .=) <$> _apiGatewayStageMethodSettingThrottlingRateLimit+    ]  instance FromJSON ApiGatewayStageMethodSetting where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayStageMethodSetting <$>+      obj .:? "CacheDataEncrypted" <*>+      obj .:? "CacheTtlInSeconds" <*>+      obj .:? "CachingEnabled" <*>+      obj .:? "DataTraceEnabled" <*>+      obj .:? "HttpMethod" <*>+      obj .:? "LoggingLevel" <*>+      obj .:? "MetricsEnabled" <*>+      obj .:? "ResourcePath" <*>+      obj .:? "ThrottlingBurstLimit" <*>+      obj .:? "ThrottlingRateLimit"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayStageMethodSetting' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/ApiGatewayUsagePlanApiStage.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-apistage.html  module Stratosphere.ResourceProperties.ApiGatewayUsagePlanApiStage where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   ApiGatewayUsagePlanApiStage   { _apiGatewayUsagePlanApiStageApiId :: Maybe (Val Text)   , _apiGatewayUsagePlanApiStageStage :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayUsagePlanApiStage where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON ApiGatewayUsagePlanApiStage{..} =+    object $+    catMaybes+    [ ("ApiId" .=) <$> _apiGatewayUsagePlanApiStageApiId+    , ("Stage" .=) <$> _apiGatewayUsagePlanApiStageStage+    ]  instance FromJSON ApiGatewayUsagePlanApiStage where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayUsagePlanApiStage <$>+      obj .:? "ApiId" <*>+      obj .:? "Stage"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayUsagePlanApiStage' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/ApiGatewayUsagePlanQuotaSettings.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-quotasettings.html  module Stratosphere.ResourceProperties.ApiGatewayUsagePlanQuotaSettings where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.Types@@ -21,13 +21,24 @@   { _apiGatewayUsagePlanQuotaSettingsLimit :: Maybe (Val Integer')   , _apiGatewayUsagePlanQuotaSettingsOffset :: Maybe (Val Integer')   , _apiGatewayUsagePlanQuotaSettingsPeriod :: Maybe (Val Period)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayUsagePlanQuotaSettings where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  toJSON ApiGatewayUsagePlanQuotaSettings{..} =+    object $+    catMaybes+    [ ("Limit" .=) <$> _apiGatewayUsagePlanQuotaSettingsLimit+    , ("Offset" .=) <$> _apiGatewayUsagePlanQuotaSettingsOffset+    , ("Period" .=) <$> _apiGatewayUsagePlanQuotaSettingsPeriod+    ]  instance FromJSON ApiGatewayUsagePlanQuotaSettings where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayUsagePlanQuotaSettings <$>+      obj .:? "Limit" <*>+      obj .:? "Offset" <*>+      obj .:? "Period"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayUsagePlanQuotaSettings' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/ApiGatewayUsagePlanThrottleSettings.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-throttlesettings.html  module Stratosphere.ResourceProperties.ApiGatewayUsagePlanThrottleSettings where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   ApiGatewayUsagePlanThrottleSettings   { _apiGatewayUsagePlanThrottleSettingsBurstLimit :: Maybe (Val Integer')   , _apiGatewayUsagePlanThrottleSettingsRateLimit :: Maybe (Val Double')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayUsagePlanThrottleSettings where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  toJSON ApiGatewayUsagePlanThrottleSettings{..} =+    object $+    catMaybes+    [ ("BurstLimit" .=) <$> _apiGatewayUsagePlanThrottleSettingsBurstLimit+    , ("RateLimit" .=) <$> _apiGatewayUsagePlanThrottleSettingsRateLimit+    ]  instance FromJSON ApiGatewayUsagePlanThrottleSettings where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayUsagePlanThrottleSettings <$>+      obj .:? "BurstLimit" <*>+      obj .:? "RateLimit"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayUsagePlanThrottleSettings' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/ApplicationAutoScalingScalingPolicyStepAdjustment.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html  module Stratosphere.ResourceProperties.ApplicationAutoScalingScalingPolicyStepAdjustment where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -23,13 +23,24 @@   { _applicationAutoScalingScalingPolicyStepAdjustmentMetricIntervalLowerBound :: Maybe (Val Double')   , _applicationAutoScalingScalingPolicyStepAdjustmentMetricIntervalUpperBound :: Maybe (Val Double')   , _applicationAutoScalingScalingPolicyStepAdjustmentScalingAdjustment :: Val Integer'-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApplicationAutoScalingScalingPolicyStepAdjustment where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 50, omitNothingFields = True }+  toJSON ApplicationAutoScalingScalingPolicyStepAdjustment{..} =+    object $+    catMaybes+    [ ("MetricIntervalLowerBound" .=) <$> _applicationAutoScalingScalingPolicyStepAdjustmentMetricIntervalLowerBound+    , ("MetricIntervalUpperBound" .=) <$> _applicationAutoScalingScalingPolicyStepAdjustmentMetricIntervalUpperBound+    , Just ("ScalingAdjustment" .= _applicationAutoScalingScalingPolicyStepAdjustmentScalingAdjustment)+    ]  instance FromJSON ApplicationAutoScalingScalingPolicyStepAdjustment where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 50, omitNothingFields = True }+  parseJSON (Object obj) =+    ApplicationAutoScalingScalingPolicyStepAdjustment <$>+      obj .:? "MetricIntervalLowerBound" <*>+      obj .:? "MetricIntervalUpperBound" <*>+      obj .: "ScalingAdjustment"+  parseJSON _ = mempty  -- | Constructor for 'ApplicationAutoScalingScalingPolicyStepAdjustment' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ApplicationAutoScalingScalingPolicyStepScalingPolicyConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html  module Stratosphere.ResourceProperties.ApplicationAutoScalingScalingPolicyStepScalingPolicyConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ApplicationAutoScalingScalingPolicyStepAdjustment@@ -25,13 +25,28 @@   , _applicationAutoScalingScalingPolicyStepScalingPolicyConfigurationMetricAggregationType :: Maybe (Val Text)   , _applicationAutoScalingScalingPolicyStepScalingPolicyConfigurationMinAdjustmentMagnitude :: Maybe (Val Integer')   , _applicationAutoScalingScalingPolicyStepScalingPolicyConfigurationStepAdjustments :: Maybe [ApplicationAutoScalingScalingPolicyStepAdjustment]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApplicationAutoScalingScalingPolicyStepScalingPolicyConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 66, omitNothingFields = True }+  toJSON ApplicationAutoScalingScalingPolicyStepScalingPolicyConfiguration{..} =+    object $+    catMaybes+    [ ("AdjustmentType" .=) <$> _applicationAutoScalingScalingPolicyStepScalingPolicyConfigurationAdjustmentType+    , ("Cooldown" .=) <$> _applicationAutoScalingScalingPolicyStepScalingPolicyConfigurationCooldown+    , ("MetricAggregationType" .=) <$> _applicationAutoScalingScalingPolicyStepScalingPolicyConfigurationMetricAggregationType+    , ("MinAdjustmentMagnitude" .=) <$> _applicationAutoScalingScalingPolicyStepScalingPolicyConfigurationMinAdjustmentMagnitude+    , ("StepAdjustments" .=) <$> _applicationAutoScalingScalingPolicyStepScalingPolicyConfigurationStepAdjustments+    ]  instance FromJSON ApplicationAutoScalingScalingPolicyStepScalingPolicyConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 66, omitNothingFields = True }+  parseJSON (Object obj) =+    ApplicationAutoScalingScalingPolicyStepScalingPolicyConfiguration <$>+      obj .:? "AdjustmentType" <*>+      obj .:? "Cooldown" <*>+      obj .:? "MetricAggregationType" <*>+      obj .:? "MinAdjustmentMagnitude" <*>+      obj .:? "StepAdjustments"+  parseJSON _ = mempty  -- | Constructor for -- | 'ApplicationAutoScalingScalingPolicyStepScalingPolicyConfiguration'
library-gen/Stratosphere/ResourceProperties/AutoScalingAutoScalingGroupMetricsCollection.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-metricscollection.html  module Stratosphere.ResourceProperties.AutoScalingAutoScalingGroupMetricsCollection where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,22 @@   AutoScalingAutoScalingGroupMetricsCollection   { _autoScalingAutoScalingGroupMetricsCollectionGranularity :: Val Text   , _autoScalingAutoScalingGroupMetricsCollectionMetrics :: Maybe [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON AutoScalingAutoScalingGroupMetricsCollection where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 45, omitNothingFields = True }+  toJSON AutoScalingAutoScalingGroupMetricsCollection{..} =+    object $+    catMaybes+    [ Just ("Granularity" .= _autoScalingAutoScalingGroupMetricsCollectionGranularity)+    , ("Metrics" .=) <$> _autoScalingAutoScalingGroupMetricsCollectionMetrics+    ]  instance FromJSON AutoScalingAutoScalingGroupMetricsCollection where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 45, omitNothingFields = True }+  parseJSON (Object obj) =+    AutoScalingAutoScalingGroupMetricsCollection <$>+      obj .: "Granularity" <*>+      obj .:? "Metrics"+  parseJSON _ = mempty  -- | Constructor for 'AutoScalingAutoScalingGroupMetricsCollection' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/AutoScalingAutoScalingGroupNotificationConfigurations.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-notificationconfigurations.html  module Stratosphere.ResourceProperties.AutoScalingAutoScalingGroupNotificationConfigurations where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,22 @@   AutoScalingAutoScalingGroupNotificationConfigurations   { _autoScalingAutoScalingGroupNotificationConfigurationsNotificationTypes :: Maybe [Val Text]   , _autoScalingAutoScalingGroupNotificationConfigurationsTopicARN :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON AutoScalingAutoScalingGroupNotificationConfigurations where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 54, omitNothingFields = True }+  toJSON AutoScalingAutoScalingGroupNotificationConfigurations{..} =+    object $+    catMaybes+    [ ("NotificationTypes" .=) <$> _autoScalingAutoScalingGroupNotificationConfigurationsNotificationTypes+    , Just ("TopicARN" .= _autoScalingAutoScalingGroupNotificationConfigurationsTopicARN)+    ]  instance FromJSON AutoScalingAutoScalingGroupNotificationConfigurations where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 54, omitNothingFields = True }+  parseJSON (Object obj) =+    AutoScalingAutoScalingGroupNotificationConfigurations <$>+      obj .:? "NotificationTypes" <*>+      obj .: "TopicARN"+  parseJSON _ = mempty  -- | Constructor for 'AutoScalingAutoScalingGroupNotificationConfigurations' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/AutoScalingAutoScalingGroupTagProperty.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-tags.html  module Stratosphere.ResourceProperties.AutoScalingAutoScalingGroupTagProperty where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,24 @@   { _autoScalingAutoScalingGroupTagPropertyKey :: Val Text   , _autoScalingAutoScalingGroupTagPropertyPropagateAtLaunch :: Val Bool'   , _autoScalingAutoScalingGroupTagPropertyValue :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON AutoScalingAutoScalingGroupTagProperty where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 39, omitNothingFields = True }+  toJSON AutoScalingAutoScalingGroupTagProperty{..} =+    object $+    catMaybes+    [ Just ("Key" .= _autoScalingAutoScalingGroupTagPropertyKey)+    , Just ("PropagateAtLaunch" .= _autoScalingAutoScalingGroupTagPropertyPropagateAtLaunch)+    , Just ("Value" .= _autoScalingAutoScalingGroupTagPropertyValue)+    ]  instance FromJSON AutoScalingAutoScalingGroupTagProperty where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 39, omitNothingFields = True }+  parseJSON (Object obj) =+    AutoScalingAutoScalingGroupTagProperty <$>+      obj .: "Key" <*>+      obj .: "PropagateAtLaunch" <*>+      obj .: "Value"+  parseJSON _ = mempty  -- | Constructor for 'AutoScalingAutoScalingGroupTagProperty' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/AutoScalingLaunchConfigurationBlockDevice.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html  module Stratosphere.ResourceProperties.AutoScalingLaunchConfigurationBlockDevice where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -25,13 +25,30 @@   , _autoScalingLaunchConfigurationBlockDeviceSnapshotId :: Maybe (Val Text)   , _autoScalingLaunchConfigurationBlockDeviceVolumeSize :: Maybe (Val Text)   , _autoScalingLaunchConfigurationBlockDeviceVolumeType :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON AutoScalingLaunchConfigurationBlockDevice where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 42, omitNothingFields = True }+  toJSON AutoScalingLaunchConfigurationBlockDevice{..} =+    object $+    catMaybes+    [ ("DeleteOnTermination" .=) <$> _autoScalingLaunchConfigurationBlockDeviceDeleteOnTermination+    , ("Encrypted" .=) <$> _autoScalingLaunchConfigurationBlockDeviceEncrypted+    , ("Iops" .=) <$> _autoScalingLaunchConfigurationBlockDeviceIops+    , ("SnapshotId" .=) <$> _autoScalingLaunchConfigurationBlockDeviceSnapshotId+    , ("VolumeSize" .=) <$> _autoScalingLaunchConfigurationBlockDeviceVolumeSize+    , ("VolumeType" .=) <$> _autoScalingLaunchConfigurationBlockDeviceVolumeType+    ]  instance FromJSON AutoScalingLaunchConfigurationBlockDevice where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 42, omitNothingFields = True }+  parseJSON (Object obj) =+    AutoScalingLaunchConfigurationBlockDevice <$>+      obj .:? "DeleteOnTermination" <*>+      obj .:? "Encrypted" <*>+      obj .:? "Iops" <*>+      obj .:? "SnapshotId" <*>+      obj .:? "VolumeSize" <*>+      obj .:? "VolumeType"+  parseJSON _ = mempty  -- | Constructor for 'AutoScalingLaunchConfigurationBlockDevice' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/AutoScalingLaunchConfigurationBlockDeviceMapping.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-mapping.html  module Stratosphere.ResourceProperties.AutoScalingLaunchConfigurationBlockDeviceMapping where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.AutoScalingLaunchConfigurationBlockDevice@@ -24,13 +24,26 @@   , _autoScalingLaunchConfigurationBlockDeviceMappingEbs :: Maybe AutoScalingLaunchConfigurationBlockDevice   , _autoScalingLaunchConfigurationBlockDeviceMappingNoDevice :: Maybe (Val Bool')   , _autoScalingLaunchConfigurationBlockDeviceMappingVirtualName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON AutoScalingLaunchConfigurationBlockDeviceMapping where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 49, omitNothingFields = True }+  toJSON AutoScalingLaunchConfigurationBlockDeviceMapping{..} =+    object $+    catMaybes+    [ Just ("DeviceName" .= _autoScalingLaunchConfigurationBlockDeviceMappingDeviceName)+    , ("Ebs" .=) <$> _autoScalingLaunchConfigurationBlockDeviceMappingEbs+    , ("NoDevice" .=) <$> _autoScalingLaunchConfigurationBlockDeviceMappingNoDevice+    , ("VirtualName" .=) <$> _autoScalingLaunchConfigurationBlockDeviceMappingVirtualName+    ]  instance FromJSON AutoScalingLaunchConfigurationBlockDeviceMapping where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 49, omitNothingFields = True }+  parseJSON (Object obj) =+    AutoScalingLaunchConfigurationBlockDeviceMapping <$>+      obj .: "DeviceName" <*>+      obj .:? "Ebs" <*>+      obj .:? "NoDevice" <*>+      obj .:? "VirtualName"+  parseJSON _ = mempty  -- | Constructor for 'AutoScalingLaunchConfigurationBlockDeviceMapping' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/AutoScalingScalingPolicyStepAdjustment.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-stepadjustments.html  module Stratosphere.ResourceProperties.AutoScalingScalingPolicyStepAdjustment where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,24 @@   { _autoScalingScalingPolicyStepAdjustmentMetricIntervalLowerBound :: Maybe (Val Double')   , _autoScalingScalingPolicyStepAdjustmentMetricIntervalUpperBound :: Maybe (Val Double')   , _autoScalingScalingPolicyStepAdjustmentScalingAdjustment :: Val Integer'-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON AutoScalingScalingPolicyStepAdjustment where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 39, omitNothingFields = True }+  toJSON AutoScalingScalingPolicyStepAdjustment{..} =+    object $+    catMaybes+    [ ("MetricIntervalLowerBound" .=) <$> _autoScalingScalingPolicyStepAdjustmentMetricIntervalLowerBound+    , ("MetricIntervalUpperBound" .=) <$> _autoScalingScalingPolicyStepAdjustmentMetricIntervalUpperBound+    , Just ("ScalingAdjustment" .= _autoScalingScalingPolicyStepAdjustmentScalingAdjustment)+    ]  instance FromJSON AutoScalingScalingPolicyStepAdjustment where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 39, omitNothingFields = True }+  parseJSON (Object obj) =+    AutoScalingScalingPolicyStepAdjustment <$>+      obj .:? "MetricIntervalLowerBound" <*>+      obj .:? "MetricIntervalUpperBound" <*>+      obj .: "ScalingAdjustment"+  parseJSON _ = mempty  -- | Constructor for 'AutoScalingScalingPolicyStepAdjustment' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/CertificateManagerCertificateDomainValidationOption.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-certificate-domainvalidationoption.html  module Stratosphere.ResourceProperties.CertificateManagerCertificateDomainValidationOption where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,22 @@   CertificateManagerCertificateDomainValidationOption   { _certificateManagerCertificateDomainValidationOptionDomainName :: Val Text   , _certificateManagerCertificateDomainValidationOptionValidationDomain :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CertificateManagerCertificateDomainValidationOption where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 52, omitNothingFields = True }+  toJSON CertificateManagerCertificateDomainValidationOption{..} =+    object $+    catMaybes+    [ Just ("DomainName" .= _certificateManagerCertificateDomainValidationOptionDomainName)+    , Just ("ValidationDomain" .= _certificateManagerCertificateDomainValidationOptionValidationDomain)+    ]  instance FromJSON CertificateManagerCertificateDomainValidationOption where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 52, omitNothingFields = True }+  parseJSON (Object obj) =+    CertificateManagerCertificateDomainValidationOption <$>+      obj .: "DomainName" <*>+      obj .: "ValidationDomain"+  parseJSON _ = mempty  -- | Constructor for 'CertificateManagerCertificateDomainValidationOption' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionCacheBehavior.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachebehavior.html  module Stratosphere.ResourceProperties.CloudFrontDistributionCacheBehavior where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.CloudFrontDistributionForwardedValues@@ -30,13 +30,42 @@   , _cloudFrontDistributionCacheBehaviorTargetOriginId :: Val Text   , _cloudFrontDistributionCacheBehaviorTrustedSigners :: Maybe [Val Text]   , _cloudFrontDistributionCacheBehaviorViewerProtocolPolicy :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CloudFrontDistributionCacheBehavior where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  toJSON CloudFrontDistributionCacheBehavior{..} =+    object $+    catMaybes+    [ ("AllowedMethods" .=) <$> _cloudFrontDistributionCacheBehaviorAllowedMethods+    , ("CachedMethods" .=) <$> _cloudFrontDistributionCacheBehaviorCachedMethods+    , ("Compress" .=) <$> _cloudFrontDistributionCacheBehaviorCompress+    , ("DefaultTTL" .=) <$> _cloudFrontDistributionCacheBehaviorDefaultTTL+    , Just ("ForwardedValues" .= _cloudFrontDistributionCacheBehaviorForwardedValues)+    , ("MaxTTL" .=) <$> _cloudFrontDistributionCacheBehaviorMaxTTL+    , ("MinTTL" .=) <$> _cloudFrontDistributionCacheBehaviorMinTTL+    , Just ("PathPattern" .= _cloudFrontDistributionCacheBehaviorPathPattern)+    , ("SmoothStreaming" .=) <$> _cloudFrontDistributionCacheBehaviorSmoothStreaming+    , Just ("TargetOriginId" .= _cloudFrontDistributionCacheBehaviorTargetOriginId)+    , ("TrustedSigners" .=) <$> _cloudFrontDistributionCacheBehaviorTrustedSigners+    , Just ("ViewerProtocolPolicy" .= _cloudFrontDistributionCacheBehaviorViewerProtocolPolicy)+    ]  instance FromJSON CloudFrontDistributionCacheBehavior where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  parseJSON (Object obj) =+    CloudFrontDistributionCacheBehavior <$>+      obj .:? "AllowedMethods" <*>+      obj .:? "CachedMethods" <*>+      obj .:? "Compress" <*>+      obj .:? "DefaultTTL" <*>+      obj .: "ForwardedValues" <*>+      obj .:? "MaxTTL" <*>+      obj .:? "MinTTL" <*>+      obj .: "PathPattern" <*>+      obj .:? "SmoothStreaming" <*>+      obj .: "TargetOriginId" <*>+      obj .:? "TrustedSigners" <*>+      obj .: "ViewerProtocolPolicy"+  parseJSON _ = mempty  -- | Constructor for 'CloudFrontDistributionCacheBehavior' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionCookies.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-forwardedvalues-cookies.html  module Stratosphere.ResourceProperties.CloudFrontDistributionCookies where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   CloudFrontDistributionCookies   { _cloudFrontDistributionCookiesForward :: Val Text   , _cloudFrontDistributionCookiesWhitelistedNames :: Maybe [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CloudFrontDistributionCookies where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  toJSON CloudFrontDistributionCookies{..} =+    object $+    catMaybes+    [ Just ("Forward" .= _cloudFrontDistributionCookiesForward)+    , ("WhitelistedNames" .=) <$> _cloudFrontDistributionCookiesWhitelistedNames+    ]  instance FromJSON CloudFrontDistributionCookies where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  parseJSON (Object obj) =+    CloudFrontDistributionCookies <$>+      obj .: "Forward" <*>+      obj .:? "WhitelistedNames"+  parseJSON _ = mempty  -- | Constructor for 'CloudFrontDistributionCookies' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionCustomErrorResponse.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributionconfig-customerrorresponse.html  module Stratosphere.ResourceProperties.CloudFrontDistributionCustomErrorResponse where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -23,13 +23,26 @@   , _cloudFrontDistributionCustomErrorResponseErrorCode :: Val Integer'   , _cloudFrontDistributionCustomErrorResponseResponseCode :: Maybe (Val Integer')   , _cloudFrontDistributionCustomErrorResponseResponsePagePath :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CloudFrontDistributionCustomErrorResponse where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 42, omitNothingFields = True }+  toJSON CloudFrontDistributionCustomErrorResponse{..} =+    object $+    catMaybes+    [ ("ErrorCachingMinTTL" .=) <$> _cloudFrontDistributionCustomErrorResponseErrorCachingMinTTL+    , Just ("ErrorCode" .= _cloudFrontDistributionCustomErrorResponseErrorCode)+    , ("ResponseCode" .=) <$> _cloudFrontDistributionCustomErrorResponseResponseCode+    , ("ResponsePagePath" .=) <$> _cloudFrontDistributionCustomErrorResponseResponsePagePath+    ]  instance FromJSON CloudFrontDistributionCustomErrorResponse where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 42, omitNothingFields = True }+  parseJSON (Object obj) =+    CloudFrontDistributionCustomErrorResponse <$>+      obj .:? "ErrorCachingMinTTL" <*>+      obj .: "ErrorCode" <*>+      obj .:? "ResponseCode" <*>+      obj .:? "ResponsePagePath"+  parseJSON _ = mempty  -- | Constructor for 'CloudFrontDistributionCustomErrorResponse' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionCustomOriginConfig.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-customorigin.html  module Stratosphere.ResourceProperties.CloudFrontDistributionCustomOriginConfig where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -23,13 +23,26 @@   , _cloudFrontDistributionCustomOriginConfigHTTPSPort :: Maybe (Val Integer')   , _cloudFrontDistributionCustomOriginConfigOriginProtocolPolicy :: Val Text   , _cloudFrontDistributionCustomOriginConfigOriginSSLProtocols :: Maybe [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CloudFrontDistributionCustomOriginConfig where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 41, omitNothingFields = True }+  toJSON CloudFrontDistributionCustomOriginConfig{..} =+    object $+    catMaybes+    [ ("HTTPPort" .=) <$> _cloudFrontDistributionCustomOriginConfigHTTPPort+    , ("HTTPSPort" .=) <$> _cloudFrontDistributionCustomOriginConfigHTTPSPort+    , Just ("OriginProtocolPolicy" .= _cloudFrontDistributionCustomOriginConfigOriginProtocolPolicy)+    , ("OriginSSLProtocols" .=) <$> _cloudFrontDistributionCustomOriginConfigOriginSSLProtocols+    ]  instance FromJSON CloudFrontDistributionCustomOriginConfig where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 41, omitNothingFields = True }+  parseJSON (Object obj) =+    CloudFrontDistributionCustomOriginConfig <$>+      obj .:? "HTTPPort" <*>+      obj .:? "HTTPSPort" <*>+      obj .: "OriginProtocolPolicy" <*>+      obj .:? "OriginSSLProtocols"+  parseJSON _ = mempty  -- | Constructor for 'CloudFrontDistributionCustomOriginConfig' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionDefaultCacheBehavior.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-defaultcachebehavior.html  module Stratosphere.ResourceProperties.CloudFrontDistributionDefaultCacheBehavior where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.CloudFrontDistributionForwardedValues@@ -30,13 +30,40 @@   , _cloudFrontDistributionDefaultCacheBehaviorTargetOriginId :: Val Text   , _cloudFrontDistributionDefaultCacheBehaviorTrustedSigners :: Maybe [Val Text]   , _cloudFrontDistributionDefaultCacheBehaviorViewerProtocolPolicy :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CloudFrontDistributionDefaultCacheBehavior where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 43, omitNothingFields = True }+  toJSON CloudFrontDistributionDefaultCacheBehavior{..} =+    object $+    catMaybes+    [ ("AllowedMethods" .=) <$> _cloudFrontDistributionDefaultCacheBehaviorAllowedMethods+    , ("CachedMethods" .=) <$> _cloudFrontDistributionDefaultCacheBehaviorCachedMethods+    , ("Compress" .=) <$> _cloudFrontDistributionDefaultCacheBehaviorCompress+    , ("DefaultTTL" .=) <$> _cloudFrontDistributionDefaultCacheBehaviorDefaultTTL+    , Just ("ForwardedValues" .= _cloudFrontDistributionDefaultCacheBehaviorForwardedValues)+    , ("MaxTTL" .=) <$> _cloudFrontDistributionDefaultCacheBehaviorMaxTTL+    , ("MinTTL" .=) <$> _cloudFrontDistributionDefaultCacheBehaviorMinTTL+    , ("SmoothStreaming" .=) <$> _cloudFrontDistributionDefaultCacheBehaviorSmoothStreaming+    , Just ("TargetOriginId" .= _cloudFrontDistributionDefaultCacheBehaviorTargetOriginId)+    , ("TrustedSigners" .=) <$> _cloudFrontDistributionDefaultCacheBehaviorTrustedSigners+    , Just ("ViewerProtocolPolicy" .= _cloudFrontDistributionDefaultCacheBehaviorViewerProtocolPolicy)+    ]  instance FromJSON CloudFrontDistributionDefaultCacheBehavior where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 43, omitNothingFields = True }+  parseJSON (Object obj) =+    CloudFrontDistributionDefaultCacheBehavior <$>+      obj .:? "AllowedMethods" <*>+      obj .:? "CachedMethods" <*>+      obj .:? "Compress" <*>+      obj .:? "DefaultTTL" <*>+      obj .: "ForwardedValues" <*>+      obj .:? "MaxTTL" <*>+      obj .:? "MinTTL" <*>+      obj .:? "SmoothStreaming" <*>+      obj .: "TargetOriginId" <*>+      obj .:? "TrustedSigners" <*>+      obj .: "ViewerProtocolPolicy"+  parseJSON _ = mempty  -- | Constructor for 'CloudFrontDistributionDefaultCacheBehavior' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionDistributionConfig.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributionconfig.html  module Stratosphere.ResourceProperties.CloudFrontDistributionDistributionConfig where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.CloudFrontDistributionCacheBehavior@@ -39,13 +39,46 @@   , _cloudFrontDistributionDistributionConfigRestrictions :: Maybe CloudFrontDistributionRestrictions   , _cloudFrontDistributionDistributionConfigViewerCertificate :: Maybe CloudFrontDistributionViewerCertificate   , _cloudFrontDistributionDistributionConfigWebACLId :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CloudFrontDistributionDistributionConfig where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 41, omitNothingFields = True }+  toJSON CloudFrontDistributionDistributionConfig{..} =+    object $+    catMaybes+    [ ("Aliases" .=) <$> _cloudFrontDistributionDistributionConfigAliases+    , ("CacheBehaviors" .=) <$> _cloudFrontDistributionDistributionConfigCacheBehaviors+    , ("Comment" .=) <$> _cloudFrontDistributionDistributionConfigComment+    , ("CustomErrorResponses" .=) <$> _cloudFrontDistributionDistributionConfigCustomErrorResponses+    , Just ("DefaultCacheBehavior" .= _cloudFrontDistributionDistributionConfigDefaultCacheBehavior)+    , ("DefaultRootObject" .=) <$> _cloudFrontDistributionDistributionConfigDefaultRootObject+    , Just ("Enabled" .= _cloudFrontDistributionDistributionConfigEnabled)+    , ("HttpVersion" .=) <$> _cloudFrontDistributionDistributionConfigHttpVersion+    , ("Logging" .=) <$> _cloudFrontDistributionDistributionConfigLogging+    , Just ("Origins" .= _cloudFrontDistributionDistributionConfigOrigins)+    , ("PriceClass" .=) <$> _cloudFrontDistributionDistributionConfigPriceClass+    , ("Restrictions" .=) <$> _cloudFrontDistributionDistributionConfigRestrictions+    , ("ViewerCertificate" .=) <$> _cloudFrontDistributionDistributionConfigViewerCertificate+    , ("WebACLId" .=) <$> _cloudFrontDistributionDistributionConfigWebACLId+    ]  instance FromJSON CloudFrontDistributionDistributionConfig where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 41, omitNothingFields = True }+  parseJSON (Object obj) =+    CloudFrontDistributionDistributionConfig <$>+      obj .:? "Aliases" <*>+      obj .:? "CacheBehaviors" <*>+      obj .:? "Comment" <*>+      obj .:? "CustomErrorResponses" <*>+      obj .: "DefaultCacheBehavior" <*>+      obj .:? "DefaultRootObject" <*>+      obj .: "Enabled" <*>+      obj .:? "HttpVersion" <*>+      obj .:? "Logging" <*>+      obj .: "Origins" <*>+      obj .:? "PriceClass" <*>+      obj .:? "Restrictions" <*>+      obj .:? "ViewerCertificate" <*>+      obj .:? "WebACLId"+  parseJSON _ = mempty  -- | Constructor for 'CloudFrontDistributionDistributionConfig' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionForwardedValues.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-forwardedvalues.html  module Stratosphere.ResourceProperties.CloudFrontDistributionForwardedValues where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.CloudFrontDistributionCookies@@ -23,13 +23,26 @@   , _cloudFrontDistributionForwardedValuesHeaders :: Maybe [Val Text]   , _cloudFrontDistributionForwardedValuesQueryString :: Val Bool'   , _cloudFrontDistributionForwardedValuesQueryStringCacheKeys :: Maybe [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CloudFrontDistributionForwardedValues where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 38, omitNothingFields = True }+  toJSON CloudFrontDistributionForwardedValues{..} =+    object $+    catMaybes+    [ ("Cookies" .=) <$> _cloudFrontDistributionForwardedValuesCookies+    , ("Headers" .=) <$> _cloudFrontDistributionForwardedValuesHeaders+    , Just ("QueryString" .= _cloudFrontDistributionForwardedValuesQueryString)+    , ("QueryStringCacheKeys" .=) <$> _cloudFrontDistributionForwardedValuesQueryStringCacheKeys+    ]  instance FromJSON CloudFrontDistributionForwardedValues where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 38, omitNothingFields = True }+  parseJSON (Object obj) =+    CloudFrontDistributionForwardedValues <$>+      obj .:? "Cookies" <*>+      obj .:? "Headers" <*>+      obj .: "QueryString" <*>+      obj .:? "QueryStringCacheKeys"+  parseJSON _ = mempty  -- | Constructor for 'CloudFrontDistributionForwardedValues' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionGeoRestriction.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributionconfig-restrictions-georestriction.html  module Stratosphere.ResourceProperties.CloudFrontDistributionGeoRestriction where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   CloudFrontDistributionGeoRestriction   { _cloudFrontDistributionGeoRestrictionLocations :: Maybe [Val Text]   , _cloudFrontDistributionGeoRestrictionRestrictionType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CloudFrontDistributionGeoRestriction where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 37, omitNothingFields = True }+  toJSON CloudFrontDistributionGeoRestriction{..} =+    object $+    catMaybes+    [ ("Locations" .=) <$> _cloudFrontDistributionGeoRestrictionLocations+    , Just ("RestrictionType" .= _cloudFrontDistributionGeoRestrictionRestrictionType)+    ]  instance FromJSON CloudFrontDistributionGeoRestriction where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 37, omitNothingFields = True }+  parseJSON (Object obj) =+    CloudFrontDistributionGeoRestriction <$>+      obj .:? "Locations" <*>+      obj .: "RestrictionType"+  parseJSON _ = mempty  -- | Constructor for 'CloudFrontDistributionGeoRestriction' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionLogging.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-logging.html  module Stratosphere.ResourceProperties.CloudFrontDistributionLogging where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _cloudFrontDistributionLoggingBucket :: Val Text   , _cloudFrontDistributionLoggingIncludeCookies :: Maybe (Val Bool')   , _cloudFrontDistributionLoggingPrefix :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CloudFrontDistributionLogging where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  toJSON CloudFrontDistributionLogging{..} =+    object $+    catMaybes+    [ Just ("Bucket" .= _cloudFrontDistributionLoggingBucket)+    , ("IncludeCookies" .=) <$> _cloudFrontDistributionLoggingIncludeCookies+    , ("Prefix" .=) <$> _cloudFrontDistributionLoggingPrefix+    ]  instance FromJSON CloudFrontDistributionLogging where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  parseJSON (Object obj) =+    CloudFrontDistributionLogging <$>+      obj .: "Bucket" <*>+      obj .:? "IncludeCookies" <*>+      obj .:? "Prefix"+  parseJSON _ = mempty  -- | Constructor for 'CloudFrontDistributionLogging' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionOrigin.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-origin.html  module Stratosphere.ResourceProperties.CloudFrontDistributionOrigin where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.CloudFrontDistributionCustomOriginConfig@@ -26,13 +26,30 @@   , _cloudFrontDistributionOriginOriginCustomHeaders :: Maybe [CloudFrontDistributionOriginCustomHeader]   , _cloudFrontDistributionOriginOriginPath :: Maybe (Val Text)   , _cloudFrontDistributionOriginS3OriginConfig :: Maybe CloudFrontDistributionS3OriginConfig-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CloudFrontDistributionOrigin where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  toJSON CloudFrontDistributionOrigin{..} =+    object $+    catMaybes+    [ ("CustomOriginConfig" .=) <$> _cloudFrontDistributionOriginCustomOriginConfig+    , Just ("DomainName" .= _cloudFrontDistributionOriginDomainName)+    , Just ("Id" .= _cloudFrontDistributionOriginId)+    , ("OriginCustomHeaders" .=) <$> _cloudFrontDistributionOriginOriginCustomHeaders+    , ("OriginPath" .=) <$> _cloudFrontDistributionOriginOriginPath+    , ("S3OriginConfig" .=) <$> _cloudFrontDistributionOriginS3OriginConfig+    ]  instance FromJSON CloudFrontDistributionOrigin where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  parseJSON (Object obj) =+    CloudFrontDistributionOrigin <$>+      obj .:? "CustomOriginConfig" <*>+      obj .: "DomainName" <*>+      obj .: "Id" <*>+      obj .:? "OriginCustomHeaders" <*>+      obj .:? "OriginPath" <*>+      obj .:? "S3OriginConfig"+  parseJSON _ = mempty  -- | Constructor for 'CloudFrontDistributionOrigin' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionOriginCustomHeader.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-origin-origincustomheader.html  module Stratosphere.ResourceProperties.CloudFrontDistributionOriginCustomHeader where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,22 @@   CloudFrontDistributionOriginCustomHeader   { _cloudFrontDistributionOriginCustomHeaderHeaderName :: Val Text   , _cloudFrontDistributionOriginCustomHeaderHeaderValue :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CloudFrontDistributionOriginCustomHeader where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 41, omitNothingFields = True }+  toJSON CloudFrontDistributionOriginCustomHeader{..} =+    object $+    catMaybes+    [ Just ("HeaderName" .= _cloudFrontDistributionOriginCustomHeaderHeaderName)+    , Just ("HeaderValue" .= _cloudFrontDistributionOriginCustomHeaderHeaderValue)+    ]  instance FromJSON CloudFrontDistributionOriginCustomHeader where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 41, omitNothingFields = True }+  parseJSON (Object obj) =+    CloudFrontDistributionOriginCustomHeader <$>+      obj .: "HeaderName" <*>+      obj .: "HeaderValue"+  parseJSON _ = mempty  -- | Constructor for 'CloudFrontDistributionOriginCustomHeader' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionRestrictions.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributionconfig-restrictions.html  module Stratosphere.ResourceProperties.CloudFrontDistributionRestrictions where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.CloudFrontDistributionGeoRestriction@@ -19,13 +19,20 @@ data CloudFrontDistributionRestrictions =   CloudFrontDistributionRestrictions   { _cloudFrontDistributionRestrictionsGeoRestriction :: CloudFrontDistributionGeoRestriction-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CloudFrontDistributionRestrictions where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  toJSON CloudFrontDistributionRestrictions{..} =+    object $+    catMaybes+    [ Just ("GeoRestriction" .= _cloudFrontDistributionRestrictionsGeoRestriction)+    ]  instance FromJSON CloudFrontDistributionRestrictions where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  parseJSON (Object obj) =+    CloudFrontDistributionRestrictions <$>+      obj .: "GeoRestriction"+  parseJSON _ = mempty  -- | Constructor for 'CloudFrontDistributionRestrictions' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionS3OriginConfig.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-s3origin.html  module Stratosphere.ResourceProperties.CloudFrontDistributionS3OriginConfig where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data CloudFrontDistributionS3OriginConfig =   CloudFrontDistributionS3OriginConfig   { _cloudFrontDistributionS3OriginConfigOriginAccessIdentity :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CloudFrontDistributionS3OriginConfig where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 37, omitNothingFields = True }+  toJSON CloudFrontDistributionS3OriginConfig{..} =+    object $+    catMaybes+    [ ("OriginAccessIdentity" .=) <$> _cloudFrontDistributionS3OriginConfigOriginAccessIdentity+    ]  instance FromJSON CloudFrontDistributionS3OriginConfig where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 37, omitNothingFields = True }+  parseJSON (Object obj) =+    CloudFrontDistributionS3OriginConfig <$>+      obj .:? "OriginAccessIdentity"+  parseJSON _ = mempty  -- | Constructor for 'CloudFrontDistributionS3OriginConfig' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionViewerCertificate.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributionconfig-viewercertificate.html  module Stratosphere.ResourceProperties.CloudFrontDistributionViewerCertificate where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -24,13 +24,28 @@   , _cloudFrontDistributionViewerCertificateIamCertificateId :: Maybe (Val Text)   , _cloudFrontDistributionViewerCertificateMinimumProtocolVersion :: Maybe (Val Text)   , _cloudFrontDistributionViewerCertificateSslSupportMethod :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CloudFrontDistributionViewerCertificate where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 40, omitNothingFields = True }+  toJSON CloudFrontDistributionViewerCertificate{..} =+    object $+    catMaybes+    [ ("AcmCertificateArn" .=) <$> _cloudFrontDistributionViewerCertificateAcmCertificateArn+    , ("CloudFrontDefaultCertificate" .=) <$> _cloudFrontDistributionViewerCertificateCloudFrontDefaultCertificate+    , ("IamCertificateId" .=) <$> _cloudFrontDistributionViewerCertificateIamCertificateId+    , ("MinimumProtocolVersion" .=) <$> _cloudFrontDistributionViewerCertificateMinimumProtocolVersion+    , ("SslSupportMethod" .=) <$> _cloudFrontDistributionViewerCertificateSslSupportMethod+    ]  instance FromJSON CloudFrontDistributionViewerCertificate where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 40, omitNothingFields = True }+  parseJSON (Object obj) =+    CloudFrontDistributionViewerCertificate <$>+      obj .:? "AcmCertificateArn" <*>+      obj .:? "CloudFrontDefaultCertificate" <*>+      obj .:? "IamCertificateId" <*>+      obj .:? "MinimumProtocolVersion" <*>+      obj .:? "SslSupportMethod"+  parseJSON _ = mempty  -- | Constructor for 'CloudFrontDistributionViewerCertificate' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/CloudWatchAlarmDimension.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-dimension.html  module Stratosphere.ResourceProperties.CloudWatchAlarmDimension where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   CloudWatchAlarmDimension   { _cloudWatchAlarmDimensionName :: Val Text   , _cloudWatchAlarmDimensionValue :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CloudWatchAlarmDimension where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 25, omitNothingFields = True }+  toJSON CloudWatchAlarmDimension{..} =+    object $+    catMaybes+    [ Just ("Name" .= _cloudWatchAlarmDimensionName)+    , Just ("Value" .= _cloudWatchAlarmDimensionValue)+    ]  instance FromJSON CloudWatchAlarmDimension where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 25, omitNothingFields = True }+  parseJSON (Object obj) =+    CloudWatchAlarmDimension <$>+      obj .: "Name" <*>+      obj .: "Value"+  parseJSON _ = mempty  -- | Constructor for 'CloudWatchAlarmDimension' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/CodeBuildProjectArtifacts.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html  module Stratosphere.ResourceProperties.CodeBuildProjectArtifacts where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -24,13 +24,30 @@   , _codeBuildProjectArtifactsPackaging :: Maybe (Val Text)   , _codeBuildProjectArtifactsPath :: Maybe (Val Text)   , _codeBuildProjectArtifactsType :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodeBuildProjectArtifacts where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }+  toJSON CodeBuildProjectArtifacts{..} =+    object $+    catMaybes+    [ ("Location" .=) <$> _codeBuildProjectArtifactsLocation+    , ("Name" .=) <$> _codeBuildProjectArtifactsName+    , ("NamespaceType" .=) <$> _codeBuildProjectArtifactsNamespaceType+    , ("Packaging" .=) <$> _codeBuildProjectArtifactsPackaging+    , ("Path" .=) <$> _codeBuildProjectArtifactsPath+    , ("Type" .=) <$> _codeBuildProjectArtifactsType+    ]  instance FromJSON CodeBuildProjectArtifacts where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }+  parseJSON (Object obj) =+    CodeBuildProjectArtifacts <$>+      obj .:? "Location" <*>+      obj .:? "Name" <*>+      obj .:? "NamespaceType" <*>+      obj .:? "Packaging" <*>+      obj .:? "Path" <*>+      obj .:? "Type"+  parseJSON _ = mempty  -- | Constructor for 'CodeBuildProjectArtifacts' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/CodeBuildProjectEnvironment.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html  module Stratosphere.ResourceProperties.CodeBuildProjectEnvironment where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.CodeBuildProjectEnvironmentVariable@@ -22,13 +22,26 @@   , _codeBuildProjectEnvironmentEnvironmentVariables :: Maybe [CodeBuildProjectEnvironmentVariable]   , _codeBuildProjectEnvironmentImage :: Maybe (Val Text)   , _codeBuildProjectEnvironmentType :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodeBuildProjectEnvironment where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON CodeBuildProjectEnvironment{..} =+    object $+    catMaybes+    [ ("ComputeType" .=) <$> _codeBuildProjectEnvironmentComputeType+    , ("EnvironmentVariables" .=) <$> _codeBuildProjectEnvironmentEnvironmentVariables+    , ("Image" .=) <$> _codeBuildProjectEnvironmentImage+    , ("Type" .=) <$> _codeBuildProjectEnvironmentType+    ]  instance FromJSON CodeBuildProjectEnvironment where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    CodeBuildProjectEnvironment <$>+      obj .:? "ComputeType" <*>+      obj .:? "EnvironmentVariables" <*>+      obj .:? "Image" <*>+      obj .:? "Type"+  parseJSON _ = mempty  -- | Constructor for 'CodeBuildProjectEnvironment' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/CodeBuildProjectEnvironmentVariable.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environmentvariable.html  module Stratosphere.ResourceProperties.CodeBuildProjectEnvironmentVariable where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   CodeBuildProjectEnvironmentVariable   { _codeBuildProjectEnvironmentVariableName :: Maybe (Val Text)   , _codeBuildProjectEnvironmentVariableValue :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodeBuildProjectEnvironmentVariable where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  toJSON CodeBuildProjectEnvironmentVariable{..} =+    object $+    catMaybes+    [ ("Name" .=) <$> _codeBuildProjectEnvironmentVariableName+    , ("Value" .=) <$> _codeBuildProjectEnvironmentVariableValue+    ]  instance FromJSON CodeBuildProjectEnvironmentVariable where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  parseJSON (Object obj) =+    CodeBuildProjectEnvironmentVariable <$>+      obj .:? "Name" <*>+      obj .:? "Value"+  parseJSON _ = mempty  -- | Constructor for 'CodeBuildProjectEnvironmentVariable' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/CodeBuildProjectSource.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html  module Stratosphere.ResourceProperties.CodeBuildProjectSource where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.CodeBuildProjectSourceAuth@@ -22,13 +22,26 @@   , _codeBuildProjectSourceBuildSpec :: Maybe (Val Text)   , _codeBuildProjectSourceLocation :: Maybe (Val Text)   , _codeBuildProjectSourceType :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodeBuildProjectSource where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  toJSON CodeBuildProjectSource{..} =+    object $+    catMaybes+    [ ("Auth" .=) <$> _codeBuildProjectSourceAuth+    , ("BuildSpec" .=) <$> _codeBuildProjectSourceBuildSpec+    , ("Location" .=) <$> _codeBuildProjectSourceLocation+    , ("Type" .=) <$> _codeBuildProjectSourceType+    ]  instance FromJSON CodeBuildProjectSource where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  parseJSON (Object obj) =+    CodeBuildProjectSource <$>+      obj .:? "Auth" <*>+      obj .:? "BuildSpec" <*>+      obj .:? "Location" <*>+      obj .:? "Type"+  parseJSON _ = mempty  -- | Constructor for 'CodeBuildProjectSource' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/CodeBuildProjectSourceAuth.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-sourceauth.html  module Stratosphere.ResourceProperties.CodeBuildProjectSourceAuth where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   CodeBuildProjectSourceAuth   { _codeBuildProjectSourceAuthResource :: Maybe (Val Text)   , _codeBuildProjectSourceAuthType :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodeBuildProjectSourceAuth where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  toJSON CodeBuildProjectSourceAuth{..} =+    object $+    catMaybes+    [ ("Resource" .=) <$> _codeBuildProjectSourceAuthResource+    , ("Type" .=) <$> _codeBuildProjectSourceAuthType+    ]  instance FromJSON CodeBuildProjectSourceAuth where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  parseJSON (Object obj) =+    CodeBuildProjectSourceAuth <$>+      obj .:? "Resource" <*>+      obj .:? "Type"+  parseJSON _ = mempty  -- | Constructor for 'CodeBuildProjectSourceAuth' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/CodeCommitRepositoryRepositoryTrigger.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html  module Stratosphere.ResourceProperties.CodeCommitRepositoryRepositoryTrigger where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -24,13 +24,28 @@   , _codeCommitRepositoryRepositoryTriggerDestinationArn :: Maybe (Val Text)   , _codeCommitRepositoryRepositoryTriggerEvents :: Maybe [Val Text]   , _codeCommitRepositoryRepositoryTriggerName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodeCommitRepositoryRepositoryTrigger where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 38, omitNothingFields = True }+  toJSON CodeCommitRepositoryRepositoryTrigger{..} =+    object $+    catMaybes+    [ ("Branches" .=) <$> _codeCommitRepositoryRepositoryTriggerBranches+    , ("CustomData" .=) <$> _codeCommitRepositoryRepositoryTriggerCustomData+    , ("DestinationArn" .=) <$> _codeCommitRepositoryRepositoryTriggerDestinationArn+    , ("Events" .=) <$> _codeCommitRepositoryRepositoryTriggerEvents+    , ("Name" .=) <$> _codeCommitRepositoryRepositoryTriggerName+    ]  instance FromJSON CodeCommitRepositoryRepositoryTrigger where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 38, omitNothingFields = True }+  parseJSON (Object obj) =+    CodeCommitRepositoryRepositoryTrigger <$>+      obj .:? "Branches" <*>+      obj .:? "CustomData" <*>+      obj .:? "DestinationArn" <*>+      obj .:? "Events" <*>+      obj .:? "Name"+  parseJSON _ = mempty  -- | Constructor for 'CodeCommitRepositoryRepositoryTrigger' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentConfigMinimumHealthyHosts.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-minimumhealthyhosts.html  module Stratosphere.ResourceProperties.CodeDeployDeploymentConfigMinimumHealthyHosts where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,22 @@   CodeDeployDeploymentConfigMinimumHealthyHosts   { _codeDeployDeploymentConfigMinimumHealthyHostsType :: Maybe (Val Text)   , _codeDeployDeploymentConfigMinimumHealthyHostsValue :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodeDeployDeploymentConfigMinimumHealthyHosts where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 46, omitNothingFields = True }+  toJSON CodeDeployDeploymentConfigMinimumHealthyHosts{..} =+    object $+    catMaybes+    [ ("Type" .=) <$> _codeDeployDeploymentConfigMinimumHealthyHostsType+    , ("Value" .=) <$> _codeDeployDeploymentConfigMinimumHealthyHostsValue+    ]  instance FromJSON CodeDeployDeploymentConfigMinimumHealthyHosts where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 46, omitNothingFields = True }+  parseJSON (Object obj) =+    CodeDeployDeploymentConfigMinimumHealthyHosts <$>+      obj .:? "Type" <*>+      obj .:? "Value"+  parseJSON _ = mempty  -- | Constructor for 'CodeDeployDeploymentConfigMinimumHealthyHosts' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentGroupDeployment.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment.html  module Stratosphere.ResourceProperties.CodeDeployDeploymentGroupDeployment where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupRevision@@ -21,13 +21,24 @@   { _codeDeployDeploymentGroupDeploymentDescription :: Maybe (Val Text)   , _codeDeployDeploymentGroupDeploymentIgnoreApplicationStopFailures :: Maybe (Val Bool')   , _codeDeployDeploymentGroupDeploymentRevision :: CodeDeployDeploymentGroupRevision-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodeDeployDeploymentGroupDeployment where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  toJSON CodeDeployDeploymentGroupDeployment{..} =+    object $+    catMaybes+    [ ("Description" .=) <$> _codeDeployDeploymentGroupDeploymentDescription+    , ("IgnoreApplicationStopFailures" .=) <$> _codeDeployDeploymentGroupDeploymentIgnoreApplicationStopFailures+    , Just ("Revision" .= _codeDeployDeploymentGroupDeploymentRevision)+    ]  instance FromJSON CodeDeployDeploymentGroupDeployment where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  parseJSON (Object obj) =+    CodeDeployDeploymentGroupDeployment <$>+      obj .:? "Description" <*>+      obj .:? "IgnoreApplicationStopFailures" <*>+      obj .: "Revision"+  parseJSON _ = mempty  -- | Constructor for 'CodeDeployDeploymentGroupDeployment' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentGroupEc2TagFilter.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilters.html  module Stratosphere.ResourceProperties.CodeDeployDeploymentGroupEc2TagFilter where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,24 @@   { _codeDeployDeploymentGroupEc2TagFilterKey :: Maybe (Val Text)   , _codeDeployDeploymentGroupEc2TagFilterType :: Val Text   , _codeDeployDeploymentGroupEc2TagFilterValue :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodeDeployDeploymentGroupEc2TagFilter where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 38, omitNothingFields = True }+  toJSON CodeDeployDeploymentGroupEc2TagFilter{..} =+    object $+    catMaybes+    [ ("Key" .=) <$> _codeDeployDeploymentGroupEc2TagFilterKey+    , Just ("Type" .= _codeDeployDeploymentGroupEc2TagFilterType)+    , ("Value" .=) <$> _codeDeployDeploymentGroupEc2TagFilterValue+    ]  instance FromJSON CodeDeployDeploymentGroupEc2TagFilter where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 38, omitNothingFields = True }+  parseJSON (Object obj) =+    CodeDeployDeploymentGroupEc2TagFilter <$>+      obj .:? "Key" <*>+      obj .: "Type" <*>+      obj .:? "Value"+  parseJSON _ = mempty  -- | Constructor for 'CodeDeployDeploymentGroupEc2TagFilter' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentGroupGitHubLocation.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-githublocation.html  module Stratosphere.ResourceProperties.CodeDeployDeploymentGroupGitHubLocation where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,22 @@   CodeDeployDeploymentGroupGitHubLocation   { _codeDeployDeploymentGroupGitHubLocationCommitId :: Val Text   , _codeDeployDeploymentGroupGitHubLocationRepository :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodeDeployDeploymentGroupGitHubLocation where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 40, omitNothingFields = True }+  toJSON CodeDeployDeploymentGroupGitHubLocation{..} =+    object $+    catMaybes+    [ Just ("CommitId" .= _codeDeployDeploymentGroupGitHubLocationCommitId)+    , Just ("Repository" .= _codeDeployDeploymentGroupGitHubLocationRepository)+    ]  instance FromJSON CodeDeployDeploymentGroupGitHubLocation where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 40, omitNothingFields = True }+  parseJSON (Object obj) =+    CodeDeployDeploymentGroupGitHubLocation <$>+      obj .: "CommitId" <*>+      obj .: "Repository"+  parseJSON _ = mempty  -- | Constructor for 'CodeDeployDeploymentGroupGitHubLocation' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentGroupOnPremisesInstanceTagFilter.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisesinstancetagfilters.html  module Stratosphere.ResourceProperties.CodeDeployDeploymentGroupOnPremisesInstanceTagFilter where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -23,13 +23,24 @@   { _codeDeployDeploymentGroupOnPremisesInstanceTagFilterKey :: Maybe (Val Text)   , _codeDeployDeploymentGroupOnPremisesInstanceTagFilterType :: Maybe (Val Text)   , _codeDeployDeploymentGroupOnPremisesInstanceTagFilterValue :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodeDeployDeploymentGroupOnPremisesInstanceTagFilter where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 53, omitNothingFields = True }+  toJSON CodeDeployDeploymentGroupOnPremisesInstanceTagFilter{..} =+    object $+    catMaybes+    [ ("Key" .=) <$> _codeDeployDeploymentGroupOnPremisesInstanceTagFilterKey+    , ("Type" .=) <$> _codeDeployDeploymentGroupOnPremisesInstanceTagFilterType+    , ("Value" .=) <$> _codeDeployDeploymentGroupOnPremisesInstanceTagFilterValue+    ]  instance FromJSON CodeDeployDeploymentGroupOnPremisesInstanceTagFilter where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 53, omitNothingFields = True }+  parseJSON (Object obj) =+    CodeDeployDeploymentGroupOnPremisesInstanceTagFilter <$>+      obj .:? "Key" <*>+      obj .:? "Type" <*>+      obj .:? "Value"+  parseJSON _ = mempty  -- | Constructor for 'CodeDeployDeploymentGroupOnPremisesInstanceTagFilter' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentGroupRevision.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision.html  module Stratosphere.ResourceProperties.CodeDeployDeploymentGroupRevision where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupGitHubLocation@@ -22,13 +22,24 @@   { _codeDeployDeploymentGroupRevisionGitHubLocation :: Maybe CodeDeployDeploymentGroupGitHubLocation   , _codeDeployDeploymentGroupRevisionRevisionType :: Maybe (Val Text)   , _codeDeployDeploymentGroupRevisionS3Location :: Maybe CodeDeployDeploymentGroupS3Location-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodeDeployDeploymentGroupRevision where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  toJSON CodeDeployDeploymentGroupRevision{..} =+    object $+    catMaybes+    [ ("GitHubLocation" .=) <$> _codeDeployDeploymentGroupRevisionGitHubLocation+    , ("RevisionType" .=) <$> _codeDeployDeploymentGroupRevisionRevisionType+    , ("S3Location" .=) <$> _codeDeployDeploymentGroupRevisionS3Location+    ]  instance FromJSON CodeDeployDeploymentGroupRevision where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  parseJSON (Object obj) =+    CodeDeployDeploymentGroupRevision <$>+      obj .:? "GitHubLocation" <*>+      obj .:? "RevisionType" <*>+      obj .:? "S3Location"+  parseJSON _ = mempty  -- | Constructor for 'CodeDeployDeploymentGroupRevision' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/CodeDeployDeploymentGroupS3Location.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html  module Stratosphere.ResourceProperties.CodeDeployDeploymentGroupS3Location where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -23,13 +23,28 @@   , _codeDeployDeploymentGroupS3LocationETag :: Maybe (Val Text)   , _codeDeployDeploymentGroupS3LocationKey :: Val Text   , _codeDeployDeploymentGroupS3LocationVersion :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodeDeployDeploymentGroupS3Location where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  toJSON CodeDeployDeploymentGroupS3Location{..} =+    object $+    catMaybes+    [ Just ("Bucket" .= _codeDeployDeploymentGroupS3LocationBucket)+    , Just ("BundleType" .= _codeDeployDeploymentGroupS3LocationBundleType)+    , ("ETag" .=) <$> _codeDeployDeploymentGroupS3LocationETag+    , Just ("Key" .= _codeDeployDeploymentGroupS3LocationKey)+    , ("Version" .=) <$> _codeDeployDeploymentGroupS3LocationVersion+    ]  instance FromJSON CodeDeployDeploymentGroupS3Location where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  parseJSON (Object obj) =+    CodeDeployDeploymentGroupS3Location <$>+      obj .: "Bucket" <*>+      obj .: "BundleType" <*>+      obj .:? "ETag" <*>+      obj .: "Key" <*>+      obj .:? "Version"+  parseJSON _ = mempty  -- | Constructor for 'CodeDeployDeploymentGroupS3Location' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/CodePipelineCustomActionTypeArtifactDetails.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-artifactdetails.html  module Stratosphere.ResourceProperties.CodePipelineCustomActionTypeArtifactDetails where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,22 @@   CodePipelineCustomActionTypeArtifactDetails   { _codePipelineCustomActionTypeArtifactDetailsMaximumCount :: Val Integer'   , _codePipelineCustomActionTypeArtifactDetailsMinimumCount :: Val Integer'-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodePipelineCustomActionTypeArtifactDetails where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 44, omitNothingFields = True }+  toJSON CodePipelineCustomActionTypeArtifactDetails{..} =+    object $+    catMaybes+    [ Just ("MaximumCount" .= _codePipelineCustomActionTypeArtifactDetailsMaximumCount)+    , Just ("MinimumCount" .= _codePipelineCustomActionTypeArtifactDetailsMinimumCount)+    ]  instance FromJSON CodePipelineCustomActionTypeArtifactDetails where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 44, omitNothingFields = True }+  parseJSON (Object obj) =+    CodePipelineCustomActionTypeArtifactDetails <$>+      obj .: "MaximumCount" <*>+      obj .: "MinimumCount"+  parseJSON _ = mempty  -- | Constructor for 'CodePipelineCustomActionTypeArtifactDetails' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/CodePipelineCustomActionTypeConfigurationProperties.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html  module Stratosphere.ResourceProperties.CodePipelineCustomActionTypeConfigurationProperties where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -27,13 +27,32 @@   , _codePipelineCustomActionTypeConfigurationPropertiesRequired :: Val Bool'   , _codePipelineCustomActionTypeConfigurationPropertiesSecret :: Val Bool'   , _codePipelineCustomActionTypeConfigurationPropertiesType :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodePipelineCustomActionTypeConfigurationProperties where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 52, omitNothingFields = True }+  toJSON CodePipelineCustomActionTypeConfigurationProperties{..} =+    object $+    catMaybes+    [ ("Description" .=) <$> _codePipelineCustomActionTypeConfigurationPropertiesDescription+    , Just ("Key" .= _codePipelineCustomActionTypeConfigurationPropertiesKey)+    , Just ("Name" .= _codePipelineCustomActionTypeConfigurationPropertiesName)+    , ("Queryable" .=) <$> _codePipelineCustomActionTypeConfigurationPropertiesQueryable+    , Just ("Required" .= _codePipelineCustomActionTypeConfigurationPropertiesRequired)+    , Just ("Secret" .= _codePipelineCustomActionTypeConfigurationPropertiesSecret)+    , ("Type" .=) <$> _codePipelineCustomActionTypeConfigurationPropertiesType+    ]  instance FromJSON CodePipelineCustomActionTypeConfigurationProperties where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 52, omitNothingFields = True }+  parseJSON (Object obj) =+    CodePipelineCustomActionTypeConfigurationProperties <$>+      obj .:? "Description" <*>+      obj .: "Key" <*>+      obj .: "Name" <*>+      obj .:? "Queryable" <*>+      obj .: "Required" <*>+      obj .: "Secret" <*>+      obj .:? "Type"+  parseJSON _ = mempty  -- | Constructor for 'CodePipelineCustomActionTypeConfigurationProperties' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/CodePipelineCustomActionTypeSettings.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-settings.html  module Stratosphere.ResourceProperties.CodePipelineCustomActionTypeSettings where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,26 @@   , _codePipelineCustomActionTypeSettingsExecutionUrlTemplate :: Maybe (Val Text)   , _codePipelineCustomActionTypeSettingsRevisionUrlTemplate :: Maybe (Val Text)   , _codePipelineCustomActionTypeSettingsThirdPartyConfigurationUrl :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodePipelineCustomActionTypeSettings where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 37, omitNothingFields = True }+  toJSON CodePipelineCustomActionTypeSettings{..} =+    object $+    catMaybes+    [ ("EntityUrlTemplate" .=) <$> _codePipelineCustomActionTypeSettingsEntityUrlTemplate+    , ("ExecutionUrlTemplate" .=) <$> _codePipelineCustomActionTypeSettingsExecutionUrlTemplate+    , ("RevisionUrlTemplate" .=) <$> _codePipelineCustomActionTypeSettingsRevisionUrlTemplate+    , ("ThirdPartyConfigurationUrl" .=) <$> _codePipelineCustomActionTypeSettingsThirdPartyConfigurationUrl+    ]  instance FromJSON CodePipelineCustomActionTypeSettings where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 37, omitNothingFields = True }+  parseJSON (Object obj) =+    CodePipelineCustomActionTypeSettings <$>+      obj .:? "EntityUrlTemplate" <*>+      obj .:? "ExecutionUrlTemplate" <*>+      obj .:? "RevisionUrlTemplate" <*>+      obj .:? "ThirdPartyConfigurationUrl"+  parseJSON _ = mempty  -- | Constructor for 'CodePipelineCustomActionTypeSettings' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineActionDeclaration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html  module Stratosphere.ResourceProperties.CodePipelinePipelineActionDeclaration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.CodePipelinePipelineActionTypeId@@ -28,13 +28,32 @@   , _codePipelinePipelineActionDeclarationOutputArtifacts :: Maybe [CodePipelinePipelineOutputArtifact]   , _codePipelinePipelineActionDeclarationRoleArn :: Maybe (Val Text)   , _codePipelinePipelineActionDeclarationRunOrder :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodePipelinePipelineActionDeclaration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 38, omitNothingFields = True }+  toJSON CodePipelinePipelineActionDeclaration{..} =+    object $+    catMaybes+    [ Just ("ActionTypeId" .= _codePipelinePipelineActionDeclarationActionTypeId)+    , ("Configuration" .=) <$> _codePipelinePipelineActionDeclarationConfiguration+    , ("InputArtifacts" .=) <$> _codePipelinePipelineActionDeclarationInputArtifacts+    , Just ("Name" .= _codePipelinePipelineActionDeclarationName)+    , ("OutputArtifacts" .=) <$> _codePipelinePipelineActionDeclarationOutputArtifacts+    , ("RoleArn" .=) <$> _codePipelinePipelineActionDeclarationRoleArn+    , ("RunOrder" .=) <$> _codePipelinePipelineActionDeclarationRunOrder+    ]  instance FromJSON CodePipelinePipelineActionDeclaration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 38, omitNothingFields = True }+  parseJSON (Object obj) =+    CodePipelinePipelineActionDeclaration <$>+      obj .: "ActionTypeId" <*>+      obj .:? "Configuration" <*>+      obj .:? "InputArtifacts" <*>+      obj .: "Name" <*>+      obj .:? "OutputArtifacts" <*>+      obj .:? "RoleArn" <*>+      obj .:? "RunOrder"+  parseJSON _ = mempty  -- | Constructor for 'CodePipelinePipelineActionDeclaration' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineActionTypeId.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html  module Stratosphere.ResourceProperties.CodePipelinePipelineActionTypeId where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,26 @@   , _codePipelinePipelineActionTypeIdOwner :: Val Text   , _codePipelinePipelineActionTypeIdProvider :: Val Text   , _codePipelinePipelineActionTypeIdVersion :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodePipelinePipelineActionTypeId where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  toJSON CodePipelinePipelineActionTypeId{..} =+    object $+    catMaybes+    [ Just ("Category" .= _codePipelinePipelineActionTypeIdCategory)+    , Just ("Owner" .= _codePipelinePipelineActionTypeIdOwner)+    , Just ("Provider" .= _codePipelinePipelineActionTypeIdProvider)+    , Just ("Version" .= _codePipelinePipelineActionTypeIdVersion)+    ]  instance FromJSON CodePipelinePipelineActionTypeId where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  parseJSON (Object obj) =+    CodePipelinePipelineActionTypeId <$>+      obj .: "Category" <*>+      obj .: "Owner" <*>+      obj .: "Provider" <*>+      obj .: "Version"+  parseJSON _ = mempty  -- | Constructor for 'CodePipelinePipelineActionTypeId' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineArtifactStore.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore.html  module Stratosphere.ResourceProperties.CodePipelinePipelineArtifactStore where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.CodePipelinePipelineEncryptionKey@@ -21,13 +21,24 @@   { _codePipelinePipelineArtifactStoreEncryptionKey :: Maybe CodePipelinePipelineEncryptionKey   , _codePipelinePipelineArtifactStoreLocation :: Val Text   , _codePipelinePipelineArtifactStoreType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodePipelinePipelineArtifactStore where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  toJSON CodePipelinePipelineArtifactStore{..} =+    object $+    catMaybes+    [ ("EncryptionKey" .=) <$> _codePipelinePipelineArtifactStoreEncryptionKey+    , Just ("Location" .= _codePipelinePipelineArtifactStoreLocation)+    , Just ("Type" .= _codePipelinePipelineArtifactStoreType)+    ]  instance FromJSON CodePipelinePipelineArtifactStore where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  parseJSON (Object obj) =+    CodePipelinePipelineArtifactStore <$>+      obj .:? "EncryptionKey" <*>+      obj .: "Location" <*>+      obj .: "Type"+  parseJSON _ = mempty  -- | Constructor for 'CodePipelinePipelineArtifactStore' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineBlockerDeclaration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-blockers.html  module Stratosphere.ResourceProperties.CodePipelinePipelineBlockerDeclaration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,22 @@   CodePipelinePipelineBlockerDeclaration   { _codePipelinePipelineBlockerDeclarationName :: Val Text   , _codePipelinePipelineBlockerDeclarationType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodePipelinePipelineBlockerDeclaration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 39, omitNothingFields = True }+  toJSON CodePipelinePipelineBlockerDeclaration{..} =+    object $+    catMaybes+    [ Just ("Name" .= _codePipelinePipelineBlockerDeclarationName)+    , Just ("Type" .= _codePipelinePipelineBlockerDeclarationType)+    ]  instance FromJSON CodePipelinePipelineBlockerDeclaration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 39, omitNothingFields = True }+  parseJSON (Object obj) =+    CodePipelinePipelineBlockerDeclaration <$>+      obj .: "Name" <*>+      obj .: "Type"+  parseJSON _ = mempty  -- | Constructor for 'CodePipelinePipelineBlockerDeclaration' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineEncryptionKey.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore-encryptionkey.html  module Stratosphere.ResourceProperties.CodePipelinePipelineEncryptionKey where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   CodePipelinePipelineEncryptionKey   { _codePipelinePipelineEncryptionKeyId :: Val Text   , _codePipelinePipelineEncryptionKeyType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodePipelinePipelineEncryptionKey where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  toJSON CodePipelinePipelineEncryptionKey{..} =+    object $+    catMaybes+    [ Just ("Id" .= _codePipelinePipelineEncryptionKeyId)+    , Just ("Type" .= _codePipelinePipelineEncryptionKeyType)+    ]  instance FromJSON CodePipelinePipelineEncryptionKey where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  parseJSON (Object obj) =+    CodePipelinePipelineEncryptionKey <$>+      obj .: "Id" <*>+      obj .: "Type"+  parseJSON _ = mempty  -- | Constructor for 'CodePipelinePipelineEncryptionKey' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineInputArtifact.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-inputartifacts.html  module Stratosphere.ResourceProperties.CodePipelinePipelineInputArtifact where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data CodePipelinePipelineInputArtifact =   CodePipelinePipelineInputArtifact   { _codePipelinePipelineInputArtifactName :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodePipelinePipelineInputArtifact where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  toJSON CodePipelinePipelineInputArtifact{..} =+    object $+    catMaybes+    [ Just ("Name" .= _codePipelinePipelineInputArtifactName)+    ]  instance FromJSON CodePipelinePipelineInputArtifact where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  parseJSON (Object obj) =+    CodePipelinePipelineInputArtifact <$>+      obj .: "Name"+  parseJSON _ = mempty  -- | Constructor for 'CodePipelinePipelineInputArtifact' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineOutputArtifact.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-outputartifacts.html  module Stratosphere.ResourceProperties.CodePipelinePipelineOutputArtifact where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data CodePipelinePipelineOutputArtifact =   CodePipelinePipelineOutputArtifact   { _codePipelinePipelineOutputArtifactName :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodePipelinePipelineOutputArtifact where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  toJSON CodePipelinePipelineOutputArtifact{..} =+    object $+    catMaybes+    [ Just ("Name" .= _codePipelinePipelineOutputArtifactName)+    ]  instance FromJSON CodePipelinePipelineOutputArtifact where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  parseJSON (Object obj) =+    CodePipelinePipelineOutputArtifact <$>+      obj .: "Name"+  parseJSON _ = mempty  -- | Constructor for 'CodePipelinePipelineOutputArtifact' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineStageDeclaration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages.html  module Stratosphere.ResourceProperties.CodePipelinePipelineStageDeclaration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.CodePipelinePipelineActionDeclaration@@ -22,13 +22,24 @@   { _codePipelinePipelineStageDeclarationActions :: [CodePipelinePipelineActionDeclaration]   , _codePipelinePipelineStageDeclarationBlockers :: Maybe [CodePipelinePipelineBlockerDeclaration]   , _codePipelinePipelineStageDeclarationName :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodePipelinePipelineStageDeclaration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 37, omitNothingFields = True }+  toJSON CodePipelinePipelineStageDeclaration{..} =+    object $+    catMaybes+    [ Just ("Actions" .= _codePipelinePipelineStageDeclarationActions)+    , ("Blockers" .=) <$> _codePipelinePipelineStageDeclarationBlockers+    , Just ("Name" .= _codePipelinePipelineStageDeclarationName)+    ]  instance FromJSON CodePipelinePipelineStageDeclaration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 37, omitNothingFields = True }+  parseJSON (Object obj) =+    CodePipelinePipelineStageDeclaration <$>+      obj .: "Actions" <*>+      obj .:? "Blockers" <*>+      obj .: "Name"+  parseJSON _ = mempty  -- | Constructor for 'CodePipelinePipelineStageDeclaration' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/CodePipelinePipelineStageTransition.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-disableinboundstagetransitions.html  module Stratosphere.ResourceProperties.CodePipelinePipelineStageTransition where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   CodePipelinePipelineStageTransition   { _codePipelinePipelineStageTransitionReason :: Val Text   , _codePipelinePipelineStageTransitionStageName :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodePipelinePipelineStageTransition where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  toJSON CodePipelinePipelineStageTransition{..} =+    object $+    catMaybes+    [ Just ("Reason" .= _codePipelinePipelineStageTransitionReason)+    , Just ("StageName" .= _codePipelinePipelineStageTransitionStageName)+    ]  instance FromJSON CodePipelinePipelineStageTransition where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  parseJSON (Object obj) =+    CodePipelinePipelineStageTransition <$>+      obj .: "Reason" <*>+      obj .: "StageName"+  parseJSON _ = mempty  -- | Constructor for 'CodePipelinePipelineStageTransition' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/ConfigConfigRuleScope.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-scope.html  module Stratosphere.ResourceProperties.ConfigConfigRuleScope where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,26 @@   , _configConfigRuleScopeComplianceResourceTypes :: Maybe [Val Text]   , _configConfigRuleScopeTagKey :: Maybe (Val Text)   , _configConfigRuleScopeTagValue :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ConfigConfigRuleScope where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 22, omitNothingFields = True }+  toJSON ConfigConfigRuleScope{..} =+    object $+    catMaybes+    [ ("ComplianceResourceId" .=) <$> _configConfigRuleScopeComplianceResourceId+    , ("ComplianceResourceTypes" .=) <$> _configConfigRuleScopeComplianceResourceTypes+    , ("TagKey" .=) <$> _configConfigRuleScopeTagKey+    , ("TagValue" .=) <$> _configConfigRuleScopeTagValue+    ]  instance FromJSON ConfigConfigRuleScope where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 22, omitNothingFields = True }+  parseJSON (Object obj) =+    ConfigConfigRuleScope <$>+      obj .:? "ComplianceResourceId" <*>+      obj .:? "ComplianceResourceTypes" <*>+      obj .:? "TagKey" <*>+      obj .:? "TagValue"+  parseJSON _ = mempty  -- | Constructor for 'ConfigConfigRuleScope' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/ConfigConfigRuleSource.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source.html  module Stratosphere.ResourceProperties.ConfigConfigRuleSource where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ConfigConfigRuleSourceDetail@@ -21,13 +21,24 @@   { _configConfigRuleSourceOwner :: Val Text   , _configConfigRuleSourceSourceDetails :: Maybe [ConfigConfigRuleSourceDetail]   , _configConfigRuleSourceSourceIdentifier :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ConfigConfigRuleSource where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  toJSON ConfigConfigRuleSource{..} =+    object $+    catMaybes+    [ Just ("Owner" .= _configConfigRuleSourceOwner)+    , ("SourceDetails" .=) <$> _configConfigRuleSourceSourceDetails+    , Just ("SourceIdentifier" .= _configConfigRuleSourceSourceIdentifier)+    ]  instance FromJSON ConfigConfigRuleSource where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  parseJSON (Object obj) =+    ConfigConfigRuleSource <$>+      obj .: "Owner" <*>+      obj .:? "SourceDetails" <*>+      obj .: "SourceIdentifier"+  parseJSON _ = mempty  -- | Constructor for 'ConfigConfigRuleSource' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/ConfigConfigRuleSourceDetail.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source-sourcedetails.html  module Stratosphere.ResourceProperties.ConfigConfigRuleSourceDetail where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   ConfigConfigRuleSourceDetail   { _configConfigRuleSourceDetailEventSource :: Val Text   , _configConfigRuleSourceDetailMessageType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ConfigConfigRuleSourceDetail where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  toJSON ConfigConfigRuleSourceDetail{..} =+    object $+    catMaybes+    [ Just ("EventSource" .= _configConfigRuleSourceDetailEventSource)+    , Just ("MessageType" .= _configConfigRuleSourceDetailMessageType)+    ]  instance FromJSON ConfigConfigRuleSourceDetail where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  parseJSON (Object obj) =+    ConfigConfigRuleSourceDetail <$>+      obj .: "EventSource" <*>+      obj .: "MessageType"+  parseJSON _ = mempty  -- | Constructor for 'ConfigConfigRuleSourceDetail' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/ConfigConfigurationRecorderRecordingGroup.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordinggroup.html  module Stratosphere.ResourceProperties.ConfigConfigurationRecorderRecordingGroup where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,24 @@   { _configConfigurationRecorderRecordingGroupAllSupported :: Maybe (Val Bool')   , _configConfigurationRecorderRecordingGroupIncludeGlobalResourceTypes :: Maybe (Val Bool')   , _configConfigurationRecorderRecordingGroupResourceTypes :: Maybe [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ConfigConfigurationRecorderRecordingGroup where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 42, omitNothingFields = True }+  toJSON ConfigConfigurationRecorderRecordingGroup{..} =+    object $+    catMaybes+    [ ("AllSupported" .=) <$> _configConfigurationRecorderRecordingGroupAllSupported+    , ("IncludeGlobalResourceTypes" .=) <$> _configConfigurationRecorderRecordingGroupIncludeGlobalResourceTypes+    , ("ResourceTypes" .=) <$> _configConfigurationRecorderRecordingGroupResourceTypes+    ]  instance FromJSON ConfigConfigurationRecorderRecordingGroup where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 42, omitNothingFields = True }+  parseJSON (Object obj) =+    ConfigConfigurationRecorderRecordingGroup <$>+      obj .:? "AllSupported" <*>+      obj .:? "IncludeGlobalResourceTypes" <*>+      obj .:? "ResourceTypes"+  parseJSON _ = mempty  -- | Constructor for 'ConfigConfigurationRecorderRecordingGroup' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ConfigDeliveryChannelConfigSnapshotDeliveryProperties.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-deliverychannel-configsnapshotdeliveryproperties.html  module Stratosphere.ResourceProperties.ConfigDeliveryChannelConfigSnapshotDeliveryProperties where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,20 @@ data ConfigDeliveryChannelConfigSnapshotDeliveryProperties =   ConfigDeliveryChannelConfigSnapshotDeliveryProperties   { _configDeliveryChannelConfigSnapshotDeliveryPropertiesDeliveryFrequency :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ConfigDeliveryChannelConfigSnapshotDeliveryProperties where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 54, omitNothingFields = True }+  toJSON ConfigDeliveryChannelConfigSnapshotDeliveryProperties{..} =+    object $+    catMaybes+    [ ("DeliveryFrequency" .=) <$> _configDeliveryChannelConfigSnapshotDeliveryPropertiesDeliveryFrequency+    ]  instance FromJSON ConfigDeliveryChannelConfigSnapshotDeliveryProperties where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 54, omitNothingFields = True }+  parseJSON (Object obj) =+    ConfigDeliveryChannelConfigSnapshotDeliveryProperties <$>+      obj .:? "DeliveryFrequency"+  parseJSON _ = mempty  -- | Constructor for 'ConfigDeliveryChannelConfigSnapshotDeliveryProperties' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/DataPipelinePipelineField.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects-fields.html  module Stratosphere.ResourceProperties.DataPipelinePipelineField where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _dataPipelinePipelineFieldKey :: Val Text   , _dataPipelinePipelineFieldRefValue :: Maybe (Val Text)   , _dataPipelinePipelineFieldStringValue :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON DataPipelinePipelineField where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }+  toJSON DataPipelinePipelineField{..} =+    object $+    catMaybes+    [ Just ("Key" .= _dataPipelinePipelineFieldKey)+    , ("RefValue" .=) <$> _dataPipelinePipelineFieldRefValue+    , ("StringValue" .=) <$> _dataPipelinePipelineFieldStringValue+    ]  instance FromJSON DataPipelinePipelineField where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }+  parseJSON (Object obj) =+    DataPipelinePipelineField <$>+      obj .: "Key" <*>+      obj .:? "RefValue" <*>+      obj .:? "StringValue"+  parseJSON _ = mempty  -- | Constructor for 'DataPipelinePipelineField' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/DataPipelinePipelineParameterAttribute.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects-attributes.html  module Stratosphere.ResourceProperties.DataPipelinePipelineParameterAttribute where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,22 @@   DataPipelinePipelineParameterAttribute   { _dataPipelinePipelineParameterAttributeKey :: Val Text   , _dataPipelinePipelineParameterAttributeStringValue :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON DataPipelinePipelineParameterAttribute where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 39, omitNothingFields = True }+  toJSON DataPipelinePipelineParameterAttribute{..} =+    object $+    catMaybes+    [ Just ("Key" .= _dataPipelinePipelineParameterAttributeKey)+    , Just ("StringValue" .= _dataPipelinePipelineParameterAttributeStringValue)+    ]  instance FromJSON DataPipelinePipelineParameterAttribute where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 39, omitNothingFields = True }+  parseJSON (Object obj) =+    DataPipelinePipelineParameterAttribute <$>+      obj .: "Key" <*>+      obj .: "StringValue"+  parseJSON _ = mempty  -- | Constructor for 'DataPipelinePipelineParameterAttribute' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/DataPipelinePipelineParameterObject.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects.html  module Stratosphere.ResourceProperties.DataPipelinePipelineParameterObject where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.DataPipelinePipelineParameterAttribute@@ -20,13 +20,22 @@   DataPipelinePipelineParameterObject   { _dataPipelinePipelineParameterObjectAttributes :: [DataPipelinePipelineParameterAttribute]   , _dataPipelinePipelineParameterObjectId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON DataPipelinePipelineParameterObject where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  toJSON DataPipelinePipelineParameterObject{..} =+    object $+    catMaybes+    [ Just ("Attributes" .= _dataPipelinePipelineParameterObjectAttributes)+    , Just ("Id" .= _dataPipelinePipelineParameterObjectId)+    ]  instance FromJSON DataPipelinePipelineParameterObject where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  parseJSON (Object obj) =+    DataPipelinePipelineParameterObject <$>+      obj .: "Attributes" <*>+      obj .: "Id"+  parseJSON _ = mempty  -- | Constructor for 'DataPipelinePipelineParameterObject' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/DataPipelinePipelineParameterValue.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parametervalues.html  module Stratosphere.ResourceProperties.DataPipelinePipelineParameterValue where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   DataPipelinePipelineParameterValue   { _dataPipelinePipelineParameterValueId :: Val Text   , _dataPipelinePipelineParameterValueStringValue :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON DataPipelinePipelineParameterValue where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  toJSON DataPipelinePipelineParameterValue{..} =+    object $+    catMaybes+    [ Just ("Id" .= _dataPipelinePipelineParameterValueId)+    , Just ("StringValue" .= _dataPipelinePipelineParameterValueStringValue)+    ]  instance FromJSON DataPipelinePipelineParameterValue where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  parseJSON (Object obj) =+    DataPipelinePipelineParameterValue <$>+      obj .: "Id" <*>+      obj .: "StringValue"+  parseJSON _ = mempty  -- | Constructor for 'DataPipelinePipelineParameterValue' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/DataPipelinePipelinePipelineObject.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects.html  module Stratosphere.ResourceProperties.DataPipelinePipelinePipelineObject where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.DataPipelinePipelineField@@ -21,13 +21,24 @@   { _dataPipelinePipelinePipelineObjectFields :: [DataPipelinePipelineField]   , _dataPipelinePipelinePipelineObjectId :: Val Text   , _dataPipelinePipelinePipelineObjectName :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON DataPipelinePipelinePipelineObject where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  toJSON DataPipelinePipelinePipelineObject{..} =+    object $+    catMaybes+    [ Just ("Fields" .= _dataPipelinePipelinePipelineObjectFields)+    , Just ("Id" .= _dataPipelinePipelinePipelineObjectId)+    , Just ("Name" .= _dataPipelinePipelinePipelineObjectName)+    ]  instance FromJSON DataPipelinePipelinePipelineObject where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  parseJSON (Object obj) =+    DataPipelinePipelinePipelineObject <$>+      obj .: "Fields" <*>+      obj .: "Id" <*>+      obj .: "Name"+  parseJSON _ = mempty  -- | Constructor for 'DataPipelinePipelinePipelineObject' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/DataPipelinePipelinePipelineTag.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelinetags.html  module Stratosphere.ResourceProperties.DataPipelinePipelinePipelineTag where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   DataPipelinePipelinePipelineTag   { _dataPipelinePipelinePipelineTagKey :: Val Text   , _dataPipelinePipelinePipelineTagValue :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON DataPipelinePipelinePipelineTag where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 32, omitNothingFields = True }+  toJSON DataPipelinePipelinePipelineTag{..} =+    object $+    catMaybes+    [ Just ("Key" .= _dataPipelinePipelinePipelineTagKey)+    , Just ("Value" .= _dataPipelinePipelinePipelineTagValue)+    ]  instance FromJSON DataPipelinePipelinePipelineTag where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 32, omitNothingFields = True }+  parseJSON (Object obj) =+    DataPipelinePipelinePipelineTag <$>+      obj .: "Key" <*>+      obj .: "Value"+  parseJSON _ = mempty  -- | Constructor for 'DataPipelinePipelinePipelineTag' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/DirectoryServiceMicrosoftADVpcSettings.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-microsoftad-vpcsettings.html  module Stratosphere.ResourceProperties.DirectoryServiceMicrosoftADVpcSettings where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,22 @@   DirectoryServiceMicrosoftADVpcSettings   { _directoryServiceMicrosoftADVpcSettingsSubnetIds :: [Val Text]   , _directoryServiceMicrosoftADVpcSettingsVpcId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON DirectoryServiceMicrosoftADVpcSettings where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 39, omitNothingFields = True }+  toJSON DirectoryServiceMicrosoftADVpcSettings{..} =+    object $+    catMaybes+    [ Just ("SubnetIds" .= _directoryServiceMicrosoftADVpcSettingsSubnetIds)+    , Just ("VpcId" .= _directoryServiceMicrosoftADVpcSettingsVpcId)+    ]  instance FromJSON DirectoryServiceMicrosoftADVpcSettings where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 39, omitNothingFields = True }+  parseJSON (Object obj) =+    DirectoryServiceMicrosoftADVpcSettings <$>+      obj .: "SubnetIds" <*>+      obj .: "VpcId"+  parseJSON _ = mempty  -- | Constructor for 'DirectoryServiceMicrosoftADVpcSettings' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/DirectoryServiceSimpleADVpcSettings.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-simplead-vpcsettings.html  module Stratosphere.ResourceProperties.DirectoryServiceSimpleADVpcSettings where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   DirectoryServiceSimpleADVpcSettings   { _directoryServiceSimpleADVpcSettingsSubnetIds :: [Val Text]   , _directoryServiceSimpleADVpcSettingsVpcId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON DirectoryServiceSimpleADVpcSettings where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  toJSON DirectoryServiceSimpleADVpcSettings{..} =+    object $+    catMaybes+    [ Just ("SubnetIds" .= _directoryServiceSimpleADVpcSettingsSubnetIds)+    , Just ("VpcId" .= _directoryServiceSimpleADVpcSettingsVpcId)+    ]  instance FromJSON DirectoryServiceSimpleADVpcSettings where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  parseJSON (Object obj) =+    DirectoryServiceSimpleADVpcSettings <$>+      obj .: "SubnetIds" <*>+      obj .: "VpcId"+  parseJSON _ = mempty  -- | Constructor for 'DirectoryServiceSimpleADVpcSettings' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/DynamoDBTableAttributeDefinition.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html  module Stratosphere.ResourceProperties.DynamoDBTableAttributeDefinition where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.Types@@ -20,13 +20,22 @@   DynamoDBTableAttributeDefinition   { _dynamoDBTableAttributeDefinitionAttributeName :: Val Text   , _dynamoDBTableAttributeDefinitionAttributeType :: Val AttributeType-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON DynamoDBTableAttributeDefinition where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  toJSON DynamoDBTableAttributeDefinition{..} =+    object $+    catMaybes+    [ Just ("AttributeName" .= _dynamoDBTableAttributeDefinitionAttributeName)+    , Just ("AttributeType" .= _dynamoDBTableAttributeDefinitionAttributeType)+    ]  instance FromJSON DynamoDBTableAttributeDefinition where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  parseJSON (Object obj) =+    DynamoDBTableAttributeDefinition <$>+      obj .: "AttributeName" <*>+      obj .: "AttributeType"+  parseJSON _ = mempty  -- | Constructor for 'DynamoDBTableAttributeDefinition' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/DynamoDBTableGlobalSecondaryIndex.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html  module Stratosphere.ResourceProperties.DynamoDBTableGlobalSecondaryIndex where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.DynamoDBTableKeySchema@@ -24,13 +24,26 @@   , _dynamoDBTableGlobalSecondaryIndexKeySchema :: [DynamoDBTableKeySchema]   , _dynamoDBTableGlobalSecondaryIndexProjection :: DynamoDBTableProjection   , _dynamoDBTableGlobalSecondaryIndexProvisionedThroughput :: DynamoDBTableProvisionedThroughput-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON DynamoDBTableGlobalSecondaryIndex where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  toJSON DynamoDBTableGlobalSecondaryIndex{..} =+    object $+    catMaybes+    [ Just ("IndexName" .= _dynamoDBTableGlobalSecondaryIndexIndexName)+    , Just ("KeySchema" .= _dynamoDBTableGlobalSecondaryIndexKeySchema)+    , Just ("Projection" .= _dynamoDBTableGlobalSecondaryIndexProjection)+    , Just ("ProvisionedThroughput" .= _dynamoDBTableGlobalSecondaryIndexProvisionedThroughput)+    ]  instance FromJSON DynamoDBTableGlobalSecondaryIndex where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  parseJSON (Object obj) =+    DynamoDBTableGlobalSecondaryIndex <$>+      obj .: "IndexName" <*>+      obj .: "KeySchema" <*>+      obj .: "Projection" <*>+      obj .: "ProvisionedThroughput"+  parseJSON _ = mempty  -- | Constructor for 'DynamoDBTableGlobalSecondaryIndex' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/DynamoDBTableKeySchema.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html  module Stratosphere.ResourceProperties.DynamoDBTableKeySchema where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.Types@@ -20,13 +20,22 @@   DynamoDBTableKeySchema   { _dynamoDBTableKeySchemaAttributeName :: Val Text   , _dynamoDBTableKeySchemaKeyType :: Val KeyType-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON DynamoDBTableKeySchema where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  toJSON DynamoDBTableKeySchema{..} =+    object $+    catMaybes+    [ Just ("AttributeName" .= _dynamoDBTableKeySchemaAttributeName)+    , Just ("KeyType" .= _dynamoDBTableKeySchemaKeyType)+    ]  instance FromJSON DynamoDBTableKeySchema where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  parseJSON (Object obj) =+    DynamoDBTableKeySchema <$>+      obj .: "AttributeName" <*>+      obj .: "KeyType"+  parseJSON _ = mempty  -- | Constructor for 'DynamoDBTableKeySchema' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/DynamoDBTableLocalSecondaryIndex.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-lsi.html  module Stratosphere.ResourceProperties.DynamoDBTableLocalSecondaryIndex where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.DynamoDBTableKeySchema@@ -22,13 +22,24 @@   { _dynamoDBTableLocalSecondaryIndexIndexName :: Val Text   , _dynamoDBTableLocalSecondaryIndexKeySchema :: [DynamoDBTableKeySchema]   , _dynamoDBTableLocalSecondaryIndexProjection :: DynamoDBTableProjection-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON DynamoDBTableLocalSecondaryIndex where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  toJSON DynamoDBTableLocalSecondaryIndex{..} =+    object $+    catMaybes+    [ Just ("IndexName" .= _dynamoDBTableLocalSecondaryIndexIndexName)+    , Just ("KeySchema" .= _dynamoDBTableLocalSecondaryIndexKeySchema)+    , Just ("Projection" .= _dynamoDBTableLocalSecondaryIndexProjection)+    ]  instance FromJSON DynamoDBTableLocalSecondaryIndex where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  parseJSON (Object obj) =+    DynamoDBTableLocalSecondaryIndex <$>+      obj .: "IndexName" <*>+      obj .: "KeySchema" <*>+      obj .: "Projection"+  parseJSON _ = mempty  -- | Constructor for 'DynamoDBTableLocalSecondaryIndex' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/DynamoDBTableProjection.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-projectionobject.html  module Stratosphere.ResourceProperties.DynamoDBTableProjection where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.Types@@ -20,13 +20,22 @@   DynamoDBTableProjection   { _dynamoDBTableProjectionNonKeyAttributes :: Maybe [Val Text]   , _dynamoDBTableProjectionProjectionType :: Maybe (Val ProjectionType)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON DynamoDBTableProjection where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  toJSON DynamoDBTableProjection{..} =+    object $+    catMaybes+    [ ("NonKeyAttributes" .=) <$> _dynamoDBTableProjectionNonKeyAttributes+    , ("ProjectionType" .=) <$> _dynamoDBTableProjectionProjectionType+    ]  instance FromJSON DynamoDBTableProjection where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  parseJSON (Object obj) =+    DynamoDBTableProjection <$>+      obj .:? "NonKeyAttributes" <*>+      obj .:? "ProjectionType"+  parseJSON _ = mempty  -- | Constructor for 'DynamoDBTableProjection' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/DynamoDBTableProvisionedThroughput.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html  module Stratosphere.ResourceProperties.DynamoDBTableProvisionedThroughput where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   DynamoDBTableProvisionedThroughput   { _dynamoDBTableProvisionedThroughputReadCapacityUnits :: Val Integer'   , _dynamoDBTableProvisionedThroughputWriteCapacityUnits :: Val Integer'-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON DynamoDBTableProvisionedThroughput where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  toJSON DynamoDBTableProvisionedThroughput{..} =+    object $+    catMaybes+    [ Just ("ReadCapacityUnits" .= _dynamoDBTableProvisionedThroughputReadCapacityUnits)+    , Just ("WriteCapacityUnits" .= _dynamoDBTableProvisionedThroughputWriteCapacityUnits)+    ]  instance FromJSON DynamoDBTableProvisionedThroughput where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  parseJSON (Object obj) =+    DynamoDBTableProvisionedThroughput <$>+      obj .: "ReadCapacityUnits" <*>+      obj .: "WriteCapacityUnits"+  parseJSON _ = mempty  -- | Constructor for 'DynamoDBTableProvisionedThroughput' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/DynamoDBTableStreamSpecification.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-streamspecification.html  module Stratosphere.ResourceProperties.DynamoDBTableStreamSpecification where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.Types@@ -19,13 +19,20 @@ data DynamoDBTableStreamSpecification =   DynamoDBTableStreamSpecification   { _dynamoDBTableStreamSpecificationStreamViewType :: Val StreamViewType-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON DynamoDBTableStreamSpecification where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  toJSON DynamoDBTableStreamSpecification{..} =+    object $+    catMaybes+    [ Just ("StreamViewType" .= _dynamoDBTableStreamSpecificationStreamViewType)+    ]  instance FromJSON DynamoDBTableStreamSpecification where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  parseJSON (Object obj) =+    DynamoDBTableStreamSpecification <$>+      obj .: "StreamViewType"+  parseJSON _ = mempty  -- | Constructor for 'DynamoDBTableStreamSpecification' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/EC2InstanceAssociationParameter.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations-associationparameters.html  module Stratosphere.ResourceProperties.EC2InstanceAssociationParameter where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   EC2InstanceAssociationParameter   { _eC2InstanceAssociationParameterKey :: Val Text   , _eC2InstanceAssociationParameterValue :: [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2InstanceAssociationParameter where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 32, omitNothingFields = True }+  toJSON EC2InstanceAssociationParameter{..} =+    object $+    catMaybes+    [ Just ("Key" .= _eC2InstanceAssociationParameterKey)+    , Just ("Value" .= _eC2InstanceAssociationParameterValue)+    ]  instance FromJSON EC2InstanceAssociationParameter where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 32, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2InstanceAssociationParameter <$>+      obj .: "Key" <*>+      obj .: "Value"+  parseJSON _ = mempty  -- | Constructor for 'EC2InstanceAssociationParameter' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/EC2InstanceBlockDeviceMapping.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-mapping.html  module Stratosphere.ResourceProperties.EC2InstanceBlockDeviceMapping where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EC2InstanceEbs@@ -23,13 +23,26 @@   , _eC2InstanceBlockDeviceMappingEbs :: Maybe EC2InstanceEbs   , _eC2InstanceBlockDeviceMappingNoDevice :: Maybe EC2InstanceNoDevice   , _eC2InstanceBlockDeviceMappingVirtualName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2InstanceBlockDeviceMapping where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  toJSON EC2InstanceBlockDeviceMapping{..} =+    object $+    catMaybes+    [ Just ("DeviceName" .= _eC2InstanceBlockDeviceMappingDeviceName)+    , ("Ebs" .=) <$> _eC2InstanceBlockDeviceMappingEbs+    , ("NoDevice" .=) <$> _eC2InstanceBlockDeviceMappingNoDevice+    , ("VirtualName" .=) <$> _eC2InstanceBlockDeviceMappingVirtualName+    ]  instance FromJSON EC2InstanceBlockDeviceMapping where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2InstanceBlockDeviceMapping <$>+      obj .: "DeviceName" <*>+      obj .:? "Ebs" <*>+      obj .:? "NoDevice" <*>+      obj .:? "VirtualName"+  parseJSON _ = mempty  -- | Constructor for 'EC2InstanceBlockDeviceMapping' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/EC2InstanceEbs.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html  module Stratosphere.ResourceProperties.EC2InstanceEbs where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -24,13 +24,30 @@   , _eC2InstanceEbsSnapshotId :: Maybe (Val Text)   , _eC2InstanceEbsVolumeSize :: Maybe (Val Integer')   , _eC2InstanceEbsVolumeType :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2InstanceEbs where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  toJSON EC2InstanceEbs{..} =+    object $+    catMaybes+    [ ("DeleteOnTermination" .=) <$> _eC2InstanceEbsDeleteOnTermination+    , ("Encrypted" .=) <$> _eC2InstanceEbsEncrypted+    , ("Iops" .=) <$> _eC2InstanceEbsIops+    , ("SnapshotId" .=) <$> _eC2InstanceEbsSnapshotId+    , ("VolumeSize" .=) <$> _eC2InstanceEbsVolumeSize+    , ("VolumeType" .=) <$> _eC2InstanceEbsVolumeType+    ]  instance FromJSON EC2InstanceEbs where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2InstanceEbs <$>+      obj .:? "DeleteOnTermination" <*>+      obj .:? "Encrypted" <*>+      obj .:? "Iops" <*>+      obj .:? "SnapshotId" <*>+      obj .:? "VolumeSize" <*>+      obj .:? "VolumeType"+  parseJSON _ = mempty  -- | Constructor for 'EC2InstanceEbs' containing required fields as arguments. ec2InstanceEbs
library-gen/Stratosphere/ResourceProperties/EC2InstanceInstanceIpv6Address.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-instanceipv6address.html  module Stratosphere.ResourceProperties.EC2InstanceInstanceIpv6Address where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data EC2InstanceInstanceIpv6Address =   EC2InstanceInstanceIpv6Address   { _eC2InstanceInstanceIpv6AddressIpv6Address :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2InstanceInstanceIpv6Address where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  toJSON EC2InstanceInstanceIpv6Address{..} =+    object $+    catMaybes+    [ Just ("Ipv6Address" .= _eC2InstanceInstanceIpv6AddressIpv6Address)+    ]  instance FromJSON EC2InstanceInstanceIpv6Address where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2InstanceInstanceIpv6Address <$>+      obj .: "Ipv6Address"+  parseJSON _ = mempty  -- | Constructor for 'EC2InstanceInstanceIpv6Address' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/EC2InstanceNetworkInterface.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html  module Stratosphere.ResourceProperties.EC2InstanceNetworkInterface where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EC2InstanceInstanceIpv6Address@@ -31,13 +31,42 @@   , _eC2InstanceNetworkInterfacePrivateIpAddresses :: Maybe [EC2InstancePrivateIpAddressSpecification]   , _eC2InstanceNetworkInterfaceSecondaryPrivateIpAddressCount :: Maybe (Val Integer')   , _eC2InstanceNetworkInterfaceSubnetId :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2InstanceNetworkInterface where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON EC2InstanceNetworkInterface{..} =+    object $+    catMaybes+    [ ("AssociatePublicIpAddress" .=) <$> _eC2InstanceNetworkInterfaceAssociatePublicIpAddress+    , ("DeleteOnTermination" .=) <$> _eC2InstanceNetworkInterfaceDeleteOnTermination+    , ("Description" .=) <$> _eC2InstanceNetworkInterfaceDescription+    , Just ("DeviceIndex" .= _eC2InstanceNetworkInterfaceDeviceIndex)+    , ("GroupSet" .=) <$> _eC2InstanceNetworkInterfaceGroupSet+    , ("Ipv6AddressCount" .=) <$> _eC2InstanceNetworkInterfaceIpv6AddressCount+    , ("Ipv6Addresses" .=) <$> _eC2InstanceNetworkInterfaceIpv6Addresses+    , ("NetworkInterfaceId" .=) <$> _eC2InstanceNetworkInterfaceNetworkInterfaceId+    , ("PrivateIpAddress" .=) <$> _eC2InstanceNetworkInterfacePrivateIpAddress+    , ("PrivateIpAddresses" .=) <$> _eC2InstanceNetworkInterfacePrivateIpAddresses+    , ("SecondaryPrivateIpAddressCount" .=) <$> _eC2InstanceNetworkInterfaceSecondaryPrivateIpAddressCount+    , ("SubnetId" .=) <$> _eC2InstanceNetworkInterfaceSubnetId+    ]  instance FromJSON EC2InstanceNetworkInterface where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2InstanceNetworkInterface <$>+      obj .:? "AssociatePublicIpAddress" <*>+      obj .:? "DeleteOnTermination" <*>+      obj .:? "Description" <*>+      obj .: "DeviceIndex" <*>+      obj .:? "GroupSet" <*>+      obj .:? "Ipv6AddressCount" <*>+      obj .:? "Ipv6Addresses" <*>+      obj .:? "NetworkInterfaceId" <*>+      obj .:? "PrivateIpAddress" <*>+      obj .:? "PrivateIpAddresses" <*>+      obj .:? "SecondaryPrivateIpAddressCount" <*>+      obj .:? "SubnetId"+  parseJSON _ = mempty  -- | Constructor for 'EC2InstanceNetworkInterface' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/EC2InstanceNoDevice.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-nodevice.html  module Stratosphere.ResourceProperties.EC2InstanceNoDevice where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,14 @@ data EC2InstanceNoDevice =   EC2InstanceNoDevice   { -  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2InstanceNoDevice where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  toJSON _ = toJSON ([] :: [String])  instance FromJSON EC2InstanceNoDevice where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  parseJSON (Array _) = return EC2InstanceNoDevice+  parseJSON _ = mempty  -- | Constructor for 'EC2InstanceNoDevice' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/EC2InstancePrivateIpAddressSpecification.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-interface-privateipspec.html  module Stratosphere.ResourceProperties.EC2InstancePrivateIpAddressSpecification where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,22 @@   EC2InstancePrivateIpAddressSpecification   { _eC2InstancePrivateIpAddressSpecificationPrimary :: Val Bool'   , _eC2InstancePrivateIpAddressSpecificationPrivateIpAddress :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2InstancePrivateIpAddressSpecification where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 41, omitNothingFields = True }+  toJSON EC2InstancePrivateIpAddressSpecification{..} =+    object $+    catMaybes+    [ Just ("Primary" .= _eC2InstancePrivateIpAddressSpecificationPrimary)+    , Just ("PrivateIpAddress" .= _eC2InstancePrivateIpAddressSpecificationPrivateIpAddress)+    ]  instance FromJSON EC2InstancePrivateIpAddressSpecification where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 41, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2InstancePrivateIpAddressSpecification <$>+      obj .: "Primary" <*>+      obj .: "PrivateIpAddress"+  parseJSON _ = mempty  -- | Constructor for 'EC2InstancePrivateIpAddressSpecification' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/EC2InstanceSsmAssociation.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations.html  module Stratosphere.ResourceProperties.EC2InstanceSsmAssociation where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EC2InstanceAssociationParameter@@ -20,13 +20,22 @@   EC2InstanceSsmAssociation   { _eC2InstanceSsmAssociationAssociationParameters :: Maybe [EC2InstanceAssociationParameter]   , _eC2InstanceSsmAssociationDocumentName :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2InstanceSsmAssociation where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }+  toJSON EC2InstanceSsmAssociation{..} =+    object $+    catMaybes+    [ ("AssociationParameters" .=) <$> _eC2InstanceSsmAssociationAssociationParameters+    , Just ("DocumentName" .= _eC2InstanceSsmAssociationDocumentName)+    ]  instance FromJSON EC2InstanceSsmAssociation where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2InstanceSsmAssociation <$>+      obj .:? "AssociationParameters" <*>+      obj .: "DocumentName"+  parseJSON _ = mempty  -- | Constructor for 'EC2InstanceSsmAssociation' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/EC2InstanceVolume.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-mount-point.html  module Stratosphere.ResourceProperties.EC2InstanceVolume where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   EC2InstanceVolume   { _eC2InstanceVolumeDevice :: Val Text   , _eC2InstanceVolumeVolumeId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2InstanceVolume where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 18, omitNothingFields = True }+  toJSON EC2InstanceVolume{..} =+    object $+    catMaybes+    [ Just ("Device" .= _eC2InstanceVolumeDevice)+    , Just ("VolumeId" .= _eC2InstanceVolumeVolumeId)+    ]  instance FromJSON EC2InstanceVolume where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 18, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2InstanceVolume <$>+      obj .: "Device" <*>+      obj .: "VolumeId"+  parseJSON _ = mempty  -- | Constructor for 'EC2InstanceVolume' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/EC2NetworkAclEntryIcmp.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-icmp.html  module Stratosphere.ResourceProperties.EC2NetworkAclEntryIcmp where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   EC2NetworkAclEntryIcmp   { _eC2NetworkAclEntryIcmpCode :: Maybe (Val Integer')   , _eC2NetworkAclEntryIcmpType :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2NetworkAclEntryIcmp where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  toJSON EC2NetworkAclEntryIcmp{..} =+    object $+    catMaybes+    [ ("Code" .=) <$> _eC2NetworkAclEntryIcmpCode+    , ("Type" .=) <$> _eC2NetworkAclEntryIcmpType+    ]  instance FromJSON EC2NetworkAclEntryIcmp where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2NetworkAclEntryIcmp <$>+      obj .:? "Code" <*>+      obj .:? "Type"+  parseJSON _ = mempty  -- | Constructor for 'EC2NetworkAclEntryIcmp' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/EC2NetworkAclEntryPortRange.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-portrange.html  module Stratosphere.ResourceProperties.EC2NetworkAclEntryPortRange where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   EC2NetworkAclEntryPortRange   { _eC2NetworkAclEntryPortRangeFrom :: Maybe (Val Integer')   , _eC2NetworkAclEntryPortRangeTo :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2NetworkAclEntryPortRange where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON EC2NetworkAclEntryPortRange{..} =+    object $+    catMaybes+    [ ("From" .=) <$> _eC2NetworkAclEntryPortRangeFrom+    , ("To" .=) <$> _eC2NetworkAclEntryPortRangeTo+    ]  instance FromJSON EC2NetworkAclEntryPortRange where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2NetworkAclEntryPortRange <$>+      obj .:? "From" <*>+      obj .:? "To"+  parseJSON _ = mempty  -- | Constructor for 'EC2NetworkAclEntryPortRange' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/EC2NetworkInterfaceInstanceIpv6Address.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinterface-instanceipv6address.html  module Stratosphere.ResourceProperties.EC2NetworkInterfaceInstanceIpv6Address where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,20 @@ data EC2NetworkInterfaceInstanceIpv6Address =   EC2NetworkInterfaceInstanceIpv6Address   { _eC2NetworkInterfaceInstanceIpv6AddressIpv6Address :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2NetworkInterfaceInstanceIpv6Address where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 39, omitNothingFields = True }+  toJSON EC2NetworkInterfaceInstanceIpv6Address{..} =+    object $+    catMaybes+    [ Just ("Ipv6Address" .= _eC2NetworkInterfaceInstanceIpv6AddressIpv6Address)+    ]  instance FromJSON EC2NetworkInterfaceInstanceIpv6Address where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 39, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2NetworkInterfaceInstanceIpv6Address <$>+      obj .: "Ipv6Address"+  parseJSON _ = mempty  -- | Constructor for 'EC2NetworkInterfaceInstanceIpv6Address' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/EC2NetworkInterfacePrivateIpAddressSpecification.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-interface-privateipspec.html  module Stratosphere.ResourceProperties.EC2NetworkInterfacePrivateIpAddressSpecification where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,22 @@   EC2NetworkInterfacePrivateIpAddressSpecification   { _eC2NetworkInterfacePrivateIpAddressSpecificationPrimary :: Val Bool'   , _eC2NetworkInterfacePrivateIpAddressSpecificationPrivateIpAddress :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2NetworkInterfacePrivateIpAddressSpecification where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 49, omitNothingFields = True }+  toJSON EC2NetworkInterfacePrivateIpAddressSpecification{..} =+    object $+    catMaybes+    [ Just ("Primary" .= _eC2NetworkInterfacePrivateIpAddressSpecificationPrimary)+    , Just ("PrivateIpAddress" .= _eC2NetworkInterfacePrivateIpAddressSpecificationPrivateIpAddress)+    ]  instance FromJSON EC2NetworkInterfacePrivateIpAddressSpecification where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 49, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2NetworkInterfacePrivateIpAddressSpecification <$>+      obj .: "Primary" <*>+      obj .: "PrivateIpAddress"+  parseJSON _ = mempty  -- | Constructor for 'EC2NetworkInterfacePrivateIpAddressSpecification' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/EC2SecurityGroupRule.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html  module Stratosphere.ResourceProperties.EC2SecurityGroupRule where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -25,13 +25,32 @@   , _eC2SecurityGroupRuleSourceSecurityGroupName :: Maybe (Val Text)   , _eC2SecurityGroupRuleSourceSecurityGroupOwnerId :: Maybe (Val Text)   , _eC2SecurityGroupRuleToPort :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2SecurityGroupRule where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  toJSON EC2SecurityGroupRule{..} =+    object $+    catMaybes+    [ ("CidrIp" .=) <$> _eC2SecurityGroupRuleCidrIp+    , ("FromPort" .=) <$> _eC2SecurityGroupRuleFromPort+    , Just ("IpProtocol" .= _eC2SecurityGroupRuleIpProtocol)+    , ("SourceSecurityGroupId" .=) <$> _eC2SecurityGroupRuleSourceSecurityGroupId+    , ("SourceSecurityGroupName" .=) <$> _eC2SecurityGroupRuleSourceSecurityGroupName+    , ("SourceSecurityGroupOwnerId" .=) <$> _eC2SecurityGroupRuleSourceSecurityGroupOwnerId+    , ("ToPort" .=) <$> _eC2SecurityGroupRuleToPort+    ]  instance FromJSON EC2SecurityGroupRule where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2SecurityGroupRule <$>+      obj .:? "CidrIp" <*>+      obj .:? "FromPort" <*>+      obj .: "IpProtocol" <*>+      obj .:? "SourceSecurityGroupId" <*>+      obj .:? "SourceSecurityGroupName" <*>+      obj .:? "SourceSecurityGroupOwnerId" <*>+      obj .:? "ToPort"+  parseJSON _ = mempty  -- | Constructor for 'EC2SecurityGroupRule' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/EC2SpotFleetBlockDeviceMappings.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-blockdevicemappings.html  module Stratosphere.ResourceProperties.EC2SpotFleetBlockDeviceMappings where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EC2SpotFleetEbs@@ -22,13 +22,26 @@   , _eC2SpotFleetBlockDeviceMappingsEbs :: Maybe EC2SpotFleetEbs   , _eC2SpotFleetBlockDeviceMappingsNoDevice :: Maybe (Val Bool')   , _eC2SpotFleetBlockDeviceMappingsVirtualName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2SpotFleetBlockDeviceMappings where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 32, omitNothingFields = True }+  toJSON EC2SpotFleetBlockDeviceMappings{..} =+    object $+    catMaybes+    [ Just ("DeviceName" .= _eC2SpotFleetBlockDeviceMappingsDeviceName)+    , ("Ebs" .=) <$> _eC2SpotFleetBlockDeviceMappingsEbs+    , ("NoDevice" .=) <$> _eC2SpotFleetBlockDeviceMappingsNoDevice+    , ("VirtualName" .=) <$> _eC2SpotFleetBlockDeviceMappingsVirtualName+    ]  instance FromJSON EC2SpotFleetBlockDeviceMappings where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 32, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2SpotFleetBlockDeviceMappings <$>+      obj .: "DeviceName" <*>+      obj .:? "Ebs" <*>+      obj .:? "NoDevice" <*>+      obj .:? "VirtualName"+  parseJSON _ = mempty  -- | Constructor for 'EC2SpotFleetBlockDeviceMappings' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/EC2SpotFleetEbs.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-blockdevicemappings-ebs.html  module Stratosphere.ResourceProperties.EC2SpotFleetEbs where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -24,13 +24,30 @@   , _eC2SpotFleetEbsSnapshotId :: Maybe (Val Text)   , _eC2SpotFleetEbsVolumeSize :: Maybe (Val Integer')   , _eC2SpotFleetEbsVolumeType :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2SpotFleetEbs where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }+  toJSON EC2SpotFleetEbs{..} =+    object $+    catMaybes+    [ ("DeleteOnTermination" .=) <$> _eC2SpotFleetEbsDeleteOnTermination+    , ("Encrypted" .=) <$> _eC2SpotFleetEbsEncrypted+    , ("Iops" .=) <$> _eC2SpotFleetEbsIops+    , ("SnapshotId" .=) <$> _eC2SpotFleetEbsSnapshotId+    , ("VolumeSize" .=) <$> _eC2SpotFleetEbsVolumeSize+    , ("VolumeType" .=) <$> _eC2SpotFleetEbsVolumeType+    ]  instance FromJSON EC2SpotFleetEbs where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2SpotFleetEbs <$>+      obj .:? "DeleteOnTermination" <*>+      obj .:? "Encrypted" <*>+      obj .:? "Iops" <*>+      obj .:? "SnapshotId" <*>+      obj .:? "VolumeSize" <*>+      obj .:? "VolumeType"+  parseJSON _ = mempty  -- | Constructor for 'EC2SpotFleetEbs' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/EC2SpotFleetIamInstanceProfile.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-iaminstanceprofile.html  module Stratosphere.ResourceProperties.EC2SpotFleetIamInstanceProfile where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data EC2SpotFleetIamInstanceProfile =   EC2SpotFleetIamInstanceProfile   { _eC2SpotFleetIamInstanceProfileArn :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2SpotFleetIamInstanceProfile where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  toJSON EC2SpotFleetIamInstanceProfile{..} =+    object $+    catMaybes+    [ ("Arn" .=) <$> _eC2SpotFleetIamInstanceProfileArn+    ]  instance FromJSON EC2SpotFleetIamInstanceProfile where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2SpotFleetIamInstanceProfile <$>+      obj .:? "Arn"+  parseJSON _ = mempty  -- | Constructor for 'EC2SpotFleetIamInstanceProfile' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/EC2SpotFleetInstanceIpv6Address.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instanceipv6address.html  module Stratosphere.ResourceProperties.EC2SpotFleetInstanceIpv6Address where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data EC2SpotFleetInstanceIpv6Address =   EC2SpotFleetInstanceIpv6Address   { _eC2SpotFleetInstanceIpv6AddressIpv6Address :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2SpotFleetInstanceIpv6Address where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 32, omitNothingFields = True }+  toJSON EC2SpotFleetInstanceIpv6Address{..} =+    object $+    catMaybes+    [ Just ("Ipv6Address" .= _eC2SpotFleetInstanceIpv6AddressIpv6Address)+    ]  instance FromJSON EC2SpotFleetInstanceIpv6Address where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 32, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2SpotFleetInstanceIpv6Address <$>+      obj .: "Ipv6Address"+  parseJSON _ = mempty  -- | Constructor for 'EC2SpotFleetInstanceIpv6Address' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/EC2SpotFleetLaunchSpecifications.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html  module Stratosphere.ResourceProperties.EC2SpotFleetLaunchSpecifications where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EC2SpotFleetBlockDeviceMappings@@ -39,13 +39,50 @@   , _eC2SpotFleetLaunchSpecificationsSubnetId :: Maybe (Val Text)   , _eC2SpotFleetLaunchSpecificationsUserData :: Maybe (Val Text)   , _eC2SpotFleetLaunchSpecificationsWeightedCapacity :: Maybe (Val Double')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2SpotFleetLaunchSpecifications where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  toJSON EC2SpotFleetLaunchSpecifications{..} =+    object $+    catMaybes+    [ ("BlockDeviceMappings" .=) <$> _eC2SpotFleetLaunchSpecificationsBlockDeviceMappings+    , ("EbsOptimized" .=) <$> _eC2SpotFleetLaunchSpecificationsEbsOptimized+    , ("IamInstanceProfile" .=) <$> _eC2SpotFleetLaunchSpecificationsIamInstanceProfile+    , Just ("ImageId" .= _eC2SpotFleetLaunchSpecificationsImageId)+    , Just ("InstanceType" .= _eC2SpotFleetLaunchSpecificationsInstanceType)+    , ("KernelId" .=) <$> _eC2SpotFleetLaunchSpecificationsKernelId+    , ("KeyName" .=) <$> _eC2SpotFleetLaunchSpecificationsKeyName+    , ("Monitoring" .=) <$> _eC2SpotFleetLaunchSpecificationsMonitoring+    , ("NetworkInterfaces" .=) <$> _eC2SpotFleetLaunchSpecificationsNetworkInterfaces+    , ("Placement" .=) <$> _eC2SpotFleetLaunchSpecificationsPlacement+    , ("RamdiskId" .=) <$> _eC2SpotFleetLaunchSpecificationsRamdiskId+    , ("SecurityGroups" .=) <$> _eC2SpotFleetLaunchSpecificationsSecurityGroups+    , ("SpotPrice" .=) <$> _eC2SpotFleetLaunchSpecificationsSpotPrice+    , ("SubnetId" .=) <$> _eC2SpotFleetLaunchSpecificationsSubnetId+    , ("UserData" .=) <$> _eC2SpotFleetLaunchSpecificationsUserData+    , ("WeightedCapacity" .=) <$> _eC2SpotFleetLaunchSpecificationsWeightedCapacity+    ]  instance FromJSON EC2SpotFleetLaunchSpecifications where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2SpotFleetLaunchSpecifications <$>+      obj .:? "BlockDeviceMappings" <*>+      obj .:? "EbsOptimized" <*>+      obj .:? "IamInstanceProfile" <*>+      obj .: "ImageId" <*>+      obj .: "InstanceType" <*>+      obj .:? "KernelId" <*>+      obj .:? "KeyName" <*>+      obj .:? "Monitoring" <*>+      obj .:? "NetworkInterfaces" <*>+      obj .:? "Placement" <*>+      obj .:? "RamdiskId" <*>+      obj .:? "SecurityGroups" <*>+      obj .:? "SpotPrice" <*>+      obj .:? "SubnetId" <*>+      obj .:? "UserData" <*>+      obj .:? "WeightedCapacity"+  parseJSON _ = mempty  -- | Constructor for 'EC2SpotFleetLaunchSpecifications' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/EC2SpotFleetMonitoring.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-monitoring.html  module Stratosphere.ResourceProperties.EC2SpotFleetMonitoring where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data EC2SpotFleetMonitoring =   EC2SpotFleetMonitoring   { _eC2SpotFleetMonitoringEnabled :: Maybe (Val Bool')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2SpotFleetMonitoring where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  toJSON EC2SpotFleetMonitoring{..} =+    object $+    catMaybes+    [ ("Enabled" .=) <$> _eC2SpotFleetMonitoringEnabled+    ]  instance FromJSON EC2SpotFleetMonitoring where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2SpotFleetMonitoring <$>+      obj .:? "Enabled"+  parseJSON _ = mempty  -- | Constructor for 'EC2SpotFleetMonitoring' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/EC2SpotFleetNetworkInterfaces.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-networkinterfaces.html  module Stratosphere.ResourceProperties.EC2SpotFleetNetworkInterfaces where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EC2SpotFleetInstanceIpv6Address@@ -30,13 +30,40 @@   , _eC2SpotFleetNetworkInterfacesPrivateIpAddresses :: Maybe [EC2SpotFleetPrivateIpAddresses]   , _eC2SpotFleetNetworkInterfacesSecondaryPrivateIpAddressCount :: Maybe (Val Integer')   , _eC2SpotFleetNetworkInterfacesSubnetId :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2SpotFleetNetworkInterfaces where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  toJSON EC2SpotFleetNetworkInterfaces{..} =+    object $+    catMaybes+    [ ("AssociatePublicIpAddress" .=) <$> _eC2SpotFleetNetworkInterfacesAssociatePublicIpAddress+    , ("DeleteOnTermination" .=) <$> _eC2SpotFleetNetworkInterfacesDeleteOnTermination+    , ("Description" .=) <$> _eC2SpotFleetNetworkInterfacesDescription+    , Just ("DeviceIndex" .= _eC2SpotFleetNetworkInterfacesDeviceIndex)+    , ("Groups" .=) <$> _eC2SpotFleetNetworkInterfacesGroups+    , ("Ipv6AddressCount" .=) <$> _eC2SpotFleetNetworkInterfacesIpv6AddressCount+    , ("Ipv6Addresses" .=) <$> _eC2SpotFleetNetworkInterfacesIpv6Addresses+    , ("NetworkInterfaceId" .=) <$> _eC2SpotFleetNetworkInterfacesNetworkInterfaceId+    , ("PrivateIpAddresses" .=) <$> _eC2SpotFleetNetworkInterfacesPrivateIpAddresses+    , ("SecondaryPrivateIpAddressCount" .=) <$> _eC2SpotFleetNetworkInterfacesSecondaryPrivateIpAddressCount+    , ("SubnetId" .=) <$> _eC2SpotFleetNetworkInterfacesSubnetId+    ]  instance FromJSON EC2SpotFleetNetworkInterfaces where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2SpotFleetNetworkInterfaces <$>+      obj .:? "AssociatePublicIpAddress" <*>+      obj .:? "DeleteOnTermination" <*>+      obj .:? "Description" <*>+      obj .: "DeviceIndex" <*>+      obj .:? "Groups" <*>+      obj .:? "Ipv6AddressCount" <*>+      obj .:? "Ipv6Addresses" <*>+      obj .:? "NetworkInterfaceId" <*>+      obj .:? "PrivateIpAddresses" <*>+      obj .:? "SecondaryPrivateIpAddressCount" <*>+      obj .:? "SubnetId"+  parseJSON _ = mempty  -- | Constructor for 'EC2SpotFleetNetworkInterfaces' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/EC2SpotFleetPlacement.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-placement.html  module Stratosphere.ResourceProperties.EC2SpotFleetPlacement where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   EC2SpotFleetPlacement   { _eC2SpotFleetPlacementAvailabilityZone :: Maybe (Val Text)   , _eC2SpotFleetPlacementGroupName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2SpotFleetPlacement where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 22, omitNothingFields = True }+  toJSON EC2SpotFleetPlacement{..} =+    object $+    catMaybes+    [ ("AvailabilityZone" .=) <$> _eC2SpotFleetPlacementAvailabilityZone+    , ("GroupName" .=) <$> _eC2SpotFleetPlacementGroupName+    ]  instance FromJSON EC2SpotFleetPlacement where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 22, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2SpotFleetPlacement <$>+      obj .:? "AvailabilityZone" <*>+      obj .:? "GroupName"+  parseJSON _ = mempty  -- | Constructor for 'EC2SpotFleetPlacement' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/EC2SpotFleetPrivateIpAddresses.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-networkinterfaces-privateipaddresses.html  module Stratosphere.ResourceProperties.EC2SpotFleetPrivateIpAddresses where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   EC2SpotFleetPrivateIpAddresses   { _eC2SpotFleetPrivateIpAddressesPrimary :: Maybe (Val Bool')   , _eC2SpotFleetPrivateIpAddressesPrivateIpAddress :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2SpotFleetPrivateIpAddresses where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  toJSON EC2SpotFleetPrivateIpAddresses{..} =+    object $+    catMaybes+    [ ("Primary" .=) <$> _eC2SpotFleetPrivateIpAddressesPrimary+    , Just ("PrivateIpAddress" .= _eC2SpotFleetPrivateIpAddressesPrivateIpAddress)+    ]  instance FromJSON EC2SpotFleetPrivateIpAddresses where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2SpotFleetPrivateIpAddresses <$>+      obj .:? "Primary" <*>+      obj .: "PrivateIpAddress"+  parseJSON _ = mempty  -- | Constructor for 'EC2SpotFleetPrivateIpAddresses' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/EC2SpotFleetSecurityGroups.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-securitygroups.html  module Stratosphere.ResourceProperties.EC2SpotFleetSecurityGroups where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data EC2SpotFleetSecurityGroups =   EC2SpotFleetSecurityGroups   { _eC2SpotFleetSecurityGroupsGroupId :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2SpotFleetSecurityGroups where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  toJSON EC2SpotFleetSecurityGroups{..} =+    object $+    catMaybes+    [ ("GroupId" .=) <$> _eC2SpotFleetSecurityGroupsGroupId+    ]  instance FromJSON EC2SpotFleetSecurityGroups where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2SpotFleetSecurityGroups <$>+      obj .:? "GroupId"+  parseJSON _ = mempty  -- | Constructor for 'EC2SpotFleetSecurityGroups' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/EC2SpotFleetSpotFleetRequestConfigData.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html  module Stratosphere.ResourceProperties.EC2SpotFleetSpotFleetRequestConfigData where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EC2SpotFleetLaunchSpecifications@@ -28,13 +28,36 @@   , _eC2SpotFleetSpotFleetRequestConfigDataTerminateInstancesWithExpiration :: Maybe (Val Bool')   , _eC2SpotFleetSpotFleetRequestConfigDataValidFrom :: Maybe (Val Text)   , _eC2SpotFleetSpotFleetRequestConfigDataValidUntil :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2SpotFleetSpotFleetRequestConfigData where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 39, omitNothingFields = True }+  toJSON EC2SpotFleetSpotFleetRequestConfigData{..} =+    object $+    catMaybes+    [ ("AllocationStrategy" .=) <$> _eC2SpotFleetSpotFleetRequestConfigDataAllocationStrategy+    , ("ExcessCapacityTerminationPolicy" .=) <$> _eC2SpotFleetSpotFleetRequestConfigDataExcessCapacityTerminationPolicy+    , Just ("IamFleetRole" .= _eC2SpotFleetSpotFleetRequestConfigDataIamFleetRole)+    , Just ("LaunchSpecifications" .= _eC2SpotFleetSpotFleetRequestConfigDataLaunchSpecifications)+    , Just ("SpotPrice" .= _eC2SpotFleetSpotFleetRequestConfigDataSpotPrice)+    , Just ("TargetCapacity" .= _eC2SpotFleetSpotFleetRequestConfigDataTargetCapacity)+    , ("TerminateInstancesWithExpiration" .=) <$> _eC2SpotFleetSpotFleetRequestConfigDataTerminateInstancesWithExpiration+    , ("ValidFrom" .=) <$> _eC2SpotFleetSpotFleetRequestConfigDataValidFrom+    , ("ValidUntil" .=) <$> _eC2SpotFleetSpotFleetRequestConfigDataValidUntil+    ]  instance FromJSON EC2SpotFleetSpotFleetRequestConfigData where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 39, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2SpotFleetSpotFleetRequestConfigData <$>+      obj .:? "AllocationStrategy" <*>+      obj .:? "ExcessCapacityTerminationPolicy" <*>+      obj .: "IamFleetRole" <*>+      obj .: "LaunchSpecifications" <*>+      obj .: "SpotPrice" <*>+      obj .: "TargetCapacity" <*>+      obj .:? "TerminateInstancesWithExpiration" <*>+      obj .:? "ValidFrom" <*>+      obj .:? "ValidUntil"+  parseJSON _ = mempty  -- | Constructor for 'EC2SpotFleetSpotFleetRequestConfigData' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ECSServiceDeploymentConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentconfiguration.html  module Stratosphere.ResourceProperties.ECSServiceDeploymentConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   ECSServiceDeploymentConfiguration   { _eCSServiceDeploymentConfigurationMaximumPercent :: Maybe (Val Integer')   , _eCSServiceDeploymentConfigurationMinimumHealthyPercent :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ECSServiceDeploymentConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  toJSON ECSServiceDeploymentConfiguration{..} =+    object $+    catMaybes+    [ ("MaximumPercent" .=) <$> _eCSServiceDeploymentConfigurationMaximumPercent+    , ("MinimumHealthyPercent" .=) <$> _eCSServiceDeploymentConfigurationMinimumHealthyPercent+    ]  instance FromJSON ECSServiceDeploymentConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  parseJSON (Object obj) =+    ECSServiceDeploymentConfiguration <$>+      obj .:? "MaximumPercent" <*>+      obj .:? "MinimumHealthyPercent"+  parseJSON _ = mempty  -- | Constructor for 'ECSServiceDeploymentConfiguration' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/ECSServiceLoadBalancer.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-loadbalancers.html  module Stratosphere.ResourceProperties.ECSServiceLoadBalancer where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,26 @@   , _eCSServiceLoadBalancerContainerPort :: Val Integer'   , _eCSServiceLoadBalancerLoadBalancerName :: Maybe (Val Text)   , _eCSServiceLoadBalancerTargetGroupArn :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ECSServiceLoadBalancer where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  toJSON ECSServiceLoadBalancer{..} =+    object $+    catMaybes+    [ ("ContainerName" .=) <$> _eCSServiceLoadBalancerContainerName+    , Just ("ContainerPort" .= _eCSServiceLoadBalancerContainerPort)+    , ("LoadBalancerName" .=) <$> _eCSServiceLoadBalancerLoadBalancerName+    , ("TargetGroupArn" .=) <$> _eCSServiceLoadBalancerTargetGroupArn+    ]  instance FromJSON ECSServiceLoadBalancer where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  parseJSON (Object obj) =+    ECSServiceLoadBalancer <$>+      obj .:? "ContainerName" <*>+      obj .: "ContainerPort" <*>+      obj .:? "LoadBalancerName" <*>+      obj .:? "TargetGroupArn"+  parseJSON _ = mempty  -- | Constructor for 'ECSServiceLoadBalancer' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionContainerDefinition.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html  module Stratosphere.ResourceProperties.ECSTaskDefinitionContainerDefinition where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ECSTaskDefinitionKeyValuePair@@ -50,13 +50,70 @@   , _eCSTaskDefinitionContainerDefinitionUser :: Maybe (Val Text)   , _eCSTaskDefinitionContainerDefinitionVolumesFrom :: Maybe [ECSTaskDefinitionVolumeFrom]   , _eCSTaskDefinitionContainerDefinitionWorkingDirectory :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ECSTaskDefinitionContainerDefinition where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 37, omitNothingFields = True }+  toJSON ECSTaskDefinitionContainerDefinition{..} =+    object $+    catMaybes+    [ ("Command" .=) <$> _eCSTaskDefinitionContainerDefinitionCommand+    , ("Cpu" .=) <$> _eCSTaskDefinitionContainerDefinitionCpu+    , ("DisableNetworking" .=) <$> _eCSTaskDefinitionContainerDefinitionDisableNetworking+    , ("DnsSearchDomains" .=) <$> _eCSTaskDefinitionContainerDefinitionDnsSearchDomains+    , ("DnsServers" .=) <$> _eCSTaskDefinitionContainerDefinitionDnsServers+    , ("DockerLabels" .=) <$> _eCSTaskDefinitionContainerDefinitionDockerLabels+    , ("DockerSecurityOptions" .=) <$> _eCSTaskDefinitionContainerDefinitionDockerSecurityOptions+    , ("EntryPoint" .=) <$> _eCSTaskDefinitionContainerDefinitionEntryPoint+    , ("Environment" .=) <$> _eCSTaskDefinitionContainerDefinitionEnvironment+    , ("Essential" .=) <$> _eCSTaskDefinitionContainerDefinitionEssential+    , ("ExtraHosts" .=) <$> _eCSTaskDefinitionContainerDefinitionExtraHosts+    , ("Hostname" .=) <$> _eCSTaskDefinitionContainerDefinitionHostname+    , Just ("Image" .= _eCSTaskDefinitionContainerDefinitionImage)+    , ("Links" .=) <$> _eCSTaskDefinitionContainerDefinitionLinks+    , ("LogConfiguration" .=) <$> _eCSTaskDefinitionContainerDefinitionLogConfiguration+    , ("Memory" .=) <$> _eCSTaskDefinitionContainerDefinitionMemory+    , ("MemoryReservation" .=) <$> _eCSTaskDefinitionContainerDefinitionMemoryReservation+    , ("MountPoints" .=) <$> _eCSTaskDefinitionContainerDefinitionMountPoints+    , Just ("Name" .= _eCSTaskDefinitionContainerDefinitionName)+    , ("PortMappings" .=) <$> _eCSTaskDefinitionContainerDefinitionPortMappings+    , ("Privileged" .=) <$> _eCSTaskDefinitionContainerDefinitionPrivileged+    , ("ReadonlyRootFilesystem" .=) <$> _eCSTaskDefinitionContainerDefinitionReadonlyRootFilesystem+    , ("Ulimits" .=) <$> _eCSTaskDefinitionContainerDefinitionUlimits+    , ("User" .=) <$> _eCSTaskDefinitionContainerDefinitionUser+    , ("VolumesFrom" .=) <$> _eCSTaskDefinitionContainerDefinitionVolumesFrom+    , ("WorkingDirectory" .=) <$> _eCSTaskDefinitionContainerDefinitionWorkingDirectory+    ]  instance FromJSON ECSTaskDefinitionContainerDefinition where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 37, omitNothingFields = True }+  parseJSON (Object obj) =+    ECSTaskDefinitionContainerDefinition <$>+      obj .:? "Command" <*>+      obj .:? "Cpu" <*>+      obj .:? "DisableNetworking" <*>+      obj .:? "DnsSearchDomains" <*>+      obj .:? "DnsServers" <*>+      obj .:? "DockerLabels" <*>+      obj .:? "DockerSecurityOptions" <*>+      obj .:? "EntryPoint" <*>+      obj .:? "Environment" <*>+      obj .:? "Essential" <*>+      obj .:? "ExtraHosts" <*>+      obj .:? "Hostname" <*>+      obj .: "Image" <*>+      obj .:? "Links" <*>+      obj .:? "LogConfiguration" <*>+      obj .:? "Memory" <*>+      obj .:? "MemoryReservation" <*>+      obj .:? "MountPoints" <*>+      obj .: "Name" <*>+      obj .:? "PortMappings" <*>+      obj .:? "Privileged" <*>+      obj .:? "ReadonlyRootFilesystem" <*>+      obj .:? "Ulimits" <*>+      obj .:? "User" <*>+      obj .:? "VolumesFrom" <*>+      obj .:? "WorkingDirectory"+  parseJSON _ = mempty  -- | Constructor for 'ECSTaskDefinitionContainerDefinition' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionHostEntry.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-hostentry.html  module Stratosphere.ResourceProperties.ECSTaskDefinitionHostEntry where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   ECSTaskDefinitionHostEntry   { _eCSTaskDefinitionHostEntryHostname :: Val Text   , _eCSTaskDefinitionHostEntryIpAddress :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ECSTaskDefinitionHostEntry where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  toJSON ECSTaskDefinitionHostEntry{..} =+    object $+    catMaybes+    [ Just ("Hostname" .= _eCSTaskDefinitionHostEntryHostname)+    , Just ("IpAddress" .= _eCSTaskDefinitionHostEntryIpAddress)+    ]  instance FromJSON ECSTaskDefinitionHostEntry where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  parseJSON (Object obj) =+    ECSTaskDefinitionHostEntry <$>+      obj .: "Hostname" <*>+      obj .: "IpAddress"+  parseJSON _ = mempty  -- | Constructor for 'ECSTaskDefinitionHostEntry' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionHostVolumeProperties.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes-host.html  module Stratosphere.ResourceProperties.ECSTaskDefinitionHostVolumeProperties where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,20 @@ data ECSTaskDefinitionHostVolumeProperties =   ECSTaskDefinitionHostVolumeProperties   { _eCSTaskDefinitionHostVolumePropertiesSourcePath :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ECSTaskDefinitionHostVolumeProperties where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 38, omitNothingFields = True }+  toJSON ECSTaskDefinitionHostVolumeProperties{..} =+    object $+    catMaybes+    [ ("SourcePath" .=) <$> _eCSTaskDefinitionHostVolumePropertiesSourcePath+    ]  instance FromJSON ECSTaskDefinitionHostVolumeProperties where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 38, omitNothingFields = True }+  parseJSON (Object obj) =+    ECSTaskDefinitionHostVolumeProperties <$>+      obj .:? "SourcePath"+  parseJSON _ = mempty  -- | Constructor for 'ECSTaskDefinitionHostVolumeProperties' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionKeyValuePair.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-environment.html  module Stratosphere.ResourceProperties.ECSTaskDefinitionKeyValuePair where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   ECSTaskDefinitionKeyValuePair   { _eCSTaskDefinitionKeyValuePairName :: Maybe (Val Text)   , _eCSTaskDefinitionKeyValuePairValue :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ECSTaskDefinitionKeyValuePair where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  toJSON ECSTaskDefinitionKeyValuePair{..} =+    object $+    catMaybes+    [ ("Name" .=) <$> _eCSTaskDefinitionKeyValuePairName+    , ("Value" .=) <$> _eCSTaskDefinitionKeyValuePairValue+    ]  instance FromJSON ECSTaskDefinitionKeyValuePair where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  parseJSON (Object obj) =+    ECSTaskDefinitionKeyValuePair <$>+      obj .:? "Name" <*>+      obj .:? "Value"+  parseJSON _ = mempty  -- | Constructor for 'ECSTaskDefinitionKeyValuePair' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionLogConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-logconfiguration.html  module Stratosphere.ResourceProperties.ECSTaskDefinitionLogConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   ECSTaskDefinitionLogConfiguration   { _eCSTaskDefinitionLogConfigurationLogDriver :: Val Text   , _eCSTaskDefinitionLogConfigurationOptions :: Maybe Object-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ECSTaskDefinitionLogConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  toJSON ECSTaskDefinitionLogConfiguration{..} =+    object $+    catMaybes+    [ Just ("LogDriver" .= _eCSTaskDefinitionLogConfigurationLogDriver)+    , ("Options" .=) <$> _eCSTaskDefinitionLogConfigurationOptions+    ]  instance FromJSON ECSTaskDefinitionLogConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  parseJSON (Object obj) =+    ECSTaskDefinitionLogConfiguration <$>+      obj .: "LogDriver" <*>+      obj .:? "Options"+  parseJSON _ = mempty  -- | Constructor for 'ECSTaskDefinitionLogConfiguration' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionMountPoint.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-mountpoints.html  module Stratosphere.ResourceProperties.ECSTaskDefinitionMountPoint where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _eCSTaskDefinitionMountPointContainerPath :: Maybe (Val Text)   , _eCSTaskDefinitionMountPointReadOnly :: Maybe (Val Bool')   , _eCSTaskDefinitionMountPointSourceVolume :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ECSTaskDefinitionMountPoint where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON ECSTaskDefinitionMountPoint{..} =+    object $+    catMaybes+    [ ("ContainerPath" .=) <$> _eCSTaskDefinitionMountPointContainerPath+    , ("ReadOnly" .=) <$> _eCSTaskDefinitionMountPointReadOnly+    , ("SourceVolume" .=) <$> _eCSTaskDefinitionMountPointSourceVolume+    ]  instance FromJSON ECSTaskDefinitionMountPoint where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    ECSTaskDefinitionMountPoint <$>+      obj .:? "ContainerPath" <*>+      obj .:? "ReadOnly" <*>+      obj .:? "SourceVolume"+  parseJSON _ = mempty  -- | Constructor for 'ECSTaskDefinitionMountPoint' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionPortMapping.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-portmappings.html  module Stratosphere.ResourceProperties.ECSTaskDefinitionPortMapping where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _eCSTaskDefinitionPortMappingContainerPort :: Maybe (Val Integer')   , _eCSTaskDefinitionPortMappingHostPort :: Maybe (Val Integer')   , _eCSTaskDefinitionPortMappingProtocol :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ECSTaskDefinitionPortMapping where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  toJSON ECSTaskDefinitionPortMapping{..} =+    object $+    catMaybes+    [ ("ContainerPort" .=) <$> _eCSTaskDefinitionPortMappingContainerPort+    , ("HostPort" .=) <$> _eCSTaskDefinitionPortMappingHostPort+    , ("Protocol" .=) <$> _eCSTaskDefinitionPortMappingProtocol+    ]  instance FromJSON ECSTaskDefinitionPortMapping where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  parseJSON (Object obj) =+    ECSTaskDefinitionPortMapping <$>+      obj .:? "ContainerPort" <*>+      obj .:? "HostPort" <*>+      obj .:? "Protocol"+  parseJSON _ = mempty  -- | Constructor for 'ECSTaskDefinitionPortMapping' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionUlimit.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-ulimit.html  module Stratosphere.ResourceProperties.ECSTaskDefinitionUlimit where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _eCSTaskDefinitionUlimitHardLimit :: Val Integer'   , _eCSTaskDefinitionUlimitName :: Val Text   , _eCSTaskDefinitionUlimitSoftLimit :: Val Integer'-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ECSTaskDefinitionUlimit where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  toJSON ECSTaskDefinitionUlimit{..} =+    object $+    catMaybes+    [ Just ("HardLimit" .= _eCSTaskDefinitionUlimitHardLimit)+    , Just ("Name" .= _eCSTaskDefinitionUlimitName)+    , Just ("SoftLimit" .= _eCSTaskDefinitionUlimitSoftLimit)+    ]  instance FromJSON ECSTaskDefinitionUlimit where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  parseJSON (Object obj) =+    ECSTaskDefinitionUlimit <$>+      obj .: "HardLimit" <*>+      obj .: "Name" <*>+      obj .: "SoftLimit"+  parseJSON _ = mempty  -- | Constructor for 'ECSTaskDefinitionUlimit' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionVolume.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes.html  module Stratosphere.ResourceProperties.ECSTaskDefinitionVolume where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ECSTaskDefinitionHostVolumeProperties@@ -20,13 +20,22 @@   ECSTaskDefinitionVolume   { _eCSTaskDefinitionVolumeHost :: Maybe ECSTaskDefinitionHostVolumeProperties   , _eCSTaskDefinitionVolumeName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ECSTaskDefinitionVolume where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  toJSON ECSTaskDefinitionVolume{..} =+    object $+    catMaybes+    [ ("Host" .=) <$> _eCSTaskDefinitionVolumeHost+    , ("Name" .=) <$> _eCSTaskDefinitionVolumeName+    ]  instance FromJSON ECSTaskDefinitionVolume where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  parseJSON (Object obj) =+    ECSTaskDefinitionVolume <$>+      obj .:? "Host" <*>+      obj .:? "Name"+  parseJSON _ = mempty  -- | Constructor for 'ECSTaskDefinitionVolume' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionVolumeFrom.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-volumesfrom.html  module Stratosphere.ResourceProperties.ECSTaskDefinitionVolumeFrom where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   ECSTaskDefinitionVolumeFrom   { _eCSTaskDefinitionVolumeFromReadOnly :: Maybe (Val Bool')   , _eCSTaskDefinitionVolumeFromSourceContainer :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ECSTaskDefinitionVolumeFrom where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON ECSTaskDefinitionVolumeFrom{..} =+    object $+    catMaybes+    [ ("ReadOnly" .=) <$> _eCSTaskDefinitionVolumeFromReadOnly+    , ("SourceContainer" .=) <$> _eCSTaskDefinitionVolumeFromSourceContainer+    ]  instance FromJSON ECSTaskDefinitionVolumeFrom where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    ECSTaskDefinitionVolumeFrom <$>+      obj .:? "ReadOnly" <*>+      obj .:? "SourceContainer"+  parseJSON _ = mempty  -- | Constructor for 'ECSTaskDefinitionVolumeFrom' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/EFSFileSystemElasticFileSystemTag.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-filesystemtags.html  module Stratosphere.ResourceProperties.EFSFileSystemElasticFileSystemTag where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   EFSFileSystemElasticFileSystemTag   { _eFSFileSystemElasticFileSystemTagKey :: Val Text   , _eFSFileSystemElasticFileSystemTagValue :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EFSFileSystemElasticFileSystemTag where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  toJSON EFSFileSystemElasticFileSystemTag{..} =+    object $+    catMaybes+    [ Just ("Key" .= _eFSFileSystemElasticFileSystemTagKey)+    , Just ("Value" .= _eFSFileSystemElasticFileSystemTagValue)+    ]  instance FromJSON EFSFileSystemElasticFileSystemTag where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  parseJSON (Object obj) =+    EFSFileSystemElasticFileSystemTag <$>+      obj .: "Key" <*>+      obj .: "Value"+  parseJSON _ = mempty  -- | Constructor for 'EFSFileSystemElasticFileSystemTag' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/EMRClusterApplication.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-application.html  module Stratosphere.ResourceProperties.EMRClusterApplication where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,26 @@   , _eMRClusterApplicationArgs :: Maybe [Val Text]   , _eMRClusterApplicationName :: Maybe (Val Text)   , _eMRClusterApplicationVersion :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EMRClusterApplication where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 22, omitNothingFields = True }+  toJSON EMRClusterApplication{..} =+    object $+    catMaybes+    [ ("AdditionalInfo" .=) <$> _eMRClusterApplicationAdditionalInfo+    , ("Args" .=) <$> _eMRClusterApplicationArgs+    , ("Name" .=) <$> _eMRClusterApplicationName+    , ("Version" .=) <$> _eMRClusterApplicationVersion+    ]  instance FromJSON EMRClusterApplication where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 22, omitNothingFields = True }+  parseJSON (Object obj) =+    EMRClusterApplication <$>+      obj .:? "AdditionalInfo" <*>+      obj .:? "Args" <*>+      obj .:? "Name" <*>+      obj .:? "Version"+  parseJSON _ = mempty  -- | Constructor for 'EMRClusterApplication' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/EMRClusterBootstrapActionConfig.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-bootstrapactionconfig.html  module Stratosphere.ResourceProperties.EMRClusterBootstrapActionConfig where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EMRClusterScriptBootstrapActionConfig@@ -20,13 +20,22 @@   EMRClusterBootstrapActionConfig   { _eMRClusterBootstrapActionConfigName :: Val Text   , _eMRClusterBootstrapActionConfigScriptBootstrapAction :: EMRClusterScriptBootstrapActionConfig-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EMRClusterBootstrapActionConfig where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 32, omitNothingFields = True }+  toJSON EMRClusterBootstrapActionConfig{..} =+    object $+    catMaybes+    [ Just ("Name" .= _eMRClusterBootstrapActionConfigName)+    , Just ("ScriptBootstrapAction" .= _eMRClusterBootstrapActionConfigScriptBootstrapAction)+    ]  instance FromJSON EMRClusterBootstrapActionConfig where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 32, omitNothingFields = True }+  parseJSON (Object obj) =+    EMRClusterBootstrapActionConfig <$>+      obj .: "Name" <*>+      obj .: "ScriptBootstrapAction"+  parseJSON _ = mempty  -- | Constructor for 'EMRClusterBootstrapActionConfig' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/EMRClusterConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-configuration.html  module Stratosphere.ResourceProperties.EMRClusterConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _eMRClusterConfigurationClassification :: Maybe (Val Text)   , _eMRClusterConfigurationConfigurationProperties :: Maybe Object   , _eMRClusterConfigurationConfigurations :: Maybe [EMRClusterConfiguration]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EMRClusterConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  toJSON EMRClusterConfiguration{..} =+    object $+    catMaybes+    [ ("Classification" .=) <$> _eMRClusterConfigurationClassification+    , ("ConfigurationProperties" .=) <$> _eMRClusterConfigurationConfigurationProperties+    , ("Configurations" .=) <$> _eMRClusterConfigurationConfigurations+    ]  instance FromJSON EMRClusterConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  parseJSON (Object obj) =+    EMRClusterConfiguration <$>+      obj .:? "Classification" <*>+      obj .:? "ConfigurationProperties" <*>+      obj .:? "Configurations"+  parseJSON _ = mempty  -- | Constructor for 'EMRClusterConfiguration' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/EMRClusterEbsBlockDeviceConfig.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig.html  module Stratosphere.ResourceProperties.EMRClusterEbsBlockDeviceConfig where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EMRClusterVolumeSpecification@@ -20,13 +20,22 @@   EMRClusterEbsBlockDeviceConfig   { _eMRClusterEbsBlockDeviceConfigVolumeSpecification :: EMRClusterVolumeSpecification   , _eMRClusterEbsBlockDeviceConfigVolumesPerInstance :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EMRClusterEbsBlockDeviceConfig where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  toJSON EMRClusterEbsBlockDeviceConfig{..} =+    object $+    catMaybes+    [ Just ("VolumeSpecification" .= _eMRClusterEbsBlockDeviceConfigVolumeSpecification)+    , ("VolumesPerInstance" .=) <$> _eMRClusterEbsBlockDeviceConfigVolumesPerInstance+    ]  instance FromJSON EMRClusterEbsBlockDeviceConfig where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  parseJSON (Object obj) =+    EMRClusterEbsBlockDeviceConfig <$>+      obj .: "VolumeSpecification" <*>+      obj .:? "VolumesPerInstance"+  parseJSON _ = mempty  -- | Constructor for 'EMRClusterEbsBlockDeviceConfig' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/EMRClusterEbsConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration.html  module Stratosphere.ResourceProperties.EMRClusterEbsConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EMRClusterEbsBlockDeviceConfig@@ -20,13 +20,22 @@   EMRClusterEbsConfiguration   { _eMRClusterEbsConfigurationEbsBlockDeviceConfigs :: Maybe [EMRClusterEbsBlockDeviceConfig]   , _eMRClusterEbsConfigurationEbsOptimized :: Maybe (Val Bool')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EMRClusterEbsConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  toJSON EMRClusterEbsConfiguration{..} =+    object $+    catMaybes+    [ ("EbsBlockDeviceConfigs" .=) <$> _eMRClusterEbsConfigurationEbsBlockDeviceConfigs+    , ("EbsOptimized" .=) <$> _eMRClusterEbsConfigurationEbsOptimized+    ]  instance FromJSON EMRClusterEbsConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  parseJSON (Object obj) =+    EMRClusterEbsConfiguration <$>+      obj .:? "EbsBlockDeviceConfigs" <*>+      obj .:? "EbsOptimized"+  parseJSON _ = mempty  -- | Constructor for 'EMRClusterEbsConfiguration' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/EMRClusterInstanceGroupConfig.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-jobflowinstancesconfig-instancegroupconfig.html  module Stratosphere.ResourceProperties.EMRClusterInstanceGroupConfig where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EMRClusterConfiguration@@ -26,13 +26,32 @@   , _eMRClusterInstanceGroupConfigInstanceType :: Val Text   , _eMRClusterInstanceGroupConfigMarket :: Maybe (Val Text)   , _eMRClusterInstanceGroupConfigName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EMRClusterInstanceGroupConfig where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  toJSON EMRClusterInstanceGroupConfig{..} =+    object $+    catMaybes+    [ ("BidPrice" .=) <$> _eMRClusterInstanceGroupConfigBidPrice+    , ("Configurations" .=) <$> _eMRClusterInstanceGroupConfigConfigurations+    , ("EbsConfiguration" .=) <$> _eMRClusterInstanceGroupConfigEbsConfiguration+    , Just ("InstanceCount" .= _eMRClusterInstanceGroupConfigInstanceCount)+    , Just ("InstanceType" .= _eMRClusterInstanceGroupConfigInstanceType)+    , ("Market" .=) <$> _eMRClusterInstanceGroupConfigMarket+    , ("Name" .=) <$> _eMRClusterInstanceGroupConfigName+    ]  instance FromJSON EMRClusterInstanceGroupConfig where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  parseJSON (Object obj) =+    EMRClusterInstanceGroupConfig <$>+      obj .:? "BidPrice" <*>+      obj .:? "Configurations" <*>+      obj .:? "EbsConfiguration" <*>+      obj .: "InstanceCount" <*>+      obj .: "InstanceType" <*>+      obj .:? "Market" <*>+      obj .:? "Name"+  parseJSON _ = mempty  -- | Constructor for 'EMRClusterInstanceGroupConfig' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/EMRClusterJobFlowInstancesConfig.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-jobflowinstancesconfig.html  module Stratosphere.ResourceProperties.EMRClusterJobFlowInstancesConfig where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EMRClusterInstanceGroupConfig@@ -31,13 +31,42 @@   , _eMRClusterJobFlowInstancesConfigPlacement :: Maybe EMRClusterPlacementType   , _eMRClusterJobFlowInstancesConfigServiceAccessSecurityGroup :: Maybe (Val Text)   , _eMRClusterJobFlowInstancesConfigTerminationProtected :: Maybe (Val Bool')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EMRClusterJobFlowInstancesConfig where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  toJSON EMRClusterJobFlowInstancesConfig{..} =+    object $+    catMaybes+    [ ("AdditionalMasterSecurityGroups" .=) <$> _eMRClusterJobFlowInstancesConfigAdditionalMasterSecurityGroups+    , ("AdditionalSlaveSecurityGroups" .=) <$> _eMRClusterJobFlowInstancesConfigAdditionalSlaveSecurityGroups+    , Just ("CoreInstanceGroup" .= _eMRClusterJobFlowInstancesConfigCoreInstanceGroup)+    , ("Ec2KeyName" .=) <$> _eMRClusterJobFlowInstancesConfigEc2KeyName+    , ("Ec2SubnetId" .=) <$> _eMRClusterJobFlowInstancesConfigEc2SubnetId+    , ("EmrManagedMasterSecurityGroup" .=) <$> _eMRClusterJobFlowInstancesConfigEmrManagedMasterSecurityGroup+    , ("EmrManagedSlaveSecurityGroup" .=) <$> _eMRClusterJobFlowInstancesConfigEmrManagedSlaveSecurityGroup+    , ("HadoopVersion" .=) <$> _eMRClusterJobFlowInstancesConfigHadoopVersion+    , Just ("MasterInstanceGroup" .= _eMRClusterJobFlowInstancesConfigMasterInstanceGroup)+    , ("Placement" .=) <$> _eMRClusterJobFlowInstancesConfigPlacement+    , ("ServiceAccessSecurityGroup" .=) <$> _eMRClusterJobFlowInstancesConfigServiceAccessSecurityGroup+    , ("TerminationProtected" .=) <$> _eMRClusterJobFlowInstancesConfigTerminationProtected+    ]  instance FromJSON EMRClusterJobFlowInstancesConfig where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  parseJSON (Object obj) =+    EMRClusterJobFlowInstancesConfig <$>+      obj .:? "AdditionalMasterSecurityGroups" <*>+      obj .:? "AdditionalSlaveSecurityGroups" <*>+      obj .: "CoreInstanceGroup" <*>+      obj .:? "Ec2KeyName" <*>+      obj .:? "Ec2SubnetId" <*>+      obj .:? "EmrManagedMasterSecurityGroup" <*>+      obj .:? "EmrManagedSlaveSecurityGroup" <*>+      obj .:? "HadoopVersion" <*>+      obj .: "MasterInstanceGroup" <*>+      obj .:? "Placement" <*>+      obj .:? "ServiceAccessSecurityGroup" <*>+      obj .:? "TerminationProtected"+  parseJSON _ = mempty  -- | Constructor for 'EMRClusterJobFlowInstancesConfig' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/EMRClusterPlacementType.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-jobflowinstancesconfig-placementtype.html  module Stratosphere.ResourceProperties.EMRClusterPlacementType where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data EMRClusterPlacementType =   EMRClusterPlacementType   { _eMRClusterPlacementTypeAvailabilityZone :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EMRClusterPlacementType where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  toJSON EMRClusterPlacementType{..} =+    object $+    catMaybes+    [ Just ("AvailabilityZone" .= _eMRClusterPlacementTypeAvailabilityZone)+    ]  instance FromJSON EMRClusterPlacementType where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  parseJSON (Object obj) =+    EMRClusterPlacementType <$>+      obj .: "AvailabilityZone"+  parseJSON _ = mempty  -- | Constructor for 'EMRClusterPlacementType' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/EMRClusterScriptBootstrapActionConfig.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-bootstrapactionconfig-scriptbootstrapactionconfig.html  module Stratosphere.ResourceProperties.EMRClusterScriptBootstrapActionConfig where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,22 @@   EMRClusterScriptBootstrapActionConfig   { _eMRClusterScriptBootstrapActionConfigArgs :: Maybe [Val Text]   , _eMRClusterScriptBootstrapActionConfigPath :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EMRClusterScriptBootstrapActionConfig where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 38, omitNothingFields = True }+  toJSON EMRClusterScriptBootstrapActionConfig{..} =+    object $+    catMaybes+    [ ("Args" .=) <$> _eMRClusterScriptBootstrapActionConfigArgs+    , Just ("Path" .= _eMRClusterScriptBootstrapActionConfigPath)+    ]  instance FromJSON EMRClusterScriptBootstrapActionConfig where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 38, omitNothingFields = True }+  parseJSON (Object obj) =+    EMRClusterScriptBootstrapActionConfig <$>+      obj .:? "Args" <*>+      obj .: "Path"+  parseJSON _ = mempty  -- | Constructor for 'EMRClusterScriptBootstrapActionConfig' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/EMRClusterVolumeSpecification.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig-volumespecification.html  module Stratosphere.ResourceProperties.EMRClusterVolumeSpecification where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _eMRClusterVolumeSpecificationIops :: Maybe (Val Integer')   , _eMRClusterVolumeSpecificationSizeInGB :: Val Integer'   , _eMRClusterVolumeSpecificationVolumeType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EMRClusterVolumeSpecification where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  toJSON EMRClusterVolumeSpecification{..} =+    object $+    catMaybes+    [ ("Iops" .=) <$> _eMRClusterVolumeSpecificationIops+    , Just ("SizeInGB" .= _eMRClusterVolumeSpecificationSizeInGB)+    , Just ("VolumeType" .= _eMRClusterVolumeSpecificationVolumeType)+    ]  instance FromJSON EMRClusterVolumeSpecification where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  parseJSON (Object obj) =+    EMRClusterVolumeSpecification <$>+      obj .:? "Iops" <*>+      obj .: "SizeInGB" <*>+      obj .: "VolumeType"+  parseJSON _ = mempty  -- | Constructor for 'EMRClusterVolumeSpecification' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/EMRInstanceGroupConfigConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-configuration.html  module Stratosphere.ResourceProperties.EMRInstanceGroupConfigConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _eMRInstanceGroupConfigConfigurationClassification :: Maybe (Val Text)   , _eMRInstanceGroupConfigConfigurationConfigurationProperties :: Maybe Object   , _eMRInstanceGroupConfigConfigurationConfigurations :: Maybe [EMRInstanceGroupConfigConfiguration]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EMRInstanceGroupConfigConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  toJSON EMRInstanceGroupConfigConfiguration{..} =+    object $+    catMaybes+    [ ("Classification" .=) <$> _eMRInstanceGroupConfigConfigurationClassification+    , ("ConfigurationProperties" .=) <$> _eMRInstanceGroupConfigConfigurationConfigurationProperties+    , ("Configurations" .=) <$> _eMRInstanceGroupConfigConfigurationConfigurations+    ]  instance FromJSON EMRInstanceGroupConfigConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  parseJSON (Object obj) =+    EMRInstanceGroupConfigConfiguration <$>+      obj .:? "Classification" <*>+      obj .:? "ConfigurationProperties" <*>+      obj .:? "Configurations"+  parseJSON _ = mempty  -- | Constructor for 'EMRInstanceGroupConfigConfiguration' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/EMRInstanceGroupConfigEbsBlockDeviceConfig.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig.html  module Stratosphere.ResourceProperties.EMRInstanceGroupConfigEbsBlockDeviceConfig where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EMRInstanceGroupConfigVolumeSpecification@@ -21,13 +21,22 @@   EMRInstanceGroupConfigEbsBlockDeviceConfig   { _eMRInstanceGroupConfigEbsBlockDeviceConfigVolumeSpecification :: EMRInstanceGroupConfigVolumeSpecification   , _eMRInstanceGroupConfigEbsBlockDeviceConfigVolumesPerInstance :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EMRInstanceGroupConfigEbsBlockDeviceConfig where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 43, omitNothingFields = True }+  toJSON EMRInstanceGroupConfigEbsBlockDeviceConfig{..} =+    object $+    catMaybes+    [ Just ("VolumeSpecification" .= _eMRInstanceGroupConfigEbsBlockDeviceConfigVolumeSpecification)+    , ("VolumesPerInstance" .=) <$> _eMRInstanceGroupConfigEbsBlockDeviceConfigVolumesPerInstance+    ]  instance FromJSON EMRInstanceGroupConfigEbsBlockDeviceConfig where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 43, omitNothingFields = True }+  parseJSON (Object obj) =+    EMRInstanceGroupConfigEbsBlockDeviceConfig <$>+      obj .: "VolumeSpecification" <*>+      obj .:? "VolumesPerInstance"+  parseJSON _ = mempty  -- | Constructor for 'EMRInstanceGroupConfigEbsBlockDeviceConfig' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/EMRInstanceGroupConfigEbsConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration.html  module Stratosphere.ResourceProperties.EMRInstanceGroupConfigEbsConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EMRInstanceGroupConfigEbsBlockDeviceConfig@@ -21,13 +21,22 @@   EMRInstanceGroupConfigEbsConfiguration   { _eMRInstanceGroupConfigEbsConfigurationEbsBlockDeviceConfigs :: Maybe [EMRInstanceGroupConfigEbsBlockDeviceConfig]   , _eMRInstanceGroupConfigEbsConfigurationEbsOptimized :: Maybe (Val Bool')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EMRInstanceGroupConfigEbsConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 39, omitNothingFields = True }+  toJSON EMRInstanceGroupConfigEbsConfiguration{..} =+    object $+    catMaybes+    [ ("EbsBlockDeviceConfigs" .=) <$> _eMRInstanceGroupConfigEbsConfigurationEbsBlockDeviceConfigs+    , ("EbsOptimized" .=) <$> _eMRInstanceGroupConfigEbsConfigurationEbsOptimized+    ]  instance FromJSON EMRInstanceGroupConfigEbsConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 39, omitNothingFields = True }+  parseJSON (Object obj) =+    EMRInstanceGroupConfigEbsConfiguration <$>+      obj .:? "EbsBlockDeviceConfigs" <*>+      obj .:? "EbsOptimized"+  parseJSON _ = mempty  -- | Constructor for 'EMRInstanceGroupConfigEbsConfiguration' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/EMRInstanceGroupConfigVolumeSpecification.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig-volumespecification.html  module Stratosphere.ResourceProperties.EMRInstanceGroupConfigVolumeSpecification where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,24 @@   { _eMRInstanceGroupConfigVolumeSpecificationIops :: Maybe (Val Integer')   , _eMRInstanceGroupConfigVolumeSpecificationSizeInGB :: Val Integer'   , _eMRInstanceGroupConfigVolumeSpecificationVolumeType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EMRInstanceGroupConfigVolumeSpecification where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 42, omitNothingFields = True }+  toJSON EMRInstanceGroupConfigVolumeSpecification{..} =+    object $+    catMaybes+    [ ("Iops" .=) <$> _eMRInstanceGroupConfigVolumeSpecificationIops+    , Just ("SizeInGB" .= _eMRInstanceGroupConfigVolumeSpecificationSizeInGB)+    , Just ("VolumeType" .= _eMRInstanceGroupConfigVolumeSpecificationVolumeType)+    ]  instance FromJSON EMRInstanceGroupConfigVolumeSpecification where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 42, omitNothingFields = True }+  parseJSON (Object obj) =+    EMRInstanceGroupConfigVolumeSpecification <$>+      obj .:? "Iops" <*>+      obj .: "SizeInGB" <*>+      obj .: "VolumeType"+  parseJSON _ = mempty  -- | Constructor for 'EMRInstanceGroupConfigVolumeSpecification' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/EMRStepHadoopJarStepConfig.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-hadoopjarstepconfig.html  module Stratosphere.ResourceProperties.EMRStepHadoopJarStepConfig where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EMRStepKeyValue@@ -22,13 +22,26 @@   , _eMRStepHadoopJarStepConfigJar :: Val Text   , _eMRStepHadoopJarStepConfigMainClass :: Maybe (Val Text)   , _eMRStepHadoopJarStepConfigStepProperties :: Maybe [EMRStepKeyValue]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EMRStepHadoopJarStepConfig where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  toJSON EMRStepHadoopJarStepConfig{..} =+    object $+    catMaybes+    [ ("Args" .=) <$> _eMRStepHadoopJarStepConfigArgs+    , Just ("Jar" .= _eMRStepHadoopJarStepConfigJar)+    , ("MainClass" .=) <$> _eMRStepHadoopJarStepConfigMainClass+    , ("StepProperties" .=) <$> _eMRStepHadoopJarStepConfigStepProperties+    ]  instance FromJSON EMRStepHadoopJarStepConfig where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  parseJSON (Object obj) =+    EMRStepHadoopJarStepConfig <$>+      obj .:? "Args" <*>+      obj .: "Jar" <*>+      obj .:? "MainClass" <*>+      obj .:? "StepProperties"+  parseJSON _ = mempty  -- | Constructor for 'EMRStepHadoopJarStepConfig' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/EMRStepKeyValue.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-keyvalue.html  module Stratosphere.ResourceProperties.EMRStepKeyValue where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   EMRStepKeyValue   { _eMRStepKeyValueKey :: Maybe (Val Text)   , _eMRStepKeyValueValue :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EMRStepKeyValue where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }+  toJSON EMRStepKeyValue{..} =+    object $+    catMaybes+    [ ("Key" .=) <$> _eMRStepKeyValueKey+    , ("Value" .=) <$> _eMRStepKeyValueValue+    ]  instance FromJSON EMRStepKeyValue where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }+  parseJSON (Object obj) =+    EMRStepKeyValue <$>+      obj .:? "Key" <*>+      obj .:? "Value"+  parseJSON _ = mempty  -- | Constructor for 'EMRStepKeyValue' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/ElastiCacheReplicationGroupNodeGroupConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html  module Stratosphere.ResourceProperties.ElastiCacheReplicationGroupNodeGroupConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -24,13 +24,26 @@   , _elastiCacheReplicationGroupNodeGroupConfigurationReplicaAvailabilityZones :: Maybe [Val Text]   , _elastiCacheReplicationGroupNodeGroupConfigurationReplicaCount :: Maybe (Val Integer')   , _elastiCacheReplicationGroupNodeGroupConfigurationSlots :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElastiCacheReplicationGroupNodeGroupConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 50, omitNothingFields = True }+  toJSON ElastiCacheReplicationGroupNodeGroupConfiguration{..} =+    object $+    catMaybes+    [ ("PrimaryAvailabilityZone" .=) <$> _elastiCacheReplicationGroupNodeGroupConfigurationPrimaryAvailabilityZone+    , ("ReplicaAvailabilityZones" .=) <$> _elastiCacheReplicationGroupNodeGroupConfigurationReplicaAvailabilityZones+    , ("ReplicaCount" .=) <$> _elastiCacheReplicationGroupNodeGroupConfigurationReplicaCount+    , ("Slots" .=) <$> _elastiCacheReplicationGroupNodeGroupConfigurationSlots+    ]  instance FromJSON ElastiCacheReplicationGroupNodeGroupConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 50, omitNothingFields = True }+  parseJSON (Object obj) =+    ElastiCacheReplicationGroupNodeGroupConfiguration <$>+      obj .:? "PrimaryAvailabilityZone" <*>+      obj .:? "ReplicaAvailabilityZones" <*>+      obj .:? "ReplicaCount" <*>+      obj .:? "Slots"+  parseJSON _ = mempty  -- | Constructor for 'ElastiCacheReplicationGroupNodeGroupConfiguration' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ElasticBeanstalkApplicationVersionSourceBundle.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-sourcebundle.html  module Stratosphere.ResourceProperties.ElasticBeanstalkApplicationVersionSourceBundle where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,22 @@   ElasticBeanstalkApplicationVersionSourceBundle   { _elasticBeanstalkApplicationVersionSourceBundleS3Bucket :: Val Text   , _elasticBeanstalkApplicationVersionSourceBundleS3Key :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticBeanstalkApplicationVersionSourceBundle where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 47, omitNothingFields = True }+  toJSON ElasticBeanstalkApplicationVersionSourceBundle{..} =+    object $+    catMaybes+    [ Just ("S3Bucket" .= _elasticBeanstalkApplicationVersionSourceBundleS3Bucket)+    , Just ("S3Key" .= _elasticBeanstalkApplicationVersionSourceBundleS3Key)+    ]  instance FromJSON ElasticBeanstalkApplicationVersionSourceBundle where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 47, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticBeanstalkApplicationVersionSourceBundle <$>+      obj .: "S3Bucket" <*>+      obj .: "S3Key"+  parseJSON _ = mempty  -- | Constructor for 'ElasticBeanstalkApplicationVersionSourceBundle' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ElasticBeanstalkConfigurationTemplateConfigurationOptionSetting.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-option-settings.html  module Stratosphere.ResourceProperties.ElasticBeanstalkConfigurationTemplateConfigurationOptionSetting where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -23,13 +23,24 @@   { _elasticBeanstalkConfigurationTemplateConfigurationOptionSettingNamespace :: Val Text   , _elasticBeanstalkConfigurationTemplateConfigurationOptionSettingOptionName :: Val Text   , _elasticBeanstalkConfigurationTemplateConfigurationOptionSettingValue :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticBeanstalkConfigurationTemplateConfigurationOptionSetting where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 64, omitNothingFields = True }+  toJSON ElasticBeanstalkConfigurationTemplateConfigurationOptionSetting{..} =+    object $+    catMaybes+    [ Just ("Namespace" .= _elasticBeanstalkConfigurationTemplateConfigurationOptionSettingNamespace)+    , Just ("OptionName" .= _elasticBeanstalkConfigurationTemplateConfigurationOptionSettingOptionName)+    , Just ("Value" .= _elasticBeanstalkConfigurationTemplateConfigurationOptionSettingValue)+    ]  instance FromJSON ElasticBeanstalkConfigurationTemplateConfigurationOptionSetting where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 64, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticBeanstalkConfigurationTemplateConfigurationOptionSetting <$>+      obj .: "Namespace" <*>+      obj .: "OptionName" <*>+      obj .: "Value"+  parseJSON _ = mempty  -- | Constructor for -- | 'ElasticBeanstalkConfigurationTemplateConfigurationOptionSetting'
library-gen/Stratosphere/ResourceProperties/ElasticBeanstalkConfigurationTemplateSourceConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-configurationtemplate-sourceconfiguration.html  module Stratosphere.ResourceProperties.ElasticBeanstalkConfigurationTemplateSourceConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,22 @@   ElasticBeanstalkConfigurationTemplateSourceConfiguration   { _elasticBeanstalkConfigurationTemplateSourceConfigurationApplicationName :: Val Text   , _elasticBeanstalkConfigurationTemplateSourceConfigurationTemplateName :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticBeanstalkConfigurationTemplateSourceConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 57, omitNothingFields = True }+  toJSON ElasticBeanstalkConfigurationTemplateSourceConfiguration{..} =+    object $+    catMaybes+    [ Just ("ApplicationName" .= _elasticBeanstalkConfigurationTemplateSourceConfigurationApplicationName)+    , Just ("TemplateName" .= _elasticBeanstalkConfigurationTemplateSourceConfigurationTemplateName)+    ]  instance FromJSON ElasticBeanstalkConfigurationTemplateSourceConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 57, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticBeanstalkConfigurationTemplateSourceConfiguration <$>+      obj .: "ApplicationName" <*>+      obj .: "TemplateName"+  parseJSON _ = mempty  -- | Constructor for -- | 'ElasticBeanstalkConfigurationTemplateSourceConfiguration' containing
library-gen/Stratosphere/ResourceProperties/ElasticBeanstalkEnvironmentOptionSettings.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-option-settings.html  module Stratosphere.ResourceProperties.ElasticBeanstalkEnvironmentOptionSettings where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,24 @@   { _elasticBeanstalkEnvironmentOptionSettingsNamespace :: Val Text   , _elasticBeanstalkEnvironmentOptionSettingsOptionName :: Val Text   , _elasticBeanstalkEnvironmentOptionSettingsValue :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticBeanstalkEnvironmentOptionSettings where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 42, omitNothingFields = True }+  toJSON ElasticBeanstalkEnvironmentOptionSettings{..} =+    object $+    catMaybes+    [ Just ("Namespace" .= _elasticBeanstalkEnvironmentOptionSettingsNamespace)+    , Just ("OptionName" .= _elasticBeanstalkEnvironmentOptionSettingsOptionName)+    , Just ("Value" .= _elasticBeanstalkEnvironmentOptionSettingsValue)+    ]  instance FromJSON ElasticBeanstalkEnvironmentOptionSettings where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 42, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticBeanstalkEnvironmentOptionSettings <$>+      obj .: "Namespace" <*>+      obj .: "OptionName" <*>+      obj .: "Value"+  parseJSON _ = mempty  -- | Constructor for 'ElasticBeanstalkEnvironmentOptionSettings' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ElasticBeanstalkEnvironmentTier.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment-tier.html  module Stratosphere.ResourceProperties.ElasticBeanstalkEnvironmentTier where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _elasticBeanstalkEnvironmentTierName :: Maybe (Val Text)   , _elasticBeanstalkEnvironmentTierType :: Maybe (Val Text)   , _elasticBeanstalkEnvironmentTierVersion :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticBeanstalkEnvironmentTier where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 32, omitNothingFields = True }+  toJSON ElasticBeanstalkEnvironmentTier{..} =+    object $+    catMaybes+    [ ("Name" .=) <$> _elasticBeanstalkEnvironmentTierName+    , ("Type" .=) <$> _elasticBeanstalkEnvironmentTierType+    , ("Version" .=) <$> _elasticBeanstalkEnvironmentTierVersion+    ]  instance FromJSON ElasticBeanstalkEnvironmentTier where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 32, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticBeanstalkEnvironmentTier <$>+      obj .:? "Name" <*>+      obj .:? "Type" <*>+      obj .:? "Version"+  parseJSON _ = mempty  -- | Constructor for 'ElasticBeanstalkEnvironmentTier' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingLoadBalancerAccessLoggingPolicy.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-accessloggingpolicy.html  module Stratosphere.ResourceProperties.ElasticLoadBalancingLoadBalancerAccessLoggingPolicy where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -24,13 +24,26 @@   , _elasticLoadBalancingLoadBalancerAccessLoggingPolicyEnabled :: Val Bool'   , _elasticLoadBalancingLoadBalancerAccessLoggingPolicyS3BucketName :: Val Text   , _elasticLoadBalancingLoadBalancerAccessLoggingPolicyS3BucketPrefix :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticLoadBalancingLoadBalancerAccessLoggingPolicy where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 52, omitNothingFields = True }+  toJSON ElasticLoadBalancingLoadBalancerAccessLoggingPolicy{..} =+    object $+    catMaybes+    [ ("EmitInterval" .=) <$> _elasticLoadBalancingLoadBalancerAccessLoggingPolicyEmitInterval+    , Just ("Enabled" .= _elasticLoadBalancingLoadBalancerAccessLoggingPolicyEnabled)+    , Just ("S3BucketName" .= _elasticLoadBalancingLoadBalancerAccessLoggingPolicyS3BucketName)+    , ("S3BucketPrefix" .=) <$> _elasticLoadBalancingLoadBalancerAccessLoggingPolicyS3BucketPrefix+    ]  instance FromJSON ElasticLoadBalancingLoadBalancerAccessLoggingPolicy where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 52, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticLoadBalancingLoadBalancerAccessLoggingPolicy <$>+      obj .:? "EmitInterval" <*>+      obj .: "Enabled" <*>+      obj .: "S3BucketName" <*>+      obj .:? "S3BucketPrefix"+  parseJSON _ = mempty  -- | Constructor for 'ElasticLoadBalancingLoadBalancerAccessLoggingPolicy' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingLoadBalancerAppCookieStickinessPolicy.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-AppCookieStickinessPolicy.html  module Stratosphere.ResourceProperties.ElasticLoadBalancingLoadBalancerAppCookieStickinessPolicy where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,22 @@   ElasticLoadBalancingLoadBalancerAppCookieStickinessPolicy   { _elasticLoadBalancingLoadBalancerAppCookieStickinessPolicyCookieName :: Val Text   , _elasticLoadBalancingLoadBalancerAppCookieStickinessPolicyPolicyName :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticLoadBalancingLoadBalancerAppCookieStickinessPolicy where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 58, omitNothingFields = True }+  toJSON ElasticLoadBalancingLoadBalancerAppCookieStickinessPolicy{..} =+    object $+    catMaybes+    [ Just ("CookieName" .= _elasticLoadBalancingLoadBalancerAppCookieStickinessPolicyCookieName)+    , Just ("PolicyName" .= _elasticLoadBalancingLoadBalancerAppCookieStickinessPolicyPolicyName)+    ]  instance FromJSON ElasticLoadBalancingLoadBalancerAppCookieStickinessPolicy where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 58, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticLoadBalancingLoadBalancerAppCookieStickinessPolicy <$>+      obj .: "CookieName" <*>+      obj .: "PolicyName"+  parseJSON _ = mempty  -- | Constructor for -- | 'ElasticLoadBalancingLoadBalancerAppCookieStickinessPolicy' containing
library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingLoadBalancerConnectionDrainingPolicy.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectiondrainingpolicy.html  module Stratosphere.ResourceProperties.ElasticLoadBalancingLoadBalancerConnectionDrainingPolicy where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,22 @@   ElasticLoadBalancingLoadBalancerConnectionDrainingPolicy   { _elasticLoadBalancingLoadBalancerConnectionDrainingPolicyEnabled :: Val Bool'   , _elasticLoadBalancingLoadBalancerConnectionDrainingPolicyTimeout :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticLoadBalancingLoadBalancerConnectionDrainingPolicy where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 57, omitNothingFields = True }+  toJSON ElasticLoadBalancingLoadBalancerConnectionDrainingPolicy{..} =+    object $+    catMaybes+    [ Just ("Enabled" .= _elasticLoadBalancingLoadBalancerConnectionDrainingPolicyEnabled)+    , ("Timeout" .=) <$> _elasticLoadBalancingLoadBalancerConnectionDrainingPolicyTimeout+    ]  instance FromJSON ElasticLoadBalancingLoadBalancerConnectionDrainingPolicy where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 57, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticLoadBalancingLoadBalancerConnectionDrainingPolicy <$>+      obj .: "Enabled" <*>+      obj .:? "Timeout"+  parseJSON _ = mempty  -- | Constructor for -- | 'ElasticLoadBalancingLoadBalancerConnectionDrainingPolicy' containing
library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingLoadBalancerConnectionSettings.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectionsettings.html  module Stratosphere.ResourceProperties.ElasticLoadBalancingLoadBalancerConnectionSettings where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,20 @@ data ElasticLoadBalancingLoadBalancerConnectionSettings =   ElasticLoadBalancingLoadBalancerConnectionSettings   { _elasticLoadBalancingLoadBalancerConnectionSettingsIdleTimeout :: Val Integer'-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticLoadBalancingLoadBalancerConnectionSettings where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 51, omitNothingFields = True }+  toJSON ElasticLoadBalancingLoadBalancerConnectionSettings{..} =+    object $+    catMaybes+    [ Just ("IdleTimeout" .= _elasticLoadBalancingLoadBalancerConnectionSettingsIdleTimeout)+    ]  instance FromJSON ElasticLoadBalancingLoadBalancerConnectionSettings where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 51, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticLoadBalancingLoadBalancerConnectionSettings <$>+      obj .: "IdleTimeout"+  parseJSON _ = mempty  -- | Constructor for 'ElasticLoadBalancingLoadBalancerConnectionSettings' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingLoadBalancerHealthCheck.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-health-check.html  module Stratosphere.ResourceProperties.ElasticLoadBalancingLoadBalancerHealthCheck where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -25,13 +25,28 @@   , _elasticLoadBalancingLoadBalancerHealthCheckTarget :: Val Text   , _elasticLoadBalancingLoadBalancerHealthCheckTimeout :: Val Text   , _elasticLoadBalancingLoadBalancerHealthCheckUnhealthyThreshold :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticLoadBalancingLoadBalancerHealthCheck where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 44, omitNothingFields = True }+  toJSON ElasticLoadBalancingLoadBalancerHealthCheck{..} =+    object $+    catMaybes+    [ Just ("HealthyThreshold" .= _elasticLoadBalancingLoadBalancerHealthCheckHealthyThreshold)+    , Just ("Interval" .= _elasticLoadBalancingLoadBalancerHealthCheckInterval)+    , Just ("Target" .= _elasticLoadBalancingLoadBalancerHealthCheckTarget)+    , Just ("Timeout" .= _elasticLoadBalancingLoadBalancerHealthCheckTimeout)+    , Just ("UnhealthyThreshold" .= _elasticLoadBalancingLoadBalancerHealthCheckUnhealthyThreshold)+    ]  instance FromJSON ElasticLoadBalancingLoadBalancerHealthCheck where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 44, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticLoadBalancingLoadBalancerHealthCheck <$>+      obj .: "HealthyThreshold" <*>+      obj .: "Interval" <*>+      obj .: "Target" <*>+      obj .: "Timeout" <*>+      obj .: "UnhealthyThreshold"+  parseJSON _ = mempty  -- | Constructor for 'ElasticLoadBalancingLoadBalancerHealthCheck' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingLoadBalancerLBCookieStickinessPolicy.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-LBCookieStickinessPolicy.html  module Stratosphere.ResourceProperties.ElasticLoadBalancingLoadBalancerLBCookieStickinessPolicy where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,22 @@   ElasticLoadBalancingLoadBalancerLBCookieStickinessPolicy   { _elasticLoadBalancingLoadBalancerLBCookieStickinessPolicyCookieExpirationPeriod :: Maybe (Val Text)   , _elasticLoadBalancingLoadBalancerLBCookieStickinessPolicyPolicyName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticLoadBalancingLoadBalancerLBCookieStickinessPolicy where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 57, omitNothingFields = True }+  toJSON ElasticLoadBalancingLoadBalancerLBCookieStickinessPolicy{..} =+    object $+    catMaybes+    [ ("CookieExpirationPeriod" .=) <$> _elasticLoadBalancingLoadBalancerLBCookieStickinessPolicyCookieExpirationPeriod+    , ("PolicyName" .=) <$> _elasticLoadBalancingLoadBalancerLBCookieStickinessPolicyPolicyName+    ]  instance FromJSON ElasticLoadBalancingLoadBalancerLBCookieStickinessPolicy where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 57, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticLoadBalancingLoadBalancerLBCookieStickinessPolicy <$>+      obj .:? "CookieExpirationPeriod" <*>+      obj .:? "PolicyName"+  parseJSON _ = mempty  -- | Constructor for -- | 'ElasticLoadBalancingLoadBalancerLBCookieStickinessPolicy' containing
library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingLoadBalancerListeners.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html  module Stratosphere.ResourceProperties.ElasticLoadBalancingLoadBalancerListeners where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -25,13 +25,30 @@   , _elasticLoadBalancingLoadBalancerListenersPolicyNames :: Maybe [Val Text]   , _elasticLoadBalancingLoadBalancerListenersProtocol :: Val Text   , _elasticLoadBalancingLoadBalancerListenersSSLCertificateId :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticLoadBalancingLoadBalancerListeners where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 42, omitNothingFields = True }+  toJSON ElasticLoadBalancingLoadBalancerListeners{..} =+    object $+    catMaybes+    [ Just ("InstancePort" .= _elasticLoadBalancingLoadBalancerListenersInstancePort)+    , ("InstanceProtocol" .=) <$> _elasticLoadBalancingLoadBalancerListenersInstanceProtocol+    , Just ("LoadBalancerPort" .= _elasticLoadBalancingLoadBalancerListenersLoadBalancerPort)+    , ("PolicyNames" .=) <$> _elasticLoadBalancingLoadBalancerListenersPolicyNames+    , Just ("Protocol" .= _elasticLoadBalancingLoadBalancerListenersProtocol)+    , ("SSLCertificateId" .=) <$> _elasticLoadBalancingLoadBalancerListenersSSLCertificateId+    ]  instance FromJSON ElasticLoadBalancingLoadBalancerListeners where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 42, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticLoadBalancingLoadBalancerListeners <$>+      obj .: "InstancePort" <*>+      obj .:? "InstanceProtocol" <*>+      obj .: "LoadBalancerPort" <*>+      obj .:? "PolicyNames" <*>+      obj .: "Protocol" <*>+      obj .:? "SSLCertificateId"+  parseJSON _ = mempty  -- | Constructor for 'ElasticLoadBalancingLoadBalancerListeners' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingLoadBalancerPolicies.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-policy.html  module Stratosphere.ResourceProperties.ElasticLoadBalancingLoadBalancerPolicies where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -24,13 +24,28 @@   , _elasticLoadBalancingLoadBalancerPoliciesLoadBalancerPorts :: Maybe [Val Text]   , _elasticLoadBalancingLoadBalancerPoliciesPolicyName :: Val Text   , _elasticLoadBalancingLoadBalancerPoliciesPolicyType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticLoadBalancingLoadBalancerPolicies where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 41, omitNothingFields = True }+  toJSON ElasticLoadBalancingLoadBalancerPolicies{..} =+    object $+    catMaybes+    [ Just ("Attributes" .= _elasticLoadBalancingLoadBalancerPoliciesAttributes)+    , ("InstancePorts" .=) <$> _elasticLoadBalancingLoadBalancerPoliciesInstancePorts+    , ("LoadBalancerPorts" .=) <$> _elasticLoadBalancingLoadBalancerPoliciesLoadBalancerPorts+    , Just ("PolicyName" .= _elasticLoadBalancingLoadBalancerPoliciesPolicyName)+    , Just ("PolicyType" .= _elasticLoadBalancingLoadBalancerPoliciesPolicyType)+    ]  instance FromJSON ElasticLoadBalancingLoadBalancerPolicies where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 41, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticLoadBalancingLoadBalancerPolicies <$>+      obj .: "Attributes" <*>+      obj .:? "InstancePorts" <*>+      obj .:? "LoadBalancerPorts" <*>+      obj .: "PolicyName" <*>+      obj .: "PolicyType"+  parseJSON _ = mempty  -- | Constructor for 'ElasticLoadBalancingLoadBalancerPolicies' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingV2ListenerAction.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-defaultactions.html  module Stratosphere.ResourceProperties.ElasticLoadBalancingV2ListenerAction where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   ElasticLoadBalancingV2ListenerAction   { _elasticLoadBalancingV2ListenerActionTargetGroupArn :: Val Text   , _elasticLoadBalancingV2ListenerActionType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticLoadBalancingV2ListenerAction where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 37, omitNothingFields = True }+  toJSON ElasticLoadBalancingV2ListenerAction{..} =+    object $+    catMaybes+    [ Just ("TargetGroupArn" .= _elasticLoadBalancingV2ListenerActionTargetGroupArn)+    , Just ("Type" .= _elasticLoadBalancingV2ListenerActionType)+    ]  instance FromJSON ElasticLoadBalancingV2ListenerAction where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 37, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticLoadBalancingV2ListenerAction <$>+      obj .: "TargetGroupArn" <*>+      obj .: "Type"+  parseJSON _ = mempty  -- | Constructor for 'ElasticLoadBalancingV2ListenerAction' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingV2ListenerCertificate.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-certificates.html  module Stratosphere.ResourceProperties.ElasticLoadBalancingV2ListenerCertificate where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,20 @@ data ElasticLoadBalancingV2ListenerCertificate =   ElasticLoadBalancingV2ListenerCertificate   { _elasticLoadBalancingV2ListenerCertificateCertificateArn :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticLoadBalancingV2ListenerCertificate where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 42, omitNothingFields = True }+  toJSON ElasticLoadBalancingV2ListenerCertificate{..} =+    object $+    catMaybes+    [ ("CertificateArn" .=) <$> _elasticLoadBalancingV2ListenerCertificateCertificateArn+    ]  instance FromJSON ElasticLoadBalancingV2ListenerCertificate where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 42, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticLoadBalancingV2ListenerCertificate <$>+      obj .:? "CertificateArn"+  parseJSON _ = mempty  -- | Constructor for 'ElasticLoadBalancingV2ListenerCertificate' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingV2ListenerRuleAction.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-actions.html  module Stratosphere.ResourceProperties.ElasticLoadBalancingV2ListenerRuleAction where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,22 @@   ElasticLoadBalancingV2ListenerRuleAction   { _elasticLoadBalancingV2ListenerRuleActionTargetGroupArn :: Val Text   , _elasticLoadBalancingV2ListenerRuleActionType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticLoadBalancingV2ListenerRuleAction where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 41, omitNothingFields = True }+  toJSON ElasticLoadBalancingV2ListenerRuleAction{..} =+    object $+    catMaybes+    [ Just ("TargetGroupArn" .= _elasticLoadBalancingV2ListenerRuleActionTargetGroupArn)+    , Just ("Type" .= _elasticLoadBalancingV2ListenerRuleActionType)+    ]  instance FromJSON ElasticLoadBalancingV2ListenerRuleAction where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 41, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticLoadBalancingV2ListenerRuleAction <$>+      obj .: "TargetGroupArn" <*>+      obj .: "Type"+  parseJSON _ = mempty  -- | Constructor for 'ElasticLoadBalancingV2ListenerRuleAction' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingV2ListenerRuleRuleCondition.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-conditions.html  module Stratosphere.ResourceProperties.ElasticLoadBalancingV2ListenerRuleRuleCondition where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,22 @@   ElasticLoadBalancingV2ListenerRuleRuleCondition   { _elasticLoadBalancingV2ListenerRuleRuleConditionField :: Maybe (Val Text)   , _elasticLoadBalancingV2ListenerRuleRuleConditionValues :: Maybe [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticLoadBalancingV2ListenerRuleRuleCondition where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 48, omitNothingFields = True }+  toJSON ElasticLoadBalancingV2ListenerRuleRuleCondition{..} =+    object $+    catMaybes+    [ ("Field" .=) <$> _elasticLoadBalancingV2ListenerRuleRuleConditionField+    , ("Values" .=) <$> _elasticLoadBalancingV2ListenerRuleRuleConditionValues+    ]  instance FromJSON ElasticLoadBalancingV2ListenerRuleRuleCondition where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 48, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticLoadBalancingV2ListenerRuleRuleCondition <$>+      obj .:? "Field" <*>+      obj .:? "Values"+  parseJSON _ = mempty  -- | Constructor for 'ElasticLoadBalancingV2ListenerRuleRuleCondition' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingV2LoadBalancerLoadBalancerAttribute.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattributes.html  module Stratosphere.ResourceProperties.ElasticLoadBalancingV2LoadBalancerLoadBalancerAttribute where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,22 @@   ElasticLoadBalancingV2LoadBalancerLoadBalancerAttribute   { _elasticLoadBalancingV2LoadBalancerLoadBalancerAttributeKey :: Maybe (Val Text)   , _elasticLoadBalancingV2LoadBalancerLoadBalancerAttributeValue :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticLoadBalancingV2LoadBalancerLoadBalancerAttribute where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 56, omitNothingFields = True }+  toJSON ElasticLoadBalancingV2LoadBalancerLoadBalancerAttribute{..} =+    object $+    catMaybes+    [ ("Key" .=) <$> _elasticLoadBalancingV2LoadBalancerLoadBalancerAttributeKey+    , ("Value" .=) <$> _elasticLoadBalancingV2LoadBalancerLoadBalancerAttributeValue+    ]  instance FromJSON ElasticLoadBalancingV2LoadBalancerLoadBalancerAttribute where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 56, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticLoadBalancingV2LoadBalancerLoadBalancerAttribute <$>+      obj .:? "Key" <*>+      obj .:? "Value"+  parseJSON _ = mempty  -- | Constructor for 'ElasticLoadBalancingV2LoadBalancerLoadBalancerAttribute' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingV2TargetGroupMatcher.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-matcher.html  module Stratosphere.ResourceProperties.ElasticLoadBalancingV2TargetGroupMatcher where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,20 @@ data ElasticLoadBalancingV2TargetGroupMatcher =   ElasticLoadBalancingV2TargetGroupMatcher   { _elasticLoadBalancingV2TargetGroupMatcherHttpCode :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticLoadBalancingV2TargetGroupMatcher where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 41, omitNothingFields = True }+  toJSON ElasticLoadBalancingV2TargetGroupMatcher{..} =+    object $+    catMaybes+    [ Just ("HttpCode" .= _elasticLoadBalancingV2TargetGroupMatcherHttpCode)+    ]  instance FromJSON ElasticLoadBalancingV2TargetGroupMatcher where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 41, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticLoadBalancingV2TargetGroupMatcher <$>+      obj .: "HttpCode"+  parseJSON _ = mempty  -- | Constructor for 'ElasticLoadBalancingV2TargetGroupMatcher' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingV2TargetGroupTargetDescription.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetdescription.html  module Stratosphere.ResourceProperties.ElasticLoadBalancingV2TargetGroupTargetDescription where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,22 @@   ElasticLoadBalancingV2TargetGroupTargetDescription   { _elasticLoadBalancingV2TargetGroupTargetDescriptionId :: Val Text   , _elasticLoadBalancingV2TargetGroupTargetDescriptionPort :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticLoadBalancingV2TargetGroupTargetDescription where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 51, omitNothingFields = True }+  toJSON ElasticLoadBalancingV2TargetGroupTargetDescription{..} =+    object $+    catMaybes+    [ Just ("Id" .= _elasticLoadBalancingV2TargetGroupTargetDescriptionId)+    , ("Port" .=) <$> _elasticLoadBalancingV2TargetGroupTargetDescriptionPort+    ]  instance FromJSON ElasticLoadBalancingV2TargetGroupTargetDescription where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 51, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticLoadBalancingV2TargetGroupTargetDescription <$>+      obj .: "Id" <*>+      obj .:? "Port"+  parseJSON _ = mempty  -- | Constructor for 'ElasticLoadBalancingV2TargetGroupTargetDescription' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ElasticLoadBalancingV2TargetGroupTargetGroupAttribute.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetgroupattributes.html  module Stratosphere.ResourceProperties.ElasticLoadBalancingV2TargetGroupTargetGroupAttribute where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,22 @@   ElasticLoadBalancingV2TargetGroupTargetGroupAttribute   { _elasticLoadBalancingV2TargetGroupTargetGroupAttributeKey :: Maybe (Val Text)   , _elasticLoadBalancingV2TargetGroupTargetGroupAttributeValue :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticLoadBalancingV2TargetGroupTargetGroupAttribute where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 54, omitNothingFields = True }+  toJSON ElasticLoadBalancingV2TargetGroupTargetGroupAttribute{..} =+    object $+    catMaybes+    [ ("Key" .=) <$> _elasticLoadBalancingV2TargetGroupTargetGroupAttributeKey+    , ("Value" .=) <$> _elasticLoadBalancingV2TargetGroupTargetGroupAttributeValue+    ]  instance FromJSON ElasticLoadBalancingV2TargetGroupTargetGroupAttribute where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 54, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticLoadBalancingV2TargetGroupTargetGroupAttribute <$>+      obj .:? "Key" <*>+      obj .:? "Value"+  parseJSON _ = mempty  -- | Constructor for 'ElasticLoadBalancingV2TargetGroupTargetGroupAttribute' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ElasticsearchDomainEBSOptions.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html  module Stratosphere.ResourceProperties.ElasticsearchDomainEBSOptions where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,26 @@   , _elasticsearchDomainEBSOptionsIops :: Maybe (Val Integer')   , _elasticsearchDomainEBSOptionsVolumeSize :: Maybe (Val Integer')   , _elasticsearchDomainEBSOptionsVolumeType :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticsearchDomainEBSOptions where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  toJSON ElasticsearchDomainEBSOptions{..} =+    object $+    catMaybes+    [ ("EBSEnabled" .=) <$> _elasticsearchDomainEBSOptionsEBSEnabled+    , ("Iops" .=) <$> _elasticsearchDomainEBSOptionsIops+    , ("VolumeSize" .=) <$> _elasticsearchDomainEBSOptionsVolumeSize+    , ("VolumeType" .=) <$> _elasticsearchDomainEBSOptionsVolumeType+    ]  instance FromJSON ElasticsearchDomainEBSOptions where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticsearchDomainEBSOptions <$>+      obj .:? "EBSEnabled" <*>+      obj .:? "Iops" <*>+      obj .:? "VolumeSize" <*>+      obj .:? "VolumeType"+  parseJSON _ = mempty  -- | Constructor for 'ElasticsearchDomainEBSOptions' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/ElasticsearchDomainElasticsearchClusterConfig.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html  module Stratosphere.ResourceProperties.ElasticsearchDomainElasticsearchClusterConfig where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -26,13 +26,30 @@   , _elasticsearchDomainElasticsearchClusterConfigInstanceCount :: Maybe (Val Integer')   , _elasticsearchDomainElasticsearchClusterConfigInstanceType :: Maybe (Val Text)   , _elasticsearchDomainElasticsearchClusterConfigZoneAwarenessEnabled :: Maybe (Val Bool')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticsearchDomainElasticsearchClusterConfig where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 46, omitNothingFields = True }+  toJSON ElasticsearchDomainElasticsearchClusterConfig{..} =+    object $+    catMaybes+    [ ("DedicatedMasterCount" .=) <$> _elasticsearchDomainElasticsearchClusterConfigDedicatedMasterCount+    , ("DedicatedMasterEnabled" .=) <$> _elasticsearchDomainElasticsearchClusterConfigDedicatedMasterEnabled+    , ("DedicatedMasterType" .=) <$> _elasticsearchDomainElasticsearchClusterConfigDedicatedMasterType+    , ("InstanceCount" .=) <$> _elasticsearchDomainElasticsearchClusterConfigInstanceCount+    , ("InstanceType" .=) <$> _elasticsearchDomainElasticsearchClusterConfigInstanceType+    , ("ZoneAwarenessEnabled" .=) <$> _elasticsearchDomainElasticsearchClusterConfigZoneAwarenessEnabled+    ]  instance FromJSON ElasticsearchDomainElasticsearchClusterConfig where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 46, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticsearchDomainElasticsearchClusterConfig <$>+      obj .:? "DedicatedMasterCount" <*>+      obj .:? "DedicatedMasterEnabled" <*>+      obj .:? "DedicatedMasterType" <*>+      obj .:? "InstanceCount" <*>+      obj .:? "InstanceType" <*>+      obj .:? "ZoneAwarenessEnabled"+  parseJSON _ = mempty  -- | Constructor for 'ElasticsearchDomainElasticsearchClusterConfig' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/ElasticsearchDomainSnapshotOptions.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-snapshotoptions.html  module Stratosphere.ResourceProperties.ElasticsearchDomainSnapshotOptions where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data ElasticsearchDomainSnapshotOptions =   ElasticsearchDomainSnapshotOptions   { _elasticsearchDomainSnapshotOptionsAutomatedSnapshotStartHour :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticsearchDomainSnapshotOptions where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  toJSON ElasticsearchDomainSnapshotOptions{..} =+    object $+    catMaybes+    [ ("AutomatedSnapshotStartHour" .=) <$> _elasticsearchDomainSnapshotOptionsAutomatedSnapshotStartHour+    ]  instance FromJSON ElasticsearchDomainSnapshotOptions where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticsearchDomainSnapshotOptions <$>+      obj .:? "AutomatedSnapshotStartHour"+  parseJSON _ = mempty  -- | Constructor for 'ElasticsearchDomainSnapshotOptions' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/EventsRuleTarget.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html  module Stratosphere.ResourceProperties.EventsRuleTarget where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,26 @@   , _eventsRuleTargetId :: Val Text   , _eventsRuleTargetInput :: Maybe (Val Text)   , _eventsRuleTargetInputPath :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EventsRuleTarget where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  toJSON EventsRuleTarget{..} =+    object $+    catMaybes+    [ Just ("Arn" .= _eventsRuleTargetArn)+    , Just ("Id" .= _eventsRuleTargetId)+    , ("Input" .=) <$> _eventsRuleTargetInput+    , ("InputPath" .=) <$> _eventsRuleTargetInputPath+    ]  instance FromJSON EventsRuleTarget where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  parseJSON (Object obj) =+    EventsRuleTarget <$>+      obj .: "Arn" <*>+      obj .: "Id" <*>+      obj .:? "Input" <*>+      obj .:? "InputPath"+  parseJSON _ = mempty  -- | Constructor for 'EventsRuleTarget' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/GameLiftAliasRoutingStrategy.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-alias-routingstrategy.html  module Stratosphere.ResourceProperties.GameLiftAliasRoutingStrategy where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _gameLiftAliasRoutingStrategyFleetId :: Maybe (Val Text)   , _gameLiftAliasRoutingStrategyMessage :: Maybe (Val Text)   , _gameLiftAliasRoutingStrategyType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON GameLiftAliasRoutingStrategy where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  toJSON GameLiftAliasRoutingStrategy{..} =+    object $+    catMaybes+    [ ("FleetId" .=) <$> _gameLiftAliasRoutingStrategyFleetId+    , ("Message" .=) <$> _gameLiftAliasRoutingStrategyMessage+    , Just ("Type" .= _gameLiftAliasRoutingStrategyType)+    ]  instance FromJSON GameLiftAliasRoutingStrategy where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  parseJSON (Object obj) =+    GameLiftAliasRoutingStrategy <$>+      obj .:? "FleetId" <*>+      obj .:? "Message" <*>+      obj .: "Type"+  parseJSON _ = mempty  -- | Constructor for 'GameLiftAliasRoutingStrategy' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/GameLiftBuildS3Location.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-build-storagelocation.html  module Stratosphere.ResourceProperties.GameLiftBuildS3Location where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _gameLiftBuildS3LocationBucket :: Val Text   , _gameLiftBuildS3LocationKey :: Val Text   , _gameLiftBuildS3LocationRoleArn :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON GameLiftBuildS3Location where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  toJSON GameLiftBuildS3Location{..} =+    object $+    catMaybes+    [ Just ("Bucket" .= _gameLiftBuildS3LocationBucket)+    , Just ("Key" .= _gameLiftBuildS3LocationKey)+    , Just ("RoleArn" .= _gameLiftBuildS3LocationRoleArn)+    ]  instance FromJSON GameLiftBuildS3Location where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  parseJSON (Object obj) =+    GameLiftBuildS3Location <$>+      obj .: "Bucket" <*>+      obj .: "Key" <*>+      obj .: "RoleArn"+  parseJSON _ = mempty  -- | Constructor for 'GameLiftBuildS3Location' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/GameLiftFleetIpPermission.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-ec2inboundpermission.html  module Stratosphere.ResourceProperties.GameLiftFleetIpPermission where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,26 @@   , _gameLiftFleetIpPermissionIpRange :: Val Text   , _gameLiftFleetIpPermissionProtocol :: Val Text   , _gameLiftFleetIpPermissionToPort :: Val Integer'-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON GameLiftFleetIpPermission where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }+  toJSON GameLiftFleetIpPermission{..} =+    object $+    catMaybes+    [ Just ("FromPort" .= _gameLiftFleetIpPermissionFromPort)+    , Just ("IpRange" .= _gameLiftFleetIpPermissionIpRange)+    , Just ("Protocol" .= _gameLiftFleetIpPermissionProtocol)+    , Just ("ToPort" .= _gameLiftFleetIpPermissionToPort)+    ]  instance FromJSON GameLiftFleetIpPermission where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }+  parseJSON (Object obj) =+    GameLiftFleetIpPermission <$>+      obj .: "FromPort" <*>+      obj .: "IpRange" <*>+      obj .: "Protocol" <*>+      obj .: "ToPort"+  parseJSON _ = mempty  -- | Constructor for 'GameLiftFleetIpPermission' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/IAMGroupPolicy.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html  module Stratosphere.ResourceProperties.IAMGroupPolicy where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   IAMGroupPolicy   { _iAMGroupPolicyPolicyDocument :: Object   , _iAMGroupPolicyPolicyName :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IAMGroupPolicy where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  toJSON IAMGroupPolicy{..} =+    object $+    catMaybes+    [ Just ("PolicyDocument" .= _iAMGroupPolicyPolicyDocument)+    , Just ("PolicyName" .= _iAMGroupPolicyPolicyName)+    ]  instance FromJSON IAMGroupPolicy where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  parseJSON (Object obj) =+    IAMGroupPolicy <$>+      obj .: "PolicyDocument" <*>+      obj .: "PolicyName"+  parseJSON _ = mempty  -- | Constructor for 'IAMGroupPolicy' containing required fields as arguments. iamGroupPolicy
library-gen/Stratosphere/ResourceProperties/IAMRolePolicy.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html  module Stratosphere.ResourceProperties.IAMRolePolicy where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   IAMRolePolicy   { _iAMRolePolicyPolicyDocument :: Object   , _iAMRolePolicyPolicyName :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IAMRolePolicy where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  toJSON IAMRolePolicy{..} =+    object $+    catMaybes+    [ Just ("PolicyDocument" .= _iAMRolePolicyPolicyDocument)+    , Just ("PolicyName" .= _iAMRolePolicyPolicyName)+    ]  instance FromJSON IAMRolePolicy where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  parseJSON (Object obj) =+    IAMRolePolicy <$>+      obj .: "PolicyDocument" <*>+      obj .: "PolicyName"+  parseJSON _ = mempty  -- | Constructor for 'IAMRolePolicy' containing required fields as arguments. iamRolePolicy
library-gen/Stratosphere/ResourceProperties/IAMUserLoginProfile.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user-loginprofile.html  module Stratosphere.ResourceProperties.IAMUserLoginProfile where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   IAMUserLoginProfile   { _iAMUserLoginProfilePassword :: Val Text   , _iAMUserLoginProfilePasswordResetRequired :: Maybe (Val Bool')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IAMUserLoginProfile where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  toJSON IAMUserLoginProfile{..} =+    object $+    catMaybes+    [ Just ("Password" .= _iAMUserLoginProfilePassword)+    , ("PasswordResetRequired" .=) <$> _iAMUserLoginProfilePasswordResetRequired+    ]  instance FromJSON IAMUserLoginProfile where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  parseJSON (Object obj) =+    IAMUserLoginProfile <$>+      obj .: "Password" <*>+      obj .:? "PasswordResetRequired"+  parseJSON _ = mempty  -- | Constructor for 'IAMUserLoginProfile' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/IAMUserPolicy.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html  module Stratosphere.ResourceProperties.IAMUserPolicy where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   IAMUserPolicy   { _iAMUserPolicyPolicyDocument :: Object   , _iAMUserPolicyPolicyName :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IAMUserPolicy where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  toJSON IAMUserPolicy{..} =+    object $+    catMaybes+    [ Just ("PolicyDocument" .= _iAMUserPolicyPolicyDocument)+    , Just ("PolicyName" .= _iAMUserPolicyPolicyName)+    ]  instance FromJSON IAMUserPolicy where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  parseJSON (Object obj) =+    IAMUserPolicy <$>+      obj .: "PolicyDocument" <*>+      obj .: "PolicyName"+  parseJSON _ = mempty  -- | Constructor for 'IAMUserPolicy' containing required fields as arguments. iamUserPolicy
library-gen/Stratosphere/ResourceProperties/IoTThingAttributePayload.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-thing-attributepayload.html  module Stratosphere.ResourceProperties.IoTThingAttributePayload where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data IoTThingAttributePayload =   IoTThingAttributePayload   { _ioTThingAttributePayloadAttributes :: Maybe Object-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IoTThingAttributePayload where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 25, omitNothingFields = True }+  toJSON IoTThingAttributePayload{..} =+    object $+    catMaybes+    [ ("Attributes" .=) <$> _ioTThingAttributePayloadAttributes+    ]  instance FromJSON IoTThingAttributePayload where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 25, omitNothingFields = True }+  parseJSON (Object obj) =+    IoTThingAttributePayload <$>+      obj .:? "Attributes"+  parseJSON _ = mempty  -- | Constructor for 'IoTThingAttributePayload' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/IoTTopicRuleAction.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html  module Stratosphere.ResourceProperties.IoTTopicRuleAction where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.IoTTopicRuleCloudwatchAlarmAction@@ -39,13 +39,40 @@   , _ioTTopicRuleActionS3 :: Maybe IoTTopicRuleS3Action   , _ioTTopicRuleActionSns :: Maybe IoTTopicRuleSnsAction   , _ioTTopicRuleActionSqs :: Maybe IoTTopicRuleSqsAction-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IoTTopicRuleAction where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  toJSON IoTTopicRuleAction{..} =+    object $+    catMaybes+    [ ("CloudwatchAlarm" .=) <$> _ioTTopicRuleActionCloudwatchAlarm+    , ("CloudwatchMetric" .=) <$> _ioTTopicRuleActionCloudwatchMetric+    , ("DynamoDB" .=) <$> _ioTTopicRuleActionDynamoDB+    , ("Elasticsearch" .=) <$> _ioTTopicRuleActionElasticsearch+    , ("Firehose" .=) <$> _ioTTopicRuleActionFirehose+    , ("Kinesis" .=) <$> _ioTTopicRuleActionKinesis+    , ("Lambda" .=) <$> _ioTTopicRuleActionLambda+    , ("Republish" .=) <$> _ioTTopicRuleActionRepublish+    , ("S3" .=) <$> _ioTTopicRuleActionS3+    , ("Sns" .=) <$> _ioTTopicRuleActionSns+    , ("Sqs" .=) <$> _ioTTopicRuleActionSqs+    ]  instance FromJSON IoTTopicRuleAction where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  parseJSON (Object obj) =+    IoTTopicRuleAction <$>+      obj .:? "CloudwatchAlarm" <*>+      obj .:? "CloudwatchMetric" <*>+      obj .:? "DynamoDB" <*>+      obj .:? "Elasticsearch" <*>+      obj .:? "Firehose" <*>+      obj .:? "Kinesis" <*>+      obj .:? "Lambda" <*>+      obj .:? "Republish" <*>+      obj .:? "S3" <*>+      obj .:? "Sns" <*>+      obj .:? "Sqs"+  parseJSON _ = mempty  -- | Constructor for 'IoTTopicRuleAction' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/IoTTopicRuleCloudwatchAlarmAction.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchalarm.html  module Stratosphere.ResourceProperties.IoTTopicRuleCloudwatchAlarmAction where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,26 @@   , _ioTTopicRuleCloudwatchAlarmActionRoleArn :: Val Text   , _ioTTopicRuleCloudwatchAlarmActionStateReason :: Val Text   , _ioTTopicRuleCloudwatchAlarmActionStateValue :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IoTTopicRuleCloudwatchAlarmAction where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  toJSON IoTTopicRuleCloudwatchAlarmAction{..} =+    object $+    catMaybes+    [ Just ("AlarmName" .= _ioTTopicRuleCloudwatchAlarmActionAlarmName)+    , Just ("RoleArn" .= _ioTTopicRuleCloudwatchAlarmActionRoleArn)+    , Just ("StateReason" .= _ioTTopicRuleCloudwatchAlarmActionStateReason)+    , Just ("StateValue" .= _ioTTopicRuleCloudwatchAlarmActionStateValue)+    ]  instance FromJSON IoTTopicRuleCloudwatchAlarmAction where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  parseJSON (Object obj) =+    IoTTopicRuleCloudwatchAlarmAction <$>+      obj .: "AlarmName" <*>+      obj .: "RoleArn" <*>+      obj .: "StateReason" <*>+      obj .: "StateValue"+  parseJSON _ = mempty  -- | Constructor for 'IoTTopicRuleCloudwatchAlarmAction' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/IoTTopicRuleCloudwatchMetricAction.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchmetric.html  module Stratosphere.ResourceProperties.IoTTopicRuleCloudwatchMetricAction where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -24,13 +24,30 @@   , _ioTTopicRuleCloudwatchMetricActionMetricUnit :: Val Text   , _ioTTopicRuleCloudwatchMetricActionMetricValue :: Val Text   , _ioTTopicRuleCloudwatchMetricActionRoleArn :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IoTTopicRuleCloudwatchMetricAction where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  toJSON IoTTopicRuleCloudwatchMetricAction{..} =+    object $+    catMaybes+    [ Just ("MetricName" .= _ioTTopicRuleCloudwatchMetricActionMetricName)+    , Just ("MetricNamespace" .= _ioTTopicRuleCloudwatchMetricActionMetricNamespace)+    , ("MetricTimestamp" .=) <$> _ioTTopicRuleCloudwatchMetricActionMetricTimestamp+    , Just ("MetricUnit" .= _ioTTopicRuleCloudwatchMetricActionMetricUnit)+    , Just ("MetricValue" .= _ioTTopicRuleCloudwatchMetricActionMetricValue)+    , Just ("RoleArn" .= _ioTTopicRuleCloudwatchMetricActionRoleArn)+    ]  instance FromJSON IoTTopicRuleCloudwatchMetricAction where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  parseJSON (Object obj) =+    IoTTopicRuleCloudwatchMetricAction <$>+      obj .: "MetricName" <*>+      obj .: "MetricNamespace" <*>+      obj .:? "MetricTimestamp" <*>+      obj .: "MetricUnit" <*>+      obj .: "MetricValue" <*>+      obj .: "RoleArn"+  parseJSON _ = mempty  -- | Constructor for 'IoTTopicRuleCloudwatchMetricAction' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/IoTTopicRuleDynamoDBAction.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-dynamodb.html  module Stratosphere.ResourceProperties.IoTTopicRuleDynamoDBAction where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -25,13 +25,32 @@   , _ioTTopicRuleDynamoDBActionRangeKeyValue :: Val Text   , _ioTTopicRuleDynamoDBActionRoleArn :: Val Text   , _ioTTopicRuleDynamoDBActionTableName :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IoTTopicRuleDynamoDBAction where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  toJSON IoTTopicRuleDynamoDBAction{..} =+    object $+    catMaybes+    [ Just ("HashKeyField" .= _ioTTopicRuleDynamoDBActionHashKeyField)+    , Just ("HashKeyValue" .= _ioTTopicRuleDynamoDBActionHashKeyValue)+    , ("PayloadField" .=) <$> _ioTTopicRuleDynamoDBActionPayloadField+    , Just ("RangeKeyField" .= _ioTTopicRuleDynamoDBActionRangeKeyField)+    , Just ("RangeKeyValue" .= _ioTTopicRuleDynamoDBActionRangeKeyValue)+    , Just ("RoleArn" .= _ioTTopicRuleDynamoDBActionRoleArn)+    , Just ("TableName" .= _ioTTopicRuleDynamoDBActionTableName)+    ]  instance FromJSON IoTTopicRuleDynamoDBAction where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  parseJSON (Object obj) =+    IoTTopicRuleDynamoDBAction <$>+      obj .: "HashKeyField" <*>+      obj .: "HashKeyValue" <*>+      obj .:? "PayloadField" <*>+      obj .: "RangeKeyField" <*>+      obj .: "RangeKeyValue" <*>+      obj .: "RoleArn" <*>+      obj .: "TableName"+  parseJSON _ = mempty  -- | Constructor for 'IoTTopicRuleDynamoDBAction' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/IoTTopicRuleElasticsearchAction.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-elasticsearch.html  module Stratosphere.ResourceProperties.IoTTopicRuleElasticsearchAction where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -23,13 +23,28 @@   , _ioTTopicRuleElasticsearchActionIndex :: Val Text   , _ioTTopicRuleElasticsearchActionRoleArn :: Val Text   , _ioTTopicRuleElasticsearchActionType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IoTTopicRuleElasticsearchAction where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 32, omitNothingFields = True }+  toJSON IoTTopicRuleElasticsearchAction{..} =+    object $+    catMaybes+    [ Just ("Endpoint" .= _ioTTopicRuleElasticsearchActionEndpoint)+    , Just ("Id" .= _ioTTopicRuleElasticsearchActionId)+    , Just ("Index" .= _ioTTopicRuleElasticsearchActionIndex)+    , Just ("RoleArn" .= _ioTTopicRuleElasticsearchActionRoleArn)+    , Just ("Type" .= _ioTTopicRuleElasticsearchActionType)+    ]  instance FromJSON IoTTopicRuleElasticsearchAction where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 32, omitNothingFields = True }+  parseJSON (Object obj) =+    IoTTopicRuleElasticsearchAction <$>+      obj .: "Endpoint" <*>+      obj .: "Id" <*>+      obj .: "Index" <*>+      obj .: "RoleArn" <*>+      obj .: "Type"+  parseJSON _ = mempty  -- | Constructor for 'IoTTopicRuleElasticsearchAction' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/IoTTopicRuleFirehoseAction.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-firehose.html  module Stratosphere.ResourceProperties.IoTTopicRuleFirehoseAction where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _ioTTopicRuleFirehoseActionDeliveryStreamName :: Val Text   , _ioTTopicRuleFirehoseActionRoleArn :: Val Text   , _ioTTopicRuleFirehoseActionSeparator :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IoTTopicRuleFirehoseAction where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  toJSON IoTTopicRuleFirehoseAction{..} =+    object $+    catMaybes+    [ Just ("DeliveryStreamName" .= _ioTTopicRuleFirehoseActionDeliveryStreamName)+    , Just ("RoleArn" .= _ioTTopicRuleFirehoseActionRoleArn)+    , ("Separator" .=) <$> _ioTTopicRuleFirehoseActionSeparator+    ]  instance FromJSON IoTTopicRuleFirehoseAction where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  parseJSON (Object obj) =+    IoTTopicRuleFirehoseAction <$>+      obj .: "DeliveryStreamName" <*>+      obj .: "RoleArn" <*>+      obj .:? "Separator"+  parseJSON _ = mempty  -- | Constructor for 'IoTTopicRuleFirehoseAction' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/IoTTopicRuleKinesisAction.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-kinesis.html  module Stratosphere.ResourceProperties.IoTTopicRuleKinesisAction where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _ioTTopicRuleKinesisActionPartitionKey :: Maybe (Val Text)   , _ioTTopicRuleKinesisActionRoleArn :: Val Text   , _ioTTopicRuleKinesisActionStreamName :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IoTTopicRuleKinesisAction where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }+  toJSON IoTTopicRuleKinesisAction{..} =+    object $+    catMaybes+    [ ("PartitionKey" .=) <$> _ioTTopicRuleKinesisActionPartitionKey+    , Just ("RoleArn" .= _ioTTopicRuleKinesisActionRoleArn)+    , Just ("StreamName" .= _ioTTopicRuleKinesisActionStreamName)+    ]  instance FromJSON IoTTopicRuleKinesisAction where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }+  parseJSON (Object obj) =+    IoTTopicRuleKinesisAction <$>+      obj .:? "PartitionKey" <*>+      obj .: "RoleArn" <*>+      obj .: "StreamName"+  parseJSON _ = mempty  -- | Constructor for 'IoTTopicRuleKinesisAction' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/IoTTopicRuleLambdaAction.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-lambda.html  module Stratosphere.ResourceProperties.IoTTopicRuleLambdaAction where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data IoTTopicRuleLambdaAction =   IoTTopicRuleLambdaAction   { _ioTTopicRuleLambdaActionFunctionArn :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IoTTopicRuleLambdaAction where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 25, omitNothingFields = True }+  toJSON IoTTopicRuleLambdaAction{..} =+    object $+    catMaybes+    [ Just ("FunctionArn" .= _ioTTopicRuleLambdaActionFunctionArn)+    ]  instance FromJSON IoTTopicRuleLambdaAction where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 25, omitNothingFields = True }+  parseJSON (Object obj) =+    IoTTopicRuleLambdaAction <$>+      obj .: "FunctionArn"+  parseJSON _ = mempty  -- | Constructor for 'IoTTopicRuleLambdaAction' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/IoTTopicRuleRepublishAction.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-republish.html  module Stratosphere.ResourceProperties.IoTTopicRuleRepublishAction where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   IoTTopicRuleRepublishAction   { _ioTTopicRuleRepublishActionRoleArn :: Val Text   , _ioTTopicRuleRepublishActionTopic :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IoTTopicRuleRepublishAction where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON IoTTopicRuleRepublishAction{..} =+    object $+    catMaybes+    [ Just ("RoleArn" .= _ioTTopicRuleRepublishActionRoleArn)+    , Just ("Topic" .= _ioTTopicRuleRepublishActionTopic)+    ]  instance FromJSON IoTTopicRuleRepublishAction where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    IoTTopicRuleRepublishAction <$>+      obj .: "RoleArn" <*>+      obj .: "Topic"+  parseJSON _ = mempty  -- | Constructor for 'IoTTopicRuleRepublishAction' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/IoTTopicRuleS3Action.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-s3.html  module Stratosphere.ResourceProperties.IoTTopicRuleS3Action where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _ioTTopicRuleS3ActionBucketName :: Val Text   , _ioTTopicRuleS3ActionKey :: Val Text   , _ioTTopicRuleS3ActionRoleArn :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IoTTopicRuleS3Action where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  toJSON IoTTopicRuleS3Action{..} =+    object $+    catMaybes+    [ Just ("BucketName" .= _ioTTopicRuleS3ActionBucketName)+    , Just ("Key" .= _ioTTopicRuleS3ActionKey)+    , Just ("RoleArn" .= _ioTTopicRuleS3ActionRoleArn)+    ]  instance FromJSON IoTTopicRuleS3Action where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  parseJSON (Object obj) =+    IoTTopicRuleS3Action <$>+      obj .: "BucketName" <*>+      obj .: "Key" <*>+      obj .: "RoleArn"+  parseJSON _ = mempty  -- | Constructor for 'IoTTopicRuleS3Action' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/IoTTopicRuleSnsAction.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-sns.html  module Stratosphere.ResourceProperties.IoTTopicRuleSnsAction where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _ioTTopicRuleSnsActionMessageFormat :: Maybe (Val Text)   , _ioTTopicRuleSnsActionRoleArn :: Val Text   , _ioTTopicRuleSnsActionTargetArn :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IoTTopicRuleSnsAction where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 22, omitNothingFields = True }+  toJSON IoTTopicRuleSnsAction{..} =+    object $+    catMaybes+    [ ("MessageFormat" .=) <$> _ioTTopicRuleSnsActionMessageFormat+    , Just ("RoleArn" .= _ioTTopicRuleSnsActionRoleArn)+    , Just ("TargetArn" .= _ioTTopicRuleSnsActionTargetArn)+    ]  instance FromJSON IoTTopicRuleSnsAction where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 22, omitNothingFields = True }+  parseJSON (Object obj) =+    IoTTopicRuleSnsAction <$>+      obj .:? "MessageFormat" <*>+      obj .: "RoleArn" <*>+      obj .: "TargetArn"+  parseJSON _ = mempty  -- | Constructor for 'IoTTopicRuleSnsAction' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/IoTTopicRuleSqsAction.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-sqs.html  module Stratosphere.ResourceProperties.IoTTopicRuleSqsAction where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _ioTTopicRuleSqsActionQueueUrl :: Val Text   , _ioTTopicRuleSqsActionRoleArn :: Val Text   , _ioTTopicRuleSqsActionUseBase64 :: Maybe (Val Bool')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IoTTopicRuleSqsAction where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 22, omitNothingFields = True }+  toJSON IoTTopicRuleSqsAction{..} =+    object $+    catMaybes+    [ Just ("QueueUrl" .= _ioTTopicRuleSqsActionQueueUrl)+    , Just ("RoleArn" .= _ioTTopicRuleSqsActionRoleArn)+    , ("UseBase64" .=) <$> _ioTTopicRuleSqsActionUseBase64+    ]  instance FromJSON IoTTopicRuleSqsAction where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 22, omitNothingFields = True }+  parseJSON (Object obj) =+    IoTTopicRuleSqsAction <$>+      obj .: "QueueUrl" <*>+      obj .: "RoleArn" <*>+      obj .:? "UseBase64"+  parseJSON _ = mempty  -- | Constructor for 'IoTTopicRuleSqsAction' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/IoTTopicRuleTopicRulePayload.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrulepayload.html  module Stratosphere.ResourceProperties.IoTTopicRuleTopicRulePayload where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.IoTTopicRuleAction@@ -23,13 +23,28 @@   , _ioTTopicRuleTopicRulePayloadDescription :: Maybe (Val Text)   , _ioTTopicRuleTopicRulePayloadRuleDisabled :: Val Bool'   , _ioTTopicRuleTopicRulePayloadSql :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IoTTopicRuleTopicRulePayload where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  toJSON IoTTopicRuleTopicRulePayload{..} =+    object $+    catMaybes+    [ Just ("Actions" .= _ioTTopicRuleTopicRulePayloadActions)+    , ("AwsIotSqlVersion" .=) <$> _ioTTopicRuleTopicRulePayloadAwsIotSqlVersion+    , ("Description" .=) <$> _ioTTopicRuleTopicRulePayloadDescription+    , Just ("RuleDisabled" .= _ioTTopicRuleTopicRulePayloadRuleDisabled)+    , Just ("Sql" .= _ioTTopicRuleTopicRulePayloadSql)+    ]  instance FromJSON IoTTopicRuleTopicRulePayload where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  parseJSON (Object obj) =+    IoTTopicRuleTopicRulePayload <$>+      obj .: "Actions" <*>+      obj .:? "AwsIotSqlVersion" <*>+      obj .:? "Description" <*>+      obj .: "RuleDisabled" <*>+      obj .: "Sql"+  parseJSON _ = mempty  -- | Constructor for 'IoTTopicRuleTopicRulePayload' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamBufferingHints.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-bufferinghints.html  module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamBufferingHints where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,22 @@   KinesisFirehoseDeliveryStreamBufferingHints   { _kinesisFirehoseDeliveryStreamBufferingHintsIntervalInSeconds :: Val Integer'   , _kinesisFirehoseDeliveryStreamBufferingHintsSizeInMBs :: Val Integer'-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON KinesisFirehoseDeliveryStreamBufferingHints where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 44, omitNothingFields = True }+  toJSON KinesisFirehoseDeliveryStreamBufferingHints{..} =+    object $+    catMaybes+    [ Just ("IntervalInSeconds" .= _kinesisFirehoseDeliveryStreamBufferingHintsIntervalInSeconds)+    , Just ("SizeInMBs" .= _kinesisFirehoseDeliveryStreamBufferingHintsSizeInMBs)+    ]  instance FromJSON KinesisFirehoseDeliveryStreamBufferingHints where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 44, omitNothingFields = True }+  parseJSON (Object obj) =+    KinesisFirehoseDeliveryStreamBufferingHints <$>+      obj .: "IntervalInSeconds" <*>+      obj .: "SizeInMBs"+  parseJSON _ = mempty  -- | Constructor for 'KinesisFirehoseDeliveryStreamBufferingHints' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-destination-cloudwatchloggingoptions.html  module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -23,13 +23,24 @@   { _kinesisFirehoseDeliveryStreamCloudWatchLoggingOptionsEnabled :: Maybe (Val Bool')   , _kinesisFirehoseDeliveryStreamCloudWatchLoggingOptionsLogGroupName :: Maybe (Val Text)   , _kinesisFirehoseDeliveryStreamCloudWatchLoggingOptionsLogStreamName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 54, omitNothingFields = True }+  toJSON KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions{..} =+    object $+    catMaybes+    [ ("Enabled" .=) <$> _kinesisFirehoseDeliveryStreamCloudWatchLoggingOptionsEnabled+    , ("LogGroupName" .=) <$> _kinesisFirehoseDeliveryStreamCloudWatchLoggingOptionsLogGroupName+    , ("LogStreamName" .=) <$> _kinesisFirehoseDeliveryStreamCloudWatchLoggingOptionsLogStreamName+    ]  instance FromJSON KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 54, omitNothingFields = True }+  parseJSON (Object obj) =+    KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions <$>+      obj .:? "Enabled" <*>+      obj .:? "LogGroupName" <*>+      obj .:? "LogStreamName"+  parseJSON _ = mempty  -- | Constructor for 'KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamCopyCommand.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration-copycommand.html  module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamCopyCommand where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,24 @@   { _kinesisFirehoseDeliveryStreamCopyCommandCopyOptions :: Maybe (Val Text)   , _kinesisFirehoseDeliveryStreamCopyCommandDataTableColumns :: Maybe (Val Text)   , _kinesisFirehoseDeliveryStreamCopyCommandDataTableName :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON KinesisFirehoseDeliveryStreamCopyCommand where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 41, omitNothingFields = True }+  toJSON KinesisFirehoseDeliveryStreamCopyCommand{..} =+    object $+    catMaybes+    [ ("CopyOptions" .=) <$> _kinesisFirehoseDeliveryStreamCopyCommandCopyOptions+    , ("DataTableColumns" .=) <$> _kinesisFirehoseDeliveryStreamCopyCommandDataTableColumns+    , Just ("DataTableName" .= _kinesisFirehoseDeliveryStreamCopyCommandDataTableName)+    ]  instance FromJSON KinesisFirehoseDeliveryStreamCopyCommand where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 41, omitNothingFields = True }+  parseJSON (Object obj) =+    KinesisFirehoseDeliveryStreamCopyCommand <$>+      obj .:? "CopyOptions" <*>+      obj .:? "DataTableColumns" <*>+      obj .: "DataTableName"+  parseJSON _ = mempty  -- | Constructor for 'KinesisFirehoseDeliveryStreamCopyCommand' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchBufferingHints.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration.html  module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamElasticsearchBufferingHints where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,22 @@   KinesisFirehoseDeliveryStreamElasticsearchBufferingHints   { _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsIntervalInSeconds :: Val Integer'   , _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsSizeInMBs :: Val Integer'-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON KinesisFirehoseDeliveryStreamElasticsearchBufferingHints where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 57, omitNothingFields = True }+  toJSON KinesisFirehoseDeliveryStreamElasticsearchBufferingHints{..} =+    object $+    catMaybes+    [ Just ("IntervalInSeconds" .= _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsIntervalInSeconds)+    , Just ("SizeInMBs" .= _kinesisFirehoseDeliveryStreamElasticsearchBufferingHintsSizeInMBs)+    ]  instance FromJSON KinesisFirehoseDeliveryStreamElasticsearchBufferingHints where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 57, omitNothingFields = True }+  parseJSON (Object obj) =+    KinesisFirehoseDeliveryStreamElasticsearchBufferingHints <$>+      obj .: "IntervalInSeconds" <*>+      obj .: "SizeInMBs"+  parseJSON _ = mempty  -- | Constructor for -- | 'KinesisFirehoseDeliveryStreamElasticsearchBufferingHints' containing
library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration.html  module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.Types@@ -34,13 +34,38 @@   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3BackupMode :: Val KinesisFirehoseElasticsearchS3BackupMode   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3Configuration :: KinesisFirehoseDeliveryStreamS3DestinationConfiguration   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationTypeName :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 67, omitNothingFields = True }+  toJSON KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration{..} =+    object $+    catMaybes+    [ Just ("BufferingHints" .= _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationBufferingHints)+    , ("CloudWatchLoggingOptions" .=) <$> _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationCloudWatchLoggingOptions+    , Just ("DomainARN" .= _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationDomainARN)+    , Just ("IndexName" .= _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexName)+    , Just ("IndexRotationPeriod" .= _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationIndexRotationPeriod)+    , Just ("RetryOptions" .= _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRetryOptions)+    , Just ("RoleARN" .= _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationRoleARN)+    , Just ("S3BackupMode" .= _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3BackupMode)+    , Just ("S3Configuration" .= _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationS3Configuration)+    , Just ("TypeName" .= _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfigurationTypeName)+    ]  instance FromJSON KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 67, omitNothingFields = True }+  parseJSON (Object obj) =+    KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration <$>+      obj .: "BufferingHints" <*>+      obj .:? "CloudWatchLoggingOptions" <*>+      obj .: "DomainARN" <*>+      obj .: "IndexName" <*>+      obj .: "IndexRotationPeriod" <*>+      obj .: "RetryOptions" <*>+      obj .: "RoleARN" <*>+      obj .: "S3BackupMode" <*>+      obj .: "S3Configuration" <*>+      obj .: "TypeName"+  parseJSON _ = mempty  -- | Constructor for -- | 'KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration'
library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamElasticsearchRetryOptions.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-elasticsearchdestinationconfiguration-retryoptions.html  module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamElasticsearchRetryOptions where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,20 @@ data KinesisFirehoseDeliveryStreamElasticsearchRetryOptions =   KinesisFirehoseDeliveryStreamElasticsearchRetryOptions   { _kinesisFirehoseDeliveryStreamElasticsearchRetryOptionsDurationInSeconds :: Val Integer'-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON KinesisFirehoseDeliveryStreamElasticsearchRetryOptions where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 55, omitNothingFields = True }+  toJSON KinesisFirehoseDeliveryStreamElasticsearchRetryOptions{..} =+    object $+    catMaybes+    [ Just ("DurationInSeconds" .= _kinesisFirehoseDeliveryStreamElasticsearchRetryOptionsDurationInSeconds)+    ]  instance FromJSON KinesisFirehoseDeliveryStreamElasticsearchRetryOptions where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 55, omitNothingFields = True }+  parseJSON (Object obj) =+    KinesisFirehoseDeliveryStreamElasticsearchRetryOptions <$>+      obj .: "DurationInSeconds"+  parseJSON _ = mempty  -- | Constructor for 'KinesisFirehoseDeliveryStreamElasticsearchRetryOptions' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamEncryptionConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-encryptionconfiguration.html  module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamEncryptionConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.Types@@ -23,13 +23,22 @@   KinesisFirehoseDeliveryStreamEncryptionConfiguration   { _kinesisFirehoseDeliveryStreamEncryptionConfigurationKMSEncryptionConfig :: Maybe KinesisFirehoseDeliveryStreamKMSEncryptionConfig   , _kinesisFirehoseDeliveryStreamEncryptionConfigurationNoEncryptionConfig :: Maybe (Val KinesisFirehoseNoEncryptionConfig)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON KinesisFirehoseDeliveryStreamEncryptionConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 53, omitNothingFields = True }+  toJSON KinesisFirehoseDeliveryStreamEncryptionConfiguration{..} =+    object $+    catMaybes+    [ ("KMSEncryptionConfig" .=) <$> _kinesisFirehoseDeliveryStreamEncryptionConfigurationKMSEncryptionConfig+    , ("NoEncryptionConfig" .=) <$> _kinesisFirehoseDeliveryStreamEncryptionConfigurationNoEncryptionConfig+    ]  instance FromJSON KinesisFirehoseDeliveryStreamEncryptionConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 53, omitNothingFields = True }+  parseJSON (Object obj) =+    KinesisFirehoseDeliveryStreamEncryptionConfiguration <$>+      obj .:? "KMSEncryptionConfig" <*>+      obj .:? "NoEncryptionConfig"+  parseJSON _ = mempty  -- | Constructor for 'KinesisFirehoseDeliveryStreamEncryptionConfiguration' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamKMSEncryptionConfig.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration-encryptionconfiguration-kmsencryptionconfig.html  module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamKMSEncryptionConfig where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,20 @@ data KinesisFirehoseDeliveryStreamKMSEncryptionConfig =   KinesisFirehoseDeliveryStreamKMSEncryptionConfig   { _kinesisFirehoseDeliveryStreamKMSEncryptionConfigAWSKMSKeyARN :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON KinesisFirehoseDeliveryStreamKMSEncryptionConfig where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 49, omitNothingFields = True }+  toJSON KinesisFirehoseDeliveryStreamKMSEncryptionConfig{..} =+    object $+    catMaybes+    [ Just ("AWSKMSKeyARN" .= _kinesisFirehoseDeliveryStreamKMSEncryptionConfigAWSKMSKeyARN)+    ]  instance FromJSON KinesisFirehoseDeliveryStreamKMSEncryptionConfig where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 49, omitNothingFields = True }+  parseJSON (Object obj) =+    KinesisFirehoseDeliveryStreamKMSEncryptionConfig <$>+      obj .: "AWSKMSKeyARN"+  parseJSON _ = mempty  -- | Constructor for 'KinesisFirehoseDeliveryStreamKMSEncryptionConfig' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-redshiftdestinationconfiguration.html  module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamCloudWatchLoggingOptions@@ -29,13 +29,32 @@   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationRoleARN :: Val Text   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationS3Configuration :: KinesisFirehoseDeliveryStreamS3DestinationConfiguration   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationUsername :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 62, omitNothingFields = True }+  toJSON KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration{..} =+    object $+    catMaybes+    [ ("CloudWatchLoggingOptions" .=) <$> _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationCloudWatchLoggingOptions+    , Just ("ClusterJDBCURL" .= _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationClusterJDBCURL)+    , Just ("CopyCommand" .= _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationCopyCommand)+    , Just ("Password" .= _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationPassword)+    , Just ("RoleARN" .= _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationRoleARN)+    , Just ("S3Configuration" .= _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationS3Configuration)+    , Just ("Username" .= _kinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationUsername)+    ]  instance FromJSON KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 62, omitNothingFields = True }+  parseJSON (Object obj) =+    KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration <$>+      obj .:? "CloudWatchLoggingOptions" <*>+      obj .: "ClusterJDBCURL" <*>+      obj .: "CopyCommand" <*>+      obj .: "Password" <*>+      obj .: "RoleARN" <*>+      obj .: "S3Configuration" <*>+      obj .: "Username"+  parseJSON _ = mempty  -- | Constructor for -- | 'KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration'
library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamS3DestinationConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration.html  module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamS3DestinationConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.Types@@ -30,13 +30,32 @@   , _kinesisFirehoseDeliveryStreamS3DestinationConfigurationEncryptionConfiguration :: Maybe KinesisFirehoseDeliveryStreamEncryptionConfiguration   , _kinesisFirehoseDeliveryStreamS3DestinationConfigurationPrefix :: Val Text   , _kinesisFirehoseDeliveryStreamS3DestinationConfigurationRoleARN :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON KinesisFirehoseDeliveryStreamS3DestinationConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 56, omitNothingFields = True }+  toJSON KinesisFirehoseDeliveryStreamS3DestinationConfiguration{..} =+    object $+    catMaybes+    [ Just ("BucketARN" .= _kinesisFirehoseDeliveryStreamS3DestinationConfigurationBucketARN)+    , Just ("BufferingHints" .= _kinesisFirehoseDeliveryStreamS3DestinationConfigurationBufferingHints)+    , ("CloudWatchLoggingOptions" .=) <$> _kinesisFirehoseDeliveryStreamS3DestinationConfigurationCloudWatchLoggingOptions+    , Just ("CompressionFormat" .= _kinesisFirehoseDeliveryStreamS3DestinationConfigurationCompressionFormat)+    , ("EncryptionConfiguration" .=) <$> _kinesisFirehoseDeliveryStreamS3DestinationConfigurationEncryptionConfiguration+    , Just ("Prefix" .= _kinesisFirehoseDeliveryStreamS3DestinationConfigurationPrefix)+    , Just ("RoleARN" .= _kinesisFirehoseDeliveryStreamS3DestinationConfigurationRoleARN)+    ]  instance FromJSON KinesisFirehoseDeliveryStreamS3DestinationConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 56, omitNothingFields = True }+  parseJSON (Object obj) =+    KinesisFirehoseDeliveryStreamS3DestinationConfiguration <$>+      obj .: "BucketARN" <*>+      obj .: "BufferingHints" <*>+      obj .:? "CloudWatchLoggingOptions" <*>+      obj .: "CompressionFormat" <*>+      obj .:? "EncryptionConfiguration" <*>+      obj .: "Prefix" <*>+      obj .: "RoleARN"+  parseJSON _ = mempty  -- | Constructor for 'KinesisFirehoseDeliveryStreamS3DestinationConfiguration' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/LambdaFunctionCode.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html  module Stratosphere.ResourceProperties.LambdaFunctionCode where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,26 @@   , _lambdaFunctionCodeS3Key :: Maybe (Val Text)   , _lambdaFunctionCodeS3ObjectVersion :: Maybe (Val Text)   , _lambdaFunctionCodeZipFile :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON LambdaFunctionCode where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  toJSON LambdaFunctionCode{..} =+    object $+    catMaybes+    [ ("S3Bucket" .=) <$> _lambdaFunctionCodeS3Bucket+    , ("S3Key" .=) <$> _lambdaFunctionCodeS3Key+    , ("S3ObjectVersion" .=) <$> _lambdaFunctionCodeS3ObjectVersion+    , ("ZipFile" .=) <$> _lambdaFunctionCodeZipFile+    ]  instance FromJSON LambdaFunctionCode where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  parseJSON (Object obj) =+    LambdaFunctionCode <$>+      obj .:? "S3Bucket" <*>+      obj .:? "S3Key" <*>+      obj .:? "S3ObjectVersion" <*>+      obj .:? "ZipFile"+  parseJSON _ = mempty  -- | Constructor for 'LambdaFunctionCode' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/LambdaFunctionEnvironment.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html  module Stratosphere.ResourceProperties.LambdaFunctionEnvironment where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data LambdaFunctionEnvironment =   LambdaFunctionEnvironment   { _lambdaFunctionEnvironmentVariables :: Maybe Object-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON LambdaFunctionEnvironment where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }+  toJSON LambdaFunctionEnvironment{..} =+    object $+    catMaybes+    [ ("Variables" .=) <$> _lambdaFunctionEnvironmentVariables+    ]  instance FromJSON LambdaFunctionEnvironment where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }+  parseJSON (Object obj) =+    LambdaFunctionEnvironment <$>+      obj .:? "Variables"+  parseJSON _ = mempty  -- | Constructor for 'LambdaFunctionEnvironment' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/LambdaFunctionVpcConfig.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html  module Stratosphere.ResourceProperties.LambdaFunctionVpcConfig where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   LambdaFunctionVpcConfig   { _lambdaFunctionVpcConfigSecurityGroupIds :: [Val Text]   , _lambdaFunctionVpcConfigSubnetIds :: [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON LambdaFunctionVpcConfig where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  toJSON LambdaFunctionVpcConfig{..} =+    object $+    catMaybes+    [ Just ("SecurityGroupIds" .= _lambdaFunctionVpcConfigSecurityGroupIds)+    , Just ("SubnetIds" .= _lambdaFunctionVpcConfigSubnetIds)+    ]  instance FromJSON LambdaFunctionVpcConfig where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  parseJSON (Object obj) =+    LambdaFunctionVpcConfig <$>+      obj .: "SecurityGroupIds" <*>+      obj .: "SubnetIds"+  parseJSON _ = mempty  -- | Constructor for 'LambdaFunctionVpcConfig' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/LogsMetricFilterMetricTransformation.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html  module Stratosphere.ResourceProperties.LogsMetricFilterMetricTransformation where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _logsMetricFilterMetricTransformationMetricName :: Val Text   , _logsMetricFilterMetricTransformationMetricNamespace :: Val Text   , _logsMetricFilterMetricTransformationMetricValue :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON LogsMetricFilterMetricTransformation where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 37, omitNothingFields = True }+  toJSON LogsMetricFilterMetricTransformation{..} =+    object $+    catMaybes+    [ Just ("MetricName" .= _logsMetricFilterMetricTransformationMetricName)+    , Just ("MetricNamespace" .= _logsMetricFilterMetricTransformationMetricNamespace)+    , Just ("MetricValue" .= _logsMetricFilterMetricTransformationMetricValue)+    ]  instance FromJSON LogsMetricFilterMetricTransformation where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 37, omitNothingFields = True }+  parseJSON (Object obj) =+    LogsMetricFilterMetricTransformation <$>+      obj .: "MetricName" <*>+      obj .: "MetricNamespace" <*>+      obj .: "MetricValue"+  parseJSON _ = mempty  -- | Constructor for 'LogsMetricFilterMetricTransformation' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/OpsWorksAppDataSource.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-datasource.html  module Stratosphere.ResourceProperties.OpsWorksAppDataSource where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _opsWorksAppDataSourceArn :: Maybe (Val Text)   , _opsWorksAppDataSourceDatabaseName :: Maybe (Val Text)   , _opsWorksAppDataSourceType :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksAppDataSource where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 22, omitNothingFields = True }+  toJSON OpsWorksAppDataSource{..} =+    object $+    catMaybes+    [ ("Arn" .=) <$> _opsWorksAppDataSourceArn+    , ("DatabaseName" .=) <$> _opsWorksAppDataSourceDatabaseName+    , ("Type" .=) <$> _opsWorksAppDataSourceType+    ]  instance FromJSON OpsWorksAppDataSource where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 22, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksAppDataSource <$>+      obj .:? "Arn" <*>+      obj .:? "DatabaseName" <*>+      obj .:? "Type"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksAppDataSource' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/OpsWorksAppEnvironmentVariable.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-environment.html  module Stratosphere.ResourceProperties.OpsWorksAppEnvironmentVariable where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _opsWorksAppEnvironmentVariableKey :: Val Text   , _opsWorksAppEnvironmentVariableSecure :: Maybe (Val Bool')   , _opsWorksAppEnvironmentVariableValue :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksAppEnvironmentVariable where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  toJSON OpsWorksAppEnvironmentVariable{..} =+    object $+    catMaybes+    [ Just ("Key" .= _opsWorksAppEnvironmentVariableKey)+    , ("Secure" .=) <$> _opsWorksAppEnvironmentVariableSecure+    , Just ("Value" .= _opsWorksAppEnvironmentVariableValue)+    ]  instance FromJSON OpsWorksAppEnvironmentVariable where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksAppEnvironmentVariable <$>+      obj .: "Key" <*>+      obj .:? "Secure" <*>+      obj .: "Value"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksAppEnvironmentVariable' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/OpsWorksAppSource.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source.html  module Stratosphere.ResourceProperties.OpsWorksAppSource where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -24,13 +24,30 @@   , _opsWorksAppSourceType :: Maybe (Val Text)   , _opsWorksAppSourceUrl :: Maybe (Val Text)   , _opsWorksAppSourceUsername :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksAppSource where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 18, omitNothingFields = True }+  toJSON OpsWorksAppSource{..} =+    object $+    catMaybes+    [ ("Password" .=) <$> _opsWorksAppSourcePassword+    , ("Revision" .=) <$> _opsWorksAppSourceRevision+    , ("SshKey" .=) <$> _opsWorksAppSourceSshKey+    , ("Type" .=) <$> _opsWorksAppSourceType+    , ("Url" .=) <$> _opsWorksAppSourceUrl+    , ("Username" .=) <$> _opsWorksAppSourceUsername+    ]  instance FromJSON OpsWorksAppSource where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 18, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksAppSource <$>+      obj .:? "Password" <*>+      obj .:? "Revision" <*>+      obj .:? "SshKey" <*>+      obj .:? "Type" <*>+      obj .:? "Url" <*>+      obj .:? "Username"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksAppSource' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/OpsWorksAppSslConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-sslconfiguration.html  module Stratosphere.ResourceProperties.OpsWorksAppSslConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _opsWorksAppSslConfigurationCertificate :: Maybe (Val Text)   , _opsWorksAppSslConfigurationChain :: Maybe (Val Text)   , _opsWorksAppSslConfigurationPrivateKey :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksAppSslConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON OpsWorksAppSslConfiguration{..} =+    object $+    catMaybes+    [ ("Certificate" .=) <$> _opsWorksAppSslConfigurationCertificate+    , ("Chain" .=) <$> _opsWorksAppSslConfigurationChain+    , ("PrivateKey" .=) <$> _opsWorksAppSslConfigurationPrivateKey+    ]  instance FromJSON OpsWorksAppSslConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksAppSslConfiguration <$>+      obj .:? "Certificate" <*>+      obj .:? "Chain" <*>+      obj .:? "PrivateKey"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksAppSslConfiguration' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/OpsWorksInstanceBlockDeviceMapping.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-blockdevicemapping.html  module Stratosphere.ResourceProperties.OpsWorksInstanceBlockDeviceMapping where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.OpsWorksInstanceEbsBlockDevice@@ -22,13 +22,26 @@   , _opsWorksInstanceBlockDeviceMappingEbs :: Maybe OpsWorksInstanceEbsBlockDevice   , _opsWorksInstanceBlockDeviceMappingNoDevice :: Maybe (Val Text)   , _opsWorksInstanceBlockDeviceMappingVirtualName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksInstanceBlockDeviceMapping where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  toJSON OpsWorksInstanceBlockDeviceMapping{..} =+    object $+    catMaybes+    [ ("DeviceName" .=) <$> _opsWorksInstanceBlockDeviceMappingDeviceName+    , ("Ebs" .=) <$> _opsWorksInstanceBlockDeviceMappingEbs+    , ("NoDevice" .=) <$> _opsWorksInstanceBlockDeviceMappingNoDevice+    , ("VirtualName" .=) <$> _opsWorksInstanceBlockDeviceMappingVirtualName+    ]  instance FromJSON OpsWorksInstanceBlockDeviceMapping where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksInstanceBlockDeviceMapping <$>+      obj .:? "DeviceName" <*>+      obj .:? "Ebs" <*>+      obj .:? "NoDevice" <*>+      obj .:? "VirtualName"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksInstanceBlockDeviceMapping' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/OpsWorksInstanceEbsBlockDevice.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-ebsblockdevice.html  module Stratosphere.ResourceProperties.OpsWorksInstanceEbsBlockDevice where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -23,13 +23,28 @@   , _opsWorksInstanceEbsBlockDeviceSnapshotId :: Maybe (Val Text)   , _opsWorksInstanceEbsBlockDeviceVolumeSize :: Maybe (Val Integer')   , _opsWorksInstanceEbsBlockDeviceVolumeType :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksInstanceEbsBlockDevice where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  toJSON OpsWorksInstanceEbsBlockDevice{..} =+    object $+    catMaybes+    [ ("DeleteOnTermination" .=) <$> _opsWorksInstanceEbsBlockDeviceDeleteOnTermination+    , ("Iops" .=) <$> _opsWorksInstanceEbsBlockDeviceIops+    , ("SnapshotId" .=) <$> _opsWorksInstanceEbsBlockDeviceSnapshotId+    , ("VolumeSize" .=) <$> _opsWorksInstanceEbsBlockDeviceVolumeSize+    , ("VolumeType" .=) <$> _opsWorksInstanceEbsBlockDeviceVolumeType+    ]  instance FromJSON OpsWorksInstanceEbsBlockDevice where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksInstanceEbsBlockDevice <$>+      obj .:? "DeleteOnTermination" <*>+      obj .:? "Iops" <*>+      obj .:? "SnapshotId" <*>+      obj .:? "VolumeSize" <*>+      obj .:? "VolumeType"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksInstanceEbsBlockDevice' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/OpsWorksInstanceTimeBasedAutoScaling.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-timebasedautoscaling.html  module Stratosphere.ResourceProperties.OpsWorksInstanceTimeBasedAutoScaling where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -25,13 +25,32 @@   , _opsWorksInstanceTimeBasedAutoScalingThursday :: Maybe Object   , _opsWorksInstanceTimeBasedAutoScalingTuesday :: Maybe Object   , _opsWorksInstanceTimeBasedAutoScalingWednesday :: Maybe Object-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksInstanceTimeBasedAutoScaling where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 37, omitNothingFields = True }+  toJSON OpsWorksInstanceTimeBasedAutoScaling{..} =+    object $+    catMaybes+    [ ("Friday" .=) <$> _opsWorksInstanceTimeBasedAutoScalingFriday+    , ("Monday" .=) <$> _opsWorksInstanceTimeBasedAutoScalingMonday+    , ("Saturday" .=) <$> _opsWorksInstanceTimeBasedAutoScalingSaturday+    , ("Sunday" .=) <$> _opsWorksInstanceTimeBasedAutoScalingSunday+    , ("Thursday" .=) <$> _opsWorksInstanceTimeBasedAutoScalingThursday+    , ("Tuesday" .=) <$> _opsWorksInstanceTimeBasedAutoScalingTuesday+    , ("Wednesday" .=) <$> _opsWorksInstanceTimeBasedAutoScalingWednesday+    ]  instance FromJSON OpsWorksInstanceTimeBasedAutoScaling where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 37, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksInstanceTimeBasedAutoScaling <$>+      obj .:? "Friday" <*>+      obj .:? "Monday" <*>+      obj .:? "Saturday" <*>+      obj .:? "Sunday" <*>+      obj .:? "Thursday" <*>+      obj .:? "Tuesday" <*>+      obj .:? "Wednesday"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksInstanceTimeBasedAutoScaling' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/OpsWorksLayerAutoScalingThresholds.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling-autoscalingthresholds.html  module Stratosphere.ResourceProperties.OpsWorksLayerAutoScalingThresholds where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -24,13 +24,30 @@   , _opsWorksLayerAutoScalingThresholdsLoadThreshold :: Maybe (Val Double')   , _opsWorksLayerAutoScalingThresholdsMemoryThreshold :: Maybe (Val Double')   , _opsWorksLayerAutoScalingThresholdsThresholdsWaitTime :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksLayerAutoScalingThresholds where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  toJSON OpsWorksLayerAutoScalingThresholds{..} =+    object $+    catMaybes+    [ ("CpuThreshold" .=) <$> _opsWorksLayerAutoScalingThresholdsCpuThreshold+    , ("IgnoreMetricsTime" .=) <$> _opsWorksLayerAutoScalingThresholdsIgnoreMetricsTime+    , ("InstanceCount" .=) <$> _opsWorksLayerAutoScalingThresholdsInstanceCount+    , ("LoadThreshold" .=) <$> _opsWorksLayerAutoScalingThresholdsLoadThreshold+    , ("MemoryThreshold" .=) <$> _opsWorksLayerAutoScalingThresholdsMemoryThreshold+    , ("ThresholdsWaitTime" .=) <$> _opsWorksLayerAutoScalingThresholdsThresholdsWaitTime+    ]  instance FromJSON OpsWorksLayerAutoScalingThresholds where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksLayerAutoScalingThresholds <$>+      obj .:? "CpuThreshold" <*>+      obj .:? "IgnoreMetricsTime" <*>+      obj .:? "InstanceCount" <*>+      obj .:? "LoadThreshold" <*>+      obj .:? "MemoryThreshold" <*>+      obj .:? "ThresholdsWaitTime"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksLayerAutoScalingThresholds' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/OpsWorksLayerLifecycleEventConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-lifecycleeventconfiguration.html  module Stratosphere.ResourceProperties.OpsWorksLayerLifecycleEventConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.OpsWorksLayerShutdownEventConfiguration@@ -20,13 +20,20 @@ data OpsWorksLayerLifecycleEventConfiguration =   OpsWorksLayerLifecycleEventConfiguration   { _opsWorksLayerLifecycleEventConfigurationShutdownEventConfiguration :: Maybe OpsWorksLayerShutdownEventConfiguration-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksLayerLifecycleEventConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 41, omitNothingFields = True }+  toJSON OpsWorksLayerLifecycleEventConfiguration{..} =+    object $+    catMaybes+    [ ("ShutdownEventConfiguration" .=) <$> _opsWorksLayerLifecycleEventConfigurationShutdownEventConfiguration+    ]  instance FromJSON OpsWorksLayerLifecycleEventConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 41, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksLayerLifecycleEventConfiguration <$>+      obj .:? "ShutdownEventConfiguration"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksLayerLifecycleEventConfiguration' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/OpsWorksLayerLoadBasedAutoScaling.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling.html  module Stratosphere.ResourceProperties.OpsWorksLayerLoadBasedAutoScaling where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.OpsWorksLayerAutoScalingThresholds@@ -21,13 +21,24 @@   { _opsWorksLayerLoadBasedAutoScalingDownScaling :: Maybe OpsWorksLayerAutoScalingThresholds   , _opsWorksLayerLoadBasedAutoScalingEnable :: Maybe (Val Bool')   , _opsWorksLayerLoadBasedAutoScalingUpScaling :: Maybe OpsWorksLayerAutoScalingThresholds-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksLayerLoadBasedAutoScaling where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  toJSON OpsWorksLayerLoadBasedAutoScaling{..} =+    object $+    catMaybes+    [ ("DownScaling" .=) <$> _opsWorksLayerLoadBasedAutoScalingDownScaling+    , ("Enable" .=) <$> _opsWorksLayerLoadBasedAutoScalingEnable+    , ("UpScaling" .=) <$> _opsWorksLayerLoadBasedAutoScalingUpScaling+    ]  instance FromJSON OpsWorksLayerLoadBasedAutoScaling where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksLayerLoadBasedAutoScaling <$>+      obj .:? "DownScaling" <*>+      obj .:? "Enable" <*>+      obj .:? "UpScaling"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksLayerLoadBasedAutoScaling' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/OpsWorksLayerRecipes.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-recipes.html  module Stratosphere.ResourceProperties.OpsWorksLayerRecipes where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -23,13 +23,28 @@   , _opsWorksLayerRecipesSetup :: Maybe [Val Text]   , _opsWorksLayerRecipesShutdown :: Maybe [Val Text]   , _opsWorksLayerRecipesUndeploy :: Maybe [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksLayerRecipes where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  toJSON OpsWorksLayerRecipes{..} =+    object $+    catMaybes+    [ ("Configure" .=) <$> _opsWorksLayerRecipesConfigure+    , ("Deploy" .=) <$> _opsWorksLayerRecipesDeploy+    , ("Setup" .=) <$> _opsWorksLayerRecipesSetup+    , ("Shutdown" .=) <$> _opsWorksLayerRecipesShutdown+    , ("Undeploy" .=) <$> _opsWorksLayerRecipesUndeploy+    ]  instance FromJSON OpsWorksLayerRecipes where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksLayerRecipes <$>+      obj .:? "Configure" <*>+      obj .:? "Deploy" <*>+      obj .:? "Setup" <*>+      obj .:? "Shutdown" <*>+      obj .:? "Undeploy"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksLayerRecipes' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/OpsWorksLayerShutdownEventConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-lifecycleeventconfiguration-shutdowneventconfiguration.html  module Stratosphere.ResourceProperties.OpsWorksLayerShutdownEventConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,22 @@   OpsWorksLayerShutdownEventConfiguration   { _opsWorksLayerShutdownEventConfigurationDelayUntilElbConnectionsDrained :: Maybe (Val Bool')   , _opsWorksLayerShutdownEventConfigurationExecutionTimeout :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksLayerShutdownEventConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 40, omitNothingFields = True }+  toJSON OpsWorksLayerShutdownEventConfiguration{..} =+    object $+    catMaybes+    [ ("DelayUntilElbConnectionsDrained" .=) <$> _opsWorksLayerShutdownEventConfigurationDelayUntilElbConnectionsDrained+    , ("ExecutionTimeout" .=) <$> _opsWorksLayerShutdownEventConfigurationExecutionTimeout+    ]  instance FromJSON OpsWorksLayerShutdownEventConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 40, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksLayerShutdownEventConfiguration <$>+      obj .:? "DelayUntilElbConnectionsDrained" <*>+      obj .:? "ExecutionTimeout"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksLayerShutdownEventConfiguration' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/OpsWorksLayerVolumeConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-volumeconfiguration.html  module Stratosphere.ResourceProperties.OpsWorksLayerVolumeConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -24,13 +24,30 @@   , _opsWorksLayerVolumeConfigurationRaidLevel :: Maybe (Val Integer')   , _opsWorksLayerVolumeConfigurationSize :: Maybe (Val Integer')   , _opsWorksLayerVolumeConfigurationVolumeType :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksLayerVolumeConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  toJSON OpsWorksLayerVolumeConfiguration{..} =+    object $+    catMaybes+    [ ("Iops" .=) <$> _opsWorksLayerVolumeConfigurationIops+    , ("MountPoint" .=) <$> _opsWorksLayerVolumeConfigurationMountPoint+    , ("NumberOfDisks" .=) <$> _opsWorksLayerVolumeConfigurationNumberOfDisks+    , ("RaidLevel" .=) <$> _opsWorksLayerVolumeConfigurationRaidLevel+    , ("Size" .=) <$> _opsWorksLayerVolumeConfigurationSize+    , ("VolumeType" .=) <$> _opsWorksLayerVolumeConfigurationVolumeType+    ]  instance FromJSON OpsWorksLayerVolumeConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksLayerVolumeConfiguration <$>+      obj .:? "Iops" <*>+      obj .:? "MountPoint" <*>+      obj .:? "NumberOfDisks" <*>+      obj .:? "RaidLevel" <*>+      obj .:? "Size" <*>+      obj .:? "VolumeType"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksLayerVolumeConfiguration' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/OpsWorksStackChefConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-chefconfiguration.html  module Stratosphere.ResourceProperties.OpsWorksStackChefConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   OpsWorksStackChefConfiguration   { _opsWorksStackChefConfigurationBerkshelfVersion :: Maybe (Val Text)   , _opsWorksStackChefConfigurationManageBerkshelf :: Maybe (Val Bool')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksStackChefConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  toJSON OpsWorksStackChefConfiguration{..} =+    object $+    catMaybes+    [ ("BerkshelfVersion" .=) <$> _opsWorksStackChefConfigurationBerkshelfVersion+    , ("ManageBerkshelf" .=) <$> _opsWorksStackChefConfigurationManageBerkshelf+    ]  instance FromJSON OpsWorksStackChefConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksStackChefConfiguration <$>+      obj .:? "BerkshelfVersion" <*>+      obj .:? "ManageBerkshelf"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksStackChefConfiguration' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/OpsWorksStackElasticIp.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-elasticip.html  module Stratosphere.ResourceProperties.OpsWorksStackElasticIp where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   OpsWorksStackElasticIp   { _opsWorksStackElasticIpIp :: Val Text   , _opsWorksStackElasticIpName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksStackElasticIp where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  toJSON OpsWorksStackElasticIp{..} =+    object $+    catMaybes+    [ Just ("Ip" .= _opsWorksStackElasticIpIp)+    , ("Name" .=) <$> _opsWorksStackElasticIpName+    ]  instance FromJSON OpsWorksStackElasticIp where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksStackElasticIp <$>+      obj .: "Ip" <*>+      obj .:? "Name"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksStackElasticIp' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/OpsWorksStackRdsDbInstance.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-rdsdbinstance.html  module Stratosphere.ResourceProperties.OpsWorksStackRdsDbInstance where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _opsWorksStackRdsDbInstanceDbPassword :: Val Text   , _opsWorksStackRdsDbInstanceDbUser :: Val Text   , _opsWorksStackRdsDbInstanceRdsDbInstanceArn :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksStackRdsDbInstance where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  toJSON OpsWorksStackRdsDbInstance{..} =+    object $+    catMaybes+    [ Just ("DbPassword" .= _opsWorksStackRdsDbInstanceDbPassword)+    , Just ("DbUser" .= _opsWorksStackRdsDbInstanceDbUser)+    , Just ("RdsDbInstanceArn" .= _opsWorksStackRdsDbInstanceRdsDbInstanceArn)+    ]  instance FromJSON OpsWorksStackRdsDbInstance where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksStackRdsDbInstance <$>+      obj .: "DbPassword" <*>+      obj .: "DbUser" <*>+      obj .: "RdsDbInstanceArn"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksStackRdsDbInstance' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/OpsWorksStackSource.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source.html  module Stratosphere.ResourceProperties.OpsWorksStackSource where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -24,13 +24,30 @@   , _opsWorksStackSourceType :: Maybe (Val Text)   , _opsWorksStackSourceUrl :: Maybe (Val Text)   , _opsWorksStackSourceUsername :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksStackSource where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  toJSON OpsWorksStackSource{..} =+    object $+    catMaybes+    [ ("Password" .=) <$> _opsWorksStackSourcePassword+    , ("Revision" .=) <$> _opsWorksStackSourceRevision+    , ("SshKey" .=) <$> _opsWorksStackSourceSshKey+    , ("Type" .=) <$> _opsWorksStackSourceType+    , ("Url" .=) <$> _opsWorksStackSourceUrl+    , ("Username" .=) <$> _opsWorksStackSourceUsername+    ]  instance FromJSON OpsWorksStackSource where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksStackSource <$>+      obj .:? "Password" <*>+      obj .:? "Revision" <*>+      obj .:? "SshKey" <*>+      obj .:? "Type" <*>+      obj .:? "Url" <*>+      obj .:? "Username"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksStackSource' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/OpsWorksStackStackConfigurationManager.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-stackconfigmanager.html  module Stratosphere.ResourceProperties.OpsWorksStackStackConfigurationManager where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,22 @@   OpsWorksStackStackConfigurationManager   { _opsWorksStackStackConfigurationManagerName :: Maybe (Val Text)   , _opsWorksStackStackConfigurationManagerVersion :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksStackStackConfigurationManager where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 39, omitNothingFields = True }+  toJSON OpsWorksStackStackConfigurationManager{..} =+    object $+    catMaybes+    [ ("Name" .=) <$> _opsWorksStackStackConfigurationManagerName+    , ("Version" .=) <$> _opsWorksStackStackConfigurationManagerVersion+    ]  instance FromJSON OpsWorksStackStackConfigurationManager where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 39, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksStackStackConfigurationManager <$>+      obj .:? "Name" <*>+      obj .:? "Version"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksStackStackConfigurationManager' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/RDSDBSecurityGroupIngressProperty.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-security-group-rule.html  module Stratosphere.ResourceProperties.RDSDBSecurityGroupIngressProperty where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,26 @@   , _rDSDBSecurityGroupIngressPropertyEC2SecurityGroupId :: Maybe (Val Text)   , _rDSDBSecurityGroupIngressPropertyEC2SecurityGroupName :: Maybe (Val Text)   , _rDSDBSecurityGroupIngressPropertyEC2SecurityGroupOwnerId :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON RDSDBSecurityGroupIngressProperty where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  toJSON RDSDBSecurityGroupIngressProperty{..} =+    object $+    catMaybes+    [ ("CDIRIP" .=) <$> _rDSDBSecurityGroupIngressPropertyCDIRIP+    , ("EC2SecurityGroupId" .=) <$> _rDSDBSecurityGroupIngressPropertyEC2SecurityGroupId+    , ("EC2SecurityGroupName" .=) <$> _rDSDBSecurityGroupIngressPropertyEC2SecurityGroupName+    , ("EC2SecurityGroupOwnerId" .=) <$> _rDSDBSecurityGroupIngressPropertyEC2SecurityGroupOwnerId+    ]  instance FromJSON RDSDBSecurityGroupIngressProperty where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  parseJSON (Object obj) =+    RDSDBSecurityGroupIngressProperty <$>+      obj .:? "CDIRIP" <*>+      obj .:? "EC2SecurityGroupId" <*>+      obj .:? "EC2SecurityGroupName" <*>+      obj .:? "EC2SecurityGroupOwnerId"+  parseJSON _ = mempty  -- | Constructor for 'RDSDBSecurityGroupIngressProperty' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/RDSOptionGroupOptionConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-optiongroup-optionconfigurations.html  module Stratosphere.ResourceProperties.RDSOptionGroupOptionConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.RDSOptionGroupOptionSetting@@ -23,13 +23,28 @@   , _rDSOptionGroupOptionConfigurationOptionSettings :: Maybe RDSOptionGroupOptionSetting   , _rDSOptionGroupOptionConfigurationPort :: Maybe (Val Integer')   , _rDSOptionGroupOptionConfigurationVpcSecurityGroupMemberships :: Maybe [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON RDSOptionGroupOptionConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  toJSON RDSOptionGroupOptionConfiguration{..} =+    object $+    catMaybes+    [ ("DBSecurityGroupMemberships" .=) <$> _rDSOptionGroupOptionConfigurationDBSecurityGroupMemberships+    , Just ("OptionName" .= _rDSOptionGroupOptionConfigurationOptionName)+    , ("OptionSettings" .=) <$> _rDSOptionGroupOptionConfigurationOptionSettings+    , ("Port" .=) <$> _rDSOptionGroupOptionConfigurationPort+    , ("VpcSecurityGroupMemberships" .=) <$> _rDSOptionGroupOptionConfigurationVpcSecurityGroupMemberships+    ]  instance FromJSON RDSOptionGroupOptionConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  parseJSON (Object obj) =+    RDSOptionGroupOptionConfiguration <$>+      obj .:? "DBSecurityGroupMemberships" <*>+      obj .: "OptionName" <*>+      obj .:? "OptionSettings" <*>+      obj .:? "Port" <*>+      obj .:? "VpcSecurityGroupMemberships"+  parseJSON _ = mempty  -- | Constructor for 'RDSOptionGroupOptionConfiguration' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/RDSOptionGroupOptionSetting.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-optiongroup-optionconfigurations-optionsettings.html  module Stratosphere.ResourceProperties.RDSOptionGroupOptionSetting where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   RDSOptionGroupOptionSetting   { _rDSOptionGroupOptionSettingName :: Maybe (Val Text)   , _rDSOptionGroupOptionSettingValue :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON RDSOptionGroupOptionSetting where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON RDSOptionGroupOptionSetting{..} =+    object $+    catMaybes+    [ ("Name" .=) <$> _rDSOptionGroupOptionSettingName+    , ("Value" .=) <$> _rDSOptionGroupOptionSettingValue+    ]  instance FromJSON RDSOptionGroupOptionSetting where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    RDSOptionGroupOptionSetting <$>+      obj .:? "Name" <*>+      obj .:? "Value"+  parseJSON _ = mempty  -- | Constructor for 'RDSOptionGroupOptionSetting' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/RedshiftClusterParameterGroupParameter.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-property-redshift-clusterparametergroup-parameter.html  module Stratosphere.ResourceProperties.RedshiftClusterParameterGroupParameter where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,22 @@   RedshiftClusterParameterGroupParameter   { _redshiftClusterParameterGroupParameterParameterName :: Val Text   , _redshiftClusterParameterGroupParameterParameterValue :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON RedshiftClusterParameterGroupParameter where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 39, omitNothingFields = True }+  toJSON RedshiftClusterParameterGroupParameter{..} =+    object $+    catMaybes+    [ Just ("ParameterName" .= _redshiftClusterParameterGroupParameterParameterName)+    , Just ("ParameterValue" .= _redshiftClusterParameterGroupParameterParameterValue)+    ]  instance FromJSON RedshiftClusterParameterGroupParameter where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 39, omitNothingFields = True }+  parseJSON (Object obj) =+    RedshiftClusterParameterGroupParameter <$>+      obj .: "ParameterName" <*>+      obj .: "ParameterValue"+  parseJSON _ = mempty  -- | Constructor for 'RedshiftClusterParameterGroupParameter' containing -- | required fields as arguments.
library-gen/Stratosphere/ResourceProperties/Route53HealthCheckHealthCheckConfig.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html  module Stratosphere.ResourceProperties.Route53HealthCheckHealthCheckConfig where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -26,13 +26,34 @@   , _route53HealthCheckHealthCheckConfigResourcePath :: Maybe (Val Text)   , _route53HealthCheckHealthCheckConfigSearchString :: Maybe (Val Text)   , _route53HealthCheckHealthCheckConfigType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON Route53HealthCheckHealthCheckConfig where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  toJSON Route53HealthCheckHealthCheckConfig{..} =+    object $+    catMaybes+    [ ("FailureThreshold" .=) <$> _route53HealthCheckHealthCheckConfigFailureThreshold+    , ("FullyQualifiedDomainName" .=) <$> _route53HealthCheckHealthCheckConfigFullyQualifiedDomainName+    , ("IPAddress" .=) <$> _route53HealthCheckHealthCheckConfigIPAddress+    , ("Port" .=) <$> _route53HealthCheckHealthCheckConfigPort+    , ("RequestInterval" .=) <$> _route53HealthCheckHealthCheckConfigRequestInterval+    , ("ResourcePath" .=) <$> _route53HealthCheckHealthCheckConfigResourcePath+    , ("SearchString" .=) <$> _route53HealthCheckHealthCheckConfigSearchString+    , Just ("Type" .= _route53HealthCheckHealthCheckConfigType)+    ]  instance FromJSON Route53HealthCheckHealthCheckConfig where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  parseJSON (Object obj) =+    Route53HealthCheckHealthCheckConfig <$>+      obj .:? "FailureThreshold" <*>+      obj .:? "FullyQualifiedDomainName" <*>+      obj .:? "IPAddress" <*>+      obj .:? "Port" <*>+      obj .:? "RequestInterval" <*>+      obj .:? "ResourcePath" <*>+      obj .:? "SearchString" <*>+      obj .: "Type"+  parseJSON _ = mempty  -- | Constructor for 'Route53HealthCheckHealthCheckConfig' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/Route53HealthCheckHealthCheckTag.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthchecktags.html  module Stratosphere.ResourceProperties.Route53HealthCheckHealthCheckTag where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   Route53HealthCheckHealthCheckTag   { _route53HealthCheckHealthCheckTagKey :: Val Text   , _route53HealthCheckHealthCheckTagValue :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON Route53HealthCheckHealthCheckTag where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  toJSON Route53HealthCheckHealthCheckTag{..} =+    object $+    catMaybes+    [ Just ("Key" .= _route53HealthCheckHealthCheckTagKey)+    , Just ("Value" .= _route53HealthCheckHealthCheckTagValue)+    ]  instance FromJSON Route53HealthCheckHealthCheckTag where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  parseJSON (Object obj) =+    Route53HealthCheckHealthCheckTag <$>+      obj .: "Key" <*>+      obj .: "Value"+  parseJSON _ = mempty  -- | Constructor for 'Route53HealthCheckHealthCheckTag' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/Route53HostedZoneHostedZoneConfig.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzoneconfig.html  module Stratosphere.ResourceProperties.Route53HostedZoneHostedZoneConfig where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data Route53HostedZoneHostedZoneConfig =   Route53HostedZoneHostedZoneConfig   { _route53HostedZoneHostedZoneConfigComment :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON Route53HostedZoneHostedZoneConfig where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  toJSON Route53HostedZoneHostedZoneConfig{..} =+    object $+    catMaybes+    [ ("Comment" .=) <$> _route53HostedZoneHostedZoneConfigComment+    ]  instance FromJSON Route53HostedZoneHostedZoneConfig where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  parseJSON (Object obj) =+    Route53HostedZoneHostedZoneConfig <$>+      obj .:? "Comment"+  parseJSON _ = mempty  -- | Constructor for 'Route53HostedZoneHostedZoneConfig' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/Route53HostedZoneHostedZoneTag.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzonetags.html  module Stratosphere.ResourceProperties.Route53HostedZoneHostedZoneTag where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   Route53HostedZoneHostedZoneTag   { _route53HostedZoneHostedZoneTagKey :: Val Text   , _route53HostedZoneHostedZoneTagValue :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON Route53HostedZoneHostedZoneTag where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  toJSON Route53HostedZoneHostedZoneTag{..} =+    object $+    catMaybes+    [ Just ("Key" .= _route53HostedZoneHostedZoneTagKey)+    , Just ("Value" .= _route53HostedZoneHostedZoneTagValue)+    ]  instance FromJSON Route53HostedZoneHostedZoneTag where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  parseJSON (Object obj) =+    Route53HostedZoneHostedZoneTag <$>+      obj .: "Key" <*>+      obj .: "Value"+  parseJSON _ = mempty  -- | Constructor for 'Route53HostedZoneHostedZoneTag' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/Route53HostedZoneVPC.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone-hostedzonevpcs.html  module Stratosphere.ResourceProperties.Route53HostedZoneVPC where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   Route53HostedZoneVPC   { _route53HostedZoneVPCVPCId :: Val Text   , _route53HostedZoneVPCVPCRegion :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON Route53HostedZoneVPC where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  toJSON Route53HostedZoneVPC{..} =+    object $+    catMaybes+    [ Just ("VPCId" .= _route53HostedZoneVPCVPCId)+    , Just ("VPCRegion" .= _route53HostedZoneVPCVPCRegion)+    ]  instance FromJSON Route53HostedZoneVPC where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  parseJSON (Object obj) =+    Route53HostedZoneVPC <$>+      obj .: "VPCId" <*>+      obj .: "VPCRegion"+  parseJSON _ = mempty  -- | Constructor for 'Route53HostedZoneVPC' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/Route53RecordSetAliasTarget.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html  module Stratosphere.ResourceProperties.Route53RecordSetAliasTarget where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _route53RecordSetAliasTargetDNSName :: Val Text   , _route53RecordSetAliasTargetEvaluateTargetHealth :: Maybe (Val Bool')   , _route53RecordSetAliasTargetHostedZoneId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON Route53RecordSetAliasTarget where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON Route53RecordSetAliasTarget{..} =+    object $+    catMaybes+    [ Just ("DNSName" .= _route53RecordSetAliasTargetDNSName)+    , ("EvaluateTargetHealth" .=) <$> _route53RecordSetAliasTargetEvaluateTargetHealth+    , Just ("HostedZoneId" .= _route53RecordSetAliasTargetHostedZoneId)+    ]  instance FromJSON Route53RecordSetAliasTarget where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    Route53RecordSetAliasTarget <$>+      obj .: "DNSName" <*>+      obj .:? "EvaluateTargetHealth" <*>+      obj .: "HostedZoneId"+  parseJSON _ = mempty  -- | Constructor for 'Route53RecordSetAliasTarget' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/Route53RecordSetGeoLocation.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation.html  module Stratosphere.ResourceProperties.Route53RecordSetGeoLocation where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _route53RecordSetGeoLocationContinentCode :: Maybe (Val Text)   , _route53RecordSetGeoLocationCountryCode :: Maybe (Val Text)   , _route53RecordSetGeoLocationSubdivisionCode :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON Route53RecordSetGeoLocation where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON Route53RecordSetGeoLocation{..} =+    object $+    catMaybes+    [ ("ContinentCode" .=) <$> _route53RecordSetGeoLocationContinentCode+    , ("CountryCode" .=) <$> _route53RecordSetGeoLocationCountryCode+    , ("SubdivisionCode" .=) <$> _route53RecordSetGeoLocationSubdivisionCode+    ]  instance FromJSON Route53RecordSetGeoLocation where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    Route53RecordSetGeoLocation <$>+      obj .:? "ContinentCode" <*>+      obj .:? "CountryCode" <*>+      obj .:? "SubdivisionCode"+  parseJSON _ = mempty  -- | Constructor for 'Route53RecordSetGeoLocation' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/Route53RecordSetGroupAliasTarget.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html  module Stratosphere.ResourceProperties.Route53RecordSetGroupAliasTarget where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _route53RecordSetGroupAliasTargetDNSName :: Val Text   , _route53RecordSetGroupAliasTargetEvaluateTargetHealth :: Maybe (Val Bool')   , _route53RecordSetGroupAliasTargetHostedZoneId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON Route53RecordSetGroupAliasTarget where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  toJSON Route53RecordSetGroupAliasTarget{..} =+    object $+    catMaybes+    [ Just ("DNSName" .= _route53RecordSetGroupAliasTargetDNSName)+    , ("EvaluateTargetHealth" .=) <$> _route53RecordSetGroupAliasTargetEvaluateTargetHealth+    , Just ("HostedZoneId" .= _route53RecordSetGroupAliasTargetHostedZoneId)+    ]  instance FromJSON Route53RecordSetGroupAliasTarget where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  parseJSON (Object obj) =+    Route53RecordSetGroupAliasTarget <$>+      obj .: "DNSName" <*>+      obj .:? "EvaluateTargetHealth" <*>+      obj .: "HostedZoneId"+  parseJSON _ = mempty  -- | Constructor for 'Route53RecordSetGroupAliasTarget' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/Route53RecordSetGroupGeoLocation.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation.html  module Stratosphere.ResourceProperties.Route53RecordSetGroupGeoLocation where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _route53RecordSetGroupGeoLocationContinentCode :: Maybe (Val Text)   , _route53RecordSetGroupGeoLocationCountryCode :: Maybe (Val Text)   , _route53RecordSetGroupGeoLocationSubdivisionCode :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON Route53RecordSetGroupGeoLocation where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  toJSON Route53RecordSetGroupGeoLocation{..} =+    object $+    catMaybes+    [ ("ContinentCode" .=) <$> _route53RecordSetGroupGeoLocationContinentCode+    , ("CountryCode" .=) <$> _route53RecordSetGroupGeoLocationCountryCode+    , ("SubdivisionCode" .=) <$> _route53RecordSetGroupGeoLocationSubdivisionCode+    ]  instance FromJSON Route53RecordSetGroupGeoLocation where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  parseJSON (Object obj) =+    Route53RecordSetGroupGeoLocation <$>+      obj .:? "ContinentCode" <*>+      obj .:? "CountryCode" <*>+      obj .:? "SubdivisionCode"+  parseJSON _ = mempty  -- | Constructor for 'Route53RecordSetGroupGeoLocation' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/Route53RecordSetGroupRecordSet.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html  module Stratosphere.ResourceProperties.Route53RecordSetGroupRecordSet where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Route53RecordSetGroupAliasTarget@@ -33,13 +33,46 @@   , _route53RecordSetGroupRecordSetTTL :: Maybe (Val Text)   , _route53RecordSetGroupRecordSetType :: Val Text   , _route53RecordSetGroupRecordSetWeight :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON Route53RecordSetGroupRecordSet where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  toJSON Route53RecordSetGroupRecordSet{..} =+    object $+    catMaybes+    [ ("AliasTarget" .=) <$> _route53RecordSetGroupRecordSetAliasTarget+    , ("Comment" .=) <$> _route53RecordSetGroupRecordSetComment+    , ("Failover" .=) <$> _route53RecordSetGroupRecordSetFailover+    , ("GeoLocation" .=) <$> _route53RecordSetGroupRecordSetGeoLocation+    , ("HealthCheckId" .=) <$> _route53RecordSetGroupRecordSetHealthCheckId+    , ("HostedZoneId" .=) <$> _route53RecordSetGroupRecordSetHostedZoneId+    , ("HostedZoneName" .=) <$> _route53RecordSetGroupRecordSetHostedZoneName+    , Just ("Name" .= _route53RecordSetGroupRecordSetName)+    , ("Region" .=) <$> _route53RecordSetGroupRecordSetRegion+    , ("ResourceRecords" .=) <$> _route53RecordSetGroupRecordSetResourceRecords+    , ("SetIdentifier" .=) <$> _route53RecordSetGroupRecordSetSetIdentifier+    , ("TTL" .=) <$> _route53RecordSetGroupRecordSetTTL+    , Just ("Type" .= _route53RecordSetGroupRecordSetType)+    , ("Weight" .=) <$> _route53RecordSetGroupRecordSetWeight+    ]  instance FromJSON Route53RecordSetGroupRecordSet where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  parseJSON (Object obj) =+    Route53RecordSetGroupRecordSet <$>+      obj .:? "AliasTarget" <*>+      obj .:? "Comment" <*>+      obj .:? "Failover" <*>+      obj .:? "GeoLocation" <*>+      obj .:? "HealthCheckId" <*>+      obj .:? "HostedZoneId" <*>+      obj .:? "HostedZoneName" <*>+      obj .: "Name" <*>+      obj .:? "Region" <*>+      obj .:? "ResourceRecords" <*>+      obj .:? "SetIdentifier" <*>+      obj .:? "TTL" <*>+      obj .: "Type" <*>+      obj .:? "Weight"+  parseJSON _ = mempty  -- | Constructor for 'Route53RecordSetGroupRecordSet' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/S3BucketCorsConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors.html  module Stratosphere.ResourceProperties.S3BucketCorsConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.S3BucketCorsRule@@ -19,13 +19,20 @@ data S3BucketCorsConfiguration =   S3BucketCorsConfiguration   { _s3BucketCorsConfigurationCorsRules :: [S3BucketCorsRule]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketCorsConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }+  toJSON S3BucketCorsConfiguration{..} =+    object $+    catMaybes+    [ Just ("CorsRules" .= _s3BucketCorsConfigurationCorsRules)+    ]  instance FromJSON S3BucketCorsConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketCorsConfiguration <$>+      obj .: "CorsRules"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketCorsConfiguration' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/S3BucketCorsRule.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors-corsrule.html  module Stratosphere.ResourceProperties.S3BucketCorsRule where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -24,13 +24,30 @@   , _s3BucketCorsRuleExposedHeaders :: Maybe [Val Text]   , _s3BucketCorsRuleId :: Maybe (Val Text)   , _s3BucketCorsRuleMaxAge :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketCorsRule where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  toJSON S3BucketCorsRule{..} =+    object $+    catMaybes+    [ ("AllowedHeaders" .=) <$> _s3BucketCorsRuleAllowedHeaders+    , Just ("AllowedMethods" .= _s3BucketCorsRuleAllowedMethods)+    , Just ("AllowedOrigins" .= _s3BucketCorsRuleAllowedOrigins)+    , ("ExposedHeaders" .=) <$> _s3BucketCorsRuleExposedHeaders+    , ("Id" .=) <$> _s3BucketCorsRuleId+    , ("MaxAge" .=) <$> _s3BucketCorsRuleMaxAge+    ]  instance FromJSON S3BucketCorsRule where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketCorsRule <$>+      obj .:? "AllowedHeaders" <*>+      obj .: "AllowedMethods" <*>+      obj .: "AllowedOrigins" <*>+      obj .:? "ExposedHeaders" <*>+      obj .:? "Id" <*>+      obj .:? "MaxAge"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketCorsRule' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/S3BucketFilterRule.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key-rules.html  module Stratosphere.ResourceProperties.S3BucketFilterRule where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   S3BucketFilterRule   { _s3BucketFilterRuleName :: Val Text   , _s3BucketFilterRuleValue :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketFilterRule where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  toJSON S3BucketFilterRule{..} =+    object $+    catMaybes+    [ Just ("Name" .= _s3BucketFilterRuleName)+    , Just ("Value" .= _s3BucketFilterRuleValue)+    ]  instance FromJSON S3BucketFilterRule where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketFilterRule <$>+      obj .: "Name" <*>+      obj .: "Value"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketFilterRule' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/S3BucketLambdaConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-lambdaconfig.html  module Stratosphere.ResourceProperties.S3BucketLambdaConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.S3BucketNotificationFilter@@ -21,13 +21,24 @@   { _s3BucketLambdaConfigurationEvent :: Val Text   , _s3BucketLambdaConfigurationFilter :: Maybe S3BucketNotificationFilter   , _s3BucketLambdaConfigurationFunction :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketLambdaConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON S3BucketLambdaConfiguration{..} =+    object $+    catMaybes+    [ Just ("Event" .= _s3BucketLambdaConfigurationEvent)+    , ("Filter" .=) <$> _s3BucketLambdaConfigurationFilter+    , Just ("Function" .= _s3BucketLambdaConfigurationFunction)+    ]  instance FromJSON S3BucketLambdaConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketLambdaConfiguration <$>+      obj .: "Event" <*>+      obj .:? "Filter" <*>+      obj .: "Function"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketLambdaConfiguration' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/S3BucketLifecycleConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig.html  module Stratosphere.ResourceProperties.S3BucketLifecycleConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.S3BucketRule@@ -19,13 +19,20 @@ data S3BucketLifecycleConfiguration =   S3BucketLifecycleConfiguration   { _s3BucketLifecycleConfigurationRules :: [S3BucketRule]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketLifecycleConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  toJSON S3BucketLifecycleConfiguration{..} =+    object $+    catMaybes+    [ Just ("Rules" .= _s3BucketLifecycleConfigurationRules)+    ]  instance FromJSON S3BucketLifecycleConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketLifecycleConfiguration <$>+      obj .: "Rules"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketLifecycleConfiguration' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/S3BucketLoggingConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-loggingconfig.html  module Stratosphere.ResourceProperties.S3BucketLoggingConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   S3BucketLoggingConfiguration   { _s3BucketLoggingConfigurationDestinationBucketName :: Maybe (Val Text)   , _s3BucketLoggingConfigurationLogFilePrefix :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketLoggingConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  toJSON S3BucketLoggingConfiguration{..} =+    object $+    catMaybes+    [ ("DestinationBucketName" .=) <$> _s3BucketLoggingConfigurationDestinationBucketName+    , ("LogFilePrefix" .=) <$> _s3BucketLoggingConfigurationLogFilePrefix+    ]  instance FromJSON S3BucketLoggingConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketLoggingConfiguration <$>+      obj .:? "DestinationBucketName" <*>+      obj .:? "LogFilePrefix"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketLoggingConfiguration' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/S3BucketNoncurrentVersionTransition.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-noncurrentversiontransition.html  module Stratosphere.ResourceProperties.S3BucketNoncurrentVersionTransition where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   S3BucketNoncurrentVersionTransition   { _s3BucketNoncurrentVersionTransitionStorageClass :: Val Text   , _s3BucketNoncurrentVersionTransitionTransitionInDays :: Val Integer'-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketNoncurrentVersionTransition where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  toJSON S3BucketNoncurrentVersionTransition{..} =+    object $+    catMaybes+    [ Just ("StorageClass" .= _s3BucketNoncurrentVersionTransitionStorageClass)+    , Just ("TransitionInDays" .= _s3BucketNoncurrentVersionTransitionTransitionInDays)+    ]  instance FromJSON S3BucketNoncurrentVersionTransition where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketNoncurrentVersionTransition <$>+      obj .: "StorageClass" <*>+      obj .: "TransitionInDays"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketNoncurrentVersionTransition' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/S3BucketNotificationConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig.html  module Stratosphere.ResourceProperties.S3BucketNotificationConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.S3BucketLambdaConfiguration@@ -23,13 +23,24 @@   { _s3BucketNotificationConfigurationLambdaConfigurations :: Maybe [S3BucketLambdaConfiguration]   , _s3BucketNotificationConfigurationQueueConfigurations :: Maybe [S3BucketQueueConfiguration]   , _s3BucketNotificationConfigurationTopicConfigurations :: Maybe [S3BucketTopicConfiguration]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketNotificationConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  toJSON S3BucketNotificationConfiguration{..} =+    object $+    catMaybes+    [ ("LambdaConfigurations" .=) <$> _s3BucketNotificationConfigurationLambdaConfigurations+    , ("QueueConfigurations" .=) <$> _s3BucketNotificationConfigurationQueueConfigurations+    , ("TopicConfigurations" .=) <$> _s3BucketNotificationConfigurationTopicConfigurations+    ]  instance FromJSON S3BucketNotificationConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketNotificationConfiguration <$>+      obj .:? "LambdaConfigurations" <*>+      obj .:? "QueueConfigurations" <*>+      obj .:? "TopicConfigurations"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketNotificationConfiguration' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/S3BucketNotificationFilter.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html  module Stratosphere.ResourceProperties.S3BucketNotificationFilter where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.S3BucketS3KeyFilter@@ -19,13 +19,20 @@ data S3BucketNotificationFilter =   S3BucketNotificationFilter   { _s3BucketNotificationFilterS3Key :: S3BucketS3KeyFilter-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketNotificationFilter where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  toJSON S3BucketNotificationFilter{..} =+    object $+    catMaybes+    [ Just ("S3Key" .= _s3BucketNotificationFilterS3Key)+    ]  instance FromJSON S3BucketNotificationFilter where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketNotificationFilter <$>+      obj .: "S3Key"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketNotificationFilter' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/S3BucketQueueConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-queueconfig.html  module Stratosphere.ResourceProperties.S3BucketQueueConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.S3BucketNotificationFilter@@ -21,13 +21,24 @@   { _s3BucketQueueConfigurationEvent :: Val Text   , _s3BucketQueueConfigurationFilter :: Maybe S3BucketNotificationFilter   , _s3BucketQueueConfigurationQueue :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketQueueConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  toJSON S3BucketQueueConfiguration{..} =+    object $+    catMaybes+    [ Just ("Event" .= _s3BucketQueueConfigurationEvent)+    , ("Filter" .=) <$> _s3BucketQueueConfigurationFilter+    , Just ("Queue" .= _s3BucketQueueConfigurationQueue)+    ]  instance FromJSON S3BucketQueueConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketQueueConfiguration <$>+      obj .: "Event" <*>+      obj .:? "Filter" <*>+      obj .: "Queue"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketQueueConfiguration' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/S3BucketRedirectAllRequestsTo.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-redirectallrequeststo.html  module Stratosphere.ResourceProperties.S3BucketRedirectAllRequestsTo where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   S3BucketRedirectAllRequestsTo   { _s3BucketRedirectAllRequestsToHostName :: Val Text   , _s3BucketRedirectAllRequestsToProtocol :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketRedirectAllRequestsTo where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  toJSON S3BucketRedirectAllRequestsTo{..} =+    object $+    catMaybes+    [ Just ("HostName" .= _s3BucketRedirectAllRequestsToHostName)+    , ("Protocol" .=) <$> _s3BucketRedirectAllRequestsToProtocol+    ]  instance FromJSON S3BucketRedirectAllRequestsTo where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketRedirectAllRequestsTo <$>+      obj .: "HostName" <*>+      obj .:? "Protocol"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketRedirectAllRequestsTo' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/S3BucketRedirectRule.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-redirectrule.html  module Stratosphere.ResourceProperties.S3BucketRedirectRule where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -23,13 +23,28 @@   , _s3BucketRedirectRuleProtocol :: Maybe (Val Text)   , _s3BucketRedirectRuleReplaceKeyPrefixWith :: Maybe (Val Text)   , _s3BucketRedirectRuleReplaceKeyWith :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketRedirectRule where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  toJSON S3BucketRedirectRule{..} =+    object $+    catMaybes+    [ ("HostName" .=) <$> _s3BucketRedirectRuleHostName+    , ("HttpRedirectCode" .=) <$> _s3BucketRedirectRuleHttpRedirectCode+    , ("Protocol" .=) <$> _s3BucketRedirectRuleProtocol+    , ("ReplaceKeyPrefixWith" .=) <$> _s3BucketRedirectRuleReplaceKeyPrefixWith+    , ("ReplaceKeyWith" .=) <$> _s3BucketRedirectRuleReplaceKeyWith+    ]  instance FromJSON S3BucketRedirectRule where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketRedirectRule <$>+      obj .:? "HostName" <*>+      obj .:? "HttpRedirectCode" <*>+      obj .:? "Protocol" <*>+      obj .:? "ReplaceKeyPrefixWith" <*>+      obj .:? "ReplaceKeyWith"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketRedirectRule' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/S3BucketReplicationConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration.html  module Stratosphere.ResourceProperties.S3BucketReplicationConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.S3BucketReplicationRule@@ -20,13 +20,22 @@   S3BucketReplicationConfiguration   { _s3BucketReplicationConfigurationRole :: Val Text   , _s3BucketReplicationConfigurationRules :: [S3BucketReplicationRule]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketReplicationConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  toJSON S3BucketReplicationConfiguration{..} =+    object $+    catMaybes+    [ Just ("Role" .= _s3BucketReplicationConfigurationRole)+    , Just ("Rules" .= _s3BucketReplicationConfigurationRules)+    ]  instance FromJSON S3BucketReplicationConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketReplicationConfiguration <$>+      obj .: "Role" <*>+      obj .: "Rules"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketReplicationConfiguration' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/S3BucketReplicationDestination.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html  module Stratosphere.ResourceProperties.S3BucketReplicationDestination where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   S3BucketReplicationDestination   { _s3BucketReplicationDestinationBucket :: Val Text   , _s3BucketReplicationDestinationStorageClass :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketReplicationDestination where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  toJSON S3BucketReplicationDestination{..} =+    object $+    catMaybes+    [ Just ("Bucket" .= _s3BucketReplicationDestinationBucket)+    , ("StorageClass" .=) <$> _s3BucketReplicationDestinationStorageClass+    ]  instance FromJSON S3BucketReplicationDestination where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketReplicationDestination <$>+      obj .: "Bucket" <*>+      obj .:? "StorageClass"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketReplicationDestination' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/S3BucketReplicationRule.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html  module Stratosphere.ResourceProperties.S3BucketReplicationRule where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.S3BucketReplicationDestination@@ -22,13 +22,26 @@   , _s3BucketReplicationRuleId :: Maybe (Val Text)   , _s3BucketReplicationRulePrefix :: Val Text   , _s3BucketReplicationRuleStatus :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketReplicationRule where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  toJSON S3BucketReplicationRule{..} =+    object $+    catMaybes+    [ Just ("Destination" .= _s3BucketReplicationRuleDestination)+    , ("Id" .=) <$> _s3BucketReplicationRuleId+    , Just ("Prefix" .= _s3BucketReplicationRulePrefix)+    , Just ("Status" .= _s3BucketReplicationRuleStatus)+    ]  instance FromJSON S3BucketReplicationRule where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketReplicationRule <$>+      obj .: "Destination" <*>+      obj .:? "Id" <*>+      obj .: "Prefix" <*>+      obj .: "Status"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketReplicationRule' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/S3BucketRoutingRule.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html  module Stratosphere.ResourceProperties.S3BucketRoutingRule where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.S3BucketRedirectRule@@ -21,13 +21,22 @@   S3BucketRoutingRule   { _s3BucketRoutingRuleRedirectRule :: S3BucketRedirectRule   , _s3BucketRoutingRuleRoutingRuleCondition :: Maybe S3BucketRoutingRuleCondition-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketRoutingRule where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  toJSON S3BucketRoutingRule{..} =+    object $+    catMaybes+    [ Just ("RedirectRule" .= _s3BucketRoutingRuleRedirectRule)+    , ("RoutingRuleCondition" .=) <$> _s3BucketRoutingRuleRoutingRuleCondition+    ]  instance FromJSON S3BucketRoutingRule where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketRoutingRule <$>+      obj .: "RedirectRule" <*>+      obj .:? "RoutingRuleCondition"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketRoutingRule' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/S3BucketRoutingRuleCondition.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-routingrulecondition.html  module Stratosphere.ResourceProperties.S3BucketRoutingRuleCondition where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   S3BucketRoutingRuleCondition   { _s3BucketRoutingRuleConditionHttpErrorCodeReturnedEquals :: Maybe (Val Text)   , _s3BucketRoutingRuleConditionKeyPrefixEquals :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketRoutingRuleCondition where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  toJSON S3BucketRoutingRuleCondition{..} =+    object $+    catMaybes+    [ ("HttpErrorCodeReturnedEquals" .=) <$> _s3BucketRoutingRuleConditionHttpErrorCodeReturnedEquals+    , ("KeyPrefixEquals" .=) <$> _s3BucketRoutingRuleConditionKeyPrefixEquals+    ]  instance FromJSON S3BucketRoutingRuleCondition where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketRoutingRuleCondition <$>+      obj .:? "HttpErrorCodeReturnedEquals" <*>+      obj .:? "KeyPrefixEquals"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketRoutingRuleCondition' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/S3BucketRule.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html  module Stratosphere.ResourceProperties.S3BucketRule where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.S3BucketNoncurrentVersionTransition@@ -29,13 +29,38 @@   , _s3BucketRuleStatus :: Val Text   , _s3BucketRuleTransition :: Maybe S3BucketTransition   , _s3BucketRuleTransitions :: Maybe S3BucketTransition-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketRule where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 13, omitNothingFields = True }+  toJSON S3BucketRule{..} =+    object $+    catMaybes+    [ ("ExpirationDate" .=) <$> _s3BucketRuleExpirationDate+    , ("ExpirationInDays" .=) <$> _s3BucketRuleExpirationInDays+    , ("Id" .=) <$> _s3BucketRuleId+    , ("NoncurrentVersionExpirationInDays" .=) <$> _s3BucketRuleNoncurrentVersionExpirationInDays+    , ("NoncurrentVersionTransition" .=) <$> _s3BucketRuleNoncurrentVersionTransition+    , ("NoncurrentVersionTransitions" .=) <$> _s3BucketRuleNoncurrentVersionTransitions+    , ("Prefix" .=) <$> _s3BucketRulePrefix+    , Just ("Status" .= _s3BucketRuleStatus)+    , ("Transition" .=) <$> _s3BucketRuleTransition+    , ("Transitions" .=) <$> _s3BucketRuleTransitions+    ]  instance FromJSON S3BucketRule where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 13, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketRule <$>+      obj .:? "ExpirationDate" <*>+      obj .:? "ExpirationInDays" <*>+      obj .:? "Id" <*>+      obj .:? "NoncurrentVersionExpirationInDays" <*>+      obj .:? "NoncurrentVersionTransition" <*>+      obj .:? "NoncurrentVersionTransitions" <*>+      obj .:? "Prefix" <*>+      obj .: "Status" <*>+      obj .:? "Transition" <*>+      obj .:? "Transitions"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketRule' containing required fields as arguments. s3BucketRule
library-gen/Stratosphere/ResourceProperties/S3BucketS3KeyFilter.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key.html  module Stratosphere.ResourceProperties.S3BucketS3KeyFilter where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.S3BucketFilterRule@@ -19,13 +19,20 @@ data S3BucketS3KeyFilter =   S3BucketS3KeyFilter   { _s3BucketS3KeyFilterRules :: [S3BucketFilterRule]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketS3KeyFilter where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  toJSON S3BucketS3KeyFilter{..} =+    object $+    catMaybes+    [ Just ("Rules" .= _s3BucketS3KeyFilterRules)+    ]  instance FromJSON S3BucketS3KeyFilter where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketS3KeyFilter <$>+      obj .: "Rules"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketS3KeyFilter' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/S3BucketTopicConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-topicconfig.html  module Stratosphere.ResourceProperties.S3BucketTopicConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.S3BucketNotificationFilter@@ -21,13 +21,24 @@   { _s3BucketTopicConfigurationEvent :: Val Text   , _s3BucketTopicConfigurationFilter :: Maybe S3BucketNotificationFilter   , _s3BucketTopicConfigurationTopic :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketTopicConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  toJSON S3BucketTopicConfiguration{..} =+    object $+    catMaybes+    [ Just ("Event" .= _s3BucketTopicConfigurationEvent)+    , ("Filter" .=) <$> _s3BucketTopicConfigurationFilter+    , Just ("Topic" .= _s3BucketTopicConfigurationTopic)+    ]  instance FromJSON S3BucketTopicConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketTopicConfiguration <$>+      obj .: "Event" <*>+      obj .:? "Filter" <*>+      obj .: "Topic"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketTopicConfiguration' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/S3BucketTransition.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-transition.html  module Stratosphere.ResourceProperties.S3BucketTransition where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _s3BucketTransitionStorageClass :: Val Text   , _s3BucketTransitionTransitionDate :: Maybe (Val Text)   , _s3BucketTransitionTransitionInDays :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketTransition where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  toJSON S3BucketTransition{..} =+    object $+    catMaybes+    [ Just ("StorageClass" .= _s3BucketTransitionStorageClass)+    , ("TransitionDate" .=) <$> _s3BucketTransitionTransitionDate+    , ("TransitionInDays" .=) <$> _s3BucketTransitionTransitionInDays+    ]  instance FromJSON S3BucketTransition where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketTransition <$>+      obj .: "StorageClass" <*>+      obj .:? "TransitionDate" <*>+      obj .:? "TransitionInDays"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketTransition' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/S3BucketVersioningConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-versioningconfig.html  module Stratosphere.ResourceProperties.S3BucketVersioningConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data S3BucketVersioningConfiguration =   S3BucketVersioningConfiguration   { _s3BucketVersioningConfigurationStatus :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketVersioningConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 32, omitNothingFields = True }+  toJSON S3BucketVersioningConfiguration{..} =+    object $+    catMaybes+    [ Just ("Status" .= _s3BucketVersioningConfigurationStatus)+    ]  instance FromJSON S3BucketVersioningConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 32, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketVersioningConfiguration <$>+      obj .: "Status"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketVersioningConfiguration' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/S3BucketWebsiteConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration.html  module Stratosphere.ResourceProperties.S3BucketWebsiteConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.S3BucketRedirectAllRequestsTo@@ -23,13 +23,26 @@   , _s3BucketWebsiteConfigurationIndexDocument :: Maybe (Val Text)   , _s3BucketWebsiteConfigurationRedirectAllRequestsTo :: Maybe S3BucketRedirectAllRequestsTo   , _s3BucketWebsiteConfigurationRoutingRules :: Maybe [S3BucketRoutingRule]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketWebsiteConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  toJSON S3BucketWebsiteConfiguration{..} =+    object $+    catMaybes+    [ ("ErrorDocument" .=) <$> _s3BucketWebsiteConfigurationErrorDocument+    , ("IndexDocument" .=) <$> _s3BucketWebsiteConfigurationIndexDocument+    , ("RedirectAllRequestsTo" .=) <$> _s3BucketWebsiteConfigurationRedirectAllRequestsTo+    , ("RoutingRules" .=) <$> _s3BucketWebsiteConfigurationRoutingRules+    ]  instance FromJSON S3BucketWebsiteConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketWebsiteConfiguration <$>+      obj .:? "ErrorDocument" <*>+      obj .:? "IndexDocument" <*>+      obj .:? "RedirectAllRequestsTo" <*>+      obj .:? "RoutingRules"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketWebsiteConfiguration' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/SNSTopicSubscription.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-subscription.html  module Stratosphere.ResourceProperties.SNSTopicSubscription where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.Types@@ -20,13 +20,22 @@   SNSTopicSubscription   { _sNSTopicSubscriptionEndpoint :: Val Text   , _sNSTopicSubscriptionProtocol :: Val SNSProtocol-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON SNSTopicSubscription where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  toJSON SNSTopicSubscription{..} =+    object $+    catMaybes+    [ Just ("Endpoint" .= _sNSTopicSubscriptionEndpoint)+    , Just ("Protocol" .= _sNSTopicSubscriptionProtocol)+    ]  instance FromJSON SNSTopicSubscription where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  parseJSON (Object obj) =+    SNSTopicSubscription <$>+      obj .: "Endpoint" <*>+      obj .: "Protocol"+  parseJSON _ = mempty  -- | Constructor for 'SNSTopicSubscription' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/SSMAssociationParameterValues.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-parametervalues.html  module Stratosphere.ResourceProperties.SSMAssociationParameterValues where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data SSMAssociationParameterValues =   SSMAssociationParameterValues   { _sSMAssociationParameterValuesParameterValues :: [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON SSMAssociationParameterValues where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  toJSON SSMAssociationParameterValues{..} =+    object $+    catMaybes+    [ Just ("ParameterValues" .= _sSMAssociationParameterValuesParameterValues)+    ]  instance FromJSON SSMAssociationParameterValues where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  parseJSON (Object obj) =+    SSMAssociationParameterValues <$>+      obj .: "ParameterValues"+  parseJSON _ = mempty  -- | Constructor for 'SSMAssociationParameterValues' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/SSMAssociationTarget.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-target.html  module Stratosphere.ResourceProperties.SSMAssociationTarget where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   SSMAssociationTarget   { _sSMAssociationTargetKey :: Val Text   , _sSMAssociationTargetValues :: [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON SSMAssociationTarget where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  toJSON SSMAssociationTarget{..} =+    object $+    catMaybes+    [ Just ("Key" .= _sSMAssociationTargetKey)+    , Just ("Values" .= _sSMAssociationTargetValues)+    ]  instance FromJSON SSMAssociationTarget where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  parseJSON (Object obj) =+    SSMAssociationTarget <$>+      obj .: "Key" <*>+      obj .: "Values"+  parseJSON _ = mempty  -- | Constructor for 'SSMAssociationTarget' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/Tag.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html  module Stratosphere.ResourceProperties.Tag where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   Tag   { _tagKey :: Val Text   , _tagValue :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON Tag where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 4, omitNothingFields = True }+  toJSON Tag{..} =+    object $+    catMaybes+    [ Just ("Key" .= _tagKey)+    , Just ("Value" .= _tagValue)+    ]  instance FromJSON Tag where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 4, omitNothingFields = True }+  parseJSON (Object obj) =+    Tag <$>+      obj .: "Key" <*>+      obj .: "Value"+  parseJSON _ = mempty  -- | Constructor for 'Tag' containing required fields as arguments. tag
library-gen/Stratosphere/ResourceProperties/WAFByteMatchSetByteMatchTuple.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples.html  module Stratosphere.ResourceProperties.WAFByteMatchSetByteMatchTuple where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.WAFByteMatchSetFieldToMatch@@ -23,13 +23,28 @@   , _wAFByteMatchSetByteMatchTupleTargetString :: Maybe (Val Text)   , _wAFByteMatchSetByteMatchTupleTargetStringBase64 :: Maybe (Val Text)   , _wAFByteMatchSetByteMatchTupleTextTransformation :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON WAFByteMatchSetByteMatchTuple where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  toJSON WAFByteMatchSetByteMatchTuple{..} =+    object $+    catMaybes+    [ Just ("FieldToMatch" .= _wAFByteMatchSetByteMatchTupleFieldToMatch)+    , Just ("PositionalConstraint" .= _wAFByteMatchSetByteMatchTuplePositionalConstraint)+    , ("TargetString" .=) <$> _wAFByteMatchSetByteMatchTupleTargetString+    , ("TargetStringBase64" .=) <$> _wAFByteMatchSetByteMatchTupleTargetStringBase64+    , Just ("TextTransformation" .= _wAFByteMatchSetByteMatchTupleTextTransformation)+    ]  instance FromJSON WAFByteMatchSetByteMatchTuple where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  parseJSON (Object obj) =+    WAFByteMatchSetByteMatchTuple <$>+      obj .: "FieldToMatch" <*>+      obj .: "PositionalConstraint" <*>+      obj .:? "TargetString" <*>+      obj .:? "TargetStringBase64" <*>+      obj .: "TextTransformation"+  parseJSON _ = mempty  -- | Constructor for 'WAFByteMatchSetByteMatchTuple' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/WAFByteMatchSetFieldToMatch.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples-fieldtomatch.html  module Stratosphere.ResourceProperties.WAFByteMatchSetFieldToMatch where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   WAFByteMatchSetFieldToMatch   { _wAFByteMatchSetFieldToMatchData :: Maybe (Val Text)   , _wAFByteMatchSetFieldToMatchType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON WAFByteMatchSetFieldToMatch where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON WAFByteMatchSetFieldToMatch{..} =+    object $+    catMaybes+    [ ("Data" .=) <$> _wAFByteMatchSetFieldToMatchData+    , Just ("Type" .= _wAFByteMatchSetFieldToMatchType)+    ]  instance FromJSON WAFByteMatchSetFieldToMatch where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    WAFByteMatchSetFieldToMatch <$>+      obj .:? "Data" <*>+      obj .: "Type"+  parseJSON _ = mempty  -- | Constructor for 'WAFByteMatchSetFieldToMatch' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/WAFIPSetIPSetDescriptor.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-ipset-ipsetdescriptors.html  module Stratosphere.ResourceProperties.WAFIPSetIPSetDescriptor where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   WAFIPSetIPSetDescriptor   { _wAFIPSetIPSetDescriptorType :: Val Text   , _wAFIPSetIPSetDescriptorValue :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON WAFIPSetIPSetDescriptor where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  toJSON WAFIPSetIPSetDescriptor{..} =+    object $+    catMaybes+    [ Just ("Type" .= _wAFIPSetIPSetDescriptorType)+    , Just ("Value" .= _wAFIPSetIPSetDescriptorValue)+    ]  instance FromJSON WAFIPSetIPSetDescriptor where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  parseJSON (Object obj) =+    WAFIPSetIPSetDescriptor <$>+      obj .: "Type" <*>+      obj .: "Value"+  parseJSON _ = mempty  -- | Constructor for 'WAFIPSetIPSetDescriptor' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/WAFRulePredicate.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-rule-predicates.html  module Stratosphere.ResourceProperties.WAFRulePredicate where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _wAFRulePredicateDataId :: Val Text   , _wAFRulePredicateNegated :: Val Bool'   , _wAFRulePredicateType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON WAFRulePredicate where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  toJSON WAFRulePredicate{..} =+    object $+    catMaybes+    [ Just ("DataId" .= _wAFRulePredicateDataId)+    , Just ("Negated" .= _wAFRulePredicateNegated)+    , Just ("Type" .= _wAFRulePredicateType)+    ]  instance FromJSON WAFRulePredicate where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  parseJSON (Object obj) =+    WAFRulePredicate <$>+      obj .: "DataId" <*>+      obj .: "Negated" <*>+      obj .: "Type"+  parseJSON _ = mempty  -- | Constructor for 'WAFRulePredicate' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/WAFSizeConstraintSetFieldToMatch.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint-fieldtomatch.html  module Stratosphere.ResourceProperties.WAFSizeConstraintSetFieldToMatch where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   WAFSizeConstraintSetFieldToMatch   { _wAFSizeConstraintSetFieldToMatchData :: Maybe (Val Text)   , _wAFSizeConstraintSetFieldToMatchType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON WAFSizeConstraintSetFieldToMatch where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  toJSON WAFSizeConstraintSetFieldToMatch{..} =+    object $+    catMaybes+    [ ("Data" .=) <$> _wAFSizeConstraintSetFieldToMatchData+    , Just ("Type" .= _wAFSizeConstraintSetFieldToMatchType)+    ]  instance FromJSON WAFSizeConstraintSetFieldToMatch where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  parseJSON (Object obj) =+    WAFSizeConstraintSetFieldToMatch <$>+      obj .:? "Data" <*>+      obj .: "Type"+  parseJSON _ = mempty  -- | Constructor for 'WAFSizeConstraintSetFieldToMatch' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/WAFSizeConstraintSetSizeConstraint.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint.html  module Stratosphere.ResourceProperties.WAFSizeConstraintSetSizeConstraint where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.WAFSizeConstraintSetFieldToMatch@@ -22,13 +22,26 @@   , _wAFSizeConstraintSetSizeConstraintFieldToMatch :: WAFSizeConstraintSetFieldToMatch   , _wAFSizeConstraintSetSizeConstraintSize :: Val Integer'   , _wAFSizeConstraintSetSizeConstraintTextTransformation :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON WAFSizeConstraintSetSizeConstraint where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  toJSON WAFSizeConstraintSetSizeConstraint{..} =+    object $+    catMaybes+    [ Just ("ComparisonOperator" .= _wAFSizeConstraintSetSizeConstraintComparisonOperator)+    , Just ("FieldToMatch" .= _wAFSizeConstraintSetSizeConstraintFieldToMatch)+    , Just ("Size" .= _wAFSizeConstraintSetSizeConstraintSize)+    , Just ("TextTransformation" .= _wAFSizeConstraintSetSizeConstraintTextTransformation)+    ]  instance FromJSON WAFSizeConstraintSetSizeConstraint where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  parseJSON (Object obj) =+    WAFSizeConstraintSetSizeConstraint <$>+      obj .: "ComparisonOperator" <*>+      obj .: "FieldToMatch" <*>+      obj .: "Size" <*>+      obj .: "TextTransformation"+  parseJSON _ = mempty  -- | Constructor for 'WAFSizeConstraintSetSizeConstraint' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/WAFSqlInjectionMatchSetFieldToMatch.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples-fieldtomatch.html  module Stratosphere.ResourceProperties.WAFSqlInjectionMatchSetFieldToMatch where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   WAFSqlInjectionMatchSetFieldToMatch   { _wAFSqlInjectionMatchSetFieldToMatchData :: Maybe (Val Text)   , _wAFSqlInjectionMatchSetFieldToMatchType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON WAFSqlInjectionMatchSetFieldToMatch where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  toJSON WAFSqlInjectionMatchSetFieldToMatch{..} =+    object $+    catMaybes+    [ ("Data" .=) <$> _wAFSqlInjectionMatchSetFieldToMatchData+    , Just ("Type" .= _wAFSqlInjectionMatchSetFieldToMatchType)+    ]  instance FromJSON WAFSqlInjectionMatchSetFieldToMatch where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  parseJSON (Object obj) =+    WAFSqlInjectionMatchSetFieldToMatch <$>+      obj .:? "Data" <*>+      obj .: "Type"+  parseJSON _ = mempty  -- | Constructor for 'WAFSqlInjectionMatchSetFieldToMatch' containing required -- | fields as arguments.
library-gen/Stratosphere/ResourceProperties/WAFSqlInjectionMatchSetSqlInjectionMatchTuple.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sqlinjectionmatchset-sqlinjectionmatchtuples.html  module Stratosphere.ResourceProperties.WAFSqlInjectionMatchSetSqlInjectionMatchTuple where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.WAFSqlInjectionMatchSetFieldToMatch@@ -22,13 +22,22 @@   WAFSqlInjectionMatchSetSqlInjectionMatchTuple   { _wAFSqlInjectionMatchSetSqlInjectionMatchTupleFieldToMatch :: WAFSqlInjectionMatchSetFieldToMatch   , _wAFSqlInjectionMatchSetSqlInjectionMatchTupleTextTransformation :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON WAFSqlInjectionMatchSetSqlInjectionMatchTuple where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 46, omitNothingFields = True }+  toJSON WAFSqlInjectionMatchSetSqlInjectionMatchTuple{..} =+    object $+    catMaybes+    [ Just ("FieldToMatch" .= _wAFSqlInjectionMatchSetSqlInjectionMatchTupleFieldToMatch)+    , Just ("TextTransformation" .= _wAFSqlInjectionMatchSetSqlInjectionMatchTupleTextTransformation)+    ]  instance FromJSON WAFSqlInjectionMatchSetSqlInjectionMatchTuple where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 46, omitNothingFields = True }+  parseJSON (Object obj) =+    WAFSqlInjectionMatchSetSqlInjectionMatchTuple <$>+      obj .: "FieldToMatch" <*>+      obj .: "TextTransformation"+  parseJSON _ = mempty  -- | Constructor for 'WAFSqlInjectionMatchSetSqlInjectionMatchTuple' -- | containing required fields as arguments.
library-gen/Stratosphere/ResourceProperties/WAFWebACLActivatedRule.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-webacl-rules.html  module Stratosphere.ResourceProperties.WAFWebACLActivatedRule where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.WAFWebACLWafAction@@ -21,13 +21,24 @@   { _wAFWebACLActivatedRuleAction :: WAFWebACLWafAction   , _wAFWebACLActivatedRulePriority :: Val Integer'   , _wAFWebACLActivatedRuleRuleId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON WAFWebACLActivatedRule where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  toJSON WAFWebACLActivatedRule{..} =+    object $+    catMaybes+    [ Just ("Action" .= _wAFWebACLActivatedRuleAction)+    , Just ("Priority" .= _wAFWebACLActivatedRulePriority)+    , Just ("RuleId" .= _wAFWebACLActivatedRuleRuleId)+    ]  instance FromJSON WAFWebACLActivatedRule where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  parseJSON (Object obj) =+    WAFWebACLActivatedRule <$>+      obj .: "Action" <*>+      obj .: "Priority" <*>+      obj .: "RuleId"+  parseJSON _ = mempty  -- | Constructor for 'WAFWebACLActivatedRule' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/WAFWebACLWafAction.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-webacl-action.html  module Stratosphere.ResourceProperties.WAFWebACLWafAction where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data WAFWebACLWafAction =   WAFWebACLWafAction   { _wAFWebACLWafActionType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON WAFWebACLWafAction where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  toJSON WAFWebACLWafAction{..} =+    object $+    catMaybes+    [ Just ("Type" .= _wAFWebACLWafActionType)+    ]  instance FromJSON WAFWebACLWafAction where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  parseJSON (Object obj) =+    WAFWebACLWafAction <$>+      obj .: "Type"+  parseJSON _ = mempty  -- | Constructor for 'WAFWebACLWafAction' containing required fields as -- | arguments.
library-gen/Stratosphere/ResourceProperties/WAFXssMatchSetFieldToMatch.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-xssmatchset-xssmatchtuple-fieldtomatch.html  module Stratosphere.ResourceProperties.WAFXssMatchSetFieldToMatch where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   WAFXssMatchSetFieldToMatch   { _wAFXssMatchSetFieldToMatchData :: Maybe (Val Text)   , _wAFXssMatchSetFieldToMatchType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON WAFXssMatchSetFieldToMatch where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  toJSON WAFXssMatchSetFieldToMatch{..} =+    object $+    catMaybes+    [ ("Data" .=) <$> _wAFXssMatchSetFieldToMatchData+    , Just ("Type" .= _wAFXssMatchSetFieldToMatchType)+    ]  instance FromJSON WAFXssMatchSetFieldToMatch where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  parseJSON (Object obj) =+    WAFXssMatchSetFieldToMatch <$>+      obj .:? "Data" <*>+      obj .: "Type"+  parseJSON _ = mempty  -- | Constructor for 'WAFXssMatchSetFieldToMatch' containing required fields -- | as arguments.
library-gen/Stratosphere/ResourceProperties/WAFXssMatchSetXssMatchTuple.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-xssmatchset-xssmatchtuple.html  module Stratosphere.ResourceProperties.WAFXssMatchSetXssMatchTuple where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.WAFXssMatchSetFieldToMatch@@ -20,13 +20,22 @@   WAFXssMatchSetXssMatchTuple   { _wAFXssMatchSetXssMatchTupleFieldToMatch :: WAFXssMatchSetFieldToMatch   , _wAFXssMatchSetXssMatchTupleTextTransformation :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON WAFXssMatchSetXssMatchTuple where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON WAFXssMatchSetXssMatchTuple{..} =+    object $+    catMaybes+    [ Just ("FieldToMatch" .= _wAFXssMatchSetXssMatchTupleFieldToMatch)+    , Just ("TextTransformation" .= _wAFXssMatchSetXssMatchTupleTextTransformation)+    ]  instance FromJSON WAFXssMatchSetXssMatchTuple where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    WAFXssMatchSetXssMatchTuple <$>+      obj .: "FieldToMatch" <*>+      obj .: "TextTransformation"+  parseJSON _ = mempty  -- | Constructor for 'WAFXssMatchSetXssMatchTuple' containing required fields -- | as arguments.
library-gen/Stratosphere/Resources/ApiGatewayAccount.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-account.html  module Stratosphere.Resources.ApiGatewayAccount where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data ApiGatewayAccount =   ApiGatewayAccount   { _apiGatewayAccountCloudWatchRoleArn :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayAccount where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 18, omitNothingFields = True }+  toJSON ApiGatewayAccount{..} =+    object $+    catMaybes+    [ ("CloudWatchRoleArn" .=) <$> _apiGatewayAccountCloudWatchRoleArn+    ]  instance FromJSON ApiGatewayAccount where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 18, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayAccount <$>+      obj .:? "CloudWatchRoleArn"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayAccount' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/ApiGatewayApiKey.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html  module Stratosphere.Resources.ApiGatewayApiKey where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ApiGatewayApiKeyStageKey@@ -22,13 +22,26 @@   , _apiGatewayApiKeyEnabled :: Maybe (Val Bool')   , _apiGatewayApiKeyName :: Maybe (Val Text)   , _apiGatewayApiKeyStageKeys :: Maybe [ApiGatewayApiKeyStageKey]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayApiKey where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  toJSON ApiGatewayApiKey{..} =+    object $+    catMaybes+    [ ("Description" .=) <$> _apiGatewayApiKeyDescription+    , ("Enabled" .=) <$> _apiGatewayApiKeyEnabled+    , ("Name" .=) <$> _apiGatewayApiKeyName+    , ("StageKeys" .=) <$> _apiGatewayApiKeyStageKeys+    ]  instance FromJSON ApiGatewayApiKey where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayApiKey <$>+      obj .:? "Description" <*>+      obj .:? "Enabled" <*>+      obj .:? "Name" <*>+      obj .:? "StageKeys"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayApiKey' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/ApiGatewayAuthorizer.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html  module Stratosphere.Resources.ApiGatewayAuthorizer where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.Types@@ -27,13 +27,36 @@   , _apiGatewayAuthorizerProviderARNs :: Maybe [Val Text]   , _apiGatewayAuthorizerRestApiId :: Maybe (Val Text)   , _apiGatewayAuthorizerType :: Maybe (Val AuthorizerType)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayAuthorizer where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  toJSON ApiGatewayAuthorizer{..} =+    object $+    catMaybes+    [ ("AuthorizerCredentials" .=) <$> _apiGatewayAuthorizerAuthorizerCredentials+    , ("AuthorizerResultTtlInSeconds" .=) <$> _apiGatewayAuthorizerAuthorizerResultTtlInSeconds+    , ("AuthorizerUri" .=) <$> _apiGatewayAuthorizerAuthorizerUri+    , ("IdentitySource" .=) <$> _apiGatewayAuthorizerIdentitySource+    , ("IdentityValidationExpression" .=) <$> _apiGatewayAuthorizerIdentityValidationExpression+    , ("Name" .=) <$> _apiGatewayAuthorizerName+    , ("ProviderARNs" .=) <$> _apiGatewayAuthorizerProviderARNs+    , ("RestApiId" .=) <$> _apiGatewayAuthorizerRestApiId+    , ("Type" .=) <$> _apiGatewayAuthorizerType+    ]  instance FromJSON ApiGatewayAuthorizer where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayAuthorizer <$>+      obj .:? "AuthorizerCredentials" <*>+      obj .:? "AuthorizerResultTtlInSeconds" <*>+      obj .:? "AuthorizerUri" <*>+      obj .:? "IdentitySource" <*>+      obj .:? "IdentityValidationExpression" <*>+      obj .:? "Name" <*>+      obj .:? "ProviderARNs" <*>+      obj .:? "RestApiId" <*>+      obj .:? "Type"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayAuthorizer' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/ApiGatewayBasePathMapping.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html  module Stratosphere.Resources.ApiGatewayBasePathMapping where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,26 @@   , _apiGatewayBasePathMappingDomainName :: Maybe (Val Text)   , _apiGatewayBasePathMappingRestApiId :: Maybe (Val Text)   , _apiGatewayBasePathMappingStage :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayBasePathMapping where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }+  toJSON ApiGatewayBasePathMapping{..} =+    object $+    catMaybes+    [ ("BasePath" .=) <$> _apiGatewayBasePathMappingBasePath+    , ("DomainName" .=) <$> _apiGatewayBasePathMappingDomainName+    , ("RestApiId" .=) <$> _apiGatewayBasePathMappingRestApiId+    , ("Stage" .=) <$> _apiGatewayBasePathMappingStage+    ]  instance FromJSON ApiGatewayBasePathMapping where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayBasePathMapping <$>+      obj .:? "BasePath" <*>+      obj .:? "DomainName" <*>+      obj .:? "RestApiId" <*>+      obj .:? "Stage"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayBasePathMapping' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/ApiGatewayClientCertificate.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-clientcertificate.html  module Stratosphere.Resources.ApiGatewayClientCertificate where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data ApiGatewayClientCertificate =   ApiGatewayClientCertificate   { _apiGatewayClientCertificateDescription :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayClientCertificate where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON ApiGatewayClientCertificate{..} =+    object $+    catMaybes+    [ ("Description" .=) <$> _apiGatewayClientCertificateDescription+    ]  instance FromJSON ApiGatewayClientCertificate where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayClientCertificate <$>+      obj .:? "Description"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayClientCertificate' containing required fields -- | as arguments.
library-gen/Stratosphere/Resources/ApiGatewayDeployment.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html  module Stratosphere.Resources.ApiGatewayDeployment where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ApiGatewayDeploymentStageDescription@@ -22,13 +22,26 @@   , _apiGatewayDeploymentRestApiId :: Val Text   , _apiGatewayDeploymentStageDescription :: Maybe ApiGatewayDeploymentStageDescription   , _apiGatewayDeploymentStageName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayDeployment where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  toJSON ApiGatewayDeployment{..} =+    object $+    catMaybes+    [ ("Description" .=) <$> _apiGatewayDeploymentDescription+    , Just ("RestApiId" .= _apiGatewayDeploymentRestApiId)+    , ("StageDescription" .=) <$> _apiGatewayDeploymentStageDescription+    , ("StageName" .=) <$> _apiGatewayDeploymentStageName+    ]  instance FromJSON ApiGatewayDeployment where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayDeployment <$>+      obj .:? "Description" <*>+      obj .: "RestApiId" <*>+      obj .:? "StageDescription" <*>+      obj .:? "StageName"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayDeployment' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/ApiGatewayMethod.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html  module Stratosphere.Resources.ApiGatewayMethod where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.Types@@ -30,13 +30,38 @@   , _apiGatewayMethodRequestParameters :: Maybe Object   , _apiGatewayMethodResourceId :: Maybe (Val Text)   , _apiGatewayMethodRestApiId :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayMethod where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  toJSON ApiGatewayMethod{..} =+    object $+    catMaybes+    [ ("ApiKeyRequired" .=) <$> _apiGatewayMethodApiKeyRequired+    , ("AuthorizationType" .=) <$> _apiGatewayMethodAuthorizationType+    , ("AuthorizerId" .=) <$> _apiGatewayMethodAuthorizerId+    , Just ("HttpMethod" .= _apiGatewayMethodHttpMethod)+    , ("Integration" .=) <$> _apiGatewayMethodIntegration+    , ("MethodResponses" .=) <$> _apiGatewayMethodMethodResponses+    , ("RequestModels" .=) <$> _apiGatewayMethodRequestModels+    , ("RequestParameters" .=) <$> _apiGatewayMethodRequestParameters+    , ("ResourceId" .=) <$> _apiGatewayMethodResourceId+    , ("RestApiId" .=) <$> _apiGatewayMethodRestApiId+    ]  instance FromJSON ApiGatewayMethod where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayMethod <$>+      obj .:? "ApiKeyRequired" <*>+      obj .:? "AuthorizationType" <*>+      obj .:? "AuthorizerId" <*>+      obj .: "HttpMethod" <*>+      obj .:? "Integration" <*>+      obj .:? "MethodResponses" <*>+      obj .:? "RequestModels" <*>+      obj .:? "RequestParameters" <*>+      obj .:? "ResourceId" <*>+      obj .:? "RestApiId"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayMethod' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/ApiGatewayModel.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html  module Stratosphere.Resources.ApiGatewayModel where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -23,13 +23,28 @@   , _apiGatewayModelName :: Maybe (Val Text)   , _apiGatewayModelRestApiId :: Val Text   , _apiGatewayModelSchema :: Maybe Object-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayModel where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }+  toJSON ApiGatewayModel{..} =+    object $+    catMaybes+    [ ("ContentType" .=) <$> _apiGatewayModelContentType+    , ("Description" .=) <$> _apiGatewayModelDescription+    , ("Name" .=) <$> _apiGatewayModelName+    , Just ("RestApiId" .= _apiGatewayModelRestApiId)+    , ("Schema" .=) <$> _apiGatewayModelSchema+    ]  instance FromJSON ApiGatewayModel where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayModel <$>+      obj .:? "ContentType" <*>+      obj .:? "Description" <*>+      obj .:? "Name" <*>+      obj .: "RestApiId" <*>+      obj .:? "Schema"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayModel' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/ApiGatewayResource.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html  module Stratosphere.Resources.ApiGatewayResource where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _apiGatewayResourceParentId :: Val Text   , _apiGatewayResourcePathPart :: Val Text   , _apiGatewayResourceRestApiId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayResource where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  toJSON ApiGatewayResource{..} =+    object $+    catMaybes+    [ Just ("ParentId" .= _apiGatewayResourceParentId)+    , Just ("PathPart" .= _apiGatewayResourcePathPart)+    , Just ("RestApiId" .= _apiGatewayResourceRestApiId)+    ]  instance FromJSON ApiGatewayResource where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayResource <$>+      obj .: "ParentId" <*>+      obj .: "PathPart" <*>+      obj .: "RestApiId"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayResource' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/ApiGatewayRestApi.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html  module Stratosphere.Resources.ApiGatewayRestApi where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ApiGatewayRestApiS3Location@@ -26,13 +26,34 @@   , _apiGatewayRestApiMode :: Maybe (Val Text)   , _apiGatewayRestApiName :: Maybe (Val Text)   , _apiGatewayRestApiParameters :: Maybe Object-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayRestApi where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 18, omitNothingFields = True }+  toJSON ApiGatewayRestApi{..} =+    object $+    catMaybes+    [ ("Body" .=) <$> _apiGatewayRestApiBody+    , ("BodyS3Location" .=) <$> _apiGatewayRestApiBodyS3Location+    , ("CloneFrom" .=) <$> _apiGatewayRestApiCloneFrom+    , ("Description" .=) <$> _apiGatewayRestApiDescription+    , ("FailOnWarnings" .=) <$> _apiGatewayRestApiFailOnWarnings+    , ("Mode" .=) <$> _apiGatewayRestApiMode+    , ("Name" .=) <$> _apiGatewayRestApiName+    , ("Parameters" .=) <$> _apiGatewayRestApiParameters+    ]  instance FromJSON ApiGatewayRestApi where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 18, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayRestApi <$>+      obj .:? "Body" <*>+      obj .:? "BodyS3Location" <*>+      obj .:? "CloneFrom" <*>+      obj .:? "Description" <*>+      obj .:? "FailOnWarnings" <*>+      obj .:? "Mode" <*>+      obj .:? "Name" <*>+      obj .:? "Parameters"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayRestApi' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/ApiGatewayStage.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html  module Stratosphere.Resources.ApiGatewayStage where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ApiGatewayStageMethodSetting@@ -27,13 +27,36 @@   , _apiGatewayStageRestApiId :: Maybe (Val Text)   , _apiGatewayStageStageName :: Maybe (Val Text)   , _apiGatewayStageVariables :: Maybe Object-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayStage where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }+  toJSON ApiGatewayStage{..} =+    object $+    catMaybes+    [ ("CacheClusterEnabled" .=) <$> _apiGatewayStageCacheClusterEnabled+    , ("CacheClusterSize" .=) <$> _apiGatewayStageCacheClusterSize+    , ("ClientCertificateId" .=) <$> _apiGatewayStageClientCertificateId+    , ("DeploymentId" .=) <$> _apiGatewayStageDeploymentId+    , ("Description" .=) <$> _apiGatewayStageDescription+    , ("MethodSettings" .=) <$> _apiGatewayStageMethodSettings+    , ("RestApiId" .=) <$> _apiGatewayStageRestApiId+    , ("StageName" .=) <$> _apiGatewayStageStageName+    , ("Variables" .=) <$> _apiGatewayStageVariables+    ]  instance FromJSON ApiGatewayStage where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayStage <$>+      obj .:? "CacheClusterEnabled" <*>+      obj .:? "CacheClusterSize" <*>+      obj .:? "ClientCertificateId" <*>+      obj .:? "DeploymentId" <*>+      obj .:? "Description" <*>+      obj .:? "MethodSettings" <*>+      obj .:? "RestApiId" <*>+      obj .:? "StageName" <*>+      obj .:? "Variables"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayStage' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/ApiGatewayUsagePlan.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html  module Stratosphere.Resources.ApiGatewayUsagePlan where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ApiGatewayUsagePlanApiStage@@ -25,13 +25,28 @@   , _apiGatewayUsagePlanQuota :: Maybe ApiGatewayUsagePlanQuotaSettings   , _apiGatewayUsagePlanThrottle :: Maybe ApiGatewayUsagePlanThrottleSettings   , _apiGatewayUsagePlanUsagePlanName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApiGatewayUsagePlan where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  toJSON ApiGatewayUsagePlan{..} =+    object $+    catMaybes+    [ ("ApiStages" .=) <$> _apiGatewayUsagePlanApiStages+    , ("Description" .=) <$> _apiGatewayUsagePlanDescription+    , ("Quota" .=) <$> _apiGatewayUsagePlanQuota+    , ("Throttle" .=) <$> _apiGatewayUsagePlanThrottle+    , ("UsagePlanName" .=) <$> _apiGatewayUsagePlanUsagePlanName+    ]  instance FromJSON ApiGatewayUsagePlan where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  parseJSON (Object obj) =+    ApiGatewayUsagePlan <$>+      obj .:? "ApiStages" <*>+      obj .:? "Description" <*>+      obj .:? "Quota" <*>+      obj .:? "Throttle" <*>+      obj .:? "UsagePlanName"+  parseJSON _ = mempty  -- | Constructor for 'ApiGatewayUsagePlan' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/ApplicationAutoScalingScalableTarget.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html  module Stratosphere.Resources.ApplicationAutoScalingScalableTarget where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -24,13 +24,30 @@   , _applicationAutoScalingScalableTargetRoleARN :: Val Text   , _applicationAutoScalingScalableTargetScalableDimension :: Val Text   , _applicationAutoScalingScalableTargetServiceNamespace :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApplicationAutoScalingScalableTarget where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 37, omitNothingFields = True }+  toJSON ApplicationAutoScalingScalableTarget{..} =+    object $+    catMaybes+    [ Just ("MaxCapacity" .= _applicationAutoScalingScalableTargetMaxCapacity)+    , Just ("MinCapacity" .= _applicationAutoScalingScalableTargetMinCapacity)+    , Just ("ResourceId" .= _applicationAutoScalingScalableTargetResourceId)+    , Just ("RoleARN" .= _applicationAutoScalingScalableTargetRoleARN)+    , Just ("ScalableDimension" .= _applicationAutoScalingScalableTargetScalableDimension)+    , Just ("ServiceNamespace" .= _applicationAutoScalingScalableTargetServiceNamespace)+    ]  instance FromJSON ApplicationAutoScalingScalableTarget where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 37, omitNothingFields = True }+  parseJSON (Object obj) =+    ApplicationAutoScalingScalableTarget <$>+      obj .: "MaxCapacity" <*>+      obj .: "MinCapacity" <*>+      obj .: "ResourceId" <*>+      obj .: "RoleARN" <*>+      obj .: "ScalableDimension" <*>+      obj .: "ServiceNamespace"+  parseJSON _ = mempty  -- | Constructor for 'ApplicationAutoScalingScalableTarget' containing -- | required fields as arguments.
library-gen/Stratosphere/Resources/ApplicationAutoScalingScalingPolicy.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html  module Stratosphere.Resources.ApplicationAutoScalingScalingPolicy where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ApplicationAutoScalingScalingPolicyStepScalingPolicyConfiguration@@ -25,13 +25,32 @@   , _applicationAutoScalingScalingPolicyScalingTargetId :: Maybe (Val Text)   , _applicationAutoScalingScalingPolicyServiceNamespace :: Maybe (Val Text)   , _applicationAutoScalingScalingPolicyStepScalingPolicyConfiguration :: Maybe ApplicationAutoScalingScalingPolicyStepScalingPolicyConfiguration-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ApplicationAutoScalingScalingPolicy where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  toJSON ApplicationAutoScalingScalingPolicy{..} =+    object $+    catMaybes+    [ Just ("PolicyName" .= _applicationAutoScalingScalingPolicyPolicyName)+    , Just ("PolicyType" .= _applicationAutoScalingScalingPolicyPolicyType)+    , ("ResourceId" .=) <$> _applicationAutoScalingScalingPolicyResourceId+    , ("ScalableDimension" .=) <$> _applicationAutoScalingScalingPolicyScalableDimension+    , ("ScalingTargetId" .=) <$> _applicationAutoScalingScalingPolicyScalingTargetId+    , ("ServiceNamespace" .=) <$> _applicationAutoScalingScalingPolicyServiceNamespace+    , ("StepScalingPolicyConfiguration" .=) <$> _applicationAutoScalingScalingPolicyStepScalingPolicyConfiguration+    ]  instance FromJSON ApplicationAutoScalingScalingPolicy where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  parseJSON (Object obj) =+    ApplicationAutoScalingScalingPolicy <$>+      obj .: "PolicyName" <*>+      obj .: "PolicyType" <*>+      obj .:? "ResourceId" <*>+      obj .:? "ScalableDimension" <*>+      obj .:? "ScalingTargetId" <*>+      obj .:? "ServiceNamespace" <*>+      obj .:? "StepScalingPolicyConfiguration"+  parseJSON _ = mempty  -- | Constructor for 'ApplicationAutoScalingScalingPolicy' containing required -- | fields as arguments.
library-gen/Stratosphere/Resources/AutoScalingAutoScalingGroup.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html  module Stratosphere.Resources.AutoScalingAutoScalingGroup where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.AutoScalingAutoScalingGroupMetricsCollection@@ -37,13 +37,52 @@   , _autoScalingAutoScalingGroupTargetGroupARNs :: Maybe [Val Text]   , _autoScalingAutoScalingGroupTerminationPolicies :: Maybe [Val Text]   , _autoScalingAutoScalingGroupVPCZoneIdentifier :: Maybe [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON AutoScalingAutoScalingGroup where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON AutoScalingAutoScalingGroup{..} =+    object $+    catMaybes+    [ ("AvailabilityZones" .=) <$> _autoScalingAutoScalingGroupAvailabilityZones+    , ("Cooldown" .=) <$> _autoScalingAutoScalingGroupCooldown+    , ("DesiredCapacity" .=) <$> _autoScalingAutoScalingGroupDesiredCapacity+    , ("HealthCheckGracePeriod" .=) <$> _autoScalingAutoScalingGroupHealthCheckGracePeriod+    , ("HealthCheckType" .=) <$> _autoScalingAutoScalingGroupHealthCheckType+    , ("InstanceId" .=) <$> _autoScalingAutoScalingGroupInstanceId+    , ("LaunchConfigurationName" .=) <$> _autoScalingAutoScalingGroupLaunchConfigurationName+    , ("LoadBalancerNames" .=) <$> _autoScalingAutoScalingGroupLoadBalancerNames+    , Just ("MaxSize" .= _autoScalingAutoScalingGroupMaxSize)+    , ("MetricsCollection" .=) <$> _autoScalingAutoScalingGroupMetricsCollection+    , Just ("MinSize" .= _autoScalingAutoScalingGroupMinSize)+    , ("NotificationConfigurations" .=) <$> _autoScalingAutoScalingGroupNotificationConfigurations+    , ("PlacementGroup" .=) <$> _autoScalingAutoScalingGroupPlacementGroup+    , ("Tags" .=) <$> _autoScalingAutoScalingGroupTags+    , ("TargetGroupARNs" .=) <$> _autoScalingAutoScalingGroupTargetGroupARNs+    , ("TerminationPolicies" .=) <$> _autoScalingAutoScalingGroupTerminationPolicies+    , ("VPCZoneIdentifier" .=) <$> _autoScalingAutoScalingGroupVPCZoneIdentifier+    ]  instance FromJSON AutoScalingAutoScalingGroup where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    AutoScalingAutoScalingGroup <$>+      obj .:? "AvailabilityZones" <*>+      obj .:? "Cooldown" <*>+      obj .:? "DesiredCapacity" <*>+      obj .:? "HealthCheckGracePeriod" <*>+      obj .:? "HealthCheckType" <*>+      obj .:? "InstanceId" <*>+      obj .:? "LaunchConfigurationName" <*>+      obj .:? "LoadBalancerNames" <*>+      obj .: "MaxSize" <*>+      obj .:? "MetricsCollection" <*>+      obj .: "MinSize" <*>+      obj .:? "NotificationConfigurations" <*>+      obj .:? "PlacementGroup" <*>+      obj .:? "Tags" <*>+      obj .:? "TargetGroupARNs" <*>+      obj .:? "TerminationPolicies" <*>+      obj .:? "VPCZoneIdentifier"+  parseJSON _ = mempty  -- | Constructor for 'AutoScalingAutoScalingGroup' containing required fields -- | as arguments.
library-gen/Stratosphere/Resources/AutoScalingLaunchConfiguration.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html  module Stratosphere.Resources.AutoScalingLaunchConfiguration where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.AutoScalingLaunchConfigurationBlockDeviceMapping@@ -35,13 +35,52 @@   , _autoScalingLaunchConfigurationSecurityGroups :: Maybe [Val Text]   , _autoScalingLaunchConfigurationSpotPrice :: Maybe (Val Text)   , _autoScalingLaunchConfigurationUserData :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON AutoScalingLaunchConfiguration where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  toJSON AutoScalingLaunchConfiguration{..} =+    object $+    catMaybes+    [ ("AssociatePublicIpAddress" .=) <$> _autoScalingLaunchConfigurationAssociatePublicIpAddress+    , ("BlockDeviceMappings" .=) <$> _autoScalingLaunchConfigurationBlockDeviceMappings+    , ("ClassicLinkVPCId" .=) <$> _autoScalingLaunchConfigurationClassicLinkVPCId+    , ("ClassicLinkVPCSecurityGroups" .=) <$> _autoScalingLaunchConfigurationClassicLinkVPCSecurityGroups+    , ("EbsOptimized" .=) <$> _autoScalingLaunchConfigurationEbsOptimized+    , ("IamInstanceProfile" .=) <$> _autoScalingLaunchConfigurationIamInstanceProfile+    , Just ("ImageId" .= _autoScalingLaunchConfigurationImageId)+    , ("InstanceId" .=) <$> _autoScalingLaunchConfigurationInstanceId+    , ("InstanceMonitoring" .=) <$> _autoScalingLaunchConfigurationInstanceMonitoring+    , Just ("InstanceType" .= _autoScalingLaunchConfigurationInstanceType)+    , ("KernelId" .=) <$> _autoScalingLaunchConfigurationKernelId+    , ("KeyName" .=) <$> _autoScalingLaunchConfigurationKeyName+    , ("PlacementTenancy" .=) <$> _autoScalingLaunchConfigurationPlacementTenancy+    , ("RamDiskId" .=) <$> _autoScalingLaunchConfigurationRamDiskId+    , ("SecurityGroups" .=) <$> _autoScalingLaunchConfigurationSecurityGroups+    , ("SpotPrice" .=) <$> _autoScalingLaunchConfigurationSpotPrice+    , ("UserData" .=) <$> _autoScalingLaunchConfigurationUserData+    ]  instance FromJSON AutoScalingLaunchConfiguration where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  parseJSON (Object obj) =+    AutoScalingLaunchConfiguration <$>+      obj .:? "AssociatePublicIpAddress" <*>+      obj .:? "BlockDeviceMappings" <*>+      obj .:? "ClassicLinkVPCId" <*>+      obj .:? "ClassicLinkVPCSecurityGroups" <*>+      obj .:? "EbsOptimized" <*>+      obj .:? "IamInstanceProfile" <*>+      obj .: "ImageId" <*>+      obj .:? "InstanceId" <*>+      obj .:? "InstanceMonitoring" <*>+      obj .: "InstanceType" <*>+      obj .:? "KernelId" <*>+      obj .:? "KeyName" <*>+      obj .:? "PlacementTenancy" <*>+      obj .:? "RamDiskId" <*>+      obj .:? "SecurityGroups" <*>+      obj .:? "SpotPrice" <*>+      obj .:? "UserData"+  parseJSON _ = mempty  -- | Constructor for 'AutoScalingLaunchConfiguration' containing required -- | fields as arguments.
library-gen/Stratosphere/Resources/AutoScalingLifecycleHook.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html  module Stratosphere.Resources.AutoScalingLifecycleHook where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -25,13 +25,32 @@   , _autoScalingLifecycleHookNotificationMetadata :: Maybe (Val Text)   , _autoScalingLifecycleHookNotificationTargetARN :: Val Text   , _autoScalingLifecycleHookRoleARN :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON AutoScalingLifecycleHook where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 25, omitNothingFields = True }+  toJSON AutoScalingLifecycleHook{..} =+    object $+    catMaybes+    [ Just ("AutoScalingGroupName" .= _autoScalingLifecycleHookAutoScalingGroupName)+    , ("DefaultResult" .=) <$> _autoScalingLifecycleHookDefaultResult+    , ("HeartbeatTimeout" .=) <$> _autoScalingLifecycleHookHeartbeatTimeout+    , Just ("LifecycleTransition" .= _autoScalingLifecycleHookLifecycleTransition)+    , ("NotificationMetadata" .=) <$> _autoScalingLifecycleHookNotificationMetadata+    , Just ("NotificationTargetARN" .= _autoScalingLifecycleHookNotificationTargetARN)+    , Just ("RoleARN" .= _autoScalingLifecycleHookRoleARN)+    ]  instance FromJSON AutoScalingLifecycleHook where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 25, omitNothingFields = True }+  parseJSON (Object obj) =+    AutoScalingLifecycleHook <$>+      obj .: "AutoScalingGroupName" <*>+      obj .:? "DefaultResult" <*>+      obj .:? "HeartbeatTimeout" <*>+      obj .: "LifecycleTransition" <*>+      obj .:? "NotificationMetadata" <*>+      obj .: "NotificationTargetARN" <*>+      obj .: "RoleARN"+  parseJSON _ = mempty  -- | Constructor for 'AutoScalingLifecycleHook' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/AutoScalingScalingPolicy.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html  module Stratosphere.Resources.AutoScalingScalingPolicy where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.AutoScalingScalingPolicyStepAdjustment@@ -27,13 +27,36 @@   , _autoScalingScalingPolicyPolicyType :: Maybe (Val Text)   , _autoScalingScalingPolicyScalingAdjustment :: Maybe (Val Integer')   , _autoScalingScalingPolicyStepAdjustments :: Maybe [AutoScalingScalingPolicyStepAdjustment]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON AutoScalingScalingPolicy where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 25, omitNothingFields = True }+  toJSON AutoScalingScalingPolicy{..} =+    object $+    catMaybes+    [ Just ("AdjustmentType" .= _autoScalingScalingPolicyAdjustmentType)+    , Just ("AutoScalingGroupName" .= _autoScalingScalingPolicyAutoScalingGroupName)+    , ("Cooldown" .=) <$> _autoScalingScalingPolicyCooldown+    , ("EstimatedInstanceWarmup" .=) <$> _autoScalingScalingPolicyEstimatedInstanceWarmup+    , ("MetricAggregationType" .=) <$> _autoScalingScalingPolicyMetricAggregationType+    , ("MinAdjustmentMagnitude" .=) <$> _autoScalingScalingPolicyMinAdjustmentMagnitude+    , ("PolicyType" .=) <$> _autoScalingScalingPolicyPolicyType+    , ("ScalingAdjustment" .=) <$> _autoScalingScalingPolicyScalingAdjustment+    , ("StepAdjustments" .=) <$> _autoScalingScalingPolicyStepAdjustments+    ]  instance FromJSON AutoScalingScalingPolicy where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 25, omitNothingFields = True }+  parseJSON (Object obj) =+    AutoScalingScalingPolicy <$>+      obj .: "AdjustmentType" <*>+      obj .: "AutoScalingGroupName" <*>+      obj .:? "Cooldown" <*>+      obj .:? "EstimatedInstanceWarmup" <*>+      obj .:? "MetricAggregationType" <*>+      obj .:? "MinAdjustmentMagnitude" <*>+      obj .:? "PolicyType" <*>+      obj .:? "ScalingAdjustment" <*>+      obj .:? "StepAdjustments"+  parseJSON _ = mempty  -- | Constructor for 'AutoScalingScalingPolicy' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/AutoScalingScheduledAction.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-scheduledaction.html  module Stratosphere.Resources.AutoScalingScheduledAction where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -25,13 +25,32 @@   , _autoScalingScheduledActionMinSize :: Maybe (Val Integer')   , _autoScalingScheduledActionRecurrence :: Maybe (Val Text)   , _autoScalingScheduledActionStartTime :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON AutoScalingScheduledAction where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  toJSON AutoScalingScheduledAction{..} =+    object $+    catMaybes+    [ Just ("AutoScalingGroupName" .= _autoScalingScheduledActionAutoScalingGroupName)+    , ("DesiredCapacity" .=) <$> _autoScalingScheduledActionDesiredCapacity+    , ("EndTime" .=) <$> _autoScalingScheduledActionEndTime+    , ("MaxSize" .=) <$> _autoScalingScheduledActionMaxSize+    , ("MinSize" .=) <$> _autoScalingScheduledActionMinSize+    , ("Recurrence" .=) <$> _autoScalingScheduledActionRecurrence+    , ("StartTime" .=) <$> _autoScalingScheduledActionStartTime+    ]  instance FromJSON AutoScalingScheduledAction where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  parseJSON (Object obj) =+    AutoScalingScheduledAction <$>+      obj .: "AutoScalingGroupName" <*>+      obj .:? "DesiredCapacity" <*>+      obj .:? "EndTime" <*>+      obj .:? "MaxSize" <*>+      obj .:? "MinSize" <*>+      obj .:? "Recurrence" <*>+      obj .:? "StartTime"+  parseJSON _ = mempty  -- | Constructor for 'AutoScalingScheduledAction' containing required fields -- | as arguments.
library-gen/Stratosphere/Resources/CertificateManagerCertificate.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html  module Stratosphere.Resources.CertificateManagerCertificate where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.CertificateManagerCertificateDomainValidationOption@@ -23,13 +23,26 @@   , _certificateManagerCertificateDomainValidationOptions :: Maybe [CertificateManagerCertificateDomainValidationOption]   , _certificateManagerCertificateSubjectAlternativeNames :: Maybe [Val Text]   , _certificateManagerCertificateTags :: Maybe [Tag]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CertificateManagerCertificate where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  toJSON CertificateManagerCertificate{..} =+    object $+    catMaybes+    [ Just ("DomainName" .= _certificateManagerCertificateDomainName)+    , ("DomainValidationOptions" .=) <$> _certificateManagerCertificateDomainValidationOptions+    , ("SubjectAlternativeNames" .=) <$> _certificateManagerCertificateSubjectAlternativeNames+    , ("Tags" .=) <$> _certificateManagerCertificateTags+    ]  instance FromJSON CertificateManagerCertificate where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  parseJSON (Object obj) =+    CertificateManagerCertificate <$>+      obj .: "DomainName" <*>+      obj .:? "DomainValidationOptions" <*>+      obj .:? "SubjectAlternativeNames" <*>+      obj .:? "Tags"+  parseJSON _ = mempty  -- | Constructor for 'CertificateManagerCertificate' containing required -- | fields as arguments.
library-gen/Stratosphere/Resources/CloudFormationCustomResource.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html  module Stratosphere.Resources.CloudFormationCustomResource where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data CloudFormationCustomResource =   CloudFormationCustomResource   { _cloudFormationCustomResourceServiceToken :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CloudFormationCustomResource where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  toJSON CloudFormationCustomResource{..} =+    object $+    catMaybes+    [ Just ("ServiceToken" .= _cloudFormationCustomResourceServiceToken)+    ]  instance FromJSON CloudFormationCustomResource where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  parseJSON (Object obj) =+    CloudFormationCustomResource <$>+      obj .: "ServiceToken"+  parseJSON _ = mempty  -- | Constructor for 'CloudFormationCustomResource' containing required fields -- | as arguments.
library-gen/Stratosphere/Resources/CloudFormationStack.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html  module Stratosphere.Resources.CloudFormationStack where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Tag@@ -23,13 +23,28 @@   , _cloudFormationStackTags :: Maybe [Tag]   , _cloudFormationStackTemplateURL :: Val Text   , _cloudFormationStackTimeoutInMinutes :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CloudFormationStack where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  toJSON CloudFormationStack{..} =+    object $+    catMaybes+    [ ("NotificationARNs" .=) <$> _cloudFormationStackNotificationARNs+    , ("Parameters" .=) <$> _cloudFormationStackParameters+    , ("Tags" .=) <$> _cloudFormationStackTags+    , Just ("TemplateURL" .= _cloudFormationStackTemplateURL)+    , ("TimeoutInMinutes" .=) <$> _cloudFormationStackTimeoutInMinutes+    ]  instance FromJSON CloudFormationStack where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  parseJSON (Object obj) =+    CloudFormationStack <$>+      obj .:? "NotificationARNs" <*>+      obj .:? "Parameters" <*>+      obj .:? "Tags" <*>+      obj .: "TemplateURL" <*>+      obj .:? "TimeoutInMinutes"+  parseJSON _ = mempty  -- | Constructor for 'CloudFormationStack' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/CloudFormationWaitCondition.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html  module Stratosphere.Resources.CloudFormationWaitCondition where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _cloudFormationWaitConditionCount :: Maybe (Val Integer')   , _cloudFormationWaitConditionHandle :: Val Text   , _cloudFormationWaitConditionTimeout :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CloudFormationWaitCondition where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON CloudFormationWaitCondition{..} =+    object $+    catMaybes+    [ ("Count" .=) <$> _cloudFormationWaitConditionCount+    , Just ("Handle" .= _cloudFormationWaitConditionHandle)+    , Just ("Timeout" .= _cloudFormationWaitConditionTimeout)+    ]  instance FromJSON CloudFormationWaitCondition where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    CloudFormationWaitCondition <$>+      obj .:? "Count" <*>+      obj .: "Handle" <*>+      obj .: "Timeout"+  parseJSON _ = mempty  -- | Constructor for 'CloudFormationWaitCondition' containing required fields -- | as arguments.
library-gen/Stratosphere/Resources/CloudFormationWaitConditionHandle.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitconditionhandle.html  module Stratosphere.Resources.CloudFormationWaitConditionHandle where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,14 @@ data CloudFormationWaitConditionHandle =   CloudFormationWaitConditionHandle   { -  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CloudFormationWaitConditionHandle where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  toJSON _ = toJSON ([] :: [String])  instance FromJSON CloudFormationWaitConditionHandle where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  parseJSON (Array _) = return CloudFormationWaitConditionHandle+  parseJSON _ = mempty  -- | Constructor for 'CloudFormationWaitConditionHandle' containing required -- | fields as arguments.
library-gen/Stratosphere/Resources/CloudFrontDistribution.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution.html  module Stratosphere.Resources.CloudFrontDistribution where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.CloudFrontDistributionDistributionConfig@@ -19,13 +19,20 @@ data CloudFrontDistribution =   CloudFrontDistribution   { _cloudFrontDistributionDistributionConfig :: CloudFrontDistributionDistributionConfig-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CloudFrontDistribution where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  toJSON CloudFrontDistribution{..} =+    object $+    catMaybes+    [ Just ("DistributionConfig" .= _cloudFrontDistributionDistributionConfig)+    ]  instance FromJSON CloudFrontDistribution where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  parseJSON (Object obj) =+    CloudFrontDistribution <$>+      obj .: "DistributionConfig"+  parseJSON _ = mempty  -- | Constructor for 'CloudFrontDistribution' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/CloudTrailTrail.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html  module Stratosphere.Resources.CloudTrailTrail where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -28,13 +28,38 @@   , _cloudTrailTrailS3BucketName :: Val Text   , _cloudTrailTrailS3KeyPrefix :: Maybe (Val Text)   , _cloudTrailTrailSnsTopicName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CloudTrailTrail where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }+  toJSON CloudTrailTrail{..} =+    object $+    catMaybes+    [ ("CloudWatchLogsLogGroupArn" .=) <$> _cloudTrailTrailCloudWatchLogsLogGroupArn+    , ("CloudWatchLogsRoleArn" .=) <$> _cloudTrailTrailCloudWatchLogsRoleArn+    , ("EnableLogFileValidation" .=) <$> _cloudTrailTrailEnableLogFileValidation+    , ("IncludeGlobalServiceEvents" .=) <$> _cloudTrailTrailIncludeGlobalServiceEvents+    , Just ("IsLogging" .= _cloudTrailTrailIsLogging)+    , ("IsMultiRegionTrail" .=) <$> _cloudTrailTrailIsMultiRegionTrail+    , ("KMSKeyId" .=) <$> _cloudTrailTrailKMSKeyId+    , Just ("S3BucketName" .= _cloudTrailTrailS3BucketName)+    , ("S3KeyPrefix" .=) <$> _cloudTrailTrailS3KeyPrefix+    , ("SnsTopicName" .=) <$> _cloudTrailTrailSnsTopicName+    ]  instance FromJSON CloudTrailTrail where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }+  parseJSON (Object obj) =+    CloudTrailTrail <$>+      obj .:? "CloudWatchLogsLogGroupArn" <*>+      obj .:? "CloudWatchLogsRoleArn" <*>+      obj .:? "EnableLogFileValidation" <*>+      obj .:? "IncludeGlobalServiceEvents" <*>+      obj .: "IsLogging" <*>+      obj .:? "IsMultiRegionTrail" <*>+      obj .:? "KMSKeyId" <*>+      obj .: "S3BucketName" <*>+      obj .:? "S3KeyPrefix" <*>+      obj .:? "SnsTopicName"+  parseJSON _ = mempty  -- | Constructor for 'CloudTrailTrail' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/CloudWatchAlarm.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html  module Stratosphere.Resources.CloudWatchAlarm where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.CloudWatchAlarmDimension@@ -24,7 +24,7 @@   , _cloudWatchAlarmAlarmName :: Maybe (Val Text)   , _cloudWatchAlarmComparisonOperator :: Val Text   , _cloudWatchAlarmDimensions :: Maybe [CloudWatchAlarmDimension]-  , _cloudWatchAlarmEvaluationPeriods :: Val Double'+  , _cloudWatchAlarmEvaluationPeriods :: Val Integer'   , _cloudWatchAlarmInsufficientDataActions :: Maybe [Val Text]   , _cloudWatchAlarmMetricName :: Val Text   , _cloudWatchAlarmNamespace :: Val Text@@ -33,19 +33,54 @@   , _cloudWatchAlarmStatistic :: Val Text   , _cloudWatchAlarmThreshold :: Val Double'   , _cloudWatchAlarmUnit :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CloudWatchAlarm where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }+  toJSON CloudWatchAlarm{..} =+    object $+    catMaybes+    [ ("ActionsEnabled" .=) <$> _cloudWatchAlarmActionsEnabled+    , ("AlarmActions" .=) <$> _cloudWatchAlarmAlarmActions+    , ("AlarmDescription" .=) <$> _cloudWatchAlarmAlarmDescription+    , ("AlarmName" .=) <$> _cloudWatchAlarmAlarmName+    , Just ("ComparisonOperator" .= _cloudWatchAlarmComparisonOperator)+    , ("Dimensions" .=) <$> _cloudWatchAlarmDimensions+    , Just ("EvaluationPeriods" .= _cloudWatchAlarmEvaluationPeriods)+    , ("InsufficientDataActions" .=) <$> _cloudWatchAlarmInsufficientDataActions+    , Just ("MetricName" .= _cloudWatchAlarmMetricName)+    , Just ("Namespace" .= _cloudWatchAlarmNamespace)+    , ("OKActions" .=) <$> _cloudWatchAlarmOKActions+    , Just ("Period" .= _cloudWatchAlarmPeriod)+    , Just ("Statistic" .= _cloudWatchAlarmStatistic)+    , Just ("Threshold" .= _cloudWatchAlarmThreshold)+    , ("Unit" .=) <$> _cloudWatchAlarmUnit+    ]  instance FromJSON CloudWatchAlarm where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }+  parseJSON (Object obj) =+    CloudWatchAlarm <$>+      obj .:? "ActionsEnabled" <*>+      obj .:? "AlarmActions" <*>+      obj .:? "AlarmDescription" <*>+      obj .:? "AlarmName" <*>+      obj .: "ComparisonOperator" <*>+      obj .:? "Dimensions" <*>+      obj .: "EvaluationPeriods" <*>+      obj .:? "InsufficientDataActions" <*>+      obj .: "MetricName" <*>+      obj .: "Namespace" <*>+      obj .:? "OKActions" <*>+      obj .: "Period" <*>+      obj .: "Statistic" <*>+      obj .: "Threshold" <*>+      obj .:? "Unit"+  parseJSON _ = mempty  -- | Constructor for 'CloudWatchAlarm' containing required fields as -- | arguments. cloudWatchAlarm   :: Val Text -- ^ 'cwaComparisonOperator'-  -> Val Double' -- ^ 'cwaEvaluationPeriods'+  -> Val Integer' -- ^ 'cwaEvaluationPeriods'   -> Val Text -- ^ 'cwaMetricName'   -> Val Text -- ^ 'cwaNamespace'   -> Val Integer' -- ^ 'cwaPeriod'@@ -96,7 +131,7 @@ cwaDimensions = lens _cloudWatchAlarmDimensions (\s a -> s { _cloudWatchAlarmDimensions = a })  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-evaluationperiods-cwaEvaluationPeriods :: Lens' CloudWatchAlarm (Val Double')+cwaEvaluationPeriods :: Lens' CloudWatchAlarm (Val Integer') cwaEvaluationPeriods = lens _cloudWatchAlarmEvaluationPeriods (\s a -> s { _cloudWatchAlarmEvaluationPeriods = a })  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-insufficientdataactions
library-gen/Stratosphere/Resources/CodeBuildProject.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html  module Stratosphere.Resources.CodeBuildProject where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.CodeBuildProjectArtifacts@@ -30,13 +30,36 @@   , _codeBuildProjectSource :: Maybe CodeBuildProjectSource   , _codeBuildProjectTags :: Maybe [Tag]   , _codeBuildProjectTimeoutInMinutes :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodeBuildProject where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  toJSON CodeBuildProject{..} =+    object $+    catMaybes+    [ ("Artifacts" .=) <$> _codeBuildProjectArtifacts+    , ("Description" .=) <$> _codeBuildProjectDescription+    , ("EncryptionKey" .=) <$> _codeBuildProjectEncryptionKey+    , ("Environment" .=) <$> _codeBuildProjectEnvironment+    , ("Name" .=) <$> _codeBuildProjectName+    , ("ServiceRole" .=) <$> _codeBuildProjectServiceRole+    , ("Source" .=) <$> _codeBuildProjectSource+    , ("Tags" .=) <$> _codeBuildProjectTags+    , ("TimeoutInMinutes" .=) <$> _codeBuildProjectTimeoutInMinutes+    ]  instance FromJSON CodeBuildProject where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  parseJSON (Object obj) =+    CodeBuildProject <$>+      obj .:? "Artifacts" <*>+      obj .:? "Description" <*>+      obj .:? "EncryptionKey" <*>+      obj .:? "Environment" <*>+      obj .:? "Name" <*>+      obj .:? "ServiceRole" <*>+      obj .:? "Source" <*>+      obj .:? "Tags" <*>+      obj .:? "TimeoutInMinutes"+  parseJSON _ = mempty  -- | Constructor for 'CodeBuildProject' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/CodeCommitRepository.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codecommit-repository.html  module Stratosphere.Resources.CodeCommitRepository where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.CodeCommitRepositoryRepositoryTrigger@@ -21,13 +21,24 @@   { _codeCommitRepositoryRepositoryDescription :: Maybe (Val Text)   , _codeCommitRepositoryRepositoryName :: Val Text   , _codeCommitRepositoryTriggers :: Maybe [CodeCommitRepositoryRepositoryTrigger]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodeCommitRepository where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  toJSON CodeCommitRepository{..} =+    object $+    catMaybes+    [ ("RepositoryDescription" .=) <$> _codeCommitRepositoryRepositoryDescription+    , Just ("RepositoryName" .= _codeCommitRepositoryRepositoryName)+    , ("Triggers" .=) <$> _codeCommitRepositoryTriggers+    ]  instance FromJSON CodeCommitRepository where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  parseJSON (Object obj) =+    CodeCommitRepository <$>+      obj .:? "RepositoryDescription" <*>+      obj .: "RepositoryName" <*>+      obj .:? "Triggers"+  parseJSON _ = mempty  -- | Constructor for 'CodeCommitRepository' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/CodeDeployApplication.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html  module Stratosphere.Resources.CodeDeployApplication where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data CodeDeployApplication =   CodeDeployApplication   { _codeDeployApplicationApplicationName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodeDeployApplication where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 22, omitNothingFields = True }+  toJSON CodeDeployApplication{..} =+    object $+    catMaybes+    [ ("ApplicationName" .=) <$> _codeDeployApplicationApplicationName+    ]  instance FromJSON CodeDeployApplication where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 22, omitNothingFields = True }+  parseJSON (Object obj) =+    CodeDeployApplication <$>+      obj .:? "ApplicationName"+  parseJSON _ = mempty  -- | Constructor for 'CodeDeployApplication' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/CodeDeployDeploymentConfig.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html  module Stratosphere.Resources.CodeDeployDeploymentConfig where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   CodeDeployDeploymentConfig   { _codeDeployDeploymentConfigDeploymentConfigName :: Maybe (Val Text)   , _codeDeployDeploymentConfigMinimumHealthyHosts :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodeDeployDeploymentConfig where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  toJSON CodeDeployDeploymentConfig{..} =+    object $+    catMaybes+    [ ("DeploymentConfigName" .=) <$> _codeDeployDeploymentConfigDeploymentConfigName+    , ("MinimumHealthyHosts" .=) <$> _codeDeployDeploymentConfigMinimumHealthyHosts+    ]  instance FromJSON CodeDeployDeploymentConfig where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  parseJSON (Object obj) =+    CodeDeployDeploymentConfig <$>+      obj .:? "DeploymentConfigName" <*>+      obj .:? "MinimumHealthyHosts"+  parseJSON _ = mempty  -- | Constructor for 'CodeDeployDeploymentConfig' containing required fields -- | as arguments.
library-gen/Stratosphere/Resources/CodeDeployDeploymentGroup.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html  module Stratosphere.Resources.CodeDeployDeploymentGroup where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.CodeDeployDeploymentGroupDeployment@@ -28,13 +28,34 @@   , _codeDeployDeploymentGroupEc2TagFilters :: Maybe [CodeDeployDeploymentGroupEc2TagFilter]   , _codeDeployDeploymentGroupOnPremisesInstanceTagFilters :: Maybe [CodeDeployDeploymentGroupOnPremisesInstanceTagFilter]   , _codeDeployDeploymentGroupServiceRoleArn :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodeDeployDeploymentGroup where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }+  toJSON CodeDeployDeploymentGroup{..} =+    object $+    catMaybes+    [ Just ("ApplicationName" .= _codeDeployDeploymentGroupApplicationName)+    , ("AutoScalingGroups" .=) <$> _codeDeployDeploymentGroupAutoScalingGroups+    , ("Deployment" .=) <$> _codeDeployDeploymentGroupDeployment+    , ("DeploymentConfigName" .=) <$> _codeDeployDeploymentGroupDeploymentConfigName+    , ("DeploymentGroupName" .=) <$> _codeDeployDeploymentGroupDeploymentGroupName+    , ("Ec2TagFilters" .=) <$> _codeDeployDeploymentGroupEc2TagFilters+    , ("OnPremisesInstanceTagFilters" .=) <$> _codeDeployDeploymentGroupOnPremisesInstanceTagFilters+    , Just ("ServiceRoleArn" .= _codeDeployDeploymentGroupServiceRoleArn)+    ]  instance FromJSON CodeDeployDeploymentGroup where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }+  parseJSON (Object obj) =+    CodeDeployDeploymentGroup <$>+      obj .: "ApplicationName" <*>+      obj .:? "AutoScalingGroups" <*>+      obj .:? "Deployment" <*>+      obj .:? "DeploymentConfigName" <*>+      obj .:? "DeploymentGroupName" <*>+      obj .:? "Ec2TagFilters" <*>+      obj .:? "OnPremisesInstanceTagFilters" <*>+      obj .: "ServiceRoleArn"+  parseJSON _ = mempty  -- | Constructor for 'CodeDeployDeploymentGroup' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/CodePipelineCustomActionType.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html  module Stratosphere.Resources.CodePipelineCustomActionType where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.CodePipelineCustomActionTypeConfigurationProperties@@ -27,13 +27,32 @@   , _codePipelineCustomActionTypeProvider :: Val Text   , _codePipelineCustomActionTypeSettings :: Maybe CodePipelineCustomActionTypeSettings   , _codePipelineCustomActionTypeVersion :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodePipelineCustomActionType where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  toJSON CodePipelineCustomActionType{..} =+    object $+    catMaybes+    [ Just ("Category" .= _codePipelineCustomActionTypeCategory)+    , ("ConfigurationProperties" .=) <$> _codePipelineCustomActionTypeConfigurationProperties+    , Just ("InputArtifactDetails" .= _codePipelineCustomActionTypeInputArtifactDetails)+    , Just ("OutputArtifactDetails" .= _codePipelineCustomActionTypeOutputArtifactDetails)+    , Just ("Provider" .= _codePipelineCustomActionTypeProvider)+    , ("Settings" .=) <$> _codePipelineCustomActionTypeSettings+    , ("Version" .=) <$> _codePipelineCustomActionTypeVersion+    ]  instance FromJSON CodePipelineCustomActionType where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  parseJSON (Object obj) =+    CodePipelineCustomActionType <$>+      obj .: "Category" <*>+      obj .:? "ConfigurationProperties" <*>+      obj .: "InputArtifactDetails" <*>+      obj .: "OutputArtifactDetails" <*>+      obj .: "Provider" <*>+      obj .:? "Settings" <*>+      obj .:? "Version"+  parseJSON _ = mempty  -- | Constructor for 'CodePipelineCustomActionType' containing required fields -- | as arguments.
library-gen/Stratosphere/Resources/CodePipelinePipeline.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html  module Stratosphere.Resources.CodePipelinePipeline where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.CodePipelinePipelineArtifactStore@@ -26,13 +26,30 @@   , _codePipelinePipelineRestartExecutionOnUpdate :: Maybe (Val Bool')   , _codePipelinePipelineRoleArn :: Val Text   , _codePipelinePipelineStages :: [CodePipelinePipelineStageDeclaration]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON CodePipelinePipeline where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  toJSON CodePipelinePipeline{..} =+    object $+    catMaybes+    [ Just ("ArtifactStore" .= _codePipelinePipelineArtifactStore)+    , ("DisableInboundStageTransitions" .=) <$> _codePipelinePipelineDisableInboundStageTransitions+    , ("Name" .=) <$> _codePipelinePipelineName+    , ("RestartExecutionOnUpdate" .=) <$> _codePipelinePipelineRestartExecutionOnUpdate+    , Just ("RoleArn" .= _codePipelinePipelineRoleArn)+    , Just ("Stages" .= _codePipelinePipelineStages)+    ]  instance FromJSON CodePipelinePipeline where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  parseJSON (Object obj) =+    CodePipelinePipeline <$>+      obj .: "ArtifactStore" <*>+      obj .:? "DisableInboundStageTransitions" <*>+      obj .:? "Name" <*>+      obj .:? "RestartExecutionOnUpdate" <*>+      obj .: "RoleArn" <*>+      obj .: "Stages"+  parseJSON _ = mempty  -- | Constructor for 'CodePipelinePipeline' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/ConfigConfigRule.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configrule.html  module Stratosphere.Resources.ConfigConfigRule where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ConfigConfigRuleScope@@ -25,13 +25,30 @@   , _configConfigRuleMaximumExecutionFrequency :: Maybe (Val Text)   , _configConfigRuleScope :: Maybe ConfigConfigRuleScope   , _configConfigRuleSource :: ConfigConfigRuleSource-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ConfigConfigRule where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  toJSON ConfigConfigRule{..} =+    object $+    catMaybes+    [ ("ConfigRuleName" .=) <$> _configConfigRuleConfigRuleName+    , ("Description" .=) <$> _configConfigRuleDescription+    , ("InputParameters" .=) <$> _configConfigRuleInputParameters+    , ("MaximumExecutionFrequency" .=) <$> _configConfigRuleMaximumExecutionFrequency+    , ("Scope" .=) <$> _configConfigRuleScope+    , Just ("Source" .= _configConfigRuleSource)+    ]  instance FromJSON ConfigConfigRule where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  parseJSON (Object obj) =+    ConfigConfigRule <$>+      obj .:? "ConfigRuleName" <*>+      obj .:? "Description" <*>+      obj .:? "InputParameters" <*>+      obj .:? "MaximumExecutionFrequency" <*>+      obj .:? "Scope" <*>+      obj .: "Source"+  parseJSON _ = mempty  -- | Constructor for 'ConfigConfigRule' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/ConfigConfigurationRecorder.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationrecorder.html  module Stratosphere.Resources.ConfigConfigurationRecorder where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ConfigConfigurationRecorderRecordingGroup@@ -21,13 +21,24 @@   { _configConfigurationRecorderName :: Maybe (Val Text)   , _configConfigurationRecorderRecordingGroup :: Maybe ConfigConfigurationRecorderRecordingGroup   , _configConfigurationRecorderRoleArn :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ConfigConfigurationRecorder where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON ConfigConfigurationRecorder{..} =+    object $+    catMaybes+    [ ("Name" .=) <$> _configConfigurationRecorderName+    , ("RecordingGroup" .=) <$> _configConfigurationRecorderRecordingGroup+    , Just ("RoleArn" .= _configConfigurationRecorderRoleArn)+    ]  instance FromJSON ConfigConfigurationRecorder where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    ConfigConfigurationRecorder <$>+      obj .:? "Name" <*>+      obj .:? "RecordingGroup" <*>+      obj .: "RoleArn"+  parseJSON _ = mempty  -- | Constructor for 'ConfigConfigurationRecorder' containing required fields -- | as arguments.
library-gen/Stratosphere/Resources/ConfigDeliveryChannel.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-deliverychannel.html  module Stratosphere.Resources.ConfigDeliveryChannel where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ConfigDeliveryChannelConfigSnapshotDeliveryProperties@@ -23,13 +23,28 @@   , _configDeliveryChannelS3BucketName :: Val Text   , _configDeliveryChannelS3KeyPrefix :: Maybe (Val Text)   , _configDeliveryChannelSnsTopicARN :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ConfigDeliveryChannel where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 22, omitNothingFields = True }+  toJSON ConfigDeliveryChannel{..} =+    object $+    catMaybes+    [ ("ConfigSnapshotDeliveryProperties" .=) <$> _configDeliveryChannelConfigSnapshotDeliveryProperties+    , ("Name" .=) <$> _configDeliveryChannelName+    , Just ("S3BucketName" .= _configDeliveryChannelS3BucketName)+    , ("S3KeyPrefix" .=) <$> _configDeliveryChannelS3KeyPrefix+    , ("SnsTopicARN" .=) <$> _configDeliveryChannelSnsTopicARN+    ]  instance FromJSON ConfigDeliveryChannel where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 22, omitNothingFields = True }+  parseJSON (Object obj) =+    ConfigDeliveryChannel <$>+      obj .:? "ConfigSnapshotDeliveryProperties" <*>+      obj .:? "Name" <*>+      obj .: "S3BucketName" <*>+      obj .:? "S3KeyPrefix" <*>+      obj .:? "SnsTopicARN"+  parseJSON _ = mempty  -- | Constructor for 'ConfigDeliveryChannel' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/DataPipelinePipeline.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datapipeline-pipeline.html  module Stratosphere.Resources.DataPipelinePipeline where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.DataPipelinePipelineParameterObject@@ -28,13 +28,32 @@   , _dataPipelinePipelineParameterValues :: Maybe [DataPipelinePipelineParameterValue]   , _dataPipelinePipelinePipelineObjects :: Maybe [DataPipelinePipelinePipelineObject]   , _dataPipelinePipelinePipelineTags :: Maybe [DataPipelinePipelinePipelineTag]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON DataPipelinePipeline where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  toJSON DataPipelinePipeline{..} =+    object $+    catMaybes+    [ ("Activate" .=) <$> _dataPipelinePipelineActivate+    , ("Description" .=) <$> _dataPipelinePipelineDescription+    , Just ("Name" .= _dataPipelinePipelineName)+    , Just ("ParameterObjects" .= _dataPipelinePipelineParameterObjects)+    , ("ParameterValues" .=) <$> _dataPipelinePipelineParameterValues+    , ("PipelineObjects" .=) <$> _dataPipelinePipelinePipelineObjects+    , ("PipelineTags" .=) <$> _dataPipelinePipelinePipelineTags+    ]  instance FromJSON DataPipelinePipeline where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  parseJSON (Object obj) =+    DataPipelinePipeline <$>+      obj .:? "Activate" <*>+      obj .:? "Description" <*>+      obj .: "Name" <*>+      obj .: "ParameterObjects" <*>+      obj .:? "ParameterValues" <*>+      obj .:? "PipelineObjects" <*>+      obj .:? "PipelineTags"+  parseJSON _ = mempty  -- | Constructor for 'DataPipelinePipeline' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/DirectoryServiceMicrosoftAD.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html  module Stratosphere.Resources.DirectoryServiceMicrosoftAD where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.DirectoryServiceMicrosoftADVpcSettings@@ -24,13 +24,30 @@   , _directoryServiceMicrosoftADPassword :: Val Text   , _directoryServiceMicrosoftADShortName :: Maybe (Val Text)   , _directoryServiceMicrosoftADVpcSettings :: DirectoryServiceMicrosoftADVpcSettings-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON DirectoryServiceMicrosoftAD where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON DirectoryServiceMicrosoftAD{..} =+    object $+    catMaybes+    [ ("CreateAlias" .=) <$> _directoryServiceMicrosoftADCreateAlias+    , ("EnableSso" .=) <$> _directoryServiceMicrosoftADEnableSso+    , Just ("Name" .= _directoryServiceMicrosoftADName)+    , Just ("Password" .= _directoryServiceMicrosoftADPassword)+    , ("ShortName" .=) <$> _directoryServiceMicrosoftADShortName+    , Just ("VpcSettings" .= _directoryServiceMicrosoftADVpcSettings)+    ]  instance FromJSON DirectoryServiceMicrosoftAD where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    DirectoryServiceMicrosoftAD <$>+      obj .:? "CreateAlias" <*>+      obj .:? "EnableSso" <*>+      obj .: "Name" <*>+      obj .: "Password" <*>+      obj .:? "ShortName" <*>+      obj .: "VpcSettings"+  parseJSON _ = mempty  -- | Constructor for 'DirectoryServiceMicrosoftAD' containing required fields -- | as arguments.
library-gen/Stratosphere/Resources/DirectoryServiceSimpleAD.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html  module Stratosphere.Resources.DirectoryServiceSimpleAD where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.DirectoryServiceSimpleADVpcSettings@@ -26,13 +26,34 @@   , _directoryServiceSimpleADShortName :: Maybe (Val Text)   , _directoryServiceSimpleADSize :: Val Text   , _directoryServiceSimpleADVpcSettings :: DirectoryServiceSimpleADVpcSettings-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON DirectoryServiceSimpleAD where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 25, omitNothingFields = True }+  toJSON DirectoryServiceSimpleAD{..} =+    object $+    catMaybes+    [ ("CreateAlias" .=) <$> _directoryServiceSimpleADCreateAlias+    , ("Description" .=) <$> _directoryServiceSimpleADDescription+    , ("EnableSso" .=) <$> _directoryServiceSimpleADEnableSso+    , Just ("Name" .= _directoryServiceSimpleADName)+    , Just ("Password" .= _directoryServiceSimpleADPassword)+    , ("ShortName" .=) <$> _directoryServiceSimpleADShortName+    , Just ("Size" .= _directoryServiceSimpleADSize)+    , Just ("VpcSettings" .= _directoryServiceSimpleADVpcSettings)+    ]  instance FromJSON DirectoryServiceSimpleAD where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 25, omitNothingFields = True }+  parseJSON (Object obj) =+    DirectoryServiceSimpleAD <$>+      obj .:? "CreateAlias" <*>+      obj .:? "Description" <*>+      obj .:? "EnableSso" <*>+      obj .: "Name" <*>+      obj .: "Password" <*>+      obj .:? "ShortName" <*>+      obj .: "Size" <*>+      obj .: "VpcSettings"+  parseJSON _ = mempty  -- | Constructor for 'DirectoryServiceSimpleAD' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/DynamoDBTable.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html  module Stratosphere.Resources.DynamoDBTable where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.DynamoDBTableAttributeDefinition@@ -30,13 +30,32 @@   , _dynamoDBTableProvisionedThroughput :: DynamoDBTableProvisionedThroughput   , _dynamoDBTableStreamSpecification :: Maybe DynamoDBTableStreamSpecification   , _dynamoDBTableTableName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON DynamoDBTable where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  toJSON DynamoDBTable{..} =+    object $+    catMaybes+    [ Just ("AttributeDefinitions" .= _dynamoDBTableAttributeDefinitions)+    , ("GlobalSecondaryIndexes" .=) <$> _dynamoDBTableGlobalSecondaryIndexes+    , Just ("KeySchema" .= _dynamoDBTableKeySchema)+    , ("LocalSecondaryIndexes" .=) <$> _dynamoDBTableLocalSecondaryIndexes+    , Just ("ProvisionedThroughput" .= _dynamoDBTableProvisionedThroughput)+    , ("StreamSpecification" .=) <$> _dynamoDBTableStreamSpecification+    , ("TableName" .=) <$> _dynamoDBTableTableName+    ]  instance FromJSON DynamoDBTable where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  parseJSON (Object obj) =+    DynamoDBTable <$>+      obj .: "AttributeDefinitions" <*>+      obj .:? "GlobalSecondaryIndexes" <*>+      obj .: "KeySchema" <*>+      obj .:? "LocalSecondaryIndexes" <*>+      obj .: "ProvisionedThroughput" <*>+      obj .:? "StreamSpecification" <*>+      obj .:? "TableName"+  parseJSON _ = mempty  -- | Constructor for 'DynamoDBTable' containing required fields as arguments. dynamoDBTable
library-gen/Stratosphere/Resources/EC2CustomerGateway.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customer-gateway.html  module Stratosphere.Resources.EC2CustomerGateway where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Tag@@ -22,13 +22,26 @@   , _eC2CustomerGatewayIpAddress :: Val Text   , _eC2CustomerGatewayTags :: Maybe [Tag]   , _eC2CustomerGatewayType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2CustomerGateway where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  toJSON EC2CustomerGateway{..} =+    object $+    catMaybes+    [ Just ("BgpAsn" .= _eC2CustomerGatewayBgpAsn)+    , Just ("IpAddress" .= _eC2CustomerGatewayIpAddress)+    , ("Tags" .=) <$> _eC2CustomerGatewayTags+    , Just ("Type" .= _eC2CustomerGatewayType)+    ]  instance FromJSON EC2CustomerGateway where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2CustomerGateway <$>+      obj .: "BgpAsn" <*>+      obj .: "IpAddress" <*>+      obj .:? "Tags" <*>+      obj .: "Type"+  parseJSON _ = mempty  -- | Constructor for 'EC2CustomerGateway' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/EC2DHCPOptions.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html  module Stratosphere.Resources.EC2DHCPOptions where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Tag@@ -24,13 +24,30 @@   , _eC2DHCPOptionsNetbiosNodeType :: Maybe (Val Integer')   , _eC2DHCPOptionsNtpServers :: Maybe (Val Text)   , _eC2DHCPOptionsTags :: Maybe [Tag]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2DHCPOptions where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  toJSON EC2DHCPOptions{..} =+    object $+    catMaybes+    [ ("DomainName" .=) <$> _eC2DHCPOptionsDomainName+    , ("DomainNameServers" .=) <$> _eC2DHCPOptionsDomainNameServers+    , ("NetbiosNameServers" .=) <$> _eC2DHCPOptionsNetbiosNameServers+    , ("NetbiosNodeType" .=) <$> _eC2DHCPOptionsNetbiosNodeType+    , ("NtpServers" .=) <$> _eC2DHCPOptionsNtpServers+    , ("Tags" .=) <$> _eC2DHCPOptionsTags+    ]  instance FromJSON EC2DHCPOptions where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2DHCPOptions <$>+      obj .:? "DomainName" <*>+      obj .:? "DomainNameServers" <*>+      obj .:? "NetbiosNameServers" <*>+      obj .:? "NetbiosNodeType" <*>+      obj .:? "NtpServers" <*>+      obj .:? "Tags"+  parseJSON _ = mempty  -- | Constructor for 'EC2DHCPOptions' containing required fields as arguments. ec2DHCPOptions
library-gen/Stratosphere/Resources/EC2EIP.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip.html  module Stratosphere.Resources.EC2EIP where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   EC2EIP   { _eC2EIPDomain :: Maybe (Val Text)   , _eC2EIPInstanceId :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2EIP where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 7, omitNothingFields = True }+  toJSON EC2EIP{..} =+    object $+    catMaybes+    [ ("Domain" .=) <$> _eC2EIPDomain+    , ("InstanceId" .=) <$> _eC2EIPInstanceId+    ]  instance FromJSON EC2EIP where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 7, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2EIP <$>+      obj .:? "Domain" <*>+      obj .:? "InstanceId"+  parseJSON _ = mempty  -- | Constructor for 'EC2EIP' containing required fields as arguments. ec2EIP
library-gen/Stratosphere/Resources/EC2EIPAssociation.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip-association.html  module Stratosphere.Resources.EC2EIPAssociation where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -23,13 +23,28 @@   , _eC2EIPAssociationInstanceId :: Maybe (Val Text)   , _eC2EIPAssociationNetworkInterfaceId :: Maybe (Val Text)   , _eC2EIPAssociationPrivateIpAddress :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2EIPAssociation where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 18, omitNothingFields = True }+  toJSON EC2EIPAssociation{..} =+    object $+    catMaybes+    [ ("AllocationId" .=) <$> _eC2EIPAssociationAllocationId+    , ("Eip" .=) <$> _eC2EIPAssociationEip+    , ("InstanceId" .=) <$> _eC2EIPAssociationInstanceId+    , ("NetworkInterfaceId" .=) <$> _eC2EIPAssociationNetworkInterfaceId+    , ("PrivateIpAddress" .=) <$> _eC2EIPAssociationPrivateIpAddress+    ]  instance FromJSON EC2EIPAssociation where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 18, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2EIPAssociation <$>+      obj .:? "AllocationId" <*>+      obj .:? "Eip" <*>+      obj .:? "InstanceId" <*>+      obj .:? "NetworkInterfaceId" <*>+      obj .:? "PrivateIpAddress"+  parseJSON _ = mempty  -- | Constructor for 'EC2EIPAssociation' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/EC2FlowLog.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html  module Stratosphere.Resources.EC2FlowLog where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -23,13 +23,28 @@   , _eC2FlowLogResourceId :: Val Text   , _eC2FlowLogResourceType :: Val Text   , _eC2FlowLogTrafficType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2FlowLog where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 11, omitNothingFields = True }+  toJSON EC2FlowLog{..} =+    object $+    catMaybes+    [ Just ("DeliverLogsPermissionArn" .= _eC2FlowLogDeliverLogsPermissionArn)+    , Just ("LogGroupName" .= _eC2FlowLogLogGroupName)+    , Just ("ResourceId" .= _eC2FlowLogResourceId)+    , Just ("ResourceType" .= _eC2FlowLogResourceType)+    , Just ("TrafficType" .= _eC2FlowLogTrafficType)+    ]  instance FromJSON EC2FlowLog where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 11, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2FlowLog <$>+      obj .: "DeliverLogsPermissionArn" <*>+      obj .: "LogGroupName" <*>+      obj .: "ResourceId" <*>+      obj .: "ResourceType" <*>+      obj .: "TrafficType"+  parseJSON _ = mempty  -- | Constructor for 'EC2FlowLog' containing required fields as arguments. ec2FlowLog
library-gen/Stratosphere/Resources/EC2Host.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-host.html  module Stratosphere.Resources.EC2Host where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _eC2HostAutoPlacement :: Maybe (Val Text)   , _eC2HostAvailabilityZone :: Val Text   , _eC2HostInstanceType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2Host where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 8, omitNothingFields = True }+  toJSON EC2Host{..} =+    object $+    catMaybes+    [ ("AutoPlacement" .=) <$> _eC2HostAutoPlacement+    , Just ("AvailabilityZone" .= _eC2HostAvailabilityZone)+    , Just ("InstanceType" .= _eC2HostInstanceType)+    ]  instance FromJSON EC2Host where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 8, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2Host <$>+      obj .:? "AutoPlacement" <*>+      obj .: "AvailabilityZone" <*>+      obj .: "InstanceType"+  parseJSON _ = mempty  -- | Constructor for 'EC2Host' containing required fields as arguments. ec2Host
library-gen/Stratosphere/Resources/EC2Instance.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html  module Stratosphere.Resources.EC2Instance where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EC2InstanceBlockDeviceMapping@@ -52,13 +52,76 @@   , _eC2InstanceTenancy :: Maybe (Val Text)   , _eC2InstanceUserData :: Maybe (Val Text)   , _eC2InstanceVolumes :: Maybe [EC2InstanceVolume]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2Instance where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 12, omitNothingFields = True }+  toJSON EC2Instance{..} =+    object $+    catMaybes+    [ ("AdditionalInfo" .=) <$> _eC2InstanceAdditionalInfo+    , ("Affinity" .=) <$> _eC2InstanceAffinity+    , ("AvailabilityZone" .=) <$> _eC2InstanceAvailabilityZone+    , ("BlockDeviceMappings" .=) <$> _eC2InstanceBlockDeviceMappings+    , ("DisableApiTermination" .=) <$> _eC2InstanceDisableApiTermination+    , ("EbsOptimized" .=) <$> _eC2InstanceEbsOptimized+    , ("HostId" .=) <$> _eC2InstanceHostId+    , ("IamInstanceProfile" .=) <$> _eC2InstanceIamInstanceProfile+    , Just ("ImageId" .= _eC2InstanceImageId)+    , ("InstanceInitiatedShutdownBehavior" .=) <$> _eC2InstanceInstanceInitiatedShutdownBehavior+    , ("InstanceType" .=) <$> _eC2InstanceInstanceType+    , ("Ipv6AddressCount" .=) <$> _eC2InstanceIpv6AddressCount+    , ("Ipv6Addresses" .=) <$> _eC2InstanceIpv6Addresses+    , ("KernelId" .=) <$> _eC2InstanceKernelId+    , ("KeyName" .=) <$> _eC2InstanceKeyName+    , ("Monitoring" .=) <$> _eC2InstanceMonitoring+    , ("NetworkInterfaces" .=) <$> _eC2InstanceNetworkInterfaces+    , ("PlacementGroupName" .=) <$> _eC2InstancePlacementGroupName+    , ("PrivateIpAddress" .=) <$> _eC2InstancePrivateIpAddress+    , ("RamdiskId" .=) <$> _eC2InstanceRamdiskId+    , ("SecurityGroupIds" .=) <$> _eC2InstanceSecurityGroupIds+    , ("SecurityGroups" .=) <$> _eC2InstanceSecurityGroups+    , ("SourceDestCheck" .=) <$> _eC2InstanceSourceDestCheck+    , ("SsmAssociations" .=) <$> _eC2InstanceSsmAssociations+    , ("SubnetId" .=) <$> _eC2InstanceSubnetId+    , ("Tags" .=) <$> _eC2InstanceTags+    , ("Tenancy" .=) <$> _eC2InstanceTenancy+    , ("UserData" .=) <$> _eC2InstanceUserData+    , ("Volumes" .=) <$> _eC2InstanceVolumes+    ]  instance FromJSON EC2Instance where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 12, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2Instance <$>+      obj .:? "AdditionalInfo" <*>+      obj .:? "Affinity" <*>+      obj .:? "AvailabilityZone" <*>+      obj .:? "BlockDeviceMappings" <*>+      obj .:? "DisableApiTermination" <*>+      obj .:? "EbsOptimized" <*>+      obj .:? "HostId" <*>+      obj .:? "IamInstanceProfile" <*>+      obj .: "ImageId" <*>+      obj .:? "InstanceInitiatedShutdownBehavior" <*>+      obj .:? "InstanceType" <*>+      obj .:? "Ipv6AddressCount" <*>+      obj .:? "Ipv6Addresses" <*>+      obj .:? "KernelId" <*>+      obj .:? "KeyName" <*>+      obj .:? "Monitoring" <*>+      obj .:? "NetworkInterfaces" <*>+      obj .:? "PlacementGroupName" <*>+      obj .:? "PrivateIpAddress" <*>+      obj .:? "RamdiskId" <*>+      obj .:? "SecurityGroupIds" <*>+      obj .:? "SecurityGroups" <*>+      obj .:? "SourceDestCheck" <*>+      obj .:? "SsmAssociations" <*>+      obj .:? "SubnetId" <*>+      obj .:? "Tags" <*>+      obj .:? "Tenancy" <*>+      obj .:? "UserData" <*>+      obj .:? "Volumes"+  parseJSON _ = mempty  -- | Constructor for 'EC2Instance' containing required fields as arguments. ec2Instance
library-gen/Stratosphere/Resources/EC2InternetGateway.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-internet-gateway.html  module Stratosphere.Resources.EC2InternetGateway where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Tag@@ -19,13 +19,20 @@ data EC2InternetGateway =   EC2InternetGateway   { _eC2InternetGatewayTags :: Maybe [Tag]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2InternetGateway where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  toJSON EC2InternetGateway{..} =+    object $+    catMaybes+    [ ("Tags" .=) <$> _eC2InternetGatewayTags+    ]  instance FromJSON EC2InternetGateway where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2InternetGateway <$>+      obj .:? "Tags"+  parseJSON _ = mempty  -- | Constructor for 'EC2InternetGateway' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/EC2NatGateway.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html  module Stratosphere.Resources.EC2NatGateway where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   EC2NatGateway   { _eC2NatGatewayAllocationId :: Val Text   , _eC2NatGatewaySubnetId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2NatGateway where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  toJSON EC2NatGateway{..} =+    object $+    catMaybes+    [ Just ("AllocationId" .= _eC2NatGatewayAllocationId)+    , Just ("SubnetId" .= _eC2NatGatewaySubnetId)+    ]  instance FromJSON EC2NatGateway where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2NatGateway <$>+      obj .: "AllocationId" <*>+      obj .: "SubnetId"+  parseJSON _ = mempty  -- | Constructor for 'EC2NatGateway' containing required fields as arguments. ec2NatGateway
library-gen/Stratosphere/Resources/EC2NetworkAcl.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl.html  module Stratosphere.Resources.EC2NetworkAcl where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Tag@@ -20,13 +20,22 @@   EC2NetworkAcl   { _eC2NetworkAclTags :: Maybe [Tag]   , _eC2NetworkAclVpcId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2NetworkAcl where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  toJSON EC2NetworkAcl{..} =+    object $+    catMaybes+    [ ("Tags" .=) <$> _eC2NetworkAclTags+    , Just ("VpcId" .= _eC2NetworkAclVpcId)+    ]  instance FromJSON EC2NetworkAcl where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2NetworkAcl <$>+      obj .:? "Tags" <*>+      obj .: "VpcId"+  parseJSON _ = mempty  -- | Constructor for 'EC2NetworkAcl' containing required fields as arguments. ec2NetworkAcl
library-gen/Stratosphere/Resources/EC2NetworkAclEntry.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl-entry.html  module Stratosphere.Resources.EC2NetworkAclEntry where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EC2NetworkAclEntryIcmp@@ -28,13 +28,36 @@   , _eC2NetworkAclEntryProtocol :: Val Integer'   , _eC2NetworkAclEntryRuleAction :: Val Text   , _eC2NetworkAclEntryRuleNumber :: Val Integer'-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2NetworkAclEntry where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  toJSON EC2NetworkAclEntry{..} =+    object $+    catMaybes+    [ Just ("CidrBlock" .= _eC2NetworkAclEntryCidrBlock)+    , ("Egress" .=) <$> _eC2NetworkAclEntryEgress+    , ("Icmp" .=) <$> _eC2NetworkAclEntryIcmp+    , ("Ipv6CidrBlock" .=) <$> _eC2NetworkAclEntryIpv6CidrBlock+    , Just ("NetworkAclId" .= _eC2NetworkAclEntryNetworkAclId)+    , ("PortRange" .=) <$> _eC2NetworkAclEntryPortRange+    , Just ("Protocol" .= _eC2NetworkAclEntryProtocol)+    , Just ("RuleAction" .= _eC2NetworkAclEntryRuleAction)+    , Just ("RuleNumber" .= _eC2NetworkAclEntryRuleNumber)+    ]  instance FromJSON EC2NetworkAclEntry where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2NetworkAclEntry <$>+      obj .: "CidrBlock" <*>+      obj .:? "Egress" <*>+      obj .:? "Icmp" <*>+      obj .:? "Ipv6CidrBlock" <*>+      obj .: "NetworkAclId" <*>+      obj .:? "PortRange" <*>+      obj .: "Protocol" <*>+      obj .: "RuleAction" <*>+      obj .: "RuleNumber"+  parseJSON _ = mempty  -- | Constructor for 'EC2NetworkAclEntry' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/EC2NetworkInterface.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface.html  module Stratosphere.Resources.EC2NetworkInterface where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EC2NetworkInterfaceInstanceIpv6Address@@ -30,13 +30,38 @@   , _eC2NetworkInterfaceSourceDestCheck :: Maybe (Val Bool')   , _eC2NetworkInterfaceSubnetId :: Val Text   , _eC2NetworkInterfaceTags :: Maybe [Tag]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2NetworkInterface where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  toJSON EC2NetworkInterface{..} =+    object $+    catMaybes+    [ ("Description" .=) <$> _eC2NetworkInterfaceDescription+    , ("GroupSet" .=) <$> _eC2NetworkInterfaceGroupSet+    , ("Ipv6AddressCount" .=) <$> _eC2NetworkInterfaceIpv6AddressCount+    , ("Ipv6Addresses" .=) <$> _eC2NetworkInterfaceIpv6Addresses+    , ("PrivateIpAddress" .=) <$> _eC2NetworkInterfacePrivateIpAddress+    , ("PrivateIpAddresses" .=) <$> _eC2NetworkInterfacePrivateIpAddresses+    , ("SecondaryPrivateIpAddressCount" .=) <$> _eC2NetworkInterfaceSecondaryPrivateIpAddressCount+    , ("SourceDestCheck" .=) <$> _eC2NetworkInterfaceSourceDestCheck+    , Just ("SubnetId" .= _eC2NetworkInterfaceSubnetId)+    , ("Tags" .=) <$> _eC2NetworkInterfaceTags+    ]  instance FromJSON EC2NetworkInterface where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2NetworkInterface <$>+      obj .:? "Description" <*>+      obj .:? "GroupSet" <*>+      obj .:? "Ipv6AddressCount" <*>+      obj .:? "Ipv6Addresses" <*>+      obj .:? "PrivateIpAddress" <*>+      obj .:? "PrivateIpAddresses" <*>+      obj .:? "SecondaryPrivateIpAddressCount" <*>+      obj .:? "SourceDestCheck" <*>+      obj .: "SubnetId" <*>+      obj .:? "Tags"+  parseJSON _ = mempty  -- | Constructor for 'EC2NetworkInterface' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/EC2NetworkInterfaceAttachment.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface-attachment.html  module Stratosphere.Resources.EC2NetworkInterfaceAttachment where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,26 @@   , _eC2NetworkInterfaceAttachmentDeviceIndex :: Val Text   , _eC2NetworkInterfaceAttachmentInstanceId :: Val Text   , _eC2NetworkInterfaceAttachmentNetworkInterfaceId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2NetworkInterfaceAttachment where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  toJSON EC2NetworkInterfaceAttachment{..} =+    object $+    catMaybes+    [ ("DeleteOnTermination" .=) <$> _eC2NetworkInterfaceAttachmentDeleteOnTermination+    , Just ("DeviceIndex" .= _eC2NetworkInterfaceAttachmentDeviceIndex)+    , Just ("InstanceId" .= _eC2NetworkInterfaceAttachmentInstanceId)+    , Just ("NetworkInterfaceId" .= _eC2NetworkInterfaceAttachmentNetworkInterfaceId)+    ]  instance FromJSON EC2NetworkInterfaceAttachment where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2NetworkInterfaceAttachment <$>+      obj .:? "DeleteOnTermination" <*>+      obj .: "DeviceIndex" <*>+      obj .: "InstanceId" <*>+      obj .: "NetworkInterfaceId"+  parseJSON _ = mempty  -- | Constructor for 'EC2NetworkInterfaceAttachment' containing required -- | fields as arguments.
library-gen/Stratosphere/Resources/EC2PlacementGroup.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-placementgroup.html  module Stratosphere.Resources.EC2PlacementGroup where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data EC2PlacementGroup =   EC2PlacementGroup   { _eC2PlacementGroupStrategy :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2PlacementGroup where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 18, omitNothingFields = True }+  toJSON EC2PlacementGroup{..} =+    object $+    catMaybes+    [ ("Strategy" .=) <$> _eC2PlacementGroupStrategy+    ]  instance FromJSON EC2PlacementGroup where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 18, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2PlacementGroup <$>+      obj .:? "Strategy"+  parseJSON _ = mempty  -- | Constructor for 'EC2PlacementGroup' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/EC2Route.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html  module Stratosphere.Resources.EC2Route where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -26,13 +26,34 @@   , _eC2RouteNetworkInterfaceId :: Maybe (Val Text)   , _eC2RouteRouteTableId :: Val Text   , _eC2RouteVpcPeeringConnectionId :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2Route where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 9, omitNothingFields = True }+  toJSON EC2Route{..} =+    object $+    catMaybes+    [ Just ("DestinationCidrBlock" .= _eC2RouteDestinationCidrBlock)+    , ("DestinationIpv6CidrBlock" .=) <$> _eC2RouteDestinationIpv6CidrBlock+    , ("GatewayId" .=) <$> _eC2RouteGatewayId+    , ("InstanceId" .=) <$> _eC2RouteInstanceId+    , ("NatGatewayId" .=) <$> _eC2RouteNatGatewayId+    , ("NetworkInterfaceId" .=) <$> _eC2RouteNetworkInterfaceId+    , Just ("RouteTableId" .= _eC2RouteRouteTableId)+    , ("VpcPeeringConnectionId" .=) <$> _eC2RouteVpcPeeringConnectionId+    ]  instance FromJSON EC2Route where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 9, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2Route <$>+      obj .: "DestinationCidrBlock" <*>+      obj .:? "DestinationIpv6CidrBlock" <*>+      obj .:? "GatewayId" <*>+      obj .:? "InstanceId" <*>+      obj .:? "NatGatewayId" <*>+      obj .:? "NetworkInterfaceId" <*>+      obj .: "RouteTableId" <*>+      obj .:? "VpcPeeringConnectionId"+  parseJSON _ = mempty  -- | Constructor for 'EC2Route' containing required fields as arguments. ec2Route
library-gen/Stratosphere/Resources/EC2RouteTable.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route-table.html  module Stratosphere.Resources.EC2RouteTable where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Tag@@ -20,13 +20,22 @@   EC2RouteTable   { _eC2RouteTableTags :: Maybe [Tag]   , _eC2RouteTableVpcId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2RouteTable where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  toJSON EC2RouteTable{..} =+    object $+    catMaybes+    [ ("Tags" .=) <$> _eC2RouteTableTags+    , Just ("VpcId" .= _eC2RouteTableVpcId)+    ]  instance FromJSON EC2RouteTable where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2RouteTable <$>+      obj .:? "Tags" <*>+      obj .: "VpcId"+  parseJSON _ = mempty  -- | Constructor for 'EC2RouteTable' containing required fields as arguments. ec2RouteTable
library-gen/Stratosphere/Resources/EC2SecurityGroup.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html  module Stratosphere.Resources.EC2SecurityGroup where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EC2SecurityGroupRule@@ -24,13 +24,28 @@   , _eC2SecurityGroupSecurityGroupIngress :: Maybe [EC2SecurityGroupRule]   , _eC2SecurityGroupTags :: Maybe [Tag]   , _eC2SecurityGroupVpcId :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2SecurityGroup where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  toJSON EC2SecurityGroup{..} =+    object $+    catMaybes+    [ Just ("GroupDescription" .= _eC2SecurityGroupGroupDescription)+    , ("SecurityGroupEgress" .=) <$> _eC2SecurityGroupSecurityGroupEgress+    , ("SecurityGroupIngress" .=) <$> _eC2SecurityGroupSecurityGroupIngress+    , ("Tags" .=) <$> _eC2SecurityGroupTags+    , ("VpcId" .=) <$> _eC2SecurityGroupVpcId+    ]  instance FromJSON EC2SecurityGroup where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2SecurityGroup <$>+      obj .: "GroupDescription" <*>+      obj .:? "SecurityGroupEgress" <*>+      obj .:? "SecurityGroupIngress" <*>+      obj .:? "Tags" <*>+      obj .:? "VpcId"+  parseJSON _ = mempty  -- | Constructor for 'EC2SecurityGroup' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/EC2SecurityGroupEgress.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html  module Stratosphere.Resources.EC2SecurityGroupEgress where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -26,13 +26,34 @@   , _eC2SecurityGroupEgressGroupId :: Val Text   , _eC2SecurityGroupEgressIpProtocol :: Val Text   , _eC2SecurityGroupEgressToPort :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2SecurityGroupEgress where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  toJSON EC2SecurityGroupEgress{..} =+    object $+    catMaybes+    [ ("CidrIp" .=) <$> _eC2SecurityGroupEgressCidrIp+    , ("CidrIpv6" .=) <$> _eC2SecurityGroupEgressCidrIpv6+    , ("DestinationPrefixListId" .=) <$> _eC2SecurityGroupEgressDestinationPrefixListId+    , ("DestinationSecurityGroupId" .=) <$> _eC2SecurityGroupEgressDestinationSecurityGroupId+    , ("FromPort" .=) <$> _eC2SecurityGroupEgressFromPort+    , Just ("GroupId" .= _eC2SecurityGroupEgressGroupId)+    , Just ("IpProtocol" .= _eC2SecurityGroupEgressIpProtocol)+    , ("ToPort" .=) <$> _eC2SecurityGroupEgressToPort+    ]  instance FromJSON EC2SecurityGroupEgress where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2SecurityGroupEgress <$>+      obj .:? "CidrIp" <*>+      obj .:? "CidrIpv6" <*>+      obj .:? "DestinationPrefixListId" <*>+      obj .:? "DestinationSecurityGroupId" <*>+      obj .:? "FromPort" <*>+      obj .: "GroupId" <*>+      obj .: "IpProtocol" <*>+      obj .:? "ToPort"+  parseJSON _ = mempty  -- | Constructor for 'EC2SecurityGroupEgress' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/EC2SecurityGroupIngress.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html  module Stratosphere.Resources.EC2SecurityGroupIngress where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -28,13 +28,38 @@   , _eC2SecurityGroupIngressSourceSecurityGroupName :: Maybe (Val Text)   , _eC2SecurityGroupIngressSourceSecurityGroupOwnerId :: Maybe (Val Text)   , _eC2SecurityGroupIngressToPort :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2SecurityGroupIngress where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  toJSON EC2SecurityGroupIngress{..} =+    object $+    catMaybes+    [ ("CidrIp" .=) <$> _eC2SecurityGroupIngressCidrIp+    , ("CidrIpv6" .=) <$> _eC2SecurityGroupIngressCidrIpv6+    , ("FromPort" .=) <$> _eC2SecurityGroupIngressFromPort+    , ("GroupId" .=) <$> _eC2SecurityGroupIngressGroupId+    , ("GroupName" .=) <$> _eC2SecurityGroupIngressGroupName+    , Just ("IpProtocol" .= _eC2SecurityGroupIngressIpProtocol)+    , ("SourceSecurityGroupId" .=) <$> _eC2SecurityGroupIngressSourceSecurityGroupId+    , ("SourceSecurityGroupName" .=) <$> _eC2SecurityGroupIngressSourceSecurityGroupName+    , ("SourceSecurityGroupOwnerId" .=) <$> _eC2SecurityGroupIngressSourceSecurityGroupOwnerId+    , ("ToPort" .=) <$> _eC2SecurityGroupIngressToPort+    ]  instance FromJSON EC2SecurityGroupIngress where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2SecurityGroupIngress <$>+      obj .:? "CidrIp" <*>+      obj .:? "CidrIpv6" <*>+      obj .:? "FromPort" <*>+      obj .:? "GroupId" <*>+      obj .:? "GroupName" <*>+      obj .: "IpProtocol" <*>+      obj .:? "SourceSecurityGroupId" <*>+      obj .:? "SourceSecurityGroupName" <*>+      obj .:? "SourceSecurityGroupOwnerId" <*>+      obj .:? "ToPort"+  parseJSON _ = mempty  -- | Constructor for 'EC2SecurityGroupIngress' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/EC2SpotFleet.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-spotfleet.html  module Stratosphere.Resources.EC2SpotFleet where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EC2SpotFleetSpotFleetRequestConfigData@@ -19,13 +19,20 @@ data EC2SpotFleet =   EC2SpotFleet   { _eC2SpotFleetSpotFleetRequestConfigData :: EC2SpotFleetSpotFleetRequestConfigData-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2SpotFleet where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 13, omitNothingFields = True }+  toJSON EC2SpotFleet{..} =+    object $+    catMaybes+    [ Just ("SpotFleetRequestConfigData" .= _eC2SpotFleetSpotFleetRequestConfigData)+    ]  instance FromJSON EC2SpotFleet where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 13, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2SpotFleet <$>+      obj .: "SpotFleetRequestConfigData"+  parseJSON _ = mempty  -- | Constructor for 'EC2SpotFleet' containing required fields as arguments. ec2SpotFleet
library-gen/Stratosphere/Resources/EC2Subnet.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html  module Stratosphere.Resources.EC2Subnet where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Tag@@ -23,13 +23,28 @@   , _eC2SubnetMapPublicIpOnLaunch :: Maybe (Val Bool')   , _eC2SubnetTags :: Maybe [Tag]   , _eC2SubnetVpcId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2Subnet where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 10, omitNothingFields = True }+  toJSON EC2Subnet{..} =+    object $+    catMaybes+    [ ("AvailabilityZone" .=) <$> _eC2SubnetAvailabilityZone+    , Just ("CidrBlock" .= _eC2SubnetCidrBlock)+    , ("MapPublicIpOnLaunch" .=) <$> _eC2SubnetMapPublicIpOnLaunch+    , ("Tags" .=) <$> _eC2SubnetTags+    , Just ("VpcId" .= _eC2SubnetVpcId)+    ]  instance FromJSON EC2Subnet where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 10, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2Subnet <$>+      obj .:? "AvailabilityZone" <*>+      obj .: "CidrBlock" <*>+      obj .:? "MapPublicIpOnLaunch" <*>+      obj .:? "Tags" <*>+      obj .: "VpcId"+  parseJSON _ = mempty  -- | Constructor for 'EC2Subnet' containing required fields as arguments. ec2Subnet
library-gen/Stratosphere/Resources/EC2SubnetCidrBlock.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetcidrblock.html  module Stratosphere.Resources.EC2SubnetCidrBlock where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   EC2SubnetCidrBlock   { _eC2SubnetCidrBlockIpv6CidrBlock :: Val Text   , _eC2SubnetCidrBlockSubnetId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2SubnetCidrBlock where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  toJSON EC2SubnetCidrBlock{..} =+    object $+    catMaybes+    [ Just ("Ipv6CidrBlock" .= _eC2SubnetCidrBlockIpv6CidrBlock)+    , Just ("SubnetId" .= _eC2SubnetCidrBlockSubnetId)+    ]  instance FromJSON EC2SubnetCidrBlock where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2SubnetCidrBlock <$>+      obj .: "Ipv6CidrBlock" <*>+      obj .: "SubnetId"+  parseJSON _ = mempty  -- | Constructor for 'EC2SubnetCidrBlock' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/EC2SubnetNetworkAclAssociation.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet-network-acl-assoc.html  module Stratosphere.Resources.EC2SubnetNetworkAclAssociation where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   EC2SubnetNetworkAclAssociation   { _eC2SubnetNetworkAclAssociationNetworkAclId :: Val Text   , _eC2SubnetNetworkAclAssociationSubnetId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2SubnetNetworkAclAssociation where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  toJSON EC2SubnetNetworkAclAssociation{..} =+    object $+    catMaybes+    [ Just ("NetworkAclId" .= _eC2SubnetNetworkAclAssociationNetworkAclId)+    , Just ("SubnetId" .= _eC2SubnetNetworkAclAssociationSubnetId)+    ]  instance FromJSON EC2SubnetNetworkAclAssociation where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2SubnetNetworkAclAssociation <$>+      obj .: "NetworkAclId" <*>+      obj .: "SubnetId"+  parseJSON _ = mempty  -- | Constructor for 'EC2SubnetNetworkAclAssociation' containing required -- | fields as arguments.
library-gen/Stratosphere/Resources/EC2SubnetRouteTableAssociation.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet-route-table-assoc.html  module Stratosphere.Resources.EC2SubnetRouteTableAssociation where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   EC2SubnetRouteTableAssociation   { _eC2SubnetRouteTableAssociationRouteTableId :: Val Text   , _eC2SubnetRouteTableAssociationSubnetId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2SubnetRouteTableAssociation where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  toJSON EC2SubnetRouteTableAssociation{..} =+    object $+    catMaybes+    [ Just ("RouteTableId" .= _eC2SubnetRouteTableAssociationRouteTableId)+    , Just ("SubnetId" .= _eC2SubnetRouteTableAssociationSubnetId)+    ]  instance FromJSON EC2SubnetRouteTableAssociation where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2SubnetRouteTableAssociation <$>+      obj .: "RouteTableId" <*>+      obj .: "SubnetId"+  parseJSON _ = mempty  -- | Constructor for 'EC2SubnetRouteTableAssociation' containing required -- | fields as arguments.
library-gen/Stratosphere/Resources/EC2VPC.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html  module Stratosphere.Resources.EC2VPC where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Tag@@ -23,13 +23,28 @@   , _eC2VPCEnableDnsSupport :: Maybe (Val Bool')   , _eC2VPCInstanceTenancy :: Maybe (Val Text)   , _eC2VPCTags :: Maybe [Tag]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2VPC where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 7, omitNothingFields = True }+  toJSON EC2VPC{..} =+    object $+    catMaybes+    [ Just ("CidrBlock" .= _eC2VPCCidrBlock)+    , ("EnableDnsHostnames" .=) <$> _eC2VPCEnableDnsHostnames+    , ("EnableDnsSupport" .=) <$> _eC2VPCEnableDnsSupport+    , ("InstanceTenancy" .=) <$> _eC2VPCInstanceTenancy+    , ("Tags" .=) <$> _eC2VPCTags+    ]  instance FromJSON EC2VPC where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 7, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2VPC <$>+      obj .: "CidrBlock" <*>+      obj .:? "EnableDnsHostnames" <*>+      obj .:? "EnableDnsSupport" <*>+      obj .:? "InstanceTenancy" <*>+      obj .:? "Tags"+  parseJSON _ = mempty  -- | Constructor for 'EC2VPC' containing required fields as arguments. ec2VPC
library-gen/Stratosphere/Resources/EC2VPCCidrBlock.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html  module Stratosphere.Resources.EC2VPCCidrBlock where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   EC2VPCCidrBlock   { _eC2VPCCidrBlockAmazonProvidedIpv6CidrBlock :: Maybe (Val Bool')   , _eC2VPCCidrBlockVpcId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2VPCCidrBlock where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }+  toJSON EC2VPCCidrBlock{..} =+    object $+    catMaybes+    [ ("AmazonProvidedIpv6CidrBlock" .=) <$> _eC2VPCCidrBlockAmazonProvidedIpv6CidrBlock+    , Just ("VpcId" .= _eC2VPCCidrBlockVpcId)+    ]  instance FromJSON EC2VPCCidrBlock where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2VPCCidrBlock <$>+      obj .:? "AmazonProvidedIpv6CidrBlock" <*>+      obj .: "VpcId"+  parseJSON _ = mempty  -- | Constructor for 'EC2VPCCidrBlock' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/EC2VPCDHCPOptionsAssociation.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-dhcp-options-assoc.html  module Stratosphere.Resources.EC2VPCDHCPOptionsAssociation where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   EC2VPCDHCPOptionsAssociation   { _eC2VPCDHCPOptionsAssociationDhcpOptionsId :: Val Text   , _eC2VPCDHCPOptionsAssociationVpcId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2VPCDHCPOptionsAssociation where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  toJSON EC2VPCDHCPOptionsAssociation{..} =+    object $+    catMaybes+    [ Just ("DhcpOptionsId" .= _eC2VPCDHCPOptionsAssociationDhcpOptionsId)+    , Just ("VpcId" .= _eC2VPCDHCPOptionsAssociationVpcId)+    ]  instance FromJSON EC2VPCDHCPOptionsAssociation where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2VPCDHCPOptionsAssociation <$>+      obj .: "DhcpOptionsId" <*>+      obj .: "VpcId"+  parseJSON _ = mempty  -- | Constructor for 'EC2VPCDHCPOptionsAssociation' containing required fields -- | as arguments.
library-gen/Stratosphere/Resources/EC2VPCEndpoint.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html  module Stratosphere.Resources.EC2VPCEndpoint where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,26 @@   , _eC2VPCEndpointRouteTableIds :: Maybe [Val Text]   , _eC2VPCEndpointServiceName :: Val Text   , _eC2VPCEndpointVpcId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2VPCEndpoint where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  toJSON EC2VPCEndpoint{..} =+    object $+    catMaybes+    [ ("PolicyDocument" .=) <$> _eC2VPCEndpointPolicyDocument+    , ("RouteTableIds" .=) <$> _eC2VPCEndpointRouteTableIds+    , Just ("ServiceName" .= _eC2VPCEndpointServiceName)+    , Just ("VpcId" .= _eC2VPCEndpointVpcId)+    ]  instance FromJSON EC2VPCEndpoint where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2VPCEndpoint <$>+      obj .:? "PolicyDocument" <*>+      obj .:? "RouteTableIds" <*>+      obj .: "ServiceName" <*>+      obj .: "VpcId"+  parseJSON _ = mempty  -- | Constructor for 'EC2VPCEndpoint' containing required fields as arguments. ec2VPCEndpoint
library-gen/Stratosphere/Resources/EC2VPCGatewayAttachment.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html  module Stratosphere.Resources.EC2VPCGatewayAttachment where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _eC2VPCGatewayAttachmentInternetGatewayId :: Maybe (Val Text)   , _eC2VPCGatewayAttachmentVpcId :: Val Text   , _eC2VPCGatewayAttachmentVpnGatewayId :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2VPCGatewayAttachment where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  toJSON EC2VPCGatewayAttachment{..} =+    object $+    catMaybes+    [ ("InternetGatewayId" .=) <$> _eC2VPCGatewayAttachmentInternetGatewayId+    , Just ("VpcId" .= _eC2VPCGatewayAttachmentVpcId)+    , ("VpnGatewayId" .=) <$> _eC2VPCGatewayAttachmentVpnGatewayId+    ]  instance FromJSON EC2VPCGatewayAttachment where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2VPCGatewayAttachment <$>+      obj .:? "InternetGatewayId" <*>+      obj .: "VpcId" <*>+      obj .:? "VpnGatewayId"+  parseJSON _ = mempty  -- | Constructor for 'EC2VPCGatewayAttachment' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/EC2VPCPeeringConnection.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcpeeringconnection.html  module Stratosphere.Resources.EC2VPCPeeringConnection where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Tag@@ -21,13 +21,24 @@   { _eC2VPCPeeringConnectionPeerVpcId :: Val Text   , _eC2VPCPeeringConnectionTags :: Maybe [Tag]   , _eC2VPCPeeringConnectionVpcId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2VPCPeeringConnection where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  toJSON EC2VPCPeeringConnection{..} =+    object $+    catMaybes+    [ Just ("PeerVpcId" .= _eC2VPCPeeringConnectionPeerVpcId)+    , ("Tags" .=) <$> _eC2VPCPeeringConnectionTags+    , Just ("VpcId" .= _eC2VPCPeeringConnectionVpcId)+    ]  instance FromJSON EC2VPCPeeringConnection where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2VPCPeeringConnection <$>+      obj .: "PeerVpcId" <*>+      obj .:? "Tags" <*>+      obj .: "VpcId"+  parseJSON _ = mempty  -- | Constructor for 'EC2VPCPeeringConnection' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/EC2VPNConnection.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection.html  module Stratosphere.Resources.EC2VPNConnection where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Tag@@ -23,13 +23,28 @@   , _eC2VPNConnectionTags :: Maybe [Tag]   , _eC2VPNConnectionType :: Val Text   , _eC2VPNConnectionVpnGatewayId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2VPNConnection where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  toJSON EC2VPNConnection{..} =+    object $+    catMaybes+    [ Just ("CustomerGatewayId" .= _eC2VPNConnectionCustomerGatewayId)+    , ("StaticRoutesOnly" .=) <$> _eC2VPNConnectionStaticRoutesOnly+    , ("Tags" .=) <$> _eC2VPNConnectionTags+    , Just ("Type" .= _eC2VPNConnectionType)+    , Just ("VpnGatewayId" .= _eC2VPNConnectionVpnGatewayId)+    ]  instance FromJSON EC2VPNConnection where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2VPNConnection <$>+      obj .: "CustomerGatewayId" <*>+      obj .:? "StaticRoutesOnly" <*>+      obj .:? "Tags" <*>+      obj .: "Type" <*>+      obj .: "VpnGatewayId"+  parseJSON _ = mempty  -- | Constructor for 'EC2VPNConnection' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/EC2VPNConnectionRoute.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection-route.html  module Stratosphere.Resources.EC2VPNConnectionRoute where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   EC2VPNConnectionRoute   { _eC2VPNConnectionRouteDestinationCidrBlock :: Val Text   , _eC2VPNConnectionRouteVpnConnectionId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2VPNConnectionRoute where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 22, omitNothingFields = True }+  toJSON EC2VPNConnectionRoute{..} =+    object $+    catMaybes+    [ Just ("DestinationCidrBlock" .= _eC2VPNConnectionRouteDestinationCidrBlock)+    , Just ("VpnConnectionId" .= _eC2VPNConnectionRouteVpnConnectionId)+    ]  instance FromJSON EC2VPNConnectionRoute where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 22, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2VPNConnectionRoute <$>+      obj .: "DestinationCidrBlock" <*>+      obj .: "VpnConnectionId"+  parseJSON _ = mempty  -- | Constructor for 'EC2VPNConnectionRoute' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/EC2VPNGateway.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gateway.html  module Stratosphere.Resources.EC2VPNGateway where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Tag@@ -20,13 +20,22 @@   EC2VPNGateway   { _eC2VPNGatewayTags :: Maybe [Tag]   , _eC2VPNGatewayType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2VPNGateway where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  toJSON EC2VPNGateway{..} =+    object $+    catMaybes+    [ ("Tags" .=) <$> _eC2VPNGatewayTags+    , Just ("Type" .= _eC2VPNGatewayType)+    ]  instance FromJSON EC2VPNGateway where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2VPNGateway <$>+      obj .:? "Tags" <*>+      obj .: "Type"+  parseJSON _ = mempty  -- | Constructor for 'EC2VPNGateway' containing required fields as arguments. ec2VPNGateway
library-gen/Stratosphere/Resources/EC2VPNGatewayRoutePropagation.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gatewayrouteprop.html  module Stratosphere.Resources.EC2VPNGatewayRoutePropagation where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   EC2VPNGatewayRoutePropagation   { _eC2VPNGatewayRoutePropagationRouteTableIds :: [Val Text]   , _eC2VPNGatewayRoutePropagationVpnGatewayId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2VPNGatewayRoutePropagation where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  toJSON EC2VPNGatewayRoutePropagation{..} =+    object $+    catMaybes+    [ Just ("RouteTableIds" .= _eC2VPNGatewayRoutePropagationRouteTableIds)+    , Just ("VpnGatewayId" .= _eC2VPNGatewayRoutePropagationVpnGatewayId)+    ]  instance FromJSON EC2VPNGatewayRoutePropagation where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2VPNGatewayRoutePropagation <$>+      obj .: "RouteTableIds" <*>+      obj .: "VpnGatewayId"+  parseJSON _ = mempty  -- | Constructor for 'EC2VPNGatewayRoutePropagation' containing required -- | fields as arguments.
library-gen/Stratosphere/Resources/EC2Volume.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html  module Stratosphere.Resources.EC2Volume where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Tag@@ -27,13 +27,36 @@   , _eC2VolumeSnapshotId :: Maybe (Val Text)   , _eC2VolumeTags :: Maybe [Tag]   , _eC2VolumeVolumeType :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2Volume where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 10, omitNothingFields = True }+  toJSON EC2Volume{..} =+    object $+    catMaybes+    [ ("AutoEnableIO" .=) <$> _eC2VolumeAutoEnableIO+    , Just ("AvailabilityZone" .= _eC2VolumeAvailabilityZone)+    , ("Encrypted" .=) <$> _eC2VolumeEncrypted+    , ("Iops" .=) <$> _eC2VolumeIops+    , ("KmsKeyId" .=) <$> _eC2VolumeKmsKeyId+    , ("Size" .=) <$> _eC2VolumeSize+    , ("SnapshotId" .=) <$> _eC2VolumeSnapshotId+    , ("Tags" .=) <$> _eC2VolumeTags+    , ("VolumeType" .=) <$> _eC2VolumeVolumeType+    ]  instance FromJSON EC2Volume where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 10, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2Volume <$>+      obj .:? "AutoEnableIO" <*>+      obj .: "AvailabilityZone" <*>+      obj .:? "Encrypted" <*>+      obj .:? "Iops" <*>+      obj .:? "KmsKeyId" <*>+      obj .:? "Size" <*>+      obj .:? "SnapshotId" <*>+      obj .:? "Tags" <*>+      obj .:? "VolumeType"+  parseJSON _ = mempty  -- | Constructor for 'EC2Volume' containing required fields as arguments. ec2Volume
library-gen/Stratosphere/Resources/EC2VolumeAttachment.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volumeattachment.html  module Stratosphere.Resources.EC2VolumeAttachment where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _eC2VolumeAttachmentDevice :: Val Text   , _eC2VolumeAttachmentInstanceId :: Val Text   , _eC2VolumeAttachmentVolumeId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EC2VolumeAttachment where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  toJSON EC2VolumeAttachment{..} =+    object $+    catMaybes+    [ Just ("Device" .= _eC2VolumeAttachmentDevice)+    , Just ("InstanceId" .= _eC2VolumeAttachmentInstanceId)+    , Just ("VolumeId" .= _eC2VolumeAttachmentVolumeId)+    ]  instance FromJSON EC2VolumeAttachment where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  parseJSON (Object obj) =+    EC2VolumeAttachment <$>+      obj .: "Device" <*>+      obj .: "InstanceId" <*>+      obj .: "VolumeId"+  parseJSON _ = mempty  -- | Constructor for 'EC2VolumeAttachment' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/ECRRepository.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html  module Stratosphere.Resources.ECRRepository where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   ECRRepository   { _eCRRepositoryRepositoryName :: Maybe (Val Text)   , _eCRRepositoryRepositoryPolicyText :: Maybe Object-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ECRRepository where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  toJSON ECRRepository{..} =+    object $+    catMaybes+    [ ("RepositoryName" .=) <$> _eCRRepositoryRepositoryName+    , ("RepositoryPolicyText" .=) <$> _eCRRepositoryRepositoryPolicyText+    ]  instance FromJSON ECRRepository where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  parseJSON (Object obj) =+    ECRRepository <$>+      obj .:? "RepositoryName" <*>+      obj .:? "RepositoryPolicyText"+  parseJSON _ = mempty  -- | Constructor for 'ECRRepository' containing required fields as arguments. ecrRepository
library-gen/Stratosphere/Resources/ECSCluster.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html  module Stratosphere.Resources.ECSCluster where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data ECSCluster =   ECSCluster   { _eCSClusterClusterName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ECSCluster where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 11, omitNothingFields = True }+  toJSON ECSCluster{..} =+    object $+    catMaybes+    [ ("ClusterName" .=) <$> _eCSClusterClusterName+    ]  instance FromJSON ECSCluster where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 11, omitNothingFields = True }+  parseJSON (Object obj) =+    ECSCluster <$>+      obj .:? "ClusterName"+  parseJSON _ = mempty  -- | Constructor for 'ECSCluster' containing required fields as arguments. ecsCluster
library-gen/Stratosphere/Resources/ECSService.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html  module Stratosphere.Resources.ECSService where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ECSServiceDeploymentConfiguration@@ -25,13 +25,30 @@   , _eCSServiceLoadBalancers :: Maybe [ECSServiceLoadBalancer]   , _eCSServiceRole :: Maybe (Val Text)   , _eCSServiceTaskDefinition :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ECSService where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 11, omitNothingFields = True }+  toJSON ECSService{..} =+    object $+    catMaybes+    [ ("Cluster" .=) <$> _eCSServiceCluster+    , ("DeploymentConfiguration" .=) <$> _eCSServiceDeploymentConfiguration+    , Just ("DesiredCount" .= _eCSServiceDesiredCount)+    , ("LoadBalancers" .=) <$> _eCSServiceLoadBalancers+    , ("Role" .=) <$> _eCSServiceRole+    , Just ("TaskDefinition" .= _eCSServiceTaskDefinition)+    ]  instance FromJSON ECSService where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 11, omitNothingFields = True }+  parseJSON (Object obj) =+    ECSService <$>+      obj .:? "Cluster" <*>+      obj .:? "DeploymentConfiguration" <*>+      obj .: "DesiredCount" <*>+      obj .:? "LoadBalancers" <*>+      obj .:? "Role" <*>+      obj .: "TaskDefinition"+  parseJSON _ = mempty  -- | Constructor for 'ECSService' containing required fields as arguments. ecsService
library-gen/Stratosphere/Resources/ECSTaskDefinition.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html  module Stratosphere.Resources.ECSTaskDefinition where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ECSTaskDefinitionContainerDefinition@@ -24,13 +24,28 @@   , _eCSTaskDefinitionNetworkMode :: Maybe (Val Text)   , _eCSTaskDefinitionTaskRoleArn :: Maybe (Val Text)   , _eCSTaskDefinitionVolumes :: Maybe [ECSTaskDefinitionVolume]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ECSTaskDefinition where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 18, omitNothingFields = True }+  toJSON ECSTaskDefinition{..} =+    object $+    catMaybes+    [ ("ContainerDefinitions" .=) <$> _eCSTaskDefinitionContainerDefinitions+    , ("Family" .=) <$> _eCSTaskDefinitionFamily+    , ("NetworkMode" .=) <$> _eCSTaskDefinitionNetworkMode+    , ("TaskRoleArn" .=) <$> _eCSTaskDefinitionTaskRoleArn+    , ("Volumes" .=) <$> _eCSTaskDefinitionVolumes+    ]  instance FromJSON ECSTaskDefinition where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 18, omitNothingFields = True }+  parseJSON (Object obj) =+    ECSTaskDefinition <$>+      obj .:? "ContainerDefinitions" <*>+      obj .:? "Family" <*>+      obj .:? "NetworkMode" <*>+      obj .:? "TaskRoleArn" <*>+      obj .:? "Volumes"+  parseJSON _ = mempty  -- | Constructor for 'ECSTaskDefinition' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/EFSFileSystem.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html  module Stratosphere.Resources.EFSFileSystem where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EFSFileSystemElasticFileSystemTag@@ -20,13 +20,22 @@   EFSFileSystem   { _eFSFileSystemFileSystemTags :: Maybe [EFSFileSystemElasticFileSystemTag]   , _eFSFileSystemPerformanceMode :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EFSFileSystem where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  toJSON EFSFileSystem{..} =+    object $+    catMaybes+    [ ("FileSystemTags" .=) <$> _eFSFileSystemFileSystemTags+    , ("PerformanceMode" .=) <$> _eFSFileSystemPerformanceMode+    ]  instance FromJSON EFSFileSystem where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  parseJSON (Object obj) =+    EFSFileSystem <$>+      obj .:? "FileSystemTags" <*>+      obj .:? "PerformanceMode"+  parseJSON _ = mempty  -- | Constructor for 'EFSFileSystem' containing required fields as arguments. efsFileSystem
library-gen/Stratosphere/Resources/EFSMountTarget.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html  module Stratosphere.Resources.EFSMountTarget where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,26 @@   , _eFSMountTargetIpAddress :: Maybe (Val Text)   , _eFSMountTargetSecurityGroups :: [Val Text]   , _eFSMountTargetSubnetId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EFSMountTarget where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  toJSON EFSMountTarget{..} =+    object $+    catMaybes+    [ Just ("FileSystemId" .= _eFSMountTargetFileSystemId)+    , ("IpAddress" .=) <$> _eFSMountTargetIpAddress+    , Just ("SecurityGroups" .= _eFSMountTargetSecurityGroups)+    , Just ("SubnetId" .= _eFSMountTargetSubnetId)+    ]  instance FromJSON EFSMountTarget where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  parseJSON (Object obj) =+    EFSMountTarget <$>+      obj .: "FileSystemId" <*>+      obj .:? "IpAddress" <*>+      obj .: "SecurityGroups" <*>+      obj .: "SubnetId"+  parseJSON _ = mempty  -- | Constructor for 'EFSMountTarget' containing required fields as arguments. efsMountTarget
library-gen/Stratosphere/Resources/EMRCluster.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html  module Stratosphere.Resources.EMRCluster where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EMRClusterApplication@@ -34,13 +34,42 @@   , _eMRClusterServiceRole :: Val Text   , _eMRClusterTags :: Maybe [Tag]   , _eMRClusterVisibleToAllUsers :: Maybe (Val Bool')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EMRCluster where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 11, omitNothingFields = True }+  toJSON EMRCluster{..} =+    object $+    catMaybes+    [ ("AdditionalInfo" .=) <$> _eMRClusterAdditionalInfo+    , ("Applications" .=) <$> _eMRClusterApplications+    , ("BootstrapActions" .=) <$> _eMRClusterBootstrapActions+    , ("Configurations" .=) <$> _eMRClusterConfigurations+    , Just ("Instances" .= _eMRClusterInstances)+    , Just ("JobFlowRole" .= _eMRClusterJobFlowRole)+    , ("LogUri" .=) <$> _eMRClusterLogUri+    , Just ("Name" .= _eMRClusterName)+    , ("ReleaseLabel" .=) <$> _eMRClusterReleaseLabel+    , Just ("ServiceRole" .= _eMRClusterServiceRole)+    , ("Tags" .=) <$> _eMRClusterTags+    , ("VisibleToAllUsers" .=) <$> _eMRClusterVisibleToAllUsers+    ]  instance FromJSON EMRCluster where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 11, omitNothingFields = True }+  parseJSON (Object obj) =+    EMRCluster <$>+      obj .:? "AdditionalInfo" <*>+      obj .:? "Applications" <*>+      obj .:? "BootstrapActions" <*>+      obj .:? "Configurations" <*>+      obj .: "Instances" <*>+      obj .: "JobFlowRole" <*>+      obj .:? "LogUri" <*>+      obj .: "Name" <*>+      obj .:? "ReleaseLabel" <*>+      obj .: "ServiceRole" <*>+      obj .:? "Tags" <*>+      obj .:? "VisibleToAllUsers"+  parseJSON _ = mempty  -- | Constructor for 'EMRCluster' containing required fields as arguments. emrCluster
library-gen/Stratosphere/Resources/EMRInstanceGroupConfig.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html  module Stratosphere.Resources.EMRInstanceGroupConfig where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EMRInstanceGroupConfigConfiguration@@ -28,13 +28,36 @@   , _eMRInstanceGroupConfigJobFlowId :: Val Text   , _eMRInstanceGroupConfigMarket :: Maybe (Val Text)   , _eMRInstanceGroupConfigName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EMRInstanceGroupConfig where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  toJSON EMRInstanceGroupConfig{..} =+    object $+    catMaybes+    [ ("BidPrice" .=) <$> _eMRInstanceGroupConfigBidPrice+    , ("Configurations" .=) <$> _eMRInstanceGroupConfigConfigurations+    , ("EbsConfiguration" .=) <$> _eMRInstanceGroupConfigEbsConfiguration+    , Just ("InstanceCount" .= _eMRInstanceGroupConfigInstanceCount)+    , Just ("InstanceRole" .= _eMRInstanceGroupConfigInstanceRole)+    , Just ("InstanceType" .= _eMRInstanceGroupConfigInstanceType)+    , Just ("JobFlowId" .= _eMRInstanceGroupConfigJobFlowId)+    , ("Market" .=) <$> _eMRInstanceGroupConfigMarket+    , ("Name" .=) <$> _eMRInstanceGroupConfigName+    ]  instance FromJSON EMRInstanceGroupConfig where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  parseJSON (Object obj) =+    EMRInstanceGroupConfig <$>+      obj .:? "BidPrice" <*>+      obj .:? "Configurations" <*>+      obj .:? "EbsConfiguration" <*>+      obj .: "InstanceCount" <*>+      obj .: "InstanceRole" <*>+      obj .: "InstanceType" <*>+      obj .: "JobFlowId" <*>+      obj .:? "Market" <*>+      obj .:? "Name"+  parseJSON _ = mempty  -- | Constructor for 'EMRInstanceGroupConfig' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/EMRStep.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-step.html  module Stratosphere.Resources.EMRStep where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.EMRStepHadoopJarStepConfig@@ -22,13 +22,26 @@   , _eMRStepHadoopJarStep :: EMRStepHadoopJarStepConfig   , _eMRStepJobFlowId :: Val Text   , _eMRStepName :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EMRStep where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 8, omitNothingFields = True }+  toJSON EMRStep{..} =+    object $+    catMaybes+    [ Just ("ActionOnFailure" .= _eMRStepActionOnFailure)+    , Just ("HadoopJarStep" .= _eMRStepHadoopJarStep)+    , Just ("JobFlowId" .= _eMRStepJobFlowId)+    , Just ("Name" .= _eMRStepName)+    ]  instance FromJSON EMRStep where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 8, omitNothingFields = True }+  parseJSON (Object obj) =+    EMRStep <$>+      obj .: "ActionOnFailure" <*>+      obj .: "HadoopJarStep" <*>+      obj .: "JobFlowId" <*>+      obj .: "Name"+  parseJSON _ = mempty  -- | Constructor for 'EMRStep' containing required fields as arguments. emrStep
library-gen/Stratosphere/Resources/ElastiCacheCacheCluster.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html  module Stratosphere.Resources.ElastiCacheCacheCluster where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Tag@@ -39,13 +39,60 @@   , _elastiCacheCacheClusterSnapshotWindow :: Maybe (Val Text)   , _elastiCacheCacheClusterTags :: Maybe [Tag]   , _elastiCacheCacheClusterVpcSecurityGroupIds :: Maybe [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElastiCacheCacheCluster where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  toJSON ElastiCacheCacheCluster{..} =+    object $+    catMaybes+    [ ("AZMode" .=) <$> _elastiCacheCacheClusterAZMode+    , ("AutoMinorVersionUpgrade" .=) <$> _elastiCacheCacheClusterAutoMinorVersionUpgrade+    , Just ("CacheNodeType" .= _elastiCacheCacheClusterCacheNodeType)+    , ("CacheParameterGroupName" .=) <$> _elastiCacheCacheClusterCacheParameterGroupName+    , ("CacheSecurityGroupNames" .=) <$> _elastiCacheCacheClusterCacheSecurityGroupNames+    , ("CacheSubnetGroupName" .=) <$> _elastiCacheCacheClusterCacheSubnetGroupName+    , ("ClusterName" .=) <$> _elastiCacheCacheClusterClusterName+    , Just ("Engine" .= _elastiCacheCacheClusterEngine)+    , ("EngineVersion" .=) <$> _elastiCacheCacheClusterEngineVersion+    , ("NotificationTopicArn" .=) <$> _elastiCacheCacheClusterNotificationTopicArn+    , Just ("NumCacheNodes" .= _elastiCacheCacheClusterNumCacheNodes)+    , ("Port" .=) <$> _elastiCacheCacheClusterPort+    , ("PreferredAvailabilityZone" .=) <$> _elastiCacheCacheClusterPreferredAvailabilityZone+    , ("PreferredAvailabilityZones" .=) <$> _elastiCacheCacheClusterPreferredAvailabilityZones+    , ("PreferredMaintenanceWindow" .=) <$> _elastiCacheCacheClusterPreferredMaintenanceWindow+    , ("SnapshotArns" .=) <$> _elastiCacheCacheClusterSnapshotArns+    , ("SnapshotName" .=) <$> _elastiCacheCacheClusterSnapshotName+    , ("SnapshotRetentionLimit" .=) <$> _elastiCacheCacheClusterSnapshotRetentionLimit+    , ("SnapshotWindow" .=) <$> _elastiCacheCacheClusterSnapshotWindow+    , ("Tags" .=) <$> _elastiCacheCacheClusterTags+    , ("VpcSecurityGroupIds" .=) <$> _elastiCacheCacheClusterVpcSecurityGroupIds+    ]  instance FromJSON ElastiCacheCacheCluster where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  parseJSON (Object obj) =+    ElastiCacheCacheCluster <$>+      obj .:? "AZMode" <*>+      obj .:? "AutoMinorVersionUpgrade" <*>+      obj .: "CacheNodeType" <*>+      obj .:? "CacheParameterGroupName" <*>+      obj .:? "CacheSecurityGroupNames" <*>+      obj .:? "CacheSubnetGroupName" <*>+      obj .:? "ClusterName" <*>+      obj .: "Engine" <*>+      obj .:? "EngineVersion" <*>+      obj .:? "NotificationTopicArn" <*>+      obj .: "NumCacheNodes" <*>+      obj .:? "Port" <*>+      obj .:? "PreferredAvailabilityZone" <*>+      obj .:? "PreferredAvailabilityZones" <*>+      obj .:? "PreferredMaintenanceWindow" <*>+      obj .:? "SnapshotArns" <*>+      obj .:? "SnapshotName" <*>+      obj .:? "SnapshotRetentionLimit" <*>+      obj .:? "SnapshotWindow" <*>+      obj .:? "Tags" <*>+      obj .:? "VpcSecurityGroupIds"+  parseJSON _ = mempty  -- | Constructor for 'ElastiCacheCacheCluster' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/ElastiCacheParameterGroup.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-parameter-group.html  module Stratosphere.Resources.ElastiCacheParameterGroup where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _elastiCacheParameterGroupCacheParameterGroupFamily :: Val Text   , _elastiCacheParameterGroupDescription :: Val Text   , _elastiCacheParameterGroupProperties :: Maybe Object-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElastiCacheParameterGroup where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }+  toJSON ElastiCacheParameterGroup{..} =+    object $+    catMaybes+    [ Just ("CacheParameterGroupFamily" .= _elastiCacheParameterGroupCacheParameterGroupFamily)+    , Just ("Description" .= _elastiCacheParameterGroupDescription)+    , ("Properties" .=) <$> _elastiCacheParameterGroupProperties+    ]  instance FromJSON ElastiCacheParameterGroup where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }+  parseJSON (Object obj) =+    ElastiCacheParameterGroup <$>+      obj .: "CacheParameterGroupFamily" <*>+      obj .: "Description" <*>+      obj .:? "Properties"+  parseJSON _ = mempty  -- | Constructor for 'ElastiCacheParameterGroup' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/ElastiCacheReplicationGroup.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html  module Stratosphere.Resources.ElastiCacheReplicationGroup where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ElastiCacheReplicationGroupNodeGroupConfiguration@@ -45,13 +45,70 @@   , _elastiCacheReplicationGroupSnapshotWindow :: Maybe (Val Text)   , _elastiCacheReplicationGroupSnapshottingClusterId :: Maybe (Val Text)   , _elastiCacheReplicationGroupTags :: Maybe [Tag]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElastiCacheReplicationGroup where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON ElastiCacheReplicationGroup{..} =+    object $+    catMaybes+    [ ("AutoMinorVersionUpgrade" .=) <$> _elastiCacheReplicationGroupAutoMinorVersionUpgrade+    , ("AutomaticFailoverEnabled" .=) <$> _elastiCacheReplicationGroupAutomaticFailoverEnabled+    , ("CacheNodeType" .=) <$> _elastiCacheReplicationGroupCacheNodeType+    , ("CacheParameterGroupName" .=) <$> _elastiCacheReplicationGroupCacheParameterGroupName+    , ("CacheSecurityGroupNames" .=) <$> _elastiCacheReplicationGroupCacheSecurityGroupNames+    , ("CacheSubnetGroupName" .=) <$> _elastiCacheReplicationGroupCacheSubnetGroupName+    , ("Engine" .=) <$> _elastiCacheReplicationGroupEngine+    , ("EngineVersion" .=) <$> _elastiCacheReplicationGroupEngineVersion+    , ("NodeGroupConfiguration" .=) <$> _elastiCacheReplicationGroupNodeGroupConfiguration+    , ("NotificationTopicArn" .=) <$> _elastiCacheReplicationGroupNotificationTopicArn+    , ("NumCacheClusters" .=) <$> _elastiCacheReplicationGroupNumCacheClusters+    , ("NumNodeGroups" .=) <$> _elastiCacheReplicationGroupNumNodeGroups+    , ("Port" .=) <$> _elastiCacheReplicationGroupPort+    , ("PreferredCacheClusterAZs" .=) <$> _elastiCacheReplicationGroupPreferredCacheClusterAZs+    , ("PreferredMaintenanceWindow" .=) <$> _elastiCacheReplicationGroupPreferredMaintenanceWindow+    , ("PrimaryClusterId" .=) <$> _elastiCacheReplicationGroupPrimaryClusterId+    , ("ReplicasPerNodeGroup" .=) <$> _elastiCacheReplicationGroupReplicasPerNodeGroup+    , Just ("ReplicationGroupDescription" .= _elastiCacheReplicationGroupReplicationGroupDescription)+    , ("ReplicationGroupId" .=) <$> _elastiCacheReplicationGroupReplicationGroupId+    , ("SecurityGroupIds" .=) <$> _elastiCacheReplicationGroupSecurityGroupIds+    , ("SnapshotArns" .=) <$> _elastiCacheReplicationGroupSnapshotArns+    , ("SnapshotName" .=) <$> _elastiCacheReplicationGroupSnapshotName+    , ("SnapshotRetentionLimit" .=) <$> _elastiCacheReplicationGroupSnapshotRetentionLimit+    , ("SnapshotWindow" .=) <$> _elastiCacheReplicationGroupSnapshotWindow+    , ("SnapshottingClusterId" .=) <$> _elastiCacheReplicationGroupSnapshottingClusterId+    , ("Tags" .=) <$> _elastiCacheReplicationGroupTags+    ]  instance FromJSON ElastiCacheReplicationGroup where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    ElastiCacheReplicationGroup <$>+      obj .:? "AutoMinorVersionUpgrade" <*>+      obj .:? "AutomaticFailoverEnabled" <*>+      obj .:? "CacheNodeType" <*>+      obj .:? "CacheParameterGroupName" <*>+      obj .:? "CacheSecurityGroupNames" <*>+      obj .:? "CacheSubnetGroupName" <*>+      obj .:? "Engine" <*>+      obj .:? "EngineVersion" <*>+      obj .:? "NodeGroupConfiguration" <*>+      obj .:? "NotificationTopicArn" <*>+      obj .:? "NumCacheClusters" <*>+      obj .:? "NumNodeGroups" <*>+      obj .:? "Port" <*>+      obj .:? "PreferredCacheClusterAZs" <*>+      obj .:? "PreferredMaintenanceWindow" <*>+      obj .:? "PrimaryClusterId" <*>+      obj .:? "ReplicasPerNodeGroup" <*>+      obj .: "ReplicationGroupDescription" <*>+      obj .:? "ReplicationGroupId" <*>+      obj .:? "SecurityGroupIds" <*>+      obj .:? "SnapshotArns" <*>+      obj .:? "SnapshotName" <*>+      obj .:? "SnapshotRetentionLimit" <*>+      obj .:? "SnapshotWindow" <*>+      obj .:? "SnapshottingClusterId" <*>+      obj .:? "Tags"+  parseJSON _ = mempty  -- | Constructor for 'ElastiCacheReplicationGroup' containing required fields -- | as arguments.
library-gen/Stratosphere/Resources/ElastiCacheSecurityGroup.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group.html  module Stratosphere.Resources.ElastiCacheSecurityGroup where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data ElastiCacheSecurityGroup =   ElastiCacheSecurityGroup   { _elastiCacheSecurityGroupDescription :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElastiCacheSecurityGroup where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 25, omitNothingFields = True }+  toJSON ElastiCacheSecurityGroup{..} =+    object $+    catMaybes+    [ Just ("Description" .= _elastiCacheSecurityGroupDescription)+    ]  instance FromJSON ElastiCacheSecurityGroup where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 25, omitNothingFields = True }+  parseJSON (Object obj) =+    ElastiCacheSecurityGroup <$>+      obj .: "Description"+  parseJSON _ = mempty  -- | Constructor for 'ElastiCacheSecurityGroup' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/ElastiCacheSecurityGroupIngress.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group-ingress.html  module Stratosphere.Resources.ElastiCacheSecurityGroupIngress where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _elastiCacheSecurityGroupIngressCacheSecurityGroupName :: Val Text   , _elastiCacheSecurityGroupIngressEC2SecurityGroupName :: Val Text   , _elastiCacheSecurityGroupIngressEC2SecurityGroupOwnerId :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElastiCacheSecurityGroupIngress where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 32, omitNothingFields = True }+  toJSON ElastiCacheSecurityGroupIngress{..} =+    object $+    catMaybes+    [ Just ("CacheSecurityGroupName" .= _elastiCacheSecurityGroupIngressCacheSecurityGroupName)+    , Just ("EC2SecurityGroupName" .= _elastiCacheSecurityGroupIngressEC2SecurityGroupName)+    , ("EC2SecurityGroupOwnerId" .=) <$> _elastiCacheSecurityGroupIngressEC2SecurityGroupOwnerId+    ]  instance FromJSON ElastiCacheSecurityGroupIngress where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 32, omitNothingFields = True }+  parseJSON (Object obj) =+    ElastiCacheSecurityGroupIngress <$>+      obj .: "CacheSecurityGroupName" <*>+      obj .: "EC2SecurityGroupName" <*>+      obj .:? "EC2SecurityGroupOwnerId"+  parseJSON _ = mempty  -- | Constructor for 'ElastiCacheSecurityGroupIngress' containing required -- | fields as arguments.
library-gen/Stratosphere/Resources/ElastiCacheSubnetGroup.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-subnetgroup.html  module Stratosphere.Resources.ElastiCacheSubnetGroup where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _elastiCacheSubnetGroupCacheSubnetGroupName :: Maybe (Val Text)   , _elastiCacheSubnetGroupDescription :: Val Text   , _elastiCacheSubnetGroupSubnetIds :: [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElastiCacheSubnetGroup where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  toJSON ElastiCacheSubnetGroup{..} =+    object $+    catMaybes+    [ ("CacheSubnetGroupName" .=) <$> _elastiCacheSubnetGroupCacheSubnetGroupName+    , Just ("Description" .= _elastiCacheSubnetGroupDescription)+    , Just ("SubnetIds" .= _elastiCacheSubnetGroupSubnetIds)+    ]  instance FromJSON ElastiCacheSubnetGroup where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  parseJSON (Object obj) =+    ElastiCacheSubnetGroup <$>+      obj .:? "CacheSubnetGroupName" <*>+      obj .: "Description" <*>+      obj .: "SubnetIds"+  parseJSON _ = mempty  -- | Constructor for 'ElastiCacheSubnetGroup' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/ElasticBeanstalkApplication.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk.html  module Stratosphere.Resources.ElasticBeanstalkApplication where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   ElasticBeanstalkApplication   { _elasticBeanstalkApplicationApplicationName :: Maybe (Val Text)   , _elasticBeanstalkApplicationDescription :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticBeanstalkApplication where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON ElasticBeanstalkApplication{..} =+    object $+    catMaybes+    [ ("ApplicationName" .=) <$> _elasticBeanstalkApplicationApplicationName+    , ("Description" .=) <$> _elasticBeanstalkApplicationDescription+    ]  instance FromJSON ElasticBeanstalkApplication where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticBeanstalkApplication <$>+      obj .:? "ApplicationName" <*>+      obj .:? "Description"+  parseJSON _ = mempty  -- | Constructor for 'ElasticBeanstalkApplication' containing required fields -- | as arguments.
library-gen/Stratosphere/Resources/ElasticBeanstalkApplicationVersion.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-version.html  module Stratosphere.Resources.ElasticBeanstalkApplicationVersion where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ElasticBeanstalkApplicationVersionSourceBundle@@ -21,13 +21,24 @@   { _elasticBeanstalkApplicationVersionApplicationName :: Val Text   , _elasticBeanstalkApplicationVersionDescription :: Maybe (Val Text)   , _elasticBeanstalkApplicationVersionSourceBundle :: ElasticBeanstalkApplicationVersionSourceBundle-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticBeanstalkApplicationVersion where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  toJSON ElasticBeanstalkApplicationVersion{..} =+    object $+    catMaybes+    [ Just ("ApplicationName" .= _elasticBeanstalkApplicationVersionApplicationName)+    , ("Description" .=) <$> _elasticBeanstalkApplicationVersionDescription+    , Just ("SourceBundle" .= _elasticBeanstalkApplicationVersionSourceBundle)+    ]  instance FromJSON ElasticBeanstalkApplicationVersion where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticBeanstalkApplicationVersion <$>+      obj .: "ApplicationName" <*>+      obj .:? "Description" <*>+      obj .: "SourceBundle"+  parseJSON _ = mempty  -- | Constructor for 'ElasticBeanstalkApplicationVersion' containing required -- | fields as arguments.
library-gen/Stratosphere/Resources/ElasticBeanstalkConfigurationTemplate.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-beanstalk-configurationtemplate.html  module Stratosphere.Resources.ElasticBeanstalkConfigurationTemplate where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ElasticBeanstalkConfigurationTemplateConfigurationOptionSetting@@ -26,13 +26,30 @@   , _elasticBeanstalkConfigurationTemplateOptionSettings :: Maybe [ElasticBeanstalkConfigurationTemplateConfigurationOptionSetting]   , _elasticBeanstalkConfigurationTemplateSolutionStackName :: Maybe (Val Text)   , _elasticBeanstalkConfigurationTemplateSourceConfiguration :: Maybe ElasticBeanstalkConfigurationTemplateSourceConfiguration-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticBeanstalkConfigurationTemplate where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 38, omitNothingFields = True }+  toJSON ElasticBeanstalkConfigurationTemplate{..} =+    object $+    catMaybes+    [ Just ("ApplicationName" .= _elasticBeanstalkConfigurationTemplateApplicationName)+    , ("Description" .=) <$> _elasticBeanstalkConfigurationTemplateDescription+    , ("EnvironmentId" .=) <$> _elasticBeanstalkConfigurationTemplateEnvironmentId+    , ("OptionSettings" .=) <$> _elasticBeanstalkConfigurationTemplateOptionSettings+    , ("SolutionStackName" .=) <$> _elasticBeanstalkConfigurationTemplateSolutionStackName+    , ("SourceConfiguration" .=) <$> _elasticBeanstalkConfigurationTemplateSourceConfiguration+    ]  instance FromJSON ElasticBeanstalkConfigurationTemplate where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 38, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticBeanstalkConfigurationTemplate <$>+      obj .: "ApplicationName" <*>+      obj .:? "Description" <*>+      obj .:? "EnvironmentId" <*>+      obj .:? "OptionSettings" <*>+      obj .:? "SolutionStackName" <*>+      obj .:? "SourceConfiguration"+  parseJSON _ = mempty  -- | Constructor for 'ElasticBeanstalkConfigurationTemplate' containing -- | required fields as arguments.
library-gen/Stratosphere/Resources/ElasticBeanstalkEnvironment.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html  module Stratosphere.Resources.ElasticBeanstalkEnvironment where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ElasticBeanstalkEnvironmentOptionSettings@@ -28,13 +28,36 @@   , _elasticBeanstalkEnvironmentTemplateName :: Maybe (Val Text)   , _elasticBeanstalkEnvironmentTier :: Maybe ElasticBeanstalkEnvironmentTier   , _elasticBeanstalkEnvironmentVersionLabel :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticBeanstalkEnvironment where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON ElasticBeanstalkEnvironment{..} =+    object $+    catMaybes+    [ Just ("ApplicationName" .= _elasticBeanstalkEnvironmentApplicationName)+    , ("CNAMEPrefix" .=) <$> _elasticBeanstalkEnvironmentCNAMEPrefix+    , ("Description" .=) <$> _elasticBeanstalkEnvironmentDescription+    , ("EnvironmentName" .=) <$> _elasticBeanstalkEnvironmentEnvironmentName+    , ("OptionSettings" .=) <$> _elasticBeanstalkEnvironmentOptionSettings+    , ("SolutionStackName" .=) <$> _elasticBeanstalkEnvironmentSolutionStackName+    , ("TemplateName" .=) <$> _elasticBeanstalkEnvironmentTemplateName+    , ("Tier" .=) <$> _elasticBeanstalkEnvironmentTier+    , ("VersionLabel" .=) <$> _elasticBeanstalkEnvironmentVersionLabel+    ]  instance FromJSON ElasticBeanstalkEnvironment where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticBeanstalkEnvironment <$>+      obj .: "ApplicationName" <*>+      obj .:? "CNAMEPrefix" <*>+      obj .:? "Description" <*>+      obj .:? "EnvironmentName" <*>+      obj .:? "OptionSettings" <*>+      obj .:? "SolutionStackName" <*>+      obj .:? "TemplateName" <*>+      obj .:? "Tier" <*>+      obj .:? "VersionLabel"+  parseJSON _ = mempty  -- | Constructor for 'ElasticBeanstalkEnvironment' containing required fields -- | as arguments.
library-gen/Stratosphere/Resources/ElasticLoadBalancingLoadBalancer.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html  module Stratosphere.Resources.ElasticLoadBalancingLoadBalancer where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ElasticLoadBalancingLoadBalancerAccessLoggingPolicy@@ -42,13 +42,50 @@   , _elasticLoadBalancingLoadBalancerSecurityGroups :: Maybe [Val Text]   , _elasticLoadBalancingLoadBalancerSubnets :: Maybe [Val Text]   , _elasticLoadBalancingLoadBalancerTags :: Maybe [Tag]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticLoadBalancingLoadBalancer where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  toJSON ElasticLoadBalancingLoadBalancer{..} =+    object $+    catMaybes+    [ ("AccessLoggingPolicy" .=) <$> _elasticLoadBalancingLoadBalancerAccessLoggingPolicy+    , ("AppCookieStickinessPolicy" .=) <$> _elasticLoadBalancingLoadBalancerAppCookieStickinessPolicy+    , ("AvailabilityZones" .=) <$> _elasticLoadBalancingLoadBalancerAvailabilityZones+    , ("ConnectionDrainingPolicy" .=) <$> _elasticLoadBalancingLoadBalancerConnectionDrainingPolicy+    , ("ConnectionSettings" .=) <$> _elasticLoadBalancingLoadBalancerConnectionSettings+    , ("CrossZone" .=) <$> _elasticLoadBalancingLoadBalancerCrossZone+    , ("HealthCheck" .=) <$> _elasticLoadBalancingLoadBalancerHealthCheck+    , ("Instances" .=) <$> _elasticLoadBalancingLoadBalancerInstances+    , ("LBCookieStickinessPolicy" .=) <$> _elasticLoadBalancingLoadBalancerLBCookieStickinessPolicy+    , Just ("Listeners" .= _elasticLoadBalancingLoadBalancerListeners)+    , ("LoadBalancerName" .=) <$> _elasticLoadBalancingLoadBalancerLoadBalancerName+    , ("Policies" .=) <$> _elasticLoadBalancingLoadBalancerPolicies+    , ("Scheme" .=) <$> _elasticLoadBalancingLoadBalancerScheme+    , ("SecurityGroups" .=) <$> _elasticLoadBalancingLoadBalancerSecurityGroups+    , ("Subnets" .=) <$> _elasticLoadBalancingLoadBalancerSubnets+    , ("Tags" .=) <$> _elasticLoadBalancingLoadBalancerTags+    ]  instance FromJSON ElasticLoadBalancingLoadBalancer where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticLoadBalancingLoadBalancer <$>+      obj .:? "AccessLoggingPolicy" <*>+      obj .:? "AppCookieStickinessPolicy" <*>+      obj .:? "AvailabilityZones" <*>+      obj .:? "ConnectionDrainingPolicy" <*>+      obj .:? "ConnectionSettings" <*>+      obj .:? "CrossZone" <*>+      obj .:? "HealthCheck" <*>+      obj .:? "Instances" <*>+      obj .:? "LBCookieStickinessPolicy" <*>+      obj .: "Listeners" <*>+      obj .:? "LoadBalancerName" <*>+      obj .:? "Policies" <*>+      obj .:? "Scheme" <*>+      obj .:? "SecurityGroups" <*>+      obj .:? "Subnets" <*>+      obj .:? "Tags"+  parseJSON _ = mempty  -- | Constructor for 'ElasticLoadBalancingLoadBalancer' containing required -- | fields as arguments.
library-gen/Stratosphere/Resources/ElasticLoadBalancingV2Listener.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html  module Stratosphere.Resources.ElasticLoadBalancingV2Listener where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ElasticLoadBalancingV2ListenerCertificate@@ -25,13 +25,30 @@   , _elasticLoadBalancingV2ListenerPort :: Val Integer'   , _elasticLoadBalancingV2ListenerProtocol :: Val Text   , _elasticLoadBalancingV2ListenerSslPolicy :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticLoadBalancingV2Listener where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  toJSON ElasticLoadBalancingV2Listener{..} =+    object $+    catMaybes+    [ ("Certificates" .=) <$> _elasticLoadBalancingV2ListenerCertificates+    , Just ("DefaultActions" .= _elasticLoadBalancingV2ListenerDefaultActions)+    , Just ("LoadBalancerArn" .= _elasticLoadBalancingV2ListenerLoadBalancerArn)+    , Just ("Port" .= _elasticLoadBalancingV2ListenerPort)+    , Just ("Protocol" .= _elasticLoadBalancingV2ListenerProtocol)+    , ("SslPolicy" .=) <$> _elasticLoadBalancingV2ListenerSslPolicy+    ]  instance FromJSON ElasticLoadBalancingV2Listener where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 31, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticLoadBalancingV2Listener <$>+      obj .:? "Certificates" <*>+      obj .: "DefaultActions" <*>+      obj .: "LoadBalancerArn" <*>+      obj .: "Port" <*>+      obj .: "Protocol" <*>+      obj .:? "SslPolicy"+  parseJSON _ = mempty  -- | Constructor for 'ElasticLoadBalancingV2Listener' containing required -- | fields as arguments.
library-gen/Stratosphere/Resources/ElasticLoadBalancingV2ListenerRule.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html  module Stratosphere.Resources.ElasticLoadBalancingV2ListenerRule where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ElasticLoadBalancingV2ListenerRuleAction@@ -23,13 +23,26 @@   , _elasticLoadBalancingV2ListenerRuleConditions :: [ElasticLoadBalancingV2ListenerRuleRuleCondition]   , _elasticLoadBalancingV2ListenerRuleListenerArn :: Val Text   , _elasticLoadBalancingV2ListenerRulePriority :: Val Integer'-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticLoadBalancingV2ListenerRule where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  toJSON ElasticLoadBalancingV2ListenerRule{..} =+    object $+    catMaybes+    [ Just ("Actions" .= _elasticLoadBalancingV2ListenerRuleActions)+    , Just ("Conditions" .= _elasticLoadBalancingV2ListenerRuleConditions)+    , Just ("ListenerArn" .= _elasticLoadBalancingV2ListenerRuleListenerArn)+    , Just ("Priority" .= _elasticLoadBalancingV2ListenerRulePriority)+    ]  instance FromJSON ElasticLoadBalancingV2ListenerRule where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticLoadBalancingV2ListenerRule <$>+      obj .: "Actions" <*>+      obj .: "Conditions" <*>+      obj .: "ListenerArn" <*>+      obj .: "Priority"+  parseJSON _ = mempty  -- | Constructor for 'ElasticLoadBalancingV2ListenerRule' containing required -- | fields as arguments.
library-gen/Stratosphere/Resources/ElasticLoadBalancingV2LoadBalancer.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html  module Stratosphere.Resources.ElasticLoadBalancingV2LoadBalancer where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ElasticLoadBalancingV2LoadBalancerLoadBalancerAttribute@@ -26,13 +26,32 @@   , _elasticLoadBalancingV2LoadBalancerSecurityGroups :: Maybe [Val Text]   , _elasticLoadBalancingV2LoadBalancerSubnets :: Maybe [Val Text]   , _elasticLoadBalancingV2LoadBalancerTags :: Maybe [Tag]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticLoadBalancingV2LoadBalancer where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  toJSON ElasticLoadBalancingV2LoadBalancer{..} =+    object $+    catMaybes+    [ ("IpAddressType" .=) <$> _elasticLoadBalancingV2LoadBalancerIpAddressType+    , ("LoadBalancerAttributes" .=) <$> _elasticLoadBalancingV2LoadBalancerLoadBalancerAttributes+    , ("Name" .=) <$> _elasticLoadBalancingV2LoadBalancerName+    , ("Scheme" .=) <$> _elasticLoadBalancingV2LoadBalancerScheme+    , ("SecurityGroups" .=) <$> _elasticLoadBalancingV2LoadBalancerSecurityGroups+    , ("Subnets" .=) <$> _elasticLoadBalancingV2LoadBalancerSubnets+    , ("Tags" .=) <$> _elasticLoadBalancingV2LoadBalancerTags+    ]  instance FromJSON ElasticLoadBalancingV2LoadBalancer where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 35, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticLoadBalancingV2LoadBalancer <$>+      obj .:? "IpAddressType" <*>+      obj .:? "LoadBalancerAttributes" <*>+      obj .:? "Name" <*>+      obj .:? "Scheme" <*>+      obj .:? "SecurityGroups" <*>+      obj .:? "Subnets" <*>+      obj .:? "Tags"+  parseJSON _ = mempty  -- | Constructor for 'ElasticLoadBalancingV2LoadBalancer' containing required -- | fields as arguments.
library-gen/Stratosphere/Resources/ElasticLoadBalancingV2TargetGroup.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html  module Stratosphere.Resources.ElasticLoadBalancingV2TargetGroup where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ElasticLoadBalancingV2TargetGroupMatcher@@ -36,13 +36,48 @@   , _elasticLoadBalancingV2TargetGroupTargets :: Maybe [ElasticLoadBalancingV2TargetGroupTargetDescription]   , _elasticLoadBalancingV2TargetGroupUnhealthyThresholdCount :: Maybe (Val Integer')   , _elasticLoadBalancingV2TargetGroupVpcId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticLoadBalancingV2TargetGroup where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  toJSON ElasticLoadBalancingV2TargetGroup{..} =+    object $+    catMaybes+    [ ("HealthCheckIntervalSeconds" .=) <$> _elasticLoadBalancingV2TargetGroupHealthCheckIntervalSeconds+    , ("HealthCheckPath" .=) <$> _elasticLoadBalancingV2TargetGroupHealthCheckPath+    , ("HealthCheckPort" .=) <$> _elasticLoadBalancingV2TargetGroupHealthCheckPort+    , ("HealthCheckProtocol" .=) <$> _elasticLoadBalancingV2TargetGroupHealthCheckProtocol+    , ("HealthCheckTimeoutSeconds" .=) <$> _elasticLoadBalancingV2TargetGroupHealthCheckTimeoutSeconds+    , ("HealthyThresholdCount" .=) <$> _elasticLoadBalancingV2TargetGroupHealthyThresholdCount+    , ("Matcher" .=) <$> _elasticLoadBalancingV2TargetGroupMatcher+    , ("Name" .=) <$> _elasticLoadBalancingV2TargetGroupName+    , Just ("Port" .= _elasticLoadBalancingV2TargetGroupPort)+    , Just ("Protocol" .= _elasticLoadBalancingV2TargetGroupProtocol)+    , ("Tags" .=) <$> _elasticLoadBalancingV2TargetGroupTags+    , ("TargetGroupAttributes" .=) <$> _elasticLoadBalancingV2TargetGroupTargetGroupAttributes+    , ("Targets" .=) <$> _elasticLoadBalancingV2TargetGroupTargets+    , ("UnhealthyThresholdCount" .=) <$> _elasticLoadBalancingV2TargetGroupUnhealthyThresholdCount+    , Just ("VpcId" .= _elasticLoadBalancingV2TargetGroupVpcId)+    ]  instance FromJSON ElasticLoadBalancingV2TargetGroup where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 34, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticLoadBalancingV2TargetGroup <$>+      obj .:? "HealthCheckIntervalSeconds" <*>+      obj .:? "HealthCheckPath" <*>+      obj .:? "HealthCheckPort" <*>+      obj .:? "HealthCheckProtocol" <*>+      obj .:? "HealthCheckTimeoutSeconds" <*>+      obj .:? "HealthyThresholdCount" <*>+      obj .:? "Matcher" <*>+      obj .:? "Name" <*>+      obj .: "Port" <*>+      obj .: "Protocol" <*>+      obj .:? "Tags" <*>+      obj .:? "TargetGroupAttributes" <*>+      obj .:? "Targets" <*>+      obj .:? "UnhealthyThresholdCount" <*>+      obj .: "VpcId"+  parseJSON _ = mempty  -- | Constructor for 'ElasticLoadBalancingV2TargetGroup' containing required -- | fields as arguments.
library-gen/Stratosphere/Resources/ElasticsearchDomain.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html  module Stratosphere.Resources.ElasticsearchDomain where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.ElasticsearchDomainEBSOptions@@ -29,13 +29,34 @@   , _elasticsearchDomainElasticsearchVersion :: Maybe (Val Text)   , _elasticsearchDomainSnapshotOptions :: Maybe ElasticsearchDomainSnapshotOptions   , _elasticsearchDomainTags :: Maybe [Tag]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON ElasticsearchDomain where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  toJSON ElasticsearchDomain{..} =+    object $+    catMaybes+    [ ("AccessPolicies" .=) <$> _elasticsearchDomainAccessPolicies+    , ("AdvancedOptions" .=) <$> _elasticsearchDomainAdvancedOptions+    , ("DomainName" .=) <$> _elasticsearchDomainDomainName+    , ("EBSOptions" .=) <$> _elasticsearchDomainEBSOptions+    , ("ElasticsearchClusterConfig" .=) <$> _elasticsearchDomainElasticsearchClusterConfig+    , ("ElasticsearchVersion" .=) <$> _elasticsearchDomainElasticsearchVersion+    , ("SnapshotOptions" .=) <$> _elasticsearchDomainSnapshotOptions+    , ("Tags" .=) <$> _elasticsearchDomainTags+    ]  instance FromJSON ElasticsearchDomain where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  parseJSON (Object obj) =+    ElasticsearchDomain <$>+      obj .:? "AccessPolicies" <*>+      obj .:? "AdvancedOptions" <*>+      obj .:? "DomainName" <*>+      obj .:? "EBSOptions" <*>+      obj .:? "ElasticsearchClusterConfig" <*>+      obj .:? "ElasticsearchVersion" <*>+      obj .:? "SnapshotOptions" <*>+      obj .:? "Tags"+  parseJSON _ = mempty  -- | Constructor for 'ElasticsearchDomain' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/EventsRule.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html  module Stratosphere.Resources.EventsRule where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.Types@@ -26,13 +26,32 @@   , _eventsRuleScheduleExpression :: Maybe (Val Text)   , _eventsRuleState :: Maybe (Val EnabledState)   , _eventsRuleTargets :: Maybe [EventsRuleTarget]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON EventsRule where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 11, omitNothingFields = True }+  toJSON EventsRule{..} =+    object $+    catMaybes+    [ ("Description" .=) <$> _eventsRuleDescription+    , ("EventPattern" .=) <$> _eventsRuleEventPattern+    , ("Name" .=) <$> _eventsRuleName+    , ("RoleArn" .=) <$> _eventsRuleRoleArn+    , ("ScheduleExpression" .=) <$> _eventsRuleScheduleExpression+    , ("State" .=) <$> _eventsRuleState+    , ("Targets" .=) <$> _eventsRuleTargets+    ]  instance FromJSON EventsRule where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 11, omitNothingFields = True }+  parseJSON (Object obj) =+    EventsRule <$>+      obj .:? "Description" <*>+      obj .:? "EventPattern" <*>+      obj .:? "Name" <*>+      obj .:? "RoleArn" <*>+      obj .:? "ScheduleExpression" <*>+      obj .:? "State" <*>+      obj .:? "Targets"+  parseJSON _ = mempty  -- | Constructor for 'EventsRule' containing required fields as arguments. eventsRule
library-gen/Stratosphere/Resources/GameLiftAlias.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-alias.html  module Stratosphere.Resources.GameLiftAlias where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.GameLiftAliasRoutingStrategy@@ -21,13 +21,24 @@   { _gameLiftAliasDescription :: Maybe (Val Text)   , _gameLiftAliasName :: Val Text   , _gameLiftAliasRoutingStrategy :: GameLiftAliasRoutingStrategy-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON GameLiftAlias where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  toJSON GameLiftAlias{..} =+    object $+    catMaybes+    [ ("Description" .=) <$> _gameLiftAliasDescription+    , Just ("Name" .= _gameLiftAliasName)+    , Just ("RoutingStrategy" .= _gameLiftAliasRoutingStrategy)+    ]  instance FromJSON GameLiftAlias where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  parseJSON (Object obj) =+    GameLiftAlias <$>+      obj .:? "Description" <*>+      obj .: "Name" <*>+      obj .: "RoutingStrategy"+  parseJSON _ = mempty  -- | Constructor for 'GameLiftAlias' containing required fields as arguments. gameLiftAlias
library-gen/Stratosphere/Resources/GameLiftBuild.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-build.html  module Stratosphere.Resources.GameLiftBuild where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.GameLiftBuildS3Location@@ -21,13 +21,24 @@   { _gameLiftBuildName :: Maybe (Val Text)   , _gameLiftBuildStorageLocation :: Maybe GameLiftBuildS3Location   , _gameLiftBuildVersion :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON GameLiftBuild where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  toJSON GameLiftBuild{..} =+    object $+    catMaybes+    [ ("Name" .=) <$> _gameLiftBuildName+    , ("StorageLocation" .=) <$> _gameLiftBuildStorageLocation+    , ("Version" .=) <$> _gameLiftBuildVersion+    ]  instance FromJSON GameLiftBuild where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  parseJSON (Object obj) =+    GameLiftBuild <$>+      obj .:? "Name" <*>+      obj .:? "StorageLocation" <*>+      obj .:? "Version"+  parseJSON _ = mempty  -- | Constructor for 'GameLiftBuild' containing required fields as arguments. gameLiftBuild
library-gen/Stratosphere/Resources/GameLiftFleet.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html  module Stratosphere.Resources.GameLiftFleet where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.GameLiftFleetIpPermission@@ -29,13 +29,40 @@   , _gameLiftFleetName :: Val Text   , _gameLiftFleetServerLaunchParameters :: Maybe (Val Text)   , _gameLiftFleetServerLaunchPath :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON GameLiftFleet where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  toJSON GameLiftFleet{..} =+    object $+    catMaybes+    [ Just ("BuildId" .= _gameLiftFleetBuildId)+    , ("Description" .=) <$> _gameLiftFleetDescription+    , Just ("DesiredEC2Instances" .= _gameLiftFleetDesiredEC2Instances)+    , ("EC2InboundPermissions" .=) <$> _gameLiftFleetEC2InboundPermissions+    , Just ("EC2InstanceType" .= _gameLiftFleetEC2InstanceType)+    , ("LogPaths" .=) <$> _gameLiftFleetLogPaths+    , ("MaxSize" .=) <$> _gameLiftFleetMaxSize+    , ("MinSize" .=) <$> _gameLiftFleetMinSize+    , Just ("Name" .= _gameLiftFleetName)+    , ("ServerLaunchParameters" .=) <$> _gameLiftFleetServerLaunchParameters+    , Just ("ServerLaunchPath" .= _gameLiftFleetServerLaunchPath)+    ]  instance FromJSON GameLiftFleet where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  parseJSON (Object obj) =+    GameLiftFleet <$>+      obj .: "BuildId" <*>+      obj .:? "Description" <*>+      obj .: "DesiredEC2Instances" <*>+      obj .:? "EC2InboundPermissions" <*>+      obj .: "EC2InstanceType" <*>+      obj .:? "LogPaths" <*>+      obj .:? "MaxSize" <*>+      obj .:? "MinSize" <*>+      obj .: "Name" <*>+      obj .:? "ServerLaunchParameters" <*>+      obj .: "ServerLaunchPath"+  parseJSON _ = mempty  -- | Constructor for 'GameLiftFleet' containing required fields as arguments. gameLiftFleet
library-gen/Stratosphere/Resources/IAMAccessKey.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html  module Stratosphere.Resources.IAMAccessKey where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _iAMAccessKeySerial :: Maybe (Val Integer')   , _iAMAccessKeyStatus :: Maybe (Val Text)   , _iAMAccessKeyUserName :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IAMAccessKey where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 13, omitNothingFields = True }+  toJSON IAMAccessKey{..} =+    object $+    catMaybes+    [ ("Serial" .=) <$> _iAMAccessKeySerial+    , ("Status" .=) <$> _iAMAccessKeyStatus+    , Just ("UserName" .= _iAMAccessKeyUserName)+    ]  instance FromJSON IAMAccessKey where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 13, omitNothingFields = True }+  parseJSON (Object obj) =+    IAMAccessKey <$>+      obj .:? "Serial" <*>+      obj .:? "Status" <*>+      obj .: "UserName"+  parseJSON _ = mempty  -- | Constructor for 'IAMAccessKey' containing required fields as arguments. iamAccessKey
library-gen/Stratosphere/Resources/IAMGroup.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html  module Stratosphere.Resources.IAMGroup where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.IAMGroupPolicy@@ -22,13 +22,26 @@   , _iAMGroupManagedPolicyArns :: Maybe [Val Text]   , _iAMGroupPath :: Maybe (Val Text)   , _iAMGroupPolicies :: Maybe [IAMGroupPolicy]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IAMGroup where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 9, omitNothingFields = True }+  toJSON IAMGroup{..} =+    object $+    catMaybes+    [ ("GroupName" .=) <$> _iAMGroupGroupName+    , ("ManagedPolicyArns" .=) <$> _iAMGroupManagedPolicyArns+    , ("Path" .=) <$> _iAMGroupPath+    , ("Policies" .=) <$> _iAMGroupPolicies+    ]  instance FromJSON IAMGroup where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 9, omitNothingFields = True }+  parseJSON (Object obj) =+    IAMGroup <$>+      obj .:? "GroupName" <*>+      obj .:? "ManagedPolicyArns" <*>+      obj .:? "Path" <*>+      obj .:? "Policies"+  parseJSON _ = mempty  -- | Constructor for 'IAMGroup' containing required fields as arguments. iamGroup
library-gen/Stratosphere/Resources/IAMInstanceProfile.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html  module Stratosphere.Resources.IAMInstanceProfile where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   IAMInstanceProfile   { _iAMInstanceProfilePath :: Val Text   , _iAMInstanceProfileRoles :: [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IAMInstanceProfile where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  toJSON IAMInstanceProfile{..} =+    object $+    catMaybes+    [ Just ("Path" .= _iAMInstanceProfilePath)+    , Just ("Roles" .= _iAMInstanceProfileRoles)+    ]  instance FromJSON IAMInstanceProfile where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  parseJSON (Object obj) =+    IAMInstanceProfile <$>+      obj .: "Path" <*>+      obj .: "Roles"+  parseJSON _ = mempty  -- | Constructor for 'IAMInstanceProfile' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/IAMManagedPolicy.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html  module Stratosphere.Resources.IAMManagedPolicy where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -24,13 +24,30 @@   , _iAMManagedPolicyPolicyDocument :: Maybe Object   , _iAMManagedPolicyRoles :: Maybe [Val Text]   , _iAMManagedPolicyUsers :: Maybe [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IAMManagedPolicy where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  toJSON IAMManagedPolicy{..} =+    object $+    catMaybes+    [ ("Description" .=) <$> _iAMManagedPolicyDescription+    , ("Groups" .=) <$> _iAMManagedPolicyGroups+    , ("Path" .=) <$> _iAMManagedPolicyPath+    , ("PolicyDocument" .=) <$> _iAMManagedPolicyPolicyDocument+    , ("Roles" .=) <$> _iAMManagedPolicyRoles+    , ("Users" .=) <$> _iAMManagedPolicyUsers+    ]  instance FromJSON IAMManagedPolicy where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  parseJSON (Object obj) =+    IAMManagedPolicy <$>+      obj .:? "Description" <*>+      obj .:? "Groups" <*>+      obj .:? "Path" <*>+      obj .:? "PolicyDocument" <*>+      obj .:? "Roles" <*>+      obj .:? "Users"+  parseJSON _ = mempty  -- | Constructor for 'IAMManagedPolicy' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/IAMPolicy.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html  module Stratosphere.Resources.IAMPolicy where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -23,13 +23,28 @@   , _iAMPolicyPolicyName :: Val Text   , _iAMPolicyRoles :: Maybe [Val Text]   , _iAMPolicyUsers :: Maybe [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IAMPolicy where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 10, omitNothingFields = True }+  toJSON IAMPolicy{..} =+    object $+    catMaybes+    [ ("Groups" .=) <$> _iAMPolicyGroups+    , Just ("PolicyDocument" .= _iAMPolicyPolicyDocument)+    , Just ("PolicyName" .= _iAMPolicyPolicyName)+    , ("Roles" .=) <$> _iAMPolicyRoles+    , ("Users" .=) <$> _iAMPolicyUsers+    ]  instance FromJSON IAMPolicy where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 10, omitNothingFields = True }+  parseJSON (Object obj) =+    IAMPolicy <$>+      obj .:? "Groups" <*>+      obj .: "PolicyDocument" <*>+      obj .: "PolicyName" <*>+      obj .:? "Roles" <*>+      obj .:? "Users"+  parseJSON _ = mempty  -- | Constructor for 'IAMPolicy' containing required fields as arguments. iamPolicy
library-gen/Stratosphere/Resources/IAMRole.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html  module Stratosphere.Resources.IAMRole where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.IAMRolePolicy@@ -23,13 +23,28 @@   , _iAMRolePath :: Maybe (Val Text)   , _iAMRolePolicies :: Maybe [IAMRolePolicy]   , _iAMRoleRoleName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IAMRole where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 8, omitNothingFields = True }+  toJSON IAMRole{..} =+    object $+    catMaybes+    [ Just ("AssumeRolePolicyDocument" .= _iAMRoleAssumeRolePolicyDocument)+    , ("ManagedPolicyArns" .=) <$> _iAMRoleManagedPolicyArns+    , ("Path" .=) <$> _iAMRolePath+    , ("Policies" .=) <$> _iAMRolePolicies+    , ("RoleName" .=) <$> _iAMRoleRoleName+    ]  instance FromJSON IAMRole where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 8, omitNothingFields = True }+  parseJSON (Object obj) =+    IAMRole <$>+      obj .: "AssumeRolePolicyDocument" <*>+      obj .:? "ManagedPolicyArns" <*>+      obj .:? "Path" <*>+      obj .:? "Policies" <*>+      obj .:? "RoleName"+  parseJSON _ = mempty  -- | Constructor for 'IAMRole' containing required fields as arguments. iamRole
library-gen/Stratosphere/Resources/IAMUser.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html  module Stratosphere.Resources.IAMUser where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.IAMUserLoginProfile@@ -25,13 +25,30 @@   , _iAMUserPath :: Maybe (Val Text)   , _iAMUserPolicies :: Maybe [IAMUserPolicy]   , _iAMUserUserName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IAMUser where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 8, omitNothingFields = True }+  toJSON IAMUser{..} =+    object $+    catMaybes+    [ ("Groups" .=) <$> _iAMUserGroups+    , ("LoginProfile" .=) <$> _iAMUserLoginProfile+    , ("ManagedPolicyArns" .=) <$> _iAMUserManagedPolicyArns+    , ("Path" .=) <$> _iAMUserPath+    , ("Policies" .=) <$> _iAMUserPolicies+    , ("UserName" .=) <$> _iAMUserUserName+    ]  instance FromJSON IAMUser where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 8, omitNothingFields = True }+  parseJSON (Object obj) =+    IAMUser <$>+      obj .:? "Groups" <*>+      obj .:? "LoginProfile" <*>+      obj .:? "ManagedPolicyArns" <*>+      obj .:? "Path" <*>+      obj .:? "Policies" <*>+      obj .:? "UserName"+  parseJSON _ = mempty  -- | Constructor for 'IAMUser' containing required fields as arguments. iamUser
library-gen/Stratosphere/Resources/IAMUserToGroupAddition.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html  module Stratosphere.Resources.IAMUserToGroupAddition where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   IAMUserToGroupAddition   { _iAMUserToGroupAdditionGroupName :: Val Text   , _iAMUserToGroupAdditionUsers :: [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IAMUserToGroupAddition where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  toJSON IAMUserToGroupAddition{..} =+    object $+    catMaybes+    [ Just ("GroupName" .= _iAMUserToGroupAdditionGroupName)+    , Just ("Users" .= _iAMUserToGroupAdditionUsers)+    ]  instance FromJSON IAMUserToGroupAddition where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  parseJSON (Object obj) =+    IAMUserToGroupAddition <$>+      obj .: "GroupName" <*>+      obj .: "Users"+  parseJSON _ = mempty  -- | Constructor for 'IAMUserToGroupAddition' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/IoTCertificate.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-certificate.html  module Stratosphere.Resources.IoTCertificate where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   IoTCertificate   { _ioTCertificateCertificateSigningRequest :: Val Text   , _ioTCertificateStatus :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IoTCertificate where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  toJSON IoTCertificate{..} =+    object $+    catMaybes+    [ Just ("CertificateSigningRequest" .= _ioTCertificateCertificateSigningRequest)+    , Just ("Status" .= _ioTCertificateStatus)+    ]  instance FromJSON IoTCertificate where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  parseJSON (Object obj) =+    IoTCertificate <$>+      obj .: "CertificateSigningRequest" <*>+      obj .: "Status"+  parseJSON _ = mempty  -- | Constructor for 'IoTCertificate' containing required fields as arguments. ioTCertificate
library-gen/Stratosphere/Resources/IoTPolicy.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policy.html  module Stratosphere.Resources.IoTPolicy where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   IoTPolicy   { _ioTPolicyPolicyDocument :: Object   , _ioTPolicyPolicyName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IoTPolicy where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 10, omitNothingFields = True }+  toJSON IoTPolicy{..} =+    object $+    catMaybes+    [ Just ("PolicyDocument" .= _ioTPolicyPolicyDocument)+    , ("PolicyName" .=) <$> _ioTPolicyPolicyName+    ]  instance FromJSON IoTPolicy where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 10, omitNothingFields = True }+  parseJSON (Object obj) =+    IoTPolicy <$>+      obj .: "PolicyDocument" <*>+      obj .:? "PolicyName"+  parseJSON _ = mempty  -- | Constructor for 'IoTPolicy' containing required fields as arguments. ioTPolicy
library-gen/Stratosphere/Resources/IoTPolicyPrincipalAttachment.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policyprincipalattachment.html  module Stratosphere.Resources.IoTPolicyPrincipalAttachment where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   IoTPolicyPrincipalAttachment   { _ioTPolicyPrincipalAttachmentPolicyName :: Val Text   , _ioTPolicyPrincipalAttachmentPrincipal :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IoTPolicyPrincipalAttachment where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  toJSON IoTPolicyPrincipalAttachment{..} =+    object $+    catMaybes+    [ Just ("PolicyName" .= _ioTPolicyPrincipalAttachmentPolicyName)+    , Just ("Principal" .= _ioTPolicyPrincipalAttachmentPrincipal)+    ]  instance FromJSON IoTPolicyPrincipalAttachment where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  parseJSON (Object obj) =+    IoTPolicyPrincipalAttachment <$>+      obj .: "PolicyName" <*>+      obj .: "Principal"+  parseJSON _ = mempty  -- | Constructor for 'IoTPolicyPrincipalAttachment' containing required fields -- | as arguments.
library-gen/Stratosphere/Resources/IoTThing.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thing.html  module Stratosphere.Resources.IoTThing where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.IoTThingAttributePayload@@ -20,13 +20,22 @@   IoTThing   { _ioTThingAttributePayload :: Maybe IoTThingAttributePayload   , _ioTThingThingName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IoTThing where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 9, omitNothingFields = True }+  toJSON IoTThing{..} =+    object $+    catMaybes+    [ ("AttributePayload" .=) <$> _ioTThingAttributePayload+    , ("ThingName" .=) <$> _ioTThingThingName+    ]  instance FromJSON IoTThing where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 9, omitNothingFields = True }+  parseJSON (Object obj) =+    IoTThing <$>+      obj .:? "AttributePayload" <*>+      obj .:? "ThingName"+  parseJSON _ = mempty  -- | Constructor for 'IoTThing' containing required fields as arguments. ioTThing
library-gen/Stratosphere/Resources/IoTThingPrincipalAttachment.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingprincipalattachment.html  module Stratosphere.Resources.IoTThingPrincipalAttachment where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   IoTThingPrincipalAttachment   { _ioTThingPrincipalAttachmentPrincipal :: Val Text   , _ioTThingPrincipalAttachmentThingName :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IoTThingPrincipalAttachment where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  toJSON IoTThingPrincipalAttachment{..} =+    object $+    catMaybes+    [ Just ("Principal" .= _ioTThingPrincipalAttachmentPrincipal)+    , Just ("ThingName" .= _ioTThingPrincipalAttachmentThingName)+    ]  instance FromJSON IoTThingPrincipalAttachment where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 28, omitNothingFields = True }+  parseJSON (Object obj) =+    IoTThingPrincipalAttachment <$>+      obj .: "Principal" <*>+      obj .: "ThingName"+  parseJSON _ = mempty  -- | Constructor for 'IoTThingPrincipalAttachment' containing required fields -- | as arguments.
library-gen/Stratosphere/Resources/IoTTopicRule.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicrule.html  module Stratosphere.Resources.IoTTopicRule where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.IoTTopicRuleTopicRulePayload@@ -20,13 +20,22 @@   IoTTopicRule   { _ioTTopicRuleRuleName :: Maybe (Val Text)   , _ioTTopicRuleTopicRulePayload :: IoTTopicRuleTopicRulePayload-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON IoTTopicRule where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 13, omitNothingFields = True }+  toJSON IoTTopicRule{..} =+    object $+    catMaybes+    [ ("RuleName" .=) <$> _ioTTopicRuleRuleName+    , Just ("TopicRulePayload" .= _ioTTopicRuleTopicRulePayload)+    ]  instance FromJSON IoTTopicRule where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 13, omitNothingFields = True }+  parseJSON (Object obj) =+    IoTTopicRule <$>+      obj .:? "RuleName" <*>+      obj .: "TopicRulePayload"+  parseJSON _ = mempty  -- | Constructor for 'IoTTopicRule' containing required fields as arguments. ioTTopicRule
library-gen/Stratosphere/Resources/KMSAlias.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-alias.html  module Stratosphere.Resources.KMSAlias where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   KMSAlias   { _kMSAliasAliasName :: Val Text   , _kMSAliasTargetKeyId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON KMSAlias where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 9, omitNothingFields = True }+  toJSON KMSAlias{..} =+    object $+    catMaybes+    [ Just ("AliasName" .= _kMSAliasAliasName)+    , Just ("TargetKeyId" .= _kMSAliasTargetKeyId)+    ]  instance FromJSON KMSAlias where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 9, omitNothingFields = True }+  parseJSON (Object obj) =+    KMSAlias <$>+      obj .: "AliasName" <*>+      obj .: "TargetKeyId"+  parseJSON _ = mempty  -- | Constructor for 'KMSAlias' containing required fields as arguments. kmsAlias
library-gen/Stratosphere/Resources/KMSKey.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html  module Stratosphere.Resources.KMSKey where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -23,13 +23,28 @@   , _kMSKeyEnabled :: Maybe (Val Bool')   , _kMSKeyKeyPolicy :: Object   , _kMSKeyKeyUsage :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON KMSKey where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 7, omitNothingFields = True }+  toJSON KMSKey{..} =+    object $+    catMaybes+    [ ("Description" .=) <$> _kMSKeyDescription+    , ("EnableKeyRotation" .=) <$> _kMSKeyEnableKeyRotation+    , ("Enabled" .=) <$> _kMSKeyEnabled+    , Just ("KeyPolicy" .= _kMSKeyKeyPolicy)+    , ("KeyUsage" .=) <$> _kMSKeyKeyUsage+    ]  instance FromJSON KMSKey where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 7, omitNothingFields = True }+  parseJSON (Object obj) =+    KMSKey <$>+      obj .:? "Description" <*>+      obj .:? "EnableKeyRotation" <*>+      obj .:? "Enabled" <*>+      obj .: "KeyPolicy" <*>+      obj .:? "KeyUsage"+  parseJSON _ = mempty  -- | Constructor for 'KMSKey' containing required fields as arguments. kmsKey
library-gen/Stratosphere/Resources/KinesisFirehoseDeliveryStream.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html  module Stratosphere.Resources.KinesisFirehoseDeliveryStream where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration@@ -24,13 +24,26 @@   , _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration :: Maybe KinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration   , _kinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration :: Maybe KinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration   , _kinesisFirehoseDeliveryStreamS3DestinationConfiguration :: Maybe KinesisFirehoseDeliveryStreamS3DestinationConfiguration-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON KinesisFirehoseDeliveryStream where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  toJSON KinesisFirehoseDeliveryStream{..} =+    object $+    catMaybes+    [ ("DeliveryStreamName" .=) <$> _kinesisFirehoseDeliveryStreamDeliveryStreamName+    , ("ElasticsearchDestinationConfiguration" .=) <$> _kinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration+    , ("RedshiftDestinationConfiguration" .=) <$> _kinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration+    , ("S3DestinationConfiguration" .=) <$> _kinesisFirehoseDeliveryStreamS3DestinationConfiguration+    ]  instance FromJSON KinesisFirehoseDeliveryStream where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  parseJSON (Object obj) =+    KinesisFirehoseDeliveryStream <$>+      obj .:? "DeliveryStreamName" <*>+      obj .:? "ElasticsearchDestinationConfiguration" <*>+      obj .:? "RedshiftDestinationConfiguration" <*>+      obj .:? "S3DestinationConfiguration"+  parseJSON _ = mempty  -- | Constructor for 'KinesisFirehoseDeliveryStream' containing required -- | fields as arguments.
library-gen/Stratosphere/Resources/KinesisStream.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html  module Stratosphere.Resources.KinesisStream where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Tag@@ -21,13 +21,24 @@   { _kinesisStreamName :: Maybe (Val Text)   , _kinesisStreamShardCount :: Val Integer'   , _kinesisStreamTags :: Maybe [Tag]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON KinesisStream where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  toJSON KinesisStream{..} =+    object $+    catMaybes+    [ ("Name" .=) <$> _kinesisStreamName+    , Just ("ShardCount" .= _kinesisStreamShardCount)+    , ("Tags" .=) <$> _kinesisStreamTags+    ]  instance FromJSON KinesisStream where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  parseJSON (Object obj) =+    KinesisStream <$>+      obj .:? "Name" <*>+      obj .: "ShardCount" <*>+      obj .:? "Tags"+  parseJSON _ = mempty  -- | Constructor for 'KinesisStream' containing required fields as arguments. kinesisStream
library-gen/Stratosphere/Resources/LambdaAlias.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html  module Stratosphere.Resources.LambdaAlias where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,26 @@   , _lambdaAliasFunctionName :: Val Text   , _lambdaAliasFunctionVersion :: Val Text   , _lambdaAliasName :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON LambdaAlias where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 12, omitNothingFields = True }+  toJSON LambdaAlias{..} =+    object $+    catMaybes+    [ ("Description" .=) <$> _lambdaAliasDescription+    , Just ("FunctionName" .= _lambdaAliasFunctionName)+    , Just ("FunctionVersion" .= _lambdaAliasFunctionVersion)+    , Just ("Name" .= _lambdaAliasName)+    ]  instance FromJSON LambdaAlias where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 12, omitNothingFields = True }+  parseJSON (Object obj) =+    LambdaAlias <$>+      obj .:? "Description" <*>+      obj .: "FunctionName" <*>+      obj .: "FunctionVersion" <*>+      obj .: "Name"+  parseJSON _ = mempty  -- | Constructor for 'LambdaAlias' containing required fields as arguments. lambdaAlias
library-gen/Stratosphere/Resources/LambdaEventSourceMapping.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html  module Stratosphere.Resources.LambdaEventSourceMapping where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -23,13 +23,28 @@   , _lambdaEventSourceMappingEventSourceArn :: Val Text   , _lambdaEventSourceMappingFunctionName :: Val Text   , _lambdaEventSourceMappingStartingPosition :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON LambdaEventSourceMapping where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 25, omitNothingFields = True }+  toJSON LambdaEventSourceMapping{..} =+    object $+    catMaybes+    [ ("BatchSize" .=) <$> _lambdaEventSourceMappingBatchSize+    , ("Enabled" .=) <$> _lambdaEventSourceMappingEnabled+    , Just ("EventSourceArn" .= _lambdaEventSourceMappingEventSourceArn)+    , Just ("FunctionName" .= _lambdaEventSourceMappingFunctionName)+    , Just ("StartingPosition" .= _lambdaEventSourceMappingStartingPosition)+    ]  instance FromJSON LambdaEventSourceMapping where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 25, omitNothingFields = True }+  parseJSON (Object obj) =+    LambdaEventSourceMapping <$>+      obj .:? "BatchSize" <*>+      obj .:? "Enabled" <*>+      obj .: "EventSourceArn" <*>+      obj .: "FunctionName" <*>+      obj .: "StartingPosition"+  parseJSON _ = mempty  -- | Constructor for 'LambdaEventSourceMapping' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/LambdaFunction.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html  module Stratosphere.Resources.LambdaFunction where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.Types@@ -32,13 +32,40 @@   , _lambdaFunctionRuntime :: Val Runtime   , _lambdaFunctionTimeout :: Maybe (Val Integer')   , _lambdaFunctionVpcConfig :: Maybe LambdaFunctionVpcConfig-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON LambdaFunction where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  toJSON LambdaFunction{..} =+    object $+    catMaybes+    [ Just ("Code" .= _lambdaFunctionCode)+    , ("Description" .=) <$> _lambdaFunctionDescription+    , ("Environment" .=) <$> _lambdaFunctionEnvironment+    , ("FunctionName" .=) <$> _lambdaFunctionFunctionName+    , Just ("Handler" .= _lambdaFunctionHandler)+    , ("KmsKeyArn" .=) <$> _lambdaFunctionKmsKeyArn+    , ("MemorySize" .=) <$> _lambdaFunctionMemorySize+    , Just ("Role" .= _lambdaFunctionRole)+    , Just ("Runtime" .= _lambdaFunctionRuntime)+    , ("Timeout" .=) <$> _lambdaFunctionTimeout+    , ("VpcConfig" .=) <$> _lambdaFunctionVpcConfig+    ]  instance FromJSON LambdaFunction where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  parseJSON (Object obj) =+    LambdaFunction <$>+      obj .: "Code" <*>+      obj .:? "Description" <*>+      obj .:? "Environment" <*>+      obj .:? "FunctionName" <*>+      obj .: "Handler" <*>+      obj .:? "KmsKeyArn" <*>+      obj .:? "MemorySize" <*>+      obj .: "Role" <*>+      obj .: "Runtime" <*>+      obj .:? "Timeout" <*>+      obj .:? "VpcConfig"+  parseJSON _ = mempty  -- | Constructor for 'LambdaFunction' containing required fields as arguments. lambdaFunction
library-gen/Stratosphere/Resources/LambdaPermission.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html  module Stratosphere.Resources.LambdaPermission where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -23,13 +23,28 @@   , _lambdaPermissionPrincipal :: Val Text   , _lambdaPermissionSourceAccount :: Maybe (Val Text)   , _lambdaPermissionSourceArn :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON LambdaPermission where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  toJSON LambdaPermission{..} =+    object $+    catMaybes+    [ Just ("Action" .= _lambdaPermissionAction)+    , Just ("FunctionName" .= _lambdaPermissionFunctionName)+    , Just ("Principal" .= _lambdaPermissionPrincipal)+    , ("SourceAccount" .=) <$> _lambdaPermissionSourceAccount+    , ("SourceArn" .=) <$> _lambdaPermissionSourceArn+    ]  instance FromJSON LambdaPermission where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  parseJSON (Object obj) =+    LambdaPermission <$>+      obj .: "Action" <*>+      obj .: "FunctionName" <*>+      obj .: "Principal" <*>+      obj .:? "SourceAccount" <*>+      obj .:? "SourceArn"+  parseJSON _ = mempty  -- | Constructor for 'LambdaPermission' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/LambdaVersion.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html  module Stratosphere.Resources.LambdaVersion where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _lambdaVersionCodeSha256 :: Maybe (Val Text)   , _lambdaVersionDescription :: Maybe (Val Text)   , _lambdaVersionFunctionName :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON LambdaVersion where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  toJSON LambdaVersion{..} =+    object $+    catMaybes+    [ ("CodeSha256" .=) <$> _lambdaVersionCodeSha256+    , ("Description" .=) <$> _lambdaVersionDescription+    , Just ("FunctionName" .= _lambdaVersionFunctionName)+    ]  instance FromJSON LambdaVersion where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  parseJSON (Object obj) =+    LambdaVersion <$>+      obj .:? "CodeSha256" <*>+      obj .:? "Description" <*>+      obj .: "FunctionName"+  parseJSON _ = mempty  -- | Constructor for 'LambdaVersion' containing required fields as arguments. lambdaVersion
library-gen/Stratosphere/Resources/LogsDestination.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html  module Stratosphere.Resources.LogsDestination where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,26 @@   , _logsDestinationDestinationPolicy :: Val Text   , _logsDestinationRoleArn :: Val Text   , _logsDestinationTargetArn :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON LogsDestination where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }+  toJSON LogsDestination{..} =+    object $+    catMaybes+    [ Just ("DestinationName" .= _logsDestinationDestinationName)+    , Just ("DestinationPolicy" .= _logsDestinationDestinationPolicy)+    , Just ("RoleArn" .= _logsDestinationRoleArn)+    , Just ("TargetArn" .= _logsDestinationTargetArn)+    ]  instance FromJSON LogsDestination where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }+  parseJSON (Object obj) =+    LogsDestination <$>+      obj .: "DestinationName" <*>+      obj .: "DestinationPolicy" <*>+      obj .: "RoleArn" <*>+      obj .: "TargetArn"+  parseJSON _ = mempty  -- | Constructor for 'LogsDestination' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/LogsLogGroup.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html  module Stratosphere.Resources.LogsLogGroup where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   LogsLogGroup   { _logsLogGroupLogGroupName :: Maybe (Val Text)   , _logsLogGroupRetentionInDays :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON LogsLogGroup where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 13, omitNothingFields = True }+  toJSON LogsLogGroup{..} =+    object $+    catMaybes+    [ ("LogGroupName" .=) <$> _logsLogGroupLogGroupName+    , ("RetentionInDays" .=) <$> _logsLogGroupRetentionInDays+    ]  instance FromJSON LogsLogGroup where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 13, omitNothingFields = True }+  parseJSON (Object obj) =+    LogsLogGroup <$>+      obj .:? "LogGroupName" <*>+      obj .:? "RetentionInDays"+  parseJSON _ = mempty  -- | Constructor for 'LogsLogGroup' containing required fields as arguments. logsLogGroup
library-gen/Stratosphere/Resources/LogsLogStream.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html  module Stratosphere.Resources.LogsLogStream where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   LogsLogStream   { _logsLogStreamLogGroupName :: Val Text   , _logsLogStreamLogStreamName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON LogsLogStream where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  toJSON LogsLogStream{..} =+    object $+    catMaybes+    [ Just ("LogGroupName" .= _logsLogStreamLogGroupName)+    , ("LogStreamName" .=) <$> _logsLogStreamLogStreamName+    ]  instance FromJSON LogsLogStream where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  parseJSON (Object obj) =+    LogsLogStream <$>+      obj .: "LogGroupName" <*>+      obj .:? "LogStreamName"+  parseJSON _ = mempty  -- | Constructor for 'LogsLogStream' containing required fields as arguments. logsLogStream
library-gen/Stratosphere/Resources/LogsMetricFilter.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html  module Stratosphere.Resources.LogsMetricFilter where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.LogsMetricFilterMetricTransformation@@ -21,13 +21,24 @@   { _logsMetricFilterFilterPattern :: Val Text   , _logsMetricFilterLogGroupName :: Val Text   , _logsMetricFilterMetricTransformations :: [LogsMetricFilterMetricTransformation]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON LogsMetricFilter where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  toJSON LogsMetricFilter{..} =+    object $+    catMaybes+    [ Just ("FilterPattern" .= _logsMetricFilterFilterPattern)+    , Just ("LogGroupName" .= _logsMetricFilterLogGroupName)+    , Just ("MetricTransformations" .= _logsMetricFilterMetricTransformations)+    ]  instance FromJSON LogsMetricFilter where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  parseJSON (Object obj) =+    LogsMetricFilter <$>+      obj .: "FilterPattern" <*>+      obj .: "LogGroupName" <*>+      obj .: "MetricTransformations"+  parseJSON _ = mempty  -- | Constructor for 'LogsMetricFilter' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/LogsSubscriptionFilter.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html  module Stratosphere.Resources.LogsSubscriptionFilter where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,26 @@   , _logsSubscriptionFilterFilterPattern :: Val Text   , _logsSubscriptionFilterLogGroupName :: Val Text   , _logsSubscriptionFilterRoleArn :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON LogsSubscriptionFilter where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  toJSON LogsSubscriptionFilter{..} =+    object $+    catMaybes+    [ Just ("DestinationArn" .= _logsSubscriptionFilterDestinationArn)+    , Just ("FilterPattern" .= _logsSubscriptionFilterFilterPattern)+    , Just ("LogGroupName" .= _logsSubscriptionFilterLogGroupName)+    , ("RoleArn" .=) <$> _logsSubscriptionFilterRoleArn+    ]  instance FromJSON LogsSubscriptionFilter where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 23, omitNothingFields = True }+  parseJSON (Object obj) =+    LogsSubscriptionFilter <$>+      obj .: "DestinationArn" <*>+      obj .: "FilterPattern" <*>+      obj .: "LogGroupName" <*>+      obj .:? "RoleArn"+  parseJSON _ = mempty  -- | Constructor for 'LogsSubscriptionFilter' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/OpsWorksApp.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-app.html  module Stratosphere.Resources.OpsWorksApp where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.OpsWorksAppSource@@ -33,13 +33,42 @@   , _opsWorksAppSslConfiguration :: Maybe OpsWorksAppSslConfiguration   , _opsWorksAppStackId :: Val Text   , _opsWorksAppType :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksApp where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 12, omitNothingFields = True }+  toJSON OpsWorksApp{..} =+    object $+    catMaybes+    [ ("AppSource" .=) <$> _opsWorksAppAppSource+    , ("Attributes" .=) <$> _opsWorksAppAttributes+    , ("DataSources" .=) <$> _opsWorksAppDataSources+    , ("Description" .=) <$> _opsWorksAppDescription+    , ("Domains" .=) <$> _opsWorksAppDomains+    , ("EnableSsl" .=) <$> _opsWorksAppEnableSsl+    , ("Environment" .=) <$> _opsWorksAppEnvironment+    , Just ("Name" .= _opsWorksAppName)+    , ("Shortname" .=) <$> _opsWorksAppShortname+    , ("SslConfiguration" .=) <$> _opsWorksAppSslConfiguration+    , Just ("StackId" .= _opsWorksAppStackId)+    , Just ("Type" .= _opsWorksAppType)+    ]  instance FromJSON OpsWorksApp where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 12, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksApp <$>+      obj .:? "AppSource" <*>+      obj .:? "Attributes" <*>+      obj .:? "DataSources" <*>+      obj .:? "Description" <*>+      obj .:? "Domains" <*>+      obj .:? "EnableSsl" <*>+      obj .:? "Environment" <*>+      obj .: "Name" <*>+      obj .:? "Shortname" <*>+      obj .:? "SslConfiguration" <*>+      obj .: "StackId" <*>+      obj .: "Type"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksApp' containing required fields as arguments. opsWorksApp
library-gen/Stratosphere/Resources/OpsWorksElasticLoadBalancerAttachment.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-elbattachment.html  module Stratosphere.Resources.OpsWorksElasticLoadBalancerAttachment where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,22 @@   OpsWorksElasticLoadBalancerAttachment   { _opsWorksElasticLoadBalancerAttachmentElasticLoadBalancerName :: Val Text   , _opsWorksElasticLoadBalancerAttachmentLayerId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksElasticLoadBalancerAttachment where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 38, omitNothingFields = True }+  toJSON OpsWorksElasticLoadBalancerAttachment{..} =+    object $+    catMaybes+    [ Just ("ElasticLoadBalancerName" .= _opsWorksElasticLoadBalancerAttachmentElasticLoadBalancerName)+    , Just ("LayerId" .= _opsWorksElasticLoadBalancerAttachmentLayerId)+    ]  instance FromJSON OpsWorksElasticLoadBalancerAttachment where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 38, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksElasticLoadBalancerAttachment <$>+      obj .: "ElasticLoadBalancerName" <*>+      obj .: "LayerId"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksElasticLoadBalancerAttachment' containing -- | required fields as arguments.
library-gen/Stratosphere/Resources/OpsWorksInstance.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html  module Stratosphere.Resources.OpsWorksInstance where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.OpsWorksInstanceBlockDeviceMapping@@ -40,13 +40,60 @@   , _opsWorksInstanceTimeBasedAutoScaling :: Maybe OpsWorksInstanceTimeBasedAutoScaling   , _opsWorksInstanceVirtualizationType :: Maybe (Val Text)   , _opsWorksInstanceVolumes :: Maybe [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksInstance where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  toJSON OpsWorksInstance{..} =+    object $+    catMaybes+    [ ("AgentVersion" .=) <$> _opsWorksInstanceAgentVersion+    , ("AmiId" .=) <$> _opsWorksInstanceAmiId+    , ("Architecture" .=) <$> _opsWorksInstanceArchitecture+    , ("AutoScalingType" .=) <$> _opsWorksInstanceAutoScalingType+    , ("AvailabilityZone" .=) <$> _opsWorksInstanceAvailabilityZone+    , ("BlockDeviceMappings" .=) <$> _opsWorksInstanceBlockDeviceMappings+    , ("EbsOptimized" .=) <$> _opsWorksInstanceEbsOptimized+    , ("ElasticIps" .=) <$> _opsWorksInstanceElasticIps+    , ("Hostname" .=) <$> _opsWorksInstanceHostname+    , ("InstallUpdatesOnBoot" .=) <$> _opsWorksInstanceInstallUpdatesOnBoot+    , Just ("InstanceType" .= _opsWorksInstanceInstanceType)+    , Just ("LayerIds" .= _opsWorksInstanceLayerIds)+    , ("Os" .=) <$> _opsWorksInstanceOs+    , ("RootDeviceType" .=) <$> _opsWorksInstanceRootDeviceType+    , ("SshKeyName" .=) <$> _opsWorksInstanceSshKeyName+    , Just ("StackId" .= _opsWorksInstanceStackId)+    , ("SubnetId" .=) <$> _opsWorksInstanceSubnetId+    , ("Tenancy" .=) <$> _opsWorksInstanceTenancy+    , ("TimeBasedAutoScaling" .=) <$> _opsWorksInstanceTimeBasedAutoScaling+    , ("VirtualizationType" .=) <$> _opsWorksInstanceVirtualizationType+    , ("Volumes" .=) <$> _opsWorksInstanceVolumes+    ]  instance FromJSON OpsWorksInstance where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksInstance <$>+      obj .:? "AgentVersion" <*>+      obj .:? "AmiId" <*>+      obj .:? "Architecture" <*>+      obj .:? "AutoScalingType" <*>+      obj .:? "AvailabilityZone" <*>+      obj .:? "BlockDeviceMappings" <*>+      obj .:? "EbsOptimized" <*>+      obj .:? "ElasticIps" <*>+      obj .:? "Hostname" <*>+      obj .:? "InstallUpdatesOnBoot" <*>+      obj .: "InstanceType" <*>+      obj .: "LayerIds" <*>+      obj .:? "Os" <*>+      obj .:? "RootDeviceType" <*>+      obj .:? "SshKeyName" <*>+      obj .: "StackId" <*>+      obj .:? "SubnetId" <*>+      obj .:? "Tenancy" <*>+      obj .:? "TimeBasedAutoScaling" <*>+      obj .:? "VirtualizationType" <*>+      obj .:? "Volumes"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksInstance' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/OpsWorksLayer.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html  module Stratosphere.Resources.OpsWorksLayer where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.OpsWorksLayerRecipes@@ -39,13 +39,54 @@   , _opsWorksLayerType :: Val Text   , _opsWorksLayerUseEbsOptimizedInstances :: Maybe (Val Bool')   , _opsWorksLayerVolumeConfigurations :: Maybe [OpsWorksLayerVolumeConfiguration]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksLayer where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  toJSON OpsWorksLayer{..} =+    object $+    catMaybes+    [ ("Attributes" .=) <$> _opsWorksLayerAttributes+    , Just ("AutoAssignElasticIps" .= _opsWorksLayerAutoAssignElasticIps)+    , Just ("AutoAssignPublicIps" .= _opsWorksLayerAutoAssignPublicIps)+    , ("CustomInstanceProfileArn" .=) <$> _opsWorksLayerCustomInstanceProfileArn+    , ("CustomJson" .=) <$> _opsWorksLayerCustomJson+    , ("CustomRecipes" .=) <$> _opsWorksLayerCustomRecipes+    , ("CustomSecurityGroupIds" .=) <$> _opsWorksLayerCustomSecurityGroupIds+    , Just ("EnableAutoHealing" .= _opsWorksLayerEnableAutoHealing)+    , ("InstallUpdatesOnBoot" .=) <$> _opsWorksLayerInstallUpdatesOnBoot+    , ("LifecycleEventConfiguration" .=) <$> _opsWorksLayerLifecycleEventConfiguration+    , ("LoadBasedAutoScaling" .=) <$> _opsWorksLayerLoadBasedAutoScaling+    , Just ("Name" .= _opsWorksLayerName)+    , ("Packages" .=) <$> _opsWorksLayerPackages+    , Just ("Shortname" .= _opsWorksLayerShortname)+    , Just ("StackId" .= _opsWorksLayerStackId)+    , Just ("Type" .= _opsWorksLayerType)+    , ("UseEbsOptimizedInstances" .=) <$> _opsWorksLayerUseEbsOptimizedInstances+    , ("VolumeConfigurations" .=) <$> _opsWorksLayerVolumeConfigurations+    ]  instance FromJSON OpsWorksLayer where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksLayer <$>+      obj .:? "Attributes" <*>+      obj .: "AutoAssignElasticIps" <*>+      obj .: "AutoAssignPublicIps" <*>+      obj .:? "CustomInstanceProfileArn" <*>+      obj .:? "CustomJson" <*>+      obj .:? "CustomRecipes" <*>+      obj .:? "CustomSecurityGroupIds" <*>+      obj .: "EnableAutoHealing" <*>+      obj .:? "InstallUpdatesOnBoot" <*>+      obj .:? "LifecycleEventConfiguration" <*>+      obj .:? "LoadBasedAutoScaling" <*>+      obj .: "Name" <*>+      obj .:? "Packages" <*>+      obj .: "Shortname" <*>+      obj .: "StackId" <*>+      obj .: "Type" <*>+      obj .:? "UseEbsOptimizedInstances" <*>+      obj .:? "VolumeConfigurations"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksLayer' containing required fields as arguments. opsWorksLayer
library-gen/Stratosphere/Resources/OpsWorksStack.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html  module Stratosphere.Resources.OpsWorksStack where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.OpsWorksStackChefConfiguration@@ -46,13 +46,66 @@   , _opsWorksStackUseCustomCookbooks :: Maybe (Val Bool')   , _opsWorksStackUseOpsworksSecurityGroups :: Maybe (Val Bool')   , _opsWorksStackVpcId :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksStack where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  toJSON OpsWorksStack{..} =+    object $+    catMaybes+    [ ("AgentVersion" .=) <$> _opsWorksStackAgentVersion+    , ("Attributes" .=) <$> _opsWorksStackAttributes+    , ("ChefConfiguration" .=) <$> _opsWorksStackChefConfiguration+    , ("CloneAppIds" .=) <$> _opsWorksStackCloneAppIds+    , ("ClonePermissions" .=) <$> _opsWorksStackClonePermissions+    , ("ConfigurationManager" .=) <$> _opsWorksStackConfigurationManager+    , ("CustomCookbooksSource" .=) <$> _opsWorksStackCustomCookbooksSource+    , ("CustomJson" .=) <$> _opsWorksStackCustomJson+    , ("DefaultAvailabilityZone" .=) <$> _opsWorksStackDefaultAvailabilityZone+    , Just ("DefaultInstanceProfileArn" .= _opsWorksStackDefaultInstanceProfileArn)+    , ("DefaultOs" .=) <$> _opsWorksStackDefaultOs+    , ("DefaultRootDeviceType" .=) <$> _opsWorksStackDefaultRootDeviceType+    , ("DefaultSshKeyName" .=) <$> _opsWorksStackDefaultSshKeyName+    , ("DefaultSubnetId" .=) <$> _opsWorksStackDefaultSubnetId+    , ("EcsClusterArn" .=) <$> _opsWorksStackEcsClusterArn+    , ("ElasticIps" .=) <$> _opsWorksStackElasticIps+    , ("HostnameTheme" .=) <$> _opsWorksStackHostnameTheme+    , Just ("Name" .= _opsWorksStackName)+    , ("RdsDbInstances" .=) <$> _opsWorksStackRdsDbInstances+    , Just ("ServiceRoleArn" .= _opsWorksStackServiceRoleArn)+    , ("SourceStackId" .=) <$> _opsWorksStackSourceStackId+    , ("UseCustomCookbooks" .=) <$> _opsWorksStackUseCustomCookbooks+    , ("UseOpsworksSecurityGroups" .=) <$> _opsWorksStackUseOpsworksSecurityGroups+    , ("VpcId" .=) <$> _opsWorksStackVpcId+    ]  instance FromJSON OpsWorksStack where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksStack <$>+      obj .:? "AgentVersion" <*>+      obj .:? "Attributes" <*>+      obj .:? "ChefConfiguration" <*>+      obj .:? "CloneAppIds" <*>+      obj .:? "ClonePermissions" <*>+      obj .:? "ConfigurationManager" <*>+      obj .:? "CustomCookbooksSource" <*>+      obj .:? "CustomJson" <*>+      obj .:? "DefaultAvailabilityZone" <*>+      obj .: "DefaultInstanceProfileArn" <*>+      obj .:? "DefaultOs" <*>+      obj .:? "DefaultRootDeviceType" <*>+      obj .:? "DefaultSshKeyName" <*>+      obj .:? "DefaultSubnetId" <*>+      obj .:? "EcsClusterArn" <*>+      obj .:? "ElasticIps" <*>+      obj .:? "HostnameTheme" <*>+      obj .: "Name" <*>+      obj .:? "RdsDbInstances" <*>+      obj .: "ServiceRoleArn" <*>+      obj .:? "SourceStackId" <*>+      obj .:? "UseCustomCookbooks" <*>+      obj .:? "UseOpsworksSecurityGroups" <*>+      obj .:? "VpcId"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksStack' containing required fields as arguments. opsWorksStack
library-gen/Stratosphere/Resources/OpsWorksUserProfile.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-userprofile.html  module Stratosphere.Resources.OpsWorksUserProfile where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -21,13 +21,24 @@   { _opsWorksUserProfileAllowSelfManagement :: Maybe (Val Bool')   , _opsWorksUserProfileIamUserArn :: Val Text   , _opsWorksUserProfileSshPublicKey :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksUserProfile where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  toJSON OpsWorksUserProfile{..} =+    object $+    catMaybes+    [ ("AllowSelfManagement" .=) <$> _opsWorksUserProfileAllowSelfManagement+    , Just ("IamUserArn" .= _opsWorksUserProfileIamUserArn)+    , ("SshPublicKey" .=) <$> _opsWorksUserProfileSshPublicKey+    ]  instance FromJSON OpsWorksUserProfile where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksUserProfile <$>+      obj .:? "AllowSelfManagement" <*>+      obj .: "IamUserArn" <*>+      obj .:? "SshPublicKey"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksUserProfile' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/OpsWorksVolume.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-volume.html  module Stratosphere.Resources.OpsWorksVolume where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,26 @@   , _opsWorksVolumeMountPoint :: Maybe (Val Text)   , _opsWorksVolumeName :: Maybe (Val Text)   , _opsWorksVolumeStackId :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON OpsWorksVolume where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  toJSON OpsWorksVolume{..} =+    object $+    catMaybes+    [ Just ("Ec2VolumeId" .= _opsWorksVolumeEc2VolumeId)+    , ("MountPoint" .=) <$> _opsWorksVolumeMountPoint+    , ("Name" .=) <$> _opsWorksVolumeName+    , Just ("StackId" .= _opsWorksVolumeStackId)+    ]  instance FromJSON OpsWorksVolume where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  parseJSON (Object obj) =+    OpsWorksVolume <$>+      obj .: "Ec2VolumeId" <*>+      obj .:? "MountPoint" <*>+      obj .:? "Name" <*>+      obj .: "StackId"+  parseJSON _ = mempty  -- | Constructor for 'OpsWorksVolume' containing required fields as arguments. opsWorksVolume
library-gen/Stratosphere/Resources/RDSDBCluster.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html  module Stratosphere.Resources.RDSDBCluster where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Tag@@ -35,13 +35,52 @@   , _rDSDBClusterStorageEncrypted :: Maybe (Val Bool')   , _rDSDBClusterTags :: Maybe [Tag]   , _rDSDBClusterVpcSecurityGroupIds :: Maybe [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON RDSDBCluster where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 13, omitNothingFields = True }+  toJSON RDSDBCluster{..} =+    object $+    catMaybes+    [ ("AvailabilityZones" .=) <$> _rDSDBClusterAvailabilityZones+    , ("BackupRetentionPeriod" .=) <$> _rDSDBClusterBackupRetentionPeriod+    , ("DBClusterParameterGroupName" .=) <$> _rDSDBClusterDBClusterParameterGroupName+    , ("DBSubnetGroupName" .=) <$> _rDSDBClusterDBSubnetGroupName+    , ("DatabaseName" .=) <$> _rDSDBClusterDatabaseName+    , Just ("Engine" .= _rDSDBClusterEngine)+    , ("EngineVersion" .=) <$> _rDSDBClusterEngineVersion+    , ("KmsKeyId" .=) <$> _rDSDBClusterKmsKeyId+    , ("MasterUserPassword" .=) <$> _rDSDBClusterMasterUserPassword+    , ("MasterUsername" .=) <$> _rDSDBClusterMasterUsername+    , ("Port" .=) <$> _rDSDBClusterPort+    , ("PreferredBackupWindow" .=) <$> _rDSDBClusterPreferredBackupWindow+    , ("PreferredMaintenanceWindow" .=) <$> _rDSDBClusterPreferredMaintenanceWindow+    , ("SnapshotIdentifier" .=) <$> _rDSDBClusterSnapshotIdentifier+    , ("StorageEncrypted" .=) <$> _rDSDBClusterStorageEncrypted+    , ("Tags" .=) <$> _rDSDBClusterTags+    , ("VpcSecurityGroupIds" .=) <$> _rDSDBClusterVpcSecurityGroupIds+    ]  instance FromJSON RDSDBCluster where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 13, omitNothingFields = True }+  parseJSON (Object obj) =+    RDSDBCluster <$>+      obj .:? "AvailabilityZones" <*>+      obj .:? "BackupRetentionPeriod" <*>+      obj .:? "DBClusterParameterGroupName" <*>+      obj .:? "DBSubnetGroupName" <*>+      obj .:? "DatabaseName" <*>+      obj .: "Engine" <*>+      obj .:? "EngineVersion" <*>+      obj .:? "KmsKeyId" <*>+      obj .:? "MasterUserPassword" <*>+      obj .:? "MasterUsername" <*>+      obj .:? "Port" <*>+      obj .:? "PreferredBackupWindow" <*>+      obj .:? "PreferredMaintenanceWindow" <*>+      obj .:? "SnapshotIdentifier" <*>+      obj .:? "StorageEncrypted" <*>+      obj .:? "Tags" <*>+      obj .:? "VpcSecurityGroupIds"+  parseJSON _ = mempty  -- | Constructor for 'RDSDBCluster' containing required fields as arguments. rdsdbCluster
library-gen/Stratosphere/Resources/RDSDBClusterParameterGroup.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbclusterparametergroup.html  module Stratosphere.Resources.RDSDBClusterParameterGroup where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Tag@@ -22,13 +22,26 @@   , _rDSDBClusterParameterGroupFamily :: Val Text   , _rDSDBClusterParameterGroupParameters :: Object   , _rDSDBClusterParameterGroupTags :: Maybe [Tag]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON RDSDBClusterParameterGroup where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  toJSON RDSDBClusterParameterGroup{..} =+    object $+    catMaybes+    [ Just ("Description" .= _rDSDBClusterParameterGroupDescription)+    , Just ("Family" .= _rDSDBClusterParameterGroupFamily)+    , Just ("Parameters" .= _rDSDBClusterParameterGroupParameters)+    , ("Tags" .=) <$> _rDSDBClusterParameterGroupTags+    ]  instance FromJSON RDSDBClusterParameterGroup where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  parseJSON (Object obj) =+    RDSDBClusterParameterGroup <$>+      obj .: "Description" <*>+      obj .: "Family" <*>+      obj .: "Parameters" <*>+      obj .:? "Tags"+  parseJSON _ = mempty  -- | Constructor for 'RDSDBClusterParameterGroup' containing required fields -- | as arguments.
library-gen/Stratosphere/Resources/RDSDBInstance.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html  module Stratosphere.Resources.RDSDBInstance where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Tag@@ -55,13 +55,92 @@   , _rDSDBInstanceTags :: Maybe [Tag]   , _rDSDBInstanceTimezone :: Maybe (Val Text)   , _rDSDBInstanceVPCSecurityGroups :: Maybe [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON RDSDBInstance where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  toJSON RDSDBInstance{..} =+    object $+    catMaybes+    [ ("AllocatedStorage" .=) <$> _rDSDBInstanceAllocatedStorage+    , ("AllowMajorVersionUpgrade" .=) <$> _rDSDBInstanceAllowMajorVersionUpgrade+    , ("AutoMinorVersionUpgrade" .=) <$> _rDSDBInstanceAutoMinorVersionUpgrade+    , ("AvailabilityZone" .=) <$> _rDSDBInstanceAvailabilityZone+    , ("BackupRetentionPeriod" .=) <$> _rDSDBInstanceBackupRetentionPeriod+    , ("CharacterSetName" .=) <$> _rDSDBInstanceCharacterSetName+    , ("DBClusterIdentifier" .=) <$> _rDSDBInstanceDBClusterIdentifier+    , Just ("DBInstanceClass" .= _rDSDBInstanceDBInstanceClass)+    , ("DBInstanceIdentifier" .=) <$> _rDSDBInstanceDBInstanceIdentifier+    , ("DBName" .=) <$> _rDSDBInstanceDBName+    , ("DBParameterGroupName" .=) <$> _rDSDBInstanceDBParameterGroupName+    , ("DBSecurityGroups" .=) <$> _rDSDBInstanceDBSecurityGroups+    , ("DBSnapshotIdentifier" .=) <$> _rDSDBInstanceDBSnapshotIdentifier+    , ("DBSubnetGroupName" .=) <$> _rDSDBInstanceDBSubnetGroupName+    , ("Domain" .=) <$> _rDSDBInstanceDomain+    , ("DomainIAMRoleName" .=) <$> _rDSDBInstanceDomainIAMRoleName+    , ("Engine" .=) <$> _rDSDBInstanceEngine+    , ("EngineVersion" .=) <$> _rDSDBInstanceEngineVersion+    , ("Iops" .=) <$> _rDSDBInstanceIops+    , ("KmsKeyId" .=) <$> _rDSDBInstanceKmsKeyId+    , ("LicenseModel" .=) <$> _rDSDBInstanceLicenseModel+    , ("MasterUserPassword" .=) <$> _rDSDBInstanceMasterUserPassword+    , ("MasterUsername" .=) <$> _rDSDBInstanceMasterUsername+    , ("MonitoringInterval" .=) <$> _rDSDBInstanceMonitoringInterval+    , ("MonitoringRoleArn" .=) <$> _rDSDBInstanceMonitoringRoleArn+    , ("MultiAZ" .=) <$> _rDSDBInstanceMultiAZ+    , ("OptionGroupName" .=) <$> _rDSDBInstanceOptionGroupName+    , ("Port" .=) <$> _rDSDBInstancePort+    , ("PreferredBackupWindow" .=) <$> _rDSDBInstancePreferredBackupWindow+    , ("PreferredMaintenanceWindow" .=) <$> _rDSDBInstancePreferredMaintenanceWindow+    , ("PubliclyAccessible" .=) <$> _rDSDBInstancePubliclyAccessible+    , ("SourceDBInstanceIdentifier" .=) <$> _rDSDBInstanceSourceDBInstanceIdentifier+    , ("StorageEncrypted" .=) <$> _rDSDBInstanceStorageEncrypted+    , ("StorageType" .=) <$> _rDSDBInstanceStorageType+    , ("Tags" .=) <$> _rDSDBInstanceTags+    , ("Timezone" .=) <$> _rDSDBInstanceTimezone+    , ("VPCSecurityGroups" .=) <$> _rDSDBInstanceVPCSecurityGroups+    ]  instance FromJSON RDSDBInstance where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }+  parseJSON (Object obj) =+    RDSDBInstance <$>+      obj .:? "AllocatedStorage" <*>+      obj .:? "AllowMajorVersionUpgrade" <*>+      obj .:? "AutoMinorVersionUpgrade" <*>+      obj .:? "AvailabilityZone" <*>+      obj .:? "BackupRetentionPeriod" <*>+      obj .:? "CharacterSetName" <*>+      obj .:? "DBClusterIdentifier" <*>+      obj .: "DBInstanceClass" <*>+      obj .:? "DBInstanceIdentifier" <*>+      obj .:? "DBName" <*>+      obj .:? "DBParameterGroupName" <*>+      obj .:? "DBSecurityGroups" <*>+      obj .:? "DBSnapshotIdentifier" <*>+      obj .:? "DBSubnetGroupName" <*>+      obj .:? "Domain" <*>+      obj .:? "DomainIAMRoleName" <*>+      obj .:? "Engine" <*>+      obj .:? "EngineVersion" <*>+      obj .:? "Iops" <*>+      obj .:? "KmsKeyId" <*>+      obj .:? "LicenseModel" <*>+      obj .:? "MasterUserPassword" <*>+      obj .:? "MasterUsername" <*>+      obj .:? "MonitoringInterval" <*>+      obj .:? "MonitoringRoleArn" <*>+      obj .:? "MultiAZ" <*>+      obj .:? "OptionGroupName" <*>+      obj .:? "Port" <*>+      obj .:? "PreferredBackupWindow" <*>+      obj .:? "PreferredMaintenanceWindow" <*>+      obj .:? "PubliclyAccessible" <*>+      obj .:? "SourceDBInstanceIdentifier" <*>+      obj .:? "StorageEncrypted" <*>+      obj .:? "StorageType" <*>+      obj .:? "Tags" <*>+      obj .:? "Timezone" <*>+      obj .:? "VPCSecurityGroups"+  parseJSON _ = mempty  -- | Constructor for 'RDSDBInstance' containing required fields as arguments. rdsdbInstance
library-gen/Stratosphere/Resources/RDSDBParameterGroup.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbparametergroup.html  module Stratosphere.Resources.RDSDBParameterGroup where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Tag@@ -22,13 +22,26 @@   , _rDSDBParameterGroupFamily :: Val Text   , _rDSDBParameterGroupParameters :: Maybe Object   , _rDSDBParameterGroupTags :: Maybe [Tag]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON RDSDBParameterGroup where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  toJSON RDSDBParameterGroup{..} =+    object $+    catMaybes+    [ Just ("Description" .= _rDSDBParameterGroupDescription)+    , Just ("Family" .= _rDSDBParameterGroupFamily)+    , ("Parameters" .=) <$> _rDSDBParameterGroupParameters+    , ("Tags" .=) <$> _rDSDBParameterGroupTags+    ]  instance FromJSON RDSDBParameterGroup where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  parseJSON (Object obj) =+    RDSDBParameterGroup <$>+      obj .: "Description" <*>+      obj .: "Family" <*>+      obj .:? "Parameters" <*>+      obj .:? "Tags"+  parseJSON _ = mempty  -- | Constructor for 'RDSDBParameterGroup' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/RDSDBSecurityGroup.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-security-group.html  module Stratosphere.Resources.RDSDBSecurityGroup where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.RDSDBSecurityGroupIngressProperty@@ -23,13 +23,26 @@   , _rDSDBSecurityGroupEC2VpcId :: Maybe (Val Text)   , _rDSDBSecurityGroupGroupDescription :: Val Text   , _rDSDBSecurityGroupTags :: Maybe [Tag]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON RDSDBSecurityGroup where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  toJSON RDSDBSecurityGroup{..} =+    object $+    catMaybes+    [ Just ("DBSecurityGroupIngress" .= _rDSDBSecurityGroupDBSecurityGroupIngress)+    , ("EC2VpcId" .=) <$> _rDSDBSecurityGroupEC2VpcId+    , Just ("GroupDescription" .= _rDSDBSecurityGroupGroupDescription)+    , ("Tags" .=) <$> _rDSDBSecurityGroupTags+    ]  instance FromJSON RDSDBSecurityGroup where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  parseJSON (Object obj) =+    RDSDBSecurityGroup <$>+      obj .: "DBSecurityGroupIngress" <*>+      obj .:? "EC2VpcId" <*>+      obj .: "GroupDescription" <*>+      obj .:? "Tags"+  parseJSON _ = mempty  -- | Constructor for 'RDSDBSecurityGroup' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/RDSDBSecurityGroupIngress.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-security-group-ingress.html  module Stratosphere.Resources.RDSDBSecurityGroupIngress where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -23,13 +23,28 @@   , _rDSDBSecurityGroupIngressEC2SecurityGroupId :: Maybe (Val Text)   , _rDSDBSecurityGroupIngressEC2SecurityGroupName :: Maybe (Val Text)   , _rDSDBSecurityGroupIngressEC2SecurityGroupOwnerId :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON RDSDBSecurityGroupIngress where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }+  toJSON RDSDBSecurityGroupIngress{..} =+    object $+    catMaybes+    [ ("CIDRIP" .=) <$> _rDSDBSecurityGroupIngressCIDRIP+    , Just ("DBSecurityGroupName" .= _rDSDBSecurityGroupIngressDBSecurityGroupName)+    , ("EC2SecurityGroupId" .=) <$> _rDSDBSecurityGroupIngressEC2SecurityGroupId+    , ("EC2SecurityGroupName" .=) <$> _rDSDBSecurityGroupIngressEC2SecurityGroupName+    , ("EC2SecurityGroupOwnerId" .=) <$> _rDSDBSecurityGroupIngressEC2SecurityGroupOwnerId+    ]  instance FromJSON RDSDBSecurityGroupIngress where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }+  parseJSON (Object obj) =+    RDSDBSecurityGroupIngress <$>+      obj .:? "CIDRIP" <*>+      obj .: "DBSecurityGroupName" <*>+      obj .:? "EC2SecurityGroupId" <*>+      obj .:? "EC2SecurityGroupName" <*>+      obj .:? "EC2SecurityGroupOwnerId"+  parseJSON _ = mempty  -- | Constructor for 'RDSDBSecurityGroupIngress' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/RDSDBSubnetGroup.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsubnet-group.html  module Stratosphere.Resources.RDSDBSubnetGroup where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Tag@@ -21,13 +21,24 @@   { _rDSDBSubnetGroupDBSubnetGroupDescription :: Val Text   , _rDSDBSubnetGroupSubnetIds :: [Val Text]   , _rDSDBSubnetGroupTags :: Maybe [Tag]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON RDSDBSubnetGroup where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  toJSON RDSDBSubnetGroup{..} =+    object $+    catMaybes+    [ Just ("DBSubnetGroupDescription" .= _rDSDBSubnetGroupDBSubnetGroupDescription)+    , Just ("SubnetIds" .= _rDSDBSubnetGroupSubnetIds)+    , ("Tags" .=) <$> _rDSDBSubnetGroupTags+    ]  instance FromJSON RDSDBSubnetGroup where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  parseJSON (Object obj) =+    RDSDBSubnetGroup <$>+      obj .: "DBSubnetGroupDescription" <*>+      obj .: "SubnetIds" <*>+      obj .:? "Tags"+  parseJSON _ = mempty  -- | Constructor for 'RDSDBSubnetGroup' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/RDSEventSubscription.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-eventsubscription.html  module Stratosphere.Resources.RDSEventSubscription where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -23,13 +23,28 @@   , _rDSEventSubscriptionSnsTopicArn :: Val Text   , _rDSEventSubscriptionSourceIds :: Maybe [Val Text]   , _rDSEventSubscriptionSourceType :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON RDSEventSubscription where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  toJSON RDSEventSubscription{..} =+    object $+    catMaybes+    [ ("Enabled" .=) <$> _rDSEventSubscriptionEnabled+    , ("EventCategories" .=) <$> _rDSEventSubscriptionEventCategories+    , Just ("SnsTopicArn" .= _rDSEventSubscriptionSnsTopicArn)+    , ("SourceIds" .=) <$> _rDSEventSubscriptionSourceIds+    , ("SourceType" .=) <$> _rDSEventSubscriptionSourceType+    ]  instance FromJSON RDSEventSubscription where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  parseJSON (Object obj) =+    RDSEventSubscription <$>+      obj .:? "Enabled" <*>+      obj .:? "EventCategories" <*>+      obj .: "SnsTopicArn" <*>+      obj .:? "SourceIds" <*>+      obj .:? "SourceType"+  parseJSON _ = mempty  -- | Constructor for 'RDSEventSubscription' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/RDSOptionGroup.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-optiongroup.html  module Stratosphere.Resources.RDSOptionGroup where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.RDSOptionGroupOptionConfiguration@@ -24,13 +24,28 @@   , _rDSOptionGroupOptionConfigurations :: [RDSOptionGroupOptionConfiguration]   , _rDSOptionGroupOptionGroupDescription :: Val Text   , _rDSOptionGroupTags :: Maybe [Tag]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON RDSOptionGroup where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  toJSON RDSOptionGroup{..} =+    object $+    catMaybes+    [ Just ("EngineName" .= _rDSOptionGroupEngineName)+    , Just ("MajorEngineVersion" .= _rDSOptionGroupMajorEngineVersion)+    , Just ("OptionConfigurations" .= _rDSOptionGroupOptionConfigurations)+    , Just ("OptionGroupDescription" .= _rDSOptionGroupOptionGroupDescription)+    , ("Tags" .=) <$> _rDSOptionGroupTags+    ]  instance FromJSON RDSOptionGroup where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  parseJSON (Object obj) =+    RDSOptionGroup <$>+      obj .: "EngineName" <*>+      obj .: "MajorEngineVersion" <*>+      obj .: "OptionConfigurations" <*>+      obj .: "OptionGroupDescription" <*>+      obj .:? "Tags"+  parseJSON _ = mempty  -- | Constructor for 'RDSOptionGroup' containing required fields as arguments. rdsOptionGroup
library-gen/Stratosphere/Resources/RedshiftCluster.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html  module Stratosphere.Resources.RedshiftCluster where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -42,13 +42,66 @@   , _redshiftClusterSnapshotClusterIdentifier :: Maybe (Val Text)   , _redshiftClusterSnapshotIdentifier :: Maybe (Val Text)   , _redshiftClusterVpcSecurityGroupIds :: Maybe [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON RedshiftCluster where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }+  toJSON RedshiftCluster{..} =+    object $+    catMaybes+    [ ("AllowVersionUpdate" .=) <$> _redshiftClusterAllowVersionUpdate+    , ("AutomatedSnapshotRetentionPeriod" .=) <$> _redshiftClusterAutomatedSnapshotRetentionPeriod+    , ("AvailabilityZone" .=) <$> _redshiftClusterAvailabilityZone+    , ("ClusterParameterGroupName" .=) <$> _redshiftClusterClusterParameterGroupName+    , ("ClusterSecurityGroups" .=) <$> _redshiftClusterClusterSecurityGroups+    , ("ClusterSubnetGroupName" .=) <$> _redshiftClusterClusterSubnetGroupName+    , Just ("ClusterType" .= _redshiftClusterClusterType)+    , ("ClusterVersion" .=) <$> _redshiftClusterClusterVersion+    , Just ("DBName" .= _redshiftClusterDBName)+    , ("ElasticIp" .=) <$> _redshiftClusterElasticIp+    , ("Encrypted" .=) <$> _redshiftClusterEncrypted+    , ("HsmClientCertificateIdentifier" .=) <$> _redshiftClusterHsmClientCertificateIdentifier+    , ("KmsKeyId" .=) <$> _redshiftClusterKmsKeyId+    , Just ("MasterUserPassword" .= _redshiftClusterMasterUserPassword)+    , Just ("MasterUsername" .= _redshiftClusterMasterUsername)+    , Just ("NodeType" .= _redshiftClusterNodeType)+    , ("NumberOfNodes" .=) <$> _redshiftClusterNumberOfNodes+    , ("OwnerAccount" .=) <$> _redshiftClusterOwnerAccount+    , ("Port" .=) <$> _redshiftClusterPort+    , ("PreferredMaintenanceWindow" .=) <$> _redshiftClusterPreferredMaintenanceWindow+    , ("PubliclyAccessible" .=) <$> _redshiftClusterPubliclyAccessible+    , ("SnapshotClusterIdentifier" .=) <$> _redshiftClusterSnapshotClusterIdentifier+    , ("SnapshotIdentifier" .=) <$> _redshiftClusterSnapshotIdentifier+    , ("VpcSecurityGroupIds" .=) <$> _redshiftClusterVpcSecurityGroupIds+    ]  instance FromJSON RedshiftCluster where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }+  parseJSON (Object obj) =+    RedshiftCluster <$>+      obj .:? "AllowVersionUpdate" <*>+      obj .:? "AutomatedSnapshotRetentionPeriod" <*>+      obj .:? "AvailabilityZone" <*>+      obj .:? "ClusterParameterGroupName" <*>+      obj .:? "ClusterSecurityGroups" <*>+      obj .:? "ClusterSubnetGroupName" <*>+      obj .: "ClusterType" <*>+      obj .:? "ClusterVersion" <*>+      obj .: "DBName" <*>+      obj .:? "ElasticIp" <*>+      obj .:? "Encrypted" <*>+      obj .:? "HsmClientCertificateIdentifier" <*>+      obj .:? "KmsKeyId" <*>+      obj .: "MasterUserPassword" <*>+      obj .: "MasterUsername" <*>+      obj .: "NodeType" <*>+      obj .:? "NumberOfNodes" <*>+      obj .:? "OwnerAccount" <*>+      obj .:? "Port" <*>+      obj .:? "PreferredMaintenanceWindow" <*>+      obj .:? "PubliclyAccessible" <*>+      obj .:? "SnapshotClusterIdentifier" <*>+      obj .:? "SnapshotIdentifier" <*>+      obj .:? "VpcSecurityGroupIds"+  parseJSON _ = mempty  -- | Constructor for 'RedshiftCluster' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/RedshiftClusterParameterGroup.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clusterparametergroup.html  module Stratosphere.Resources.RedshiftClusterParameterGroup where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.RedshiftClusterParameterGroupParameter@@ -21,13 +21,24 @@   { _redshiftClusterParameterGroupDescription :: Val Text   , _redshiftClusterParameterGroupParameterGroupFamily :: Val Text   , _redshiftClusterParameterGroupParameters :: Maybe [RedshiftClusterParameterGroupParameter]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON RedshiftClusterParameterGroup where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  toJSON RedshiftClusterParameterGroup{..} =+    object $+    catMaybes+    [ Just ("Description" .= _redshiftClusterParameterGroupDescription)+    , Just ("ParameterGroupFamily" .= _redshiftClusterParameterGroupParameterGroupFamily)+    , ("Parameters" .=) <$> _redshiftClusterParameterGroupParameters+    ]  instance FromJSON RedshiftClusterParameterGroup where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }+  parseJSON (Object obj) =+    RedshiftClusterParameterGroup <$>+      obj .: "Description" <*>+      obj .: "ParameterGroupFamily" <*>+      obj .:? "Parameters"+  parseJSON _ = mempty  -- | Constructor for 'RedshiftClusterParameterGroup' containing required -- | fields as arguments.
library-gen/Stratosphere/Resources/RedshiftClusterSecurityGroup.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersecuritygroup.html  module Stratosphere.Resources.RedshiftClusterSecurityGroup where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data RedshiftClusterSecurityGroup =   RedshiftClusterSecurityGroup   { _redshiftClusterSecurityGroupDescription :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON RedshiftClusterSecurityGroup where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  toJSON RedshiftClusterSecurityGroup{..} =+    object $+    catMaybes+    [ Just ("Description" .= _redshiftClusterSecurityGroupDescription)+    ]  instance FromJSON RedshiftClusterSecurityGroup where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }+  parseJSON (Object obj) =+    RedshiftClusterSecurityGroup <$>+      obj .: "Description"+  parseJSON _ = mempty  -- | Constructor for 'RedshiftClusterSecurityGroup' containing required fields -- | as arguments.
library-gen/Stratosphere/Resources/RedshiftClusterSecurityGroupIngress.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersecuritygroupingress.html  module Stratosphere.Resources.RedshiftClusterSecurityGroupIngress where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -22,13 +22,26 @@   , _redshiftClusterSecurityGroupIngressClusterSecurityGroupName :: Val Text   , _redshiftClusterSecurityGroupIngressEC2SecurityGroupName :: Maybe (Val Text)   , _redshiftClusterSecurityGroupIngressEC2SecurityGroupOwnerId :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON RedshiftClusterSecurityGroupIngress where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  toJSON RedshiftClusterSecurityGroupIngress{..} =+    object $+    catMaybes+    [ ("CIDRIP" .=) <$> _redshiftClusterSecurityGroupIngressCIDRIP+    , Just ("ClusterSecurityGroupName" .= _redshiftClusterSecurityGroupIngressClusterSecurityGroupName)+    , ("EC2SecurityGroupName" .=) <$> _redshiftClusterSecurityGroupIngressEC2SecurityGroupName+    , ("EC2SecurityGroupOwnerId" .=) <$> _redshiftClusterSecurityGroupIngressEC2SecurityGroupOwnerId+    ]  instance FromJSON RedshiftClusterSecurityGroupIngress where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 36, omitNothingFields = True }+  parseJSON (Object obj) =+    RedshiftClusterSecurityGroupIngress <$>+      obj .:? "CIDRIP" <*>+      obj .: "ClusterSecurityGroupName" <*>+      obj .:? "EC2SecurityGroupName" <*>+      obj .:? "EC2SecurityGroupOwnerId"+  parseJSON _ = mempty  -- | Constructor for 'RedshiftClusterSecurityGroupIngress' containing required -- | fields as arguments.
library-gen/Stratosphere/Resources/RedshiftClusterSubnetGroup.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersubnetgroup.html  module Stratosphere.Resources.RedshiftClusterSubnetGroup where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   RedshiftClusterSubnetGroup   { _redshiftClusterSubnetGroupDescription :: Val Text   , _redshiftClusterSubnetGroupSubnetIds :: [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON RedshiftClusterSubnetGroup where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  toJSON RedshiftClusterSubnetGroup{..} =+    object $+    catMaybes+    [ Just ("Description" .= _redshiftClusterSubnetGroupDescription)+    , Just ("SubnetIds" .= _redshiftClusterSubnetGroupSubnetIds)+    ]  instance FromJSON RedshiftClusterSubnetGroup where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 27, omitNothingFields = True }+  parseJSON (Object obj) =+    RedshiftClusterSubnetGroup <$>+      obj .: "Description" <*>+      obj .: "SubnetIds"+  parseJSON _ = mempty  -- | Constructor for 'RedshiftClusterSubnetGroup' containing required fields -- | as arguments.
library-gen/Stratosphere/Resources/Route53HealthCheck.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-healthcheck.html  module Stratosphere.Resources.Route53HealthCheck where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Route53HealthCheckHealthCheckConfig@@ -21,13 +21,22 @@   Route53HealthCheck   { _route53HealthCheckHealthCheckConfig :: Route53HealthCheckHealthCheckConfig   , _route53HealthCheckHealthCheckTags :: Maybe [Route53HealthCheckHealthCheckTag]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON Route53HealthCheck where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  toJSON Route53HealthCheck{..} =+    object $+    catMaybes+    [ Just ("HealthCheckConfig" .= _route53HealthCheckHealthCheckConfig)+    , ("HealthCheckTags" .=) <$> _route53HealthCheckHealthCheckTags+    ]  instance FromJSON Route53HealthCheck where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }+  parseJSON (Object obj) =+    Route53HealthCheck <$>+      obj .: "HealthCheckConfig" <*>+      obj .:? "HealthCheckTags"+  parseJSON _ = mempty  -- | Constructor for 'Route53HealthCheck' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/Route53HostedZone.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html  module Stratosphere.Resources.Route53HostedZone where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Route53HostedZoneHostedZoneConfig@@ -24,13 +24,26 @@   , _route53HostedZoneHostedZoneTags :: Maybe [Route53HostedZoneHostedZoneTag]   , _route53HostedZoneName :: Val Text   , _route53HostedZoneVPCs :: Maybe [Route53HostedZoneVPC]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON Route53HostedZone where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 18, omitNothingFields = True }+  toJSON Route53HostedZone{..} =+    object $+    catMaybes+    [ ("HostedZoneConfig" .=) <$> _route53HostedZoneHostedZoneConfig+    , ("HostedZoneTags" .=) <$> _route53HostedZoneHostedZoneTags+    , Just ("Name" .= _route53HostedZoneName)+    , ("VPCs" .=) <$> _route53HostedZoneVPCs+    ]  instance FromJSON Route53HostedZone where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 18, omitNothingFields = True }+  parseJSON (Object obj) =+    Route53HostedZone <$>+      obj .:? "HostedZoneConfig" <*>+      obj .:? "HostedZoneTags" <*>+      obj .: "Name" <*>+      obj .:? "VPCs"+  parseJSON _ = mempty  -- | Constructor for 'Route53HostedZone' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/Route53RecordSet.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html  module Stratosphere.Resources.Route53RecordSet where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Route53RecordSetAliasTarget@@ -33,13 +33,46 @@   , _route53RecordSetTTL :: Maybe (Val Text)   , _route53RecordSetType :: Val Text   , _route53RecordSetWeight :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON Route53RecordSet where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  toJSON Route53RecordSet{..} =+    object $+    catMaybes+    [ ("AliasTarget" .=) <$> _route53RecordSetAliasTarget+    , ("Comment" .=) <$> _route53RecordSetComment+    , ("Failover" .=) <$> _route53RecordSetFailover+    , ("GeoLocation" .=) <$> _route53RecordSetGeoLocation+    , ("HealthCheckId" .=) <$> _route53RecordSetHealthCheckId+    , ("HostedZoneId" .=) <$> _route53RecordSetHostedZoneId+    , ("HostedZoneName" .=) <$> _route53RecordSetHostedZoneName+    , Just ("Name" .= _route53RecordSetName)+    , ("Region" .=) <$> _route53RecordSetRegion+    , ("ResourceRecords" .=) <$> _route53RecordSetResourceRecords+    , ("SetIdentifier" .=) <$> _route53RecordSetSetIdentifier+    , ("TTL" .=) <$> _route53RecordSetTTL+    , Just ("Type" .= _route53RecordSetType)+    , ("Weight" .=) <$> _route53RecordSetWeight+    ]  instance FromJSON Route53RecordSet where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }+  parseJSON (Object obj) =+    Route53RecordSet <$>+      obj .:? "AliasTarget" <*>+      obj .:? "Comment" <*>+      obj .:? "Failover" <*>+      obj .:? "GeoLocation" <*>+      obj .:? "HealthCheckId" <*>+      obj .:? "HostedZoneId" <*>+      obj .:? "HostedZoneName" <*>+      obj .: "Name" <*>+      obj .:? "Region" <*>+      obj .:? "ResourceRecords" <*>+      obj .:? "SetIdentifier" <*>+      obj .:? "TTL" <*>+      obj .: "Type" <*>+      obj .:? "Weight"+  parseJSON _ = mempty  -- | Constructor for 'Route53RecordSet' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/Route53RecordSetGroup.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordsetgroup.html  module Stratosphere.Resources.Route53RecordSetGroup where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.Route53RecordSetGroupRecordSet@@ -22,13 +22,26 @@   , _route53RecordSetGroupHostedZoneId :: Maybe (Val Text)   , _route53RecordSetGroupHostedZoneName :: Maybe (Val Text)   , _route53RecordSetGroupRecordSets :: Maybe [Route53RecordSetGroupRecordSet]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON Route53RecordSetGroup where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 22, omitNothingFields = True }+  toJSON Route53RecordSetGroup{..} =+    object $+    catMaybes+    [ ("Comment" .=) <$> _route53RecordSetGroupComment+    , ("HostedZoneId" .=) <$> _route53RecordSetGroupHostedZoneId+    , ("HostedZoneName" .=) <$> _route53RecordSetGroupHostedZoneName+    , ("RecordSets" .=) <$> _route53RecordSetGroupRecordSets+    ]  instance FromJSON Route53RecordSetGroup where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 22, omitNothingFields = True }+  parseJSON (Object obj) =+    Route53RecordSetGroup <$>+      obj .:? "Comment" <*>+      obj .:? "HostedZoneId" <*>+      obj .:? "HostedZoneName" <*>+      obj .:? "RecordSets"+  parseJSON _ = mempty  -- | Constructor for 'Route53RecordSetGroup' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/S3Bucket.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html  module Stratosphere.Resources.S3Bucket where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.Types@@ -36,13 +36,38 @@   , _s3BucketTags :: Maybe [Tag]   , _s3BucketVersioningConfiguration :: Maybe S3BucketVersioningConfiguration   , _s3BucketWebsiteConfiguration :: Maybe S3BucketWebsiteConfiguration-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3Bucket where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 9, omitNothingFields = True }+  toJSON S3Bucket{..} =+    object $+    catMaybes+    [ ("AccessControl" .=) <$> _s3BucketAccessControl+    , ("BucketName" .=) <$> _s3BucketBucketName+    , ("CorsConfiguration" .=) <$> _s3BucketCorsConfiguration+    , ("LifecycleConfiguration" .=) <$> _s3BucketLifecycleConfiguration+    , ("LoggingConfiguration" .=) <$> _s3BucketLoggingConfiguration+    , ("NotificationConfiguration" .=) <$> _s3BucketNotificationConfiguration+    , ("ReplicationConfiguration" .=) <$> _s3BucketReplicationConfiguration+    , ("Tags" .=) <$> _s3BucketTags+    , ("VersioningConfiguration" .=) <$> _s3BucketVersioningConfiguration+    , ("WebsiteConfiguration" .=) <$> _s3BucketWebsiteConfiguration+    ]  instance FromJSON S3Bucket where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 9, omitNothingFields = True }+  parseJSON (Object obj) =+    S3Bucket <$>+      obj .:? "AccessControl" <*>+      obj .:? "BucketName" <*>+      obj .:? "CorsConfiguration" <*>+      obj .:? "LifecycleConfiguration" <*>+      obj .:? "LoggingConfiguration" <*>+      obj .:? "NotificationConfiguration" <*>+      obj .:? "ReplicationConfiguration" <*>+      obj .:? "Tags" <*>+      obj .:? "VersioningConfiguration" <*>+      obj .:? "WebsiteConfiguration"+  parseJSON _ = mempty  -- | Constructor for 'S3Bucket' containing required fields as arguments. s3Bucket
library-gen/Stratosphere/Resources/S3BucketPolicy.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html  module Stratosphere.Resources.S3BucketPolicy where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   S3BucketPolicy   { _s3BucketPolicyBucket :: Val Text   , _s3BucketPolicyPolicyDocument :: Object-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON S3BucketPolicy where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  toJSON S3BucketPolicy{..} =+    object $+    catMaybes+    [ Just ("Bucket" .= _s3BucketPolicyBucket)+    , Just ("PolicyDocument" .= _s3BucketPolicyPolicyDocument)+    ]  instance FromJSON S3BucketPolicy where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  parseJSON (Object obj) =+    S3BucketPolicy <$>+      obj .: "Bucket" <*>+      obj .: "PolicyDocument"+  parseJSON _ = mempty  -- | Constructor for 'S3BucketPolicy' containing required fields as arguments. s3BucketPolicy
library-gen/Stratosphere/Resources/SDBDomain.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-simpledb.html  module Stratosphere.Resources.SDBDomain where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -19,13 +19,20 @@ data SDBDomain =   SDBDomain   { _sDBDomainDescription :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON SDBDomain where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 10, omitNothingFields = True }+  toJSON SDBDomain{..} =+    object $+    catMaybes+    [ ("Description" .=) <$> _sDBDomainDescription+    ]  instance FromJSON SDBDomain where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 10, omitNothingFields = True }+  parseJSON (Object obj) =+    SDBDomain <$>+      obj .:? "Description"+  parseJSON _ = mempty  -- | Constructor for 'SDBDomain' containing required fields as arguments. sdbDomain
library-gen/Stratosphere/Resources/SNSSubscription.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html  module Stratosphere.Resources.SNSSubscription where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.Types@@ -21,13 +21,24 @@   { _sNSSubscriptionEndpoint :: Maybe (Val Text)   , _sNSSubscriptionProtocol :: Maybe (Val SNSProtocol)   , _sNSSubscriptionTopicArn :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON SNSSubscription where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }+  toJSON SNSSubscription{..} =+    object $+    catMaybes+    [ ("Endpoint" .=) <$> _sNSSubscriptionEndpoint+    , ("Protocol" .=) <$> _sNSSubscriptionProtocol+    , ("TopicArn" .=) <$> _sNSSubscriptionTopicArn+    ]  instance FromJSON SNSSubscription where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }+  parseJSON (Object obj) =+    SNSSubscription <$>+      obj .:? "Endpoint" <*>+      obj .:? "Protocol" <*>+      obj .:? "TopicArn"+  parseJSON _ = mempty  -- | Constructor for 'SNSSubscription' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/SNSTopic.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html  module Stratosphere.Resources.SNSTopic where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.SNSTopicSubscription@@ -21,13 +21,24 @@   { _sNSTopicDisplayName :: Maybe (Val Text)   , _sNSTopicSubscription :: Maybe [SNSTopicSubscription]   , _sNSTopicTopicName :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON SNSTopic where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 9, omitNothingFields = True }+  toJSON SNSTopic{..} =+    object $+    catMaybes+    [ ("DisplayName" .=) <$> _sNSTopicDisplayName+    , ("Subscription" .=) <$> _sNSTopicSubscription+    , ("TopicName" .=) <$> _sNSTopicTopicName+    ]  instance FromJSON SNSTopic where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 9, omitNothingFields = True }+  parseJSON (Object obj) =+    SNSTopic <$>+      obj .:? "DisplayName" <*>+      obj .:? "Subscription" <*>+      obj .:? "TopicName"+  parseJSON _ = mempty  -- | Constructor for 'SNSTopic' containing required fields as arguments. snsTopic
library-gen/Stratosphere/Resources/SNSTopicPolicy.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html  module Stratosphere.Resources.SNSTopicPolicy where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   SNSTopicPolicy   { _sNSTopicPolicyPolicyDocument :: Object   , _sNSTopicPolicyTopics :: [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON SNSTopicPolicy where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  toJSON SNSTopicPolicy{..} =+    object $+    catMaybes+    [ Just ("PolicyDocument" .= _sNSTopicPolicyPolicyDocument)+    , Just ("Topics" .= _sNSTopicPolicyTopics)+    ]  instance FromJSON SNSTopicPolicy where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  parseJSON (Object obj) =+    SNSTopicPolicy <$>+      obj .: "PolicyDocument" <*>+      obj .: "Topics"+  parseJSON _ = mempty  -- | Constructor for 'SNSTopicPolicy' containing required fields as arguments. snsTopicPolicy
library-gen/Stratosphere/Resources/SQSQueue.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html  module Stratosphere.Resources.SQSQueue where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -25,13 +25,32 @@   , _sQSQueueReceiveMessageWaitTimeSeconds :: Maybe (Val Integer')   , _sQSQueueRedrivePolicy :: Maybe Object   , _sQSQueueVisibilityTimeout :: Maybe (Val Integer')-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON SQSQueue where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 9, omitNothingFields = True }+  toJSON SQSQueue{..} =+    object $+    catMaybes+    [ ("DelaySeconds" .=) <$> _sQSQueueDelaySeconds+    , ("MaximumMessageSize" .=) <$> _sQSQueueMaximumMessageSize+    , ("MessageRetentionPeriod" .=) <$> _sQSQueueMessageRetentionPeriod+    , ("QueueName" .=) <$> _sQSQueueQueueName+    , ("ReceiveMessageWaitTimeSeconds" .=) <$> _sQSQueueReceiveMessageWaitTimeSeconds+    , ("RedrivePolicy" .=) <$> _sQSQueueRedrivePolicy+    , ("VisibilityTimeout" .=) <$> _sQSQueueVisibilityTimeout+    ]  instance FromJSON SQSQueue where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 9, omitNothingFields = True }+  parseJSON (Object obj) =+    SQSQueue <$>+      obj .:? "DelaySeconds" <*>+      obj .:? "MaximumMessageSize" <*>+      obj .:? "MessageRetentionPeriod" <*>+      obj .:? "QueueName" <*>+      obj .:? "ReceiveMessageWaitTimeSeconds" <*>+      obj .:? "RedrivePolicy" <*>+      obj .:? "VisibilityTimeout"+  parseJSON _ = mempty  -- | Constructor for 'SQSQueue' containing required fields as arguments. sqsQueue
library-gen/Stratosphere/Resources/SQSQueuePolicy.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html  module Stratosphere.Resources.SQSQueuePolicy where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   SQSQueuePolicy   { _sQSQueuePolicyPolicyDocument :: Object   , _sQSQueuePolicyQueues :: [Val Text]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON SQSQueuePolicy where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  toJSON SQSQueuePolicy{..} =+    object $+    catMaybes+    [ Just ("PolicyDocument" .= _sQSQueuePolicyPolicyDocument)+    , Just ("Queues" .= _sQSQueuePolicyQueues)+    ]  instance FromJSON SQSQueuePolicy where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  parseJSON (Object obj) =+    SQSQueuePolicy <$>+      obj .: "PolicyDocument" <*>+      obj .: "Queues"+  parseJSON _ = mempty  -- | Constructor for 'SQSQueuePolicy' containing required fields as arguments. sqsQueuePolicy
library-gen/Stratosphere/Resources/SSMAssociation.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-association.html  module Stratosphere.Resources.SSMAssociation where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.SSMAssociationParameterValues@@ -25,13 +25,30 @@   , _sSMAssociationParameters :: Maybe Object   , _sSMAssociationScheduleExpression :: Maybe (Val Text)   , _sSMAssociationTargets :: Maybe [SSMAssociationTarget]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON SSMAssociation where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  toJSON SSMAssociation{..} =+    object $+    catMaybes+    [ ("DocumentVersion" .=) <$> _sSMAssociationDocumentVersion+    , ("InstanceId" .=) <$> _sSMAssociationInstanceId+    , Just ("Name" .= _sSMAssociationName)+    , ("Parameters" .=) <$> _sSMAssociationParameters+    , ("ScheduleExpression" .=) <$> _sSMAssociationScheduleExpression+    , ("Targets" .=) <$> _sSMAssociationTargets+    ]  instance FromJSON SSMAssociation where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  parseJSON (Object obj) =+    SSMAssociation <$>+      obj .:? "DocumentVersion" <*>+      obj .:? "InstanceId" <*>+      obj .: "Name" <*>+      obj .:? "Parameters" <*>+      obj .:? "ScheduleExpression" <*>+      obj .:? "Targets"+  parseJSON _ = mempty  -- | Constructor for 'SSMAssociation' containing required fields as arguments. ssmAssociation
library-gen/Stratosphere/Resources/SSMDocument.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html  module Stratosphere.Resources.SSMDocument where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -20,13 +20,22 @@   SSMDocument   { _sSMDocumentContent :: Object   , _sSMDocumentDocumentType :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON SSMDocument where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 12, omitNothingFields = True }+  toJSON SSMDocument{..} =+    object $+    catMaybes+    [ Just ("Content" .= _sSMDocumentContent)+    , ("DocumentType" .=) <$> _sSMDocumentDocumentType+    ]  instance FromJSON SSMDocument where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 12, omitNothingFields = True }+  parseJSON (Object obj) =+    SSMDocument <$>+      obj .: "Content" <*>+      obj .:? "DocumentType"+  parseJSON _ = mempty  -- | Constructor for 'SSMDocument' containing required fields as arguments. ssmDocument
library-gen/Stratosphere/Resources/WAFByteMatchSet.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-bytematchset.html  module Stratosphere.Resources.WAFByteMatchSet where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.WAFByteMatchSetByteMatchTuple@@ -20,13 +20,22 @@   WAFByteMatchSet   { _wAFByteMatchSetByteMatchTuples :: Maybe [WAFByteMatchSetByteMatchTuple]   , _wAFByteMatchSetName :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON WAFByteMatchSet where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }+  toJSON WAFByteMatchSet{..} =+    object $+    catMaybes+    [ ("ByteMatchTuples" .=) <$> _wAFByteMatchSetByteMatchTuples+    , Just ("Name" .= _wAFByteMatchSetName)+    ]  instance FromJSON WAFByteMatchSet where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }+  parseJSON (Object obj) =+    WAFByteMatchSet <$>+      obj .:? "ByteMatchTuples" <*>+      obj .: "Name"+  parseJSON _ = mempty  -- | Constructor for 'WAFByteMatchSet' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/WAFIPSet.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-ipset.html  module Stratosphere.Resources.WAFIPSet where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.WAFIPSetIPSetDescriptor@@ -20,13 +20,22 @@   WAFIPSet   { _wAFIPSetIPSetDescriptors :: Maybe [WAFIPSetIPSetDescriptor]   , _wAFIPSetName :: Val Text-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON WAFIPSet where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 9, omitNothingFields = True }+  toJSON WAFIPSet{..} =+    object $+    catMaybes+    [ ("IPSetDescriptors" .=) <$> _wAFIPSetIPSetDescriptors+    , Just ("Name" .= _wAFIPSetName)+    ]  instance FromJSON WAFIPSet where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 9, omitNothingFields = True }+  parseJSON (Object obj) =+    WAFIPSet <$>+      obj .:? "IPSetDescriptors" <*>+      obj .: "Name"+  parseJSON _ = mempty  -- | Constructor for 'WAFIPSet' containing required fields as arguments. wafipSet
library-gen/Stratosphere/Resources/WAFRule.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-rule.html  module Stratosphere.Resources.WAFRule where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.WAFRulePredicate@@ -21,13 +21,24 @@   { _wAFRuleMetricName :: Val Text   , _wAFRuleName :: Val Text   , _wAFRulePredicates :: Maybe [WAFRulePredicate]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON WAFRule where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 8, omitNothingFields = True }+  toJSON WAFRule{..} =+    object $+    catMaybes+    [ Just ("MetricName" .= _wAFRuleMetricName)+    , Just ("Name" .= _wAFRuleName)+    , ("Predicates" .=) <$> _wAFRulePredicates+    ]  instance FromJSON WAFRule where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 8, omitNothingFields = True }+  parseJSON (Object obj) =+    WAFRule <$>+      obj .: "MetricName" <*>+      obj .: "Name" <*>+      obj .:? "Predicates"+  parseJSON _ = mempty  -- | Constructor for 'WAFRule' containing required fields as arguments. wafRule
library-gen/Stratosphere/Resources/WAFSizeConstraintSet.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-sizeconstraintset.html  module Stratosphere.Resources.WAFSizeConstraintSet where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.WAFSizeConstraintSetSizeConstraint@@ -20,13 +20,22 @@   WAFSizeConstraintSet   { _wAFSizeConstraintSetName :: Val Text   , _wAFSizeConstraintSetSizeConstraints :: [WAFSizeConstraintSetSizeConstraint]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON WAFSizeConstraintSet where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  toJSON WAFSizeConstraintSet{..} =+    object $+    catMaybes+    [ Just ("Name" .= _wAFSizeConstraintSetName)+    , Just ("SizeConstraints" .= _wAFSizeConstraintSetSizeConstraints)+    ]  instance FromJSON WAFSizeConstraintSet where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }+  parseJSON (Object obj) =+    WAFSizeConstraintSet <$>+      obj .: "Name" <*>+      obj .: "SizeConstraints"+  parseJSON _ = mempty  -- | Constructor for 'WAFSizeConstraintSet' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/WAFSqlInjectionMatchSet.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-sqlinjectionmatchset.html  module Stratosphere.Resources.WAFSqlInjectionMatchSet where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.WAFSqlInjectionMatchSetSqlInjectionMatchTuple@@ -20,13 +20,22 @@   WAFSqlInjectionMatchSet   { _wAFSqlInjectionMatchSetName :: Val Text   , _wAFSqlInjectionMatchSetSqlInjectionMatchTuples :: Maybe [WAFSqlInjectionMatchSetSqlInjectionMatchTuple]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON WAFSqlInjectionMatchSet where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  toJSON WAFSqlInjectionMatchSet{..} =+    object $+    catMaybes+    [ Just ("Name" .= _wAFSqlInjectionMatchSetName)+    , ("SqlInjectionMatchTuples" .=) <$> _wAFSqlInjectionMatchSetSqlInjectionMatchTuples+    ]  instance FromJSON WAFSqlInjectionMatchSet where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 24, omitNothingFields = True }+  parseJSON (Object obj) =+    WAFSqlInjectionMatchSet <$>+      obj .: "Name" <*>+      obj .:? "SqlInjectionMatchTuples"+  parseJSON _ = mempty  -- | Constructor for 'WAFSqlInjectionMatchSet' containing required fields as -- | arguments.
library-gen/Stratosphere/Resources/WAFWebACL.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-webacl.html  module Stratosphere.Resources.WAFWebACL where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.WAFWebACLWafAction@@ -23,13 +23,26 @@   , _wAFWebACLMetricName :: Val Text   , _wAFWebACLName :: Val Text   , _wAFWebACLRules :: Maybe [WAFWebACLActivatedRule]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON WAFWebACL where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 10, omitNothingFields = True }+  toJSON WAFWebACL{..} =+    object $+    catMaybes+    [ Just ("DefaultAction" .= _wAFWebACLDefaultAction)+    , Just ("MetricName" .= _wAFWebACLMetricName)+    , Just ("Name" .= _wAFWebACLName)+    , ("Rules" .=) <$> _wAFWebACLRules+    ]  instance FromJSON WAFWebACL where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 10, omitNothingFields = True }+  parseJSON (Object obj) =+    WAFWebACL <$>+      obj .: "DefaultAction" <*>+      obj .: "MetricName" <*>+      obj .: "Name" <*>+      obj .:? "Rules"+  parseJSON _ = mempty  -- | Constructor for 'WAFWebACL' containing required fields as arguments. wafWebACL
library-gen/Stratosphere/Resources/WAFXssMatchSet.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-xssmatchset.html  module Stratosphere.Resources.WAFXssMatchSet where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values import Stratosphere.ResourceProperties.WAFXssMatchSetXssMatchTuple@@ -20,13 +20,22 @@   WAFXssMatchSet   { _wAFXssMatchSetName :: Val Text   , _wAFXssMatchSetXssMatchTuples :: [WAFXssMatchSetXssMatchTuple]-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON WAFXssMatchSet where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  toJSON WAFXssMatchSet{..} =+    object $+    catMaybes+    [ Just ("Name" .= _wAFXssMatchSetName)+    , Just ("XssMatchTuples" .= _wAFXssMatchSetXssMatchTuples)+    ]  instance FromJSON WAFXssMatchSet where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }+  parseJSON (Object obj) =+    WAFXssMatchSet <$>+      obj .: "Name" <*>+      obj .: "XssMatchTuples"+  parseJSON _ = mempty  -- | Constructor for 'WAFXssMatchSet' containing required fields as arguments. wafXssMatchSet
library-gen/Stratosphere/Resources/WorkSpacesWorkspace.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}  -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspace.html  module Stratosphere.Resources.WorkSpacesWorkspace where -import Control.Lens+import Control.Lens hiding ((.=)) import Data.Aeson-import Data.Aeson.Types+import Data.Maybe (catMaybes)+import Data.Monoid (mempty) import Data.Text-import GHC.Generics  import Stratosphere.Values @@ -24,13 +24,30 @@   , _workSpacesWorkspaceUserName :: Val Text   , _workSpacesWorkspaceUserVolumeEncryptionEnabled :: Maybe (Val Bool')   , _workSpacesWorkspaceVolumeEncryptionKey :: Maybe (Val Text)-  } deriving (Show, Eq, Generic)+  } deriving (Show, Eq)  instance ToJSON WorkSpacesWorkspace where-  toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  toJSON WorkSpacesWorkspace{..} =+    object $+    catMaybes+    [ Just ("BundleId" .= _workSpacesWorkspaceBundleId)+    , Just ("DirectoryId" .= _workSpacesWorkspaceDirectoryId)+    , ("RootVolumeEncryptionEnabled" .=) <$> _workSpacesWorkspaceRootVolumeEncryptionEnabled+    , Just ("UserName" .= _workSpacesWorkspaceUserName)+    , ("UserVolumeEncryptionEnabled" .=) <$> _workSpacesWorkspaceUserVolumeEncryptionEnabled+    , ("VolumeEncryptionKey" .=) <$> _workSpacesWorkspaceVolumeEncryptionKey+    ]  instance FromJSON WorkSpacesWorkspace where-  parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }+  parseJSON (Object obj) =+    WorkSpacesWorkspace <$>+      obj .: "BundleId" <*>+      obj .: "DirectoryId" <*>+      obj .:? "RootVolumeEncryptionEnabled" <*>+      obj .: "UserName" <*>+      obj .:? "UserVolumeEncryptionEnabled" <*>+      obj .:? "VolumeEncryptionKey"+  parseJSON _ = mempty  -- | Constructor for 'WorkSpacesWorkspace' containing required fields as -- | arguments.
stack.yaml view
@@ -1,4 +1,4 @@-resolver: nightly-2016-11-26+resolver: nightly-2017-03-04 packages:   - '.' extra-deps: []
stratosphere.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack  name:           stratosphere-version:        0.4.0+version:        0.4.1 synopsis:       EDSL for AWS CloudFormation description:    EDSL for AWS CloudFormation category:       AWS, Cloud
tests/HLint.hs view
@@ -9,6 +9,7 @@   , "library-gen"   , "tests"   , "-i", "Use newtype instead of data"+  , "-i", "Unused LANGUAGE pragma"   ]  main :: IO ()