module Stratosphere.GreengrassV2.Deployment.IoTJobAbortCriteriaProperty (
        IoTJobAbortCriteriaProperty(..), mkIoTJobAbortCriteriaProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data IoTJobAbortCriteriaProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-deployment-iotjobabortcriteria.html>
    IoTJobAbortCriteriaProperty {IoTJobAbortCriteriaProperty -> ()
haddock_workaround_ :: (),
                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-deployment-iotjobabortcriteria.html#cfn-greengrassv2-deployment-iotjobabortcriteria-action>
                                 IoTJobAbortCriteriaProperty -> Value Text
action :: (Value Prelude.Text),
                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-deployment-iotjobabortcriteria.html#cfn-greengrassv2-deployment-iotjobabortcriteria-failuretype>
                                 IoTJobAbortCriteriaProperty -> Value Text
failureType :: (Value Prelude.Text),
                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-deployment-iotjobabortcriteria.html#cfn-greengrassv2-deployment-iotjobabortcriteria-minnumberofexecutedthings>
                                 IoTJobAbortCriteriaProperty -> Value Integer
minNumberOfExecutedThings :: (Value Prelude.Integer),
                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-deployment-iotjobabortcriteria.html#cfn-greengrassv2-deployment-iotjobabortcriteria-thresholdpercentage>
                                 IoTJobAbortCriteriaProperty -> Value Double
thresholdPercentage :: (Value Prelude.Double)}
  deriving stock (IoTJobAbortCriteriaProperty -> IoTJobAbortCriteriaProperty -> Bool
(IoTJobAbortCriteriaProperty
 -> IoTJobAbortCriteriaProperty -> Bool)
-> (IoTJobAbortCriteriaProperty
    -> IoTJobAbortCriteriaProperty -> Bool)
-> Eq IoTJobAbortCriteriaProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: IoTJobAbortCriteriaProperty -> IoTJobAbortCriteriaProperty -> Bool
== :: IoTJobAbortCriteriaProperty -> IoTJobAbortCriteriaProperty -> Bool
$c/= :: IoTJobAbortCriteriaProperty -> IoTJobAbortCriteriaProperty -> Bool
/= :: IoTJobAbortCriteriaProperty -> IoTJobAbortCriteriaProperty -> Bool
Prelude.Eq, Int -> IoTJobAbortCriteriaProperty -> ShowS
[IoTJobAbortCriteriaProperty] -> ShowS
IoTJobAbortCriteriaProperty -> String
(Int -> IoTJobAbortCriteriaProperty -> ShowS)
-> (IoTJobAbortCriteriaProperty -> String)
-> ([IoTJobAbortCriteriaProperty] -> ShowS)
-> Show IoTJobAbortCriteriaProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> IoTJobAbortCriteriaProperty -> ShowS
showsPrec :: Int -> IoTJobAbortCriteriaProperty -> ShowS
$cshow :: IoTJobAbortCriteriaProperty -> String
show :: IoTJobAbortCriteriaProperty -> String
$cshowList :: [IoTJobAbortCriteriaProperty] -> ShowS
showList :: [IoTJobAbortCriteriaProperty] -> ShowS
Prelude.Show)
mkIoTJobAbortCriteriaProperty ::
  Value Prelude.Text
  -> Value Prelude.Text
     -> Value Prelude.Integer
        -> Value Prelude.Double -> IoTJobAbortCriteriaProperty
mkIoTJobAbortCriteriaProperty :: Value Text
-> Value Text
-> Value Integer
-> Value Double
-> IoTJobAbortCriteriaProperty
mkIoTJobAbortCriteriaProperty
  Value Text
action
  Value Text
failureType
  Value Integer
minNumberOfExecutedThings
  Value Double
thresholdPercentage
  = IoTJobAbortCriteriaProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), action :: Value Text
action = Value Text
action,
       failureType :: Value Text
failureType = Value Text
failureType,
       minNumberOfExecutedThings :: Value Integer
minNumberOfExecutedThings = Value Integer
minNumberOfExecutedThings,
       thresholdPercentage :: Value Double
thresholdPercentage = Value Double
thresholdPercentage}
instance ToResourceProperties IoTJobAbortCriteriaProperty where
  toResourceProperties :: IoTJobAbortCriteriaProperty -> ResourceProperties
toResourceProperties IoTJobAbortCriteriaProperty {()
Value Double
Value Integer
Value Text
haddock_workaround_ :: IoTJobAbortCriteriaProperty -> ()
action :: IoTJobAbortCriteriaProperty -> Value Text
failureType :: IoTJobAbortCriteriaProperty -> Value Text
minNumberOfExecutedThings :: IoTJobAbortCriteriaProperty -> Value Integer
thresholdPercentage :: IoTJobAbortCriteriaProperty -> Value Double
haddock_workaround_ :: ()
action :: Value Text
failureType :: Value Text
minNumberOfExecutedThings :: Value Integer
thresholdPercentage :: Value Double
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::GreengrassV2::Deployment.IoTJobAbortCriteria",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Action" 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
action,
                       Key
"FailureType" 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
failureType,
                       Key
"MinNumberOfExecutedThings" 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
minNumberOfExecutedThings,
                       Key
"ThresholdPercentage" Key -> Value Double -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Double
thresholdPercentage]}
instance JSON.ToJSON IoTJobAbortCriteriaProperty where
  toJSON :: IoTJobAbortCriteriaProperty -> Value
toJSON IoTJobAbortCriteriaProperty {()
Value Double
Value Integer
Value Text
haddock_workaround_ :: IoTJobAbortCriteriaProperty -> ()
action :: IoTJobAbortCriteriaProperty -> Value Text
failureType :: IoTJobAbortCriteriaProperty -> Value Text
minNumberOfExecutedThings :: IoTJobAbortCriteriaProperty -> Value Integer
thresholdPercentage :: IoTJobAbortCriteriaProperty -> Value Double
haddock_workaround_ :: ()
action :: Value Text
failureType :: Value Text
minNumberOfExecutedThings :: Value Integer
thresholdPercentage :: Value Double
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"Action" 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
action, Key
"FailureType" 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
failureType,
         Key
"MinNumberOfExecutedThings" 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
minNumberOfExecutedThings,
         Key
"ThresholdPercentage" Key -> Value Double -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Double
thresholdPercentage]
instance Property "Action" IoTJobAbortCriteriaProperty where
  type PropertyType "Action" IoTJobAbortCriteriaProperty = Value Prelude.Text
  set :: PropertyType "Action" IoTJobAbortCriteriaProperty
-> IoTJobAbortCriteriaProperty -> IoTJobAbortCriteriaProperty
set PropertyType "Action" IoTJobAbortCriteriaProperty
newValue IoTJobAbortCriteriaProperty {()
Value Double
Value Integer
Value Text
haddock_workaround_ :: IoTJobAbortCriteriaProperty -> ()
action :: IoTJobAbortCriteriaProperty -> Value Text
failureType :: IoTJobAbortCriteriaProperty -> Value Text
minNumberOfExecutedThings :: IoTJobAbortCriteriaProperty -> Value Integer
thresholdPercentage :: IoTJobAbortCriteriaProperty -> Value Double
haddock_workaround_ :: ()
action :: Value Text
failureType :: Value Text
minNumberOfExecutedThings :: Value Integer
thresholdPercentage :: Value Double
..}
    = IoTJobAbortCriteriaProperty {action :: Value Text
action = PropertyType "Action" IoTJobAbortCriteriaProperty
Value Text
newValue, ()
Value Double
Value Integer
Value Text
haddock_workaround_ :: ()
failureType :: Value Text
minNumberOfExecutedThings :: Value Integer
thresholdPercentage :: Value Double
haddock_workaround_ :: ()
failureType :: Value Text
minNumberOfExecutedThings :: Value Integer
thresholdPercentage :: Value Double
..}
instance Property "FailureType" IoTJobAbortCriteriaProperty where
  type PropertyType "FailureType" IoTJobAbortCriteriaProperty = Value Prelude.Text
  set :: PropertyType "FailureType" IoTJobAbortCriteriaProperty
-> IoTJobAbortCriteriaProperty -> IoTJobAbortCriteriaProperty
set PropertyType "FailureType" IoTJobAbortCriteriaProperty
newValue IoTJobAbortCriteriaProperty {()
Value Double
Value Integer
Value Text
haddock_workaround_ :: IoTJobAbortCriteriaProperty -> ()
action :: IoTJobAbortCriteriaProperty -> Value Text
failureType :: IoTJobAbortCriteriaProperty -> Value Text
minNumberOfExecutedThings :: IoTJobAbortCriteriaProperty -> Value Integer
thresholdPercentage :: IoTJobAbortCriteriaProperty -> Value Double
haddock_workaround_ :: ()
action :: Value Text
failureType :: Value Text
minNumberOfExecutedThings :: Value Integer
thresholdPercentage :: Value Double
..}
    = IoTJobAbortCriteriaProperty {failureType :: Value Text
failureType = PropertyType "FailureType" IoTJobAbortCriteriaProperty
Value Text
newValue, ()
Value Double
Value Integer
Value Text
haddock_workaround_ :: ()
action :: Value Text
minNumberOfExecutedThings :: Value Integer
thresholdPercentage :: Value Double
haddock_workaround_ :: ()
action :: Value Text
minNumberOfExecutedThings :: Value Integer
thresholdPercentage :: Value Double
..}
instance Property "MinNumberOfExecutedThings" IoTJobAbortCriteriaProperty where
  type PropertyType "MinNumberOfExecutedThings" IoTJobAbortCriteriaProperty = Value Prelude.Integer
  set :: PropertyType
  "MinNumberOfExecutedThings" IoTJobAbortCriteriaProperty
-> IoTJobAbortCriteriaProperty -> IoTJobAbortCriteriaProperty
set PropertyType
  "MinNumberOfExecutedThings" IoTJobAbortCriteriaProperty
newValue IoTJobAbortCriteriaProperty {()
Value Double
Value Integer
Value Text
haddock_workaround_ :: IoTJobAbortCriteriaProperty -> ()
action :: IoTJobAbortCriteriaProperty -> Value Text
failureType :: IoTJobAbortCriteriaProperty -> Value Text
minNumberOfExecutedThings :: IoTJobAbortCriteriaProperty -> Value Integer
thresholdPercentage :: IoTJobAbortCriteriaProperty -> Value Double
haddock_workaround_ :: ()
action :: Value Text
failureType :: Value Text
minNumberOfExecutedThings :: Value Integer
thresholdPercentage :: Value Double
..}
    = IoTJobAbortCriteriaProperty
        {minNumberOfExecutedThings :: Value Integer
minNumberOfExecutedThings = PropertyType
  "MinNumberOfExecutedThings" IoTJobAbortCriteriaProperty
Value Integer
newValue, ()
Value Double
Value Text
haddock_workaround_ :: ()
action :: Value Text
failureType :: Value Text
thresholdPercentage :: Value Double
haddock_workaround_ :: ()
action :: Value Text
failureType :: Value Text
thresholdPercentage :: Value Double
..}
instance Property "ThresholdPercentage" IoTJobAbortCriteriaProperty where
  type PropertyType "ThresholdPercentage" IoTJobAbortCriteriaProperty = Value Prelude.Double
  set :: PropertyType "ThresholdPercentage" IoTJobAbortCriteriaProperty
-> IoTJobAbortCriteriaProperty -> IoTJobAbortCriteriaProperty
set PropertyType "ThresholdPercentage" IoTJobAbortCriteriaProperty
newValue IoTJobAbortCriteriaProperty {()
Value Double
Value Integer
Value Text
haddock_workaround_ :: IoTJobAbortCriteriaProperty -> ()
action :: IoTJobAbortCriteriaProperty -> Value Text
failureType :: IoTJobAbortCriteriaProperty -> Value Text
minNumberOfExecutedThings :: IoTJobAbortCriteriaProperty -> Value Integer
thresholdPercentage :: IoTJobAbortCriteriaProperty -> Value Double
haddock_workaround_ :: ()
action :: Value Text
failureType :: Value Text
minNumberOfExecutedThings :: Value Integer
thresholdPercentage :: Value Double
..}
    = IoTJobAbortCriteriaProperty {thresholdPercentage :: Value Double
thresholdPercentage = PropertyType "ThresholdPercentage" IoTJobAbortCriteriaProperty
Value Double
newValue, ()
Value Integer
Value Text
haddock_workaround_ :: ()
action :: Value Text
failureType :: Value Text
minNumberOfExecutedThings :: Value Integer
haddock_workaround_ :: ()
action :: Value Text
failureType :: Value Text
minNumberOfExecutedThings :: Value Integer
..}