1.0.0
-----
 * Refactor range and add toString (CASSANDRASC-41)
 * Fix search in list snapshot endpoint (CASSANDRASC-40)
 * Allow Cassandra input validation to be configurable (CASSANDRAC-39)
 * Add endpoint to list snapshot files (CASSANDRASC-38)
 * Optimize file path builder and have separate handler for streaming file (CASSANDRASC-37)
 * Support for ErrorHandler in Sidecar (CASSANDRASC-36)
 * Allow injecting a LoggerHandler to vertxRouter (CASSANDRASC-34)
 * Optionally support multiple cassandra instances in Sidecar (CASSANDRASC-33)
 * Call the start method of CassandraAdaptorDelegate to start periodic health check (CASSANDRASC-32)
 * Avoid having sidecar's health response code depend on Cassandra's health information (CASSANDRASC-29)
 * Add Stream SSTable API to Sidecar to stream SSTable components through zero copy streaming (CASSANDRASC-28)
 * Fix broken sidecar gradle configuration due to Cassandra 40 version (CASSANDRASC-31)
 * Support multiple Cassandra versions with integration tests using Kubernetes (CASSANDRA-23)
 * RESTEasy integration with dynamically generated Swagger OpenAPI, Swagger UI and JAX-RS (CASSANDRASC-22)
 * Set up asciidoc based documentation (CASSANDRASC-15)
 * Gradle can now generate Deb packages, RPMs and Docker containers (CASSANDRASC-14)
 * Security patch to fix incorrect usage of yaml configuration (CASSANDRASC-12)
 * Build and Test with both Java 8 & 11 in Circle CI (CASSANDRA-15611)
 * Upgraded Gradle and replaced FindBugs with SpotBugs (CASSANDRA-15610)
 * Improving local HealthCheckTest reliability (CASSANDRA-15615)
 * Read sidecar.yaml from sidecar.config System Property instead of classpath (CASSANDRA-15288)
 * Add integration tests task (CASSANDRA-15031)
 * Add support for SSL and bindable address (CASSANDRA-15030)
 * Autogenerate API docs for sidecar (CASSANDRA-15028)
 * C* Management process (CASSANDRA-14395)
