module Stratosphere.EntityResolution.MatchingWorkflow.OutputSourceProperty ( module Exports, OutputSourceProperty(..), mkOutputSourceProperty ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.EntityResolution.MatchingWorkflow.OutputAttributeProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Value data OutputSourceProperty = -- | See: OutputSourceProperty {haddock_workaround_ :: (), -- | See: applyNormalization :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: kMSArn :: (Prelude.Maybe (Value Prelude.Text)), -- | See: output :: [OutputAttributeProperty], -- | See: outputS3Path :: (Value Prelude.Text)} deriving stock (Prelude.Eq, Prelude.Show) mkOutputSourceProperty :: [OutputAttributeProperty] -> Value Prelude.Text -> OutputSourceProperty mkOutputSourceProperty output outputS3Path = OutputSourceProperty {haddock_workaround_ = (), output = output, outputS3Path = outputS3Path, applyNormalization = Prelude.Nothing, kMSArn = Prelude.Nothing} instance ToResourceProperties OutputSourceProperty where toResourceProperties OutputSourceProperty {..} = ResourceProperties {awsType = "AWS::EntityResolution::MatchingWorkflow.OutputSource", supportsTags = Prelude.False, properties = Prelude.fromList ((Prelude.<>) ["Output" JSON..= output, "OutputS3Path" JSON..= outputS3Path] (Prelude.catMaybes [(JSON..=) "ApplyNormalization" Prelude.<$> applyNormalization, (JSON..=) "KMSArn" Prelude.<$> kMSArn]))} instance JSON.ToJSON OutputSourceProperty where toJSON OutputSourceProperty {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["Output" JSON..= output, "OutputS3Path" JSON..= outputS3Path] (Prelude.catMaybes [(JSON..=) "ApplyNormalization" Prelude.<$> applyNormalization, (JSON..=) "KMSArn" Prelude.<$> kMSArn]))) instance Property "ApplyNormalization" OutputSourceProperty where type PropertyType "ApplyNormalization" OutputSourceProperty = Value Prelude.Bool set newValue OutputSourceProperty {..} = OutputSourceProperty {applyNormalization = Prelude.pure newValue, ..} instance Property "KMSArn" OutputSourceProperty where type PropertyType "KMSArn" OutputSourceProperty = Value Prelude.Text set newValue OutputSourceProperty {..} = OutputSourceProperty {kMSArn = Prelude.pure newValue, ..} instance Property "Output" OutputSourceProperty where type PropertyType "Output" OutputSourceProperty = [OutputAttributeProperty] set newValue OutputSourceProperty {..} = OutputSourceProperty {output = newValue, ..} instance Property "OutputS3Path" OutputSourceProperty where type PropertyType "OutputS3Path" OutputSourceProperty = Value Prelude.Text set newValue OutputSourceProperty {..} = OutputSourceProperty {outputS3Path = newValue, ..}