packages feed

stratosphere-b2bi-1.0.0: gen/Stratosphere/B2BI/Transformer.hs

module Stratosphere.B2BI.Transformer (
        module Exports, Transformer(..), mkTransformer
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.B2BI.Transformer.InputConversionProperty as Exports
import {-# SOURCE #-} Stratosphere.B2BI.Transformer.MappingProperty as Exports
import {-# SOURCE #-} Stratosphere.B2BI.Transformer.OutputConversionProperty as Exports
import {-# SOURCE #-} Stratosphere.B2BI.Transformer.SampleDocumentsProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Tag
import Stratosphere.Value
data Transformer
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-transformer.html>
    Transformer {haddock_workaround_ :: (),
                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-transformer.html#cfn-b2bi-transformer-inputconversion>
                 inputConversion :: (Prelude.Maybe InputConversionProperty),
                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-transformer.html#cfn-b2bi-transformer-mapping>
                 mapping :: (Prelude.Maybe MappingProperty),
                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-transformer.html#cfn-b2bi-transformer-name>
                 name :: (Value Prelude.Text),
                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-transformer.html#cfn-b2bi-transformer-outputconversion>
                 outputConversion :: (Prelude.Maybe OutputConversionProperty),
                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-transformer.html#cfn-b2bi-transformer-sampledocuments>
                 sampleDocuments :: (Prelude.Maybe SampleDocumentsProperty),
                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-transformer.html#cfn-b2bi-transformer-status>
                 status :: (Value Prelude.Text),
                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-b2bi-transformer.html#cfn-b2bi-transformer-tags>
                 tags :: (Prelude.Maybe [Tag])}
  deriving stock (Prelude.Eq, Prelude.Show)
mkTransformer ::
  Value Prelude.Text -> Value Prelude.Text -> Transformer
mkTransformer name status
  = Transformer
      {haddock_workaround_ = (), name = name, status = status,
       inputConversion = Prelude.Nothing, mapping = Prelude.Nothing,
       outputConversion = Prelude.Nothing,
       sampleDocuments = Prelude.Nothing, tags = Prelude.Nothing}
instance ToResourceProperties Transformer where
  toResourceProperties Transformer {..}
    = ResourceProperties
        {awsType = "AWS::B2BI::Transformer", supportsTags = Prelude.True,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["Name" JSON..= name, "Status" JSON..= status]
                           (Prelude.catMaybes
                              [(JSON..=) "InputConversion" Prelude.<$> inputConversion,
                               (JSON..=) "Mapping" Prelude.<$> mapping,
                               (JSON..=) "OutputConversion" Prelude.<$> outputConversion,
                               (JSON..=) "SampleDocuments" Prelude.<$> sampleDocuments,
                               (JSON..=) "Tags" Prelude.<$> tags]))}
instance JSON.ToJSON Transformer where
  toJSON Transformer {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["Name" JSON..= name, "Status" JSON..= status]
              (Prelude.catMaybes
                 [(JSON..=) "InputConversion" Prelude.<$> inputConversion,
                  (JSON..=) "Mapping" Prelude.<$> mapping,
                  (JSON..=) "OutputConversion" Prelude.<$> outputConversion,
                  (JSON..=) "SampleDocuments" Prelude.<$> sampleDocuments,
                  (JSON..=) "Tags" Prelude.<$> tags])))
instance Property "InputConversion" Transformer where
  type PropertyType "InputConversion" Transformer = InputConversionProperty
  set newValue Transformer {..}
    = Transformer {inputConversion = Prelude.pure newValue, ..}
instance Property "Mapping" Transformer where
  type PropertyType "Mapping" Transformer = MappingProperty
  set newValue Transformer {..}
    = Transformer {mapping = Prelude.pure newValue, ..}
instance Property "Name" Transformer where
  type PropertyType "Name" Transformer = Value Prelude.Text
  set newValue Transformer {..} = Transformer {name = newValue, ..}
instance Property "OutputConversion" Transformer where
  type PropertyType "OutputConversion" Transformer = OutputConversionProperty
  set newValue Transformer {..}
    = Transformer {outputConversion = Prelude.pure newValue, ..}
instance Property "SampleDocuments" Transformer where
  type PropertyType "SampleDocuments" Transformer = SampleDocumentsProperty
  set newValue Transformer {..}
    = Transformer {sampleDocuments = Prelude.pure newValue, ..}
instance Property "Status" Transformer where
  type PropertyType "Status" Transformer = Value Prelude.Text
  set newValue Transformer {..} = Transformer {status = newValue, ..}
instance Property "Tags" Transformer where
  type PropertyType "Tags" Transformer = [Tag]
  set newValue Transformer {..}
    = Transformer {tags = Prelude.pure newValue, ..}