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