module Stratosphere.QBusiness.DataAccessor.ActionConfigurationProperty (
        module Exports, ActionConfigurationProperty(..),
        mkActionConfigurationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.QBusiness.DataAccessor.ActionFilterConfigurationProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ActionConfigurationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-qbusiness-dataaccessor-actionconfiguration.html>
    ActionConfigurationProperty {ActionConfigurationProperty -> ()
haddock_workaround_ :: (),
                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-qbusiness-dataaccessor-actionconfiguration.html#cfn-qbusiness-dataaccessor-actionconfiguration-action>
                                 ActionConfigurationProperty -> Value Text
action :: (Value Prelude.Text),
                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-qbusiness-dataaccessor-actionconfiguration.html#cfn-qbusiness-dataaccessor-actionconfiguration-filterconfiguration>
                                 ActionConfigurationProperty
-> Maybe ActionFilterConfigurationProperty
filterConfiguration :: (Prelude.Maybe ActionFilterConfigurationProperty)}
  deriving stock (ActionConfigurationProperty -> ActionConfigurationProperty -> Bool
(ActionConfigurationProperty
 -> ActionConfigurationProperty -> Bool)
-> (ActionConfigurationProperty
    -> ActionConfigurationProperty -> Bool)
-> Eq ActionConfigurationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ActionConfigurationProperty -> ActionConfigurationProperty -> Bool
== :: ActionConfigurationProperty -> ActionConfigurationProperty -> Bool
$c/= :: ActionConfigurationProperty -> ActionConfigurationProperty -> Bool
/= :: ActionConfigurationProperty -> ActionConfigurationProperty -> Bool
Prelude.Eq, Int -> ActionConfigurationProperty -> ShowS
[ActionConfigurationProperty] -> ShowS
ActionConfigurationProperty -> String
(Int -> ActionConfigurationProperty -> ShowS)
-> (ActionConfigurationProperty -> String)
-> ([ActionConfigurationProperty] -> ShowS)
-> Show ActionConfigurationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ActionConfigurationProperty -> ShowS
showsPrec :: Int -> ActionConfigurationProperty -> ShowS
$cshow :: ActionConfigurationProperty -> String
show :: ActionConfigurationProperty -> String
$cshowList :: [ActionConfigurationProperty] -> ShowS
showList :: [ActionConfigurationProperty] -> ShowS
Prelude.Show)
mkActionConfigurationProperty ::
  Value Prelude.Text -> ActionConfigurationProperty
mkActionConfigurationProperty :: Value Text -> ActionConfigurationProperty
mkActionConfigurationProperty Value Text
action
  = ActionConfigurationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), action :: Value Text
action = Value Text
action,
       filterConfiguration :: Maybe ActionFilterConfigurationProperty
filterConfiguration = Maybe ActionFilterConfigurationProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties ActionConfigurationProperty where
  toResourceProperties :: ActionConfigurationProperty -> ResourceProperties
toResourceProperties ActionConfigurationProperty {Maybe ActionFilterConfigurationProperty
()
Value Text
haddock_workaround_ :: ActionConfigurationProperty -> ()
action :: ActionConfigurationProperty -> Value Text
filterConfiguration :: ActionConfigurationProperty
-> Maybe ActionFilterConfigurationProperty
haddock_workaround_ :: ()
action :: Value Text
filterConfiguration :: Maybe ActionFilterConfigurationProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::QBusiness::DataAccessor.ActionConfiguration",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
                           [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]
                           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                              [Key -> ActionFilterConfigurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"FilterConfiguration"
                                 (ActionFilterConfigurationProperty -> (Key, Value))
-> Maybe ActionFilterConfigurationProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ActionFilterConfigurationProperty
filterConfiguration]))}
instance JSON.ToJSON ActionConfigurationProperty where
  toJSON :: ActionConfigurationProperty -> Value
toJSON ActionConfigurationProperty {Maybe ActionFilterConfigurationProperty
()
Value Text
haddock_workaround_ :: ActionConfigurationProperty -> ()
action :: ActionConfigurationProperty -> Value Text
filterConfiguration :: ActionConfigurationProperty
-> Maybe ActionFilterConfigurationProperty
haddock_workaround_ :: ()
action :: Value Text
filterConfiguration :: Maybe ActionFilterConfigurationProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
              [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]
              ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                 [Key -> ActionFilterConfigurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"FilterConfiguration"
                    (ActionFilterConfigurationProperty -> (Key, Value))
-> Maybe ActionFilterConfigurationProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ActionFilterConfigurationProperty
filterConfiguration])))
instance Property "Action" ActionConfigurationProperty where
  type PropertyType "Action" ActionConfigurationProperty = Value Prelude.Text
  set :: PropertyType "Action" ActionConfigurationProperty
-> ActionConfigurationProperty -> ActionConfigurationProperty
set PropertyType "Action" ActionConfigurationProperty
newValue ActionConfigurationProperty {Maybe ActionFilterConfigurationProperty
()
Value Text
haddock_workaround_ :: ActionConfigurationProperty -> ()
action :: ActionConfigurationProperty -> Value Text
filterConfiguration :: ActionConfigurationProperty
-> Maybe ActionFilterConfigurationProperty
haddock_workaround_ :: ()
action :: Value Text
filterConfiguration :: Maybe ActionFilterConfigurationProperty
..}
    = ActionConfigurationProperty {action :: Value Text
action = PropertyType "Action" ActionConfigurationProperty
Value Text
newValue, Maybe ActionFilterConfigurationProperty
()
haddock_workaround_ :: ()
filterConfiguration :: Maybe ActionFilterConfigurationProperty
haddock_workaround_ :: ()
filterConfiguration :: Maybe ActionFilterConfigurationProperty
..}
instance Property "FilterConfiguration" ActionConfigurationProperty where
  type PropertyType "FilterConfiguration" ActionConfigurationProperty = ActionFilterConfigurationProperty
  set :: PropertyType "FilterConfiguration" ActionConfigurationProperty
-> ActionConfigurationProperty -> ActionConfigurationProperty
set PropertyType "FilterConfiguration" ActionConfigurationProperty
newValue ActionConfigurationProperty {Maybe ActionFilterConfigurationProperty
()
Value Text
haddock_workaround_ :: ActionConfigurationProperty -> ()
action :: ActionConfigurationProperty -> Value Text
filterConfiguration :: ActionConfigurationProperty
-> Maybe ActionFilterConfigurationProperty
haddock_workaround_ :: ()
action :: Value Text
filterConfiguration :: Maybe ActionFilterConfigurationProperty
..}
    = ActionConfigurationProperty
        {filterConfiguration :: Maybe ActionFilterConfigurationProperty
filterConfiguration = ActionFilterConfigurationProperty
-> Maybe ActionFilterConfigurationProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "FilterConfiguration" ActionConfigurationProperty
ActionFilterConfigurationProperty
newValue, ()
Value Text
haddock_workaround_ :: ()
action :: Value Text
haddock_workaround_ :: ()
action :: Value Text
..}