AutomationHandler

Struct AutomationHandler 

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

Handler for automation operations

Implementations§

Source§

impl AutomationHandler

Source

pub fn new(client: FilesClient) -> Self

Create a new automation handler

Source

pub async fn list( &self, cursor: Option<&str>, per_page: Option<i64>, automation: Option<&str>, ) -> Result<(Vec<AutomationEntity>, PaginationInfo)>

List all automations

Returns a paginated list of automation workflows with optional filtering by automation type.

§Arguments
  • cursor - Pagination cursor from previous response
  • per_page - Number of results per page (max 10,000)
  • automation - Filter by automation type (e.g., “copy_file”, “move_file”)
§Returns

A tuple containing:

  • Vector of AutomationEntity objects
  • PaginationInfo with cursors for next/previous pages
§Example
use files_sdk::{FilesClient, AutomationHandler};

let client = FilesClient::builder().api_key("key").build()?;
let handler = AutomationHandler::new(client);

// List all automations
let (automations, pagination) = handler.list(None, Some(50), None).await?;

for automation in automations {
    println!("{}: {} - Disabled: {}",
        automation.name.unwrap_or_default(),
        automation.automation.unwrap_or_default(),
        automation.disabled.unwrap_or(false));
}

// Filter by type
let (copy_automations, _) = handler.list(None, None, Some("copy_file")).await?;
Source

pub async fn get(&self, id: i64) -> Result<AutomationEntity>

Get details of a specific automation

§Arguments
  • id - Automation ID
§Returns

An AutomationEntity with complete automation configuration

§Example
use files_sdk::{FilesClient, AutomationHandler};

let client = FilesClient::builder().api_key("key").build()?;
let handler = AutomationHandler::new(client);

let automation = handler.get(12345).await?;
println!("Automation: {}", automation.name.unwrap_or_default());
println!("Schedule: {}", automation.human_readable_schedule.unwrap_or_default());
Source

pub async fn create( &self, automation: &str, source: Option<&str>, destination: Option<&str>, destinations: Option<Vec<String>>, interval: Option<&str>, path: Option<&str>, trigger: Option<&str>, ) -> Result<AutomationEntity>

Create a new automation workflow

Creates an automation that performs file operations automatically based on schedules or triggers.

§Arguments
  • automation - Type of automation: “copy_file”, “move_file”, “delete_file”, “create_folder”, “run_sync”, “import_file” (required)
  • source - Source path or glob pattern (e.g., “/uploads/*.pdf”)
  • destination - Single destination path
  • destinations - Multiple destination paths (use instead of destination)
  • interval - Schedule interval: “day”, “week”, “month”, “year”
  • path - Base path where automation operates
  • trigger - Trigger type: “daily”, “custom”, “webhook”, “email”, “action”, “interval”
§Returns

The newly created AutomationEntity

§Example
use files_sdk::{FilesClient, AutomationHandler};

let client = FilesClient::builder().api_key("key").build()?;
let handler = AutomationHandler::new(client);

// Create daily automation to archive PDFs
let automation = handler.create(
    "copy_file",
    Some("/uploads/*.pdf"),
    Some("/archive/daily/"),
    None,
    Some("day"),
    Some("/uploads"),
    Some("daily")
).await?;

println!("Created automation: {}", automation.id.unwrap());
Source

pub async fn update( &self, id: i64, source: Option<&str>, destination: Option<&str>, interval: Option<&str>, disabled: Option<bool>, ) -> Result<AutomationEntity>

Update an existing automation

Modifies automation configuration. Only provided fields are updated; omitted fields remain unchanged.

§Arguments
  • id - Automation ID to update
  • source - New source path or glob pattern
  • destination - New destination path
  • interval - New schedule interval
  • disabled - Enable (false) or disable (true) the automation
§Returns

The updated AutomationEntity

§Example
use files_sdk::{FilesClient, AutomationHandler};

let client = FilesClient::builder().api_key("key").build()?;
let handler = AutomationHandler::new(client);

// Disable an automation temporarily
let automation = handler.update(
    12345,
    None,
    None,
    None,
    Some(true)
).await?;

println!("Automation disabled");
Source

pub async fn delete(&self, id: i64) -> Result<()>

Delete an automation permanently

Removes the automation and stops all scheduled or triggered executions. This operation cannot be undone.

§Arguments
  • id - Automation ID to delete
§Example
use files_sdk::{FilesClient, AutomationHandler};

let client = FilesClient::builder().api_key("key").build()?;
let handler = AutomationHandler::new(client);

handler.delete(12345).await?;
println!("Automation deleted");
Source

pub async fn manual_run(&self, id: i64) -> Result<Value>

Manually trigger an automation execution

Immediately executes the automation regardless of its schedule or trigger settings. Useful for testing or running an automation on-demand.

§Arguments
  • id - Automation ID to execute
§Returns

JSON response with execution details and status

§Example
use files_sdk::{FilesClient, AutomationHandler};

let client = FilesClient::builder().api_key("key").build()?;
let handler = AutomationHandler::new(client);

// Manually trigger the automation to run now
let result = handler.manual_run(12345).await?;
println!("Automation executed: {:?}", result);

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. 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> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,