AddPermission

valid {
    input.Body.QueueUrl == STRING
    input.Body.Label == STRING
    input.Body.AWSAccountIds[_] == STRING
    input.Body.Actions[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CancelMessageMoveTask

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

ChangeMessageVisibility

valid {
    input.Body.QueueUrl == STRING
    input.Body.ReceiptHandle == STRING
    input.Body.VisibilityTimeout == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ChangeMessageVisibilityBatch

valid {
    input.Body.QueueUrl == STRING
    input.Body.Entries[_].Id == STRING
    input.Body.Entries[_].ReceiptHandle == STRING
    input.Body.Entries[_].VisibilityTimeout == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateQueue

valid {
    input.Body.QueueName == STRING
    input.Body.Attributes.All == STRING
    input.Body.Attributes.Policy == STRING
    input.Body.Attributes.VisibilityTimeout == STRING
    input.Body.Attributes.MaximumMessageSize == STRING
    input.Body.Attributes.MessageRetentionPeriod == STRING
    input.Body.Attributes.ApproximateNumberOfMessages == STRING
    input.Body.Attributes.ApproximateNumberOfMessagesNotVisible == STRING
    input.Body.Attributes.CreatedTimestamp == STRING
    input.Body.Attributes.LastModifiedTimestamp == STRING
    input.Body.Attributes.QueueArn == STRING
    input.Body.Attributes.ApproximateNumberOfMessagesDelayed == STRING
    input.Body.Attributes.DelaySeconds == STRING
    input.Body.Attributes.ReceiveMessageWaitTimeSeconds == STRING
    input.Body.Attributes.RedrivePolicy == STRING
    input.Body.Attributes.FifoQueue == STRING
    input.Body.Attributes.ContentBasedDeduplication == STRING
    input.Body.Attributes.KmsMasterKeyId == STRING
    input.Body.Attributes.KmsDataKeyReusePeriodSeconds == STRING
    input.Body.Attributes.DeduplicationScope == STRING
    input.Body.Attributes.FifoThroughputLimit == STRING
    input.Body.Attributes.RedriveAllowPolicy == STRING
    input.Body.Attributes.SqsManagedSseEnabled == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteMessage

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

DeleteMessageBatch

valid {
    input.Body.QueueUrl == STRING
    input.Body.Entries[_].Id == STRING
    input.Body.Entries[_].ReceiptHandle == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteQueue

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

GetQueueAttributes

enum_QueueAttributeName := [ "All", "Policy", "VisibilityTimeout", "MaximumMessageSize", "MessageRetentionPeriod", "ApproximateNumberOfMessages", "ApproximateNumberOfMessagesNotVisible", "CreatedTimestamp", "LastModifiedTimestamp", "QueueArn", "ApproximateNumberOfMessagesDelayed", "DelaySeconds", "ReceiveMessageWaitTimeSeconds", "RedrivePolicy", "FifoQueue", "ContentBasedDeduplication", "KmsMasterKeyId", "KmsDataKeyReusePeriodSeconds", "DeduplicationScope", "FifoThroughputLimit", "RedriveAllowPolicy", "SqsManagedSseEnabled" ]

valid {
    input.Body.QueueUrl == STRING
    input.Body.AttributeNames[_] == enum_QueueAttributeName[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetQueueUrl

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

ListDeadLetterSourceQueues

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

ListMessageMoveTasks

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

ListQueueTags

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

ListQueues

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

PurgeQueue

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

ReceiveMessage

enum_QueueAttributeName := [ "All", "Policy", "VisibilityTimeout", "MaximumMessageSize", "MessageRetentionPeriod", "ApproximateNumberOfMessages", "ApproximateNumberOfMessagesNotVisible", "CreatedTimestamp", "LastModifiedTimestamp", "QueueArn", "ApproximateNumberOfMessagesDelayed", "DelaySeconds", "ReceiveMessageWaitTimeSeconds", "RedrivePolicy", "FifoQueue", "ContentBasedDeduplication", "KmsMasterKeyId", "KmsDataKeyReusePeriodSeconds", "DeduplicationScope", "FifoThroughputLimit", "RedriveAllowPolicy", "SqsManagedSseEnabled" ]

valid {
    input.Body.QueueUrl == STRING
    input.Body.AttributeNames[_] == enum_QueueAttributeName[_]
    input.Body.MessageAttributeNames[_] == STRING
    input.Body.MaxNumberOfMessages == INTEGER
    input.Body.VisibilityTimeout == INTEGER
    input.Body.WaitTimeSeconds == INTEGER
    input.Body.ReceiveRequestAttemptId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RemovePermission

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

SendMessage

valid {
    input.Body.QueueUrl == STRING
    input.Body.MessageBody == STRING
    input.Body.DelaySeconds == INTEGER
    input.Body.MessageAttributes.STRING.StringValue == STRING
    input.Body.MessageAttributes.STRING.BinaryValue == BLOB
    input.Body.MessageAttributes.STRING.StringListValues[_] == STRING
    input.Body.MessageAttributes.STRING.BinaryListValues[_] == BLOB
    input.Body.MessageAttributes.STRING.DataType == STRING
    input.Body.MessageSystemAttributes.AWSTraceHeader.StringValue == STRING
    input.Body.MessageSystemAttributes.AWSTraceHeader.BinaryValue == BLOB
    input.Body.MessageSystemAttributes.AWSTraceHeader.StringListValues[_] == STRING
    input.Body.MessageSystemAttributes.AWSTraceHeader.BinaryListValues[_] == BLOB
    input.Body.MessageSystemAttributes.AWSTraceHeader.DataType == STRING
    input.Body.MessageDeduplicationId == STRING
    input.Body.MessageGroupId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SendMessageBatch

valid {
    input.Body.QueueUrl == STRING
    input.Body.Entries[_].Id == STRING
    input.Body.Entries[_].MessageBody == STRING
    input.Body.Entries[_].DelaySeconds == INTEGER
    input.Body.Entries[_].MessageAttributes.STRING.StringValue == STRING
    input.Body.Entries[_].MessageAttributes.STRING.BinaryValue == BLOB
    input.Body.Entries[_].MessageAttributes.STRING.StringListValues[_] == STRING
    input.Body.Entries[_].MessageAttributes.STRING.BinaryListValues[_] == BLOB
    input.Body.Entries[_].MessageAttributes.STRING.DataType == STRING
    input.Body.Entries[_].MessageSystemAttributes.AWSTraceHeader.StringValue == STRING
    input.Body.Entries[_].MessageSystemAttributes.AWSTraceHeader.BinaryValue == BLOB
    input.Body.Entries[_].MessageSystemAttributes.AWSTraceHeader.StringListValues[_] == STRING
    input.Body.Entries[_].MessageSystemAttributes.AWSTraceHeader.BinaryListValues[_] == BLOB
    input.Body.Entries[_].MessageSystemAttributes.AWSTraceHeader.DataType == STRING
    input.Body.Entries[_].MessageDeduplicationId == STRING
    input.Body.Entries[_].MessageGroupId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SetQueueAttributes

valid {
    input.Body.QueueUrl == STRING
    input.Body.Attributes.All == STRING
    input.Body.Attributes.Policy == STRING
    input.Body.Attributes.VisibilityTimeout == STRING
    input.Body.Attributes.MaximumMessageSize == STRING
    input.Body.Attributes.MessageRetentionPeriod == STRING
    input.Body.Attributes.ApproximateNumberOfMessages == STRING
    input.Body.Attributes.ApproximateNumberOfMessagesNotVisible == STRING
    input.Body.Attributes.CreatedTimestamp == STRING
    input.Body.Attributes.LastModifiedTimestamp == STRING
    input.Body.Attributes.QueueArn == STRING
    input.Body.Attributes.ApproximateNumberOfMessagesDelayed == STRING
    input.Body.Attributes.DelaySeconds == STRING
    input.Body.Attributes.ReceiveMessageWaitTimeSeconds == STRING
    input.Body.Attributes.RedrivePolicy == STRING
    input.Body.Attributes.FifoQueue == STRING
    input.Body.Attributes.ContentBasedDeduplication == STRING
    input.Body.Attributes.KmsMasterKeyId == STRING
    input.Body.Attributes.KmsDataKeyReusePeriodSeconds == STRING
    input.Body.Attributes.DeduplicationScope == STRING
    input.Body.Attributes.FifoThroughputLimit == STRING
    input.Body.Attributes.RedriveAllowPolicy == STRING
    input.Body.Attributes.SqsManagedSseEnabled == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartMessageMoveTask

valid {
    input.Body.SourceArn == STRING
    input.Body.DestinationArn == STRING
    input.Body.MaxNumberOfMessagesPerSecond == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagQueue

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

UntagQueue

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