module Stratosphere.IoTAnalytics.Datastore.DatastorePartitionProperty (
        module Exports, DatastorePartitionProperty(..),
        mkDatastorePartitionProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.IoTAnalytics.Datastore.PartitionProperty as Exports
import {-# SOURCE #-} Stratosphere.IoTAnalytics.Datastore.TimestampPartitionProperty as Exports
import Stratosphere.ResourceProperties
data DatastorePartitionProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorepartition.html>
    DatastorePartitionProperty {DatastorePartitionProperty -> ()
haddock_workaround_ :: (),
                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorepartition.html#cfn-iotanalytics-datastore-datastorepartition-partition>
                                DatastorePartitionProperty -> Maybe PartitionProperty
partition :: (Prelude.Maybe PartitionProperty),
                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorepartition.html#cfn-iotanalytics-datastore-datastorepartition-timestamppartition>
                                DatastorePartitionProperty -> Maybe TimestampPartitionProperty
timestampPartition :: (Prelude.Maybe TimestampPartitionProperty)}
  deriving stock (DatastorePartitionProperty -> DatastorePartitionProperty -> Bool
(DatastorePartitionProperty -> DatastorePartitionProperty -> Bool)
-> (DatastorePartitionProperty
    -> DatastorePartitionProperty -> Bool)
-> Eq DatastorePartitionProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DatastorePartitionProperty -> DatastorePartitionProperty -> Bool
== :: DatastorePartitionProperty -> DatastorePartitionProperty -> Bool
$c/= :: DatastorePartitionProperty -> DatastorePartitionProperty -> Bool
/= :: DatastorePartitionProperty -> DatastorePartitionProperty -> Bool
Prelude.Eq, Int -> DatastorePartitionProperty -> ShowS
[DatastorePartitionProperty] -> ShowS
DatastorePartitionProperty -> String
(Int -> DatastorePartitionProperty -> ShowS)
-> (DatastorePartitionProperty -> String)
-> ([DatastorePartitionProperty] -> ShowS)
-> Show DatastorePartitionProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DatastorePartitionProperty -> ShowS
showsPrec :: Int -> DatastorePartitionProperty -> ShowS
$cshow :: DatastorePartitionProperty -> String
show :: DatastorePartitionProperty -> String
$cshowList :: [DatastorePartitionProperty] -> ShowS
showList :: [DatastorePartitionProperty] -> ShowS
Prelude.Show)
mkDatastorePartitionProperty :: DatastorePartitionProperty
mkDatastorePartitionProperty :: DatastorePartitionProperty
mkDatastorePartitionProperty
  = DatastorePartitionProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), partition :: Maybe PartitionProperty
partition = Maybe PartitionProperty
forall a. Maybe a
Prelude.Nothing,
       timestampPartition :: Maybe TimestampPartitionProperty
timestampPartition = Maybe TimestampPartitionProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties DatastorePartitionProperty where
  toResourceProperties :: DatastorePartitionProperty -> ResourceProperties
toResourceProperties DatastorePartitionProperty {Maybe PartitionProperty
Maybe TimestampPartitionProperty
()
haddock_workaround_ :: DatastorePartitionProperty -> ()
partition :: DatastorePartitionProperty -> Maybe PartitionProperty
timestampPartition :: DatastorePartitionProperty -> Maybe TimestampPartitionProperty
haddock_workaround_ :: ()
partition :: Maybe PartitionProperty
timestampPartition :: Maybe TimestampPartitionProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::IoTAnalytics::Datastore.DatastorePartition",
         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 -> PartitionProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Partition" (PartitionProperty -> (Key, Value))
-> Maybe PartitionProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe PartitionProperty
partition,
                            Key -> TimestampPartitionProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"TimestampPartition" (TimestampPartitionProperty -> (Key, Value))
-> Maybe TimestampPartitionProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TimestampPartitionProperty
timestampPartition])}
instance JSON.ToJSON DatastorePartitionProperty where
  toJSON :: DatastorePartitionProperty -> Value
toJSON DatastorePartitionProperty {Maybe PartitionProperty
Maybe TimestampPartitionProperty
()
haddock_workaround_ :: DatastorePartitionProperty -> ()
partition :: DatastorePartitionProperty -> Maybe PartitionProperty
timestampPartition :: DatastorePartitionProperty -> Maybe TimestampPartitionProperty
haddock_workaround_ :: ()
partition :: Maybe PartitionProperty
timestampPartition :: Maybe TimestampPartitionProperty
..}
    = [(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 -> PartitionProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Partition" (PartitionProperty -> (Key, Value))
-> Maybe PartitionProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe PartitionProperty
partition,
               Key -> TimestampPartitionProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"TimestampPartition" (TimestampPartitionProperty -> (Key, Value))
-> Maybe TimestampPartitionProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TimestampPartitionProperty
timestampPartition]))
instance Property "Partition" DatastorePartitionProperty where
  type PropertyType "Partition" DatastorePartitionProperty = PartitionProperty
  set :: PropertyType "Partition" DatastorePartitionProperty
-> DatastorePartitionProperty -> DatastorePartitionProperty
set PropertyType "Partition" DatastorePartitionProperty
newValue DatastorePartitionProperty {Maybe PartitionProperty
Maybe TimestampPartitionProperty
()
haddock_workaround_ :: DatastorePartitionProperty -> ()
partition :: DatastorePartitionProperty -> Maybe PartitionProperty
timestampPartition :: DatastorePartitionProperty -> Maybe TimestampPartitionProperty
haddock_workaround_ :: ()
partition :: Maybe PartitionProperty
timestampPartition :: Maybe TimestampPartitionProperty
..}
    = DatastorePartitionProperty
        {partition :: Maybe PartitionProperty
partition = PartitionProperty -> Maybe PartitionProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Partition" DatastorePartitionProperty
PartitionProperty
newValue, Maybe TimestampPartitionProperty
()
haddock_workaround_ :: ()
timestampPartition :: Maybe TimestampPartitionProperty
haddock_workaround_ :: ()
timestampPartition :: Maybe TimestampPartitionProperty
..}
instance Property "TimestampPartition" DatastorePartitionProperty where
  type PropertyType "TimestampPartition" DatastorePartitionProperty = TimestampPartitionProperty
  set :: PropertyType "TimestampPartition" DatastorePartitionProperty
-> DatastorePartitionProperty -> DatastorePartitionProperty
set PropertyType "TimestampPartition" DatastorePartitionProperty
newValue DatastorePartitionProperty {Maybe PartitionProperty
Maybe TimestampPartitionProperty
()
haddock_workaround_ :: DatastorePartitionProperty -> ()
partition :: DatastorePartitionProperty -> Maybe PartitionProperty
timestampPartition :: DatastorePartitionProperty -> Maybe TimestampPartitionProperty
haddock_workaround_ :: ()
partition :: Maybe PartitionProperty
timestampPartition :: Maybe TimestampPartitionProperty
..}
    = DatastorePartitionProperty
        {timestampPartition :: Maybe TimestampPartitionProperty
timestampPartition = TimestampPartitionProperty -> Maybe TimestampPartitionProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "TimestampPartition" DatastorePartitionProperty
TimestampPartitionProperty
newValue, Maybe PartitionProperty
()
haddock_workaround_ :: ()
partition :: Maybe PartitionProperty
haddock_workaround_ :: ()
partition :: Maybe PartitionProperty
..}