Operation

Ten zasób reprezentuje długotrwałą operację będącą wynikiem wywołania interfejsu API sieci.

Zapis JSON
{
  "name": string,
  "metadata": {
    "@type": string,
    field1: ...,
    ...
  },
  "done": boolean,

  // Union field result can be only one of the following:
  "error": {
    object (Status)
  },
  "response": {
    "@type": string,
    field1: ...,
    ...
  }
  // End of list of possible types for union field result.
}
Pola
name

string

Nazwa przypisywana przez serwer, która jest unikalna w obrębie tej samej usługi, która została pierwotnie zwrócona. Jeśli używasz domyślnego mapowania HTTP, name powinna być nazwą zasobu kończącą się operations/{unique_id}.

metadata

object

metadane związane z usługą powiązane z operacją. Zwykle zawiera informacje o postępach i popularne metadane, takie jak czas utworzenia. Niektóre usługi mogą nie udostępniać takich metadanych. Każda metoda zwracająca długotrwałą operację powinna udokumentować typ metadanych, jeśli taki istnieje.

Obiekt zawierający pola dowolnego typu. Dodatkowe pole "@type" zawiera identyfikator URI, który określa typ. Przykład: { "id": 1234, "@type": "types.example.com/standard/id" }.

done

boolean

Jeśli wartość to false, operacja jest nadal wykonywana. W przypadku true operacja została ukończona i dostępna jest właściwość error lub response.

Pole sumy result. Wynik operacji, który może być error lub prawidłowy response. Jeśli done == false, nie są ustawione właściwości error ani response. Jeśli done == true, można ustawić dokładnie 1 z error lub response. Niektóre usługi mogą nie podawać wyników. result może mieć tylko jedną z tych wartości:
error

object (Status)

Wynik błędu operacji w przypadku niepowodzenia lub anulowania.

response

object

Normalna, udana odpowiedź operacji. Jeśli pierwotna metoda nie zwraca żadnych danych dotyczących powodzenia, takich jak Delete, odpowiedzią będzie google.protobuf.Empty. Jeśli oryginalna metoda to standard Get/Create/Update, odpowiedź powinna być źródłem. W przypadku innych metod odpowiedź powinna mieć typ XxxResponse, gdzie Xxx to pierwotna nazwa metody. Jeśli np. pierwotna nazwa metody to TakeSnapshot(), wywnioskowany typ odpowiedzi to TakeSnapshotResponse.

Obiekt zawierający pola dowolnego typu. Dodatkowe pole "@type" zawiera identyfikator URI, który określa typ. Przykład: { "id": 1234, "@type": "types.example.com/standard/id" }.