module Stratosphere.CloudFront.Distribution.StatusCodesProperty (
        StatusCodesProperty(..), mkStatusCodesProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data StatusCodesProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-statuscodes.html>
    StatusCodesProperty {StatusCodesProperty -> ()
haddock_workaround_ :: (),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-statuscodes.html#cfn-cloudfront-distribution-statuscodes-items>
                         StatusCodesProperty -> ValueList Integer
items :: (ValueList Prelude.Integer),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-statuscodes.html#cfn-cloudfront-distribution-statuscodes-quantity>
                         StatusCodesProperty -> Value Integer
quantity :: (Value Prelude.Integer)}
  deriving stock (StatusCodesProperty -> StatusCodesProperty -> Bool
(StatusCodesProperty -> StatusCodesProperty -> Bool)
-> (StatusCodesProperty -> StatusCodesProperty -> Bool)
-> Eq StatusCodesProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: StatusCodesProperty -> StatusCodesProperty -> Bool
== :: StatusCodesProperty -> StatusCodesProperty -> Bool
$c/= :: StatusCodesProperty -> StatusCodesProperty -> Bool
/= :: StatusCodesProperty -> StatusCodesProperty -> Bool
Prelude.Eq, Int -> StatusCodesProperty -> ShowS
[StatusCodesProperty] -> ShowS
StatusCodesProperty -> String
(Int -> StatusCodesProperty -> ShowS)
-> (StatusCodesProperty -> String)
-> ([StatusCodesProperty] -> ShowS)
-> Show StatusCodesProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> StatusCodesProperty -> ShowS
showsPrec :: Int -> StatusCodesProperty -> ShowS
$cshow :: StatusCodesProperty -> String
show :: StatusCodesProperty -> String
$cshowList :: [StatusCodesProperty] -> ShowS
showList :: [StatusCodesProperty] -> ShowS
Prelude.Show)
mkStatusCodesProperty ::
  ValueList Prelude.Integer
  -> Value Prelude.Integer -> StatusCodesProperty
mkStatusCodesProperty :: ValueList Integer -> Value Integer -> StatusCodesProperty
mkStatusCodesProperty ValueList Integer
items Value Integer
quantity
  = StatusCodesProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), items :: ValueList Integer
items = ValueList Integer
items, quantity :: Value Integer
quantity = Value Integer
quantity}
instance ToResourceProperties StatusCodesProperty where
  toResourceProperties :: StatusCodesProperty -> ResourceProperties
toResourceProperties StatusCodesProperty {()
ValueList Integer
Value Integer
haddock_workaround_ :: StatusCodesProperty -> ()
items :: StatusCodesProperty -> ValueList Integer
quantity :: StatusCodesProperty -> Value Integer
haddock_workaround_ :: ()
items :: ValueList Integer
quantity :: Value Integer
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::CloudFront::Distribution.StatusCodes",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Items" Key -> ValueList Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ValueList Integer
items, Key
"Quantity" Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Integer
quantity]}
instance JSON.ToJSON StatusCodesProperty where
  toJSON :: StatusCodesProperty -> Value
toJSON StatusCodesProperty {()
ValueList Integer
Value Integer
haddock_workaround_ :: StatusCodesProperty -> ()
items :: StatusCodesProperty -> ValueList Integer
quantity :: StatusCodesProperty -> Value Integer
haddock_workaround_ :: ()
items :: ValueList Integer
quantity :: Value Integer
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"Items" Key -> ValueList Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ValueList Integer
items, Key
"Quantity" Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Integer
quantity]
instance Property "Items" StatusCodesProperty where
  type PropertyType "Items" StatusCodesProperty = ValueList Prelude.Integer
  set :: PropertyType "Items" StatusCodesProperty
-> StatusCodesProperty -> StatusCodesProperty
set PropertyType "Items" StatusCodesProperty
newValue StatusCodesProperty {()
ValueList Integer
Value Integer
haddock_workaround_ :: StatusCodesProperty -> ()
items :: StatusCodesProperty -> ValueList Integer
quantity :: StatusCodesProperty -> Value Integer
haddock_workaround_ :: ()
items :: ValueList Integer
quantity :: Value Integer
..}
    = StatusCodesProperty {items :: ValueList Integer
items = PropertyType "Items" StatusCodesProperty
ValueList Integer
newValue, ()
Value Integer
haddock_workaround_ :: ()
quantity :: Value Integer
haddock_workaround_ :: ()
quantity :: Value Integer
..}
instance Property "Quantity" StatusCodesProperty where
  type PropertyType "Quantity" StatusCodesProperty = Value Prelude.Integer
  set :: PropertyType "Quantity" StatusCodesProperty
-> StatusCodesProperty -> StatusCodesProperty
set PropertyType "Quantity" StatusCodesProperty
newValue StatusCodesProperty {()
ValueList Integer
Value Integer
haddock_workaround_ :: StatusCodesProperty -> ()
items :: StatusCodesProperty -> ValueList Integer
quantity :: StatusCodesProperty -> Value Integer
haddock_workaround_ :: ()
items :: ValueList Integer
quantity :: Value Integer
..}
    = StatusCodesProperty {quantity :: Value Integer
quantity = PropertyType "Quantity" StatusCodesProperty
Value Integer
newValue, ()
ValueList Integer
haddock_workaround_ :: ()
items :: ValueList Integer
haddock_workaround_ :: ()
items :: ValueList Integer
..}