# Copyright (c) 2012-2024, Mark Peek <mark@peek.org>
# All rights reserved.
#
# See LICENSE file for full license.
#
# *** Do not modify - this file is autogenerated ***
from . import AWSObject, AWSProperty, PropsDictType, Tags
from .validators import boolean, integer
[docs]class ChannelTargetInfo(AWSProperty):
"""
`ChannelTargetInfo <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-plan-channeltargetinfo.html>`__
"""
props: PropsDictType = {
"ChannelId": (str, True),
"RetryIntervalInMinutes": (integer, True),
}
[docs]class Targets(AWSProperty):
"""
`Targets <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-plan-targets.html>`__
"""
props: PropsDictType = {
"ChannelTargetInfo": (ChannelTargetInfo, False),
"ContactTargetInfo": (ContactTargetInfo, False),
}
[docs]class Stage(AWSProperty):
"""
`Stage <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-plan-stage.html>`__
"""
props: PropsDictType = {
"DurationInMinutes": (integer, True),
"Targets": ([Targets], False),
}
[docs]class Plan(AWSObject):
"""
`Plan <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-plan.html>`__
"""
resource_type = "AWS::SSMContacts::Plan"
props: PropsDictType = {
"ContactId": (str, True),
"RotationIds": ([str], False),
"Stages": ([Stage], False),
}
[docs]class MonthlySetting(AWSProperty):
"""
`MonthlySetting <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-rotation-monthlysetting.html>`__
"""
props: PropsDictType = {
"DayOfMonth": (integer, True),
"HandOffTime": (str, True),
}
[docs]class CoverageTime(AWSProperty):
"""
`CoverageTime <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-rotation-coveragetime.html>`__
"""
props: PropsDictType = {
"EndTime": (str, True),
"StartTime": (str, True),
}
[docs]class ShiftCoverage(AWSProperty):
"""
`ShiftCoverage <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-rotation-shiftcoverage.html>`__
"""
props: PropsDictType = {
"CoverageTimes": ([CoverageTime], True),
"DayOfWeek": (str, True),
}
[docs]class WeeklySetting(AWSProperty):
"""
`WeeklySetting <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-rotation-weeklysetting.html>`__
"""
props: PropsDictType = {
"DayOfWeek": (str, True),
"HandOffTime": (str, True),
}
[docs]class RecurrenceSettings(AWSProperty):
"""
`RecurrenceSettings <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-rotation-recurrencesettings.html>`__
"""
props: PropsDictType = {
"DailySettings": ([str], False),
"MonthlySettings": ([MonthlySetting], False),
"NumberOfOnCalls": (integer, True),
"RecurrenceMultiplier": (integer, True),
"ShiftCoverages": ([ShiftCoverage], False),
"WeeklySettings": ([WeeklySetting], False),
}
[docs]class Rotation(AWSObject):
"""
`Rotation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-rotation.html>`__
"""
resource_type = "AWS::SSMContacts::Rotation"
props: PropsDictType = {
"ContactIds": ([str], True),
"Name": (str, True),
"Recurrence": (RecurrenceSettings, True),
"StartTime": (str, True),
"Tags": (Tags, False),
"TimeZoneId": (str, True),
}