packages feed

stratosphere-dax (empty) → 1.0.0

raw patch · 7 files changed

+413/−0 lines, 7 filesdep +aesondep +basedep +stratosphere

Dependencies added: aeson, base, stratosphere

Files

+ LICENSE.md view
@@ -0,0 +1,20 @@+Copyright (c) 2016 David Reaver+Copyright (c) 2022 Markus Schirp++Permission is hereby granted, free of charge, to any person obtaining a copy of+this software and associated documentation files (the "Software"), to deal in+the Software without restriction, including without limitation the rights to+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies+of the Software, and to permit persons to whom the Software is furnished to do+so, subject to the following conditions:++The above copyright notice and this permission notice shall be included in all+copies or substantial portions of the Software.++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+SOFTWARE.
+ gen/Stratosphere/DAX/Cluster.hs view
@@ -0,0 +1,164 @@+module Stratosphere.DAX.Cluster (+        module Exports, Cluster(..), mkCluster+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import {-# SOURCE #-} Stratosphere.DAX.Cluster.SSESpecificationProperty as Exports+import Stratosphere.ResourceProperties+import Stratosphere.Value+data Cluster+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html>+    Cluster {haddock_workaround_ :: (),+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-availabilityzones>+             availabilityZones :: (Prelude.Maybe (ValueList Prelude.Text)),+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-clusterendpointencryptiontype>+             clusterEndpointEncryptionType :: (Prelude.Maybe (Value Prelude.Text)),+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-clustername>+             clusterName :: (Prelude.Maybe (Value Prelude.Text)),+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-description>+             description :: (Prelude.Maybe (Value Prelude.Text)),+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-iamrolearn>+             iAMRoleARN :: (Value Prelude.Text),+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-networktype>+             networkType :: (Prelude.Maybe (Value Prelude.Text)),+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-nodetype>+             nodeType :: (Value Prelude.Text),+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-notificationtopicarn>+             notificationTopicARN :: (Prelude.Maybe (Value Prelude.Text)),+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-parametergroupname>+             parameterGroupName :: (Prelude.Maybe (Value Prelude.Text)),+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-preferredmaintenancewindow>+             preferredMaintenanceWindow :: (Prelude.Maybe (Value Prelude.Text)),+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-replicationfactor>+             replicationFactor :: (Value Prelude.Integer),+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-ssespecification>+             sSESpecification :: (Prelude.Maybe SSESpecificationProperty),+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-securitygroupids>+             securityGroupIds :: (Prelude.Maybe (ValueList Prelude.Text)),+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-subnetgroupname>+             subnetGroupName :: (Prelude.Maybe (Value Prelude.Text)),+             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-tags>+             tags :: (Prelude.Maybe JSON.Object)}+  deriving stock (Prelude.Eq, Prelude.Show)+mkCluster ::+  Value Prelude.Text+  -> Value Prelude.Text -> Value Prelude.Integer -> Cluster+mkCluster iAMRoleARN nodeType replicationFactor+  = Cluster+      {haddock_workaround_ = (), iAMRoleARN = iAMRoleARN,+       nodeType = nodeType, replicationFactor = replicationFactor,+       availabilityZones = Prelude.Nothing,+       clusterEndpointEncryptionType = Prelude.Nothing,+       clusterName = Prelude.Nothing, description = Prelude.Nothing,+       networkType = Prelude.Nothing,+       notificationTopicARN = Prelude.Nothing,+       parameterGroupName = Prelude.Nothing,+       preferredMaintenanceWindow = Prelude.Nothing,+       sSESpecification = Prelude.Nothing,+       securityGroupIds = Prelude.Nothing,+       subnetGroupName = Prelude.Nothing, tags = Prelude.Nothing}+instance ToResourceProperties Cluster where+  toResourceProperties Cluster {..}+    = ResourceProperties+        {awsType = "AWS::DAX::Cluster", supportsTags = Prelude.True,+         properties = Prelude.fromList+                        ((Prelude.<>)+                           ["IAMRoleARN" JSON..= iAMRoleARN, "NodeType" JSON..= nodeType,+                            "ReplicationFactor" JSON..= replicationFactor]+                           (Prelude.catMaybes+                              [(JSON..=) "AvailabilityZones" Prelude.<$> availabilityZones,+                               (JSON..=) "ClusterEndpointEncryptionType"+                                 Prelude.<$> clusterEndpointEncryptionType,+                               (JSON..=) "ClusterName" Prelude.<$> clusterName,+                               (JSON..=) "Description" Prelude.<$> description,+                               (JSON..=) "NetworkType" Prelude.<$> networkType,+                               (JSON..=) "NotificationTopicARN" Prelude.<$> notificationTopicARN,+                               (JSON..=) "ParameterGroupName" Prelude.<$> parameterGroupName,+                               (JSON..=) "PreferredMaintenanceWindow"+                                 Prelude.<$> preferredMaintenanceWindow,+                               (JSON..=) "SSESpecification" Prelude.<$> sSESpecification,+                               (JSON..=) "SecurityGroupIds" Prelude.<$> securityGroupIds,+                               (JSON..=) "SubnetGroupName" Prelude.<$> subnetGroupName,+                               (JSON..=) "Tags" Prelude.<$> tags]))}+instance JSON.ToJSON Cluster where+  toJSON Cluster {..}+    = JSON.object+        (Prelude.fromList+           ((Prelude.<>)+              ["IAMRoleARN" JSON..= iAMRoleARN, "NodeType" JSON..= nodeType,+               "ReplicationFactor" JSON..= replicationFactor]+              (Prelude.catMaybes+                 [(JSON..=) "AvailabilityZones" Prelude.<$> availabilityZones,+                  (JSON..=) "ClusterEndpointEncryptionType"+                    Prelude.<$> clusterEndpointEncryptionType,+                  (JSON..=) "ClusterName" Prelude.<$> clusterName,+                  (JSON..=) "Description" Prelude.<$> description,+                  (JSON..=) "NetworkType" Prelude.<$> networkType,+                  (JSON..=) "NotificationTopicARN" Prelude.<$> notificationTopicARN,+                  (JSON..=) "ParameterGroupName" Prelude.<$> parameterGroupName,+                  (JSON..=) "PreferredMaintenanceWindow"+                    Prelude.<$> preferredMaintenanceWindow,+                  (JSON..=) "SSESpecification" Prelude.<$> sSESpecification,+                  (JSON..=) "SecurityGroupIds" Prelude.<$> securityGroupIds,+                  (JSON..=) "SubnetGroupName" Prelude.<$> subnetGroupName,+                  (JSON..=) "Tags" Prelude.<$> tags])))+instance Property "AvailabilityZones" Cluster where+  type PropertyType "AvailabilityZones" Cluster = ValueList Prelude.Text+  set newValue Cluster {..}+    = Cluster {availabilityZones = Prelude.pure newValue, ..}+instance Property "ClusterEndpointEncryptionType" Cluster where+  type PropertyType "ClusterEndpointEncryptionType" Cluster = Value Prelude.Text+  set newValue Cluster {..}+    = Cluster+        {clusterEndpointEncryptionType = Prelude.pure newValue, ..}+instance Property "ClusterName" Cluster where+  type PropertyType "ClusterName" Cluster = Value Prelude.Text+  set newValue Cluster {..}+    = Cluster {clusterName = Prelude.pure newValue, ..}+instance Property "Description" Cluster where+  type PropertyType "Description" Cluster = Value Prelude.Text+  set newValue Cluster {..}+    = Cluster {description = Prelude.pure newValue, ..}+instance Property "IAMRoleARN" Cluster where+  type PropertyType "IAMRoleARN" Cluster = Value Prelude.Text+  set newValue Cluster {..} = Cluster {iAMRoleARN = newValue, ..}+instance Property "NetworkType" Cluster where+  type PropertyType "NetworkType" Cluster = Value Prelude.Text+  set newValue Cluster {..}+    = Cluster {networkType = Prelude.pure newValue, ..}+instance Property "NodeType" Cluster where+  type PropertyType "NodeType" Cluster = Value Prelude.Text+  set newValue Cluster {..} = Cluster {nodeType = newValue, ..}+instance Property "NotificationTopicARN" Cluster where+  type PropertyType "NotificationTopicARN" Cluster = Value Prelude.Text+  set newValue Cluster {..}+    = Cluster {notificationTopicARN = Prelude.pure newValue, ..}+instance Property "ParameterGroupName" Cluster where+  type PropertyType "ParameterGroupName" Cluster = Value Prelude.Text+  set newValue Cluster {..}+    = Cluster {parameterGroupName = Prelude.pure newValue, ..}+instance Property "PreferredMaintenanceWindow" Cluster where+  type PropertyType "PreferredMaintenanceWindow" Cluster = Value Prelude.Text+  set newValue Cluster {..}+    = Cluster {preferredMaintenanceWindow = Prelude.pure newValue, ..}+instance Property "ReplicationFactor" Cluster where+  type PropertyType "ReplicationFactor" Cluster = Value Prelude.Integer+  set newValue Cluster {..}+    = Cluster {replicationFactor = newValue, ..}+instance Property "SSESpecification" Cluster where+  type PropertyType "SSESpecification" Cluster = SSESpecificationProperty+  set newValue Cluster {..}+    = Cluster {sSESpecification = Prelude.pure newValue, ..}+instance Property "SecurityGroupIds" Cluster where+  type PropertyType "SecurityGroupIds" Cluster = ValueList Prelude.Text+  set newValue Cluster {..}+    = Cluster {securityGroupIds = Prelude.pure newValue, ..}+instance Property "SubnetGroupName" Cluster where+  type PropertyType "SubnetGroupName" Cluster = Value Prelude.Text+  set newValue Cluster {..}+    = Cluster {subnetGroupName = Prelude.pure newValue, ..}+instance Property "Tags" Cluster where+  type PropertyType "Tags" Cluster = JSON.Object+  set newValue Cluster {..}+    = Cluster {tags = Prelude.pure newValue, ..}
+ gen/Stratosphere/DAX/Cluster/SSESpecificationProperty.hs view
@@ -0,0 +1,36 @@+module Stratosphere.DAX.Cluster.SSESpecificationProperty (+        SSESpecificationProperty(..), mkSSESpecificationProperty+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import Stratosphere.ResourceProperties+import Stratosphere.Value+data SSESpecificationProperty+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dax-cluster-ssespecification.html>+    SSESpecificationProperty {haddock_workaround_ :: (),+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dax-cluster-ssespecification.html#cfn-dax-cluster-ssespecification-sseenabled>+                              sSEEnabled :: (Prelude.Maybe (Value Prelude.Bool))}+  deriving stock (Prelude.Eq, Prelude.Show)+mkSSESpecificationProperty :: SSESpecificationProperty+mkSSESpecificationProperty+  = SSESpecificationProperty+      {haddock_workaround_ = (), sSEEnabled = Prelude.Nothing}+instance ToResourceProperties SSESpecificationProperty where+  toResourceProperties SSESpecificationProperty {..}+    = ResourceProperties+        {awsType = "AWS::DAX::Cluster.SSESpecification",+         supportsTags = Prelude.False,+         properties = Prelude.fromList+                        (Prelude.catMaybes+                           [(JSON..=) "SSEEnabled" Prelude.<$> sSEEnabled])}+instance JSON.ToJSON SSESpecificationProperty where+  toJSON SSESpecificationProperty {..}+    = JSON.object+        (Prelude.fromList+           (Prelude.catMaybes+              [(JSON..=) "SSEEnabled" Prelude.<$> sSEEnabled]))+instance Property "SSEEnabled" SSESpecificationProperty where+  type PropertyType "SSEEnabled" SSESpecificationProperty = Value Prelude.Bool+  set newValue SSESpecificationProperty {..}+    = SSESpecificationProperty {sSEEnabled = Prelude.pure newValue, ..}
+ gen/Stratosphere/DAX/Cluster/SSESpecificationProperty.hs-boot view
@@ -0,0 +1,9 @@+module Stratosphere.DAX.Cluster.SSESpecificationProperty where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.ResourceProperties+data SSESpecificationProperty :: Prelude.Type+instance ToResourceProperties SSESpecificationProperty+instance Prelude.Eq SSESpecificationProperty+instance Prelude.Show SSESpecificationProperty+instance JSON.ToJSON SSESpecificationProperty
+ gen/Stratosphere/DAX/ParameterGroup.hs view
@@ -0,0 +1,54 @@+module Stratosphere.DAX.ParameterGroup (+        ParameterGroup(..), mkParameterGroup+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import Stratosphere.ResourceProperties+import Stratosphere.Value+data ParameterGroup+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html>+    ParameterGroup {haddock_workaround_ :: (),+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html#cfn-dax-parametergroup-description>+                    description :: (Prelude.Maybe (Value Prelude.Text)),+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html#cfn-dax-parametergroup-parametergroupname>+                    parameterGroupName :: (Prelude.Maybe (Value Prelude.Text)),+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html#cfn-dax-parametergroup-parameternamevalues>+                    parameterNameValues :: (Prelude.Maybe JSON.Object)}+  deriving stock (Prelude.Eq, Prelude.Show)+mkParameterGroup :: ParameterGroup+mkParameterGroup+  = ParameterGroup+      {haddock_workaround_ = (), description = Prelude.Nothing,+       parameterGroupName = Prelude.Nothing,+       parameterNameValues = Prelude.Nothing}+instance ToResourceProperties ParameterGroup where+  toResourceProperties ParameterGroup {..}+    = ResourceProperties+        {awsType = "AWS::DAX::ParameterGroup",+         supportsTags = Prelude.False,+         properties = Prelude.fromList+                        (Prelude.catMaybes+                           [(JSON..=) "Description" Prelude.<$> description,+                            (JSON..=) "ParameterGroupName" Prelude.<$> parameterGroupName,+                            (JSON..=) "ParameterNameValues" Prelude.<$> parameterNameValues])}+instance JSON.ToJSON ParameterGroup where+  toJSON ParameterGroup {..}+    = JSON.object+        (Prelude.fromList+           (Prelude.catMaybes+              [(JSON..=) "Description" Prelude.<$> description,+               (JSON..=) "ParameterGroupName" Prelude.<$> parameterGroupName,+               (JSON..=) "ParameterNameValues" Prelude.<$> parameterNameValues]))+instance Property "Description" ParameterGroup where+  type PropertyType "Description" ParameterGroup = Value Prelude.Text+  set newValue ParameterGroup {..}+    = ParameterGroup {description = Prelude.pure newValue, ..}+instance Property "ParameterGroupName" ParameterGroup where+  type PropertyType "ParameterGroupName" ParameterGroup = Value Prelude.Text+  set newValue ParameterGroup {..}+    = ParameterGroup {parameterGroupName = Prelude.pure newValue, ..}+instance Property "ParameterNameValues" ParameterGroup where+  type PropertyType "ParameterNameValues" ParameterGroup = JSON.Object+  set newValue ParameterGroup {..}+    = ParameterGroup {parameterNameValues = Prelude.pure newValue, ..}
+ gen/Stratosphere/DAX/SubnetGroup.hs view
@@ -0,0 +1,54 @@+module Stratosphere.DAX.SubnetGroup (+        SubnetGroup(..), mkSubnetGroup+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import Stratosphere.ResourceProperties+import Stratosphere.Value+data SubnetGroup+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html>+    SubnetGroup {haddock_workaround_ :: (),+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html#cfn-dax-subnetgroup-description>+                 description :: (Prelude.Maybe (Value Prelude.Text)),+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html#cfn-dax-subnetgroup-subnetgroupname>+                 subnetGroupName :: (Prelude.Maybe (Value Prelude.Text)),+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html#cfn-dax-subnetgroup-subnetids>+                 subnetIds :: (ValueList Prelude.Text)}+  deriving stock (Prelude.Eq, Prelude.Show)+mkSubnetGroup :: ValueList Prelude.Text -> SubnetGroup+mkSubnetGroup subnetIds+  = SubnetGroup+      {haddock_workaround_ = (), subnetIds = subnetIds,+       description = Prelude.Nothing, subnetGroupName = Prelude.Nothing}+instance ToResourceProperties SubnetGroup where+  toResourceProperties SubnetGroup {..}+    = ResourceProperties+        {awsType = "AWS::DAX::SubnetGroup", supportsTags = Prelude.False,+         properties = Prelude.fromList+                        ((Prelude.<>)+                           ["SubnetIds" JSON..= subnetIds]+                           (Prelude.catMaybes+                              [(JSON..=) "Description" Prelude.<$> description,+                               (JSON..=) "SubnetGroupName" Prelude.<$> subnetGroupName]))}+instance JSON.ToJSON SubnetGroup where+  toJSON SubnetGroup {..}+    = JSON.object+        (Prelude.fromList+           ((Prelude.<>)+              ["SubnetIds" JSON..= subnetIds]+              (Prelude.catMaybes+                 [(JSON..=) "Description" Prelude.<$> description,+                  (JSON..=) "SubnetGroupName" Prelude.<$> subnetGroupName])))+instance Property "Description" SubnetGroup where+  type PropertyType "Description" SubnetGroup = Value Prelude.Text+  set newValue SubnetGroup {..}+    = SubnetGroup {description = Prelude.pure newValue, ..}+instance Property "SubnetGroupName" SubnetGroup where+  type PropertyType "SubnetGroupName" SubnetGroup = Value Prelude.Text+  set newValue SubnetGroup {..}+    = SubnetGroup {subnetGroupName = Prelude.pure newValue, ..}+instance Property "SubnetIds" SubnetGroup where+  type PropertyType "SubnetIds" SubnetGroup = ValueList Prelude.Text+  set newValue SubnetGroup {..}+    = SubnetGroup {subnetIds = newValue, ..}
+ stratosphere-dax.cabal view
@@ -0,0 +1,76 @@+cabal-version: 1.12++-- This file has been generated from package.yaml by hpack version 0.38.2.+--+-- see: https://github.com/sol/hpack++name:           stratosphere-dax+version:        1.0.0+synopsis:       Stratosphere integration for AWS DAX.+description:    Integration into stratosphere to generate resources and properties for AWS DAX+category:       AWS, Cloud, DAX+stability:      experimental+homepage:       https://github.com/mbj/stratosphere#readme+bug-reports:    https://github.com/mbj/stratosphere/issues+maintainer:     Markus Schirp+license:        MIT+license-file:   LICENSE.md+build-type:     Simple++source-repository head+  type: git+  location: https://github.com/mbj/stratosphere++flag development+  description: Run GHC with development flags+  manual: True+  default: False++library+  exposed-modules:+      Stratosphere.DAX.Cluster+      Stratosphere.DAX.Cluster.SSESpecificationProperty+      Stratosphere.DAX.ParameterGroup+      Stratosphere.DAX.SubnetGroup+  other-modules:+      Paths_stratosphere_dax+  hs-source-dirs:+      gen+  default-extensions:+      DataKinds+      DeriveGeneric+      DerivingStrategies+      DerivingVia+      DuplicateRecordFields+      FlexibleContexts+      FlexibleInstances+      GADTs+      GeneralizedNewtypeDeriving+      InstanceSigs+      LambdaCase+      MultiParamTypeClasses+      NoFieldSelectors+      NoImplicitPrelude+      NumericUnderscores+      OverloadedLists+      OverloadedRecordDot+      OverloadedStrings+      PolyKinds+      RecordWildCards+      ScopedTypeVariables+      StandaloneDeriving+      Strict+      TemplateHaskell+      TupleSections+      TypeApplications+      TypeFamilies+  ghc-options: -Wall -Wcompat -Widentities -Wimplicit-prelude -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-local-signatures -Wmissing-signatures -Wmonomorphism-restriction -Wredundant-constraints -fhide-source-paths -funbox-strict-fields -optP-Wno-nonportable-include-path -Wno-unused-imports+  build-depends:+      aeson ==2.*+    , base >=4.8 && <4.22+    , stratosphere ==1.0.0+  default-language: Haskell2010+  if flag(development)+    ghc-options: -Werror+  else+    ghc-options: -Wwarn