Skip to main content

ApiError

Enum ApiError 

Source
pub enum ApiError {
Show 29 variants RunNotFound(Uuid), StepNotFound(Uuid), WorkflowNotFound(String), BadRequest(String), Conflict(String), Unauthorized, InvalidCredentials, DuplicateEmail, DuplicateUsername, ApiKeyNotFound(Uuid), UserNotFound(Uuid), Forbidden, SecretNotFound(String), InsufficientScope, IdempotencyKeyConflict(Uuid), MonthlyBudgetExceeded(String), ArtifactNotFound(String), ArtifactStorageUnavailable, ArtifactTooLarge, ScheduleNotFound(Uuid), DelegationNotFound(Uuid), ProviderAccountNotFound(String), AccountCredentialRejected(String), Store(StoreError), Internal(String), BadGateway(String), RegistryNotFound, RegistryUnreachable, InvalidInput(Vec<String>),
}
Expand description

Error type for REST API operations.

Maps to appropriate HTTP status codes and error codes in the JSON response.

§Examples

use ironflow_api::error::ApiError;
use uuid::Uuid;

let err = ApiError::RunNotFound(Uuid::nil());
assert_eq!(err.to_string(), "run not found");

Variants§

§

RunNotFound(Uuid)

The requested run does not exist (404).

§

StepNotFound(Uuid)

The requested step does not exist (404).

§

WorkflowNotFound(String)

Workflow not found (404).

§

BadRequest(String)

Bad request: invalid input (400).

§

Conflict(String)

The request conflicts with the current state of the resource (409).

§

Unauthorized

Authentication required (401).

§

InvalidCredentials

Invalid credentials (401).

§

DuplicateEmail

Email already taken (409).

§

DuplicateUsername

Username already taken (409).

§

ApiKeyNotFound(Uuid)

API key not found (404).

§

UserNotFound(Uuid)

User not found (404).

§

Forbidden

Insufficient permissions for this action (403).

§

SecretNotFound(String)

Secret not found (404).

§

InsufficientScope

Insufficient scope (403).

§

IdempotencyKeyConflict(Uuid)

The idempotency key is already bound to a different request (409).

Carries the run holding the key so the client can inspect it.

§

MonthlyBudgetExceeded(String)

The global monthly cost quota is exhausted (429).

Only blocks the creation of new runs; runs already in flight continue.

§

ArtifactNotFound(String)

The requested artifact does not exist (404).

§

ArtifactStorageUnavailable

No artifact storage backend is configured (501).

Every other endpoint keeps working: an upgraded deployment that has not opted into artifacts is degraded here only.

§

ArtifactTooLarge

The uploaded payload exceeded the artifact size limit (413).

§

ScheduleNotFound(Uuid)

Schedule not found (404).

§

DelegationNotFound(Uuid)

Approval delegation not found (404).

§

ProviderAccountNotFound(String)

Provider Account not found (404), by id or name.

§

AccountCredentialRejected(String)

The account credential was rejected, by format or by the provider (422).

§

Store(StoreError)

Store operation failed (500).

§

Internal(String)

Internal server error (500).

§

BadGateway(String)

An upstream service is unreachable or returned an error (502).

§

RegistryNotFound

No template registry exists at the configured URL (404).

§

RegistryUnreachable

The template registry host cannot be reached (502).

§

InvalidInput(Vec<String>)

A submitted value does not match the expected JSON schema (422).

Carries one human-readable message per violation, returned to the caller under details.errors.

Trait Implementations§

Source§

impl Debug for ApiError

Source§

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

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

impl Display for ApiError

Source§

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

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

impl Error for ApiError

1.30.0 · Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl From<StoreError> for ApiError

Source§

fn from(e: StoreError) -> Self

Converts to this type from the input type.
Source§

impl IntoResponse for ApiError

Source§

fn into_response(self) -> Response

Create a response.

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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: Sized + 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: Sized + 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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> ValidateIp for T
where T: ToString,

Source§

fn validate_ipv4(&self) -> bool

Validates whether the given string is an IP V4
Source§

fn validate_ipv6(&self) -> bool

Validates whether the given string is an IP V6
Source§

fn validate_ip(&self) -> bool

Validates whether the given string is an IP
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