langgraph-api 0.1.1

Rust Client API of LangGraph
Documentation
/*
 * LangSmith Deployment
 *
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 0.1.0
 *
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

/// RunCreateStateful : Payload for creating a run.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct RunCreateStateful {
    #[serde(rename = "assistant_id")]
    pub assistant_id: Box<models::RunCreateStatefulAssistantId>,
    /// The checkpoint to resume from.
    #[serde(rename = "checkpoint", skip_serializing_if = "Option::is_none")]
    pub checkpoint: Option<models::CheckpointConfig>,
    #[serde(
        rename = "input",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub input: Option<Option<Box<models::Input1>>>,
    #[serde(
        rename = "command",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub command: Option<Option<Box<models::Command>>>,
    /// Metadata to assign to the run.
    #[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
    pub metadata: Option<serde_json::Value>,
    #[serde(rename = "config", skip_serializing_if = "Option::is_none")]
    pub config: Option<Box<models::Config3>>,
    /// Static context added to the assistant.
    #[serde(rename = "context", skip_serializing_if = "Option::is_none")]
    pub context: Option<serde_json::Value>,
    /// Webhook to call after LangGraph API call is done.
    #[serde(rename = "webhook", skip_serializing_if = "Option::is_none")]
    pub webhook: Option<String>,
    #[serde(rename = "interrupt_before", skip_serializing_if = "Option::is_none")]
    pub interrupt_before: Option<Box<models::InterruptBefore1>>,
    #[serde(rename = "interrupt_after", skip_serializing_if = "Option::is_none")]
    pub interrupt_after: Option<Box<models::InterruptAfter1>>,
    #[serde(rename = "stream_mode", skip_serializing_if = "Option::is_none")]
    pub stream_mode: Option<Box<models::StreamMode>>,
    /// Whether to stream output from subgraphs.
    #[serde(rename = "stream_subgraphs", skip_serializing_if = "Option::is_none")]
    pub stream_subgraphs: Option<bool>,
    /// Whether to persist the stream chunks in order to resume the stream later.
    #[serde(rename = "stream_resumable", skip_serializing_if = "Option::is_none")]
    pub stream_resumable: Option<bool>,
    /// The disconnect mode to use. Must be one of 'cancel' or 'continue'.
    #[serde(rename = "on_disconnect", skip_serializing_if = "Option::is_none")]
    pub on_disconnect: Option<OnDisconnect>,
    /// Feedback keys to assign to run.
    #[serde(rename = "feedback_keys", skip_serializing_if = "Option::is_none")]
    pub feedback_keys: Option<Vec<String>>,
    /// Multitask strategy to use. Must be one of 'reject', 'interrupt', 'rollback', or 'enqueue'.
    #[serde(rename = "multitask_strategy", skip_serializing_if = "Option::is_none")]
    pub multitask_strategy: Option<MultitaskStrategy>,
    /// How to handle missing thread. Must be either 'reject' (raise error if missing), or 'create' (create new thread).
    #[serde(rename = "if_not_exists", skip_serializing_if = "Option::is_none")]
    pub if_not_exists: Option<IfNotExists>,
    /// The number of seconds to wait before starting the run. Use to schedule future runs.
    #[serde(rename = "after_seconds", skip_serializing_if = "Option::is_none")]
    pub after_seconds: Option<f64>,
    /// Whether to checkpoint during the run.
    #[serde(rename = "checkpoint_during", skip_serializing_if = "Option::is_none")]
    pub checkpoint_during: Option<bool>,
    /// Durability level for the run. Must be one of 'sync', 'async', or 'exit'.
    #[serde(rename = "durability", skip_serializing_if = "Option::is_none")]
    pub durability: Option<Durability>,
}

impl RunCreateStateful {
    /// Payload for creating a run.
    pub fn new(assistant_id: models::RunCreateStatefulAssistantId) -> RunCreateStateful {
        RunCreateStateful {
            assistant_id: Box::new(assistant_id),
            checkpoint: None,
            input: None,
            command: None,
            metadata: None,
            config: None,
            context: None,
            webhook: None,
            interrupt_before: None,
            interrupt_after: None,
            stream_mode: None,
            stream_subgraphs: None,
            stream_resumable: None,
            on_disconnect: None,
            feedback_keys: None,
            multitask_strategy: None,
            if_not_exists: None,
            after_seconds: None,
            checkpoint_during: None,
            durability: None,
        }
    }
}
/// The disconnect mode to use. Must be one of 'cancel' or 'continue'.
#[derive(
    Clone, Copy, Debug, Default, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize,
)]
pub enum OnDisconnect {
    #[serde(rename = "cancel")]
    #[default]
    Cancel,
    #[serde(rename = "continue")]
    Continue,
}
/// Multitask strategy to use. Must be one of 'reject', 'interrupt', 'rollback', or 'enqueue'.
#[derive(
    Clone, Copy, Debug, Default, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize,
)]
pub enum MultitaskStrategy {
    #[serde(rename = "reject")]
    #[default]
    Reject,
    #[serde(rename = "rollback")]
    Rollback,
    #[serde(rename = "interrupt")]
    Interrupt,
    #[serde(rename = "enqueue")]
    Enqueue,
}
/// How to handle missing thread. Must be either 'reject' (raise error if missing), or 'create' (create new thread).
#[derive(
    Clone, Copy, Debug, Default, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize,
)]
pub enum IfNotExists {
    #[serde(rename = "create")]
    #[default]
    Create,
    #[serde(rename = "reject")]
    Reject,
}
/// Durability level for the run. Must be one of 'sync', 'async', or 'exit'.
#[derive(
    Clone, Copy, Debug, Default, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize,
)]
pub enum Durability {
    #[serde(rename = "sync")]
    #[default]
    Sync,
    #[serde(rename = "async")]
    Async,
    #[serde(rename = "exit")]
    Exit,
}