-- | 'UpdateSnapshotSchedule' constructor.
--
-- The fields accessible through corresponding lenses are:
--
-- * 'ussDescription' @::@ 'Maybe' 'Text'
--
-- * 'ussRecurrenceInHours' @::@ 'Natural'
--
-- * 'ussStartAt' @::@ 'Natural'
--
-- * 'ussVolumeARN' @::@ 'Text'
--
updateSnapshotSchedule :: Text -- ^ 'ussVolumeARN'
                       -> Natural -- ^ 'ussStartAt'
                       -> Natural -- ^ 'ussRecurrenceInHours'
                       -> UpdateSnapshotSchedule
updateSnapshotSchedule p1 p2 p3 = UpdateSnapshotSchedule
    { _ussVolumeARN         = p1
    , _ussStartAt           = withIso _Nat (const id) p2
    , _ussRecurrenceInHours = withIso _Nat (const id) p3
    , _ussDescription       = Nothing
    }
updateSnapshotSchedule :: Text -- ^ 'ussVolumeARN'
                       -> Natural -- ^ 'ussStartAt'
                       -> Natural -- ^ 'ussRecurrenceInHours'
                       -> UpdateSnapshotSchedule
updateSnapshotSchedule p1 p2 p3 = UpdateSnapshotSchedule
    { _ussVolumeARN         = p1
    , _ussStartAt           = withIso _Nat (const id) p2
    , _ussRecurrenceInHours = withIso _Nat (const id) p3
    , _ussDescription       = Nothing
    }
updateSnapshotSchedule p1 p2 p3 = UpdateSnapshotSchedule
    { _ussVolumeARN         = p1
    , _ussStartAt           = withIso _Nat (const id) p2
    , _ussRecurrenceInHours = withIso _Nat (const id) p3
    , _ussDescription       = Nothing
    }