module Stratosphere.BedrockAgentCore.Memory.UserPreferenceOverrideProperty (
        module Exports, UserPreferenceOverrideProperty(..),
        mkUserPreferenceOverrideProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.BedrockAgentCore.Memory.UserPreferenceOverrideConsolidationConfigurationInputProperty as Exports
import {-# SOURCE #-} Stratosphere.BedrockAgentCore.Memory.UserPreferenceOverrideExtractionConfigurationInputProperty as Exports
import Stratosphere.ResourceProperties
data UserPreferenceOverrideProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrockagentcore-memory-userpreferenceoverride.html>
    UserPreferenceOverrideProperty {UserPreferenceOverrideProperty -> ()
haddock_workaround_ :: (),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrockagentcore-memory-userpreferenceoverride.html#cfn-bedrockagentcore-memory-userpreferenceoverride-consolidation>
                                    UserPreferenceOverrideProperty
-> Maybe
     UserPreferenceOverrideConsolidationConfigurationInputProperty
consolidation :: (Prelude.Maybe UserPreferenceOverrideConsolidationConfigurationInputProperty),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrockagentcore-memory-userpreferenceoverride.html#cfn-bedrockagentcore-memory-userpreferenceoverride-extraction>
                                    UserPreferenceOverrideProperty
-> Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
extraction :: (Prelude.Maybe UserPreferenceOverrideExtractionConfigurationInputProperty)}
  deriving stock (UserPreferenceOverrideProperty
-> UserPreferenceOverrideProperty -> Bool
(UserPreferenceOverrideProperty
 -> UserPreferenceOverrideProperty -> Bool)
-> (UserPreferenceOverrideProperty
    -> UserPreferenceOverrideProperty -> Bool)
-> Eq UserPreferenceOverrideProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: UserPreferenceOverrideProperty
-> UserPreferenceOverrideProperty -> Bool
== :: UserPreferenceOverrideProperty
-> UserPreferenceOverrideProperty -> Bool
$c/= :: UserPreferenceOverrideProperty
-> UserPreferenceOverrideProperty -> Bool
/= :: UserPreferenceOverrideProperty
-> UserPreferenceOverrideProperty -> Bool
Prelude.Eq, Int -> UserPreferenceOverrideProperty -> ShowS
[UserPreferenceOverrideProperty] -> ShowS
UserPreferenceOverrideProperty -> String
(Int -> UserPreferenceOverrideProperty -> ShowS)
-> (UserPreferenceOverrideProperty -> String)
-> ([UserPreferenceOverrideProperty] -> ShowS)
-> Show UserPreferenceOverrideProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> UserPreferenceOverrideProperty -> ShowS
showsPrec :: Int -> UserPreferenceOverrideProperty -> ShowS
$cshow :: UserPreferenceOverrideProperty -> String
show :: UserPreferenceOverrideProperty -> String
$cshowList :: [UserPreferenceOverrideProperty] -> ShowS
showList :: [UserPreferenceOverrideProperty] -> ShowS
Prelude.Show)
mkUserPreferenceOverrideProperty :: UserPreferenceOverrideProperty
mkUserPreferenceOverrideProperty :: UserPreferenceOverrideProperty
mkUserPreferenceOverrideProperty
  = UserPreferenceOverrideProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), consolidation :: Maybe UserPreferenceOverrideConsolidationConfigurationInputProperty
consolidation = Maybe UserPreferenceOverrideConsolidationConfigurationInputProperty
forall a. Maybe a
Prelude.Nothing,
       extraction :: Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
extraction = Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties UserPreferenceOverrideProperty where
  toResourceProperties :: UserPreferenceOverrideProperty -> ResourceProperties
toResourceProperties UserPreferenceOverrideProperty {Maybe UserPreferenceOverrideConsolidationConfigurationInputProperty
Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
()
haddock_workaround_ :: UserPreferenceOverrideProperty -> ()
consolidation :: UserPreferenceOverrideProperty
-> Maybe
     UserPreferenceOverrideConsolidationConfigurationInputProperty
extraction :: UserPreferenceOverrideProperty
-> Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
haddock_workaround_ :: ()
consolidation :: Maybe UserPreferenceOverrideConsolidationConfigurationInputProperty
extraction :: Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::BedrockAgentCore::Memory.UserPreferenceOverride",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                           [Key
-> UserPreferenceOverrideConsolidationConfigurationInputProperty
-> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Consolidation" (UserPreferenceOverrideConsolidationConfigurationInputProperty
 -> (Key, Value))
-> Maybe
     UserPreferenceOverrideConsolidationConfigurationInputProperty
-> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe UserPreferenceOverrideConsolidationConfigurationInputProperty
consolidation,
                            Key
-> UserPreferenceOverrideExtractionConfigurationInputProperty
-> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Extraction" (UserPreferenceOverrideExtractionConfigurationInputProperty
 -> (Key, Value))
-> Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
-> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
extraction])}
instance JSON.ToJSON UserPreferenceOverrideProperty where
  toJSON :: UserPreferenceOverrideProperty -> Value
toJSON UserPreferenceOverrideProperty {Maybe UserPreferenceOverrideConsolidationConfigurationInputProperty
Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
()
haddock_workaround_ :: UserPreferenceOverrideProperty -> ()
consolidation :: UserPreferenceOverrideProperty
-> Maybe
     UserPreferenceOverrideConsolidationConfigurationInputProperty
extraction :: UserPreferenceOverrideProperty
-> Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
haddock_workaround_ :: ()
consolidation :: Maybe UserPreferenceOverrideConsolidationConfigurationInputProperty
extraction :: Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
              [Key
-> UserPreferenceOverrideConsolidationConfigurationInputProperty
-> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Consolidation" (UserPreferenceOverrideConsolidationConfigurationInputProperty
 -> (Key, Value))
-> Maybe
     UserPreferenceOverrideConsolidationConfigurationInputProperty
-> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe UserPreferenceOverrideConsolidationConfigurationInputProperty
consolidation,
               Key
-> UserPreferenceOverrideExtractionConfigurationInputProperty
-> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Extraction" (UserPreferenceOverrideExtractionConfigurationInputProperty
 -> (Key, Value))
-> Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
-> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
extraction]))
instance Property "Consolidation" UserPreferenceOverrideProperty where
  type PropertyType "Consolidation" UserPreferenceOverrideProperty = UserPreferenceOverrideConsolidationConfigurationInputProperty
  set :: PropertyType "Consolidation" UserPreferenceOverrideProperty
-> UserPreferenceOverrideProperty -> UserPreferenceOverrideProperty
set PropertyType "Consolidation" UserPreferenceOverrideProperty
newValue UserPreferenceOverrideProperty {Maybe UserPreferenceOverrideConsolidationConfigurationInputProperty
Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
()
haddock_workaround_ :: UserPreferenceOverrideProperty -> ()
consolidation :: UserPreferenceOverrideProperty
-> Maybe
     UserPreferenceOverrideConsolidationConfigurationInputProperty
extraction :: UserPreferenceOverrideProperty
-> Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
haddock_workaround_ :: ()
consolidation :: Maybe UserPreferenceOverrideConsolidationConfigurationInputProperty
extraction :: Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
..}
    = UserPreferenceOverrideProperty
        {consolidation :: Maybe UserPreferenceOverrideConsolidationConfigurationInputProperty
consolidation = UserPreferenceOverrideConsolidationConfigurationInputProperty
-> Maybe
     UserPreferenceOverrideConsolidationConfigurationInputProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Consolidation" UserPreferenceOverrideProperty
UserPreferenceOverrideConsolidationConfigurationInputProperty
newValue, Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
()
haddock_workaround_ :: ()
extraction :: Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
haddock_workaround_ :: ()
extraction :: Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
..}
instance Property "Extraction" UserPreferenceOverrideProperty where
  type PropertyType "Extraction" UserPreferenceOverrideProperty = UserPreferenceOverrideExtractionConfigurationInputProperty
  set :: PropertyType "Extraction" UserPreferenceOverrideProperty
-> UserPreferenceOverrideProperty -> UserPreferenceOverrideProperty
set PropertyType "Extraction" UserPreferenceOverrideProperty
newValue UserPreferenceOverrideProperty {Maybe UserPreferenceOverrideConsolidationConfigurationInputProperty
Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
()
haddock_workaround_ :: UserPreferenceOverrideProperty -> ()
consolidation :: UserPreferenceOverrideProperty
-> Maybe
     UserPreferenceOverrideConsolidationConfigurationInputProperty
extraction :: UserPreferenceOverrideProperty
-> Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
haddock_workaround_ :: ()
consolidation :: Maybe UserPreferenceOverrideConsolidationConfigurationInputProperty
extraction :: Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
..}
    = UserPreferenceOverrideProperty
        {extraction :: Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
extraction = UserPreferenceOverrideExtractionConfigurationInputProperty
-> Maybe UserPreferenceOverrideExtractionConfigurationInputProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Extraction" UserPreferenceOverrideProperty
UserPreferenceOverrideExtractionConfigurationInputProperty
newValue, Maybe UserPreferenceOverrideConsolidationConfigurationInputProperty
()
haddock_workaround_ :: ()
consolidation :: Maybe UserPreferenceOverrideConsolidationConfigurationInputProperty
haddock_workaround_ :: ()
consolidation :: Maybe UserPreferenceOverrideConsolidationConfigurationInputProperty
..}