orign 0.2.3

A globally distributed container orchestrator
Documentation
use nebulous::models::{V1ResourceMeta, V1ResourceMetaRequest};
use nebulous::resources::v1::containers::models::{V1ContainerRequest, V1EnvVar};
use serde::{Deserialize, Serialize};

#[derive(Deserialize, Serialize, Clone, Default, Debug)]
pub struct V1ReplayBufferRequest {
    pub metadata: V1ResourceMetaRequest,
    pub train_every: Option<i32>,
    #[serde(default = "default_sample_n")]
    pub sample_n: i32,
    #[serde(default = "default_sample_strategy")]
    pub sample_strategy: String,
    pub train_job: V1ContainerRequest,
    pub num_epochs: i32,
}

#[derive(Deserialize, Serialize, Clone, Default, Debug)]
pub struct V1UpdateReplayBufferRequest {
    pub train_every: Option<i32>,
    pub sample_n: Option<i32>,
    pub sample_strategy: Option<String>,
    pub train_job: Option<V1ContainerRequest>,
    pub num_epochs: i32,
}

#[derive(Deserialize, Serialize, Clone, Default, Debug)]
pub struct V1ReplayBufferStatus {
    pub num_records: Option<i32>,
    pub train_idx: Option<i32>,
    pub num_train_jobs: Option<i32>,
    pub last_train_job: Option<String>,
    pub num_epochs: Option<i32>,
}

#[derive(Deserialize, Serialize, Clone, Default, Debug)]
pub struct V1ReplayBuffer {
    pub metadata: V1ResourceMeta,
    pub train_every: Option<i32>,
    pub sample_n: i32,
    pub sample_strategy: String,
    pub status: V1ReplayBufferStatus,
    pub train_job: V1ContainerRequest,
    pub num_epochs: i32,
}

fn default_sample_n() -> i32 {
    100
}

fn default_sample_strategy() -> String {
    "Random".to_string()
}

#[derive(Deserialize, Serialize, Clone, Default, Debug)]
pub struct V1ReplayBuffersResponse {
    pub buffers: Vec<V1ReplayBuffer>,
}

#[derive(Deserialize, Serialize, Clone, Default, Debug)]
pub struct V1ReplayBufferData {
    pub examples: Vec<serde_json::Value>,
    pub train: Option<bool>,
}