module Stratosphere.HealthLake.FHIRDatastore.CreatedAtProperty (
        CreatedAtProperty(..), mkCreatedAtProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data CreatedAtProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-createdat.html>
    CreatedAtProperty {CreatedAtProperty -> ()
haddock_workaround_ :: (),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-createdat.html#cfn-healthlake-fhirdatastore-createdat-nanos>
                       CreatedAtProperty -> Value Integer
nanos :: (Value Prelude.Integer),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-createdat.html#cfn-healthlake-fhirdatastore-createdat-seconds>
                       CreatedAtProperty -> Value Text
seconds :: (Value Prelude.Text)}
  deriving stock (CreatedAtProperty -> CreatedAtProperty -> Bool
(CreatedAtProperty -> CreatedAtProperty -> Bool)
-> (CreatedAtProperty -> CreatedAtProperty -> Bool)
-> Eq CreatedAtProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CreatedAtProperty -> CreatedAtProperty -> Bool
== :: CreatedAtProperty -> CreatedAtProperty -> Bool
$c/= :: CreatedAtProperty -> CreatedAtProperty -> Bool
/= :: CreatedAtProperty -> CreatedAtProperty -> Bool
Prelude.Eq, Int -> CreatedAtProperty -> ShowS
[CreatedAtProperty] -> ShowS
CreatedAtProperty -> String
(Int -> CreatedAtProperty -> ShowS)
-> (CreatedAtProperty -> String)
-> ([CreatedAtProperty] -> ShowS)
-> Show CreatedAtProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CreatedAtProperty -> ShowS
showsPrec :: Int -> CreatedAtProperty -> ShowS
$cshow :: CreatedAtProperty -> String
show :: CreatedAtProperty -> String
$cshowList :: [CreatedAtProperty] -> ShowS
showList :: [CreatedAtProperty] -> ShowS
Prelude.Show)
mkCreatedAtProperty ::
  Value Prelude.Integer -> Value Prelude.Text -> CreatedAtProperty
mkCreatedAtProperty :: Value Integer -> Value Text -> CreatedAtProperty
mkCreatedAtProperty Value Integer
nanos Value Text
seconds
  = CreatedAtProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), nanos :: Value Integer
nanos = Value Integer
nanos, seconds :: Value Text
seconds = Value Text
seconds}
instance ToResourceProperties CreatedAtProperty where
  toResourceProperties :: CreatedAtProperty -> ResourceProperties
toResourceProperties CreatedAtProperty {()
Value Integer
Value Text
haddock_workaround_ :: CreatedAtProperty -> ()
nanos :: CreatedAtProperty -> Value Integer
seconds :: CreatedAtProperty -> Value Text
haddock_workaround_ :: ()
nanos :: Value Integer
seconds :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::HealthLake::FHIRDatastore.CreatedAt",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Nanos" Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Integer
nanos, Key
"Seconds" 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
seconds]}
instance JSON.ToJSON CreatedAtProperty where
  toJSON :: CreatedAtProperty -> Value
toJSON CreatedAtProperty {()
Value Integer
Value Text
haddock_workaround_ :: CreatedAtProperty -> ()
nanos :: CreatedAtProperty -> Value Integer
seconds :: CreatedAtProperty -> Value Text
haddock_workaround_ :: ()
nanos :: Value Integer
seconds :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"Nanos" Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Integer
nanos, Key
"Seconds" 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
seconds]
instance Property "Nanos" CreatedAtProperty where
  type PropertyType "Nanos" CreatedAtProperty = Value Prelude.Integer
  set :: PropertyType "Nanos" CreatedAtProperty
-> CreatedAtProperty -> CreatedAtProperty
set PropertyType "Nanos" CreatedAtProperty
newValue CreatedAtProperty {()
Value Integer
Value Text
haddock_workaround_ :: CreatedAtProperty -> ()
nanos :: CreatedAtProperty -> Value Integer
seconds :: CreatedAtProperty -> Value Text
haddock_workaround_ :: ()
nanos :: Value Integer
seconds :: Value Text
..}
    = CreatedAtProperty {nanos :: Value Integer
nanos = PropertyType "Nanos" CreatedAtProperty
Value Integer
newValue, ()
Value Text
haddock_workaround_ :: ()
seconds :: Value Text
haddock_workaround_ :: ()
seconds :: Value Text
..}
instance Property "Seconds" CreatedAtProperty where
  type PropertyType "Seconds" CreatedAtProperty = Value Prelude.Text
  set :: PropertyType "Seconds" CreatedAtProperty
-> CreatedAtProperty -> CreatedAtProperty
set PropertyType "Seconds" CreatedAtProperty
newValue CreatedAtProperty {()
Value Integer
Value Text
haddock_workaround_ :: CreatedAtProperty -> ()
nanos :: CreatedAtProperty -> Value Integer
seconds :: CreatedAtProperty -> Value Text
haddock_workaround_ :: ()
nanos :: Value Integer
seconds :: Value Text
..}
    = CreatedAtProperty {seconds :: Value Text
seconds = PropertyType "Seconds" CreatedAtProperty
Value Text
newValue, ()
Value Integer
haddock_workaround_ :: ()
nanos :: Value Integer
haddock_workaround_ :: ()
nanos :: Value Integer
..}