AddPermission

valid {
    input.Body.TopicArn == STRING
    input.Body.Label == STRING
    input.Body.AWSAccountId[_] == STRING
    input.Body.ActionName[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CheckIfPhoneNumberIsOptedOut

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

ConfirmSubscription

valid {
    input.Body.TopicArn == STRING
    input.Body.Token == STRING
    input.Body.AuthenticateOnUnsubscribe == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreatePlatformApplication

valid {
    input.Body.Name == STRING
    input.Body.Platform == STRING
    input.Body.Attributes.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreatePlatformEndpoint

valid {
    input.Body.PlatformApplicationArn == STRING
    input.Body.Token == STRING
    input.Body.CustomUserData == STRING
    input.Body.Attributes.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSMSSandboxPhoneNumber

enum_LanguageCodeString := [ "en-US", "en-GB", "es-419", "es-ES", "de-DE", "fr-CA", "fr-FR", "it-IT", "ja-JP", "pt-BR", "kr-KR", "zh-CN", "zh-TW" ]

valid {
    input.Body.PhoneNumber == STRING
    input.Body.LanguageCode == enum_LanguageCodeString[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTopic

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

DeleteEndpoint

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

DeletePlatformApplication

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

DeleteSMSSandboxPhoneNumber

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

DeleteTopic

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

GetDataProtectionPolicy

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

GetEndpointAttributes

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

GetPlatformApplicationAttributes

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

GetSMSAttributes

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

GetSMSSandboxAccountStatus

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

GetSubscriptionAttributes

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

GetTopicAttributes

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

ListEndpointsByPlatformApplication

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

ListOriginationNumbers

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

ListPhoneNumbersOptedOut

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

ListPlatformApplications

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

ListSMSSandboxPhoneNumbers

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

ListSubscriptions

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

ListSubscriptionsByTopic

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

ListTagsForResource

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

ListTopics

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

OptInPhoneNumber

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

Publish

valid {
    input.Body.TopicArn == STRING
    input.Body.TargetArn == STRING
    input.Body.PhoneNumber == STRING
    input.Body.Message == STRING
    input.Body.Subject == STRING
    input.Body.MessageStructure == STRING
    input.Body.MessageAttributes.STRING.DataType == STRING
    input.Body.MessageAttributes.STRING.StringValue == STRING
    input.Body.MessageAttributes.STRING.BinaryValue == BLOB
    input.Body.MessageDeduplicationId == STRING
    input.Body.MessageGroupId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PublishBatch

valid {
    input.Body.TopicArn == STRING
    input.Body.PublishBatchRequestEntries[_].Id == STRING
    input.Body.PublishBatchRequestEntries[_].Message == STRING
    input.Body.PublishBatchRequestEntries[_].Subject == STRING
    input.Body.PublishBatchRequestEntries[_].MessageStructure == STRING
    input.Body.PublishBatchRequestEntries[_].MessageAttributes.STRING.DataType == STRING
    input.Body.PublishBatchRequestEntries[_].MessageAttributes.STRING.StringValue == STRING
    input.Body.PublishBatchRequestEntries[_].MessageAttributes.STRING.BinaryValue == BLOB
    input.Body.PublishBatchRequestEntries[_].MessageDeduplicationId == STRING
    input.Body.PublishBatchRequestEntries[_].MessageGroupId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutDataProtectionPolicy

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

RemovePermission

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

SetEndpointAttributes

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

SetPlatformApplicationAttributes

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

SetSMSAttributes

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

SetSubscriptionAttributes

valid {
    input.Body.SubscriptionArn == STRING
    input.Body.AttributeName == STRING
    input.Body.AttributeValue == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SetTopicAttributes

valid {
    input.Body.TopicArn == STRING
    input.Body.AttributeName == STRING
    input.Body.AttributeValue == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

Subscribe

valid {
    input.Body.TopicArn == STRING
    input.Body.Protocol == STRING
    input.Body.Endpoint == STRING
    input.Body.Attributes.STRING == STRING
    input.Body.ReturnSubscriptionArn == BOOLEAN
    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
}

Unsubscribe

valid {
    input.Body.SubscriptionArn == 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
}

VerifySMSSandboxPhoneNumber

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