Operation

Этот ресурс представляет собой длительную операцию, являющуюся результатом вызова сетевого API.

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.
}
Поля
name

string

Имя, назначенное сервером, уникально только в пределах той же службы, которая его изначально возвращает. Если вы используете HTTP-сопоставление по умолчанию, name должно быть именем ресурса, заканчивающимся на operations/{unique_id} .

metadata

object

Метаданные, специфичные для сервиса, связанные с операцией. Обычно они содержат информацию о ходе выполнения и общие метаданные, такие как время создания. Некоторые сервисы могут не предоставлять такие метаданные. Любой метод, возвращающий длительную операцию, должен документировать тип метаданных, если таковой имеется.

Объект, содержащий поля произвольного типа. Дополнительное поле "@type" содержит URI, идентифицирующий тип. Пример: { "id": 1234, "@type": "types.example.com/standard/id" } .

done

boolean

Если значение равно false , это означает, что операция всё ещё выполняется. Если true , операция завершена и доступен либо error , либо response .

Поле объединения result . Результат операции, который может быть как error , так и допустимым response . Если done == false , ни error , ни response не устанавливаются. Если done == true , может быть установлен только один из вариантов error или response . Некоторые службы могут не предоставлять результат. result может быть только одним из следующих:
error

object ( Status )

Ошибочный результат операции в случае сбоя или отмены.

response

object

Обычный ответ операции в случае успеха. Если исходный метод не возвращает данных об успешном выполнении, например, Delete , ответом будет google.protobuf.Empty . Если исходный метод — стандартный Get / Create / Update , ответом должен быть ресурс. Для других методов ответ должен иметь тип XxxResponse , где Xxx — имя исходного метода. Например, если имя исходного метода — TakeSnapshot() , выведенный тип ответа — TakeSnapshotResponse .

Объект, содержащий поля произвольного типа. Дополнительное поле "@type" содержит URI, идентифицирующий тип. Пример: { "id": 1234, "@type": "types.example.com/standard/id" } .

Статус

Тип Status определяет логическую модель ошибок, подходящую для различных сред программирования, включая REST API и RPC API. Он используется в gRPC . Каждое сообщение Status содержит три фрагмента данных: код ошибки, сообщение об ошибке и сведения об ошибке.

Дополнительную информацию об этой модели ошибок и о том, как с ней работать, можно найти в Руководстве по проектированию API .

JSON-представление
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
Поля
code

integer

Код состояния, который должен быть значением перечисления google.rpc.Code .

message

string

Сообщение об ошибке для разработчика, которое должно быть на английском языке. Любое сообщение об ошибке для пользователя должно быть локализовано и отправлено в поле google.rpc.Status.details или локализовано клиентом.

details[]

object

Список сообщений с подробностями об ошибках. Существует общий набор типов сообщений, которые могут использовать API.

Объект, содержащий поля произвольного типа. Дополнительное поле "@type" содержит URI, идентифицирующий тип. Пример: { "id": 1234, "@type": "types.example.com/standard/id" } .