packages feed

stratosphere-controltower (empty) → 1.0.0

raw patch · 9 files changed

+399/−0 lines, 9 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/ControlTower/EnabledBaseline.hs view
@@ -0,0 +1,80 @@+module Stratosphere.ControlTower.EnabledBaseline (+        module Exports, EnabledBaseline(..), mkEnabledBaseline+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import {-# SOURCE #-} Stratosphere.ControlTower.EnabledBaseline.ParameterProperty as Exports+import Stratosphere.ResourceProperties+import Stratosphere.Tag+import Stratosphere.Value+data EnabledBaseline+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-enabledbaseline.html>+    EnabledBaseline {haddock_workaround_ :: (),+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-enabledbaseline.html#cfn-controltower-enabledbaseline-baselineidentifier>+                     baselineIdentifier :: (Value Prelude.Text),+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-enabledbaseline.html#cfn-controltower-enabledbaseline-baselineversion>+                     baselineVersion :: (Value Prelude.Text),+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-enabledbaseline.html#cfn-controltower-enabledbaseline-parameters>+                     parameters :: (Prelude.Maybe [ParameterProperty]),+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-enabledbaseline.html#cfn-controltower-enabledbaseline-tags>+                     tags :: (Prelude.Maybe [Tag]),+                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-enabledbaseline.html#cfn-controltower-enabledbaseline-targetidentifier>+                     targetIdentifier :: (Value Prelude.Text)}+  deriving stock (Prelude.Eq, Prelude.Show)+mkEnabledBaseline ::+  Value Prelude.Text+  -> Value Prelude.Text -> Value Prelude.Text -> EnabledBaseline+mkEnabledBaseline+  baselineIdentifier+  baselineVersion+  targetIdentifier+  = EnabledBaseline+      {haddock_workaround_ = (), baselineIdentifier = baselineIdentifier,+       baselineVersion = baselineVersion,+       targetIdentifier = targetIdentifier, parameters = Prelude.Nothing,+       tags = Prelude.Nothing}+instance ToResourceProperties EnabledBaseline where+  toResourceProperties EnabledBaseline {..}+    = ResourceProperties+        {awsType = "AWS::ControlTower::EnabledBaseline",+         supportsTags = Prelude.True,+         properties = Prelude.fromList+                        ((Prelude.<>)+                           ["BaselineIdentifier" JSON..= baselineIdentifier,+                            "BaselineVersion" JSON..= baselineVersion,+                            "TargetIdentifier" JSON..= targetIdentifier]+                           (Prelude.catMaybes+                              [(JSON..=) "Parameters" Prelude.<$> parameters,+                               (JSON..=) "Tags" Prelude.<$> tags]))}+instance JSON.ToJSON EnabledBaseline where+  toJSON EnabledBaseline {..}+    = JSON.object+        (Prelude.fromList+           ((Prelude.<>)+              ["BaselineIdentifier" JSON..= baselineIdentifier,+               "BaselineVersion" JSON..= baselineVersion,+               "TargetIdentifier" JSON..= targetIdentifier]+              (Prelude.catMaybes+                 [(JSON..=) "Parameters" Prelude.<$> parameters,+                  (JSON..=) "Tags" Prelude.<$> tags])))+instance Property "BaselineIdentifier" EnabledBaseline where+  type PropertyType "BaselineIdentifier" EnabledBaseline = Value Prelude.Text+  set newValue EnabledBaseline {..}+    = EnabledBaseline {baselineIdentifier = newValue, ..}+instance Property "BaselineVersion" EnabledBaseline where+  type PropertyType "BaselineVersion" EnabledBaseline = Value Prelude.Text+  set newValue EnabledBaseline {..}+    = EnabledBaseline {baselineVersion = newValue, ..}+instance Property "Parameters" EnabledBaseline where+  type PropertyType "Parameters" EnabledBaseline = [ParameterProperty]+  set newValue EnabledBaseline {..}+    = EnabledBaseline {parameters = Prelude.pure newValue, ..}+instance Property "Tags" EnabledBaseline where+  type PropertyType "Tags" EnabledBaseline = [Tag]+  set newValue EnabledBaseline {..}+    = EnabledBaseline {tags = Prelude.pure newValue, ..}+instance Property "TargetIdentifier" EnabledBaseline where+  type PropertyType "TargetIdentifier" EnabledBaseline = Value Prelude.Text+  set newValue EnabledBaseline {..}+    = EnabledBaseline {targetIdentifier = newValue, ..}
+ gen/Stratosphere/ControlTower/EnabledBaseline/ParameterProperty.hs view
@@ -0,0 +1,45 @@+module Stratosphere.ControlTower.EnabledBaseline.ParameterProperty (+        ParameterProperty(..), mkParameterProperty+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import Stratosphere.ResourceProperties+import Stratosphere.Value+data ParameterProperty+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-controltower-enabledbaseline-parameter.html>+    ParameterProperty {haddock_workaround_ :: (),+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-controltower-enabledbaseline-parameter.html#cfn-controltower-enabledbaseline-parameter-key>+                       key :: (Prelude.Maybe (Value Prelude.Text)),+                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-controltower-enabledbaseline-parameter.html#cfn-controltower-enabledbaseline-parameter-value>+                       value :: (Prelude.Maybe JSON.Object)}+  deriving stock (Prelude.Eq, Prelude.Show)+mkParameterProperty :: ParameterProperty+mkParameterProperty+  = ParameterProperty+      {haddock_workaround_ = (), key = Prelude.Nothing,+       value = Prelude.Nothing}+instance ToResourceProperties ParameterProperty where+  toResourceProperties ParameterProperty {..}+    = ResourceProperties+        {awsType = "AWS::ControlTower::EnabledBaseline.Parameter",+         supportsTags = Prelude.False,+         properties = Prelude.fromList+                        (Prelude.catMaybes+                           [(JSON..=) "Key" Prelude.<$> key,+                            (JSON..=) "Value" Prelude.<$> value])}+instance JSON.ToJSON ParameterProperty where+  toJSON ParameterProperty {..}+    = JSON.object+        (Prelude.fromList+           (Prelude.catMaybes+              [(JSON..=) "Key" Prelude.<$> key,+               (JSON..=) "Value" Prelude.<$> value]))+instance Property "Key" ParameterProperty where+  type PropertyType "Key" ParameterProperty = Value Prelude.Text+  set newValue ParameterProperty {..}+    = ParameterProperty {key = Prelude.pure newValue, ..}+instance Property "Value" ParameterProperty where+  type PropertyType "Value" ParameterProperty = JSON.Object+  set newValue ParameterProperty {..}+    = ParameterProperty {value = Prelude.pure newValue, ..}
+ gen/Stratosphere/ControlTower/EnabledBaseline/ParameterProperty.hs-boot view
@@ -0,0 +1,9 @@+module Stratosphere.ControlTower.EnabledBaseline.ParameterProperty where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.ResourceProperties+data ParameterProperty :: Prelude.Type+instance ToResourceProperties ParameterProperty+instance Prelude.Eq ParameterProperty+instance Prelude.Show ParameterProperty+instance JSON.ToJSON ParameterProperty
+ gen/Stratosphere/ControlTower/EnabledControl.hs view
@@ -0,0 +1,67 @@+module Stratosphere.ControlTower.EnabledControl (+        module Exports, EnabledControl(..), mkEnabledControl+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import {-# SOURCE #-} Stratosphere.ControlTower.EnabledControl.EnabledControlParameterProperty as Exports+import Stratosphere.ResourceProperties+import Stratosphere.Tag+import Stratosphere.Value+data EnabledControl+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-enabledcontrol.html>+    EnabledControl {haddock_workaround_ :: (),+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-enabledcontrol.html#cfn-controltower-enabledcontrol-controlidentifier>+                    controlIdentifier :: (Value Prelude.Text),+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-enabledcontrol.html#cfn-controltower-enabledcontrol-parameters>+                    parameters :: (Prelude.Maybe [EnabledControlParameterProperty]),+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-enabledcontrol.html#cfn-controltower-enabledcontrol-tags>+                    tags :: (Prelude.Maybe [Tag]),+                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-enabledcontrol.html#cfn-controltower-enabledcontrol-targetidentifier>+                    targetIdentifier :: (Value Prelude.Text)}+  deriving stock (Prelude.Eq, Prelude.Show)+mkEnabledControl ::+  Value Prelude.Text -> Value Prelude.Text -> EnabledControl+mkEnabledControl controlIdentifier targetIdentifier+  = EnabledControl+      {haddock_workaround_ = (), controlIdentifier = controlIdentifier,+       targetIdentifier = targetIdentifier, parameters = Prelude.Nothing,+       tags = Prelude.Nothing}+instance ToResourceProperties EnabledControl where+  toResourceProperties EnabledControl {..}+    = ResourceProperties+        {awsType = "AWS::ControlTower::EnabledControl",+         supportsTags = Prelude.True,+         properties = Prelude.fromList+                        ((Prelude.<>)+                           ["ControlIdentifier" JSON..= controlIdentifier,+                            "TargetIdentifier" JSON..= targetIdentifier]+                           (Prelude.catMaybes+                              [(JSON..=) "Parameters" Prelude.<$> parameters,+                               (JSON..=) "Tags" Prelude.<$> tags]))}+instance JSON.ToJSON EnabledControl where+  toJSON EnabledControl {..}+    = JSON.object+        (Prelude.fromList+           ((Prelude.<>)+              ["ControlIdentifier" JSON..= controlIdentifier,+               "TargetIdentifier" JSON..= targetIdentifier]+              (Prelude.catMaybes+                 [(JSON..=) "Parameters" Prelude.<$> parameters,+                  (JSON..=) "Tags" Prelude.<$> tags])))+instance Property "ControlIdentifier" EnabledControl where+  type PropertyType "ControlIdentifier" EnabledControl = Value Prelude.Text+  set newValue EnabledControl {..}+    = EnabledControl {controlIdentifier = newValue, ..}+instance Property "Parameters" EnabledControl where+  type PropertyType "Parameters" EnabledControl = [EnabledControlParameterProperty]+  set newValue EnabledControl {..}+    = EnabledControl {parameters = Prelude.pure newValue, ..}+instance Property "Tags" EnabledControl where+  type PropertyType "Tags" EnabledControl = [Tag]+  set newValue EnabledControl {..}+    = EnabledControl {tags = Prelude.pure newValue, ..}+instance Property "TargetIdentifier" EnabledControl where+  type PropertyType "TargetIdentifier" EnabledControl = Value Prelude.Text+  set newValue EnabledControl {..}+    = EnabledControl {targetIdentifier = newValue, ..}
+ gen/Stratosphere/ControlTower/EnabledControl/EnabledControlParameterProperty.hs view
@@ -0,0 +1,40 @@+module Stratosphere.ControlTower.EnabledControl.EnabledControlParameterProperty (+        EnabledControlParameterProperty(..),+        mkEnabledControlParameterProperty+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import Stratosphere.ResourceProperties+import Stratosphere.Value+data EnabledControlParameterProperty+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-controltower-enabledcontrol-enabledcontrolparameter.html>+    EnabledControlParameterProperty {haddock_workaround_ :: (),+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-controltower-enabledcontrol-enabledcontrolparameter.html#cfn-controltower-enabledcontrol-enabledcontrolparameter-key>+                                     key :: (Value Prelude.Text),+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-controltower-enabledcontrol-enabledcontrolparameter.html#cfn-controltower-enabledcontrol-enabledcontrolparameter-value>+                                     value :: JSON.Object}+  deriving stock (Prelude.Eq, Prelude.Show)+mkEnabledControlParameterProperty ::+  Value Prelude.Text+  -> JSON.Object -> EnabledControlParameterProperty+mkEnabledControlParameterProperty key value+  = EnabledControlParameterProperty+      {haddock_workaround_ = (), key = key, value = value}+instance ToResourceProperties EnabledControlParameterProperty where+  toResourceProperties EnabledControlParameterProperty {..}+    = ResourceProperties+        {awsType = "AWS::ControlTower::EnabledControl.EnabledControlParameter",+         supportsTags = Prelude.False,+         properties = ["Key" JSON..= key, "Value" JSON..= value]}+instance JSON.ToJSON EnabledControlParameterProperty where+  toJSON EnabledControlParameterProperty {..}+    = JSON.object ["Key" JSON..= key, "Value" JSON..= value]+instance Property "Key" EnabledControlParameterProperty where+  type PropertyType "Key" EnabledControlParameterProperty = Value Prelude.Text+  set newValue EnabledControlParameterProperty {..}+    = EnabledControlParameterProperty {key = newValue, ..}+instance Property "Value" EnabledControlParameterProperty where+  type PropertyType "Value" EnabledControlParameterProperty = JSON.Object+  set newValue EnabledControlParameterProperty {..}+    = EnabledControlParameterProperty {value = newValue, ..}
+ gen/Stratosphere/ControlTower/EnabledControl/EnabledControlParameterProperty.hs-boot view
@@ -0,0 +1,9 @@+module Stratosphere.ControlTower.EnabledControl.EnabledControlParameterProperty where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.ResourceProperties+data EnabledControlParameterProperty :: Prelude.Type+instance ToResourceProperties EnabledControlParameterProperty+instance Prelude.Eq EnabledControlParameterProperty+instance Prelude.Show EnabledControlParameterProperty+instance JSON.ToJSON EnabledControlParameterProperty
+ gen/Stratosphere/ControlTower/LandingZone.hs view
@@ -0,0 +1,52 @@+module Stratosphere.ControlTower.LandingZone (+        LandingZone(..), mkLandingZone+    ) where+import qualified Data.Aeson as JSON+import qualified Stratosphere.Prelude as Prelude+import Stratosphere.Property+import Stratosphere.ResourceProperties+import Stratosphere.Tag+import Stratosphere.Value+data LandingZone+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-landingzone.html>+    LandingZone {haddock_workaround_ :: (),+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-landingzone.html#cfn-controltower-landingzone-manifest>+                 manifest :: JSON.Object,+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-landingzone.html#cfn-controltower-landingzone-tags>+                 tags :: (Prelude.Maybe [Tag]),+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-landingzone.html#cfn-controltower-landingzone-version>+                 version :: (Value Prelude.Text)}+  deriving stock (Prelude.Eq, Prelude.Show)+mkLandingZone :: JSON.Object -> Value Prelude.Text -> LandingZone+mkLandingZone manifest version+  = LandingZone+      {haddock_workaround_ = (), manifest = manifest, version = version,+       tags = Prelude.Nothing}+instance ToResourceProperties LandingZone where+  toResourceProperties LandingZone {..}+    = ResourceProperties+        {awsType = "AWS::ControlTower::LandingZone",+         supportsTags = Prelude.True,+         properties = Prelude.fromList+                        ((Prelude.<>)+                           ["Manifest" JSON..= manifest, "Version" JSON..= version]+                           (Prelude.catMaybes [(JSON..=) "Tags" Prelude.<$> tags]))}+instance JSON.ToJSON LandingZone where+  toJSON LandingZone {..}+    = JSON.object+        (Prelude.fromList+           ((Prelude.<>)+              ["Manifest" JSON..= manifest, "Version" JSON..= version]+              (Prelude.catMaybes [(JSON..=) "Tags" Prelude.<$> tags])))+instance Property "Manifest" LandingZone where+  type PropertyType "Manifest" LandingZone = JSON.Object+  set newValue LandingZone {..}+    = LandingZone {manifest = newValue, ..}+instance Property "Tags" LandingZone where+  type PropertyType "Tags" LandingZone = [Tag]+  set newValue LandingZone {..}+    = LandingZone {tags = Prelude.pure newValue, ..}+instance Property "Version" LandingZone where+  type PropertyType "Version" LandingZone = Value Prelude.Text+  set newValue LandingZone {..}+    = LandingZone {version = newValue, ..}
+ stratosphere-controltower.cabal view
@@ -0,0 +1,77 @@+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-controltower+version:        1.0.0+synopsis:       Stratosphere integration for AWS ControlTower.+description:    Integration into stratosphere to generate resources and properties for AWS ControlTower+category:       AWS, Cloud, ControlTower+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.ControlTower.EnabledBaseline+      Stratosphere.ControlTower.EnabledBaseline.ParameterProperty+      Stratosphere.ControlTower.EnabledControl+      Stratosphere.ControlTower.EnabledControl.EnabledControlParameterProperty+      Stratosphere.ControlTower.LandingZone+  other-modules:+      Paths_stratosphere_controltower+  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