module Stratosphere.Deadline.QueueLimitAssociation (
        QueueLimitAssociation(..), mkQueueLimitAssociation
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data QueueLimitAssociation
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuelimitassociation.html>
    QueueLimitAssociation {QueueLimitAssociation -> ()
haddock_workaround_ :: (),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuelimitassociation.html#cfn-deadline-queuelimitassociation-farmid>
                           QueueLimitAssociation -> Value Text
farmId :: (Value Prelude.Text),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuelimitassociation.html#cfn-deadline-queuelimitassociation-limitid>
                           QueueLimitAssociation -> Value Text
limitId :: (Value Prelude.Text),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuelimitassociation.html#cfn-deadline-queuelimitassociation-queueid>
                           QueueLimitAssociation -> Value Text
queueId :: (Value Prelude.Text)}
  deriving stock (QueueLimitAssociation -> QueueLimitAssociation -> Bool
(QueueLimitAssociation -> QueueLimitAssociation -> Bool)
-> (QueueLimitAssociation -> QueueLimitAssociation -> Bool)
-> Eq QueueLimitAssociation
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: QueueLimitAssociation -> QueueLimitAssociation -> Bool
== :: QueueLimitAssociation -> QueueLimitAssociation -> Bool
$c/= :: QueueLimitAssociation -> QueueLimitAssociation -> Bool
/= :: QueueLimitAssociation -> QueueLimitAssociation -> Bool
Prelude.Eq, Int -> QueueLimitAssociation -> ShowS
[QueueLimitAssociation] -> ShowS
QueueLimitAssociation -> String
(Int -> QueueLimitAssociation -> ShowS)
-> (QueueLimitAssociation -> String)
-> ([QueueLimitAssociation] -> ShowS)
-> Show QueueLimitAssociation
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> QueueLimitAssociation -> ShowS
showsPrec :: Int -> QueueLimitAssociation -> ShowS
$cshow :: QueueLimitAssociation -> String
show :: QueueLimitAssociation -> String
$cshowList :: [QueueLimitAssociation] -> ShowS
showList :: [QueueLimitAssociation] -> ShowS
Prelude.Show)
mkQueueLimitAssociation ::
  Value Prelude.Text
  -> Value Prelude.Text
     -> Value Prelude.Text -> QueueLimitAssociation
mkQueueLimitAssociation :: Value Text -> Value Text -> Value Text -> QueueLimitAssociation
mkQueueLimitAssociation Value Text
farmId Value Text
limitId Value Text
queueId
  = QueueLimitAssociation
      {haddock_workaround_ :: ()
haddock_workaround_ = (), farmId :: Value Text
farmId = Value Text
farmId, limitId :: Value Text
limitId = Value Text
limitId,
       queueId :: Value Text
queueId = Value Text
queueId}
instance ToResourceProperties QueueLimitAssociation where
  toResourceProperties :: QueueLimitAssociation -> ResourceProperties
toResourceProperties QueueLimitAssociation {()
Value Text
haddock_workaround_ :: QueueLimitAssociation -> ()
farmId :: QueueLimitAssociation -> Value Text
limitId :: QueueLimitAssociation -> Value Text
queueId :: QueueLimitAssociation -> Value Text
haddock_workaround_ :: ()
farmId :: Value Text
limitId :: Value Text
queueId :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Deadline::QueueLimitAssociation",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"FarmId" 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
farmId, Key
"LimitId" 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
limitId,
                       Key
"QueueId" 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
queueId]}
instance JSON.ToJSON QueueLimitAssociation where
  toJSON :: QueueLimitAssociation -> Value
toJSON QueueLimitAssociation {()
Value Text
haddock_workaround_ :: QueueLimitAssociation -> ()
farmId :: QueueLimitAssociation -> Value Text
limitId :: QueueLimitAssociation -> Value Text
queueId :: QueueLimitAssociation -> Value Text
haddock_workaround_ :: ()
farmId :: Value Text
limitId :: Value Text
queueId :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"FarmId" 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
farmId, Key
"LimitId" 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
limitId,
         Key
"QueueId" 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
queueId]
instance Property "FarmId" QueueLimitAssociation where
  type PropertyType "FarmId" QueueLimitAssociation = Value Prelude.Text
  set :: PropertyType "FarmId" QueueLimitAssociation
-> QueueLimitAssociation -> QueueLimitAssociation
set PropertyType "FarmId" QueueLimitAssociation
newValue QueueLimitAssociation {()
Value Text
haddock_workaround_ :: QueueLimitAssociation -> ()
farmId :: QueueLimitAssociation -> Value Text
limitId :: QueueLimitAssociation -> Value Text
queueId :: QueueLimitAssociation -> Value Text
haddock_workaround_ :: ()
farmId :: Value Text
limitId :: Value Text
queueId :: Value Text
..}
    = QueueLimitAssociation {farmId :: Value Text
farmId = PropertyType "FarmId" QueueLimitAssociation
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
limitId :: Value Text
queueId :: Value Text
haddock_workaround_ :: ()
limitId :: Value Text
queueId :: Value Text
..}
instance Property "LimitId" QueueLimitAssociation where
  type PropertyType "LimitId" QueueLimitAssociation = Value Prelude.Text
  set :: PropertyType "LimitId" QueueLimitAssociation
-> QueueLimitAssociation -> QueueLimitAssociation
set PropertyType "LimitId" QueueLimitAssociation
newValue QueueLimitAssociation {()
Value Text
haddock_workaround_ :: QueueLimitAssociation -> ()
farmId :: QueueLimitAssociation -> Value Text
limitId :: QueueLimitAssociation -> Value Text
queueId :: QueueLimitAssociation -> Value Text
haddock_workaround_ :: ()
farmId :: Value Text
limitId :: Value Text
queueId :: Value Text
..}
    = QueueLimitAssociation {limitId :: Value Text
limitId = PropertyType "LimitId" QueueLimitAssociation
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
farmId :: Value Text
queueId :: Value Text
haddock_workaround_ :: ()
farmId :: Value Text
queueId :: Value Text
..}
instance Property "QueueId" QueueLimitAssociation where
  type PropertyType "QueueId" QueueLimitAssociation = Value Prelude.Text
  set :: PropertyType "QueueId" QueueLimitAssociation
-> QueueLimitAssociation -> QueueLimitAssociation
set PropertyType "QueueId" QueueLimitAssociation
newValue QueueLimitAssociation {()
Value Text
haddock_workaround_ :: QueueLimitAssociation -> ()
farmId :: QueueLimitAssociation -> Value Text
limitId :: QueueLimitAssociation -> Value Text
queueId :: QueueLimitAssociation -> Value Text
haddock_workaround_ :: ()
farmId :: Value Text
limitId :: Value Text
queueId :: Value Text
..}
    = QueueLimitAssociation {queueId :: Value Text
queueId = PropertyType "QueueId" QueueLimitAssociation
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
farmId :: Value Text
limitId :: Value Text
haddock_workaround_ :: ()
farmId :: Value Text
limitId :: Value Text
..}