Package google.longrunning

इंडेक्स

ऑपरेशंस

एपीआई सेवा की मदद से, लंबे समय तक चलने वाले ऑपरेशन मैनेज करता है.

जब किसी एपीआई तरीके को पूरा होने में आम तौर पर ज़्यादा समय लगता है, तो उसे क्लाइंट को Operation दिखाने के लिए डिज़ाइन किया जा सकता है. क्लाइंट, इस इंटरफ़ेस का इस्तेमाल करके, ऑपरेशन रिसॉर्स को पॉलिंग करके असाइनिटिव तरीके से असल रिस्पॉन्स पा सकता है. इसके अलावा, रिस्पॉन्स पाने के लिए, ऑपरेशन रिसॉर्स को किसी दूसरे एपीआई (जैसे, Pub/Sub API) को पास किया जा सकता है. लंबे समय तक चलने वाले ऑपरेशन दिखाने वाली किसी भी एपीआई सेवा को Operations इंटरफ़ेस लागू करना चाहिए, ताकि डेवलपर को क्लाइंट का बेहतर अनुभव मिल सके.

CancelOperation

rpc CancelOperation(CancelOperationRequest) returns (Empty)

ज़्यादा समय तक चलने वाले ऑपरेशन को असिंक्रोनस तरीके से रद्द करने की प्रोसेस शुरू करता है. सर्वर, ऑपरेशन को रद्द करने की पूरी कोशिश करता है. हालांकि, इस बात की कोई गारंटी नहीं है कि ऑपरेशन रद्द हो जाएगा. अगर सर्वर पर यह तरीका काम नहीं करता है, तो यह google.rpc.Code.UNIMPLEMENTED दिखाता है. क्लाइंट, Operations.GetOperation या अन्य तरीकों का इस्तेमाल करके यह देख सकते हैं कि रद्द करने की प्रोसेस पूरी हुई या नहीं. इसके अलावा, यह भी देखा जा सकता है कि रद्द करने के बावजूद ऑपरेशन पूरा हुआ या नहीं. रद्द करने के बाद, ऑपरेशन मिटाया नहीं जाता. इसके बजाय, यह Operation.error वैल्यू वाला एक ऑपरेशन बन जाता है, जिसमें google.rpc.Status.code की वैल्यू 1 होती है. यह वैल्यू Code.CANCELLED से जुड़ी होती है.

अनुमति के दायरे

नीचे दिए गए OAuth के लिंक की ज़रूरत हाेती है:

  • https://www.googleapis.com/auth/cloud-platform
DeleteOperation

rpc DeleteOperation(DeleteOperationRequest) returns (Empty)

ज़्यादा समय तक चलने वाली कार्रवाई को मिटाता है. इस तरीके से पता चलता है कि क्लाइंट को अब ऑपरेशन के नतीजे में दिलचस्पी नहीं है. इससे कार्रवाई रद्द नहीं होती. अगर सर्वर पर यह तरीका काम नहीं करता है, तो यह google.rpc.Code.UNIMPLEMENTED दिखाता है.

अनुमति के दायरे

नीचे दिए गए OAuth के लिंक की ज़रूरत हाेती है:

  • https://www.googleapis.com/auth/cloud-platform
GetOperation

rpc GetOperation(GetOperationRequest) returns (Operation)

लंबे समय तक चलने वाले ऑपरेशन की नई स्थिति दिखाता है. क्लाइंट इस तरीके का इस्तेमाल करके, एपीआई सेवा के सुझाव के मुताबिक, ऑपरेशन के नतीजे को समय-समय पर पोल कर सकते हैं.

अनुमति के दायरे

नीचे दिए गए OAuth के लिंक की ज़रूरत हाेती है:

  • https://www.googleapis.com/auth/cloud-platform
IAM की अनुमतियां

name संसाधन पर, IAM की इस अनुमति की ज़रूरत है:

  • routeoptimization.operations.get

ज़्यादा जानकारी के लिए, IAM दस्तावेज़ देखें.

ListOperations

rpc ListOperations(ListOperationsRequest) returns (ListOperationsResponse)

अनुरोध में बताए गए फ़िल्टर से मैच करने वाले ऑपरेशन दिखाता है. अगर सर्वर पर यह तरीका काम नहीं करता है, तो यह UNIMPLEMENTED दिखाता है.

अनुमति के दायरे

नीचे दिए गए OAuth के लिंक की ज़रूरत हाेती है:

  • https://www.googleapis.com/auth/cloud-platform
WaitOperation

rpc WaitOperation(WaitOperationRequest) returns (Operation)

यह तब तक इंतज़ार करता है, जब तक कि लंबे समय तक चलने वाला कोई ऑपरेशन पूरा नहीं हो जाता या तय किए गए टाइम आउट तक नहीं पहुंच जाता. साथ ही, यह ऑपरेशन की नई स्थिति दिखाता है. अगर कार्रवाई पहले ही पूरी हो चुकी है, तो नई स्थिति तुरंत दिखती है. अगर तय किया गया टाइम आउट, डिफ़ॉल्ट एचटीटीपी/आरपीसी टाइम आउट से ज़्यादा है, तो एचटीटीपी/आरपीसी टाइम आउट का इस्तेमाल किया जाता है. अगर सर्वर पर यह तरीका काम नहीं करता है, तो यह google.rpc.Code.UNIMPLEMENTED दिखाता है. ध्यान दें कि इस तरीके से, ज़्यादा से ज़्यादा लोगों को टारगेट किया जा सकता है. यह तय किए गए टाइम आउट से पहले (तुरंत भी) नई स्थिति दिखा सकता है. इसका मतलब है कि तुरंत जवाब मिलने से भी इस बात की कोई गारंटी नहीं है कि कार्रवाई पूरी हो गई है.

अनुमति के दायरे

नीचे दिए गए OAuth के लिंक की ज़रूरत हाेती है:

  • https://www.googleapis.com/auth/cloud-platform

CancelOperationRequest

Operations.CancelOperation के लिए अनुरोध का मैसेज.

फ़ील्ड
name

string

उस ऑपरेशन रिसॉर्स का नाम जिसे रद्द करना है.

DeleteOperationRequest

Operations.DeleteOperation के लिए अनुरोध का मैसेज.

फ़ील्ड
name

string

मिटाए जाने वाले ऑपरेशन रिसॉर्स का नाम.

GetOperationRequest

Operations.GetOperation के लिए अनुरोध का मैसेज.

फ़ील्ड
name

string

ऑपरेशन रिसॉर्स का नाम.

ListOperationsRequest

Operations.ListOperations के लिए अनुरोध का मैसेज.

फ़ील्ड
name

string

ऑपरेशन के पैरंट रिसॉर्स का नाम.

filter

string

स्टैंडर्ड सूची फ़िल्टर.

page_size

int32

सूची के पेज का स्टैंडर्ड साइज़.

page_token

string

सूची वाले पेज का स्टैंडर्ड टोकन.

ListOperationsResponse

Operations.ListOperations के लिए जवाब का मैसेज.

फ़ील्ड
operations[]

Operation

अनुरोध में बताए गए फ़िल्टर से मैच करने वाले ऑपरेशन की सूची.

next_page_token

string

सूची के अगले पेज का स्टैंडर्ड टोकन.

कार्रवाई

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

फ़ील्ड
name

string

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

metadata

Any

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

done

bool

अगर वैल्यू false है, तो इसका मतलब है कि कार्रवाई अब भी जारी है. अगर true है, तो कार्रवाई पूरी हो गई है और error या response उपलब्ध है.

यूनियन फ़ील्ड result. कार्रवाई का नतीजा, जो error या मान्य response हो सकता है. अगर done == false है, तो error और response, दोनों सेट नहीं हैं. अगर done == true है, तो error या response में से किसी एक को सेट किया जा सकता है. ऐसा हो सकता है कि कुछ सेवाएं नतीजा न दिखाएं. result इनमें से कोई एक हो सकता है:
error

Status

कार्रवाई पूरी न होने या रद्द होने पर, गड़बड़ी का नतीजा.

response

Any

ऑपरेशन का सामान्य और सफल रिस्पॉन्स. अगर ओरिजनल तरीका कामयाब होने पर कोई डेटा नहीं दिखाता है, जैसे कि Delete, तो जवाब google.protobuf.Empty होगा. अगर ओरिजनल तरीका स्टैंडर्ड Get/Create/Update है, तो रिस्पॉन्स में रीसोर्स होना चाहिए. अन्य तरीकों के लिए, रिस्पॉन्स का टाइप XxxResponse होना चाहिए. यहां Xxx, मूल तरीके का नाम है. उदाहरण के लिए, अगर ओरिजनल तरीके का नाम TakeSnapshot() है, तो अनुमानित जवाब का टाइप TakeSnapshotResponse होगा.

WaitOperationRequest

Operations.WaitOperation के लिए अनुरोध का मैसेज.

फ़ील्ड
name

string

उस ऑपरेशन रिसॉर्स का नाम जिसका इंतज़ार करना है.

timeout

Duration

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