module Stratosphere.Bedrock.DataSource.TransformationProperty (
        module Exports, TransformationProperty(..),
        mkTransformationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Bedrock.DataSource.TransformationFunctionProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data TransformationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-transformation.html>
    TransformationProperty {TransformationProperty -> ()
haddock_workaround_ :: (),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-transformation.html#cfn-bedrock-datasource-transformation-steptoapply>
                            TransformationProperty -> Value Text
stepToApply :: (Value Prelude.Text),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-transformation.html#cfn-bedrock-datasource-transformation-transformationfunction>
                            TransformationProperty -> TransformationFunctionProperty
transformationFunction :: TransformationFunctionProperty}
  deriving stock (TransformationProperty -> TransformationProperty -> Bool
(TransformationProperty -> TransformationProperty -> Bool)
-> (TransformationProperty -> TransformationProperty -> Bool)
-> Eq TransformationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TransformationProperty -> TransformationProperty -> Bool
== :: TransformationProperty -> TransformationProperty -> Bool
$c/= :: TransformationProperty -> TransformationProperty -> Bool
/= :: TransformationProperty -> TransformationProperty -> Bool
Prelude.Eq, Int -> TransformationProperty -> ShowS
[TransformationProperty] -> ShowS
TransformationProperty -> String
(Int -> TransformationProperty -> ShowS)
-> (TransformationProperty -> String)
-> ([TransformationProperty] -> ShowS)
-> Show TransformationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TransformationProperty -> ShowS
showsPrec :: Int -> TransformationProperty -> ShowS
$cshow :: TransformationProperty -> String
show :: TransformationProperty -> String
$cshowList :: [TransformationProperty] -> ShowS
showList :: [TransformationProperty] -> ShowS
Prelude.Show)
mkTransformationProperty ::
  Value Prelude.Text
  -> TransformationFunctionProperty -> TransformationProperty
mkTransformationProperty :: Value Text
-> TransformationFunctionProperty -> TransformationProperty
mkTransformationProperty Value Text
stepToApply TransformationFunctionProperty
transformationFunction
  = TransformationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), stepToApply :: Value Text
stepToApply = Value Text
stepToApply,
       transformationFunction :: TransformationFunctionProperty
transformationFunction = TransformationFunctionProperty
transformationFunction}
instance ToResourceProperties TransformationProperty where
  toResourceProperties :: TransformationProperty -> ResourceProperties
toResourceProperties TransformationProperty {()
Value Text
TransformationFunctionProperty
haddock_workaround_ :: TransformationProperty -> ()
stepToApply :: TransformationProperty -> Value Text
transformationFunction :: TransformationProperty -> TransformationFunctionProperty
haddock_workaround_ :: ()
stepToApply :: Value Text
transformationFunction :: TransformationFunctionProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Bedrock::DataSource.Transformation",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"StepToApply" 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
stepToApply,
                       Key
"TransformationFunction" Key -> TransformationFunctionProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= TransformationFunctionProperty
transformationFunction]}
instance JSON.ToJSON TransformationProperty where
  toJSON :: TransformationProperty -> Value
toJSON TransformationProperty {()
Value Text
TransformationFunctionProperty
haddock_workaround_ :: TransformationProperty -> ()
stepToApply :: TransformationProperty -> Value Text
transformationFunction :: TransformationProperty -> TransformationFunctionProperty
haddock_workaround_ :: ()
stepToApply :: Value Text
transformationFunction :: TransformationFunctionProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"StepToApply" 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
stepToApply,
         Key
"TransformationFunction" Key -> TransformationFunctionProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= TransformationFunctionProperty
transformationFunction]
instance Property "StepToApply" TransformationProperty where
  type PropertyType "StepToApply" TransformationProperty = Value Prelude.Text
  set :: PropertyType "StepToApply" TransformationProperty
-> TransformationProperty -> TransformationProperty
set PropertyType "StepToApply" TransformationProperty
newValue TransformationProperty {()
Value Text
TransformationFunctionProperty
haddock_workaround_ :: TransformationProperty -> ()
stepToApply :: TransformationProperty -> Value Text
transformationFunction :: TransformationProperty -> TransformationFunctionProperty
haddock_workaround_ :: ()
stepToApply :: Value Text
transformationFunction :: TransformationFunctionProperty
..}
    = TransformationProperty {stepToApply :: Value Text
stepToApply = PropertyType "StepToApply" TransformationProperty
Value Text
newValue, ()
TransformationFunctionProperty
haddock_workaround_ :: ()
transformationFunction :: TransformationFunctionProperty
haddock_workaround_ :: ()
transformationFunction :: TransformationFunctionProperty
..}
instance Property "TransformationFunction" TransformationProperty where
  type PropertyType "TransformationFunction" TransformationProperty = TransformationFunctionProperty
  set :: PropertyType "TransformationFunction" TransformationProperty
-> TransformationProperty -> TransformationProperty
set PropertyType "TransformationFunction" TransformationProperty
newValue TransformationProperty {()
Value Text
TransformationFunctionProperty
haddock_workaround_ :: TransformationProperty -> ()
stepToApply :: TransformationProperty -> Value Text
transformationFunction :: TransformationProperty -> TransformationFunctionProperty
haddock_workaround_ :: ()
stepToApply :: Value Text
transformationFunction :: TransformationFunctionProperty
..}
    = TransformationProperty {transformationFunction :: TransformationFunctionProperty
transformationFunction = PropertyType "TransformationFunction" TransformationProperty
TransformationFunctionProperty
newValue, ()
Value Text
haddock_workaround_ :: ()
stepToApply :: Value Text
haddock_workaround_ :: ()
stepToApply :: Value Text
..}