module Stratosphere.Batch.JobQueue.JobStateTimeLimitActionProperty (
        JobStateTimeLimitActionProperty(..),
        mkJobStateTimeLimitActionProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data JobStateTimeLimitActionProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-jobstatetimelimitaction.html>
    JobStateTimeLimitActionProperty {JobStateTimeLimitActionProperty -> ()
haddock_workaround_ :: (),
                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-jobstatetimelimitaction.html#cfn-batch-jobqueue-jobstatetimelimitaction-action>
                                     JobStateTimeLimitActionProperty -> Value Text
action :: (Value Prelude.Text),
                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-jobstatetimelimitaction.html#cfn-batch-jobqueue-jobstatetimelimitaction-maxtimeseconds>
                                     JobStateTimeLimitActionProperty -> Value Integer
maxTimeSeconds :: (Value Prelude.Integer),
                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-jobstatetimelimitaction.html#cfn-batch-jobqueue-jobstatetimelimitaction-reason>
                                     JobStateTimeLimitActionProperty -> Value Text
reason :: (Value Prelude.Text),
                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-jobstatetimelimitaction.html#cfn-batch-jobqueue-jobstatetimelimitaction-state>
                                     JobStateTimeLimitActionProperty -> Value Text
state :: (Value Prelude.Text)}
  deriving stock (JobStateTimeLimitActionProperty
-> JobStateTimeLimitActionProperty -> Bool
(JobStateTimeLimitActionProperty
 -> JobStateTimeLimitActionProperty -> Bool)
-> (JobStateTimeLimitActionProperty
    -> JobStateTimeLimitActionProperty -> Bool)
-> Eq JobStateTimeLimitActionProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: JobStateTimeLimitActionProperty
-> JobStateTimeLimitActionProperty -> Bool
== :: JobStateTimeLimitActionProperty
-> JobStateTimeLimitActionProperty -> Bool
$c/= :: JobStateTimeLimitActionProperty
-> JobStateTimeLimitActionProperty -> Bool
/= :: JobStateTimeLimitActionProperty
-> JobStateTimeLimitActionProperty -> Bool
Prelude.Eq, Int -> JobStateTimeLimitActionProperty -> ShowS
[JobStateTimeLimitActionProperty] -> ShowS
JobStateTimeLimitActionProperty -> String
(Int -> JobStateTimeLimitActionProperty -> ShowS)
-> (JobStateTimeLimitActionProperty -> String)
-> ([JobStateTimeLimitActionProperty] -> ShowS)
-> Show JobStateTimeLimitActionProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> JobStateTimeLimitActionProperty -> ShowS
showsPrec :: Int -> JobStateTimeLimitActionProperty -> ShowS
$cshow :: JobStateTimeLimitActionProperty -> String
show :: JobStateTimeLimitActionProperty -> String
$cshowList :: [JobStateTimeLimitActionProperty] -> ShowS
showList :: [JobStateTimeLimitActionProperty] -> ShowS
Prelude.Show)
mkJobStateTimeLimitActionProperty ::
  Value Prelude.Text
  -> Value Prelude.Integer
     -> Value Prelude.Text
        -> Value Prelude.Text -> JobStateTimeLimitActionProperty
mkJobStateTimeLimitActionProperty :: Value Text
-> Value Integer
-> Value Text
-> Value Text
-> JobStateTimeLimitActionProperty
mkJobStateTimeLimitActionProperty
  Value Text
action
  Value Integer
maxTimeSeconds
  Value Text
reason
  Value Text
state
  = JobStateTimeLimitActionProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), action :: Value Text
action = Value Text
action,
       maxTimeSeconds :: Value Integer
maxTimeSeconds = Value Integer
maxTimeSeconds, reason :: Value Text
reason = Value Text
reason, state :: Value Text
state = Value Text
state}
instance ToResourceProperties JobStateTimeLimitActionProperty where
  toResourceProperties :: JobStateTimeLimitActionProperty -> ResourceProperties
toResourceProperties JobStateTimeLimitActionProperty {()
Value Integer
Value Text
haddock_workaround_ :: JobStateTimeLimitActionProperty -> ()
action :: JobStateTimeLimitActionProperty -> Value Text
maxTimeSeconds :: JobStateTimeLimitActionProperty -> Value Integer
reason :: JobStateTimeLimitActionProperty -> Value Text
state :: JobStateTimeLimitActionProperty -> Value Text
haddock_workaround_ :: ()
action :: Value Text
maxTimeSeconds :: Value Integer
reason :: Value Text
state :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Batch::JobQueue.JobStateTimeLimitAction",
         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
"MaxTimeSeconds" 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
maxTimeSeconds, Key
"Reason" 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
reason,
                       Key
"State" 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
state]}
instance JSON.ToJSON JobStateTimeLimitActionProperty where
  toJSON :: JobStateTimeLimitActionProperty -> Value
toJSON JobStateTimeLimitActionProperty {()
Value Integer
Value Text
haddock_workaround_ :: JobStateTimeLimitActionProperty -> ()
action :: JobStateTimeLimitActionProperty -> Value Text
maxTimeSeconds :: JobStateTimeLimitActionProperty -> Value Integer
reason :: JobStateTimeLimitActionProperty -> Value Text
state :: JobStateTimeLimitActionProperty -> Value Text
haddock_workaround_ :: ()
action :: Value Text
maxTimeSeconds :: Value Integer
reason :: Value Text
state :: Value Text
..}
    = [(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
"MaxTimeSeconds" 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
maxTimeSeconds,
         Key
"Reason" 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
reason, Key
"State" 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
state]
instance Property "Action" JobStateTimeLimitActionProperty where
  type PropertyType "Action" JobStateTimeLimitActionProperty = Value Prelude.Text
  set :: PropertyType "Action" JobStateTimeLimitActionProperty
-> JobStateTimeLimitActionProperty
-> JobStateTimeLimitActionProperty
set PropertyType "Action" JobStateTimeLimitActionProperty
newValue JobStateTimeLimitActionProperty {()
Value Integer
Value Text
haddock_workaround_ :: JobStateTimeLimitActionProperty -> ()
action :: JobStateTimeLimitActionProperty -> Value Text
maxTimeSeconds :: JobStateTimeLimitActionProperty -> Value Integer
reason :: JobStateTimeLimitActionProperty -> Value Text
state :: JobStateTimeLimitActionProperty -> Value Text
haddock_workaround_ :: ()
action :: Value Text
maxTimeSeconds :: Value Integer
reason :: Value Text
state :: Value Text
..}
    = JobStateTimeLimitActionProperty {action :: Value Text
action = PropertyType "Action" JobStateTimeLimitActionProperty
Value Text
newValue, ()
Value Integer
Value Text
haddock_workaround_ :: ()
maxTimeSeconds :: Value Integer
reason :: Value Text
state :: Value Text
haddock_workaround_ :: ()
maxTimeSeconds :: Value Integer
reason :: Value Text
state :: Value Text
..}
instance Property "MaxTimeSeconds" JobStateTimeLimitActionProperty where
  type PropertyType "MaxTimeSeconds" JobStateTimeLimitActionProperty = Value Prelude.Integer
  set :: PropertyType "MaxTimeSeconds" JobStateTimeLimitActionProperty
-> JobStateTimeLimitActionProperty
-> JobStateTimeLimitActionProperty
set PropertyType "MaxTimeSeconds" JobStateTimeLimitActionProperty
newValue JobStateTimeLimitActionProperty {()
Value Integer
Value Text
haddock_workaround_ :: JobStateTimeLimitActionProperty -> ()
action :: JobStateTimeLimitActionProperty -> Value Text
maxTimeSeconds :: JobStateTimeLimitActionProperty -> Value Integer
reason :: JobStateTimeLimitActionProperty -> Value Text
state :: JobStateTimeLimitActionProperty -> Value Text
haddock_workaround_ :: ()
action :: Value Text
maxTimeSeconds :: Value Integer
reason :: Value Text
state :: Value Text
..}
    = JobStateTimeLimitActionProperty {maxTimeSeconds :: Value Integer
maxTimeSeconds = PropertyType "MaxTimeSeconds" JobStateTimeLimitActionProperty
Value Integer
newValue, ()
Value Text
haddock_workaround_ :: ()
action :: Value Text
reason :: Value Text
state :: Value Text
haddock_workaround_ :: ()
action :: Value Text
reason :: Value Text
state :: Value Text
..}
instance Property "Reason" JobStateTimeLimitActionProperty where
  type PropertyType "Reason" JobStateTimeLimitActionProperty = Value Prelude.Text
  set :: PropertyType "Reason" JobStateTimeLimitActionProperty
-> JobStateTimeLimitActionProperty
-> JobStateTimeLimitActionProperty
set PropertyType "Reason" JobStateTimeLimitActionProperty
newValue JobStateTimeLimitActionProperty {()
Value Integer
Value Text
haddock_workaround_ :: JobStateTimeLimitActionProperty -> ()
action :: JobStateTimeLimitActionProperty -> Value Text
maxTimeSeconds :: JobStateTimeLimitActionProperty -> Value Integer
reason :: JobStateTimeLimitActionProperty -> Value Text
state :: JobStateTimeLimitActionProperty -> Value Text
haddock_workaround_ :: ()
action :: Value Text
maxTimeSeconds :: Value Integer
reason :: Value Text
state :: Value Text
..}
    = JobStateTimeLimitActionProperty {reason :: Value Text
reason = PropertyType "Reason" JobStateTimeLimitActionProperty
Value Text
newValue, ()
Value Integer
Value Text
haddock_workaround_ :: ()
action :: Value Text
maxTimeSeconds :: Value Integer
state :: Value Text
haddock_workaround_ :: ()
action :: Value Text
maxTimeSeconds :: Value Integer
state :: Value Text
..}
instance Property "State" JobStateTimeLimitActionProperty where
  type PropertyType "State" JobStateTimeLimitActionProperty = Value Prelude.Text
  set :: PropertyType "State" JobStateTimeLimitActionProperty
-> JobStateTimeLimitActionProperty
-> JobStateTimeLimitActionProperty
set PropertyType "State" JobStateTimeLimitActionProperty
newValue JobStateTimeLimitActionProperty {()
Value Integer
Value Text
haddock_workaround_ :: JobStateTimeLimitActionProperty -> ()
action :: JobStateTimeLimitActionProperty -> Value Text
maxTimeSeconds :: JobStateTimeLimitActionProperty -> Value Integer
reason :: JobStateTimeLimitActionProperty -> Value Text
state :: JobStateTimeLimitActionProperty -> Value Text
haddock_workaround_ :: ()
action :: Value Text
maxTimeSeconds :: Value Integer
reason :: Value Text
state :: Value Text
..}
    = JobStateTimeLimitActionProperty {state :: Value Text
state = PropertyType "State" JobStateTimeLimitActionProperty
Value Text
newValue, ()
Value Integer
Value Text
haddock_workaround_ :: ()
action :: Value Text
maxTimeSeconds :: Value Integer
reason :: Value Text
haddock_workaround_ :: ()
action :: Value Text
maxTimeSeconds :: Value Integer
reason :: Value Text
..}