module Stratosphere.Connect.Rule.UpdateCaseActionProperty (
        module Exports, UpdateCaseActionProperty(..),
        mkUpdateCaseActionProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Connect.Rule.FieldProperty as Exports
import Stratosphere.ResourceProperties
data UpdateCaseActionProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-rule-updatecaseaction.html>
    UpdateCaseActionProperty {UpdateCaseActionProperty -> ()
haddock_workaround_ :: (),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-rule-updatecaseaction.html#cfn-connect-rule-updatecaseaction-fields>
                              UpdateCaseActionProperty -> [FieldProperty]
fields :: [FieldProperty]}
  deriving stock (UpdateCaseActionProperty -> UpdateCaseActionProperty -> Bool
(UpdateCaseActionProperty -> UpdateCaseActionProperty -> Bool)
-> (UpdateCaseActionProperty -> UpdateCaseActionProperty -> Bool)
-> Eq UpdateCaseActionProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: UpdateCaseActionProperty -> UpdateCaseActionProperty -> Bool
== :: UpdateCaseActionProperty -> UpdateCaseActionProperty -> Bool
$c/= :: UpdateCaseActionProperty -> UpdateCaseActionProperty -> Bool
/= :: UpdateCaseActionProperty -> UpdateCaseActionProperty -> Bool
Prelude.Eq, Int -> UpdateCaseActionProperty -> ShowS
[UpdateCaseActionProperty] -> ShowS
UpdateCaseActionProperty -> String
(Int -> UpdateCaseActionProperty -> ShowS)
-> (UpdateCaseActionProperty -> String)
-> ([UpdateCaseActionProperty] -> ShowS)
-> Show UpdateCaseActionProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> UpdateCaseActionProperty -> ShowS
showsPrec :: Int -> UpdateCaseActionProperty -> ShowS
$cshow :: UpdateCaseActionProperty -> String
show :: UpdateCaseActionProperty -> String
$cshowList :: [UpdateCaseActionProperty] -> ShowS
showList :: [UpdateCaseActionProperty] -> ShowS
Prelude.Show)
mkUpdateCaseActionProperty ::
  [FieldProperty] -> UpdateCaseActionProperty
mkUpdateCaseActionProperty :: [FieldProperty] -> UpdateCaseActionProperty
mkUpdateCaseActionProperty [FieldProperty]
fields
  = UpdateCaseActionProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), fields :: [FieldProperty]
fields = [FieldProperty]
fields}
instance ToResourceProperties UpdateCaseActionProperty where
  toResourceProperties :: UpdateCaseActionProperty -> ResourceProperties
toResourceProperties UpdateCaseActionProperty {[FieldProperty]
()
haddock_workaround_ :: UpdateCaseActionProperty -> ()
fields :: UpdateCaseActionProperty -> [FieldProperty]
haddock_workaround_ :: ()
fields :: [FieldProperty]
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Connect::Rule.UpdateCaseAction",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Fields" Key -> [FieldProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [FieldProperty]
fields]}
instance JSON.ToJSON UpdateCaseActionProperty where
  toJSON :: UpdateCaseActionProperty -> Value
toJSON UpdateCaseActionProperty {[FieldProperty]
()
haddock_workaround_ :: UpdateCaseActionProperty -> ()
fields :: UpdateCaseActionProperty -> [FieldProperty]
haddock_workaround_ :: ()
fields :: [FieldProperty]
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"Fields" Key -> [FieldProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [FieldProperty]
fields]
instance Property "Fields" UpdateCaseActionProperty where
  type PropertyType "Fields" UpdateCaseActionProperty = [FieldProperty]
  set :: PropertyType "Fields" UpdateCaseActionProperty
-> UpdateCaseActionProperty -> UpdateCaseActionProperty
set PropertyType "Fields" UpdateCaseActionProperty
newValue UpdateCaseActionProperty {[FieldProperty]
()
haddock_workaround_ :: UpdateCaseActionProperty -> ()
fields :: UpdateCaseActionProperty -> [FieldProperty]
haddock_workaround_ :: ()
fields :: [FieldProperty]
..}
    = UpdateCaseActionProperty {fields :: [FieldProperty]
fields = [FieldProperty]
PropertyType "Fields" UpdateCaseActionProperty
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}