content: module Stratosphere.BCMDataExports.Export.S3OutputConfigurationsProperty (
          S3OutputConfigurationsProperty(..),
          mkS3OutputConfigurationsProperty
      ) where
  import qualified Data.Aeson as JSON
  import qualified Stratosphere.Prelude as Prelude
  import Stratosphere.Property
  import Stratosphere.ResourceProperties
  import Stratosphere.Value
  data S3OutputConfigurationsProperty
    = S3OutputConfigurationsProperty {compression :: (Value Prelude.Text),
                                      format :: (Value Prelude.Text),
                                      outputType :: (Value Prelude.Text),
                                      overwrite :: (Value Prelude.Text)}
    deriving stock (Prelude.Eq, Prelude.Show)
  mkS3OutputConfigurationsProperty ::
    Value Prelude.Text
    -> Value Prelude.Text
       -> Value Prelude.Text
          -> Value Prelude.Text -> S3OutputConfigurationsProperty
  mkS3OutputConfigurationsProperty
    compression
    format
    outputType
    overwrite
    = S3OutputConfigurationsProperty
        {compression = compression, format = format,
         outputType = outputType, overwrite = overwrite}
  instance ToResourceProperties S3OutputConfigurationsProperty where
    toResourceProperties S3OutputConfigurationsProperty {..}
      = ResourceProperties
          {awsType = "AWS::BCMDataExports::Export.S3OutputConfigurations",
           supportsTags = Prelude.False,
           properties = ["Compression" JSON..= compression,
                         "Format" JSON..= format, "OutputType" JSON..= outputType,
                         "Overwrite" JSON..= overwrite]}
  instance JSON.ToJSON S3OutputConfigurationsProperty where
    toJSON S3OutputConfigurationsProperty {..}
      = JSON.object
          ["Compression" JSON..= compression, "Format" JSON..= format,
           "OutputType" JSON..= outputType, "Overwrite" JSON..= overwrite]
  instance Property "Compression" S3OutputConfigurationsProperty where
    type PropertyType "Compression" S3OutputConfigurationsProperty = Value Prelude.Text
    set newValue S3OutputConfigurationsProperty {..}
      = S3OutputConfigurationsProperty {compression = newValue, ..}
  instance Property "Format" S3OutputConfigurationsProperty where
    type PropertyType "Format" S3OutputConfigurationsProperty = Value Prelude.Text
    set newValue S3OutputConfigurationsProperty {..}
      = S3OutputConfigurationsProperty {format = newValue, ..}
  instance Property "OutputType" S3OutputConfigurationsProperty where
    type PropertyType "OutputType" S3OutputConfigurationsProperty = Value Prelude.Text
    set newValue S3OutputConfigurationsProperty {..}
      = S3OutputConfigurationsProperty {outputType = newValue, ..}
  instance Property "Overwrite" S3OutputConfigurationsProperty where
    type PropertyType "Overwrite" S3OutputConfigurationsProperty = Value Prelude.Text
    set newValue S3OutputConfigurationsProperty {..}
      = S3OutputConfigurationsProperty {overwrite = newValue, ..}