module Stratosphere.CloudFront.KeyGroup (
        module Exports, KeyGroup(..), mkKeyGroup
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.CloudFront.KeyGroup.KeyGroupConfigProperty as Exports
import Stratosphere.ResourceProperties
data KeyGroup
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-keygroup.html>
    KeyGroup {KeyGroup -> ()
haddock_workaround_ :: (),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-keygroup.html#cfn-cloudfront-keygroup-keygroupconfig>
              KeyGroup -> KeyGroupConfigProperty
keyGroupConfig :: KeyGroupConfigProperty}
  deriving stock (KeyGroup -> KeyGroup -> Bool
(KeyGroup -> KeyGroup -> Bool)
-> (KeyGroup -> KeyGroup -> Bool) -> Eq KeyGroup
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: KeyGroup -> KeyGroup -> Bool
== :: KeyGroup -> KeyGroup -> Bool
$c/= :: KeyGroup -> KeyGroup -> Bool
/= :: KeyGroup -> KeyGroup -> Bool
Prelude.Eq, Int -> KeyGroup -> ShowS
[KeyGroup] -> ShowS
KeyGroup -> String
(Int -> KeyGroup -> ShowS)
-> (KeyGroup -> String) -> ([KeyGroup] -> ShowS) -> Show KeyGroup
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> KeyGroup -> ShowS
showsPrec :: Int -> KeyGroup -> ShowS
$cshow :: KeyGroup -> String
show :: KeyGroup -> String
$cshowList :: [KeyGroup] -> ShowS
showList :: [KeyGroup] -> ShowS
Prelude.Show)
mkKeyGroup :: KeyGroupConfigProperty -> KeyGroup
mkKeyGroup :: KeyGroupConfigProperty -> KeyGroup
mkKeyGroup KeyGroupConfigProperty
keyGroupConfig
  = KeyGroup
      {haddock_workaround_ :: ()
haddock_workaround_ = (), keyGroupConfig :: KeyGroupConfigProperty
keyGroupConfig = KeyGroupConfigProperty
keyGroupConfig}
instance ToResourceProperties KeyGroup where
  toResourceProperties :: KeyGroup -> ResourceProperties
toResourceProperties KeyGroup {()
KeyGroupConfigProperty
haddock_workaround_ :: KeyGroup -> ()
keyGroupConfig :: KeyGroup -> KeyGroupConfigProperty
haddock_workaround_ :: ()
keyGroupConfig :: KeyGroupConfigProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::CloudFront::KeyGroup",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"KeyGroupConfig" Key -> KeyGroupConfigProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= KeyGroupConfigProperty
keyGroupConfig]}
instance JSON.ToJSON KeyGroup where
  toJSON :: KeyGroup -> Value
toJSON KeyGroup {()
KeyGroupConfigProperty
haddock_workaround_ :: KeyGroup -> ()
keyGroupConfig :: KeyGroup -> KeyGroupConfigProperty
haddock_workaround_ :: ()
keyGroupConfig :: KeyGroupConfigProperty
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"KeyGroupConfig" Key -> KeyGroupConfigProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= KeyGroupConfigProperty
keyGroupConfig]
instance Property "KeyGroupConfig" KeyGroup where
  type PropertyType "KeyGroupConfig" KeyGroup = KeyGroupConfigProperty
  set :: PropertyType "KeyGroupConfig" KeyGroup -> KeyGroup -> KeyGroup
set PropertyType "KeyGroupConfig" KeyGroup
newValue KeyGroup {()
KeyGroupConfigProperty
haddock_workaround_ :: KeyGroup -> ()
keyGroupConfig :: KeyGroup -> KeyGroupConfigProperty
haddock_workaround_ :: ()
keyGroupConfig :: KeyGroupConfigProperty
..}
    = KeyGroup {keyGroupConfig :: KeyGroupConfigProperty
keyGroupConfig = PropertyType "KeyGroupConfig" KeyGroup
KeyGroupConfigProperty
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}