module Stratosphere.Wisdom.QuickResponse.GroupingConfigurationProperty (
        GroupingConfigurationProperty(..), mkGroupingConfigurationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data GroupingConfigurationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-quickresponse-groupingconfiguration.html>
    GroupingConfigurationProperty {GroupingConfigurationProperty -> ()
haddock_workaround_ :: (),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-quickresponse-groupingconfiguration.html#cfn-wisdom-quickresponse-groupingconfiguration-criteria>
                                   GroupingConfigurationProperty -> Value Text
criteria :: (Value Prelude.Text),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-quickresponse-groupingconfiguration.html#cfn-wisdom-quickresponse-groupingconfiguration-values>
                                   GroupingConfigurationProperty -> ValueList Text
values :: (ValueList Prelude.Text)}
  deriving stock (GroupingConfigurationProperty
-> GroupingConfigurationProperty -> Bool
(GroupingConfigurationProperty
 -> GroupingConfigurationProperty -> Bool)
-> (GroupingConfigurationProperty
    -> GroupingConfigurationProperty -> Bool)
-> Eq GroupingConfigurationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: GroupingConfigurationProperty
-> GroupingConfigurationProperty -> Bool
== :: GroupingConfigurationProperty
-> GroupingConfigurationProperty -> Bool
$c/= :: GroupingConfigurationProperty
-> GroupingConfigurationProperty -> Bool
/= :: GroupingConfigurationProperty
-> GroupingConfigurationProperty -> Bool
Prelude.Eq, Int -> GroupingConfigurationProperty -> ShowS
[GroupingConfigurationProperty] -> ShowS
GroupingConfigurationProperty -> String
(Int -> GroupingConfigurationProperty -> ShowS)
-> (GroupingConfigurationProperty -> String)
-> ([GroupingConfigurationProperty] -> ShowS)
-> Show GroupingConfigurationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> GroupingConfigurationProperty -> ShowS
showsPrec :: Int -> GroupingConfigurationProperty -> ShowS
$cshow :: GroupingConfigurationProperty -> String
show :: GroupingConfigurationProperty -> String
$cshowList :: [GroupingConfigurationProperty] -> ShowS
showList :: [GroupingConfigurationProperty] -> ShowS
Prelude.Show)
mkGroupingConfigurationProperty ::
  Value Prelude.Text
  -> ValueList Prelude.Text -> GroupingConfigurationProperty
mkGroupingConfigurationProperty :: Value Text -> ValueList Text -> GroupingConfigurationProperty
mkGroupingConfigurationProperty Value Text
criteria ValueList Text
values
  = GroupingConfigurationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), criteria :: Value Text
criteria = Value Text
criteria, values :: ValueList Text
values = ValueList Text
values}
instance ToResourceProperties GroupingConfigurationProperty where
  toResourceProperties :: GroupingConfigurationProperty -> ResourceProperties
toResourceProperties GroupingConfigurationProperty {()
ValueList Text
Value Text
haddock_workaround_ :: GroupingConfigurationProperty -> ()
criteria :: GroupingConfigurationProperty -> Value Text
values :: GroupingConfigurationProperty -> ValueList Text
haddock_workaround_ :: ()
criteria :: Value Text
values :: ValueList Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Wisdom::QuickResponse.GroupingConfiguration",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Criteria" 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
criteria,
                       Key
"Values" Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ValueList Text
values]}
instance JSON.ToJSON GroupingConfigurationProperty where
  toJSON :: GroupingConfigurationProperty -> Value
toJSON GroupingConfigurationProperty {()
ValueList Text
Value Text
haddock_workaround_ :: GroupingConfigurationProperty -> ()
criteria :: GroupingConfigurationProperty -> Value Text
values :: GroupingConfigurationProperty -> ValueList Text
haddock_workaround_ :: ()
criteria :: Value Text
values :: ValueList Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"Criteria" 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
criteria, Key
"Values" Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ValueList Text
values]
instance Property "Criteria" GroupingConfigurationProperty where
  type PropertyType "Criteria" GroupingConfigurationProperty = Value Prelude.Text
  set :: PropertyType "Criteria" GroupingConfigurationProperty
-> GroupingConfigurationProperty -> GroupingConfigurationProperty
set PropertyType "Criteria" GroupingConfigurationProperty
newValue GroupingConfigurationProperty {()
ValueList Text
Value Text
haddock_workaround_ :: GroupingConfigurationProperty -> ()
criteria :: GroupingConfigurationProperty -> Value Text
values :: GroupingConfigurationProperty -> ValueList Text
haddock_workaround_ :: ()
criteria :: Value Text
values :: ValueList Text
..}
    = GroupingConfigurationProperty {criteria :: Value Text
criteria = PropertyType "Criteria" GroupingConfigurationProperty
Value Text
newValue, ()
ValueList Text
haddock_workaround_ :: ()
values :: ValueList Text
haddock_workaround_ :: ()
values :: ValueList Text
..}
instance Property "Values" GroupingConfigurationProperty where
  type PropertyType "Values" GroupingConfigurationProperty = ValueList Prelude.Text
  set :: PropertyType "Values" GroupingConfigurationProperty
-> GroupingConfigurationProperty -> GroupingConfigurationProperty
set PropertyType "Values" GroupingConfigurationProperty
newValue GroupingConfigurationProperty {()
ValueList Text
Value Text
haddock_workaround_ :: GroupingConfigurationProperty -> ()
criteria :: GroupingConfigurationProperty -> Value Text
values :: GroupingConfigurationProperty -> ValueList Text
haddock_workaround_ :: ()
criteria :: Value Text
values :: ValueList Text
..}
    = GroupingConfigurationProperty {values :: ValueList Text
values = PropertyType "Values" GroupingConfigurationProperty
ValueList Text
newValue, ()
Value Text
haddock_workaround_ :: ()
criteria :: Value Text
haddock_workaround_ :: ()
criteria :: Value Text
..}