/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SSMContacts { namespace Model { /** *

Information about when an on-call rotation is in effect and how long the * rotation period lasts.

See Also:

AWS * API Reference

*/ class RecurrenceSettings { public: AWS_SSMCONTACTS_API RecurrenceSettings(); AWS_SSMCONTACTS_API RecurrenceSettings(Aws::Utils::Json::JsonView jsonValue); AWS_SSMCONTACTS_API RecurrenceSettings& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_SSMCONTACTS_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

Information about on-call rotations that recur monthly.

*/ inline const Aws::Vector& GetMonthlySettings() const{ return m_monthlySettings; } /** *

Information about on-call rotations that recur monthly.

*/ inline bool MonthlySettingsHasBeenSet() const { return m_monthlySettingsHasBeenSet; } /** *

Information about on-call rotations that recur monthly.

*/ inline void SetMonthlySettings(const Aws::Vector& value) { m_monthlySettingsHasBeenSet = true; m_monthlySettings = value; } /** *

Information about on-call rotations that recur monthly.

*/ inline void SetMonthlySettings(Aws::Vector&& value) { m_monthlySettingsHasBeenSet = true; m_monthlySettings = std::move(value); } /** *

Information about on-call rotations that recur monthly.

*/ inline RecurrenceSettings& WithMonthlySettings(const Aws::Vector& value) { SetMonthlySettings(value); return *this;} /** *

Information about on-call rotations that recur monthly.

*/ inline RecurrenceSettings& WithMonthlySettings(Aws::Vector&& value) { SetMonthlySettings(std::move(value)); return *this;} /** *

Information about on-call rotations that recur monthly.

*/ inline RecurrenceSettings& AddMonthlySettings(const MonthlySetting& value) { m_monthlySettingsHasBeenSet = true; m_monthlySettings.push_back(value); return *this; } /** *

Information about on-call rotations that recur monthly.

*/ inline RecurrenceSettings& AddMonthlySettings(MonthlySetting&& value) { m_monthlySettingsHasBeenSet = true; m_monthlySettings.push_back(std::move(value)); return *this; } /** *

Information about on-call rotations that recur weekly.

*/ inline const Aws::Vector& GetWeeklySettings() const{ return m_weeklySettings; } /** *

Information about on-call rotations that recur weekly.

*/ inline bool WeeklySettingsHasBeenSet() const { return m_weeklySettingsHasBeenSet; } /** *

Information about on-call rotations that recur weekly.

*/ inline void SetWeeklySettings(const Aws::Vector& value) { m_weeklySettingsHasBeenSet = true; m_weeklySettings = value; } /** *

Information about on-call rotations that recur weekly.

*/ inline void SetWeeklySettings(Aws::Vector&& value) { m_weeklySettingsHasBeenSet = true; m_weeklySettings = std::move(value); } /** *

Information about on-call rotations that recur weekly.

*/ inline RecurrenceSettings& WithWeeklySettings(const Aws::Vector& value) { SetWeeklySettings(value); return *this;} /** *

Information about on-call rotations that recur weekly.

*/ inline RecurrenceSettings& WithWeeklySettings(Aws::Vector&& value) { SetWeeklySettings(std::move(value)); return *this;} /** *

Information about on-call rotations that recur weekly.

*/ inline RecurrenceSettings& AddWeeklySettings(const WeeklySetting& value) { m_weeklySettingsHasBeenSet = true; m_weeklySettings.push_back(value); return *this; } /** *

Information about on-call rotations that recur weekly.

*/ inline RecurrenceSettings& AddWeeklySettings(WeeklySetting&& value) { m_weeklySettingsHasBeenSet = true; m_weeklySettings.push_back(std::move(value)); return *this; } /** *

Information about on-call rotations that recur daily.

*/ inline const Aws::Vector& GetDailySettings() const{ return m_dailySettings; } /** *

Information about on-call rotations that recur daily.

*/ inline bool DailySettingsHasBeenSet() const { return m_dailySettingsHasBeenSet; } /** *

Information about on-call rotations that recur daily.

*/ inline void SetDailySettings(const Aws::Vector& value) { m_dailySettingsHasBeenSet = true; m_dailySettings = value; } /** *

Information about on-call rotations that recur daily.

*/ inline void SetDailySettings(Aws::Vector&& value) { m_dailySettingsHasBeenSet = true; m_dailySettings = std::move(value); } /** *

Information about on-call rotations that recur daily.

*/ inline RecurrenceSettings& WithDailySettings(const Aws::Vector& value) { SetDailySettings(value); return *this;} /** *

Information about on-call rotations that recur daily.

*/ inline RecurrenceSettings& WithDailySettings(Aws::Vector&& value) { SetDailySettings(std::move(value)); return *this;} /** *

Information about on-call rotations that recur daily.

*/ inline RecurrenceSettings& AddDailySettings(const HandOffTime& value) { m_dailySettingsHasBeenSet = true; m_dailySettings.push_back(value); return *this; } /** *

Information about on-call rotations that recur daily.

*/ inline RecurrenceSettings& AddDailySettings(HandOffTime&& value) { m_dailySettingsHasBeenSet = true; m_dailySettings.push_back(std::move(value)); return *this; } /** *

The number of contacts, or shift team members designated to be on call * concurrently during a shift. For example, in an on-call schedule containing ten * contacts, a value of 2 designates that two of them are on call at * any given time.

*/ inline int GetNumberOfOnCalls() const{ return m_numberOfOnCalls; } /** *

The number of contacts, or shift team members designated to be on call * concurrently during a shift. For example, in an on-call schedule containing ten * contacts, a value of 2 designates that two of them are on call at * any given time.

*/ inline bool NumberOfOnCallsHasBeenSet() const { return m_numberOfOnCallsHasBeenSet; } /** *

The number of contacts, or shift team members designated to be on call * concurrently during a shift. For example, in an on-call schedule containing ten * contacts, a value of 2 designates that two of them are on call at * any given time.

*/ inline void SetNumberOfOnCalls(int value) { m_numberOfOnCallsHasBeenSet = true; m_numberOfOnCalls = value; } /** *

The number of contacts, or shift team members designated to be on call * concurrently during a shift. For example, in an on-call schedule containing ten * contacts, a value of 2 designates that two of them are on call at * any given time.

*/ inline RecurrenceSettings& WithNumberOfOnCalls(int value) { SetNumberOfOnCalls(value); return *this;} /** *

Information about the days of the week included in on-call rotation * coverage.

*/ inline const Aws::Map>& GetShiftCoverages() const{ return m_shiftCoverages; } /** *

Information about the days of the week included in on-call rotation * coverage.

*/ inline bool ShiftCoveragesHasBeenSet() const { return m_shiftCoveragesHasBeenSet; } /** *

Information about the days of the week included in on-call rotation * coverage.

*/ inline void SetShiftCoverages(const Aws::Map>& value) { m_shiftCoveragesHasBeenSet = true; m_shiftCoverages = value; } /** *

Information about the days of the week included in on-call rotation * coverage.

*/ inline void SetShiftCoverages(Aws::Map>&& value) { m_shiftCoveragesHasBeenSet = true; m_shiftCoverages = std::move(value); } /** *

Information about the days of the week included in on-call rotation * coverage.

*/ inline RecurrenceSettings& WithShiftCoverages(const Aws::Map>& value) { SetShiftCoverages(value); return *this;} /** *

Information about the days of the week included in on-call rotation * coverage.

*/ inline RecurrenceSettings& WithShiftCoverages(Aws::Map>&& value) { SetShiftCoverages(std::move(value)); return *this;} /** *

Information about the days of the week included in on-call rotation * coverage.

*/ inline RecurrenceSettings& AddShiftCoverages(const DayOfWeek& key, const Aws::Vector& value) { m_shiftCoveragesHasBeenSet = true; m_shiftCoverages.emplace(key, value); return *this; } /** *

Information about the days of the week included in on-call rotation * coverage.

*/ inline RecurrenceSettings& AddShiftCoverages(DayOfWeek&& key, const Aws::Vector& value) { m_shiftCoveragesHasBeenSet = true; m_shiftCoverages.emplace(std::move(key), value); return *this; } /** *

Information about the days of the week included in on-call rotation * coverage.

*/ inline RecurrenceSettings& AddShiftCoverages(const DayOfWeek& key, Aws::Vector&& value) { m_shiftCoveragesHasBeenSet = true; m_shiftCoverages.emplace(key, std::move(value)); return *this; } /** *

Information about the days of the week included in on-call rotation * coverage.

*/ inline RecurrenceSettings& AddShiftCoverages(DayOfWeek&& key, Aws::Vector&& value) { m_shiftCoveragesHasBeenSet = true; m_shiftCoverages.emplace(std::move(key), std::move(value)); return *this; } /** *

The number of days, weeks, or months a single rotation lasts.

*/ inline int GetRecurrenceMultiplier() const{ return m_recurrenceMultiplier; } /** *

The number of days, weeks, or months a single rotation lasts.

*/ inline bool RecurrenceMultiplierHasBeenSet() const { return m_recurrenceMultiplierHasBeenSet; } /** *

The number of days, weeks, or months a single rotation lasts.

*/ inline void SetRecurrenceMultiplier(int value) { m_recurrenceMultiplierHasBeenSet = true; m_recurrenceMultiplier = value; } /** *

The number of days, weeks, or months a single rotation lasts.

*/ inline RecurrenceSettings& WithRecurrenceMultiplier(int value) { SetRecurrenceMultiplier(value); return *this;} private: Aws::Vector m_monthlySettings; bool m_monthlySettingsHasBeenSet = false; Aws::Vector m_weeklySettings; bool m_weeklySettingsHasBeenSet = false; Aws::Vector m_dailySettings; bool m_dailySettingsHasBeenSet = false; int m_numberOfOnCalls; bool m_numberOfOnCallsHasBeenSet = false; Aws::Map> m_shiftCoverages; bool m_shiftCoveragesHasBeenSet = false; int m_recurrenceMultiplier; bool m_recurrenceMultiplierHasBeenSet = false; }; } // namespace Model } // namespace SSMContacts } // namespace Aws