content: module Stratosphere.InspectorV2.CisScanConfiguration.MonthlyScheduleProperty (
          module Exports, MonthlyScheduleProperty(..),
          mkMonthlyScheduleProperty
      ) where
  import qualified Data.Aeson as JSON
  import qualified Stratosphere.Prelude as Prelude
  import Stratosphere.Property
  import {-# SOURCE #-} Stratosphere.InspectorV2.CisScanConfiguration.TimeProperty as Exports
  import Stratosphere.ResourceProperties
  import Stratosphere.Value
  data MonthlyScheduleProperty
    = MonthlyScheduleProperty {day :: (Value Prelude.Text),
                               startTime :: TimeProperty}
    deriving stock (Prelude.Eq, Prelude.Show)
  mkMonthlyScheduleProperty ::
    Value Prelude.Text -> TimeProperty -> MonthlyScheduleProperty
  mkMonthlyScheduleProperty day startTime
    = MonthlyScheduleProperty {day = day, startTime = startTime}
  instance ToResourceProperties MonthlyScheduleProperty where
    toResourceProperties MonthlyScheduleProperty {..}
      = ResourceProperties
          {awsType = "AWS::InspectorV2::CisScanConfiguration.MonthlySchedule",
           supportsTags = Prelude.False,
           properties = ["Day" JSON..= day, "StartTime" JSON..= startTime]}
  instance JSON.ToJSON MonthlyScheduleProperty where
    toJSON MonthlyScheduleProperty {..}
      = JSON.object ["Day" JSON..= day, "StartTime" JSON..= startTime]
  instance Property "Day" MonthlyScheduleProperty where
    type PropertyType "Day" MonthlyScheduleProperty = Value Prelude.Text
    set newValue MonthlyScheduleProperty {..}
      = MonthlyScheduleProperty {day = newValue, ..}
  instance Property "StartTime" MonthlyScheduleProperty where
    type PropertyType "StartTime" MonthlyScheduleProperty = TimeProperty
    set newValue MonthlyScheduleProperty {..}
      = MonthlyScheduleProperty {startTime = newValue, ..}