fcm.projects.messages.send

enum_AndroidConfigPriority := [ "NORMAL", "HIGH" ]
enum_AndroidNotificationNotificationPriority := [ "PRIORITY_UNSPECIFIED", "PRIORITY_MIN", "PRIORITY_LOW", "PRIORITY_DEFAULT", "PRIORITY_HIGH", "PRIORITY_MAX" ]
enum_AndroidNotificationProxy := [ "PROXY_UNSPECIFIED", "ALLOW", "DENY", "IF_PRIORITY_LOWERED" ]
enum_AndroidNotificationVisibility := [ "VISIBILITY_UNSPECIFIED", "PRIVATE", "PUBLIC", "SECRET" ]

valid {
    input.Body.message.android.collapseKey == STRING
    input.Body.message.android.data.STRING == STRING
    input.Body.message.android.directBootOk == BOOLEAN
    input.Body.message.android.fcmOptions.analyticsLabel == STRING
    input.Body.message.android.notification.body == STRING
    input.Body.message.android.notification.bodyLocArgs[_] == STRING
    input.Body.message.android.notification.bodyLocKey == STRING
    input.Body.message.android.notification.bypassProxyNotification == BOOLEAN
    input.Body.message.android.notification.channelId == STRING
    input.Body.message.android.notification.clickAction == STRING
    input.Body.message.android.notification.color == STRING
    input.Body.message.android.notification.defaultLightSettings == BOOLEAN
    input.Body.message.android.notification.defaultSound == BOOLEAN
    input.Body.message.android.notification.defaultVibrateTimings == BOOLEAN
    input.Body.message.android.notification.eventTime == STRING
    input.Body.message.android.notification.icon == STRING
    input.Body.message.android.notification.image == STRING
    input.Body.message.android.notification.lightSettings.color.alpha == NUMBER
    input.Body.message.android.notification.lightSettings.color.blue == NUMBER
    input.Body.message.android.notification.lightSettings.color.green == NUMBER
    input.Body.message.android.notification.lightSettings.color.red == NUMBER
    input.Body.message.android.notification.lightSettings.lightOffDuration == STRING
    input.Body.message.android.notification.lightSettings.lightOnDuration == STRING
    input.Body.message.android.notification.localOnly == BOOLEAN
    input.Body.message.android.notification.notificationCount == INTEGER
    input.Body.message.android.notification.notificationPriority == enum_AndroidNotificationNotificationPriority[_]
    input.Body.message.android.notification.proxy == enum_AndroidNotificationProxy[_]
    input.Body.message.android.notification.sound == STRING
    input.Body.message.android.notification.sticky == BOOLEAN
    input.Body.message.android.notification.tag == STRING
    input.Body.message.android.notification.ticker == STRING
    input.Body.message.android.notification.title == STRING
    input.Body.message.android.notification.titleLocArgs[_] == STRING
    input.Body.message.android.notification.titleLocKey == STRING
    input.Body.message.android.notification.vibrateTimings[_] == STRING
    input.Body.message.android.notification.visibility == enum_AndroidNotificationVisibility[_]
    input.Body.message.android.priority == enum_AndroidConfigPriority[_]
    input.Body.message.android.restrictedPackageName == STRING
    input.Body.message.android.ttl == STRING
    input.Body.message.apns.fcmOptions.analyticsLabel == STRING
    input.Body.message.apns.fcmOptions.image == STRING
    input.Body.message.apns.headers.STRING == STRING
    input.Body.message.apns.payload.STRING == ANY
    input.Body.message.condition == STRING
    input.Body.message.data.STRING == STRING
    input.Body.message.fcmOptions.analyticsLabel == STRING
    input.Body.message.name == STRING
    input.Body.message.notification.body == STRING
    input.Body.message.notification.image == STRING
    input.Body.message.notification.title == STRING
    input.Body.message.token == STRING
    input.Body.message.topic == STRING
    input.Body.message.webpush.data.STRING == STRING
    input.Body.message.webpush.fcmOptions.analyticsLabel == STRING
    input.Body.message.webpush.fcmOptions.link == STRING
    input.Body.message.webpush.headers.STRING == STRING
    input.Body.message.webpush.notification.STRING == ANY
    input.Body.validateOnly == BOOLEAN
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}