Package google.rpc

Indice

BadRequest

Descrive le violazioni in una richiesta del cliente. Questo tipo di errore è incentrato sugli aspetti sintattici della richiesta.

Campi
field_violations[]

FieldViolation

Descrive tutte le violazioni in una richiesta del cliente.

FieldViolation

Un tipo di messaggio utilizzato per descrivere un singolo campo di richiesta non valido.

Campi
field

string

Un percorso che indirizza a un campo nel corpo della richiesta. Il valore sarà una sequenza di identificatori separati da punti che identificano un campo del buffer di protocollo.

Considera quanto segue:

message CreateContactRequest {
  message EmailAddress {
    enum Type {
      TYPE_UNSPECIFIED = 0;
      HOME = 1;
      WORK = 2;
    }

    optional string email = 1;
    repeated EmailType type = 2;
  }

  string full_name = 1;
  repeated EmailAddress email_addresses = 2;
}

In questo esempio, nel protocollo field potrebbe assumere uno dei seguenti valori:

  • full_name per una violazione del valore full_name
  • email_addresses[1].email per una violazione nel campo email del primo messaggio email_addresses
  • email_addresses[3].type[2] per una violazione nel secondo valore type nel terzo messaggio email_addresses.

In JSON, gli stessi valori sono rappresentati come:

  • fullName per una violazione del valore fullName
  • emailAddresses[1].email per una violazione nel campo email del primo messaggio emailAddresses
  • emailAddresses[3].type[2] per una violazione nel secondo valore type nel terzo messaggio emailAddresses.
description

string

Una descrizione del motivo per cui l'elemento della richiesta non è valido.

Codice

I codici di errore canonici per le API gRPC.

A volte potrebbero essere applicati più codici di errore. I servizi dovrebbero restituire il codice di errore più specifico applicabile. Ad esempio, preferisci OUT_OF_RANGE rispetto a FAILED_PRECONDITION se si applicano entrambi i codici. Analogamente, preferisci NOT_FOUND o ALREADY_EXISTS rispetto a FAILED_PRECONDITION.

Enum
OK

Non è un errore; viene restituito se l'operazione è andata a buon fine.

Mappatura HTTP: 200 OK

CANCELLED

L'operazione è stata annullata, in genere dal chiamante.

Mappatura HTTP: richiesta chiusa client 499

UNKNOWN

Errore sconosciuto. Ad esempio, questo errore può essere restituito quando un valore Status ricevuto da un altro spazio di indirizzi appartiene a uno spazio di errore non noto in questo spazio degli indirizzi. Anche gli errori generati dalle API che non restituiscono informazioni sufficienti sull'errore possono essere convertiti in questo errore.

Mappatura HTTP: errore interno del server 500

INVALID_ARGUMENT

Il client ha specificato un argomento non valido. Tieni presente che è diverso da FAILED_PRECONDITION. INVALID_ARGUMENT indica gli argomenti problematici indipendentemente dallo stato del sistema (ad esempio, un nome di file non corretto).

Mappatura HTTP: 400 richiesta non valida

DEADLINE_EXCEEDED

Il termine è scaduto prima del completamento dell'operazione. Per le operazioni che cambiano lo stato del sistema, questo errore potrebbe essere restituito anche se l'operazione è stata completata correttamente. Ad esempio, una risposta corretta da un server potrebbe essere ritardata abbastanza a lungo da far scadere la scadenza.

Mappatura HTTP: timeout del gateway 504

NOT_FOUND

Impossibile trovare un'entità richiesta (ad es. un file o una directory).

Nota per gli sviluppatori di server: se una richiesta viene rifiutata per un'intera classe di utenti, ad esempio mediante implementazione graduale di funzionalità o lista consentita non documentata, è possibile che venga utilizzato NOT_FOUND. Se una richiesta viene rifiutata per alcuni utenti di una classe di utenti, ad esempio controllo dell'accesso basato sull'utente, è necessario utilizzare PERMISSION_DENIED.

Mappatura HTTP: 404 non trovato

ALREADY_EXISTS

L'entità che un client ha tentato di creare (ad es. un file o una directory) esiste già.

Mappatura HTTP: conflitto 409

PERMISSION_DENIED

Il chiamante non dispone dell'autorizzazione per eseguire l'operazione specificata. Non utilizzare PERMISSION_DENIED per i rifiuti causati dall'esaurimento di alcune risorse (utilizza RESOURCE_EXHAUSTED per questi errori). Non utilizzare PERMISSION_DENIED se non è possibile identificare il chiamante (utilizza UNAUTHENTICATED per questi errori). Questo codice di errore non implica che la richiesta sia valida o che l'entità richiesta esista o soddisfa altre condizioni preliminari.

Mappatura HTTP: 403 accesso negato

UNAUTHENTICATED

La richiesta non ha credenziali di autenticazione valide per l'operazione.

Mappatura HTTP: 401 Autorizzazione non autorizzata

RESOURCE_EXHAUSTED

Alcune risorse sono esaurite, forse una quota per utente o forse l'intero file system ha esaurito lo spazio.

Mappatura HTTP: 429 Troppe richieste

FAILED_PRECONDITION

L'operazione è stata rifiutata perché il sistema non è nello stato necessario per l'esecuzione. Ad esempio, la directory da eliminare non è vuota, viene applicata un'operazione rmdir a una non directory e così via.

Gli implementatori del servizio possono utilizzare le seguenti linee guida per scegliere tra FAILED_PRECONDITION, ABORTED e UNAVAILABLE: (a) usa UNAVAILABLE se il client può riprovare solo con la chiamata non riuscita. (b) Utilizza ABORTED se il client deve riprovare a un livello superiore. Ad esempio, quando un test e un set specificato dal client ha esito negativo, il che indica che il client deve riavviare una sequenza di lettura, modifica e scrittura. (c) Usa FAILED_PRECONDITION se il client non deve riprovare finché lo stato del sistema non è stato risolto esplicitamente. Ad esempio, se un comando "rmdir" non riesce perché la directory non è vuota, deve essere restituito FAILED_PRECONDITION poiché il client non dovrebbe riprovare a meno che i file non vengano eliminati dalla directory.

Mappatura HTTP: 400 richiesta non valida

ABORTED

L'operazione è stata interrotta, generalmente a causa di un problema di contemporaneità, come un errore del controllo del sequenziatore o l'interruzione della transazione.

Consulta le linee guida precedenti per decidere tra FAILED_PRECONDITION, ABORTED e UNAVAILABLE.

Mappatura HTTP: conflitto 409

OUT_OF_RANGE

Si è tentato di eseguire l'operazione oltre l'intervallo valido. Ad esempio, cercare o leggere la fine del file.

A differenza di INVALID_ARGUMENT, questo errore indica un problema che può essere risolto se lo stato del sistema cambia. Ad esempio, un file system a 32 bit genererà INVALID_ARGUMENT se viene richiesto di leggere con un offset che non è compreso nell'intervallo [0,2^32-1], ma genererà OUT_OF_RANGE se viene chiesto di leggere da un offset oltre la dimensione attuale del file.

Esiste una leggera sovrapposizione tra FAILED_PRECONDITION e OUT_OF_RANGE. Ti consigliamo di utilizzare OUT_OF_RANGE (l'errore più specifico) quando applicabile, in modo che i chiamanti che eseguono l'iterazione in uno spazio possano facilmente cercare un errore OUT_OF_RANGE per rilevare quando hanno terminato.

Mappatura HTTP: 400 richiesta non valida

UNIMPLEMENTED

L'operazione non è implementata o non è supportata/abilitata in questo servizio.

Mappatura HTTP: 501 non implementata

INTERNAL

Errori interni. Ciò significa che alcuni elementi invarianti previsti dal sistema sottostante sono stati danneggiati. Questo codice di errore è riservato a errori gravi.

Mappatura HTTP: errore interno del server 500

UNAVAILABLE

Il servizio non è al momento disponibile. Molto probabilmente si tratta di una condizione transitoria, che può essere corretta riprovando con un backoff. Tieni presente che non è sempre sicuro ritentare le operazioni non idempotenti.

Consulta le linee guida precedenti per decidere tra FAILED_PRECONDITION, ABORTED e UNAVAILABLE.

Mappatura HTTP: servizio 503 non disponibile

DATA_LOSS

Perdita o danneggiamento dei dati non recuperabili.

Mappatura HTTP: errore interno del server 500

Stato

Il tipo Status definisce un modello di errore logico adatto a diversi ambienti di programmazione, tra cui API REST e API RPC. È utilizzato da gRPC. Ogni messaggio Status contiene tre tipi di dati: il codice, il messaggio e i dettagli dell'errore.

Per saperne di più su questo modello di errore e su come utilizzarlo, consulta la Guida alla progettazione delle API.

Campi
code

int32

Il codice di stato, che dovrebbe essere un valore enum di google.rpc.Code.

message

string

Un messaggio di errore rivolto agli sviluppatori, che dovrebbe essere in inglese. Qualsiasi messaggio di errore rivolto agli utenti deve essere localizzato e inviato nel campo google.rpc.Status.details oppure localizzato dal client.

details[]

Any

Un elenco di messaggi contenenti i dettagli dell'errore. Le API possono utilizzare un insieme comune di tipi di messaggi.