CreateApp

valid {
    input.Body.CreateApplicationRequest.Name == STRING
    input.Body.CreateApplicationRequest.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateCampaign

enum_Action := [ "OPEN_APP", "DEEP_LINK", "URL" ]
enum_Alignment := [ "LEFT", "CENTER", "RIGHT" ]
enum_AttributeType := [ "INCLUSIVE", "EXCLUSIVE", "CONTAINS", "BEFORE", "AFTER", "ON", "BETWEEN" ]
enum_ButtonAction := [ "LINK", "DEEP_LINK", "CLOSE" ]
enum_DimensionType := [ "INCLUSIVE", "EXCLUSIVE" ]
enum_FilterType := [ "SYSTEM", "ENDPOINT" ]
enum_Frequency := [ "ONCE", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "EVENT", "IN_APP_EVENT" ]
enum_Layout := [ "BOTTOM_BANNER", "TOP_BANNER", "OVERLAYS", "MOBILE_FEED", "MIDDLE_BANNER", "CAROUSEL" ]
enum_MessageType := [ "TRANSACTIONAL", "PROMOTIONAL" ]
enum_Mode := [ "DELIVERY", "FILTER" ]
enum___EndpointTypesElement := [ "PUSH", "GCM", "APNS", "APNS_SANDBOX", "APNS_VOIP", "APNS_VOIP_SANDBOX", "ADM", "SMS", "VOICE", "EMAIL", "BAIDU", "CUSTOM", "IN_APP" ]

valid {
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].CustomDeliveryConfiguration.DeliveryUri == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].CustomDeliveryConfiguration.EndpointTypes[_] == enum___EndpointTypesElement[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.Action == enum_Action[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.Body == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.ImageIconUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.ImageSmallIconUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.ImageUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.JsonBody == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.MediaUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.RawContent == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.SilentPush == BOOLEAN
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.TimeToLive == INTEGER
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.Title == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.Url == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.Action == enum_Action[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.Body == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.ImageIconUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.ImageSmallIconUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.ImageUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.JsonBody == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.MediaUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.RawContent == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.SilentPush == BOOLEAN
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.TimeToLive == INTEGER
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.Title == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.Url == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.Action == enum_Action[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.Body == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.ImageIconUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.ImageSmallIconUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.ImageUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.JsonBody == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.MediaUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.RawContent == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.SilentPush == BOOLEAN
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.TimeToLive == INTEGER
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.Title == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.Url == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.CustomMessage.Data == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.Action == enum_Action[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.Body == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.ImageIconUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.ImageSmallIconUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.ImageUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.JsonBody == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.MediaUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.RawContent == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.SilentPush == BOOLEAN
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.TimeToLive == INTEGER
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.Title == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.Url == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.EmailMessage.Body == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.EmailMessage.FromAddress == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.EmailMessage.Headers[_].Name == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.EmailMessage.Headers[_].Value == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.EmailMessage.HtmlBody == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.EmailMessage.Title == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.Action == enum_Action[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.Body == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.ImageIconUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.ImageSmallIconUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.ImageUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.JsonBody == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.MediaUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.RawContent == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.SilentPush == BOOLEAN
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.TimeToLive == INTEGER
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.Title == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.Url == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.SMSMessage.Body == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.SMSMessage.MessageType == enum_MessageType[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.SMSMessage.OriginationNumber == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.SMSMessage.SenderId == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.SMSMessage.EntityId == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.SMSMessage.TemplateId == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Body == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].BackgroundColor == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].BodyConfig.Alignment == enum_Alignment[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].BodyConfig.Body == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].BodyConfig.TextColor == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].HeaderConfig.Alignment == enum_Alignment[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].HeaderConfig.Header == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].HeaderConfig.TextColor == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].ImageUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.Android.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.Android.Link == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.BackgroundColor == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.BorderRadius == INTEGER
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.Link == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.Text == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.TextColor == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.IOS.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.IOS.Link == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.Web.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.Web.Link == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.Android.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.Android.Link == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.BackgroundColor == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.BorderRadius == INTEGER
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.Link == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.Text == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.TextColor == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.IOS.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.IOS.Link == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.Web.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.Web.Link == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.CustomConfig.STRING == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Layout == enum_Layout[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.EndTime == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.EventFilter.Dimensions.Attributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.EventFilter.Dimensions.Attributes.STRING.Values[_] == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.EventFilter.Dimensions.EventType.DimensionType == enum_DimensionType[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.EventFilter.Dimensions.EventType.Values[_] == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.EventFilter.Dimensions.Metrics.STRING.ComparisonOperator == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.EventFilter.Dimensions.Metrics.STRING.Value == DOUBLE
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.EventFilter.FilterType == enum_FilterType[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.Frequency == enum_Frequency[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.IsLocalTime == BOOLEAN
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.QuietTime.End == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.QuietTime.Start == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.StartTime == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.Timezone == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].SizePercent == INTEGER
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TemplateConfiguration.EmailTemplate.Name == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TemplateConfiguration.EmailTemplate.Version == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TemplateConfiguration.PushTemplate.Name == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TemplateConfiguration.PushTemplate.Version == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TemplateConfiguration.SMSTemplate.Name == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TemplateConfiguration.SMSTemplate.Version == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TemplateConfiguration.VoiceTemplate.Name == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TemplateConfiguration.VoiceTemplate.Version == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TemplateConfiguration.InAppTemplate.Name == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TemplateConfiguration.InAppTemplate.Version == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TreatmentDescription == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TreatmentName == STRING
    input.Body.WriteCampaignRequest.CustomDeliveryConfiguration.DeliveryUri == STRING
    input.Body.WriteCampaignRequest.CustomDeliveryConfiguration.EndpointTypes[_] == enum___EndpointTypesElement[_]
    input.Body.WriteCampaignRequest.Description == STRING
    input.Body.WriteCampaignRequest.HoldoutPercent == INTEGER
    input.Body.WriteCampaignRequest.Hook.LambdaFunctionName == STRING
    input.Body.WriteCampaignRequest.Hook.Mode == enum_Mode[_]
    input.Body.WriteCampaignRequest.Hook.WebUrl == STRING
    input.Body.WriteCampaignRequest.IsPaused == BOOLEAN
    input.Body.WriteCampaignRequest.Limits.Daily == INTEGER
    input.Body.WriteCampaignRequest.Limits.MaximumDuration == INTEGER
    input.Body.WriteCampaignRequest.Limits.MessagesPerSecond == INTEGER
    input.Body.WriteCampaignRequest.Limits.Total == INTEGER
    input.Body.WriteCampaignRequest.Limits.Session == INTEGER
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.Action == enum_Action[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.Body == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.ImageIconUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.ImageSmallIconUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.ImageUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.JsonBody == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.MediaUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.RawContent == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.SilentPush == BOOLEAN
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.TimeToLive == INTEGER
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.Title == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.Url == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.Action == enum_Action[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.Body == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.ImageIconUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.ImageSmallIconUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.ImageUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.JsonBody == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.MediaUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.RawContent == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.SilentPush == BOOLEAN
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.TimeToLive == INTEGER
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.Title == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.Url == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.Action == enum_Action[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.Body == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.ImageIconUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.ImageSmallIconUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.ImageUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.JsonBody == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.MediaUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.RawContent == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.SilentPush == BOOLEAN
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.TimeToLive == INTEGER
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.Title == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.Url == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.CustomMessage.Data == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.Action == enum_Action[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.Body == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.ImageIconUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.ImageSmallIconUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.ImageUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.JsonBody == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.MediaUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.RawContent == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.SilentPush == BOOLEAN
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.TimeToLive == INTEGER
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.Title == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.Url == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.EmailMessage.Body == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.EmailMessage.FromAddress == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.EmailMessage.Headers[_].Name == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.EmailMessage.Headers[_].Value == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.EmailMessage.HtmlBody == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.EmailMessage.Title == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.Action == enum_Action[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.Body == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.ImageIconUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.ImageSmallIconUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.ImageUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.JsonBody == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.MediaUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.RawContent == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.SilentPush == BOOLEAN
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.TimeToLive == INTEGER
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.Title == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.Url == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.SMSMessage.Body == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.SMSMessage.MessageType == enum_MessageType[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.SMSMessage.OriginationNumber == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.SMSMessage.SenderId == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.SMSMessage.EntityId == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.SMSMessage.TemplateId == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Body == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].BackgroundColor == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].BodyConfig.Alignment == enum_Alignment[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].BodyConfig.Body == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].BodyConfig.TextColor == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].HeaderConfig.Alignment == enum_Alignment[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].HeaderConfig.Header == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].HeaderConfig.TextColor == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].ImageUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.Android.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.Android.Link == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.BackgroundColor == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.BorderRadius == INTEGER
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.Link == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.Text == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.TextColor == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.IOS.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.IOS.Link == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.Web.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.Web.Link == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.Android.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.Android.Link == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.BackgroundColor == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.BorderRadius == INTEGER
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.Link == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.Text == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.TextColor == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.IOS.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.IOS.Link == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.Web.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.Web.Link == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.CustomConfig.STRING == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Layout == enum_Layout[_]
    input.Body.WriteCampaignRequest.Name == STRING
    input.Body.WriteCampaignRequest.Schedule.EndTime == STRING
    input.Body.WriteCampaignRequest.Schedule.EventFilter.Dimensions.Attributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteCampaignRequest.Schedule.EventFilter.Dimensions.Attributes.STRING.Values[_] == STRING
    input.Body.WriteCampaignRequest.Schedule.EventFilter.Dimensions.EventType.DimensionType == enum_DimensionType[_]
    input.Body.WriteCampaignRequest.Schedule.EventFilter.Dimensions.EventType.Values[_] == STRING
    input.Body.WriteCampaignRequest.Schedule.EventFilter.Dimensions.Metrics.STRING.ComparisonOperator == STRING
    input.Body.WriteCampaignRequest.Schedule.EventFilter.Dimensions.Metrics.STRING.Value == DOUBLE
    input.Body.WriteCampaignRequest.Schedule.EventFilter.FilterType == enum_FilterType[_]
    input.Body.WriteCampaignRequest.Schedule.Frequency == enum_Frequency[_]
    input.Body.WriteCampaignRequest.Schedule.IsLocalTime == BOOLEAN
    input.Body.WriteCampaignRequest.Schedule.QuietTime.End == STRING
    input.Body.WriteCampaignRequest.Schedule.QuietTime.Start == STRING
    input.Body.WriteCampaignRequest.Schedule.StartTime == STRING
    input.Body.WriteCampaignRequest.Schedule.Timezone == STRING
    input.Body.WriteCampaignRequest.SegmentId == STRING
    input.Body.WriteCampaignRequest.SegmentVersion == INTEGER
    input.Body.WriteCampaignRequest.tags.STRING == STRING
    input.Body.WriteCampaignRequest.TemplateConfiguration.EmailTemplate.Name == STRING
    input.Body.WriteCampaignRequest.TemplateConfiguration.EmailTemplate.Version == STRING
    input.Body.WriteCampaignRequest.TemplateConfiguration.PushTemplate.Name == STRING
    input.Body.WriteCampaignRequest.TemplateConfiguration.PushTemplate.Version == STRING
    input.Body.WriteCampaignRequest.TemplateConfiguration.SMSTemplate.Name == STRING
    input.Body.WriteCampaignRequest.TemplateConfiguration.SMSTemplate.Version == STRING
    input.Body.WriteCampaignRequest.TemplateConfiguration.VoiceTemplate.Name == STRING
    input.Body.WriteCampaignRequest.TemplateConfiguration.VoiceTemplate.Version == STRING
    input.Body.WriteCampaignRequest.TemplateConfiguration.InAppTemplate.Name == STRING
    input.Body.WriteCampaignRequest.TemplateConfiguration.InAppTemplate.Version == STRING
    input.Body.WriteCampaignRequest.TreatmentDescription == STRING
    input.Body.WriteCampaignRequest.TreatmentName == STRING
    input.Body.WriteCampaignRequest.Priority == INTEGER
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateEmailTemplate

valid {
    input.Body.EmailTemplateRequest.DefaultSubstitutions == STRING
    input.Body.EmailTemplateRequest.HtmlPart == STRING
    input.Body.EmailTemplateRequest.RecommenderId == STRING
    input.Body.EmailTemplateRequest.Subject == STRING
    input.Body.EmailTemplateRequest.Headers[_].Name == STRING
    input.Body.EmailTemplateRequest.Headers[_].Value == STRING
    input.Body.EmailTemplateRequest.tags.STRING == STRING
    input.Body.EmailTemplateRequest.TemplateDescription == STRING
    input.Body.EmailTemplateRequest.TextPart == STRING
    input.ReqMap.template-name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateExportJob

valid {
    input.Body.ExportJobRequest.RoleArn == STRING
    input.Body.ExportJobRequest.S3UrlPrefix == STRING
    input.Body.ExportJobRequest.SegmentId == STRING
    input.Body.ExportJobRequest.SegmentVersion == INTEGER
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateImportJob

enum_Format := [ "CSV", "JSON" ]

valid {
    input.Body.ImportJobRequest.DefineSegment == BOOLEAN
    input.Body.ImportJobRequest.ExternalId == STRING
    input.Body.ImportJobRequest.Format == enum_Format[_]
    input.Body.ImportJobRequest.RegisterEndpoints == BOOLEAN
    input.Body.ImportJobRequest.RoleArn == STRING
    input.Body.ImportJobRequest.S3Url == STRING
    input.Body.ImportJobRequest.SegmentId == STRING
    input.Body.ImportJobRequest.SegmentName == STRING
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateInAppTemplate

enum_Alignment := [ "LEFT", "CENTER", "RIGHT" ]
enum_ButtonAction := [ "LINK", "DEEP_LINK", "CLOSE" ]
enum_Layout := [ "BOTTOM_BANNER", "TOP_BANNER", "OVERLAYS", "MOBILE_FEED", "MIDDLE_BANNER", "CAROUSEL" ]

valid {
    input.Body.InAppTemplateRequest.Content[_].BackgroundColor == STRING
    input.Body.InAppTemplateRequest.Content[_].BodyConfig.Alignment == enum_Alignment[_]
    input.Body.InAppTemplateRequest.Content[_].BodyConfig.Body == STRING
    input.Body.InAppTemplateRequest.Content[_].BodyConfig.TextColor == STRING
    input.Body.InAppTemplateRequest.Content[_].HeaderConfig.Alignment == enum_Alignment[_]
    input.Body.InAppTemplateRequest.Content[_].HeaderConfig.Header == STRING
    input.Body.InAppTemplateRequest.Content[_].HeaderConfig.TextColor == STRING
    input.Body.InAppTemplateRequest.Content[_].ImageUrl == STRING
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.Android.ButtonAction == enum_ButtonAction[_]
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.Android.Link == STRING
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.DefaultConfig.BackgroundColor == STRING
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.DefaultConfig.BorderRadius == INTEGER
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.DefaultConfig.ButtonAction == enum_ButtonAction[_]
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.DefaultConfig.Link == STRING
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.DefaultConfig.Text == STRING
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.DefaultConfig.TextColor == STRING
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.IOS.ButtonAction == enum_ButtonAction[_]
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.IOS.Link == STRING
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.Web.ButtonAction == enum_ButtonAction[_]
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.Web.Link == STRING
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.Android.ButtonAction == enum_ButtonAction[_]
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.Android.Link == STRING
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.DefaultConfig.BackgroundColor == STRING
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.DefaultConfig.BorderRadius == INTEGER
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.DefaultConfig.ButtonAction == enum_ButtonAction[_]
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.DefaultConfig.Link == STRING
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.DefaultConfig.Text == STRING
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.DefaultConfig.TextColor == STRING
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.IOS.ButtonAction == enum_ButtonAction[_]
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.IOS.Link == STRING
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.Web.ButtonAction == enum_ButtonAction[_]
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.Web.Link == STRING
    input.Body.InAppTemplateRequest.CustomConfig.STRING == STRING
    input.Body.InAppTemplateRequest.Layout == enum_Layout[_]
    input.Body.InAppTemplateRequest.tags.STRING == STRING
    input.Body.InAppTemplateRequest.TemplateDescription == STRING
    input.ReqMap.template-name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateJourney

enum_AttributeType := [ "INCLUSIVE", "EXCLUSIVE", "CONTAINS", "BEFORE", "AFTER", "ON", "BETWEEN" ]
enum_DimensionType := [ "INCLUSIVE", "EXCLUSIVE" ]
enum_Duration := [ "HR_24", "DAY_7", "DAY_14", "DAY_30" ]
enum_FilterType := [ "SYSTEM", "ENDPOINT" ]
enum_MessageType := [ "TRANSACTIONAL", "PROMOTIONAL" ]
enum_Operator := [ "ALL", "ANY" ]
enum_RecencyType := [ "ACTIVE", "INACTIVE" ]
enum_State := [ "DRAFT", "ACTIVE", "COMPLETED", "CANCELLED", "CLOSED", "PAUSED" ]
enum___EndpointTypesElement := [ "PUSH", "GCM", "APNS", "APNS_SANDBOX", "APNS_VOIP", "APNS_VOIP_SANDBOX", "ADM", "SMS", "VOICE", "EMAIL", "BAIDU", "CUSTOM", "IN_APP" ]
enum___TimezoneEstimationMethodsElement := [ "PHONE_NUMBER", "POSTAL_CODE" ]

valid {
    input.Body.WriteJourneyRequest.Activities.STRING.CUSTOM.DeliveryUri == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.CUSTOM.EndpointTypes[_] == enum___EndpointTypesElement[_]
    input.Body.WriteJourneyRequest.Activities.STRING.CUSTOM.MessageConfig.Data == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.CUSTOM.NextActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.CUSTOM.TemplateName == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.CUSTOM.TemplateVersion == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].EventCondition.Dimensions.Attributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].EventCondition.Dimensions.Attributes.STRING.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].EventCondition.Dimensions.EventType.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].EventCondition.Dimensions.EventType.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].EventCondition.Dimensions.Metrics.STRING.ComparisonOperator == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].EventCondition.Dimensions.Metrics.STRING.Value == DOUBLE
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].EventCondition.MessageActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].SegmentCondition.SegmentId == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Attributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Attributes.STRING.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Behavior.Recency.Duration == enum_Duration[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Behavior.Recency.RecencyType == enum_RecencyType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.AppVersion.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.AppVersion.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.Channel.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.Channel.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.DeviceType.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.DeviceType.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.Make.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.Make.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.Model.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.Model.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.Platform.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.Platform.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Location.Country.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Location.Country.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Location.GPSPoint.Coordinates.Latitude == DOUBLE
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Location.GPSPoint.Coordinates.Longitude == DOUBLE
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Location.GPSPoint.RangeInKilometers == DOUBLE
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Metrics.STRING.ComparisonOperator == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Metrics.STRING.Value == DOUBLE
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.UserAttributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.UserAttributes.STRING.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Operator == enum_Operator[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.EvaluationWaitTime.WaitFor == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.EvaluationWaitTime.WaitUntil == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.FalseActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.TrueActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.Description == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.EMAIL.MessageConfig.FromAddress == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.EMAIL.NextActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.EMAIL.TemplateName == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.EMAIL.TemplateVersion == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.Holdout.NextActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.Holdout.Percentage == INTEGER
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.EventCondition.Dimensions.Attributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.EventCondition.Dimensions.Attributes.STRING.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.EventCondition.Dimensions.EventType.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.EventCondition.Dimensions.EventType.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.EventCondition.Dimensions.Metrics.STRING.ComparisonOperator == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.EventCondition.Dimensions.Metrics.STRING.Value == DOUBLE
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.EventCondition.MessageActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.SegmentCondition.SegmentId == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Attributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Attributes.STRING.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Behavior.Recency.Duration == enum_Duration[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Behavior.Recency.RecencyType == enum_RecencyType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.AppVersion.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.AppVersion.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.Channel.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.Channel.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.DeviceType.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.DeviceType.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.Make.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.Make.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.Model.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.Model.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.Platform.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.Platform.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Location.Country.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Location.Country.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Location.GPSPoint.Coordinates.Latitude == DOUBLE
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Location.GPSPoint.Coordinates.Longitude == DOUBLE
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Location.GPSPoint.RangeInKilometers == DOUBLE
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Metrics.STRING.ComparisonOperator == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Metrics.STRING.Value == DOUBLE
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.UserAttributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.UserAttributes.STRING.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].NextActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.DefaultActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.EvaluationWaitTime.WaitFor == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.EvaluationWaitTime.WaitUntil == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.PUSH.MessageConfig.TimeToLive == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.PUSH.NextActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.PUSH.TemplateName == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.PUSH.TemplateVersion == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.RandomSplit.Branches[_].NextActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.RandomSplit.Branches[_].Percentage == INTEGER
    input.Body.WriteJourneyRequest.Activities.STRING.SMS.MessageConfig.MessageType == enum_MessageType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.SMS.MessageConfig.OriginationNumber == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.SMS.MessageConfig.SenderId == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.SMS.MessageConfig.EntityId == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.SMS.MessageConfig.TemplateId == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.SMS.NextActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.SMS.TemplateName == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.SMS.TemplateVersion == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.Wait.NextActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.Wait.WaitTime.WaitFor == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.Wait.WaitTime.WaitUntil == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ContactCenter.NextActivity == STRING
    input.Body.WriteJourneyRequest.CreationDate == STRING
    input.Body.WriteJourneyRequest.LastModifiedDate == STRING
    input.Body.WriteJourneyRequest.Limits.DailyCap == INTEGER
    input.Body.WriteJourneyRequest.Limits.EndpointReentryCap == INTEGER
    input.Body.WriteJourneyRequest.Limits.MessagesPerSecond == INTEGER
    input.Body.WriteJourneyRequest.Limits.EndpointReentryInterval == STRING
    input.Body.WriteJourneyRequest.Limits.TimeframeCap.Cap == INTEGER
    input.Body.WriteJourneyRequest.Limits.TimeframeCap.Days == INTEGER
    input.Body.WriteJourneyRequest.Limits.TotalCap == INTEGER
    input.Body.WriteJourneyRequest.LocalTime == BOOLEAN
    input.Body.WriteJourneyRequest.Name == STRING
    input.Body.WriteJourneyRequest.QuietTime.End == STRING
    input.Body.WriteJourneyRequest.QuietTime.Start == STRING
    input.Body.WriteJourneyRequest.RefreshFrequency == STRING
    input.Body.WriteJourneyRequest.Schedule.EndTime == TIMESTAMP
    input.Body.WriteJourneyRequest.Schedule.StartTime == TIMESTAMP
    input.Body.WriteJourneyRequest.Schedule.Timezone == STRING
    input.Body.WriteJourneyRequest.StartActivity == STRING
    input.Body.WriteJourneyRequest.StartCondition.Description == STRING
    input.Body.WriteJourneyRequest.StartCondition.EventStartCondition.EventFilter.Dimensions.Attributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteJourneyRequest.StartCondition.EventStartCondition.EventFilter.Dimensions.Attributes.STRING.Values[_] == STRING
    input.Body.WriteJourneyRequest.StartCondition.EventStartCondition.EventFilter.Dimensions.EventType.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.StartCondition.EventStartCondition.EventFilter.Dimensions.EventType.Values[_] == STRING
    input.Body.WriteJourneyRequest.StartCondition.EventStartCondition.EventFilter.Dimensions.Metrics.STRING.ComparisonOperator == STRING
    input.Body.WriteJourneyRequest.StartCondition.EventStartCondition.EventFilter.Dimensions.Metrics.STRING.Value == DOUBLE
    input.Body.WriteJourneyRequest.StartCondition.EventStartCondition.EventFilter.FilterType == enum_FilterType[_]
    input.Body.WriteJourneyRequest.StartCondition.EventStartCondition.SegmentId == STRING
    input.Body.WriteJourneyRequest.StartCondition.SegmentStartCondition.SegmentId == STRING
    input.Body.WriteJourneyRequest.State == enum_State[_]
    input.Body.WriteJourneyRequest.WaitForQuietTime == BOOLEAN
    input.Body.WriteJourneyRequest.RefreshOnSegmentUpdate == BOOLEAN
    input.Body.WriteJourneyRequest.JourneyChannelSettings.ConnectCampaignArn == STRING
    input.Body.WriteJourneyRequest.JourneyChannelSettings.ConnectCampaignExecutionRoleArn == STRING
    input.Body.WriteJourneyRequest.SendingSchedule == BOOLEAN
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.MONDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.MONDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.TUESDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.TUESDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.WEDNESDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.WEDNESDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.THURSDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.THURSDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.FRIDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.FRIDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.SATURDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.SATURDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.SUNDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.SUNDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.MONDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.MONDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.TUESDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.TUESDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.WEDNESDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.WEDNESDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.THURSDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.THURSDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.FRIDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.FRIDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.SATURDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.SATURDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.SUNDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.SUNDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.MONDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.MONDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.TUESDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.TUESDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.WEDNESDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.WEDNESDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.THURSDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.THURSDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.FRIDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.FRIDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.SATURDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.SATURDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.SUNDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.SUNDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.MONDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.MONDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.TUESDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.TUESDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.WEDNESDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.WEDNESDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.THURSDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.THURSDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.FRIDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.FRIDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.SATURDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.SATURDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.SUNDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.SUNDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.MONDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.MONDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.TUESDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.TUESDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.WEDNESDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.WEDNESDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.THURSDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.THURSDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.FRIDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.FRIDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.SATURDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.SATURDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.SUNDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.SUNDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.ClosedDays.EMAIL[_].Name == STRING
    input.Body.WriteJourneyRequest.ClosedDays.EMAIL[_].StartDateTime == STRING
    input.Body.WriteJourneyRequest.ClosedDays.EMAIL[_].EndDateTime == STRING
    input.Body.WriteJourneyRequest.ClosedDays.SMS[_].Name == STRING
    input.Body.WriteJourneyRequest.ClosedDays.SMS[_].StartDateTime == STRING
    input.Body.WriteJourneyRequest.ClosedDays.SMS[_].EndDateTime == STRING
    input.Body.WriteJourneyRequest.ClosedDays.PUSH[_].Name == STRING
    input.Body.WriteJourneyRequest.ClosedDays.PUSH[_].StartDateTime == STRING
    input.Body.WriteJourneyRequest.ClosedDays.PUSH[_].EndDateTime == STRING
    input.Body.WriteJourneyRequest.ClosedDays.VOICE[_].Name == STRING
    input.Body.WriteJourneyRequest.ClosedDays.VOICE[_].StartDateTime == STRING
    input.Body.WriteJourneyRequest.ClosedDays.VOICE[_].EndDateTime == STRING
    input.Body.WriteJourneyRequest.ClosedDays.CUSTOM[_].Name == STRING
    input.Body.WriteJourneyRequest.ClosedDays.CUSTOM[_].StartDateTime == STRING
    input.Body.WriteJourneyRequest.ClosedDays.CUSTOM[_].EndDateTime == STRING
    input.Body.WriteJourneyRequest.TimezoneEstimationMethods[_] == enum___TimezoneEstimationMethodsElement[_]
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreatePushTemplate

enum_Action := [ "OPEN_APP", "DEEP_LINK", "URL" ]

valid {
    input.Body.PushNotificationTemplateRequest.ADM.Action == enum_Action[_]
    input.Body.PushNotificationTemplateRequest.ADM.Body == STRING
    input.Body.PushNotificationTemplateRequest.ADM.ImageIconUrl == STRING
    input.Body.PushNotificationTemplateRequest.ADM.ImageUrl == STRING
    input.Body.PushNotificationTemplateRequest.ADM.RawContent == STRING
    input.Body.PushNotificationTemplateRequest.ADM.SmallImageIconUrl == STRING
    input.Body.PushNotificationTemplateRequest.ADM.Sound == STRING
    input.Body.PushNotificationTemplateRequest.ADM.Title == STRING
    input.Body.PushNotificationTemplateRequest.ADM.Url == STRING
    input.Body.PushNotificationTemplateRequest.APNS.Action == enum_Action[_]
    input.Body.PushNotificationTemplateRequest.APNS.Body == STRING
    input.Body.PushNotificationTemplateRequest.APNS.MediaUrl == STRING
    input.Body.PushNotificationTemplateRequest.APNS.RawContent == STRING
    input.Body.PushNotificationTemplateRequest.APNS.Sound == STRING
    input.Body.PushNotificationTemplateRequest.APNS.Title == STRING
    input.Body.PushNotificationTemplateRequest.APNS.Url == STRING
    input.Body.PushNotificationTemplateRequest.Baidu.Action == enum_Action[_]
    input.Body.PushNotificationTemplateRequest.Baidu.Body == STRING
    input.Body.PushNotificationTemplateRequest.Baidu.ImageIconUrl == STRING
    input.Body.PushNotificationTemplateRequest.Baidu.ImageUrl == STRING
    input.Body.PushNotificationTemplateRequest.Baidu.RawContent == STRING
    input.Body.PushNotificationTemplateRequest.Baidu.SmallImageIconUrl == STRING
    input.Body.PushNotificationTemplateRequest.Baidu.Sound == STRING
    input.Body.PushNotificationTemplateRequest.Baidu.Title == STRING
    input.Body.PushNotificationTemplateRequest.Baidu.Url == STRING
    input.Body.PushNotificationTemplateRequest.Default.Action == enum_Action[_]
    input.Body.PushNotificationTemplateRequest.Default.Body == STRING
    input.Body.PushNotificationTemplateRequest.Default.Sound == STRING
    input.Body.PushNotificationTemplateRequest.Default.Title == STRING
    input.Body.PushNotificationTemplateRequest.Default.Url == STRING
    input.Body.PushNotificationTemplateRequest.DefaultSubstitutions == STRING
    input.Body.PushNotificationTemplateRequest.GCM.Action == enum_Action[_]
    input.Body.PushNotificationTemplateRequest.GCM.Body == STRING
    input.Body.PushNotificationTemplateRequest.GCM.ImageIconUrl == STRING
    input.Body.PushNotificationTemplateRequest.GCM.ImageUrl == STRING
    input.Body.PushNotificationTemplateRequest.GCM.RawContent == STRING
    input.Body.PushNotificationTemplateRequest.GCM.SmallImageIconUrl == STRING
    input.Body.PushNotificationTemplateRequest.GCM.Sound == STRING
    input.Body.PushNotificationTemplateRequest.GCM.Title == STRING
    input.Body.PushNotificationTemplateRequest.GCM.Url == STRING
    input.Body.PushNotificationTemplateRequest.RecommenderId == STRING
    input.Body.PushNotificationTemplateRequest.tags.STRING == STRING
    input.Body.PushNotificationTemplateRequest.TemplateDescription == STRING
    input.ReqMap.template-name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateRecommenderConfiguration

valid {
    input.Body.CreateRecommenderConfiguration.Attributes.STRING == STRING
    input.Body.CreateRecommenderConfiguration.Description == STRING
    input.Body.CreateRecommenderConfiguration.Name == STRING
    input.Body.CreateRecommenderConfiguration.RecommendationProviderIdType == STRING
    input.Body.CreateRecommenderConfiguration.RecommendationProviderRoleArn == STRING
    input.Body.CreateRecommenderConfiguration.RecommendationProviderUri == STRING
    input.Body.CreateRecommenderConfiguration.RecommendationTransformerUri == STRING
    input.Body.CreateRecommenderConfiguration.RecommendationsDisplayName == STRING
    input.Body.CreateRecommenderConfiguration.RecommendationsPerMessage == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSegment

enum_AttributeType := [ "INCLUSIVE", "EXCLUSIVE", "CONTAINS", "BEFORE", "AFTER", "ON", "BETWEEN" ]
enum_DimensionType := [ "INCLUSIVE", "EXCLUSIVE" ]
enum_Duration := [ "HR_24", "DAY_7", "DAY_14", "DAY_30" ]
enum_Include := [ "ALL", "ANY", "NONE" ]
enum_RecencyType := [ "ACTIVE", "INACTIVE" ]
enum_SourceType := [ "ALL", "ANY", "NONE" ]
enum_Type := [ "ALL", "ANY", "NONE" ]

valid {
    input.Body.WriteSegmentRequest.Dimensions.Attributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteSegmentRequest.Dimensions.Attributes.STRING.Values[_] == STRING
    input.Body.WriteSegmentRequest.Dimensions.Behavior.Recency.Duration == enum_Duration[_]
    input.Body.WriteSegmentRequest.Dimensions.Behavior.Recency.RecencyType == enum_RecencyType[_]
    input.Body.WriteSegmentRequest.Dimensions.Demographic.AppVersion.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.Dimensions.Demographic.AppVersion.Values[_] == STRING
    input.Body.WriteSegmentRequest.Dimensions.Demographic.Channel.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.Dimensions.Demographic.Channel.Values[_] == STRING
    input.Body.WriteSegmentRequest.Dimensions.Demographic.DeviceType.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.Dimensions.Demographic.DeviceType.Values[_] == STRING
    input.Body.WriteSegmentRequest.Dimensions.Demographic.Make.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.Dimensions.Demographic.Make.Values[_] == STRING
    input.Body.WriteSegmentRequest.Dimensions.Demographic.Model.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.Dimensions.Demographic.Model.Values[_] == STRING
    input.Body.WriteSegmentRequest.Dimensions.Demographic.Platform.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.Dimensions.Demographic.Platform.Values[_] == STRING
    input.Body.WriteSegmentRequest.Dimensions.Location.Country.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.Dimensions.Location.Country.Values[_] == STRING
    input.Body.WriteSegmentRequest.Dimensions.Location.GPSPoint.Coordinates.Latitude == DOUBLE
    input.Body.WriteSegmentRequest.Dimensions.Location.GPSPoint.Coordinates.Longitude == DOUBLE
    input.Body.WriteSegmentRequest.Dimensions.Location.GPSPoint.RangeInKilometers == DOUBLE
    input.Body.WriteSegmentRequest.Dimensions.Metrics.STRING.ComparisonOperator == STRING
    input.Body.WriteSegmentRequest.Dimensions.Metrics.STRING.Value == DOUBLE
    input.Body.WriteSegmentRequest.Dimensions.UserAttributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteSegmentRequest.Dimensions.UserAttributes.STRING.Values[_] == STRING
    input.Body.WriteSegmentRequest.Name == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Attributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Attributes.STRING.Values[_] == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Behavior.Recency.Duration == enum_Duration[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Behavior.Recency.RecencyType == enum_RecencyType[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.AppVersion.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.AppVersion.Values[_] == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.Channel.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.Channel.Values[_] == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.DeviceType.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.DeviceType.Values[_] == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.Make.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.Make.Values[_] == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.Model.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.Model.Values[_] == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.Platform.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.Platform.Values[_] == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Location.Country.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Location.Country.Values[_] == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Location.GPSPoint.Coordinates.Latitude == DOUBLE
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Location.GPSPoint.Coordinates.Longitude == DOUBLE
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Location.GPSPoint.RangeInKilometers == DOUBLE
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Metrics.STRING.ComparisonOperator == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Metrics.STRING.Value == DOUBLE
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].UserAttributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].UserAttributes.STRING.Values[_] == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].SourceSegments[_].Id == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].SourceSegments[_].Version == INTEGER
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].SourceType == enum_SourceType[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Type == enum_Type[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Include == enum_Include[_]
    input.Body.WriteSegmentRequest.tags.STRING == STRING
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSmsTemplate

valid {
    input.Body.SMSTemplateRequest.Body == STRING
    input.Body.SMSTemplateRequest.DefaultSubstitutions == STRING
    input.Body.SMSTemplateRequest.RecommenderId == STRING
    input.Body.SMSTemplateRequest.tags.STRING == STRING
    input.Body.SMSTemplateRequest.TemplateDescription == STRING
    input.ReqMap.template-name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateVoiceTemplate

valid {
    input.Body.VoiceTemplateRequest.Body == STRING
    input.Body.VoiceTemplateRequest.DefaultSubstitutions == STRING
    input.Body.VoiceTemplateRequest.LanguageCode == STRING
    input.Body.VoiceTemplateRequest.tags.STRING == STRING
    input.Body.VoiceTemplateRequest.TemplateDescription == STRING
    input.Body.VoiceTemplateRequest.VoiceId == STRING
    input.ReqMap.template-name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteAdmChannel

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteApnsChannel

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteApnsSandboxChannel

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteApnsVoipChannel

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteApnsVoipSandboxChannel

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteApp

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteBaiduChannel

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteCampaign

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.campaign-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteEmailChannel

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteEmailTemplate

valid {
    input.ReqMap.template-name == STRING
    input.Qs.version == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteEndpoint

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.endpoint-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteEventStream

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteGcmChannel

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteInAppTemplate

valid {
    input.ReqMap.template-name == STRING
    input.Qs.version == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteJourney

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.journey-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeletePushTemplate

valid {
    input.ReqMap.template-name == STRING
    input.Qs.version == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteRecommenderConfiguration

valid {
    input.ReqMap.recommender-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteSegment

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.segment-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteSmsChannel

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteSmsTemplate

valid {
    input.ReqMap.template-name == STRING
    input.Qs.version == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteUserEndpoints

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.user-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteVoiceChannel

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteVoiceTemplate

valid {
    input.ReqMap.template-name == STRING
    input.Qs.version == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetAdmChannel

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetApnsChannel

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetApnsSandboxChannel

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetApnsVoipChannel

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetApnsVoipSandboxChannel

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetApp

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetApplicationDateRangeKpi

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.kpi-name == STRING
    input.Qs.end-time == TIMESTAMP
    input.Qs.next-token == STRING
    input.Qs.page-size == STRING
    input.Qs.start-time == TIMESTAMP
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetApplicationSettings

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetApps

valid {
    input.Qs.page-size == STRING
    input.Qs.token == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetBaiduChannel

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetCampaign

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.campaign-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetCampaignActivities

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.campaign-id == STRING
    input.Qs.page-size == STRING
    input.Qs.token == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetCampaignDateRangeKpi

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.campaign-id == STRING
    input.ReqMap.kpi-name == STRING
    input.Qs.end-time == TIMESTAMP
    input.Qs.next-token == STRING
    input.Qs.page-size == STRING
    input.Qs.start-time == TIMESTAMP
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetCampaignVersion

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.campaign-id == STRING
    input.ReqMap.version == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetCampaignVersions

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.campaign-id == STRING
    input.Qs.page-size == STRING
    input.Qs.token == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetCampaigns

valid {
    input.ReqMap.application-id == STRING
    input.Qs.page-size == STRING
    input.Qs.token == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetChannels

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetEmailChannel

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetEmailTemplate

valid {
    input.ReqMap.template-name == STRING
    input.Qs.version == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetEndpoint

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.endpoint-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetEventStream

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetExportJob

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.job-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetExportJobs

valid {
    input.ReqMap.application-id == STRING
    input.Qs.page-size == STRING
    input.Qs.token == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetGcmChannel

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetImportJob

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.job-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetImportJobs

valid {
    input.ReqMap.application-id == STRING
    input.Qs.page-size == STRING
    input.Qs.token == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetInAppMessages

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.endpoint-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetInAppTemplate

valid {
    input.ReqMap.template-name == STRING
    input.Qs.version == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetJourney

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.journey-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetJourneyDateRangeKpi

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.journey-id == STRING
    input.ReqMap.kpi-name == STRING
    input.Qs.end-time == TIMESTAMP
    input.Qs.next-token == STRING
    input.Qs.page-size == STRING
    input.Qs.start-time == TIMESTAMP
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetJourneyExecutionActivityMetrics

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.journey-activity-id == STRING
    input.ReqMap.journey-id == STRING
    input.Qs.next-token == STRING
    input.Qs.page-size == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetJourneyExecutionMetrics

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.journey-id == STRING
    input.Qs.next-token == STRING
    input.Qs.page-size == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetJourneyRunExecutionActivityMetrics

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.journey-activity-id == STRING
    input.ReqMap.journey-id == STRING
    input.ReqMap.run-id == STRING
    input.Qs.next-token == STRING
    input.Qs.page-size == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetJourneyRunExecutionMetrics

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.journey-id == STRING
    input.ReqMap.run-id == STRING
    input.Qs.next-token == STRING
    input.Qs.page-size == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetJourneyRuns

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.journey-id == STRING
    input.Qs.page-size == STRING
    input.Qs.token == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetPushTemplate

valid {
    input.ReqMap.template-name == STRING
    input.Qs.version == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetRecommenderConfiguration

valid {
    input.ReqMap.recommender-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetRecommenderConfigurations

valid {
    input.Qs.page-size == STRING
    input.Qs.token == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetSegment

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.segment-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetSegmentExportJobs

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.segment-id == STRING
    input.Qs.page-size == STRING
    input.Qs.token == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetSegmentImportJobs

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.segment-id == STRING
    input.Qs.page-size == STRING
    input.Qs.token == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetSegmentVersion

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.segment-id == STRING
    input.ReqMap.version == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetSegmentVersions

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.segment-id == STRING
    input.Qs.page-size == STRING
    input.Qs.token == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetSegments

valid {
    input.ReqMap.application-id == STRING
    input.Qs.page-size == STRING
    input.Qs.token == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetSmsChannel

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetSmsTemplate

valid {
    input.ReqMap.template-name == STRING
    input.Qs.version == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetUserEndpoints

valid {
    input.ReqMap.application-id == STRING
    input.ReqMap.user-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetVoiceChannel

valid {
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetVoiceTemplate

valid {
    input.ReqMap.template-name == STRING
    input.Qs.version == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListJourneys

valid {
    input.ReqMap.application-id == STRING
    input.Qs.page-size == STRING
    input.Qs.token == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagsForResource

valid {
    input.ReqMap.resource-arn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTemplateVersions

valid {
    input.ReqMap.template-name == STRING
    input.ReqMap.template-type == STRING
    input.Qs.next-token == STRING
    input.Qs.page-size == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTemplates

valid {
    input.Qs.next-token == STRING
    input.Qs.page-size == STRING
    input.Qs.prefix == STRING
    input.Qs.template-type == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PhoneNumberValidate

valid {
    input.Body.NumberValidateRequest.IsoCountryCode == STRING
    input.Body.NumberValidateRequest.PhoneNumber == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutEventStream

valid {
    input.Body.WriteEventStream.DestinationStreamArn == STRING
    input.Body.WriteEventStream.RoleArn == STRING
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutEvents

enum_ChannelType := [ "PUSH", "GCM", "APNS", "APNS_SANDBOX", "APNS_VOIP", "APNS_VOIP_SANDBOX", "ADM", "SMS", "VOICE", "EMAIL", "BAIDU", "CUSTOM", "IN_APP" ]

valid {
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.Address == STRING
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.Attributes.STRING[_] == STRING
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.ChannelType == enum_ChannelType[_]
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.Demographic.AppVersion == STRING
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.Demographic.Locale == STRING
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.Demographic.Make == STRING
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.Demographic.Model == STRING
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.Demographic.ModelVersion == STRING
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.Demographic.Platform == STRING
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.Demographic.PlatformVersion == STRING
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.Demographic.Timezone == STRING
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.EffectiveDate == STRING
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.EndpointStatus == STRING
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.Location.City == STRING
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.Location.Country == STRING
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.Location.Latitude == DOUBLE
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.Location.Longitude == DOUBLE
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.Location.PostalCode == STRING
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.Location.Region == STRING
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.Metrics.STRING == DOUBLE
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.OptOut == STRING
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.RequestId == STRING
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.User.UserAttributes.STRING[_] == STRING
    input.Body.EventsRequest.BatchItem.STRING.Endpoint.User.UserId == STRING
    input.Body.EventsRequest.BatchItem.STRING.Events.STRING.AppPackageName == STRING
    input.Body.EventsRequest.BatchItem.STRING.Events.STRING.AppTitle == STRING
    input.Body.EventsRequest.BatchItem.STRING.Events.STRING.AppVersionCode == STRING
    input.Body.EventsRequest.BatchItem.STRING.Events.STRING.Attributes.STRING == STRING
    input.Body.EventsRequest.BatchItem.STRING.Events.STRING.ClientSdkVersion == STRING
    input.Body.EventsRequest.BatchItem.STRING.Events.STRING.EventType == STRING
    input.Body.EventsRequest.BatchItem.STRING.Events.STRING.Metrics.STRING == DOUBLE
    input.Body.EventsRequest.BatchItem.STRING.Events.STRING.SdkName == STRING
    input.Body.EventsRequest.BatchItem.STRING.Events.STRING.Session.Duration == INTEGER
    input.Body.EventsRequest.BatchItem.STRING.Events.STRING.Session.Id == STRING
    input.Body.EventsRequest.BatchItem.STRING.Events.STRING.Session.StartTimestamp == STRING
    input.Body.EventsRequest.BatchItem.STRING.Events.STRING.Session.StopTimestamp == STRING
    input.Body.EventsRequest.BatchItem.STRING.Events.STRING.Timestamp == STRING
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RemoveAttributes

valid {
    input.Body.UpdateAttributesRequest.Blacklist[_] == STRING
    input.ReqMap.application-id == STRING
    input.ReqMap.attribute-type == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SendMessages

enum_Action := [ "OPEN_APP", "DEEP_LINK", "URL" ]
enum_ChannelType := [ "PUSH", "GCM", "APNS", "APNS_SANDBOX", "APNS_VOIP", "APNS_VOIP_SANDBOX", "ADM", "SMS", "VOICE", "EMAIL", "BAIDU", "CUSTOM", "IN_APP" ]
enum_MessageType := [ "TRANSACTIONAL", "PROMOTIONAL" ]

valid {
    input.Body.MessageRequest.Addresses.STRING.BodyOverride == STRING
    input.Body.MessageRequest.Addresses.STRING.ChannelType == enum_ChannelType[_]
    input.Body.MessageRequest.Addresses.STRING.Context.STRING == STRING
    input.Body.MessageRequest.Addresses.STRING.RawContent == STRING
    input.Body.MessageRequest.Addresses.STRING.Substitutions.STRING[_] == STRING
    input.Body.MessageRequest.Addresses.STRING.TitleOverride == STRING
    input.Body.MessageRequest.Context.STRING == STRING
    input.Body.MessageRequest.Endpoints.STRING.BodyOverride == STRING
    input.Body.MessageRequest.Endpoints.STRING.Context.STRING == STRING
    input.Body.MessageRequest.Endpoints.STRING.RawContent == STRING
    input.Body.MessageRequest.Endpoints.STRING.Substitutions.STRING[_] == STRING
    input.Body.MessageRequest.Endpoints.STRING.TitleOverride == STRING
    input.Body.MessageRequest.MessageConfiguration.ADMMessage.Action == enum_Action[_]
    input.Body.MessageRequest.MessageConfiguration.ADMMessage.Body == STRING
    input.Body.MessageRequest.MessageConfiguration.ADMMessage.ConsolidationKey == STRING
    input.Body.MessageRequest.MessageConfiguration.ADMMessage.Data.STRING == STRING
    input.Body.MessageRequest.MessageConfiguration.ADMMessage.ExpiresAfter == STRING
    input.Body.MessageRequest.MessageConfiguration.ADMMessage.IconReference == STRING
    input.Body.MessageRequest.MessageConfiguration.ADMMessage.ImageIconUrl == STRING
    input.Body.MessageRequest.MessageConfiguration.ADMMessage.ImageUrl == STRING
    input.Body.MessageRequest.MessageConfiguration.ADMMessage.MD5 == STRING
    input.Body.MessageRequest.MessageConfiguration.ADMMessage.RawContent == STRING
    input.Body.MessageRequest.MessageConfiguration.ADMMessage.SilentPush == BOOLEAN
    input.Body.MessageRequest.MessageConfiguration.ADMMessage.SmallImageIconUrl == STRING
    input.Body.MessageRequest.MessageConfiguration.ADMMessage.Sound == STRING
    input.Body.MessageRequest.MessageConfiguration.ADMMessage.Substitutions.STRING[_] == STRING
    input.Body.MessageRequest.MessageConfiguration.ADMMessage.Title == STRING
    input.Body.MessageRequest.MessageConfiguration.ADMMessage.Url == STRING
    input.Body.MessageRequest.MessageConfiguration.APNSMessage.APNSPushType == STRING
    input.Body.MessageRequest.MessageConfiguration.APNSMessage.Action == enum_Action[_]
    input.Body.MessageRequest.MessageConfiguration.APNSMessage.Badge == INTEGER
    input.Body.MessageRequest.MessageConfiguration.APNSMessage.Body == STRING
    input.Body.MessageRequest.MessageConfiguration.APNSMessage.Category == STRING
    input.Body.MessageRequest.MessageConfiguration.APNSMessage.CollapseId == STRING
    input.Body.MessageRequest.MessageConfiguration.APNSMessage.Data.STRING == STRING
    input.Body.MessageRequest.MessageConfiguration.APNSMessage.MediaUrl == STRING
    input.Body.MessageRequest.MessageConfiguration.APNSMessage.PreferredAuthenticationMethod == STRING
    input.Body.MessageRequest.MessageConfiguration.APNSMessage.Priority == STRING
    input.Body.MessageRequest.MessageConfiguration.APNSMessage.RawContent == STRING
    input.Body.MessageRequest.MessageConfiguration.APNSMessage.SilentPush == BOOLEAN
    input.Body.MessageRequest.MessageConfiguration.APNSMessage.Sound == STRING
    input.Body.MessageRequest.MessageConfiguration.APNSMessage.Substitutions.STRING[_] == STRING
    input.Body.MessageRequest.MessageConfiguration.APNSMessage.ThreadId == STRING
    input.Body.MessageRequest.MessageConfiguration.APNSMessage.TimeToLive == INTEGER
    input.Body.MessageRequest.MessageConfiguration.APNSMessage.Title == STRING
    input.Body.MessageRequest.MessageConfiguration.APNSMessage.Url == STRING
    input.Body.MessageRequest.MessageConfiguration.BaiduMessage.Action == enum_Action[_]
    input.Body.MessageRequest.MessageConfiguration.BaiduMessage.Body == STRING
    input.Body.MessageRequest.MessageConfiguration.BaiduMessage.Data.STRING == STRING
    input.Body.MessageRequest.MessageConfiguration.BaiduMessage.IconReference == STRING
    input.Body.MessageRequest.MessageConfiguration.BaiduMessage.ImageIconUrl == STRING
    input.Body.MessageRequest.MessageConfiguration.BaiduMessage.ImageUrl == STRING
    input.Body.MessageRequest.MessageConfiguration.BaiduMessage.RawContent == STRING
    input.Body.MessageRequest.MessageConfiguration.BaiduMessage.SilentPush == BOOLEAN
    input.Body.MessageRequest.MessageConfiguration.BaiduMessage.SmallImageIconUrl == STRING
    input.Body.MessageRequest.MessageConfiguration.BaiduMessage.Sound == STRING
    input.Body.MessageRequest.MessageConfiguration.BaiduMessage.Substitutions.STRING[_] == STRING
    input.Body.MessageRequest.MessageConfiguration.BaiduMessage.TimeToLive == INTEGER
    input.Body.MessageRequest.MessageConfiguration.BaiduMessage.Title == STRING
    input.Body.MessageRequest.MessageConfiguration.BaiduMessage.Url == STRING
    input.Body.MessageRequest.MessageConfiguration.DefaultMessage.Body == STRING
    input.Body.MessageRequest.MessageConfiguration.DefaultMessage.Substitutions.STRING[_] == STRING
    input.Body.MessageRequest.MessageConfiguration.DefaultPushNotificationMessage.Action == enum_Action[_]
    input.Body.MessageRequest.MessageConfiguration.DefaultPushNotificationMessage.Body == STRING
    input.Body.MessageRequest.MessageConfiguration.DefaultPushNotificationMessage.Data.STRING == STRING
    input.Body.MessageRequest.MessageConfiguration.DefaultPushNotificationMessage.SilentPush == BOOLEAN
    input.Body.MessageRequest.MessageConfiguration.DefaultPushNotificationMessage.Substitutions.STRING[_] == STRING
    input.Body.MessageRequest.MessageConfiguration.DefaultPushNotificationMessage.Title == STRING
    input.Body.MessageRequest.MessageConfiguration.DefaultPushNotificationMessage.Url == STRING
    input.Body.MessageRequest.MessageConfiguration.EmailMessage.Body == STRING
    input.Body.MessageRequest.MessageConfiguration.EmailMessage.FeedbackForwardingAddress == STRING
    input.Body.MessageRequest.MessageConfiguration.EmailMessage.FromAddress == STRING
    input.Body.MessageRequest.MessageConfiguration.EmailMessage.RawEmail.Data == BLOB
    input.Body.MessageRequest.MessageConfiguration.EmailMessage.ReplyToAddresses[_] == STRING
    input.Body.MessageRequest.MessageConfiguration.EmailMessage.SimpleEmail.HtmlPart.Charset == STRING
    input.Body.MessageRequest.MessageConfiguration.EmailMessage.SimpleEmail.HtmlPart.Data == STRING
    input.Body.MessageRequest.MessageConfiguration.EmailMessage.SimpleEmail.Subject.Charset == STRING
    input.Body.MessageRequest.MessageConfiguration.EmailMessage.SimpleEmail.Subject.Data == STRING
    input.Body.MessageRequest.MessageConfiguration.EmailMessage.SimpleEmail.TextPart.Charset == STRING
    input.Body.MessageRequest.MessageConfiguration.EmailMessage.SimpleEmail.TextPart.Data == STRING
    input.Body.MessageRequest.MessageConfiguration.EmailMessage.SimpleEmail.Headers[_].Name == STRING
    input.Body.MessageRequest.MessageConfiguration.EmailMessage.SimpleEmail.Headers[_].Value == STRING
    input.Body.MessageRequest.MessageConfiguration.EmailMessage.Substitutions.STRING[_] == STRING
    input.Body.MessageRequest.MessageConfiguration.GCMMessage.Action == enum_Action[_]
    input.Body.MessageRequest.MessageConfiguration.GCMMessage.Body == STRING
    input.Body.MessageRequest.MessageConfiguration.GCMMessage.CollapseKey == STRING
    input.Body.MessageRequest.MessageConfiguration.GCMMessage.Data.STRING == STRING
    input.Body.MessageRequest.MessageConfiguration.GCMMessage.IconReference == STRING
    input.Body.MessageRequest.MessageConfiguration.GCMMessage.ImageIconUrl == STRING
    input.Body.MessageRequest.MessageConfiguration.GCMMessage.ImageUrl == STRING
    input.Body.MessageRequest.MessageConfiguration.GCMMessage.PreferredAuthenticationMethod == STRING
    input.Body.MessageRequest.MessageConfiguration.GCMMessage.Priority == STRING
    input.Body.MessageRequest.MessageConfiguration.GCMMessage.RawContent == STRING
    input.Body.MessageRequest.MessageConfiguration.GCMMessage.RestrictedPackageName == STRING
    input.Body.MessageRequest.MessageConfiguration.GCMMessage.SilentPush == BOOLEAN
    input.Body.MessageRequest.MessageConfiguration.GCMMessage.SmallImageIconUrl == STRING
    input.Body.MessageRequest.MessageConfiguration.GCMMessage.Sound == STRING
    input.Body.MessageRequest.MessageConfiguration.GCMMessage.Substitutions.STRING[_] == STRING
    input.Body.MessageRequest.MessageConfiguration.GCMMessage.TimeToLive == INTEGER
    input.Body.MessageRequest.MessageConfiguration.GCMMessage.Title == STRING
    input.Body.MessageRequest.MessageConfiguration.GCMMessage.Url == STRING
    input.Body.MessageRequest.MessageConfiguration.SMSMessage.Body == STRING
    input.Body.MessageRequest.MessageConfiguration.SMSMessage.Keyword == STRING
    input.Body.MessageRequest.MessageConfiguration.SMSMessage.MediaUrl == STRING
    input.Body.MessageRequest.MessageConfiguration.SMSMessage.MessageType == enum_MessageType[_]
    input.Body.MessageRequest.MessageConfiguration.SMSMessage.OriginationNumber == STRING
    input.Body.MessageRequest.MessageConfiguration.SMSMessage.SenderId == STRING
    input.Body.MessageRequest.MessageConfiguration.SMSMessage.Substitutions.STRING[_] == STRING
    input.Body.MessageRequest.MessageConfiguration.SMSMessage.EntityId == STRING
    input.Body.MessageRequest.MessageConfiguration.SMSMessage.TemplateId == STRING
    input.Body.MessageRequest.MessageConfiguration.VoiceMessage.Body == STRING
    input.Body.MessageRequest.MessageConfiguration.VoiceMessage.LanguageCode == STRING
    input.Body.MessageRequest.MessageConfiguration.VoiceMessage.OriginationNumber == STRING
    input.Body.MessageRequest.MessageConfiguration.VoiceMessage.Substitutions.STRING[_] == STRING
    input.Body.MessageRequest.MessageConfiguration.VoiceMessage.VoiceId == STRING
    input.Body.MessageRequest.TemplateConfiguration.EmailTemplate.Name == STRING
    input.Body.MessageRequest.TemplateConfiguration.EmailTemplate.Version == STRING
    input.Body.MessageRequest.TemplateConfiguration.PushTemplate.Name == STRING
    input.Body.MessageRequest.TemplateConfiguration.PushTemplate.Version == STRING
    input.Body.MessageRequest.TemplateConfiguration.SMSTemplate.Name == STRING
    input.Body.MessageRequest.TemplateConfiguration.SMSTemplate.Version == STRING
    input.Body.MessageRequest.TemplateConfiguration.VoiceTemplate.Name == STRING
    input.Body.MessageRequest.TemplateConfiguration.VoiceTemplate.Version == STRING
    input.Body.MessageRequest.TemplateConfiguration.InAppTemplate.Name == STRING
    input.Body.MessageRequest.TemplateConfiguration.InAppTemplate.Version == STRING
    input.Body.MessageRequest.TraceId == STRING
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SendOTPMessage

valid {
    input.Body.SendOTPMessageRequestParameters.AllowedAttempts == INTEGER
    input.Body.SendOTPMessageRequestParameters.BrandName == STRING
    input.Body.SendOTPMessageRequestParameters.Channel == STRING
    input.Body.SendOTPMessageRequestParameters.CodeLength == INTEGER
    input.Body.SendOTPMessageRequestParameters.DestinationIdentity == STRING
    input.Body.SendOTPMessageRequestParameters.EntityId == STRING
    input.Body.SendOTPMessageRequestParameters.Language == STRING
    input.Body.SendOTPMessageRequestParameters.OriginationIdentity == STRING
    input.Body.SendOTPMessageRequestParameters.ReferenceId == STRING
    input.Body.SendOTPMessageRequestParameters.TemplateId == STRING
    input.Body.SendOTPMessageRequestParameters.ValidityPeriod == INTEGER
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SendUsersMessages

enum_Action := [ "OPEN_APP", "DEEP_LINK", "URL" ]
enum_MessageType := [ "TRANSACTIONAL", "PROMOTIONAL" ]

valid {
    input.Body.SendUsersMessageRequest.Context.STRING == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.ADMMessage.Action == enum_Action[_]
    input.Body.SendUsersMessageRequest.MessageConfiguration.ADMMessage.Body == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.ADMMessage.ConsolidationKey == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.ADMMessage.Data.STRING == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.ADMMessage.ExpiresAfter == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.ADMMessage.IconReference == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.ADMMessage.ImageIconUrl == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.ADMMessage.ImageUrl == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.ADMMessage.MD5 == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.ADMMessage.RawContent == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.ADMMessage.SilentPush == BOOLEAN
    input.Body.SendUsersMessageRequest.MessageConfiguration.ADMMessage.SmallImageIconUrl == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.ADMMessage.Sound == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.ADMMessage.Substitutions.STRING[_] == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.ADMMessage.Title == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.ADMMessage.Url == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.APNSMessage.APNSPushType == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.APNSMessage.Action == enum_Action[_]
    input.Body.SendUsersMessageRequest.MessageConfiguration.APNSMessage.Badge == INTEGER
    input.Body.SendUsersMessageRequest.MessageConfiguration.APNSMessage.Body == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.APNSMessage.Category == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.APNSMessage.CollapseId == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.APNSMessage.Data.STRING == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.APNSMessage.MediaUrl == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.APNSMessage.PreferredAuthenticationMethod == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.APNSMessage.Priority == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.APNSMessage.RawContent == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.APNSMessage.SilentPush == BOOLEAN
    input.Body.SendUsersMessageRequest.MessageConfiguration.APNSMessage.Sound == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.APNSMessage.Substitutions.STRING[_] == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.APNSMessage.ThreadId == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.APNSMessage.TimeToLive == INTEGER
    input.Body.SendUsersMessageRequest.MessageConfiguration.APNSMessage.Title == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.APNSMessage.Url == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.BaiduMessage.Action == enum_Action[_]
    input.Body.SendUsersMessageRequest.MessageConfiguration.BaiduMessage.Body == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.BaiduMessage.Data.STRING == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.BaiduMessage.IconReference == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.BaiduMessage.ImageIconUrl == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.BaiduMessage.ImageUrl == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.BaiduMessage.RawContent == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.BaiduMessage.SilentPush == BOOLEAN
    input.Body.SendUsersMessageRequest.MessageConfiguration.BaiduMessage.SmallImageIconUrl == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.BaiduMessage.Sound == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.BaiduMessage.Substitutions.STRING[_] == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.BaiduMessage.TimeToLive == INTEGER
    input.Body.SendUsersMessageRequest.MessageConfiguration.BaiduMessage.Title == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.BaiduMessage.Url == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.DefaultMessage.Body == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.DefaultMessage.Substitutions.STRING[_] == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.DefaultPushNotificationMessage.Action == enum_Action[_]
    input.Body.SendUsersMessageRequest.MessageConfiguration.DefaultPushNotificationMessage.Body == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.DefaultPushNotificationMessage.Data.STRING == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.DefaultPushNotificationMessage.SilentPush == BOOLEAN
    input.Body.SendUsersMessageRequest.MessageConfiguration.DefaultPushNotificationMessage.Substitutions.STRING[_] == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.DefaultPushNotificationMessage.Title == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.DefaultPushNotificationMessage.Url == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.EmailMessage.Body == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.EmailMessage.FeedbackForwardingAddress == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.EmailMessage.FromAddress == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.EmailMessage.RawEmail.Data == BLOB
    input.Body.SendUsersMessageRequest.MessageConfiguration.EmailMessage.ReplyToAddresses[_] == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.EmailMessage.SimpleEmail.HtmlPart.Charset == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.EmailMessage.SimpleEmail.HtmlPart.Data == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.EmailMessage.SimpleEmail.Subject.Charset == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.EmailMessage.SimpleEmail.Subject.Data == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.EmailMessage.SimpleEmail.TextPart.Charset == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.EmailMessage.SimpleEmail.TextPart.Data == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.EmailMessage.SimpleEmail.Headers[_].Name == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.EmailMessage.SimpleEmail.Headers[_].Value == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.EmailMessage.Substitutions.STRING[_] == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.GCMMessage.Action == enum_Action[_]
    input.Body.SendUsersMessageRequest.MessageConfiguration.GCMMessage.Body == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.GCMMessage.CollapseKey == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.GCMMessage.Data.STRING == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.GCMMessage.IconReference == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.GCMMessage.ImageIconUrl == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.GCMMessage.ImageUrl == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.GCMMessage.PreferredAuthenticationMethod == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.GCMMessage.Priority == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.GCMMessage.RawContent == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.GCMMessage.RestrictedPackageName == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.GCMMessage.SilentPush == BOOLEAN
    input.Body.SendUsersMessageRequest.MessageConfiguration.GCMMessage.SmallImageIconUrl == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.GCMMessage.Sound == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.GCMMessage.Substitutions.STRING[_] == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.GCMMessage.TimeToLive == INTEGER
    input.Body.SendUsersMessageRequest.MessageConfiguration.GCMMessage.Title == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.GCMMessage.Url == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.SMSMessage.Body == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.SMSMessage.Keyword == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.SMSMessage.MediaUrl == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.SMSMessage.MessageType == enum_MessageType[_]
    input.Body.SendUsersMessageRequest.MessageConfiguration.SMSMessage.OriginationNumber == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.SMSMessage.SenderId == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.SMSMessage.Substitutions.STRING[_] == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.SMSMessage.EntityId == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.SMSMessage.TemplateId == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.VoiceMessage.Body == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.VoiceMessage.LanguageCode == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.VoiceMessage.OriginationNumber == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.VoiceMessage.Substitutions.STRING[_] == STRING
    input.Body.SendUsersMessageRequest.MessageConfiguration.VoiceMessage.VoiceId == STRING
    input.Body.SendUsersMessageRequest.TemplateConfiguration.EmailTemplate.Name == STRING
    input.Body.SendUsersMessageRequest.TemplateConfiguration.EmailTemplate.Version == STRING
    input.Body.SendUsersMessageRequest.TemplateConfiguration.PushTemplate.Name == STRING
    input.Body.SendUsersMessageRequest.TemplateConfiguration.PushTemplate.Version == STRING
    input.Body.SendUsersMessageRequest.TemplateConfiguration.SMSTemplate.Name == STRING
    input.Body.SendUsersMessageRequest.TemplateConfiguration.SMSTemplate.Version == STRING
    input.Body.SendUsersMessageRequest.TemplateConfiguration.VoiceTemplate.Name == STRING
    input.Body.SendUsersMessageRequest.TemplateConfiguration.VoiceTemplate.Version == STRING
    input.Body.SendUsersMessageRequest.TemplateConfiguration.InAppTemplate.Name == STRING
    input.Body.SendUsersMessageRequest.TemplateConfiguration.InAppTemplate.Version == STRING
    input.Body.SendUsersMessageRequest.TraceId == STRING
    input.Body.SendUsersMessageRequest.Users.STRING.BodyOverride == STRING
    input.Body.SendUsersMessageRequest.Users.STRING.Context.STRING == STRING
    input.Body.SendUsersMessageRequest.Users.STRING.RawContent == STRING
    input.Body.SendUsersMessageRequest.Users.STRING.Substitutions.STRING[_] == STRING
    input.Body.SendUsersMessageRequest.Users.STRING.TitleOverride == STRING
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagResource

valid {
    input.Body.TagsModel.tags.STRING == STRING
    input.ReqMap.resource-arn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UntagResource

valid {
    input.ReqMap.resource-arn == STRING
    input.Qs.tagKeys[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateAdmChannel

valid {
    input.Body.ADMChannelRequest.ClientId == STRING
    input.Body.ADMChannelRequest.ClientSecret == STRING
    input.Body.ADMChannelRequest.Enabled == BOOLEAN
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateApnsChannel

valid {
    input.Body.APNSChannelRequest.BundleId == STRING
    input.Body.APNSChannelRequest.Certificate == STRING
    input.Body.APNSChannelRequest.DefaultAuthenticationMethod == STRING
    input.Body.APNSChannelRequest.Enabled == BOOLEAN
    input.Body.APNSChannelRequest.PrivateKey == STRING
    input.Body.APNSChannelRequest.TeamId == STRING
    input.Body.APNSChannelRequest.TokenKey == STRING
    input.Body.APNSChannelRequest.TokenKeyId == STRING
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateApnsSandboxChannel

valid {
    input.Body.APNSSandboxChannelRequest.BundleId == STRING
    input.Body.APNSSandboxChannelRequest.Certificate == STRING
    input.Body.APNSSandboxChannelRequest.DefaultAuthenticationMethod == STRING
    input.Body.APNSSandboxChannelRequest.Enabled == BOOLEAN
    input.Body.APNSSandboxChannelRequest.PrivateKey == STRING
    input.Body.APNSSandboxChannelRequest.TeamId == STRING
    input.Body.APNSSandboxChannelRequest.TokenKey == STRING
    input.Body.APNSSandboxChannelRequest.TokenKeyId == STRING
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateApnsVoipChannel

valid {
    input.Body.APNSVoipChannelRequest.BundleId == STRING
    input.Body.APNSVoipChannelRequest.Certificate == STRING
    input.Body.APNSVoipChannelRequest.DefaultAuthenticationMethod == STRING
    input.Body.APNSVoipChannelRequest.Enabled == BOOLEAN
    input.Body.APNSVoipChannelRequest.PrivateKey == STRING
    input.Body.APNSVoipChannelRequest.TeamId == STRING
    input.Body.APNSVoipChannelRequest.TokenKey == STRING
    input.Body.APNSVoipChannelRequest.TokenKeyId == STRING
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateApnsVoipSandboxChannel

valid {
    input.Body.APNSVoipSandboxChannelRequest.BundleId == STRING
    input.Body.APNSVoipSandboxChannelRequest.Certificate == STRING
    input.Body.APNSVoipSandboxChannelRequest.DefaultAuthenticationMethod == STRING
    input.Body.APNSVoipSandboxChannelRequest.Enabled == BOOLEAN
    input.Body.APNSVoipSandboxChannelRequest.PrivateKey == STRING
    input.Body.APNSVoipSandboxChannelRequest.TeamId == STRING
    input.Body.APNSVoipSandboxChannelRequest.TokenKey == STRING
    input.Body.APNSVoipSandboxChannelRequest.TokenKeyId == STRING
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateApplicationSettings

enum_Mode := [ "DELIVERY", "FILTER" ]

valid {
    input.Body.WriteApplicationSettingsRequest.CampaignHook.LambdaFunctionName == STRING
    input.Body.WriteApplicationSettingsRequest.CampaignHook.Mode == enum_Mode[_]
    input.Body.WriteApplicationSettingsRequest.CampaignHook.WebUrl == STRING
    input.Body.WriteApplicationSettingsRequest.CloudWatchMetricsEnabled == BOOLEAN
    input.Body.WriteApplicationSettingsRequest.EventTaggingEnabled == BOOLEAN
    input.Body.WriteApplicationSettingsRequest.Limits.Daily == INTEGER
    input.Body.WriteApplicationSettingsRequest.Limits.MaximumDuration == INTEGER
    input.Body.WriteApplicationSettingsRequest.Limits.MessagesPerSecond == INTEGER
    input.Body.WriteApplicationSettingsRequest.Limits.Total == INTEGER
    input.Body.WriteApplicationSettingsRequest.Limits.Session == INTEGER
    input.Body.WriteApplicationSettingsRequest.QuietTime.End == STRING
    input.Body.WriteApplicationSettingsRequest.QuietTime.Start == STRING
    input.Body.WriteApplicationSettingsRequest.JourneyLimits.DailyCap == INTEGER
    input.Body.WriteApplicationSettingsRequest.JourneyLimits.TimeframeCap.Cap == INTEGER
    input.Body.WriteApplicationSettingsRequest.JourneyLimits.TimeframeCap.Days == INTEGER
    input.Body.WriteApplicationSettingsRequest.JourneyLimits.TotalCap == INTEGER
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateBaiduChannel

valid {
    input.Body.BaiduChannelRequest.ApiKey == STRING
    input.Body.BaiduChannelRequest.Enabled == BOOLEAN
    input.Body.BaiduChannelRequest.SecretKey == STRING
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateCampaign

enum_Action := [ "OPEN_APP", "DEEP_LINK", "URL" ]
enum_Alignment := [ "LEFT", "CENTER", "RIGHT" ]
enum_AttributeType := [ "INCLUSIVE", "EXCLUSIVE", "CONTAINS", "BEFORE", "AFTER", "ON", "BETWEEN" ]
enum_ButtonAction := [ "LINK", "DEEP_LINK", "CLOSE" ]
enum_DimensionType := [ "INCLUSIVE", "EXCLUSIVE" ]
enum_FilterType := [ "SYSTEM", "ENDPOINT" ]
enum_Frequency := [ "ONCE", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "EVENT", "IN_APP_EVENT" ]
enum_Layout := [ "BOTTOM_BANNER", "TOP_BANNER", "OVERLAYS", "MOBILE_FEED", "MIDDLE_BANNER", "CAROUSEL" ]
enum_MessageType := [ "TRANSACTIONAL", "PROMOTIONAL" ]
enum_Mode := [ "DELIVERY", "FILTER" ]
enum___EndpointTypesElement := [ "PUSH", "GCM", "APNS", "APNS_SANDBOX", "APNS_VOIP", "APNS_VOIP_SANDBOX", "ADM", "SMS", "VOICE", "EMAIL", "BAIDU", "CUSTOM", "IN_APP" ]

valid {
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].CustomDeliveryConfiguration.DeliveryUri == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].CustomDeliveryConfiguration.EndpointTypes[_] == enum___EndpointTypesElement[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.Action == enum_Action[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.Body == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.ImageIconUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.ImageSmallIconUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.ImageUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.JsonBody == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.MediaUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.RawContent == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.SilentPush == BOOLEAN
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.TimeToLive == INTEGER
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.Title == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.ADMMessage.Url == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.Action == enum_Action[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.Body == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.ImageIconUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.ImageSmallIconUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.ImageUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.JsonBody == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.MediaUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.RawContent == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.SilentPush == BOOLEAN
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.TimeToLive == INTEGER
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.Title == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.APNSMessage.Url == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.Action == enum_Action[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.Body == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.ImageIconUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.ImageSmallIconUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.ImageUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.JsonBody == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.MediaUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.RawContent == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.SilentPush == BOOLEAN
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.TimeToLive == INTEGER
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.Title == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.BaiduMessage.Url == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.CustomMessage.Data == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.Action == enum_Action[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.Body == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.ImageIconUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.ImageSmallIconUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.ImageUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.JsonBody == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.MediaUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.RawContent == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.SilentPush == BOOLEAN
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.TimeToLive == INTEGER
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.Title == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.DefaultMessage.Url == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.EmailMessage.Body == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.EmailMessage.FromAddress == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.EmailMessage.Headers[_].Name == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.EmailMessage.Headers[_].Value == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.EmailMessage.HtmlBody == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.EmailMessage.Title == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.Action == enum_Action[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.Body == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.ImageIconUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.ImageSmallIconUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.ImageUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.JsonBody == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.MediaUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.RawContent == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.SilentPush == BOOLEAN
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.TimeToLive == INTEGER
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.Title == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.GCMMessage.Url == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.SMSMessage.Body == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.SMSMessage.MessageType == enum_MessageType[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.SMSMessage.OriginationNumber == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.SMSMessage.SenderId == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.SMSMessage.EntityId == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.SMSMessage.TemplateId == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Body == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].BackgroundColor == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].BodyConfig.Alignment == enum_Alignment[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].BodyConfig.Body == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].BodyConfig.TextColor == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].HeaderConfig.Alignment == enum_Alignment[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].HeaderConfig.Header == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].HeaderConfig.TextColor == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].ImageUrl == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.Android.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.Android.Link == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.BackgroundColor == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.BorderRadius == INTEGER
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.Link == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.Text == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.TextColor == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.IOS.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.IOS.Link == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.Web.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.Web.Link == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.Android.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.Android.Link == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.BackgroundColor == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.BorderRadius == INTEGER
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.Link == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.Text == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.TextColor == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.IOS.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.IOS.Link == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.Web.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.Web.Link == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.CustomConfig.STRING == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].MessageConfiguration.InAppMessage.Layout == enum_Layout[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.EndTime == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.EventFilter.Dimensions.Attributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.EventFilter.Dimensions.Attributes.STRING.Values[_] == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.EventFilter.Dimensions.EventType.DimensionType == enum_DimensionType[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.EventFilter.Dimensions.EventType.Values[_] == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.EventFilter.Dimensions.Metrics.STRING.ComparisonOperator == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.EventFilter.Dimensions.Metrics.STRING.Value == DOUBLE
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.EventFilter.FilterType == enum_FilterType[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.Frequency == enum_Frequency[_]
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.IsLocalTime == BOOLEAN
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.QuietTime.End == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.QuietTime.Start == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.StartTime == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].Schedule.Timezone == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].SizePercent == INTEGER
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TemplateConfiguration.EmailTemplate.Name == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TemplateConfiguration.EmailTemplate.Version == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TemplateConfiguration.PushTemplate.Name == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TemplateConfiguration.PushTemplate.Version == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TemplateConfiguration.SMSTemplate.Name == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TemplateConfiguration.SMSTemplate.Version == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TemplateConfiguration.VoiceTemplate.Name == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TemplateConfiguration.VoiceTemplate.Version == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TemplateConfiguration.InAppTemplate.Name == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TemplateConfiguration.InAppTemplate.Version == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TreatmentDescription == STRING
    input.Body.WriteCampaignRequest.AdditionalTreatments[_].TreatmentName == STRING
    input.Body.WriteCampaignRequest.CustomDeliveryConfiguration.DeliveryUri == STRING
    input.Body.WriteCampaignRequest.CustomDeliveryConfiguration.EndpointTypes[_] == enum___EndpointTypesElement[_]
    input.Body.WriteCampaignRequest.Description == STRING
    input.Body.WriteCampaignRequest.HoldoutPercent == INTEGER
    input.Body.WriteCampaignRequest.Hook.LambdaFunctionName == STRING
    input.Body.WriteCampaignRequest.Hook.Mode == enum_Mode[_]
    input.Body.WriteCampaignRequest.Hook.WebUrl == STRING
    input.Body.WriteCampaignRequest.IsPaused == BOOLEAN
    input.Body.WriteCampaignRequest.Limits.Daily == INTEGER
    input.Body.WriteCampaignRequest.Limits.MaximumDuration == INTEGER
    input.Body.WriteCampaignRequest.Limits.MessagesPerSecond == INTEGER
    input.Body.WriteCampaignRequest.Limits.Total == INTEGER
    input.Body.WriteCampaignRequest.Limits.Session == INTEGER
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.Action == enum_Action[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.Body == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.ImageIconUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.ImageSmallIconUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.ImageUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.JsonBody == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.MediaUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.RawContent == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.SilentPush == BOOLEAN
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.TimeToLive == INTEGER
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.Title == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.ADMMessage.Url == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.Action == enum_Action[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.Body == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.ImageIconUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.ImageSmallIconUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.ImageUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.JsonBody == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.MediaUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.RawContent == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.SilentPush == BOOLEAN
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.TimeToLive == INTEGER
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.Title == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.APNSMessage.Url == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.Action == enum_Action[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.Body == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.ImageIconUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.ImageSmallIconUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.ImageUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.JsonBody == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.MediaUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.RawContent == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.SilentPush == BOOLEAN
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.TimeToLive == INTEGER
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.Title == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.BaiduMessage.Url == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.CustomMessage.Data == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.Action == enum_Action[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.Body == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.ImageIconUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.ImageSmallIconUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.ImageUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.JsonBody == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.MediaUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.RawContent == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.SilentPush == BOOLEAN
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.TimeToLive == INTEGER
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.Title == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.DefaultMessage.Url == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.EmailMessage.Body == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.EmailMessage.FromAddress == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.EmailMessage.Headers[_].Name == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.EmailMessage.Headers[_].Value == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.EmailMessage.HtmlBody == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.EmailMessage.Title == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.Action == enum_Action[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.Body == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.ImageIconUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.ImageSmallIconUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.ImageUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.JsonBody == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.MediaUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.RawContent == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.SilentPush == BOOLEAN
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.TimeToLive == INTEGER
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.Title == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.GCMMessage.Url == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.SMSMessage.Body == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.SMSMessage.MessageType == enum_MessageType[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.SMSMessage.OriginationNumber == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.SMSMessage.SenderId == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.SMSMessage.EntityId == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.SMSMessage.TemplateId == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Body == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].BackgroundColor == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].BodyConfig.Alignment == enum_Alignment[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].BodyConfig.Body == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].BodyConfig.TextColor == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].HeaderConfig.Alignment == enum_Alignment[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].HeaderConfig.Header == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].HeaderConfig.TextColor == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].ImageUrl == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.Android.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.Android.Link == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.BackgroundColor == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.BorderRadius == INTEGER
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.Link == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.Text == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.DefaultConfig.TextColor == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.IOS.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.IOS.Link == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.Web.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].PrimaryBtn.Web.Link == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.Android.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.Android.Link == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.BackgroundColor == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.BorderRadius == INTEGER
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.Link == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.Text == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.DefaultConfig.TextColor == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.IOS.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.IOS.Link == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.Web.ButtonAction == enum_ButtonAction[_]
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Content[_].SecondaryBtn.Web.Link == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.CustomConfig.STRING == STRING
    input.Body.WriteCampaignRequest.MessageConfiguration.InAppMessage.Layout == enum_Layout[_]
    input.Body.WriteCampaignRequest.Name == STRING
    input.Body.WriteCampaignRequest.Schedule.EndTime == STRING
    input.Body.WriteCampaignRequest.Schedule.EventFilter.Dimensions.Attributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteCampaignRequest.Schedule.EventFilter.Dimensions.Attributes.STRING.Values[_] == STRING
    input.Body.WriteCampaignRequest.Schedule.EventFilter.Dimensions.EventType.DimensionType == enum_DimensionType[_]
    input.Body.WriteCampaignRequest.Schedule.EventFilter.Dimensions.EventType.Values[_] == STRING
    input.Body.WriteCampaignRequest.Schedule.EventFilter.Dimensions.Metrics.STRING.ComparisonOperator == STRING
    input.Body.WriteCampaignRequest.Schedule.EventFilter.Dimensions.Metrics.STRING.Value == DOUBLE
    input.Body.WriteCampaignRequest.Schedule.EventFilter.FilterType == enum_FilterType[_]
    input.Body.WriteCampaignRequest.Schedule.Frequency == enum_Frequency[_]
    input.Body.WriteCampaignRequest.Schedule.IsLocalTime == BOOLEAN
    input.Body.WriteCampaignRequest.Schedule.QuietTime.End == STRING
    input.Body.WriteCampaignRequest.Schedule.QuietTime.Start == STRING
    input.Body.WriteCampaignRequest.Schedule.StartTime == STRING
    input.Body.WriteCampaignRequest.Schedule.Timezone == STRING
    input.Body.WriteCampaignRequest.SegmentId == STRING
    input.Body.WriteCampaignRequest.SegmentVersion == INTEGER
    input.Body.WriteCampaignRequest.tags.STRING == STRING
    input.Body.WriteCampaignRequest.TemplateConfiguration.EmailTemplate.Name == STRING
    input.Body.WriteCampaignRequest.TemplateConfiguration.EmailTemplate.Version == STRING
    input.Body.WriteCampaignRequest.TemplateConfiguration.PushTemplate.Name == STRING
    input.Body.WriteCampaignRequest.TemplateConfiguration.PushTemplate.Version == STRING
    input.Body.WriteCampaignRequest.TemplateConfiguration.SMSTemplate.Name == STRING
    input.Body.WriteCampaignRequest.TemplateConfiguration.SMSTemplate.Version == STRING
    input.Body.WriteCampaignRequest.TemplateConfiguration.VoiceTemplate.Name == STRING
    input.Body.WriteCampaignRequest.TemplateConfiguration.VoiceTemplate.Version == STRING
    input.Body.WriteCampaignRequest.TemplateConfiguration.InAppTemplate.Name == STRING
    input.Body.WriteCampaignRequest.TemplateConfiguration.InAppTemplate.Version == STRING
    input.Body.WriteCampaignRequest.TreatmentDescription == STRING
    input.Body.WriteCampaignRequest.TreatmentName == STRING
    input.Body.WriteCampaignRequest.Priority == INTEGER
    input.ReqMap.application-id == STRING
    input.ReqMap.campaign-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateEmailChannel

valid {
    input.Body.EmailChannelRequest.ConfigurationSet == STRING
    input.Body.EmailChannelRequest.Enabled == BOOLEAN
    input.Body.EmailChannelRequest.FromAddress == STRING
    input.Body.EmailChannelRequest.Identity == STRING
    input.Body.EmailChannelRequest.RoleArn == STRING
    input.Body.EmailChannelRequest.OrchestrationSendingRoleArn == STRING
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateEmailTemplate

valid {
    input.Body.EmailTemplateRequest.DefaultSubstitutions == STRING
    input.Body.EmailTemplateRequest.HtmlPart == STRING
    input.Body.EmailTemplateRequest.RecommenderId == STRING
    input.Body.EmailTemplateRequest.Subject == STRING
    input.Body.EmailTemplateRequest.Headers[_].Name == STRING
    input.Body.EmailTemplateRequest.Headers[_].Value == STRING
    input.Body.EmailTemplateRequest.tags.STRING == STRING
    input.Body.EmailTemplateRequest.TemplateDescription == STRING
    input.Body.EmailTemplateRequest.TextPart == STRING
    input.ReqMap.template-name == STRING
    input.Qs.create-new-version == BOOLEAN
    input.Qs.version == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateEndpoint

enum_ChannelType := [ "PUSH", "GCM", "APNS", "APNS_SANDBOX", "APNS_VOIP", "APNS_VOIP_SANDBOX", "ADM", "SMS", "VOICE", "EMAIL", "BAIDU", "CUSTOM", "IN_APP" ]

valid {
    input.Body.EndpointRequest.Address == STRING
    input.Body.EndpointRequest.Attributes.STRING[_] == STRING
    input.Body.EndpointRequest.ChannelType == enum_ChannelType[_]
    input.Body.EndpointRequest.Demographic.AppVersion == STRING
    input.Body.EndpointRequest.Demographic.Locale == STRING
    input.Body.EndpointRequest.Demographic.Make == STRING
    input.Body.EndpointRequest.Demographic.Model == STRING
    input.Body.EndpointRequest.Demographic.ModelVersion == STRING
    input.Body.EndpointRequest.Demographic.Platform == STRING
    input.Body.EndpointRequest.Demographic.PlatformVersion == STRING
    input.Body.EndpointRequest.Demographic.Timezone == STRING
    input.Body.EndpointRequest.EffectiveDate == STRING
    input.Body.EndpointRequest.EndpointStatus == STRING
    input.Body.EndpointRequest.Location.City == STRING
    input.Body.EndpointRequest.Location.Country == STRING
    input.Body.EndpointRequest.Location.Latitude == DOUBLE
    input.Body.EndpointRequest.Location.Longitude == DOUBLE
    input.Body.EndpointRequest.Location.PostalCode == STRING
    input.Body.EndpointRequest.Location.Region == STRING
    input.Body.EndpointRequest.Metrics.STRING == DOUBLE
    input.Body.EndpointRequest.OptOut == STRING
    input.Body.EndpointRequest.RequestId == STRING
    input.Body.EndpointRequest.User.UserAttributes.STRING[_] == STRING
    input.Body.EndpointRequest.User.UserId == STRING
    input.ReqMap.application-id == STRING
    input.ReqMap.endpoint-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateEndpointsBatch

enum_ChannelType := [ "PUSH", "GCM", "APNS", "APNS_SANDBOX", "APNS_VOIP", "APNS_VOIP_SANDBOX", "ADM", "SMS", "VOICE", "EMAIL", "BAIDU", "CUSTOM", "IN_APP" ]

valid {
    input.Body.EndpointBatchRequest.Item[_].Address == STRING
    input.Body.EndpointBatchRequest.Item[_].Attributes.STRING[_] == STRING
    input.Body.EndpointBatchRequest.Item[_].ChannelType == enum_ChannelType[_]
    input.Body.EndpointBatchRequest.Item[_].Demographic.AppVersion == STRING
    input.Body.EndpointBatchRequest.Item[_].Demographic.Locale == STRING
    input.Body.EndpointBatchRequest.Item[_].Demographic.Make == STRING
    input.Body.EndpointBatchRequest.Item[_].Demographic.Model == STRING
    input.Body.EndpointBatchRequest.Item[_].Demographic.ModelVersion == STRING
    input.Body.EndpointBatchRequest.Item[_].Demographic.Platform == STRING
    input.Body.EndpointBatchRequest.Item[_].Demographic.PlatformVersion == STRING
    input.Body.EndpointBatchRequest.Item[_].Demographic.Timezone == STRING
    input.Body.EndpointBatchRequest.Item[_].EffectiveDate == STRING
    input.Body.EndpointBatchRequest.Item[_].EndpointStatus == STRING
    input.Body.EndpointBatchRequest.Item[_].Id == STRING
    input.Body.EndpointBatchRequest.Item[_].Location.City == STRING
    input.Body.EndpointBatchRequest.Item[_].Location.Country == STRING
    input.Body.EndpointBatchRequest.Item[_].Location.Latitude == DOUBLE
    input.Body.EndpointBatchRequest.Item[_].Location.Longitude == DOUBLE
    input.Body.EndpointBatchRequest.Item[_].Location.PostalCode == STRING
    input.Body.EndpointBatchRequest.Item[_].Location.Region == STRING
    input.Body.EndpointBatchRequest.Item[_].Metrics.STRING == DOUBLE
    input.Body.EndpointBatchRequest.Item[_].OptOut == STRING
    input.Body.EndpointBatchRequest.Item[_].RequestId == STRING
    input.Body.EndpointBatchRequest.Item[_].User.UserAttributes.STRING[_] == STRING
    input.Body.EndpointBatchRequest.Item[_].User.UserId == STRING
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateGcmChannel

valid {
    input.Body.GCMChannelRequest.ApiKey == STRING
    input.Body.GCMChannelRequest.DefaultAuthenticationMethod == STRING
    input.Body.GCMChannelRequest.Enabled == BOOLEAN
    input.Body.GCMChannelRequest.ServiceJson == STRING
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateInAppTemplate

enum_Alignment := [ "LEFT", "CENTER", "RIGHT" ]
enum_ButtonAction := [ "LINK", "DEEP_LINK", "CLOSE" ]
enum_Layout := [ "BOTTOM_BANNER", "TOP_BANNER", "OVERLAYS", "MOBILE_FEED", "MIDDLE_BANNER", "CAROUSEL" ]

valid {
    input.Body.InAppTemplateRequest.Content[_].BackgroundColor == STRING
    input.Body.InAppTemplateRequest.Content[_].BodyConfig.Alignment == enum_Alignment[_]
    input.Body.InAppTemplateRequest.Content[_].BodyConfig.Body == STRING
    input.Body.InAppTemplateRequest.Content[_].BodyConfig.TextColor == STRING
    input.Body.InAppTemplateRequest.Content[_].HeaderConfig.Alignment == enum_Alignment[_]
    input.Body.InAppTemplateRequest.Content[_].HeaderConfig.Header == STRING
    input.Body.InAppTemplateRequest.Content[_].HeaderConfig.TextColor == STRING
    input.Body.InAppTemplateRequest.Content[_].ImageUrl == STRING
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.Android.ButtonAction == enum_ButtonAction[_]
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.Android.Link == STRING
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.DefaultConfig.BackgroundColor == STRING
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.DefaultConfig.BorderRadius == INTEGER
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.DefaultConfig.ButtonAction == enum_ButtonAction[_]
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.DefaultConfig.Link == STRING
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.DefaultConfig.Text == STRING
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.DefaultConfig.TextColor == STRING
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.IOS.ButtonAction == enum_ButtonAction[_]
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.IOS.Link == STRING
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.Web.ButtonAction == enum_ButtonAction[_]
    input.Body.InAppTemplateRequest.Content[_].PrimaryBtn.Web.Link == STRING
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.Android.ButtonAction == enum_ButtonAction[_]
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.Android.Link == STRING
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.DefaultConfig.BackgroundColor == STRING
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.DefaultConfig.BorderRadius == INTEGER
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.DefaultConfig.ButtonAction == enum_ButtonAction[_]
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.DefaultConfig.Link == STRING
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.DefaultConfig.Text == STRING
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.DefaultConfig.TextColor == STRING
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.IOS.ButtonAction == enum_ButtonAction[_]
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.IOS.Link == STRING
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.Web.ButtonAction == enum_ButtonAction[_]
    input.Body.InAppTemplateRequest.Content[_].SecondaryBtn.Web.Link == STRING
    input.Body.InAppTemplateRequest.CustomConfig.STRING == STRING
    input.Body.InAppTemplateRequest.Layout == enum_Layout[_]
    input.Body.InAppTemplateRequest.tags.STRING == STRING
    input.Body.InAppTemplateRequest.TemplateDescription == STRING
    input.ReqMap.template-name == STRING
    input.Qs.create-new-version == BOOLEAN
    input.Qs.version == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateJourney

enum_AttributeType := [ "INCLUSIVE", "EXCLUSIVE", "CONTAINS", "BEFORE", "AFTER", "ON", "BETWEEN" ]
enum_DimensionType := [ "INCLUSIVE", "EXCLUSIVE" ]
enum_Duration := [ "HR_24", "DAY_7", "DAY_14", "DAY_30" ]
enum_FilterType := [ "SYSTEM", "ENDPOINT" ]
enum_MessageType := [ "TRANSACTIONAL", "PROMOTIONAL" ]
enum_Operator := [ "ALL", "ANY" ]
enum_RecencyType := [ "ACTIVE", "INACTIVE" ]
enum_State := [ "DRAFT", "ACTIVE", "COMPLETED", "CANCELLED", "CLOSED", "PAUSED" ]
enum___EndpointTypesElement := [ "PUSH", "GCM", "APNS", "APNS_SANDBOX", "APNS_VOIP", "APNS_VOIP_SANDBOX", "ADM", "SMS", "VOICE", "EMAIL", "BAIDU", "CUSTOM", "IN_APP" ]
enum___TimezoneEstimationMethodsElement := [ "PHONE_NUMBER", "POSTAL_CODE" ]

valid {
    input.Body.WriteJourneyRequest.Activities.STRING.CUSTOM.DeliveryUri == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.CUSTOM.EndpointTypes[_] == enum___EndpointTypesElement[_]
    input.Body.WriteJourneyRequest.Activities.STRING.CUSTOM.MessageConfig.Data == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.CUSTOM.NextActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.CUSTOM.TemplateName == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.CUSTOM.TemplateVersion == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].EventCondition.Dimensions.Attributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].EventCondition.Dimensions.Attributes.STRING.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].EventCondition.Dimensions.EventType.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].EventCondition.Dimensions.EventType.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].EventCondition.Dimensions.Metrics.STRING.ComparisonOperator == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].EventCondition.Dimensions.Metrics.STRING.Value == DOUBLE
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].EventCondition.MessageActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].SegmentCondition.SegmentId == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Attributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Attributes.STRING.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Behavior.Recency.Duration == enum_Duration[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Behavior.Recency.RecencyType == enum_RecencyType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.AppVersion.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.AppVersion.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.Channel.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.Channel.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.DeviceType.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.DeviceType.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.Make.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.Make.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.Model.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.Model.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.Platform.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Demographic.Platform.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Location.Country.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Location.Country.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Location.GPSPoint.Coordinates.Latitude == DOUBLE
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Location.GPSPoint.Coordinates.Longitude == DOUBLE
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Location.GPSPoint.RangeInKilometers == DOUBLE
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Metrics.STRING.ComparisonOperator == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.Metrics.STRING.Value == DOUBLE
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.UserAttributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Conditions[_].segmentDimensions.UserAttributes.STRING.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.Condition.Operator == enum_Operator[_]
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.EvaluationWaitTime.WaitFor == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.EvaluationWaitTime.WaitUntil == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.FalseActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ConditionalSplit.TrueActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.Description == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.EMAIL.MessageConfig.FromAddress == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.EMAIL.NextActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.EMAIL.TemplateName == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.EMAIL.TemplateVersion == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.Holdout.NextActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.Holdout.Percentage == INTEGER
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.EventCondition.Dimensions.Attributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.EventCondition.Dimensions.Attributes.STRING.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.EventCondition.Dimensions.EventType.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.EventCondition.Dimensions.EventType.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.EventCondition.Dimensions.Metrics.STRING.ComparisonOperator == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.EventCondition.Dimensions.Metrics.STRING.Value == DOUBLE
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.EventCondition.MessageActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.SegmentCondition.SegmentId == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Attributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Attributes.STRING.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Behavior.Recency.Duration == enum_Duration[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Behavior.Recency.RecencyType == enum_RecencyType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.AppVersion.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.AppVersion.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.Channel.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.Channel.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.DeviceType.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.DeviceType.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.Make.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.Make.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.Model.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.Model.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.Platform.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Demographic.Platform.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Location.Country.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Location.Country.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Location.GPSPoint.Coordinates.Latitude == DOUBLE
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Location.GPSPoint.Coordinates.Longitude == DOUBLE
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Location.GPSPoint.RangeInKilometers == DOUBLE
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Metrics.STRING.ComparisonOperator == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.Metrics.STRING.Value == DOUBLE
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.UserAttributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].Condition.segmentDimensions.UserAttributes.STRING.Values[_] == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.Branches[_].NextActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.DefaultActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.EvaluationWaitTime.WaitFor == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.MultiCondition.EvaluationWaitTime.WaitUntil == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.PUSH.MessageConfig.TimeToLive == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.PUSH.NextActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.PUSH.TemplateName == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.PUSH.TemplateVersion == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.RandomSplit.Branches[_].NextActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.RandomSplit.Branches[_].Percentage == INTEGER
    input.Body.WriteJourneyRequest.Activities.STRING.SMS.MessageConfig.MessageType == enum_MessageType[_]
    input.Body.WriteJourneyRequest.Activities.STRING.SMS.MessageConfig.OriginationNumber == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.SMS.MessageConfig.SenderId == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.SMS.MessageConfig.EntityId == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.SMS.MessageConfig.TemplateId == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.SMS.NextActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.SMS.TemplateName == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.SMS.TemplateVersion == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.Wait.NextActivity == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.Wait.WaitTime.WaitFor == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.Wait.WaitTime.WaitUntil == STRING
    input.Body.WriteJourneyRequest.Activities.STRING.ContactCenter.NextActivity == STRING
    input.Body.WriteJourneyRequest.CreationDate == STRING
    input.Body.WriteJourneyRequest.LastModifiedDate == STRING
    input.Body.WriteJourneyRequest.Limits.DailyCap == INTEGER
    input.Body.WriteJourneyRequest.Limits.EndpointReentryCap == INTEGER
    input.Body.WriteJourneyRequest.Limits.MessagesPerSecond == INTEGER
    input.Body.WriteJourneyRequest.Limits.EndpointReentryInterval == STRING
    input.Body.WriteJourneyRequest.Limits.TimeframeCap.Cap == INTEGER
    input.Body.WriteJourneyRequest.Limits.TimeframeCap.Days == INTEGER
    input.Body.WriteJourneyRequest.Limits.TotalCap == INTEGER
    input.Body.WriteJourneyRequest.LocalTime == BOOLEAN
    input.Body.WriteJourneyRequest.Name == STRING
    input.Body.WriteJourneyRequest.QuietTime.End == STRING
    input.Body.WriteJourneyRequest.QuietTime.Start == STRING
    input.Body.WriteJourneyRequest.RefreshFrequency == STRING
    input.Body.WriteJourneyRequest.Schedule.EndTime == TIMESTAMP
    input.Body.WriteJourneyRequest.Schedule.StartTime == TIMESTAMP
    input.Body.WriteJourneyRequest.Schedule.Timezone == STRING
    input.Body.WriteJourneyRequest.StartActivity == STRING
    input.Body.WriteJourneyRequest.StartCondition.Description == STRING
    input.Body.WriteJourneyRequest.StartCondition.EventStartCondition.EventFilter.Dimensions.Attributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteJourneyRequest.StartCondition.EventStartCondition.EventFilter.Dimensions.Attributes.STRING.Values[_] == STRING
    input.Body.WriteJourneyRequest.StartCondition.EventStartCondition.EventFilter.Dimensions.EventType.DimensionType == enum_DimensionType[_]
    input.Body.WriteJourneyRequest.StartCondition.EventStartCondition.EventFilter.Dimensions.EventType.Values[_] == STRING
    input.Body.WriteJourneyRequest.StartCondition.EventStartCondition.EventFilter.Dimensions.Metrics.STRING.ComparisonOperator == STRING
    input.Body.WriteJourneyRequest.StartCondition.EventStartCondition.EventFilter.Dimensions.Metrics.STRING.Value == DOUBLE
    input.Body.WriteJourneyRequest.StartCondition.EventStartCondition.EventFilter.FilterType == enum_FilterType[_]
    input.Body.WriteJourneyRequest.StartCondition.EventStartCondition.SegmentId == STRING
    input.Body.WriteJourneyRequest.StartCondition.SegmentStartCondition.SegmentId == STRING
    input.Body.WriteJourneyRequest.State == enum_State[_]
    input.Body.WriteJourneyRequest.WaitForQuietTime == BOOLEAN
    input.Body.WriteJourneyRequest.RefreshOnSegmentUpdate == BOOLEAN
    input.Body.WriteJourneyRequest.JourneyChannelSettings.ConnectCampaignArn == STRING
    input.Body.WriteJourneyRequest.JourneyChannelSettings.ConnectCampaignExecutionRoleArn == STRING
    input.Body.WriteJourneyRequest.SendingSchedule == BOOLEAN
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.MONDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.MONDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.TUESDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.TUESDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.WEDNESDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.WEDNESDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.THURSDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.THURSDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.FRIDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.FRIDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.SATURDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.SATURDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.SUNDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.EMAIL.SUNDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.MONDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.MONDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.TUESDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.TUESDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.WEDNESDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.WEDNESDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.THURSDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.THURSDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.FRIDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.FRIDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.SATURDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.SATURDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.SUNDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.SMS.SUNDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.MONDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.MONDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.TUESDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.TUESDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.WEDNESDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.WEDNESDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.THURSDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.THURSDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.FRIDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.FRIDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.SATURDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.SATURDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.SUNDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.PUSH.SUNDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.MONDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.MONDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.TUESDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.TUESDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.WEDNESDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.WEDNESDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.THURSDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.THURSDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.FRIDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.FRIDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.SATURDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.SATURDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.SUNDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.VOICE.SUNDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.MONDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.MONDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.TUESDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.TUESDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.WEDNESDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.WEDNESDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.THURSDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.THURSDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.FRIDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.FRIDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.SATURDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.SATURDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.SUNDAY[_].StartTime == STRING
    input.Body.WriteJourneyRequest.OpenHours.CUSTOM.SUNDAY[_].EndTime == STRING
    input.Body.WriteJourneyRequest.ClosedDays.EMAIL[_].Name == STRING
    input.Body.WriteJourneyRequest.ClosedDays.EMAIL[_].StartDateTime == STRING
    input.Body.WriteJourneyRequest.ClosedDays.EMAIL[_].EndDateTime == STRING
    input.Body.WriteJourneyRequest.ClosedDays.SMS[_].Name == STRING
    input.Body.WriteJourneyRequest.ClosedDays.SMS[_].StartDateTime == STRING
    input.Body.WriteJourneyRequest.ClosedDays.SMS[_].EndDateTime == STRING
    input.Body.WriteJourneyRequest.ClosedDays.PUSH[_].Name == STRING
    input.Body.WriteJourneyRequest.ClosedDays.PUSH[_].StartDateTime == STRING
    input.Body.WriteJourneyRequest.ClosedDays.PUSH[_].EndDateTime == STRING
    input.Body.WriteJourneyRequest.ClosedDays.VOICE[_].Name == STRING
    input.Body.WriteJourneyRequest.ClosedDays.VOICE[_].StartDateTime == STRING
    input.Body.WriteJourneyRequest.ClosedDays.VOICE[_].EndDateTime == STRING
    input.Body.WriteJourneyRequest.ClosedDays.CUSTOM[_].Name == STRING
    input.Body.WriteJourneyRequest.ClosedDays.CUSTOM[_].StartDateTime == STRING
    input.Body.WriteJourneyRequest.ClosedDays.CUSTOM[_].EndDateTime == STRING
    input.Body.WriteJourneyRequest.TimezoneEstimationMethods[_] == enum___TimezoneEstimationMethodsElement[_]
    input.ReqMap.application-id == STRING
    input.ReqMap.journey-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateJourneyState

enum_State := [ "DRAFT", "ACTIVE", "COMPLETED", "CANCELLED", "CLOSED", "PAUSED" ]

valid {
    input.Body.JourneyStateRequest.State == enum_State[_]
    input.ReqMap.application-id == STRING
    input.ReqMap.journey-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdatePushTemplate

enum_Action := [ "OPEN_APP", "DEEP_LINK", "URL" ]

valid {
    input.Body.PushNotificationTemplateRequest.ADM.Action == enum_Action[_]
    input.Body.PushNotificationTemplateRequest.ADM.Body == STRING
    input.Body.PushNotificationTemplateRequest.ADM.ImageIconUrl == STRING
    input.Body.PushNotificationTemplateRequest.ADM.ImageUrl == STRING
    input.Body.PushNotificationTemplateRequest.ADM.RawContent == STRING
    input.Body.PushNotificationTemplateRequest.ADM.SmallImageIconUrl == STRING
    input.Body.PushNotificationTemplateRequest.ADM.Sound == STRING
    input.Body.PushNotificationTemplateRequest.ADM.Title == STRING
    input.Body.PushNotificationTemplateRequest.ADM.Url == STRING
    input.Body.PushNotificationTemplateRequest.APNS.Action == enum_Action[_]
    input.Body.PushNotificationTemplateRequest.APNS.Body == STRING
    input.Body.PushNotificationTemplateRequest.APNS.MediaUrl == STRING
    input.Body.PushNotificationTemplateRequest.APNS.RawContent == STRING
    input.Body.PushNotificationTemplateRequest.APNS.Sound == STRING
    input.Body.PushNotificationTemplateRequest.APNS.Title == STRING
    input.Body.PushNotificationTemplateRequest.APNS.Url == STRING
    input.Body.PushNotificationTemplateRequest.Baidu.Action == enum_Action[_]
    input.Body.PushNotificationTemplateRequest.Baidu.Body == STRING
    input.Body.PushNotificationTemplateRequest.Baidu.ImageIconUrl == STRING
    input.Body.PushNotificationTemplateRequest.Baidu.ImageUrl == STRING
    input.Body.PushNotificationTemplateRequest.Baidu.RawContent == STRING
    input.Body.PushNotificationTemplateRequest.Baidu.SmallImageIconUrl == STRING
    input.Body.PushNotificationTemplateRequest.Baidu.Sound == STRING
    input.Body.PushNotificationTemplateRequest.Baidu.Title == STRING
    input.Body.PushNotificationTemplateRequest.Baidu.Url == STRING
    input.Body.PushNotificationTemplateRequest.Default.Action == enum_Action[_]
    input.Body.PushNotificationTemplateRequest.Default.Body == STRING
    input.Body.PushNotificationTemplateRequest.Default.Sound == STRING
    input.Body.PushNotificationTemplateRequest.Default.Title == STRING
    input.Body.PushNotificationTemplateRequest.Default.Url == STRING
    input.Body.PushNotificationTemplateRequest.DefaultSubstitutions == STRING
    input.Body.PushNotificationTemplateRequest.GCM.Action == enum_Action[_]
    input.Body.PushNotificationTemplateRequest.GCM.Body == STRING
    input.Body.PushNotificationTemplateRequest.GCM.ImageIconUrl == STRING
    input.Body.PushNotificationTemplateRequest.GCM.ImageUrl == STRING
    input.Body.PushNotificationTemplateRequest.GCM.RawContent == STRING
    input.Body.PushNotificationTemplateRequest.GCM.SmallImageIconUrl == STRING
    input.Body.PushNotificationTemplateRequest.GCM.Sound == STRING
    input.Body.PushNotificationTemplateRequest.GCM.Title == STRING
    input.Body.PushNotificationTemplateRequest.GCM.Url == STRING
    input.Body.PushNotificationTemplateRequest.RecommenderId == STRING
    input.Body.PushNotificationTemplateRequest.tags.STRING == STRING
    input.Body.PushNotificationTemplateRequest.TemplateDescription == STRING
    input.ReqMap.template-name == STRING
    input.Qs.create-new-version == BOOLEAN
    input.Qs.version == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateRecommenderConfiguration

valid {
    input.Body.UpdateRecommenderConfiguration.Attributes.STRING == STRING
    input.Body.UpdateRecommenderConfiguration.Description == STRING
    input.Body.UpdateRecommenderConfiguration.Name == STRING
    input.Body.UpdateRecommenderConfiguration.RecommendationProviderIdType == STRING
    input.Body.UpdateRecommenderConfiguration.RecommendationProviderRoleArn == STRING
    input.Body.UpdateRecommenderConfiguration.RecommendationProviderUri == STRING
    input.Body.UpdateRecommenderConfiguration.RecommendationTransformerUri == STRING
    input.Body.UpdateRecommenderConfiguration.RecommendationsDisplayName == STRING
    input.Body.UpdateRecommenderConfiguration.RecommendationsPerMessage == INTEGER
    input.ReqMap.recommender-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateSegment

enum_AttributeType := [ "INCLUSIVE", "EXCLUSIVE", "CONTAINS", "BEFORE", "AFTER", "ON", "BETWEEN" ]
enum_DimensionType := [ "INCLUSIVE", "EXCLUSIVE" ]
enum_Duration := [ "HR_24", "DAY_7", "DAY_14", "DAY_30" ]
enum_Include := [ "ALL", "ANY", "NONE" ]
enum_RecencyType := [ "ACTIVE", "INACTIVE" ]
enum_SourceType := [ "ALL", "ANY", "NONE" ]
enum_Type := [ "ALL", "ANY", "NONE" ]

valid {
    input.Body.WriteSegmentRequest.Dimensions.Attributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteSegmentRequest.Dimensions.Attributes.STRING.Values[_] == STRING
    input.Body.WriteSegmentRequest.Dimensions.Behavior.Recency.Duration == enum_Duration[_]
    input.Body.WriteSegmentRequest.Dimensions.Behavior.Recency.RecencyType == enum_RecencyType[_]
    input.Body.WriteSegmentRequest.Dimensions.Demographic.AppVersion.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.Dimensions.Demographic.AppVersion.Values[_] == STRING
    input.Body.WriteSegmentRequest.Dimensions.Demographic.Channel.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.Dimensions.Demographic.Channel.Values[_] == STRING
    input.Body.WriteSegmentRequest.Dimensions.Demographic.DeviceType.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.Dimensions.Demographic.DeviceType.Values[_] == STRING
    input.Body.WriteSegmentRequest.Dimensions.Demographic.Make.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.Dimensions.Demographic.Make.Values[_] == STRING
    input.Body.WriteSegmentRequest.Dimensions.Demographic.Model.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.Dimensions.Demographic.Model.Values[_] == STRING
    input.Body.WriteSegmentRequest.Dimensions.Demographic.Platform.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.Dimensions.Demographic.Platform.Values[_] == STRING
    input.Body.WriteSegmentRequest.Dimensions.Location.Country.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.Dimensions.Location.Country.Values[_] == STRING
    input.Body.WriteSegmentRequest.Dimensions.Location.GPSPoint.Coordinates.Latitude == DOUBLE
    input.Body.WriteSegmentRequest.Dimensions.Location.GPSPoint.Coordinates.Longitude == DOUBLE
    input.Body.WriteSegmentRequest.Dimensions.Location.GPSPoint.RangeInKilometers == DOUBLE
    input.Body.WriteSegmentRequest.Dimensions.Metrics.STRING.ComparisonOperator == STRING
    input.Body.WriteSegmentRequest.Dimensions.Metrics.STRING.Value == DOUBLE
    input.Body.WriteSegmentRequest.Dimensions.UserAttributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteSegmentRequest.Dimensions.UserAttributes.STRING.Values[_] == STRING
    input.Body.WriteSegmentRequest.Name == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Attributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Attributes.STRING.Values[_] == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Behavior.Recency.Duration == enum_Duration[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Behavior.Recency.RecencyType == enum_RecencyType[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.AppVersion.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.AppVersion.Values[_] == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.Channel.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.Channel.Values[_] == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.DeviceType.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.DeviceType.Values[_] == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.Make.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.Make.Values[_] == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.Model.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.Model.Values[_] == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.Platform.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Demographic.Platform.Values[_] == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Location.Country.DimensionType == enum_DimensionType[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Location.Country.Values[_] == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Location.GPSPoint.Coordinates.Latitude == DOUBLE
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Location.GPSPoint.Coordinates.Longitude == DOUBLE
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Location.GPSPoint.RangeInKilometers == DOUBLE
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Metrics.STRING.ComparisonOperator == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].Metrics.STRING.Value == DOUBLE
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].UserAttributes.STRING.AttributeType == enum_AttributeType[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Dimensions[_].UserAttributes.STRING.Values[_] == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].SourceSegments[_].Id == STRING
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].SourceSegments[_].Version == INTEGER
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].SourceType == enum_SourceType[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Groups[_].Type == enum_Type[_]
    input.Body.WriteSegmentRequest.SegmentGroups.Include == enum_Include[_]
    input.Body.WriteSegmentRequest.tags.STRING == STRING
    input.ReqMap.application-id == STRING
    input.ReqMap.segment-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateSmsChannel

valid {
    input.Body.SMSChannelRequest.Enabled == BOOLEAN
    input.Body.SMSChannelRequest.SenderId == STRING
    input.Body.SMSChannelRequest.ShortCode == STRING
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateSmsTemplate

valid {
    input.Body.SMSTemplateRequest.Body == STRING
    input.Body.SMSTemplateRequest.DefaultSubstitutions == STRING
    input.Body.SMSTemplateRequest.RecommenderId == STRING
    input.Body.SMSTemplateRequest.tags.STRING == STRING
    input.Body.SMSTemplateRequest.TemplateDescription == STRING
    input.ReqMap.template-name == STRING
    input.Qs.create-new-version == BOOLEAN
    input.Qs.version == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateTemplateActiveVersion

valid {
    input.Body.TemplateActiveVersionRequest.Version == STRING
    input.ReqMap.template-name == STRING
    input.ReqMap.template-type == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateVoiceChannel

valid {
    input.Body.VoiceChannelRequest.Enabled == BOOLEAN
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateVoiceTemplate

valid {
    input.Body.VoiceTemplateRequest.Body == STRING
    input.Body.VoiceTemplateRequest.DefaultSubstitutions == STRING
    input.Body.VoiceTemplateRequest.LanguageCode == STRING
    input.Body.VoiceTemplateRequest.tags.STRING == STRING
    input.Body.VoiceTemplateRequest.TemplateDescription == STRING
    input.Body.VoiceTemplateRequest.VoiceId == STRING
    input.ReqMap.template-name == STRING
    input.Qs.create-new-version == BOOLEAN
    input.Qs.version == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

VerifyOTPMessage

valid {
    input.Body.VerifyOTPMessageRequestParameters.DestinationIdentity == STRING
    input.Body.VerifyOTPMessageRequestParameters.Otp == STRING
    input.Body.VerifyOTPMessageRequestParameters.ReferenceId == STRING
    input.ReqMap.application-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}