packages feed

stratosphere-bedrock-1.0.0: gen/Stratosphere/Bedrock/Guardrail/TopicPolicyConfigProperty.hs

module Stratosphere.Bedrock.Guardrail.TopicPolicyConfigProperty (
        module Exports, TopicPolicyConfigProperty(..),
        mkTopicPolicyConfigProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Bedrock.Guardrail.TopicConfigProperty as Exports
import {-# SOURCE #-} Stratosphere.Bedrock.Guardrail.TopicsTierConfigProperty as Exports
import Stratosphere.ResourceProperties
data TopicPolicyConfigProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-guardrail-topicpolicyconfig.html>
    TopicPolicyConfigProperty {haddock_workaround_ :: (),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-guardrail-topicpolicyconfig.html#cfn-bedrock-guardrail-topicpolicyconfig-topicsconfig>
                               topicsConfig :: [TopicConfigProperty],
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-guardrail-topicpolicyconfig.html#cfn-bedrock-guardrail-topicpolicyconfig-topicstierconfig>
                               topicsTierConfig :: (Prelude.Maybe TopicsTierConfigProperty)}
  deriving stock (Prelude.Eq, Prelude.Show)
mkTopicPolicyConfigProperty ::
  [TopicConfigProperty] -> TopicPolicyConfigProperty
mkTopicPolicyConfigProperty topicsConfig
  = TopicPolicyConfigProperty
      {haddock_workaround_ = (), topicsConfig = topicsConfig,
       topicsTierConfig = Prelude.Nothing}
instance ToResourceProperties TopicPolicyConfigProperty where
  toResourceProperties TopicPolicyConfigProperty {..}
    = ResourceProperties
        {awsType = "AWS::Bedrock::Guardrail.TopicPolicyConfig",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["TopicsConfig" JSON..= topicsConfig]
                           (Prelude.catMaybes
                              [(JSON..=) "TopicsTierConfig" Prelude.<$> topicsTierConfig]))}
instance JSON.ToJSON TopicPolicyConfigProperty where
  toJSON TopicPolicyConfigProperty {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["TopicsConfig" JSON..= topicsConfig]
              (Prelude.catMaybes
                 [(JSON..=) "TopicsTierConfig" Prelude.<$> topicsTierConfig])))
instance Property "TopicsConfig" TopicPolicyConfigProperty where
  type PropertyType "TopicsConfig" TopicPolicyConfigProperty = [TopicConfigProperty]
  set newValue TopicPolicyConfigProperty {..}
    = TopicPolicyConfigProperty {topicsConfig = newValue, ..}
instance Property "TopicsTierConfig" TopicPolicyConfigProperty where
  type PropertyType "TopicsTierConfig" TopicPolicyConfigProperty = TopicsTierConfigProperty
  set newValue TopicPolicyConfigProperty {..}
    = TopicPolicyConfigProperty
        {topicsTierConfig = Prelude.pure newValue, ..}