use crate::client::{
rpc::{ExecutionLocationProvider, LauncherConfig, LauncherSpec, ParameterDefinitions},
DecthingsParameterProvider,
};
use serde::Serialize;
#[derive(Debug, Clone)]
pub struct StateKeyData<'a, D: AsRef<[u8]>> {
pub key: &'a str,
pub data: D,
}
impl<D: AsRef<[u8]>> serde::Serialize for StateKeyData<'_, D> {
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", tag = "method")]
#[serde(bound(serialize = ""))]
pub enum CreateModelInitialState<'a, D: AsRef<[u8]>> {
Copy,
#[serde(rename_all = "camelCase")]
Create {
name: &'a str,
params: Vec<DecthingsParameterProvider<'a>>,
launcher_spec: &'a LauncherSpec,
},
#[serde(rename_all = "camelCase")]
Upload {
name: &'a str,
#[serde(rename = "stateKeyNames")]
data: &'a [StateKeyData<'a, D>],
},
}
impl<'a> CreateModelInitialState<'a, &'static [u8]> {
pub fn copy() -> Self {
Self::Copy
}
}
impl<'a> CreateModelInitialState<'a, &'static [u8]> {
pub fn create(
name: &'a str,
params: Vec<DecthingsParameterProvider<'a>>,
launcher_spec: &'a LauncherSpec,
) -> Self {
Self::Create {
name,
params,
launcher_spec,
}
}
}
impl<'a, D: AsRef<[u8]>> CreateModelInitialState<'a, D> {
pub fn upload(name: &'a str, data: &'a [StateKeyData<'a, D>]) -> Self {
Self::Upload { name, data }
}
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase", tag = "type")]
#[serde(bound(serialize = ""))]
pub enum CreateModelOptions<'a, D: AsRef<[u8]>> {
#[serde(rename_all = "camelCase")]
Code {
tags: Option<&'a [super::super::TagProvider<'a>]>,
#[serde(skip_serializing_if = "Option::is_none")]
parameter_definitions: Option<ParameterDefinitions>,
language: super::response::Language,
#[serde(skip_serializing_if = "Option::is_none")]
preset: Option<&'a str>,
#[serde(skip_serializing_if = "Option::is_none")]
wasm: Option<bool>,
},
#[serde(rename_all = "camelCase")]
Upload {
tags: Option<&'a [super::super::TagProvider<'a>]>,
#[serde(skip_serializing_if = "Option::is_none")]
parameter_definitions: Option<ParameterDefinitions>,
format: &'a str,
#[serde(skip_serializing)]
data: &'a [u8],
},
#[serde(rename_all = "camelCase")]
BasedOnModelSnapshot {
tags: Option<&'a [super::super::TagProvider<'a>]>,
model_id: &'a str,
snapshot_id: &'a str,
initial_state: CreateModelInitialState<'a, D>,
},
#[serde(rename_all = "camelCase")]
FromExisting {
tags: Option<&'a [super::super::TagProvider<'a>]>,
model_id: &'a str,
#[serde(skip_serializing_if = "Option::is_none")]
snapshot_id: Option<&'a str>,
},
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
#[serde(bound(serialize = ""))]
pub struct CreateModelParams<'a, D: AsRef<[u8]>> {
pub name: &'a str,
pub description: &'a str,
pub options: CreateModelOptions<'a, D>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct WaitForModelToBeCreatedParams<'a> {
pub model_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DeleteModelParams<'a> {
pub model_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SnapshotModelParams<'a> {
pub model_id: &'a str,
pub snapshot_name: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct UpdateSnapshotProperties<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<&'a str>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct UpdateSnapshotParams<'a> {
pub model_id: &'a str,
pub snapshot_id: &'a str,
pub properties: UpdateSnapshotProperties<'a>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DeleteSnapshotParams<'a> {
pub model_id: &'a str,
pub snapshot_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct OptionalDefaultLauncherSpecs<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
pub create_state: Option<&'a LauncherSpec>,
#[serde(skip_serializing_if = "Option::is_none")]
pub evaluate: Option<&'a LauncherSpec>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct UpdateModelProperties<'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 tags: Option<&'a [super::super::TagProvider<'a>]>,
#[serde(skip_serializing_if = "Option::is_none")]
pub parameter_definitions: Option<ParameterDefinitions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub default_launcher_specs: Option<OptionalDefaultLauncherSpecs<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_durations_seconds: Option<super::response::MaxDurationsSeconds>,
#[serde(skip_serializing_if = "Option::is_none")]
pub launcher_config: Option<&'a LauncherConfig>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct UpdateModelParams<'a> {
pub model_id: &'a str,
pub properties: UpdateModelProperties<'a>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetModelsParams<'a, S: AsRef<str>> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(serialize_with = "super::super::serialize_option_asref_str_seq")]
pub model_ids: Option<&'a [S]>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SetFilesystemSizeParams<'a> {
pub model_id: &'a str,
pub new_filesystem_size_mebibytes: u32,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetFilesystemUsageParams<'a> {
pub model_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CreateStateMountModel<'a> {
pub model_id: &'a str,
#[serde(skip_serializing_if = "Option::is_none")]
pub state_id: Option<&'a str>,
#[serde(skip_serializing_if = "Option::is_none")]
pub snapshot_id: Option<&'a str>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CreateStateParams<'a> {
pub model_id: &'a str,
pub name: &'a str,
pub params: Vec<DecthingsParameterProvider<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub mount_models: Option<&'a [CreateStateMountModel<'a>]>,
pub execution_location: ExecutionLocationProvider<'a>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct MountModel<'a> {
pub model_id: &'a str,
#[serde(skip_serializing_if = "Option::is_none")]
pub snapshot_id: Option<&'a str>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct UploadStateParams<'a, S: AsRef<str>, D: AsRef<[u8]>> {
pub model_id: &'a str,
pub name: &'a str,
#[serde(skip_serializing)]
pub data: &'a [StateKeyData<'a, D>],
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(serialize_with = "super::super::serialize_option_asref_str_seq")]
pub delete_states: Option<&'a [S]>,
#[serde(skip_serializing_if = "Option::is_none")]
pub mount_models: Option<&'a [MountModel<'a>]>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CancelCreateStateParams<'a> {
pub model_id: &'a str,
pub state_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetCreatingStatesParams<'a> {
pub model_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct WaitForStateToBeCreatedParams<'a> {
pub model_id: &'a str,
pub state_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct UpdateModelStateProperties<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<&'a str>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct UpdateModelStateParams<'a> {
pub model_id: &'a str,
pub state_id: &'a str,
pub properties: UpdateModelStateProperties<'a>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SetActiveModelStateParams<'a> {
pub model_id: &'a str,
pub state_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DeleteModelStateParams<'a> {
pub model_id: &'a str,
pub state_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetModelStateParams<'a, S: AsRef<str>> {
pub model_id: &'a str,
#[serde(skip_serializing_if = "Option::is_none")]
pub state_id: Option<&'a str>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(serialize_with = "super::super::serialize_option_asref_str_seq")]
pub keys: Option<&'a [S]>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetSnapshotStateParams<'a, S: AsRef<str>> {
pub model_id: &'a str,
pub snapshot_id: &'a str,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(serialize_with = "super::super::serialize_option_asref_str_seq")]
pub keys: Option<&'a [S]>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct TrainParams<'a> {
pub model_id: &'a str,
#[serde(skip_serializing_if = "Option::is_none")]
pub state_id: Option<&'a str>,
pub new_state_name: &'a str,
pub params: Vec<DecthingsParameterProvider<'a>>,
pub execution_location: ExecutionLocationProvider<'a>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetTrainingStatusParams<'a> {
pub model_id: &'a str,
pub training_session_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct TrainingMetricsToFetch<'a> {
pub name: &'a str,
pub start_index: u32,
pub amount: u32,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetTrainingMetricsParams<'a> {
pub model_id: &'a str,
pub training_session_id: &'a str,
pub metrics: &'a [TrainingMetricsToFetch<'a>],
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetTrainingSysinfoParams<'a> {
pub model_id: &'a str,
pub training_session_id: &'a str,
#[serde(skip_serializing_if = "Option::is_none")]
pub from_timestamp: Option<i64>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CancelTrainingSessionParams<'a> {
pub model_id: &'a str,
pub training_session_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ClearPreviousTrainingSessionParams<'a> {
pub model_id: &'a str,
pub training_session_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct EvaluateParams<'a> {
pub model_id: &'a str,
pub params: Vec<DecthingsParameterProvider<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub snapshot_id: Option<&'a str>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetEvaluationsParams<'a> {
pub model_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetFinishedEvaluationResultParams<'a> {
pub model_id: &'a str,
pub evaluation_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CancelEvaluationParams<'a> {
pub model_id: &'a str,
pub evaluation_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct PersistentLauncherToUse<'a> {
pub persistent_launcher_id: &'a str,
pub level: super::response::UsedPersistentLauncherLevel,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SetUsedPersistentLaunchersForEvaluateParams<'a> {
pub model_id: &'a str,
pub persistent_launchers: &'a [PersistentLauncherToUse<'a>],
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetUsedPersistentLaunchersForEvaluateParams<'a> {
pub model_id: &'a str,
}