pub struct CreateJobRequest {Show 16 fields
pub name: String,
pub description: Option<String>,
pub algorithm: String,
pub robot_id: String,
pub project_id: Option<String>,
pub project_name: Option<String>,
pub env_name: Option<String>,
pub task_name: Option<String>,
pub total_timesteps: Option<i64>,
pub n_steps: Option<i64>,
pub n_epochs: Option<i64>,
pub learning_rate: Option<f64>,
pub patience: Option<i64>,
pub min_delta: Option<f64>,
pub config_yaml: Option<String>,
pub resume_run_id: Option<String>,
}Expand description
Request body for POST {control_plane_url}/api/model-deployments/jobs - field-for-field the
same shape as mecha10-api/src/jobs/types.rs::CreateJobRequest (and, transitively,
packages/dashboard’s types/ml-training.ts CreateJobRequest/buildCreateJobRequest,
PR #278/LAB-1431). Deliberately duplicated rather than shared via a crate dependency - the
CLI and API are different deployables and this struct is the wire contract, not shared code.
Fields§
§name: String§description: Option<String>§algorithm: String§robot_id: StringFK to the robots entity (LAB-2724) - required server-side since Job got a real
robot_id column; omitting it fails job creation with a 422 “missing field robot_id”.
project_id: Option<String>§project_name: Option<String>The project’s real name (mecha10.json’s name field), forwarded to train.yml’s
project_name input so entrypoint.sh uses it for mecha10-launcher start --project-name instead of a hardcoded placeholder - mirrors mecha10 run remote’s
MECHA10_PROJECT_NAME convention. Distinct from project_id above (an MLflow
experiment-prefix concern, not a robot identity concern).
env_name: Option<String>§task_name: Option<String>§total_timesteps: Option<i64>§n_steps: Option<i64>§n_epochs: Option<i64>§learning_rate: Option<f64>§patience: Option<i64>§min_delta: Option<f64>§config_yaml: Option<String>Raw content of the job’s own configs/rl/jobs/<name>.yml file, read off local disk right
here at job-creation time (see to_create_job_request) and forwarded by mecha10-api into
train.yml’s config_yaml_b64 input - the actual training config the trainer container
runs with. This replaces relying on the trainer container re-pulling that file at runtime
via mecha10-launcher, which raced the container’s own startup and silently no-op’d on
failure (mecha10-rl’s rl-trainer/entrypoint.sh doc comment). LAB-2970: the job file
itself is now the whole training config (no more separate configs/rl/local.yml), so this
is simply the job file’s own bytes, unchanged in shape/semantics from before.
resume_run_id: Option<String>MLflow run ID to resume from - forwarded to mecha10-api’s CreateJobRequest, which
dispatches resume-run.yml instead of train.yml when this is non-empty (see
mecha10-api/src/jobs/handlers.rs::resume_flow_inputs).
Trait Implementations§
Source§impl Clone for CreateJobRequest
impl Clone for CreateJobRequest
Source§impl Debug for CreateJobRequest
impl Debug for CreateJobRequest
Auto Trait Implementations§
impl Freeze for CreateJobRequest
impl RefUnwindSafe for CreateJobRequest
impl Send for CreateJobRequest
impl Sync for CreateJobRequest
impl Unpin for CreateJobRequest
impl UnsafeUnpin for CreateJobRequest
impl UnwindSafe for CreateJobRequest
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.