darwin-v7 0.4.0

Unofficial rust client for the [V7 annotation platform](https://darwin.v7labs.com/)
Documentation
# darwin-v7

Unofficial rust client for the [V7 annotation platform](https://darwin.v7labs.com/)

## 🚧 UNDER CONSTRUCTION

This crate aims to make all the functionality of both versions 1.0 and 2.0 of the [V7 API](https://docs.v7labs.com/) available to applications written in Rust 🦀.

### ❓ Why is this crate needed?

At [franklin-ai](https://www.franklin.ai) much of our code is written in Rust and find that the guarantees provided by the Rust borrow checker and type safety make our data processing pipelines more reliable, secure and much faster than previous pipelines written in Python.
Another goal of this crate is to facilitate some ergonomic improvements to the [darwin-cli](https://docs.v7labs.com/docs/getting-started-1) following extensive usage.

This project is completely independent of the [Python package](https://darwin-py-sdk.v7labs.com/) provided by V7 labs and is being written using a combination of the publicly available V7 documentation, previous experience and a thorough use of web browser inspectors.


## :building_construction: State of API Compatibility

The following table summarises the current state of the API compatibility for the crate.

The priorities in listed in the table below are purely driven by internal company goals and requirements.
However if specific API endpoints are required please lodge an [Issue](https://github.com/franklin-ai/darwin-v7/issues) and we will attempt to prioritise the feature.

| **API Endpoint**                                                                                                              | **API Version** | **Status** | **Rust Method**                  | **Unit Tested** | **Integration Tested** | **Priority** | **Comments**                                                      |
|-------------------------------------------------------------------------------------------------------------------------------|-----------------|------------|----------------------------------|-----------------|------------------------|--------------|-------------------------------------------------------------------|
| **Annotation Classes**                                                                                                        |
| [List Annotation Classes]https://docs.v7labs.com/v1.0/reference/list-annotation-classes                                     | 1.0/2.0         ||                                  ||| 🔼           |                                                                   |
| [Create Annotation Classes]https://docs.v7labs.com/v1.0/reference/create-annotation-classes                                 | 1.0/2.0         ||                                  ||| 🔼           |                                                                   |
| [Update Annotation Classes]https://docs.v7labs.com/v1.0/reference/update-annotation-classes                                 | 1.0/2.0         ||                                  ||| 🔼           |                                                                   |
| [Delete Annotation Classes]https://docs.v7labs.com/v1.0/reference/delete-annotation-classes                                 | 1.0/2.0         ||                                  ||| 🔼           |                                                                   |
| **Async CSV Reports**                                                                                                         |
| [List Async CSV Reports]https://docs.v7labs.com/reference/list-async-csv-reports                                            | 2.0             ||                                  ||| ▶️           |                                                                   |
| [Show Async CSV Reports]https://docs.v7labs.com/reference/show-async-csv-reports                                            | 2.0             ||                                  ||| ▶️           |                                                                   |
| [Create Async CSV Reports]https://docs.v7labs.com/reference/create-async-csv-reports                                        | 2.0             ||                                  ||| ▶️           |                                                                   |
| [Delete Async CSV Reports]https://docs.v7labs.com/reference/delete-async-csv-reports                                        | 2.0             ||                                  ||| ▶️           |                                                                   |
| **Comments**                                                                                                                  |
| [List comment threads on Item]https://docs.v7labs.com/reference/comments-thread-index                                       | 2.0             ||                                  ||| 🔽️          |                                                                   |
| [Create a new comment with new comment thread]https://docs.v7labs.com/reference/comments-thread-create                      | 2.0             ||                                  ||| 🔽️          |                                                                   |
| [Delete comment]https://docs.v7labs.com/reference/comments-delete                                                           | 2.0             ||                                  ||| 🔽           |                                                                   |
| [Update comment]https://docs.v7labs.com/reference/comments-update                                                           | 2.0             ||                                  ||| 🔽           |                                                                   |
| [Delete a comment thread]https://docs.v7labs.com/reference/comments-thread-delete                                           | 2.0             ||                                  ||| 🔽           |                                                                   |
| [Update a comment thread]https://docs.v7labs.com/reference/comments-thread-update                                           | 2.0             ||                                  ||| 🔽           |                                                                   |
| [List thread comments]https://docs.v7labs.com/reference/comments-index                                                      | 2.0             ||                                  ||| 🔽           |                                                                   |
| [Create a comment in a thread]https://docs.v7labs.com/reference/comments-create                                             | 2.0             ||                                  ||| 🔽           |                                                                   |
| **Datasets**                                                                                                                  |
| [Create Dataset]https://docs.v7labs.com/v1.0/reference/create-dataset                                                       | 1.0/2.0         || `Dataset::create_dataset`        ||| ▶️           |                                                                   |
| [Update Dataset]https://docs.v7labs.com/v1.0/reference/update-dataset                                                       | 1.0/2.0         ||                                  ||| ▶️           |                                                                   |
| [List Dataset]https://docs.v7labs.com/v1.0/reference/list-dataset                                                           | 1.0/2.0         || `Dataset::list_datasets`         ||| ▶️           |                                                                   |
| [Show Dataset]https://docs.v7labs.com/v1.0/reference/show-dataset                                                           | 1.0/2.0         || `Dataset::show_dataset`          ||| ▶️           |                                                                   |
| [Show Dataset Details]https://docs.v7labs.com/v1.0/reference/show-dataset-details                                           | 1.0/2.0         ||                                  ||| ▶️           |                                                                   |
| [List Dataset Items]https://docs.v7labs.com/v1.0/reference/list-dataset-items                                               | 1.0             || `Dataset::list_dataset_items`    ||| ▶️           |                                                                   |
| [List Dataset Items]https://docs.v7labs.com/reference/items-list                                                            | 2.0             || `Dataset::list_dataset_items_v2` ||| ▶️           |                                                                   |
| [List Dataset Folders]https://docs.v7labs.com/v1.0/reference/list-dataset-folders                                           | 1.0/2.0         ||                                  ||| 🔽           |                                                                   |
| [Show Item Counts]https://docs.v7labs.com/v1.0/reference/show-item-counts                                                   | 1.0             ||                                  |||| To be deprecated by V7                                            |
| [Tag Items]https://docs.v7labs.com/v1.0/reference/tag-items                                                                 | 1.0             ||                                  ||| 🔽           |                                                                   |
| [Untag Items]https://docs.v7labs.com/v1.0/reference/untag-items                                                             | 1.0             ||                                  ||| 🔽           |                                                                   |
| [Add Instructions]https://docs.v7labs.com/v1.0/reference/add-instructions                                                   | 1.0/2.0         ||                                  ||| 🔼           |                                                                   |
| [Get Items Report]https://docs.v7labs.com/v1.0/reference/get-items-report                                                   | 1.0/2.0         || `Dataset::get_item_reports`      ||| 🔼           |                                                                   |
| [Archive Dataset]https://docs.v7labs.com/v1.0/reference/archive-dataset                                                     | 1.0/2.0         || `Dataset::archive_dataset`       ||| ▶️           |                                                                   |
| [Add Workforce Managers to Dataset]https://docs.v7labs.com/reference/add-workforce-managers-to-dataset                      | 2.0             ||                                  ||| 🔼           |                                                                   |
| **Exports**                                                                                                                   |
| [Generate Export]https://docs.v7labs.com/v1.0/reference/generate-export                                                     | 1.0/2.0         | 🚧         | `Dataset::generate_export`       ||| 🔼           | Not all arguments parameterized                                   |
| [Delete Export]https://docs.v7labs.com/v1.0/reference/delete-export                                                         | 1.0/2.0         ||                                  ||| ▶️           |                                                                   |
| [List Exports]https://docs.v7labs.com/v1.0/reference/list-exports                                                           | 1.0/2.0         | 🚧         |                                  ||| 🔼️          |                                                                   |
| **External Storage**                                                                                                          |
| [List External Storage Settings]https://docs.v7labs.com/v1.0/reference/list-external-storage-settings                       | 1.0/2.0         ||                                  ||| 🔽️          |                                                                   |
| [Show External Storage Endpoint]https://docs.v7labs.com/v1.0/reference/show-external-storage-endpoint-2                     | 1.0/2.0         ||                                  ||| 🔽️          |                                                                   |
| [Update External Storage]https://docs.v7labs.com/v1.0/reference/update-external-storage                                     | 1.0/2.0         ||                                  ||| 🔽️          |                                                                   |
| [Create External Storage]https://docs.v7labs.com/v1.0/reference/create-external-storage                                     | 1.0/2.0         ||                                  ||| 🔽️          |                                                                   |
| [Mark External Storage as default]https://docs.v7labs.com/v1.0/reference/mark-external-storage-as-default                   | 1.0/2.0         ||                                  ||| 🔽️          |                                                                   |
| **Imports**                                                                                                                   |
| [Confirm uploaded files]https://docs.v7labs.com/reference/imports-confirm-upload                                            | 2.0             ||                                  ||| 🔽️          |                                                                   |
| [Register existing data for processing]https://docs.v7labs.com/reference/imports-process-upload                             | 2.0             ||                                  ||| 🔽️          |                                                                   |
| [Get URLs for file upload]https://docs.v7labs.com/reference/imports-sign-upload                                             | 2.0             ||                                  ||| 🔽️          |                                                                   |
| [Register existing read-only data]https://docs.v7labs.com/reference/imports-register-readonly                               | 2.0             ||                                  ||| 🔽️          |                                                                   |
| [Register new data for upload]https://docs.v7labs.com/reference/imports-upload                                              | 2.0             ||                                  ||| 🔽️          |                                                                   |
| **Items**                                                                                                                     |
| [Set Workflow Stage]https://docs.v7labs.com/v1.0/reference/set-workflow-stage                                               | 1.0             || `Dataset::set_stage`             ||| ▶️           |                                                                   |
| [Archive]https://docs.v7labs.com/v1.0/reference/archive                                                                     | 1.0/2.0         ||                                  ||| 🔽️          |                                                                   |
| [Restore]https://docs.v7labs.com/v1.0/reference/restore                                                                     | 1.0/2.0         ||                                  ||| 🔽️          |                                                                   |
| [Set Priority]https://docs.v7labs.com/v1.0/reference/set-priority                                                           | 1.0/2.0         ||                                  ||| 🔽️          |                                                                   |
| [List Video Frames]https://docs.v7labs.com/v1.0/reference/list-video-frames                                                 | 1.0             ||                                  ||| 🔽️          |                                                                   |
| [Move Items]https://docs.v7labs.com/v1.0/reference/move-items                                                               | 1.0/2.0         ||                                  ||| 🔽️          | [v2 equivalent]https://docs.v7labs.com/reference/items-set-path |
| [Register Uploading Items]https://docs.v7labs.com/v1.0/reference/import-data                                                | 1.0             ||                                  ||| 🔽️          |                                                                   |
| [Get Item counts by classes]https://docs.v7labs.com/reference/items-class-counts                                            | 2.0             ||                                  ||| 🔽️          |                                                                   |
| [Sign m3u8 index for streaming]https://docs.v7labs.com/reference/items-sign-slot                                            | 2.0             ||                                  ||| ⏬️           |                                                                   |
| [List slot sections]https://docs.v7labs.com/reference/items-list-slot-sections                                              | 2.0             ||                                  ||| ⏬️           |                                                                   |
| [Set Layout]https://docs.v7labs.com/reference/items-set-layout                                                              | 2.0             ||                                  ||| ⏬️           |                                                                   |
| [List Item IDs]https://docs.v7labs.com/reference/items-list-ids                                                             | 2.0             ||                                  ||| 🔽️          |                                                                   |
| [List Folders]https://docs.v7labs.com/reference/items-list-folders                                                          | 2.0             ||                                  ||| ⏬️           |                                                                   |
| [Delete Items]https://docs.v7labs.com/reference/items-delete                                                                | 2.0             ||                                  ||| ▶️️          |                                                                   |
| [List Items]https://docs.v7labs.com/reference/items-list                                                                    | 2.0             ||                                  ||| ▶️️          |                                                                   |
| [List slot sections with tiles]https://docs.v7labs.com/reference/items-list-slot-sections-with-titles                       | 2.0             ||                                  ||| 🔽️️         |                                                                   |
| [Get Item counts by stages]https://docs.v7labs.com/reference/items-stage-counts                                             | 2.0             ||                                  ||| 🔽️️         |                                                                   |
| [Get Item counts]https://docs.v7labs.com/reference/items-general-counts                                                     | 2.0             ||                                  ||| 🔽️️         |                                                                   |
| [Get Item counts by status]https://docs.v7labs.com/reference/items-status-counts                                            | 2.0             ||                                  ||| 🔽️️         |                                                                   |
| [Get Item]https://docs.v7labs.com/reference/items-get-one                                                                   | 2.0             ||                                  ||| ▶️️️         |                                                                   |
| **Workflow Stages**                                                                                                           |
| [Assign]https://docs.v7labs.com/v1.0/reference/assign                                                                       | 1.0             || `Dataset::set_stage`             ||| ▶️           |                                                                   |
| [Skip]https://docs.v7labs.com/v1.0/reference/skip                                                                           | 1.0             ||                                  ||| 🔽️️         |                                                                   |
| [Unskip]https://docs.v7labs.com/v1.0/reference/unskip                                                                       | 1.0             ||                                  ||| 🔽️️         |                                                                   |
| [Complete]https://docs.v7labs.com/v1.0/reference/complete                                                                   | 1.0             ||                                  ||| 🔽️️         |                                                                   |
| [Set Auto-complete]https://docs.v7labs.com/v1.0/reference/set-auto-complete                                                 | 1.0             ||                                  ||||                                                                   |
| **Workflows**                                                                                                                 |
| [Assign items to user]https://docs.v7labs.com/reference/workflow-items-assign                                               | 2.0             || `WorkflowV2::assign_items`       ||| ▶️           |                                                                   |
| [Execute commands for item]https://docs.v7labs.com/reference/workflows-run-command                                          | 2.0             ||                                  ||| ▶️           |                                                                   |
| [Request work batch]https://docs.v7labs.com/reference/workflows-get-batch                                                   | 2.0             ||                                  ||| ▶️           |                                                                   |
| [Set Stage]https://docs.v7labs.com/reference/workflow-items-set-stage                                                       | 2.0             ||                                  ||| ▶️           |                                                                   |
| [List Workflows]https://docs.v7labs.com/reference/workflows-index                                                           | 2.0             || `WorkflowV2::list_workflows`     ||| ▶️           |                                                                   |
| [Create Workflows]https://docs.v7labs.com/reference/workflows-create                                                        | 2.0             || `Dataset::set_workflow_v2`       ||| ▶️           |                                                                   |
| [Archive Workflows]https://docs.v7labs.com/reference/workflows-delete                                                       | 2.0             ||                                  ||| ▶️           |                                                                   |
| [Get Workflows]https://docs.v7labs.com/reference/workflows-show                                                             | 2.0             || `Dataset::get_workflows_v2`      ||| ▶️           |                                                                   |
| [Update Workflows]https://docs.v7labs.com/reference/workflows-update                                                        | 2.0             ||                                  ||| ▶️           |                                                                   |
| [Unlink dataset from a workflow by workflow id]https://docs.v7labs.com/reference/workflows-unlink-dataset                   | 2.0             ||                                  ||| ▶️           |                                                                   |
| **Teams**                                                                                                                     |
| [List Memberships]https://docs.v7labs.com/v1.0/reference/memberships                                                        | 1.0/2.0         || `Team::list_memberships`         ||| ▶️           |                                                                   |
| [Create Invitations]https://docs.v7labs.com/v1.0/reference/create-invitations                                               | 1.0             || `Team::list_memberships`         ||| ▶️           |                                                                   |
| **Time Tracking**                                                                                                             |
| [Get time summary]https://docs.v7labs.com/reference/workflow-items-tag-summary                                              | 2.0             ||                                  ||| ▶️           |                                                                   |
| **Webhooks**                                                                                                                  |
| [Index]https://docs.v7labs.com/v1.0/reference/index                                                                         | 1.0             ||                                  ||||                                                                   |
| [Create]https://docs.v7labs.com/v1.0/reference/create                                                                       | 1.0             ||                                  ||||                                                                   |
| [Update]https://docs.v7labs.com/v1.0/reference/update                                                                       | 1.0             ||                                  ||||                                                                   |
| [Delete]https://docs.v7labs.com/v1.0/reference/delete                                                                       | 1.0             ||                                  ||||                                                                   |
| **Webhooks V2**                                                                                                               |
| [Get responses by workflow id]https://docs.v7labs.com/v1.0/reference/index-1                                                | 1.0             ||                                  ||||                                                                   |
| [Get responses by workflow id and stage id]https://docs.v7labs.com/v1.0/reference/get-responses-by-workflow-id-and-stage-id | 1.0             ||                                  ||||                                                                   |
| [Test webhook endpoint]https://docs.v7labs.com/v1.0/reference/webhook-test                                                  | 1.0             ||                                  ||||                                                                   |