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