module Stratosphere.ResourceProperties ( ResourceProperties(..) , ToResourceProperties(..) , resourcePropertiesJSON ) where import Stratosphere.Prelude import qualified Data.Aeson as JSON import qualified Data.Aeson.Types as JSON data ResourceProperties = ResourceProperties { ResourceProperties -> Text awsType :: Text , ResourceProperties -> Object properties :: JSON.Object , ResourceProperties -> Bool supportsTags :: Bool } deriving (Int -> ResourceProperties -> ShowS [ResourceProperties] -> ShowS ResourceProperties -> String (Int -> ResourceProperties -> ShowS) -> (ResourceProperties -> String) -> ([ResourceProperties] -> ShowS) -> Show ResourceProperties forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> ResourceProperties -> ShowS showsPrec :: Int -> ResourceProperties -> ShowS $cshow :: ResourceProperties -> String show :: ResourceProperties -> String $cshowList :: [ResourceProperties] -> ShowS showList :: [ResourceProperties] -> ShowS Show, ResourceProperties -> ResourceProperties -> Bool (ResourceProperties -> ResourceProperties -> Bool) -> (ResourceProperties -> ResourceProperties -> Bool) -> Eq ResourceProperties forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: ResourceProperties -> ResourceProperties -> Bool == :: ResourceProperties -> ResourceProperties -> Bool $c/= :: ResourceProperties -> ResourceProperties -> Bool /= :: ResourceProperties -> ResourceProperties -> Bool Eq) class ToResourceProperties a where toResourceProperties :: a -> ResourceProperties resourcePropertiesJSON :: ResourceProperties -> [JSON.Pair] resourcePropertiesJSON :: ResourceProperties -> [Pair] resourcePropertiesJSON ResourceProperties{Bool Object Text awsType :: ResourceProperties -> Text properties :: ResourceProperties -> Object supportsTags :: ResourceProperties -> Bool awsType :: Text properties :: Object supportsTags :: Bool ..} = [ Key "Type" Key -> Text -> Pair forall v. ToJSON v => Key -> v -> Pair forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv .= Text awsType , Key "Properties" Key -> Object -> Pair forall v. ToJSON v => Key -> v -> Pair forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv .= Object properties ]