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