Operation

यह रिसॉर्स किसी लंबे समय तक चलने वाली कार्रवाई को दिखाता है जो नेटवर्क एपीआई कॉल की वजह से होती है.

जेएसओएन के काेड में दिखाना
{
  "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

सर्वर से असाइन किया गया नाम, जो सिर्फ़ उसी सेवा में खास होता है जो इसे मूल रूप से देता है. अगर आप डिफ़ॉल्ट एचटीटीपी मैपिंग का इस्तेमाल करते हैं, तो name को operations/{unique_id} से खत्म होने वाले संसाधन का नाम होना चाहिए.

metadata

object

कार्रवाई से जुड़ा, सेवा से जुड़ा मेटाडेटा. आम तौर पर, इसमें प्रोग्रेस की जानकारी और सामान्य मेटाडेटा होता है, जैसे कि बनाने का समय. हो सकता है कि कुछ सेवाएं इस तरह का मेटाडेटा उपलब्ध न कराएं. लंबे समय तक चलने वाली कोई भी कार्रवाई लौटाने वाला कोई भी तरीका, मेटाडेटा टाइप को रजिस्टर करे.

किसी ऑब्जेक्ट के आर्बिट्रेरी टाइप वाले फ़ील्ड. एक और फ़ील्ड "@type" में एक यूआरआई है, जो टाइप की पहचान करता है. उदाहरण: { "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" में एक यूआरआई है, जो टाइप की पहचान करता है. उदाहरण: { "id": 1234, "@type": "types.example.com/standard/id" }.