Enhancement: API - Vault

- Refactored to move the Vault functionality into an API form used by the Deuce Client
--- Added a Project layer to be able to manage all vaults for a given projectid (to be used)
--- Added a Vault layer that will manage the details of a vault, used for now for only the Vault ID
- Added special exceptions for Deuce Client functionality
- Added functionality to make it easy to build paths, for both the client and for testing
--- for client added it to a v1 module so we can switch in the future if necessary
- Added validation for some function inputs using stoplight
--- this will require a change to stoplight so that non-object-instance functions can be validated
--- added tests for the v1 path functions
Testing: Added Create Vault from Vault API object
Dependency Upgrade: Stoplight

- stoplight now has the functionality we need for using it here; make sure we get the right version on install
Testing - API - Vault

- Added tests for the Vault API interface
Updates & More Testing

- Updated test_deuceclient.py to use the api.vault.Vault
- Added Tests:
--- api.vault.Vault status, statistics
--- api.project.Project (create, add vault, get vault, update, repr)
- Bug Fix: api.project.Project.update - bad use of iterating over a dictionary
Updates

- reduction: initializer does not need to throw a TypeError b/c the validation does that already
- bug fix: bad function name for __getitem__
- bug fix: updated to be able to call each test module on its own
- bug fix: corrected the invalid vault name tests
Enhancement

- Added test for invalid project name
Enhancement: Testing

- Added for invalid vault name length
Merge pull request #9 from BenjamenMeyer/enhancement_api_vault

Enhancement api vault
Enhancement: management of Blocks

- Adds object to manage a single block
- Adds collection to manage multiple block objects
Merge branch 'master' into enhancement_api_blocks
Bug Fixes

- Vault path was not updated
- NonAuth module incorrectly specified the AuthTenantId property
Bug Fix

- test incorrectly used toordinal() instead of timestamp() - they return different things
Merge pull request #10 from BenjamenMeyer/enhancement_api_blocks

Enhancement api blocks