module Stratosphere.KinesisFirehose.DeliveryStream.PartitionFieldProperty (
        PartitionFieldProperty(..), mkPartitionFieldProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data PartitionFieldProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-partitionfield.html>
    PartitionFieldProperty {PartitionFieldProperty -> ()
haddock_workaround_ :: (),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-partitionfield.html#cfn-kinesisfirehose-deliverystream-partitionfield-sourcename>
                            PartitionFieldProperty -> Value Text
sourceName :: (Value Prelude.Text)}
  deriving stock (PartitionFieldProperty -> PartitionFieldProperty -> Bool
(PartitionFieldProperty -> PartitionFieldProperty -> Bool)
-> (PartitionFieldProperty -> PartitionFieldProperty -> Bool)
-> Eq PartitionFieldProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PartitionFieldProperty -> PartitionFieldProperty -> Bool
== :: PartitionFieldProperty -> PartitionFieldProperty -> Bool
$c/= :: PartitionFieldProperty -> PartitionFieldProperty -> Bool
/= :: PartitionFieldProperty -> PartitionFieldProperty -> Bool
Prelude.Eq, Int -> PartitionFieldProperty -> ShowS
[PartitionFieldProperty] -> ShowS
PartitionFieldProperty -> String
(Int -> PartitionFieldProperty -> ShowS)
-> (PartitionFieldProperty -> String)
-> ([PartitionFieldProperty] -> ShowS)
-> Show PartitionFieldProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PartitionFieldProperty -> ShowS
showsPrec :: Int -> PartitionFieldProperty -> ShowS
$cshow :: PartitionFieldProperty -> String
show :: PartitionFieldProperty -> String
$cshowList :: [PartitionFieldProperty] -> ShowS
showList :: [PartitionFieldProperty] -> ShowS
Prelude.Show)
mkPartitionFieldProperty ::
  Value Prelude.Text -> PartitionFieldProperty
mkPartitionFieldProperty :: Value Text -> PartitionFieldProperty
mkPartitionFieldProperty Value Text
sourceName
  = PartitionFieldProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), sourceName :: Value Text
sourceName = Value Text
sourceName}
instance ToResourceProperties PartitionFieldProperty where
  toResourceProperties :: PartitionFieldProperty -> ResourceProperties
toResourceProperties PartitionFieldProperty {()
Value Text
haddock_workaround_ :: PartitionFieldProperty -> ()
sourceName :: PartitionFieldProperty -> Value Text
haddock_workaround_ :: ()
sourceName :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::KinesisFirehose::DeliveryStream.PartitionField",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"SourceName" 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
sourceName]}
instance JSON.ToJSON PartitionFieldProperty where
  toJSON :: PartitionFieldProperty -> Value
toJSON PartitionFieldProperty {()
Value Text
haddock_workaround_ :: PartitionFieldProperty -> ()
sourceName :: PartitionFieldProperty -> Value Text
haddock_workaround_ :: ()
sourceName :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"SourceName" 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
sourceName]
instance Property "SourceName" PartitionFieldProperty where
  type PropertyType "SourceName" PartitionFieldProperty = Value Prelude.Text
  set :: PropertyType "SourceName" PartitionFieldProperty
-> PartitionFieldProperty -> PartitionFieldProperty
set PropertyType "SourceName" PartitionFieldProperty
newValue PartitionFieldProperty {()
Value Text
haddock_workaround_ :: PartitionFieldProperty -> ()
sourceName :: PartitionFieldProperty -> Value Text
haddock_workaround_ :: ()
sourceName :: Value Text
..}
    = PartitionFieldProperty {sourceName :: Value Text
sourceName = PropertyType "SourceName" PartitionFieldProperty
Value Text
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}