module Stratosphere.KinesisFirehose.DeliveryStream.DeserializerProperty (
        module Exports, DeserializerProperty(..), mkDeserializerProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.KinesisFirehose.DeliveryStream.HiveJsonSerDeProperty as Exports
import {-# SOURCE #-} Stratosphere.KinesisFirehose.DeliveryStream.OpenXJsonSerDeProperty as Exports
import Stratosphere.ResourceProperties
data DeserializerProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deserializer.html>
    DeserializerProperty {DeserializerProperty -> ()
haddock_workaround_ :: (),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deserializer.html#cfn-kinesisfirehose-deliverystream-deserializer-hivejsonserde>
                          DeserializerProperty -> Maybe HiveJsonSerDeProperty
hiveJsonSerDe :: (Prelude.Maybe HiveJsonSerDeProperty),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deserializer.html#cfn-kinesisfirehose-deliverystream-deserializer-openxjsonserde>
                          DeserializerProperty -> Maybe OpenXJsonSerDeProperty
openXJsonSerDe :: (Prelude.Maybe OpenXJsonSerDeProperty)}
  deriving stock (DeserializerProperty -> DeserializerProperty -> Bool
(DeserializerProperty -> DeserializerProperty -> Bool)
-> (DeserializerProperty -> DeserializerProperty -> Bool)
-> Eq DeserializerProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DeserializerProperty -> DeserializerProperty -> Bool
== :: DeserializerProperty -> DeserializerProperty -> Bool
$c/= :: DeserializerProperty -> DeserializerProperty -> Bool
/= :: DeserializerProperty -> DeserializerProperty -> Bool
Prelude.Eq, Int -> DeserializerProperty -> ShowS
[DeserializerProperty] -> ShowS
DeserializerProperty -> String
(Int -> DeserializerProperty -> ShowS)
-> (DeserializerProperty -> String)
-> ([DeserializerProperty] -> ShowS)
-> Show DeserializerProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DeserializerProperty -> ShowS
showsPrec :: Int -> DeserializerProperty -> ShowS
$cshow :: DeserializerProperty -> String
show :: DeserializerProperty -> String
$cshowList :: [DeserializerProperty] -> ShowS
showList :: [DeserializerProperty] -> ShowS
Prelude.Show)
mkDeserializerProperty :: DeserializerProperty
mkDeserializerProperty :: DeserializerProperty
mkDeserializerProperty
  = DeserializerProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), hiveJsonSerDe :: Maybe HiveJsonSerDeProperty
hiveJsonSerDe = Maybe HiveJsonSerDeProperty
forall a. Maybe a
Prelude.Nothing,
       openXJsonSerDe :: Maybe OpenXJsonSerDeProperty
openXJsonSerDe = Maybe OpenXJsonSerDeProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties DeserializerProperty where
  toResourceProperties :: DeserializerProperty -> ResourceProperties
toResourceProperties DeserializerProperty {Maybe HiveJsonSerDeProperty
Maybe OpenXJsonSerDeProperty
()
haddock_workaround_ :: DeserializerProperty -> ()
hiveJsonSerDe :: DeserializerProperty -> Maybe HiveJsonSerDeProperty
openXJsonSerDe :: DeserializerProperty -> Maybe OpenXJsonSerDeProperty
haddock_workaround_ :: ()
hiveJsonSerDe :: Maybe HiveJsonSerDeProperty
openXJsonSerDe :: Maybe OpenXJsonSerDeProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::KinesisFirehose::DeliveryStream.Deserializer",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                           [Key -> HiveJsonSerDeProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"HiveJsonSerDe" (HiveJsonSerDeProperty -> (Key, Value))
-> Maybe HiveJsonSerDeProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HiveJsonSerDeProperty
hiveJsonSerDe,
                            Key -> OpenXJsonSerDeProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"OpenXJsonSerDe" (OpenXJsonSerDeProperty -> (Key, Value))
-> Maybe OpenXJsonSerDeProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe OpenXJsonSerDeProperty
openXJsonSerDe])}
instance JSON.ToJSON DeserializerProperty where
  toJSON :: DeserializerProperty -> Value
toJSON DeserializerProperty {Maybe HiveJsonSerDeProperty
Maybe OpenXJsonSerDeProperty
()
haddock_workaround_ :: DeserializerProperty -> ()
hiveJsonSerDe :: DeserializerProperty -> Maybe HiveJsonSerDeProperty
openXJsonSerDe :: DeserializerProperty -> Maybe OpenXJsonSerDeProperty
haddock_workaround_ :: ()
hiveJsonSerDe :: Maybe HiveJsonSerDeProperty
openXJsonSerDe :: Maybe OpenXJsonSerDeProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
              [Key -> HiveJsonSerDeProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"HiveJsonSerDe" (HiveJsonSerDeProperty -> (Key, Value))
-> Maybe HiveJsonSerDeProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HiveJsonSerDeProperty
hiveJsonSerDe,
               Key -> OpenXJsonSerDeProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"OpenXJsonSerDe" (OpenXJsonSerDeProperty -> (Key, Value))
-> Maybe OpenXJsonSerDeProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe OpenXJsonSerDeProperty
openXJsonSerDe]))
instance Property "HiveJsonSerDe" DeserializerProperty where
  type PropertyType "HiveJsonSerDe" DeserializerProperty = HiveJsonSerDeProperty
  set :: PropertyType "HiveJsonSerDe" DeserializerProperty
-> DeserializerProperty -> DeserializerProperty
set PropertyType "HiveJsonSerDe" DeserializerProperty
newValue DeserializerProperty {Maybe HiveJsonSerDeProperty
Maybe OpenXJsonSerDeProperty
()
haddock_workaround_ :: DeserializerProperty -> ()
hiveJsonSerDe :: DeserializerProperty -> Maybe HiveJsonSerDeProperty
openXJsonSerDe :: DeserializerProperty -> Maybe OpenXJsonSerDeProperty
haddock_workaround_ :: ()
hiveJsonSerDe :: Maybe HiveJsonSerDeProperty
openXJsonSerDe :: Maybe OpenXJsonSerDeProperty
..}
    = DeserializerProperty {hiveJsonSerDe :: Maybe HiveJsonSerDeProperty
hiveJsonSerDe = HiveJsonSerDeProperty -> Maybe HiveJsonSerDeProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "HiveJsonSerDe" DeserializerProperty
HiveJsonSerDeProperty
newValue, Maybe OpenXJsonSerDeProperty
()
haddock_workaround_ :: ()
openXJsonSerDe :: Maybe OpenXJsonSerDeProperty
haddock_workaround_ :: ()
openXJsonSerDe :: Maybe OpenXJsonSerDeProperty
..}
instance Property "OpenXJsonSerDe" DeserializerProperty where
  type PropertyType "OpenXJsonSerDe" DeserializerProperty = OpenXJsonSerDeProperty
  set :: PropertyType "OpenXJsonSerDe" DeserializerProperty
-> DeserializerProperty -> DeserializerProperty
set PropertyType "OpenXJsonSerDe" DeserializerProperty
newValue DeserializerProperty {Maybe HiveJsonSerDeProperty
Maybe OpenXJsonSerDeProperty
()
haddock_workaround_ :: DeserializerProperty -> ()
hiveJsonSerDe :: DeserializerProperty -> Maybe HiveJsonSerDeProperty
openXJsonSerDe :: DeserializerProperty -> Maybe OpenXJsonSerDeProperty
haddock_workaround_ :: ()
hiveJsonSerDe :: Maybe HiveJsonSerDeProperty
openXJsonSerDe :: Maybe OpenXJsonSerDeProperty
..}
    = DeserializerProperty {openXJsonSerDe :: Maybe OpenXJsonSerDeProperty
openXJsonSerDe = OpenXJsonSerDeProperty -> Maybe OpenXJsonSerDeProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "OpenXJsonSerDe" DeserializerProperty
OpenXJsonSerDeProperty
newValue, Maybe HiveJsonSerDeProperty
()
haddock_workaround_ :: ()
hiveJsonSerDe :: Maybe HiveJsonSerDeProperty
haddock_workaround_ :: ()
hiveJsonSerDe :: Maybe HiveJsonSerDeProperty
..}