packages feed

stratosphere-connect-1.0.0: gen/Stratosphere/Connect/UserHierarchyStructure/UserHierarchyStructureProperty.hs

module Stratosphere.Connect.UserHierarchyStructure.UserHierarchyStructureProperty (
        module Exports, UserHierarchyStructureProperty(..),
        mkUserHierarchyStructureProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Connect.UserHierarchyStructure.LevelFiveProperty as Exports
import {-# SOURCE #-} Stratosphere.Connect.UserHierarchyStructure.LevelFourProperty as Exports
import {-# SOURCE #-} Stratosphere.Connect.UserHierarchyStructure.LevelOneProperty as Exports
import {-# SOURCE #-} Stratosphere.Connect.UserHierarchyStructure.LevelThreeProperty as Exports
import {-# SOURCE #-} Stratosphere.Connect.UserHierarchyStructure.LevelTwoProperty as Exports
import Stratosphere.ResourceProperties
data UserHierarchyStructureProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-userhierarchystructure-userhierarchystructure.html>
    UserHierarchyStructureProperty {haddock_workaround_ :: (),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-userhierarchystructure-userhierarchystructure.html#cfn-connect-userhierarchystructure-userhierarchystructure-levelfive>
                                    levelFive :: (Prelude.Maybe LevelFiveProperty),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-userhierarchystructure-userhierarchystructure.html#cfn-connect-userhierarchystructure-userhierarchystructure-levelfour>
                                    levelFour :: (Prelude.Maybe LevelFourProperty),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-userhierarchystructure-userhierarchystructure.html#cfn-connect-userhierarchystructure-userhierarchystructure-levelone>
                                    levelOne :: (Prelude.Maybe LevelOneProperty),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-userhierarchystructure-userhierarchystructure.html#cfn-connect-userhierarchystructure-userhierarchystructure-levelthree>
                                    levelThree :: (Prelude.Maybe LevelThreeProperty),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-userhierarchystructure-userhierarchystructure.html#cfn-connect-userhierarchystructure-userhierarchystructure-leveltwo>
                                    levelTwo :: (Prelude.Maybe LevelTwoProperty)}
  deriving stock (Prelude.Eq, Prelude.Show)
mkUserHierarchyStructureProperty :: UserHierarchyStructureProperty
mkUserHierarchyStructureProperty
  = UserHierarchyStructureProperty
      {haddock_workaround_ = (), levelFive = Prelude.Nothing,
       levelFour = Prelude.Nothing, levelOne = Prelude.Nothing,
       levelThree = Prelude.Nothing, levelTwo = Prelude.Nothing}
instance ToResourceProperties UserHierarchyStructureProperty where
  toResourceProperties UserHierarchyStructureProperty {..}
    = ResourceProperties
        {awsType = "AWS::Connect::UserHierarchyStructure.UserHierarchyStructure",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        (Prelude.catMaybes
                           [(JSON..=) "LevelFive" Prelude.<$> levelFive,
                            (JSON..=) "LevelFour" Prelude.<$> levelFour,
                            (JSON..=) "LevelOne" Prelude.<$> levelOne,
                            (JSON..=) "LevelThree" Prelude.<$> levelThree,
                            (JSON..=) "LevelTwo" Prelude.<$> levelTwo])}
instance JSON.ToJSON UserHierarchyStructureProperty where
  toJSON UserHierarchyStructureProperty {..}
    = JSON.object
        (Prelude.fromList
           (Prelude.catMaybes
              [(JSON..=) "LevelFive" Prelude.<$> levelFive,
               (JSON..=) "LevelFour" Prelude.<$> levelFour,
               (JSON..=) "LevelOne" Prelude.<$> levelOne,
               (JSON..=) "LevelThree" Prelude.<$> levelThree,
               (JSON..=) "LevelTwo" Prelude.<$> levelTwo]))
instance Property "LevelFive" UserHierarchyStructureProperty where
  type PropertyType "LevelFive" UserHierarchyStructureProperty = LevelFiveProperty
  set newValue UserHierarchyStructureProperty {..}
    = UserHierarchyStructureProperty
        {levelFive = Prelude.pure newValue, ..}
instance Property "LevelFour" UserHierarchyStructureProperty where
  type PropertyType "LevelFour" UserHierarchyStructureProperty = LevelFourProperty
  set newValue UserHierarchyStructureProperty {..}
    = UserHierarchyStructureProperty
        {levelFour = Prelude.pure newValue, ..}
instance Property "LevelOne" UserHierarchyStructureProperty where
  type PropertyType "LevelOne" UserHierarchyStructureProperty = LevelOneProperty
  set newValue UserHierarchyStructureProperty {..}
    = UserHierarchyStructureProperty
        {levelOne = Prelude.pure newValue, ..}
instance Property "LevelThree" UserHierarchyStructureProperty where
  type PropertyType "LevelThree" UserHierarchyStructureProperty = LevelThreeProperty
  set newValue UserHierarchyStructureProperty {..}
    = UserHierarchyStructureProperty
        {levelThree = Prelude.pure newValue, ..}
instance Property "LevelTwo" UserHierarchyStructureProperty where
  type PropertyType "LevelTwo" UserHierarchyStructureProperty = LevelTwoProperty
  set newValue UserHierarchyStructureProperty {..}
    = UserHierarchyStructureProperty
        {levelTwo = Prelude.pure newValue, ..}