Skip to main content

VariableSchema

Struct VariableSchema 

Source
pub struct VariableSchema { /* private fields */ }
Expand description

Variable schema for workflow variables using JSON Schema format.

This allows flows to declare required variables with their types, default values, descriptions, secret annotations, and environment variable mappings.

Example:

variables:
  type: object
  properties:
    api_key:
      type: string
      is_secret: true
      env_var: "OPENAI_API_KEY"
      description: "OpenAI API key"
    temperature:
      type: number
      default: 0.7
      minimum: 0
      maximum: 2
  required: ["api_key"]

Implementations§

Source§

impl VariableSchema

Source

pub fn new(schema: SchemaRef) -> Self

Create a new variable schema from a JSON Schema.

Source

pub fn secrets(&self) -> &Secrets

Source

pub fn variables(&self) -> &[String]

Return variable names from the schema properties.

Source

pub fn env_var_name(&self, variable_name: &str) -> Option<&str>

Get the environment variable name for a given variable, if annotated.

Source

pub fn env_var_map(&self) -> &HashMap<String, String>

Get the full mapping of variable names to environment variable names.

Source

pub fn required_variables(&self) -> impl Iterator<Item = &str> + '_

Get the list of required variables.

Source

pub fn default_value(&self, variable_name: &str) -> Option<ValueRef>

Get the default value for a variable, if specified.

Source

pub fn validate_variables( &self, variables: &HashMap<String, Value>, ) -> Result<(), VariableValidationError>

Validate that provided variable values match the schema requirements.

Trait Implementations§

Source§

impl Clone for VariableSchema

Source§

fn clone(&self) -> VariableSchema

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for VariableSchema

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for VariableSchema

Source§

fn default() -> VariableSchema

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for VariableSchema

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl From<SchemaRef> for VariableSchema

Source§

fn from(schema: SchemaRef) -> Self

Converts to this type from the input type.
Source§

impl From<VariableSchema> for SchemaRef

Source§

fn from(var_schema: VariableSchema) -> Self

Converts to this type from the input type.
Source§

impl JsonSchema for VariableSchema

Source§

fn schema_name() -> Cow<'static, str>

The name of the generated JSON Schema. Read more
Source§

fn json_schema(generator: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
Source§

fn inline_schema() -> bool

Whether JSON Schemas generated for this type should be included directly in parent schemas, rather than being re-used where possible using the $ref keyword. Read more
Source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
Source§

impl PartialEq for VariableSchema

Source§

fn eq(&self, other: &VariableSchema) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for VariableSchema

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for VariableSchema

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> Erased for T