stratosphere-bedrock-1.0.0: gen/Stratosphere/Bedrock/Guardrail.hs
module Stratosphere.Bedrock.Guardrail (
module Exports, Guardrail(..), mkGuardrail
) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Bedrock.Guardrail.AutomatedReasoningPolicyConfigProperty as Exports
import {-# SOURCE #-} Stratosphere.Bedrock.Guardrail.ContentPolicyConfigProperty as Exports
import {-# SOURCE #-} Stratosphere.Bedrock.Guardrail.ContextualGroundingPolicyConfigProperty as Exports
import {-# SOURCE #-} Stratosphere.Bedrock.Guardrail.GuardrailCrossRegionConfigProperty as Exports
import {-# SOURCE #-} Stratosphere.Bedrock.Guardrail.SensitiveInformationPolicyConfigProperty as Exports
import {-# SOURCE #-} Stratosphere.Bedrock.Guardrail.TopicPolicyConfigProperty as Exports
import {-# SOURCE #-} Stratosphere.Bedrock.Guardrail.WordPolicyConfigProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Tag
import Stratosphere.Value
data Guardrail
= -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrail.html>
Guardrail {haddock_workaround_ :: (),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrail.html#cfn-bedrock-guardrail-automatedreasoningpolicyconfig>
automatedReasoningPolicyConfig :: (Prelude.Maybe AutomatedReasoningPolicyConfigProperty),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrail.html#cfn-bedrock-guardrail-blockedinputmessaging>
blockedInputMessaging :: (Value Prelude.Text),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrail.html#cfn-bedrock-guardrail-blockedoutputsmessaging>
blockedOutputsMessaging :: (Value Prelude.Text),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrail.html#cfn-bedrock-guardrail-contentpolicyconfig>
contentPolicyConfig :: (Prelude.Maybe ContentPolicyConfigProperty),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrail.html#cfn-bedrock-guardrail-contextualgroundingpolicyconfig>
contextualGroundingPolicyConfig :: (Prelude.Maybe ContextualGroundingPolicyConfigProperty),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrail.html#cfn-bedrock-guardrail-crossregionconfig>
crossRegionConfig :: (Prelude.Maybe GuardrailCrossRegionConfigProperty),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrail.html#cfn-bedrock-guardrail-description>
description :: (Prelude.Maybe (Value Prelude.Text)),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrail.html#cfn-bedrock-guardrail-kmskeyarn>
kmsKeyArn :: (Prelude.Maybe (Value Prelude.Text)),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrail.html#cfn-bedrock-guardrail-name>
name :: (Value Prelude.Text),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrail.html#cfn-bedrock-guardrail-sensitiveinformationpolicyconfig>
sensitiveInformationPolicyConfig :: (Prelude.Maybe SensitiveInformationPolicyConfigProperty),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrail.html#cfn-bedrock-guardrail-tags>
tags :: (Prelude.Maybe [Tag]),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrail.html#cfn-bedrock-guardrail-topicpolicyconfig>
topicPolicyConfig :: (Prelude.Maybe TopicPolicyConfigProperty),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrail.html#cfn-bedrock-guardrail-wordpolicyconfig>
wordPolicyConfig :: (Prelude.Maybe WordPolicyConfigProperty)}
deriving stock (Prelude.Eq, Prelude.Show)
mkGuardrail ::
Value Prelude.Text
-> Value Prelude.Text -> Value Prelude.Text -> Guardrail
mkGuardrail blockedInputMessaging blockedOutputsMessaging name
= Guardrail
{haddock_workaround_ = (),
blockedInputMessaging = blockedInputMessaging,
blockedOutputsMessaging = blockedOutputsMessaging, name = name,
automatedReasoningPolicyConfig = Prelude.Nothing,
contentPolicyConfig = Prelude.Nothing,
contextualGroundingPolicyConfig = Prelude.Nothing,
crossRegionConfig = Prelude.Nothing, description = Prelude.Nothing,
kmsKeyArn = Prelude.Nothing,
sensitiveInformationPolicyConfig = Prelude.Nothing,
tags = Prelude.Nothing, topicPolicyConfig = Prelude.Nothing,
wordPolicyConfig = Prelude.Nothing}
instance ToResourceProperties Guardrail where
toResourceProperties Guardrail {..}
= ResourceProperties
{awsType = "AWS::Bedrock::Guardrail", supportsTags = Prelude.True,
properties = Prelude.fromList
((Prelude.<>)
["BlockedInputMessaging" JSON..= blockedInputMessaging,
"BlockedOutputsMessaging" JSON..= blockedOutputsMessaging,
"Name" JSON..= name]
(Prelude.catMaybes
[(JSON..=) "AutomatedReasoningPolicyConfig"
Prelude.<$> automatedReasoningPolicyConfig,
(JSON..=) "ContentPolicyConfig" Prelude.<$> contentPolicyConfig,
(JSON..=) "ContextualGroundingPolicyConfig"
Prelude.<$> contextualGroundingPolicyConfig,
(JSON..=) "CrossRegionConfig" Prelude.<$> crossRegionConfig,
(JSON..=) "Description" Prelude.<$> description,
(JSON..=) "KmsKeyArn" Prelude.<$> kmsKeyArn,
(JSON..=) "SensitiveInformationPolicyConfig"
Prelude.<$> sensitiveInformationPolicyConfig,
(JSON..=) "Tags" Prelude.<$> tags,
(JSON..=) "TopicPolicyConfig" Prelude.<$> topicPolicyConfig,
(JSON..=) "WordPolicyConfig" Prelude.<$> wordPolicyConfig]))}
instance JSON.ToJSON Guardrail where
toJSON Guardrail {..}
= JSON.object
(Prelude.fromList
((Prelude.<>)
["BlockedInputMessaging" JSON..= blockedInputMessaging,
"BlockedOutputsMessaging" JSON..= blockedOutputsMessaging,
"Name" JSON..= name]
(Prelude.catMaybes
[(JSON..=) "AutomatedReasoningPolicyConfig"
Prelude.<$> automatedReasoningPolicyConfig,
(JSON..=) "ContentPolicyConfig" Prelude.<$> contentPolicyConfig,
(JSON..=) "ContextualGroundingPolicyConfig"
Prelude.<$> contextualGroundingPolicyConfig,
(JSON..=) "CrossRegionConfig" Prelude.<$> crossRegionConfig,
(JSON..=) "Description" Prelude.<$> description,
(JSON..=) "KmsKeyArn" Prelude.<$> kmsKeyArn,
(JSON..=) "SensitiveInformationPolicyConfig"
Prelude.<$> sensitiveInformationPolicyConfig,
(JSON..=) "Tags" Prelude.<$> tags,
(JSON..=) "TopicPolicyConfig" Prelude.<$> topicPolicyConfig,
(JSON..=) "WordPolicyConfig" Prelude.<$> wordPolicyConfig])))
instance Property "AutomatedReasoningPolicyConfig" Guardrail where
type PropertyType "AutomatedReasoningPolicyConfig" Guardrail = AutomatedReasoningPolicyConfigProperty
set newValue Guardrail {..}
= Guardrail
{automatedReasoningPolicyConfig = Prelude.pure newValue, ..}
instance Property "BlockedInputMessaging" Guardrail where
type PropertyType "BlockedInputMessaging" Guardrail = Value Prelude.Text
set newValue Guardrail {..}
= Guardrail {blockedInputMessaging = newValue, ..}
instance Property "BlockedOutputsMessaging" Guardrail where
type PropertyType "BlockedOutputsMessaging" Guardrail = Value Prelude.Text
set newValue Guardrail {..}
= Guardrail {blockedOutputsMessaging = newValue, ..}
instance Property "ContentPolicyConfig" Guardrail where
type PropertyType "ContentPolicyConfig" Guardrail = ContentPolicyConfigProperty
set newValue Guardrail {..}
= Guardrail {contentPolicyConfig = Prelude.pure newValue, ..}
instance Property "ContextualGroundingPolicyConfig" Guardrail where
type PropertyType "ContextualGroundingPolicyConfig" Guardrail = ContextualGroundingPolicyConfigProperty
set newValue Guardrail {..}
= Guardrail
{contextualGroundingPolicyConfig = Prelude.pure newValue, ..}
instance Property "CrossRegionConfig" Guardrail where
type PropertyType "CrossRegionConfig" Guardrail = GuardrailCrossRegionConfigProperty
set newValue Guardrail {..}
= Guardrail {crossRegionConfig = Prelude.pure newValue, ..}
instance Property "Description" Guardrail where
type PropertyType "Description" Guardrail = Value Prelude.Text
set newValue Guardrail {..}
= Guardrail {description = Prelude.pure newValue, ..}
instance Property "KmsKeyArn" Guardrail where
type PropertyType "KmsKeyArn" Guardrail = Value Prelude.Text
set newValue Guardrail {..}
= Guardrail {kmsKeyArn = Prelude.pure newValue, ..}
instance Property "Name" Guardrail where
type PropertyType "Name" Guardrail = Value Prelude.Text
set newValue Guardrail {..} = Guardrail {name = newValue, ..}
instance Property "SensitiveInformationPolicyConfig" Guardrail where
type PropertyType "SensitiveInformationPolicyConfig" Guardrail = SensitiveInformationPolicyConfigProperty
set newValue Guardrail {..}
= Guardrail
{sensitiveInformationPolicyConfig = Prelude.pure newValue, ..}
instance Property "Tags" Guardrail where
type PropertyType "Tags" Guardrail = [Tag]
set newValue Guardrail {..}
= Guardrail {tags = Prelude.pure newValue, ..}
instance Property "TopicPolicyConfig" Guardrail where
type PropertyType "TopicPolicyConfig" Guardrail = TopicPolicyConfigProperty
set newValue Guardrail {..}
= Guardrail {topicPolicyConfig = Prelude.pure newValue, ..}
instance Property "WordPolicyConfig" Guardrail where
type PropertyType "WordPolicyConfig" Guardrail = WordPolicyConfigProperty
set newValue Guardrail {..}
= Guardrail {wordPolicyConfig = Prelude.pure newValue, ..}