Much like #258, add granular downscaling as well. Only supports downscaling on consumed vs provisioned capacity, as I can't imagine a situation where one would want to scale DOWN when they have throttling.
With this kind of setup a user could, for example, only scale down slightly when at a certain point, but also immediately scale all the way down to 1 read/write unit when they have 0% utilization. This would prevent a situation like described in #245 where the autoscaler would only downscale very few units each iteration, risking bumping up against the downscale limit.
I'll work on the docs if this looks good to you.
On a side note, I think a lot of this code could be consolidated together, as I performed more copy/paste of large chunks of code than I'd care to admit, but I figured that refactoring would be out of the scope of this feature. I'd like to visit it after this and my other PRs are merged, though.
Support for granular downscaling
Would be good if the decrease scale actually worked, wouldn't it?
Minor PEP-8 cleanup and consistency fixes.
Thanks for the PR. I'm gonna look it through and likely include it in the 2.1.0 release.
Add release notes for #263
This has now been released in version 2.1.0! Thanks again for the PR @Sazpaimon