SSM-CONTACTS

AcceptPage

enum_AcceptCodeValidation := [ "IGNORE", "ENFORCE" ]
enum_AcceptType := [ "DELIVERED", "READ" ]

valid {
    input.Body.PageId == STRING
    input.Body.ContactChannelId == STRING
    input.Body.AcceptType == enum_AcceptType[_]
    input.Body.Note == STRING
    input.Body.AcceptCode == STRING
    input.Body.AcceptCodeValidation == enum_AcceptCodeValidation[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ActivateContactChannel

valid {
    input.Body.ContactChannelId == STRING
    input.Body.ActivationCode == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateContact

enum_ContactType := [ "PERSONAL", "ESCALATION", "ONCALL_SCHEDULE" ]

valid {
    input.Body.Alias == STRING
    input.Body.DisplayName == STRING
    input.Body.Type == enum_ContactType[_]
    input.Body.Plan.Stages[_].DurationInMinutes == INTEGER
    input.Body.Plan.Stages[_].Targets[_].ChannelTargetInfo.ContactChannelId == STRING
    input.Body.Plan.Stages[_].Targets[_].ChannelTargetInfo.RetryIntervalInMinutes == INTEGER
    input.Body.Plan.Stages[_].Targets[_].ContactTargetInfo.ContactId == STRING
    input.Body.Plan.Stages[_].Targets[_].ContactTargetInfo.IsEssential == BOOLEAN
    input.Body.Plan.RotationIds[_] == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.IdempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateContactChannel

enum_ChannelType := [ "SMS", "VOICE", "EMAIL" ]

valid {
    input.Body.ContactId == STRING
    input.Body.Name == STRING
    input.Body.Type == enum_ChannelType[_]
    input.Body.DeliveryAddress.SimpleAddress == STRING
    input.Body.DeferActivation == BOOLEAN
    input.Body.IdempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateRotation

enum_DayOfWeek := [ "MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN" ]

valid {
    input.Body.Name == STRING
    input.Body.ContactIds[_] == STRING
    input.Body.StartTime == TIMESTAMP
    input.Body.TimeZoneId == STRING
    input.Body.Recurrence.MonthlySettings[_].DayOfMonth == INTEGER
    input.Body.Recurrence.MonthlySettings[_].HandOffTime.HourOfDay == INTEGER
    input.Body.Recurrence.MonthlySettings[_].HandOffTime.MinuteOfHour == INTEGER
    input.Body.Recurrence.WeeklySettings[_].DayOfWeek == enum_DayOfWeek[_]
    input.Body.Recurrence.WeeklySettings[_].HandOffTime.HourOfDay == INTEGER
    input.Body.Recurrence.WeeklySettings[_].HandOffTime.MinuteOfHour == INTEGER
    input.Body.Recurrence.DailySettings[_].HourOfDay == INTEGER
    input.Body.Recurrence.DailySettings[_].MinuteOfHour == INTEGER
    input.Body.Recurrence.NumberOfOnCalls == INTEGER
    input.Body.Recurrence.ShiftCoverages.MON[_].Start.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.MON[_].Start.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.MON[_].End.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.MON[_].End.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.TUE[_].Start.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.TUE[_].Start.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.TUE[_].End.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.TUE[_].End.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.WED[_].Start.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.WED[_].Start.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.WED[_].End.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.WED[_].End.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.THU[_].Start.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.THU[_].Start.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.THU[_].End.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.THU[_].End.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.FRI[_].Start.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.FRI[_].Start.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.FRI[_].End.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.FRI[_].End.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.SAT[_].Start.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.SAT[_].Start.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.SAT[_].End.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.SAT[_].End.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.SUN[_].Start.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.SUN[_].Start.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.SUN[_].End.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.SUN[_].End.MinuteOfHour == INTEGER
    input.Body.Recurrence.RecurrenceMultiplier == INTEGER
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.IdempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateRotationOverride

valid {
    input.Body.RotationId == STRING
    input.Body.NewContactIds[_] == STRING
    input.Body.StartTime == TIMESTAMP
    input.Body.EndTime == TIMESTAMP
    input.Body.IdempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeactivateContactChannel

valid {
    input.Body.ContactChannelId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteContact

valid {
    input.Body.ContactId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteContactChannel

valid {
    input.Body.ContactChannelId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteRotation

valid {
    input.Body.RotationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteRotationOverride

valid {
    input.Body.RotationId == STRING
    input.Body.RotationOverrideId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeEngagement

valid {
    input.Body.EngagementId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribePage

valid {
    input.Body.PageId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetContact

valid {
    input.Body.ContactId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetContactChannel

valid {
    input.Body.ContactChannelId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetContactPolicy

valid {
    input.Body.ContactArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetRotation

valid {
    input.Body.RotationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetRotationOverride

valid {
    input.Body.RotationId == STRING
    input.Body.RotationOverrideId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListContactChannels

valid {
    input.Body.ContactId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListContacts

enum_ContactType := [ "PERSONAL", "ESCALATION", "ONCALL_SCHEDULE" ]

valid {
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.AliasPrefix == STRING
    input.Body.Type == enum_ContactType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListEngagements

valid {
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.IncidentId == STRING
    input.Body.TimeRangeValue.StartTime == TIMESTAMP
    input.Body.TimeRangeValue.EndTime == TIMESTAMP
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPageReceipts

valid {
    input.Body.PageId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPageResolutions

valid {
    input.Body.NextToken == STRING
    input.Body.PageId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPagesByContact

valid {
    input.Body.ContactId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPagesByEngagement

valid {
    input.Body.EngagementId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPreviewRotationShifts

enum_DayOfWeek := [ "MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN" ]

valid {
    input.Body.RotationStartTime == TIMESTAMP
    input.Body.StartTime == TIMESTAMP
    input.Body.EndTime == TIMESTAMP
    input.Body.Members[_] == STRING
    input.Body.TimeZoneId == STRING
    input.Body.Recurrence.MonthlySettings[_].DayOfMonth == INTEGER
    input.Body.Recurrence.MonthlySettings[_].HandOffTime.HourOfDay == INTEGER
    input.Body.Recurrence.MonthlySettings[_].HandOffTime.MinuteOfHour == INTEGER
    input.Body.Recurrence.WeeklySettings[_].DayOfWeek == enum_DayOfWeek[_]
    input.Body.Recurrence.WeeklySettings[_].HandOffTime.HourOfDay == INTEGER
    input.Body.Recurrence.WeeklySettings[_].HandOffTime.MinuteOfHour == INTEGER
    input.Body.Recurrence.DailySettings[_].HourOfDay == INTEGER
    input.Body.Recurrence.DailySettings[_].MinuteOfHour == INTEGER
    input.Body.Recurrence.NumberOfOnCalls == INTEGER
    input.Body.Recurrence.ShiftCoverages.MON[_].Start.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.MON[_].Start.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.MON[_].End.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.MON[_].End.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.TUE[_].Start.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.TUE[_].Start.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.TUE[_].End.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.TUE[_].End.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.WED[_].Start.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.WED[_].Start.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.WED[_].End.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.WED[_].End.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.THU[_].Start.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.THU[_].Start.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.THU[_].End.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.THU[_].End.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.FRI[_].Start.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.FRI[_].Start.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.FRI[_].End.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.FRI[_].End.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.SAT[_].Start.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.SAT[_].Start.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.SAT[_].End.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.SAT[_].End.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.SUN[_].Start.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.SUN[_].Start.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.SUN[_].End.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.SUN[_].End.MinuteOfHour == INTEGER
    input.Body.Recurrence.RecurrenceMultiplier == INTEGER
    input.Body.Overrides[_].NewMembers[_] == STRING
    input.Body.Overrides[_].StartTime == TIMESTAMP
    input.Body.Overrides[_].EndTime == TIMESTAMP
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListRotationOverrides

valid {
    input.Body.RotationId == STRING
    input.Body.StartTime == TIMESTAMP
    input.Body.EndTime == TIMESTAMP
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListRotationShifts

valid {
    input.Body.RotationId == STRING
    input.Body.StartTime == TIMESTAMP
    input.Body.EndTime == TIMESTAMP
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListRotations

valid {
    input.Body.RotationNamePrefix == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagsForResource

valid {
    input.Body.ResourceARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutContactPolicy

valid {
    input.Body.ContactArn == STRING
    input.Body.Policy == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SendActivationCode

valid {
    input.Body.ContactChannelId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartEngagement

valid {
    input.Body.ContactId == STRING
    input.Body.Sender == STRING
    input.Body.Subject == STRING
    input.Body.Content == STRING
    input.Body.PublicSubject == STRING
    input.Body.PublicContent == STRING
    input.Body.IncidentId == STRING
    input.Body.IdempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopEngagement

valid {
    input.Body.EngagementId == STRING
    input.Body.Reason == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagResource

valid {
    input.Body.ResourceARN == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UntagResource

valid {
    input.Body.ResourceARN == STRING
    input.Body.TagKeys[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateContact

valid {
    input.Body.ContactId == STRING
    input.Body.DisplayName == STRING
    input.Body.Plan.Stages[_].DurationInMinutes == INTEGER
    input.Body.Plan.Stages[_].Targets[_].ChannelTargetInfo.ContactChannelId == STRING
    input.Body.Plan.Stages[_].Targets[_].ChannelTargetInfo.RetryIntervalInMinutes == INTEGER
    input.Body.Plan.Stages[_].Targets[_].ContactTargetInfo.ContactId == STRING
    input.Body.Plan.Stages[_].Targets[_].ContactTargetInfo.IsEssential == BOOLEAN
    input.Body.Plan.RotationIds[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateContactChannel

valid {
    input.Body.ContactChannelId == STRING
    input.Body.Name == STRING
    input.Body.DeliveryAddress.SimpleAddress == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateRotation

enum_DayOfWeek := [ "MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN" ]

valid {
    input.Body.RotationId == STRING
    input.Body.ContactIds[_] == STRING
    input.Body.StartTime == TIMESTAMP
    input.Body.TimeZoneId == STRING
    input.Body.Recurrence.MonthlySettings[_].DayOfMonth == INTEGER
    input.Body.Recurrence.MonthlySettings[_].HandOffTime.HourOfDay == INTEGER
    input.Body.Recurrence.MonthlySettings[_].HandOffTime.MinuteOfHour == INTEGER
    input.Body.Recurrence.WeeklySettings[_].DayOfWeek == enum_DayOfWeek[_]
    input.Body.Recurrence.WeeklySettings[_].HandOffTime.HourOfDay == INTEGER
    input.Body.Recurrence.WeeklySettings[_].HandOffTime.MinuteOfHour == INTEGER
    input.Body.Recurrence.DailySettings[_].HourOfDay == INTEGER
    input.Body.Recurrence.DailySettings[_].MinuteOfHour == INTEGER
    input.Body.Recurrence.NumberOfOnCalls == INTEGER
    input.Body.Recurrence.ShiftCoverages.MON[_].Start.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.MON[_].Start.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.MON[_].End.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.MON[_].End.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.TUE[_].Start.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.TUE[_].Start.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.TUE[_].End.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.TUE[_].End.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.WED[_].Start.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.WED[_].Start.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.WED[_].End.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.WED[_].End.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.THU[_].Start.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.THU[_].Start.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.THU[_].End.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.THU[_].End.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.FRI[_].Start.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.FRI[_].Start.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.FRI[_].End.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.FRI[_].End.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.SAT[_].Start.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.SAT[_].Start.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.SAT[_].End.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.SAT[_].End.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.SUN[_].Start.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.SUN[_].Start.MinuteOfHour == INTEGER
    input.Body.Recurrence.ShiftCoverages.SUN[_].End.HourOfDay == INTEGER
    input.Body.Recurrence.ShiftCoverages.SUN[_].End.MinuteOfHour == INTEGER
    input.Body.Recurrence.RecurrenceMultiplier == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}