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" } .