module Stratosphere.SSMContacts.Rotation.CoverageTimeProperty (
        CoverageTimeProperty(..), mkCoverageTimeProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data CoverageTimeProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-rotation-coveragetime.html>
    CoverageTimeProperty {CoverageTimeProperty -> ()
haddock_workaround_ :: (),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-rotation-coveragetime.html#cfn-ssmcontacts-rotation-coveragetime-endtime>
                          CoverageTimeProperty -> Value Text
endTime :: (Value Prelude.Text),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-rotation-coveragetime.html#cfn-ssmcontacts-rotation-coveragetime-starttime>
                          CoverageTimeProperty -> Value Text
startTime :: (Value Prelude.Text)}
  deriving stock (CoverageTimeProperty -> CoverageTimeProperty -> Bool
(CoverageTimeProperty -> CoverageTimeProperty -> Bool)
-> (CoverageTimeProperty -> CoverageTimeProperty -> Bool)
-> Eq CoverageTimeProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CoverageTimeProperty -> CoverageTimeProperty -> Bool
== :: CoverageTimeProperty -> CoverageTimeProperty -> Bool
$c/= :: CoverageTimeProperty -> CoverageTimeProperty -> Bool
/= :: CoverageTimeProperty -> CoverageTimeProperty -> Bool
Prelude.Eq, Int -> CoverageTimeProperty -> ShowS
[CoverageTimeProperty] -> ShowS
CoverageTimeProperty -> String
(Int -> CoverageTimeProperty -> ShowS)
-> (CoverageTimeProperty -> String)
-> ([CoverageTimeProperty] -> ShowS)
-> Show CoverageTimeProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CoverageTimeProperty -> ShowS
showsPrec :: Int -> CoverageTimeProperty -> ShowS
$cshow :: CoverageTimeProperty -> String
show :: CoverageTimeProperty -> String
$cshowList :: [CoverageTimeProperty] -> ShowS
showList :: [CoverageTimeProperty] -> ShowS
Prelude.Show)
mkCoverageTimeProperty ::
  Value Prelude.Text -> Value Prelude.Text -> CoverageTimeProperty
mkCoverageTimeProperty :: Value Text -> Value Text -> CoverageTimeProperty
mkCoverageTimeProperty Value Text
endTime Value Text
startTime
  = CoverageTimeProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), endTime :: Value Text
endTime = Value Text
endTime,
       startTime :: Value Text
startTime = Value Text
startTime}
instance ToResourceProperties CoverageTimeProperty where
  toResourceProperties :: CoverageTimeProperty -> ResourceProperties
toResourceProperties CoverageTimeProperty {()
Value Text
haddock_workaround_ :: CoverageTimeProperty -> ()
endTime :: CoverageTimeProperty -> Value Text
startTime :: CoverageTimeProperty -> Value Text
haddock_workaround_ :: ()
endTime :: Value Text
startTime :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::SSMContacts::Rotation.CoverageTime",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"EndTime" 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
endTime,
                       Key
"StartTime" 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
startTime]}
instance JSON.ToJSON CoverageTimeProperty where
  toJSON :: CoverageTimeProperty -> Value
toJSON CoverageTimeProperty {()
Value Text
haddock_workaround_ :: CoverageTimeProperty -> ()
endTime :: CoverageTimeProperty -> Value Text
startTime :: CoverageTimeProperty -> Value Text
haddock_workaround_ :: ()
endTime :: Value Text
startTime :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"EndTime" 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
endTime, Key
"StartTime" 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
startTime]
instance Property "EndTime" CoverageTimeProperty where
  type PropertyType "EndTime" CoverageTimeProperty = Value Prelude.Text
  set :: PropertyType "EndTime" CoverageTimeProperty
-> CoverageTimeProperty -> CoverageTimeProperty
set PropertyType "EndTime" CoverageTimeProperty
newValue CoverageTimeProperty {()
Value Text
haddock_workaround_ :: CoverageTimeProperty -> ()
endTime :: CoverageTimeProperty -> Value Text
startTime :: CoverageTimeProperty -> Value Text
haddock_workaround_ :: ()
endTime :: Value Text
startTime :: Value Text
..}
    = CoverageTimeProperty {endTime :: Value Text
endTime = PropertyType "EndTime" CoverageTimeProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
startTime :: Value Text
haddock_workaround_ :: ()
startTime :: Value Text
..}
instance Property "StartTime" CoverageTimeProperty where
  type PropertyType "StartTime" CoverageTimeProperty = Value Prelude.Text
  set :: PropertyType "StartTime" CoverageTimeProperty
-> CoverageTimeProperty -> CoverageTimeProperty
set PropertyType "StartTime" CoverageTimeProperty
newValue CoverageTimeProperty {()
Value Text
haddock_workaround_ :: CoverageTimeProperty -> ()
endTime :: CoverageTimeProperty -> Value Text
startTime :: CoverageTimeProperty -> Value Text
haddock_workaround_ :: ()
endTime :: Value Text
startTime :: Value Text
..}
    = CoverageTimeProperty {startTime :: Value Text
startTime = PropertyType "StartTime" CoverageTimeProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
endTime :: Value Text
haddock_workaround_ :: ()
endTime :: Value Text
..}