stratosphere-0.24.4: EDSL for AWS CloudFormation

Safe HaskellNone
LanguageHaskell2010

Stratosphere.Values

Synopsis

Documentation

data Val a #

This type is a wrapper around any values in a template. A value can be a Literal, a Ref, or an intrinsic function. See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference.html

Constructors

Literal a 
Ref Text 
If Text (Val a) (Val a) 
And (Val Bool) (Val Bool) 
Equals (Val a) (Val a) 
Or (Val Bool) (Val Bool) 
GetAtt Text Text 
Base64 (Val Text) 
Join Text (ValList Text) 
Select Integer (ValList a) 
FindInMap (Val a) (Val a) (Val a)

Map name, top level key, and second level key

ImportValue Text

The account-and-region-unique exported name of the value to import

Sub Text (Maybe (HashMap Text (Val Text)))

Substitution string and optional map of values

Instances
Functor Val # 
Instance details

Defined in Stratosphere.Values

Methods

fmap :: (a -> b) -> Val a -> Val b #

(<$) :: a -> Val b -> Val a #

Eq a => Eq (Val a) # 
Instance details

Defined in Stratosphere.Values

Methods

(==) :: Val a -> Val a -> Bool #

(/=) :: Val a -> Val a -> Bool #

Show a => Show (Val a) # 
Instance details

Defined in Stratosphere.Values

Methods

showsPrec :: Int -> Val a -> ShowS #

show :: Val a -> String #

showList :: [Val a] -> ShowS #

IsString a => IsString (Val a) # 
Instance details

Defined in Stratosphere.Values

Methods

fromString :: String -> Val a #

ToJSON a => ToJSON (Val a) # 
Instance details

Defined in Stratosphere.Values

Methods

toJSON :: Val a -> Value #

toEncoding :: Val a -> Encoding #

toJSONList :: [Val a] -> Value #

toEncodingList :: [Val a] -> Encoding #

FromJSON a => FromJSON (Val a) # 
Instance details

Defined in Stratosphere.Values

Methods

parseJSON :: Value -> Parser (Val a) #

parseJSONList :: Value -> Parser [Val a] #

sub :: Text -> Val Text #

Simple version of Sub without a map of values.

data ValList a #

ValList is like Val, except it is used in place of lists of Vals in templates. For example, if you have a parameter called SubnetIds of type ListAWS::EC2::Subnet::Id then, you can use RefList SubnetIds to reference it.

Instances
Functor ValList # 
Instance details

Defined in Stratosphere.Values

Methods

fmap :: (a -> b) -> ValList a -> ValList b #

(<$) :: a -> ValList b -> ValList a #

IsList (ValList a) # 
Instance details

Defined in Stratosphere.Values

Associated Types

type Item (ValList a) :: * #

Methods

fromList :: [Item (ValList a)] -> ValList a #

fromListN :: Int -> [Item (ValList a)] -> ValList a #

toList :: ValList a -> [Item (ValList a)] #

Eq a => Eq (ValList a) # 
Instance details

Defined in Stratosphere.Values

Methods

(==) :: ValList a -> ValList a -> Bool #

(/=) :: ValList a -> ValList a -> Bool #

Show a => Show (ValList a) # 
Instance details

Defined in Stratosphere.Values

Methods

showsPrec :: Int -> ValList a -> ShowS #

show :: ValList a -> String #

showList :: [ValList a] -> ShowS #

ToJSON a => ToJSON (ValList a) # 
Instance details

Defined in Stratosphere.Values

FromJSON a => FromJSON (ValList a) # 
Instance details

Defined in Stratosphere.Values

type Item (ValList a) # 
Instance details

Defined in Stratosphere.Values

type Item (ValList a) = Val a

newtype Integer' #

We need to wrap integers so we can override the Aeson type-classes. This is necessary because CloudFront made the silly decision to represent numbers as JSON strings.

Constructors

Integer' 

Fields

newtype Bool' #

We need to wrap Bools for the same reason we need to wrap Ints.

Constructors

Bool' 

Fields

Instances
Bounded Bool' # 
Instance details

Defined in Stratosphere.Values

Enum Bool' # 
Instance details

Defined in Stratosphere.Values

Eq Bool' # 
Instance details

Defined in Stratosphere.Values

Methods

(==) :: Bool' -> Bool' -> Bool #

(/=) :: Bool' -> Bool' -> Bool #

Ord Bool' # 
Instance details

Defined in Stratosphere.Values

Methods

compare :: Bool' -> Bool' -> Ordering #

(<) :: Bool' -> Bool' -> Bool #

(<=) :: Bool' -> Bool' -> Bool #

(>) :: Bool' -> Bool' -> Bool #

(>=) :: Bool' -> Bool' -> Bool #

max :: Bool' -> Bool' -> Bool' #

min :: Bool' -> Bool' -> Bool' #

Show Bool' # 
Instance details

Defined in Stratosphere.Values

Methods

showsPrec :: Int -> Bool' -> ShowS #

show :: Bool' -> String #

showList :: [Bool'] -> ShowS #

ToJSON Bool' # 
Instance details

Defined in Stratosphere.Values

FromJSON Bool' # 
Instance details

Defined in Stratosphere.Values

newtype Double' #

We need to wrap Doubles for the same reason we need to wrap Ints.

Constructors

Double' 

Fields

Instances
Eq Double' # 
Instance details

Defined in Stratosphere.Values

Methods

(==) :: Double' -> Double' -> Bool #

(/=) :: Double' -> Double' -> Bool #

Num Double' # 
Instance details

Defined in Stratosphere.Values

Show Double' # 
Instance details

Defined in Stratosphere.Values

ToJSON Double' # 
Instance details

Defined in Stratosphere.Values

FromJSON Double' # 
Instance details

Defined in Stratosphere.Values

class ToRef a b where #

Class used to create a Ref from another type.

Minimal complete definition

toRef

Methods

toRef :: a -> Val b #

Instances
ToRef Resource b # 
Instance details

Defined in Stratosphere.Resources

Methods

toRef :: Resource -> Val b #

ToRef Parameter b # 
Instance details

Defined in Stratosphere.Parameters

Methods

toRef :: Parameter -> Val b #

ToRef Output b # 
Instance details

Defined in Stratosphere.Outputs

Methods

toRef :: Output -> Val b #