CHIME-SDK-MESSAGING

AssociateChannelFlow

valid {
    input.Body.ChannelFlowArn == STRING
    input.ReqMap.channelArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchCreateChannelMembership

enum_ChannelMembershipType := [ "DEFAULT", "HIDDEN" ]

valid {
    input.Body.Type == enum_ChannelMembershipType[_]
    input.Body.MemberArns[_] == STRING
    input.Body.SubChannelId == STRING
    input.ReqMap.channelArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ChannelFlowCallback

enum_PushNotificationType := [ "DEFAULT", "VOIP" ]

valid {
    input.Body.CallbackId == STRING
    input.Body.DeleteResource == BOOLEAN
    input.Body.ChannelMessage.MessageId == STRING
    input.Body.ChannelMessage.Content == STRING
    input.Body.ChannelMessage.Metadata == STRING
    input.Body.ChannelMessage.PushNotification.Title == STRING
    input.Body.ChannelMessage.PushNotification.Body == STRING
    input.Body.ChannelMessage.PushNotification.Type == enum_PushNotificationType[_]
    input.Body.ChannelMessage.MessageAttributes.STRING.StringValues[_] == STRING
    input.Body.ChannelMessage.SubChannelId == STRING
    input.Body.ChannelMessage.ContentType == STRING
    input.ReqMap.channelArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateChannel

enum_ChannelMode := [ "UNRESTRICTED", "RESTRICTED" ]
enum_ChannelPrivacy := [ "PUBLIC", "PRIVATE" ]
enum_ExpirationCriterion := [ "CREATED_TIMESTAMP", "LAST_MESSAGE_TIMESTAMP" ]

valid {
    input.Body.AppInstanceArn == STRING
    input.Body.Name == STRING
    input.Body.Mode == enum_ChannelMode[_]
    input.Body.Privacy == enum_ChannelPrivacy[_]
    input.Body.Metadata == STRING
    input.Body.ClientRequestToken == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.ChannelId == STRING
    input.Body.MemberArns[_] == STRING
    input.Body.ModeratorArns[_] == STRING
    input.Body.ElasticChannelConfiguration.MaximumSubChannels == INTEGER
    input.Body.ElasticChannelConfiguration.TargetMembershipsPerSubChannel == INTEGER
    input.Body.ElasticChannelConfiguration.MinimumMembershipPercentage == INTEGER
    input.Body.ExpirationSettings.ExpirationDays == INTEGER
    input.Body.ExpirationSettings.ExpirationCriterion == enum_ExpirationCriterion[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateChannelBan

valid {
    input.Body.MemberArn == STRING
    input.ReqMap.channelArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateChannelFlow

enum_FallbackAction := [ "CONTINUE", "ABORT" ]
enum_InvocationType := [ "ASYNC" ]

valid {
    input.Body.AppInstanceArn == STRING
    input.Body.Processors[_].Name == STRING
    input.Body.Processors[_].Configuration.Lambda.ResourceArn == STRING
    input.Body.Processors[_].Configuration.Lambda.InvocationType == enum_InvocationType[_]
    input.Body.Processors[_].ExecutionOrder == INTEGER
    input.Body.Processors[_].FallbackAction == enum_FallbackAction[_]
    input.Body.Name == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.ClientRequestToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateChannelMembership

enum_ChannelMembershipType := [ "DEFAULT", "HIDDEN" ]

valid {
    input.Body.MemberArn == STRING
    input.Body.Type == enum_ChannelMembershipType[_]
    input.Body.SubChannelId == STRING
    input.ReqMap.channelArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateChannelModerator

valid {
    input.Body.ChannelModeratorArn == STRING
    input.ReqMap.channelArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteChannel

valid {
    input.ReqMap.channelArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteChannelBan

valid {
    input.ReqMap.channelArn == STRING
    input.ReqMap.memberArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteChannelFlow

valid {
    input.ReqMap.channelFlowArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteChannelMembership

valid {
    input.ReqMap.channelArn == STRING
    input.ReqMap.memberArn == STRING
    input.Qs.sub-channel-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteChannelMessage

valid {
    input.ReqMap.channelArn == STRING
    input.ReqMap.messageId == STRING
    input.Qs.sub-channel-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteChannelModerator

valid {
    input.ReqMap.channelArn == STRING
    input.ReqMap.channelModeratorArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteMessagingStreamingConfigurations

valid {
    input.ReqMap.appInstanceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeChannel

valid {
    input.ReqMap.channelArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeChannelBan

valid {
    input.ReqMap.channelArn == STRING
    input.ReqMap.memberArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeChannelFlow

valid {
    input.ReqMap.channelFlowArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeChannelMembership

valid {
    input.ReqMap.channelArn == STRING
    input.ReqMap.memberArn == STRING
    input.Qs.sub-channel-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeChannelMembershipForAppInstanceUser

valid {
    input.ReqMap.channelArn == STRING
    input.Qs.app-instance-user-arn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeChannelModeratedByAppInstanceUser

valid {
    input.ReqMap.channelArn == STRING
    input.Qs.app-instance-user-arn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeChannelModerator

valid {
    input.ReqMap.channelArn == STRING
    input.ReqMap.channelModeratorArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateChannelFlow

valid {
    input.ReqMap.channelArn == STRING
    input.ReqMap.channelFlowArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetChannelMembershipPreferences

valid {
    input.ReqMap.channelArn == STRING
    input.ReqMap.memberArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetChannelMessage

valid {
    input.ReqMap.channelArn == STRING
    input.ReqMap.messageId == STRING
    input.Qs.sub-channel-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetChannelMessageStatus

valid {
    input.ReqMap.channelArn == STRING
    input.ReqMap.messageId == STRING
    input.Qs.sub-channel-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetMessagingSessionEndpoint

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

GetMessagingStreamingConfigurations

valid {
    input.ReqMap.appInstanceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListChannelBans

valid {
    input.ReqMap.channelArn == STRING
    input.Qs.max-results == INTEGER
    input.Qs.next-token == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListChannelFlows

valid {
    input.Qs.app-instance-arn == STRING
    input.Qs.max-results == INTEGER
    input.Qs.next-token == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListChannelMemberships

enum_ChannelMembershipType := [ "DEFAULT", "HIDDEN" ]

valid {
    input.ReqMap.channelArn == STRING
    input.Qs.type == enum_ChannelMembershipType[_]
    input.Qs.max-results == INTEGER
    input.Qs.next-token == STRING
    input.Qs.sub-channel-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListChannelMembershipsForAppInstanceUser

valid {
    input.Qs.app-instance-user-arn == STRING
    input.Qs.max-results == INTEGER
    input.Qs.next-token == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListChannelMessages

enum_SortOrder := [ "ASCENDING", "DESCENDING" ]

valid {
    input.ReqMap.channelArn == STRING
    input.Qs.sort-order == enum_SortOrder[_]
    input.Qs.not-before == TIMESTAMP
    input.Qs.not-after == TIMESTAMP
    input.Qs.max-results == INTEGER
    input.Qs.next-token == STRING
    input.Qs.sub-channel-id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListChannelModerators

valid {
    input.ReqMap.channelArn == STRING
    input.Qs.max-results == INTEGER
    input.Qs.next-token == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListChannels

enum_ChannelPrivacy := [ "PUBLIC", "PRIVATE" ]

valid {
    input.Qs.app-instance-arn == STRING
    input.Qs.privacy == enum_ChannelPrivacy[_]
    input.Qs.max-results == INTEGER
    input.Qs.next-token == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListChannelsAssociatedWithChannelFlow

valid {
    input.Qs.channel-flow-arn == STRING
    input.Qs.max-results == INTEGER
    input.Qs.next-token == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListChannelsModeratedByAppInstanceUser

valid {
    input.Qs.app-instance-user-arn == STRING
    input.Qs.max-results == INTEGER
    input.Qs.next-token == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListSubChannels

valid {
    input.ReqMap.channelArn == STRING
    input.Qs.max-results == INTEGER
    input.Qs.next-token == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagsForResource

valid {
    input.Qs.arn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutChannelExpirationSettings

enum_ExpirationCriterion := [ "CREATED_TIMESTAMP", "LAST_MESSAGE_TIMESTAMP" ]

valid {
    input.Body.ExpirationSettings.ExpirationDays == INTEGER
    input.Body.ExpirationSettings.ExpirationCriterion == enum_ExpirationCriterion[_]
    input.ReqMap.channelArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutChannelMembershipPreferences

enum_AllowNotifications := [ "ALL", "NONE", "FILTERED" ]

valid {
    input.Body.Preferences.PushNotifications.AllowNotifications == enum_AllowNotifications[_]
    input.Body.Preferences.PushNotifications.FilterRule == STRING
    input.ReqMap.channelArn == STRING
    input.ReqMap.memberArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutMessagingStreamingConfigurations

enum_MessagingDataType := [ "Channel", "ChannelMessage" ]

valid {
    input.Body.StreamingConfigurations[_].DataType == enum_MessagingDataType[_]
    input.Body.StreamingConfigurations[_].ResourceArn == STRING
    input.ReqMap.appInstanceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RedactChannelMessage

valid {
    input.Body.SubChannelId == STRING
    input.ReqMap.channelArn == STRING
    input.ReqMap.messageId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchChannels

enum_SearchFieldKey := [ "MEMBERS" ]
enum_SearchFieldOperator := [ "EQUALS", "INCLUDES" ]

valid {
    input.Body.Fields[_].Key == enum_SearchFieldKey[_]
    input.Body.Fields[_].Values[_] == STRING
    input.Body.Fields[_].Operator == enum_SearchFieldOperator[_]
    input.Qs.max-results == INTEGER
    input.Qs.next-token == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SendChannelMessage

enum_ChannelMessagePersistenceType := [ "PERSISTENT", "NON_PERSISTENT" ]
enum_ChannelMessageType := [ "STANDARD", "CONTROL" ]
enum_PushNotificationType := [ "DEFAULT", "VOIP" ]

valid {
    input.Body.Content == STRING
    input.Body.Type == enum_ChannelMessageType[_]
    input.Body.Persistence == enum_ChannelMessagePersistenceType[_]
    input.Body.Metadata == STRING
    input.Body.ClientRequestToken == STRING
    input.Body.PushNotification.Title == STRING
    input.Body.PushNotification.Body == STRING
    input.Body.PushNotification.Type == enum_PushNotificationType[_]
    input.Body.MessageAttributes.STRING.StringValues[_] == STRING
    input.Body.SubChannelId == STRING
    input.Body.ContentType == STRING
    input.Body.Target[_].MemberArn == STRING
    input.ReqMap.channelArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagResource

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

UntagResource

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

UpdateChannel

enum_ChannelMode := [ "UNRESTRICTED", "RESTRICTED" ]

valid {
    input.Body.Name == STRING
    input.Body.Mode == enum_ChannelMode[_]
    input.Body.Metadata == STRING
    input.ReqMap.channelArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateChannelFlow

enum_FallbackAction := [ "CONTINUE", "ABORT" ]
enum_InvocationType := [ "ASYNC" ]

valid {
    input.Body.Processors[_].Name == STRING
    input.Body.Processors[_].Configuration.Lambda.ResourceArn == STRING
    input.Body.Processors[_].Configuration.Lambda.InvocationType == enum_InvocationType[_]
    input.Body.Processors[_].ExecutionOrder == INTEGER
    input.Body.Processors[_].FallbackAction == enum_FallbackAction[_]
    input.Body.Name == STRING
    input.ReqMap.channelFlowArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateChannelMessage

valid {
    input.Body.Content == STRING
    input.Body.Metadata == STRING
    input.Body.SubChannelId == STRING
    input.Body.ContentType == STRING
    input.ReqMap.channelArn == STRING
    input.ReqMap.messageId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateChannelReadMarker

valid {
    input.ReqMap.channelArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}