# ImageVault
The `imagevault` crate supplies a convenient way to consume
the ImageVault API using a `Client` with the choice of
multiple `Authentication` methods.
This crate consumes the ImageVault REST API using the `reqwest`
crate. All requests are asynchronous. No attempts will be made
to document the ImageVault API, this information is available
in the original <a target="_blank" href="https://imagevault.se/doc">ImageVault documentation</a>.
The aim of this crate is to support as much of the `apiv2` version
as possible. At this time a limited set is covered:
## Supported authentication methods
* Client Credentials
* Pin code
## Supported services
* assets/info
* assets/search
* info/version
* mediacontentservice/storecontentinvault
* mediaservice/save
* uploadservice/upload
## Remarks
This is still a pre-release, major API changes and rewrites can occur
until a stable version 1.0.
Although the creator of this crate is an ImageVault employee,
**this is not an official ImageVault product**. The ImageVault product
and company names are trademarks of their respective holders.
## Example usage
```
let authentication = ClientCredentialsAuthentication::default();
let client = Client::new(
"identity",
"secret",
"https://myimagevault.se",
)?
.with_authentication(authentication);
let info = assets::info(&client).await?;
let query = assets::SearchBuilder::new("cat")
.filter("isOrganized")
.top(20)
.build();
let search_result = assets::search(&client, &query).await?;
```