module Stratosphere.AppMesh.VirtualNode.OutlierDetectionProperty (
        module Exports, OutlierDetectionProperty(..),
        mkOutlierDetectionProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.AppMesh.VirtualNode.DurationProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data OutlierDetectionProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-outlierdetection.html>
    OutlierDetectionProperty {OutlierDetectionProperty -> ()
haddock_workaround_ :: (),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-outlierdetection.html#cfn-appmesh-virtualnode-outlierdetection-baseejectionduration>
                              OutlierDetectionProperty -> DurationProperty
baseEjectionDuration :: DurationProperty,
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-outlierdetection.html#cfn-appmesh-virtualnode-outlierdetection-interval>
                              OutlierDetectionProperty -> DurationProperty
interval :: DurationProperty,
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-outlierdetection.html#cfn-appmesh-virtualnode-outlierdetection-maxejectionpercent>
                              OutlierDetectionProperty -> Value Integer
maxEjectionPercent :: (Value Prelude.Integer),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-outlierdetection.html#cfn-appmesh-virtualnode-outlierdetection-maxservererrors>
                              OutlierDetectionProperty -> Value Integer
maxServerErrors :: (Value Prelude.Integer)}
  deriving stock (OutlierDetectionProperty -> OutlierDetectionProperty -> Bool
(OutlierDetectionProperty -> OutlierDetectionProperty -> Bool)
-> (OutlierDetectionProperty -> OutlierDetectionProperty -> Bool)
-> Eq OutlierDetectionProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OutlierDetectionProperty -> OutlierDetectionProperty -> Bool
== :: OutlierDetectionProperty -> OutlierDetectionProperty -> Bool
$c/= :: OutlierDetectionProperty -> OutlierDetectionProperty -> Bool
/= :: OutlierDetectionProperty -> OutlierDetectionProperty -> Bool
Prelude.Eq, Int -> OutlierDetectionProperty -> ShowS
[OutlierDetectionProperty] -> ShowS
OutlierDetectionProperty -> String
(Int -> OutlierDetectionProperty -> ShowS)
-> (OutlierDetectionProperty -> String)
-> ([OutlierDetectionProperty] -> ShowS)
-> Show OutlierDetectionProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> OutlierDetectionProperty -> ShowS
showsPrec :: Int -> OutlierDetectionProperty -> ShowS
$cshow :: OutlierDetectionProperty -> String
show :: OutlierDetectionProperty -> String
$cshowList :: [OutlierDetectionProperty] -> ShowS
showList :: [OutlierDetectionProperty] -> ShowS
Prelude.Show)
mkOutlierDetectionProperty ::
  DurationProperty
  -> DurationProperty
     -> Value Prelude.Integer
        -> Value Prelude.Integer -> OutlierDetectionProperty
mkOutlierDetectionProperty :: DurationProperty
-> DurationProperty
-> Value Integer
-> Value Integer
-> OutlierDetectionProperty
mkOutlierDetectionProperty
  DurationProperty
baseEjectionDuration
  DurationProperty
interval
  Value Integer
maxEjectionPercent
  Value Integer
maxServerErrors
  = OutlierDetectionProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (),
       baseEjectionDuration :: DurationProperty
baseEjectionDuration = DurationProperty
baseEjectionDuration, interval :: DurationProperty
interval = DurationProperty
interval,
       maxEjectionPercent :: Value Integer
maxEjectionPercent = Value Integer
maxEjectionPercent,
       maxServerErrors :: Value Integer
maxServerErrors = Value Integer
maxServerErrors}
instance ToResourceProperties OutlierDetectionProperty where
  toResourceProperties :: OutlierDetectionProperty -> ResourceProperties
toResourceProperties OutlierDetectionProperty {()
Value Integer
DurationProperty
haddock_workaround_ :: OutlierDetectionProperty -> ()
baseEjectionDuration :: OutlierDetectionProperty -> DurationProperty
interval :: OutlierDetectionProperty -> DurationProperty
maxEjectionPercent :: OutlierDetectionProperty -> Value Integer
maxServerErrors :: OutlierDetectionProperty -> Value Integer
haddock_workaround_ :: ()
baseEjectionDuration :: DurationProperty
interval :: DurationProperty
maxEjectionPercent :: Value Integer
maxServerErrors :: Value Integer
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::AppMesh::VirtualNode.OutlierDetection",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"BaseEjectionDuration" Key -> DurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= DurationProperty
baseEjectionDuration,
                       Key
"Interval" Key -> DurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= DurationProperty
interval,
                       Key
"MaxEjectionPercent" 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
maxEjectionPercent,
                       Key
"MaxServerErrors" 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
maxServerErrors]}
instance JSON.ToJSON OutlierDetectionProperty where
  toJSON :: OutlierDetectionProperty -> Value
toJSON OutlierDetectionProperty {()
Value Integer
DurationProperty
haddock_workaround_ :: OutlierDetectionProperty -> ()
baseEjectionDuration :: OutlierDetectionProperty -> DurationProperty
interval :: OutlierDetectionProperty -> DurationProperty
maxEjectionPercent :: OutlierDetectionProperty -> Value Integer
maxServerErrors :: OutlierDetectionProperty -> Value Integer
haddock_workaround_ :: ()
baseEjectionDuration :: DurationProperty
interval :: DurationProperty
maxEjectionPercent :: Value Integer
maxServerErrors :: Value Integer
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"BaseEjectionDuration" Key -> DurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= DurationProperty
baseEjectionDuration,
         Key
"Interval" Key -> DurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= DurationProperty
interval,
         Key
"MaxEjectionPercent" 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
maxEjectionPercent,
         Key
"MaxServerErrors" 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
maxServerErrors]
instance Property "BaseEjectionDuration" OutlierDetectionProperty where
  type PropertyType "BaseEjectionDuration" OutlierDetectionProperty = DurationProperty
  set :: PropertyType "BaseEjectionDuration" OutlierDetectionProperty
-> OutlierDetectionProperty -> OutlierDetectionProperty
set PropertyType "BaseEjectionDuration" OutlierDetectionProperty
newValue OutlierDetectionProperty {()
Value Integer
DurationProperty
haddock_workaround_ :: OutlierDetectionProperty -> ()
baseEjectionDuration :: OutlierDetectionProperty -> DurationProperty
interval :: OutlierDetectionProperty -> DurationProperty
maxEjectionPercent :: OutlierDetectionProperty -> Value Integer
maxServerErrors :: OutlierDetectionProperty -> Value Integer
haddock_workaround_ :: ()
baseEjectionDuration :: DurationProperty
interval :: DurationProperty
maxEjectionPercent :: Value Integer
maxServerErrors :: Value Integer
..}
    = OutlierDetectionProperty {baseEjectionDuration :: DurationProperty
baseEjectionDuration = PropertyType "BaseEjectionDuration" OutlierDetectionProperty
DurationProperty
newValue, ()
Value Integer
DurationProperty
haddock_workaround_ :: ()
interval :: DurationProperty
maxEjectionPercent :: Value Integer
maxServerErrors :: Value Integer
haddock_workaround_ :: ()
interval :: DurationProperty
maxEjectionPercent :: Value Integer
maxServerErrors :: Value Integer
..}
instance Property "Interval" OutlierDetectionProperty where
  type PropertyType "Interval" OutlierDetectionProperty = DurationProperty
  set :: PropertyType "Interval" OutlierDetectionProperty
-> OutlierDetectionProperty -> OutlierDetectionProperty
set PropertyType "Interval" OutlierDetectionProperty
newValue OutlierDetectionProperty {()
Value Integer
DurationProperty
haddock_workaround_ :: OutlierDetectionProperty -> ()
baseEjectionDuration :: OutlierDetectionProperty -> DurationProperty
interval :: OutlierDetectionProperty -> DurationProperty
maxEjectionPercent :: OutlierDetectionProperty -> Value Integer
maxServerErrors :: OutlierDetectionProperty -> Value Integer
haddock_workaround_ :: ()
baseEjectionDuration :: DurationProperty
interval :: DurationProperty
maxEjectionPercent :: Value Integer
maxServerErrors :: Value Integer
..}
    = OutlierDetectionProperty {interval :: DurationProperty
interval = PropertyType "Interval" OutlierDetectionProperty
DurationProperty
newValue, ()
Value Integer
DurationProperty
haddock_workaround_ :: ()
baseEjectionDuration :: DurationProperty
maxEjectionPercent :: Value Integer
maxServerErrors :: Value Integer
haddock_workaround_ :: ()
baseEjectionDuration :: DurationProperty
maxEjectionPercent :: Value Integer
maxServerErrors :: Value Integer
..}
instance Property "MaxEjectionPercent" OutlierDetectionProperty where
  type PropertyType "MaxEjectionPercent" OutlierDetectionProperty = Value Prelude.Integer
  set :: PropertyType "MaxEjectionPercent" OutlierDetectionProperty
-> OutlierDetectionProperty -> OutlierDetectionProperty
set PropertyType "MaxEjectionPercent" OutlierDetectionProperty
newValue OutlierDetectionProperty {()
Value Integer
DurationProperty
haddock_workaround_ :: OutlierDetectionProperty -> ()
baseEjectionDuration :: OutlierDetectionProperty -> DurationProperty
interval :: OutlierDetectionProperty -> DurationProperty
maxEjectionPercent :: OutlierDetectionProperty -> Value Integer
maxServerErrors :: OutlierDetectionProperty -> Value Integer
haddock_workaround_ :: ()
baseEjectionDuration :: DurationProperty
interval :: DurationProperty
maxEjectionPercent :: Value Integer
maxServerErrors :: Value Integer
..}
    = OutlierDetectionProperty {maxEjectionPercent :: Value Integer
maxEjectionPercent = PropertyType "MaxEjectionPercent" OutlierDetectionProperty
Value Integer
newValue, ()
Value Integer
DurationProperty
haddock_workaround_ :: ()
baseEjectionDuration :: DurationProperty
interval :: DurationProperty
maxServerErrors :: Value Integer
haddock_workaround_ :: ()
baseEjectionDuration :: DurationProperty
interval :: DurationProperty
maxServerErrors :: Value Integer
..}
instance Property "MaxServerErrors" OutlierDetectionProperty where
  type PropertyType "MaxServerErrors" OutlierDetectionProperty = Value Prelude.Integer
  set :: PropertyType "MaxServerErrors" OutlierDetectionProperty
-> OutlierDetectionProperty -> OutlierDetectionProperty
set PropertyType "MaxServerErrors" OutlierDetectionProperty
newValue OutlierDetectionProperty {()
Value Integer
DurationProperty
haddock_workaround_ :: OutlierDetectionProperty -> ()
baseEjectionDuration :: OutlierDetectionProperty -> DurationProperty
interval :: OutlierDetectionProperty -> DurationProperty
maxEjectionPercent :: OutlierDetectionProperty -> Value Integer
maxServerErrors :: OutlierDetectionProperty -> Value Integer
haddock_workaround_ :: ()
baseEjectionDuration :: DurationProperty
interval :: DurationProperty
maxEjectionPercent :: Value Integer
maxServerErrors :: Value Integer
..}
    = OutlierDetectionProperty {maxServerErrors :: Value Integer
maxServerErrors = PropertyType "MaxServerErrors" OutlierDetectionProperty
Value Integer
newValue, ()
Value Integer
DurationProperty
haddock_workaround_ :: ()
baseEjectionDuration :: DurationProperty
interval :: DurationProperty
maxEjectionPercent :: Value Integer
haddock_workaround_ :: ()
baseEjectionDuration :: DurationProperty
interval :: DurationProperty
maxEjectionPercent :: Value Integer
..}