module Stratosphere.Bedrock.Guardrail.WordPolicyConfigProperty (
        module Exports, WordPolicyConfigProperty(..),
        mkWordPolicyConfigProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Bedrock.Guardrail.ManagedWordsConfigProperty as Exports
import {-# SOURCE #-} Stratosphere.Bedrock.Guardrail.WordConfigProperty as Exports
import Stratosphere.ResourceProperties
data WordPolicyConfigProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-guardrail-wordpolicyconfig.html>
    WordPolicyConfigProperty {WordPolicyConfigProperty -> ()
haddock_workaround_ :: (),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-guardrail-wordpolicyconfig.html#cfn-bedrock-guardrail-wordpolicyconfig-managedwordlistsconfig>
                              WordPolicyConfigProperty -> Maybe [ManagedWordsConfigProperty]
managedWordListsConfig :: (Prelude.Maybe [ManagedWordsConfigProperty]),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-guardrail-wordpolicyconfig.html#cfn-bedrock-guardrail-wordpolicyconfig-wordsconfig>
                              WordPolicyConfigProperty -> Maybe [WordConfigProperty]
wordsConfig :: (Prelude.Maybe [WordConfigProperty])}
  deriving stock (WordPolicyConfigProperty -> WordPolicyConfigProperty -> Bool
(WordPolicyConfigProperty -> WordPolicyConfigProperty -> Bool)
-> (WordPolicyConfigProperty -> WordPolicyConfigProperty -> Bool)
-> Eq WordPolicyConfigProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: WordPolicyConfigProperty -> WordPolicyConfigProperty -> Bool
== :: WordPolicyConfigProperty -> WordPolicyConfigProperty -> Bool
$c/= :: WordPolicyConfigProperty -> WordPolicyConfigProperty -> Bool
/= :: WordPolicyConfigProperty -> WordPolicyConfigProperty -> Bool
Prelude.Eq, Int -> WordPolicyConfigProperty -> ShowS
[WordPolicyConfigProperty] -> ShowS
WordPolicyConfigProperty -> String
(Int -> WordPolicyConfigProperty -> ShowS)
-> (WordPolicyConfigProperty -> String)
-> ([WordPolicyConfigProperty] -> ShowS)
-> Show WordPolicyConfigProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> WordPolicyConfigProperty -> ShowS
showsPrec :: Int -> WordPolicyConfigProperty -> ShowS
$cshow :: WordPolicyConfigProperty -> String
show :: WordPolicyConfigProperty -> String
$cshowList :: [WordPolicyConfigProperty] -> ShowS
showList :: [WordPolicyConfigProperty] -> ShowS
Prelude.Show)
mkWordPolicyConfigProperty :: WordPolicyConfigProperty
mkWordPolicyConfigProperty :: WordPolicyConfigProperty
mkWordPolicyConfigProperty
  = WordPolicyConfigProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (),
       managedWordListsConfig :: Maybe [ManagedWordsConfigProperty]
managedWordListsConfig = Maybe [ManagedWordsConfigProperty]
forall a. Maybe a
Prelude.Nothing,
       wordsConfig :: Maybe [WordConfigProperty]
wordsConfig = Maybe [WordConfigProperty]
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties WordPolicyConfigProperty where
  toResourceProperties :: WordPolicyConfigProperty -> ResourceProperties
toResourceProperties WordPolicyConfigProperty {Maybe [ManagedWordsConfigProperty]
Maybe [WordConfigProperty]
()
haddock_workaround_ :: WordPolicyConfigProperty -> ()
managedWordListsConfig :: WordPolicyConfigProperty -> Maybe [ManagedWordsConfigProperty]
wordsConfig :: WordPolicyConfigProperty -> Maybe [WordConfigProperty]
haddock_workaround_ :: ()
managedWordListsConfig :: Maybe [ManagedWordsConfigProperty]
wordsConfig :: Maybe [WordConfigProperty]
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Bedrock::Guardrail.WordPolicyConfig",
         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 -> [ManagedWordsConfigProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"ManagedWordListsConfig"
                              ([ManagedWordsConfigProperty] -> (Key, Value))
-> Maybe [ManagedWordsConfigProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [ManagedWordsConfigProperty]
managedWordListsConfig,
                            Key -> [WordConfigProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"WordsConfig" ([WordConfigProperty] -> (Key, Value))
-> Maybe [WordConfigProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [WordConfigProperty]
wordsConfig])}
instance JSON.ToJSON WordPolicyConfigProperty where
  toJSON :: WordPolicyConfigProperty -> Value
toJSON WordPolicyConfigProperty {Maybe [ManagedWordsConfigProperty]
Maybe [WordConfigProperty]
()
haddock_workaround_ :: WordPolicyConfigProperty -> ()
managedWordListsConfig :: WordPolicyConfigProperty -> Maybe [ManagedWordsConfigProperty]
wordsConfig :: WordPolicyConfigProperty -> Maybe [WordConfigProperty]
haddock_workaround_ :: ()
managedWordListsConfig :: Maybe [ManagedWordsConfigProperty]
wordsConfig :: Maybe [WordConfigProperty]
..}
    = [(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 -> [ManagedWordsConfigProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"ManagedWordListsConfig"
                 ([ManagedWordsConfigProperty] -> (Key, Value))
-> Maybe [ManagedWordsConfigProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [ManagedWordsConfigProperty]
managedWordListsConfig,
               Key -> [WordConfigProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"WordsConfig" ([WordConfigProperty] -> (Key, Value))
-> Maybe [WordConfigProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [WordConfigProperty]
wordsConfig]))
instance Property "ManagedWordListsConfig" WordPolicyConfigProperty where
  type PropertyType "ManagedWordListsConfig" WordPolicyConfigProperty = [ManagedWordsConfigProperty]
  set :: PropertyType "ManagedWordListsConfig" WordPolicyConfigProperty
-> WordPolicyConfigProperty -> WordPolicyConfigProperty
set PropertyType "ManagedWordListsConfig" WordPolicyConfigProperty
newValue WordPolicyConfigProperty {Maybe [ManagedWordsConfigProperty]
Maybe [WordConfigProperty]
()
haddock_workaround_ :: WordPolicyConfigProperty -> ()
managedWordListsConfig :: WordPolicyConfigProperty -> Maybe [ManagedWordsConfigProperty]
wordsConfig :: WordPolicyConfigProperty -> Maybe [WordConfigProperty]
haddock_workaround_ :: ()
managedWordListsConfig :: Maybe [ManagedWordsConfigProperty]
wordsConfig :: Maybe [WordConfigProperty]
..}
    = WordPolicyConfigProperty
        {managedWordListsConfig :: Maybe [ManagedWordsConfigProperty]
managedWordListsConfig = [ManagedWordsConfigProperty] -> Maybe [ManagedWordsConfigProperty]
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure [ManagedWordsConfigProperty]
PropertyType "ManagedWordListsConfig" WordPolicyConfigProperty
newValue, Maybe [WordConfigProperty]
()
haddock_workaround_ :: ()
wordsConfig :: Maybe [WordConfigProperty]
haddock_workaround_ :: ()
wordsConfig :: Maybe [WordConfigProperty]
..}
instance Property "WordsConfig" WordPolicyConfigProperty where
  type PropertyType "WordsConfig" WordPolicyConfigProperty = [WordConfigProperty]
  set :: PropertyType "WordsConfig" WordPolicyConfigProperty
-> WordPolicyConfigProperty -> WordPolicyConfigProperty
set PropertyType "WordsConfig" WordPolicyConfigProperty
newValue WordPolicyConfigProperty {Maybe [ManagedWordsConfigProperty]
Maybe [WordConfigProperty]
()
haddock_workaround_ :: WordPolicyConfigProperty -> ()
managedWordListsConfig :: WordPolicyConfigProperty -> Maybe [ManagedWordsConfigProperty]
wordsConfig :: WordPolicyConfigProperty -> Maybe [WordConfigProperty]
haddock_workaround_ :: ()
managedWordListsConfig :: Maybe [ManagedWordsConfigProperty]
wordsConfig :: Maybe [WordConfigProperty]
..}
    = WordPolicyConfigProperty
        {wordsConfig :: Maybe [WordConfigProperty]
wordsConfig = [WordConfigProperty] -> Maybe [WordConfigProperty]
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure [WordConfigProperty]
PropertyType "WordsConfig" WordPolicyConfigProperty
newValue, Maybe [ManagedWordsConfigProperty]
()
haddock_workaround_ :: ()
managedWordListsConfig :: Maybe [ManagedWordsConfigProperty]
haddock_workaround_ :: ()
managedWordListsConfig :: Maybe [ManagedWordsConfigProperty]
..}