Table of Contents

Class GrpcCallStatusCodes

Namespace
Virtufin.Api.Services
Assembly
Virtufin.Api.dll

The status vocabulary Gateway.Invoke / InvokeJson report in InvokeResponse.status.

Every status the gateway emits MUST come from here. A downstream RpcException used to be reported as ex.StatusCode.ToString(), which is the PascalCase enum name ("NotFound") — so the same condition reached clients as NOT_FOUND when the gateway detected it and NotFound when the backend did. Use GrpcStatusCodeMap.ToGatewayStatus to translate.

public static class GrpcCallStatusCodes
Inheritance
GrpcCallStatusCodes
Inherited Members

Fields

Aborted

public const string Aborted = "ABORTED"

Field Value

string

AlreadyExists

public const string AlreadyExists = "ALREADY_EXISTS"

Field Value

string

Cancelled

public const string Cancelled = "CANCELLED"

Field Value

string

DeadlineExceeded

public const string DeadlineExceeded = "DEADLINE_EXCEEDED"

Field Value

string

FailedPrecondition

public const string FailedPrecondition = "FAILED_PRECONDITION"

Field Value

string

Internal

public const string Internal = "INTERNAL"

Field Value

string

InvalidArgument

gRPC's own name for this condition is INVALID_ARGUMENT.

public const string InvalidArgument = "INVALID_ARGUMENT"

Field Value

string

NotFound

public const string NotFound = "NOT_FOUND"

Field Value

string

Ok

public const string Ok = "OK"

Field Value

string

PermissionDenied

public const string PermissionDenied = "PERMISSION_DENIED"

Field Value

string

ResourceExhausted

public const string ResourceExhausted = "RESOURCE_EXHAUSTED"

Field Value

string

Unauthenticated

public const string Unauthenticated = "UNAUTHENTICATED"

Field Value

string

Unavailable

public const string Unavailable = "UNAVAILABLE"

Field Value

string

Unknown

public const string Unknown = "UNKNOWN"

Field Value

string

Unsupported

public const string Unsupported = "UNSUPPORTED"

Field Value

string

Methods

IndicatesBackendFault(string?)

Statuses that indicate the backend or the transport is unhealthy, as opposed to the caller having asked for something wrong. Only these should count towards opening the gateway circuit breaker — a client looping on a bad method name must not break the circuit for everyone else.

public static bool IndicatesBackendFault(string? status)

Parameters

status string

Returns

bool