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": number,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
Поля
code

number

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

message

string

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

details[]

object

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

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