class RateLimitingProcessor implements Processor {

    protected void saveCurrentViolators(Map<String, ViolationMetaData> violators, String bucketName) {
        byte[] bytes;
        try {
            bytes = objectMapper.writeValueAsBytes(violators);
        } catch (JsonProcessingException e) {
            throw new RuntimeException("Failed to serialize violators data");
        }
        InputStream jsonStream = new ByteArrayInputStream(bytes);
        ObjectMetadata metadata = new ObjectMetadata();
        metadata.setContentLength(bytes.length);
        amazonS3.putObject(new PutObjectRequest(bucketName, SERIALIZED_DATA_FILE_NAME, jsonStream, metadata));
    }

    public  RateLimitingProcessor(ObjectMapper objectMapper, AWSWAFRegional awsWaf, AmazonS3 amazonS3);

}