use crate::model::GolemErrorFailedToResumeWorker;
use crate::model::GolemErrorGetLatestVersionOfTemplateFailed;
use crate::model::GolemErrorInterrupted;
use crate::model::GolemErrorInvalidAccount;
use crate::model::GolemErrorInvalidRequest;
use crate::model::GolemErrorInvalidShardId;
use crate::model::GolemErrorNoValueInMessage;
use crate::model::GolemErrorParamTypeMismatch;
use crate::model::GolemErrorPreviousInvocationExited;
use crate::model::GolemErrorPreviousInvocationFailed;
use crate::model::GolemErrorPromiseAlreadyCompleted;
use crate::model::GolemErrorPromiseDropped;
use crate::model::GolemErrorPromiseNotFound;
use crate::model::GolemErrorRuntimeError;
use crate::model::GolemErrorTemplateDownloadFailed;
use crate::model::GolemErrorTemplateParseFailed;
use crate::model::GolemErrorUnexpectedOplogEntry;
use crate::model::GolemErrorUnknown;
use crate::model::GolemErrorValueMismatch;
use crate::model::GolemErrorWorkerAlreadyExists;
use crate::model::GolemErrorWorkerCreationFailed;
use crate::model::GolemErrorWorkerNotFound;
use serde::Deserialize;
use serde::Serialize;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(tag = "type")]
pub enum GolemError {
InvalidRequest(GolemErrorInvalidRequest),
WorkerAlreadyExists(GolemErrorWorkerAlreadyExists),
WorkerNotFound(GolemErrorWorkerNotFound),
WorkerCreationFailed(GolemErrorWorkerCreationFailed),
FailedToResumeWorker(GolemErrorFailedToResumeWorker),
TemplateDownloadFailed(GolemErrorTemplateDownloadFailed),
TemplateParseFailed(GolemErrorTemplateParseFailed),
GetLatestVersionOfTemplateFailed(GolemErrorGetLatestVersionOfTemplateFailed),
PromiseNotFound(GolemErrorPromiseNotFound),
PromiseDropped(GolemErrorPromiseDropped),
PromiseAlreadyCompleted(GolemErrorPromiseAlreadyCompleted),
Interrupted(GolemErrorInterrupted),
ParamTypeMismatch(GolemErrorParamTypeMismatch),
NoValueInMessage(GolemErrorNoValueInMessage),
ValueMismatch(GolemErrorValueMismatch),
UnexpectedOplogEntry(GolemErrorUnexpectedOplogEntry),
RuntimeError(GolemErrorRuntimeError),
InvalidShardId(GolemErrorInvalidShardId),
PreviousInvocationFailed(GolemErrorPreviousInvocationFailed),
PreviousInvocationExited(GolemErrorPreviousInvocationExited),
Unknown(GolemErrorUnknown),
InvalidAccount(GolemErrorInvalidAccount),
}