use crate::{
client::rpc::TagProvider,
tensor::{DecthingsParameterDefinition, DecthingsTensor},
};
use serde::Serialize;
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CreateDatasetParams<'a> {
pub name: &'a str,
pub description: &'a str,
#[serde(skip_serializing_if = "Option::is_none")]
pub public_access: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<&'a [TagProvider<'a>]>,
pub keys: &'a [&'a DecthingsParameterDefinition],
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct UpdateDatasetProperties<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<&'a str>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<&'a str>,
#[serde(skip_serializing_if = "Option::is_none")]
pub public_access: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<&'a [TagProvider<'a>]>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct UpdateDatasetParams<'a> {
pub dataset_id: &'a str,
pub properties: UpdateDatasetProperties<'a>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DeleteDatasetParams<'a> {
pub dataset_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetDatasetsFilter<'a, S: AsRef<str>> {
#[serde(serialize_with = "super::super::serialize_option_asref_str_seq")]
#[serde(skip_serializing_if = "Option::is_none")]
pub owners: Option<&'a [S]>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<&'a [TagProvider<'a>]>,
#[serde(serialize_with = "super::super::serialize_option_asref_str_seq")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ids: Option<&'a [S]>,
#[serde(serialize_with = "super::super::serialize_option_asref_str_seq")]
#[serde(skip_serializing_if = "Option::is_none")]
pub names: Option<&'a [S]>,
#[serde(skip_serializing_if = "Option::is_none")]
pub search_name: Option<&'a str>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum SortDirection {
Asc,
Desc,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
#[serde(bound(serialize = ""))]
pub struct GetDatasetsParams<'a, S: AsRef<str>> {
#[serde(skip_serializing_if = "Option::is_none")]
pub offset: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub filter: Option<GetDatasetsFilter<'a, S>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sort: Option<&'a str>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sort_direction: Option<SortDirection>,
}
#[derive(Debug, Clone)]
pub struct DataToAddForKey<'a> {
pub key: &'a str,
pub data: Vec<DecthingsTensor<'a>>,
}
impl Serialize for DataToAddForKey<'_> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(self.key)
}
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct AddEntriesParams<'a> {
pub dataset_id: &'a str,
pub keys: Vec<DataToAddForKey<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dataset_version_id: Option<&'a str>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct AddEntriesToNeedsReviewParams<'a> {
pub dataset_id: &'a str,
pub keys: Vec<DataToAddForKey<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dataset_version_id: Option<&'a str>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct FinalizeNeedsReviewEntriesParams<'a> {
pub dataset_id: &'a str,
pub indexes: &'a [u32],
#[serde(skip_serializing)]
pub keys: Vec<DataToAddForKey<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dataset_version_id: Option<&'a str>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct EntriesToGetRange {
pub start: u32,
pub end: u32,
}
#[derive(Debug, Clone, Serialize)]
#[serde(untagged)]
pub enum EntriesToGet<'a> {
Indexes(&'a [u32]),
Range(EntriesToGetRange),
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetEntriesParams<'a> {
pub dataset_id: &'a str,
pub entries: EntriesToGet<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dataset_version_id: Option<&'a str>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetNeedsReviewEntriesParams<'a> {
pub dataset_id: &'a str,
pub entries: EntriesToGet<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dataset_version_id: Option<&'a str>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct RemoveEntriesParams<'a> {
pub dataset_id: &'a str,
pub entries: &'a [u32],
#[serde(skip_serializing_if = "Option::is_none")]
pub dataset_version_id: Option<&'a str>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct RemoveNeedsReviewEntriesParams<'a> {
pub dataset_id: &'a str,
pub entries: &'a [u32],
#[serde(skip_serializing_if = "Option::is_none")]
pub dataset_version_id: Option<&'a str>,
}