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