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};

/// ThreadSearchRequest : Payload for listing threads.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ThreadSearchRequest {
    /// List of thread IDs to include. Others are excluded.
    #[serde(rename = "ids", skip_serializing_if = "Option::is_none")]
    pub ids: Option<Vec<uuid::Uuid>>,
    /// Thread metadata to filter on.
    #[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
    pub metadata: Option<serde_json::Value>,
    /// State values to filter on.
    #[serde(rename = "values", skip_serializing_if = "Option::is_none")]
    pub values: Option<serde_json::Value>,
    /// Thread status to filter on.
    #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
    pub status: Option<Status>,
    /// Maximum number to return.
    #[serde(rename = "limit", skip_serializing_if = "Option::is_none")]
    pub limit: Option<i32>,
    /// Offset to start from.
    #[serde(rename = "offset", skip_serializing_if = "Option::is_none")]
    pub offset: Option<i32>,
    /// Sort by field.
    #[serde(rename = "sort_by", skip_serializing_if = "Option::is_none")]
    pub sort_by: Option<SortBy>,
    /// Sort order.
    #[serde(rename = "sort_order", skip_serializing_if = "Option::is_none")]
    pub sort_order: Option<SortOrder>,
    /// Specify which fields to return. If not provided, all fields are returned.
    #[serde(rename = "select", skip_serializing_if = "Option::is_none")]
    pub select: Option<Vec<Select>>,
}

impl ThreadSearchRequest {
    /// Payload for listing threads.
    pub fn new() -> ThreadSearchRequest {
        ThreadSearchRequest {
            ids: None,
            metadata: None,
            values: None,
            status: None,
            limit: None,
            offset: None,
            sort_by: None,
            sort_order: None,
            select: None,
        }
    }
}
/// Thread status to filter on.
#[derive(
    Clone, Copy, Debug, Default, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize,
)]
pub enum Status {
    #[serde(rename = "idle")]
    #[default]
    Idle,
    #[serde(rename = "busy")]
    Busy,
    #[serde(rename = "interrupted")]
    Interrupted,
    #[serde(rename = "error")]
    Error,
}
/// Sort by field.
#[derive(
    Clone, Copy, Debug, Default, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize,
)]
pub enum SortBy {
    #[serde(rename = "thread_id")]
    #[default]
    ThreadId,
    #[serde(rename = "status")]
    Status,
    #[serde(rename = "created_at")]
    CreatedAt,
    #[serde(rename = "updated_at")]
    UpdatedAt,
}
/// Sort order.
#[derive(
    Clone, Copy, Debug, Default, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize,
)]
pub enum SortOrder {
    #[serde(rename = "asc")]
    #[default]
    Asc,
    #[serde(rename = "desc")]
    Desc,
}
/// Specify which fields to return. If not provided, all fields are returned.
#[derive(
    Clone, Copy, Debug, Default, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize,
)]
pub enum Select {
    #[serde(rename = "thread_id")]
    #[default]
    ThreadId,
    #[serde(rename = "created_at")]
    CreatedAt,
    #[serde(rename = "updated_at")]
    UpdatedAt,
    #[serde(rename = "metadata")]
    Metadata,
    #[serde(rename = "config")]
    Config,
    #[serde(rename = "context")]
    Context,
    #[serde(rename = "status")]
    Status,
    #[serde(rename = "values")]
    Values,
    #[serde(rename = "interrupts")]
    Interrupts,
}