Package google.rpc

इंडेक्स

कोड

gRPC एपीआई के लिए कैननिकल गड़बड़ी कोड.

कभी-कभी कई गड़बड़ी कोड लागू हो सकते हैं. सेवाओं को लागू होने वाला सबसे खास गड़बड़ी कोड दिखाना चाहिए. उदाहरण के लिए, अगर दोनों कोड लागू होते हैं, तो FAILED_PRECONDITION की जगह OUT_OF_RANGE को प्राथमिकता दें. इसी तरह, FAILED_PRECONDITION के बजाय NOT_FOUND या ALREADY_EXISTS को प्राथमिकता दें.

Enums
OK

कोई गड़बड़ी नहीं; सफल होने पर वापस लौट आए.

एचटीटीपी मैपिंग: 200 OK

CANCELLED

कार्रवाई को आम तौर पर कॉलर ने रद्द कर दिया था.

एचटीटीपी मैपिंग: 499 क्लाइंट क्लोज़्ड अनुरोध

UNKNOWN

ऐसी गड़बड़ी जिसके बारे में कोई जानकारी नहीं है. उदाहरण के लिए, यह गड़बड़ी तब दिख सकती है, जब किसी दूसरे पता स्पेस से मिला Status का मान, किसी ऐसे गड़बड़ी स्पेस से जुड़ा हो जिसे इस एड्रेस स्पेस में नहीं पता है. इसके अलावा, एपीआई की तरफ़ से बढ़ाई गई गड़बड़ियां, जो गड़बड़ी की ज़्यादा जानकारी नहीं दिखाती हैं उन्हें भी इस गड़बड़ी में बदला जा सकता है.

एचटीटीपी मैपिंग: 500 सर्वर में गड़बड़ी

INVALID_ARGUMENT

क्लाइंट ने एक अमान्य तर्क बताया. ध्यान दें कि यह FAILED_PRECONDITION से अलग है. INVALID_ARGUMENT ऐसे तर्कों को दिखाता है जो सिस्टम की स्थिति की परवाह किए बिना समस्या पैदा करते हैं (उदाहरण के लिए, गलत फ़ाइल नाम).

एचटीटीपी मैपिंग: 400 गलत अनुरोध

DEADLINE_EXCEEDED

कार्रवाई पूरी होने से पहले ही समयसीमा खत्म हो गई. सिस्टम की स्थिति बदलने वाली कार्रवाइयों के लिए, यह गड़बड़ी मिल सकती है, भले ही कार्रवाई पूरी हो गई हो. उदाहरण के लिए, अगर सर्वर से जवाब मिलने में देरी होती है, तो हो सकता है कि उसे पूरा होने में इतना समय लगे कि उसकी समयसीमा खत्म होने वाली है.

एचटीटीपी मैपिंग: 504 गेटवे का समय खत्म हो गया है

NOT_FOUND

अनुरोध की गई कुछ इकाई (जैसे, फ़ाइल या डायरेक्ट्री) नहीं मिली.

सर्वर डेवलपर के लिए अहम जानकारी: अगर उपयोगकर्ताओं की पूरी क्लास के लिए किसी अनुरोध को अस्वीकार कर दिया जाता है, तो NOT_FOUND का इस्तेमाल किया जा सकता है. उदाहरण के लिए, कुछ सुविधाओं को धीरे-धीरे रोल आउट करना या अनुमति वाले लोगों की सूची में शामिल न होना. अगर उपयोगकर्ताओं की किसी कैटगरी के कुछ उपयोगकर्ताओं के अनुरोध को अस्वीकार कर दिया जाता है, जैसे कि उपयोगकर्ता को ध्यान में रखकर बनाया गया ऐक्सेस कंट्रोल, तो PERMISSION_DENIED का इस्तेमाल करना ज़रूरी है.

एचटीटीपी मैपिंग: 404 नहीं मिला

ALREADY_EXISTS

क्लाइंट ने जो इकाई बनाने की कोशिश की है वह पहले से मौजूद है. जैसे, फ़ाइल या डायरेक्ट्री.

एचटीटीपी मैपिंग: 409 गड़बड़ी

PERMISSION_DENIED

कॉल करने वाले के पास यह कार्रवाई करने की अनुमति नहीं है. PERMISSION_DENIED का इस्तेमाल, कुछ संसाधन खत्म होने की वजह से अस्वीकार किए जाने के मामलों में नहीं किया जाना चाहिए. इन गड़बड़ियों के लिए, RESOURCE_EXHAUSTED का इस्तेमाल करें. अगर कॉलर की पहचान नहीं हो पाती है, तो PERMISSION_DENIED का इस्तेमाल नहीं किया जाना चाहिए (इन गड़बड़ियों के लिए, इसके बजाय UNAUTHENTICATED का इस्तेमाल करें). गड़बड़ी के इस कोड से यह पता नहीं चलता है कि अनुरोध मान्य है या अनुरोध की गई इकाई मौजूद है या पहले से तय की गई अन्य शर्तों को पूरा करती है.

एचटीटीपी मैपिंग: 403 अनुमति नहीं है

UNAUTHENTICATED

अनुरोध में कार्रवाई के लिए मान्य प्रमाणीकरण क्रेडेंशियल नहीं हैं.

एचटीटीपी मैपिंग: 401 अनुमति नहीं है

RESOURCE_EXHAUSTED

कुछ संसाधन खत्म हो गए हैं, शायद हर उपयोगकर्ता के लिए कोटा खत्म हो गया है या शायद पूरे फ़ाइल सिस्टम में जगह नहीं है.

एचटीटीपी मैपिंग: 429 कई अनुरोध

FAILED_PRECONDITION

कार्रवाई अस्वीकार कर दी गई थी, क्योंकि सिस्टम, कार्रवाई को पूरा करने के लिए ज़रूरी स्थिति में नहीं है. उदाहरण के लिए, जिस डायरेक्ट्री को मिटाया जाना है वह खाली नहीं है, किसी नॉन-डायरेक्ट्री पर आरएमडियर ऑपरेशन लागू किया जाता है वगैरह.

सेवा लागू करने वाले टूल, FAILED_PRECONDITION, ABORTED, और UNAVAILABLE में से कोई तय करने के लिए, नीचे दिए गए दिशा-निर्देशों का इस्तेमाल कर सकते हैं: (a) अगर क्लाइंट सिर्फ़ फ़ेल हो चुके कॉल को फिर से कोशिश कर सकता है, तो UNAVAILABLE का इस्तेमाल करें. (b) अगर क्लाइंट को बड़े लेवल पर फिर से कोशिश करनी चाहिए, तो ABORTED का इस्तेमाल करें. उदाहरण के लिए, जब क्लाइंट के लिए तय किया गया टेस्ट-और-सेट काम नहीं करता, तो इसका मतलब है कि क्लाइंट को पढ़ने-बदलने-लिखने के क्रम को रीस्टार्ट करना चाहिए. (c) अगर सिस्टम की स्थिति को पूरी तरह से ठीक किए जाने तक क्लाइंट को फिर से कोशिश नहीं करनी चाहिए, तो FAILED_PRECONDITION का इस्तेमाल करें. उदाहरण के लिए, अगर कोई "rmdirect" न आ रहा हो, क्योंकि डायरेक्ट्री खाली न हो, तो FAILED_PRECONDITION को लौटाया जाना चाहिए, क्योंकि क्लाइंट को फिर से तब तक कोशिश नहीं करनी चाहिए, जब तक डायरेक्ट्री से उसे मिटा न दिया जाए.

एचटीटीपी मैपिंग: 400 गलत अनुरोध

ABORTED

आम तौर पर, सीक्वेंसर जांच में गड़बड़ी या लेन-देन रद्द होने जैसी एक ही मुद्रा से जुड़ी समस्या की वजह से, कार्रवाई को रद्द कर दिया गया.

FAILED_PRECONDITION, ABORTED, और UNAVAILABLE के बीच तय करने के लिए ऊपर दिए गए दिशा-निर्देश देखें.

एचटीटीपी मैपिंग: 409 गड़बड़ी

OUT_OF_RANGE

कार्रवाई की कोशिश मान्य सीमा से पहले की गई थी. उदाहरण के लिए, फ़ाइल के आखिरी हिस्से को खोजना या पढ़ना.

INVALID_ARGUMENT के उलट, यह गड़बड़ी ऐसी समस्या के बारे में बताती है जो सिस्टम की स्थिति बदलने पर ठीक हो सकती है. उदाहरण के लिए, अगर किसी ऐसे ऑफ़सेट पर पढ़ने के लिए कहा जाए जो [0,2^32-1] में नहीं है, तो 32-बिट फ़ाइल सिस्टम INVALID_ARGUMENT जनरेट करेगा. हालांकि, मौजूदा फ़ाइल साइज़ से आगे के ऑफ़सेट से पढ़ने के लिए कहने पर, यह OUT_OF_RANGE जनरेट करेगा.

FAILED_PRECONDITION और OUT_OF_RANGE के बीच काफ़ी हद तक ओवरलैप है. हमारा सुझाव है कि जब यह लागू हो, तो OUT_OF_RANGE (ज़्यादा सटीक गड़बड़ी) का इस्तेमाल करें, ताकि स्पेस में बार-बार आने वाले कॉल करने वाले लोग, OUT_OF_RANGE गड़बड़ी को आसानी से ढूंढ सकें. इससे, यह पता लगाया जा सकेगा कि ऐसा कब हुआ.

एचटीटीपी मैपिंग: 400 गलत अनुरोध

UNIMPLEMENTED

कार्रवाई लागू नहीं की गई है या इस सेवा में समर्थित/चालू नहीं है.

एचटीटीपी मैपिंग: 501 लागू नहीं किया गया

INTERNAL

अंदरूनी गड़बड़ियां. इसका मतलब है कि सिस्टम में काम करने वाले कुछ ऐसे वैरिएंट काम नहीं कर रहे जिनकी उम्मीद थी. गड़बड़ी का यह कोड, गंभीर गड़बड़ियों के लिए रिज़र्व है.

एचटीटीपी मैपिंग: 500 सर्वर में गड़बड़ी

UNAVAILABLE

फ़िलहाल, सेवा उपलब्ध नहीं है. यह समस्या कुछ समय के लिए होती है. इसे बैकऑफ़ की फिर से कोशिश करके ठीक किया जा सकता है. ध्यान दें कि बिना पहचान वाली कार्रवाइयों को दोबारा आज़माना हमेशा सुरक्षित नहीं होता.

FAILED_PRECONDITION, ABORTED, और UNAVAILABLE के बीच तय करने के लिए ऊपर दिए गए दिशा-निर्देश देखें.

एचटीटीपी मैपिंग: 503 सेवा उपलब्ध नहीं है

DATA_LOSS

डेटा को वापस नहीं पाया जा सकता या खराब हो गया है.

एचटीटीपी मैपिंग: 500 सर्वर में गड़बड़ी

स्थिति

Status टाइप, एक लॉजिकल गड़बड़ी मॉडल के बारे में बताता है. यह मॉडल अलग-अलग प्रोग्रामिंग एनवायरमेंट के लिए सही होता है. इनमें REST API और RPC एपीआई शामिल हैं. इसका इस्तेमाल gRPC करता है. हर Status मैसेज में डेटा के तीन हिस्से होते हैं: गड़बड़ी कोड, गड़बड़ी का मैसेज, और गड़बड़ी की जानकारी.

एपीआई डिज़ाइन गाइड में गड़बड़ी के इस मॉडल और इसके साथ काम करने के तरीके के बारे में ज़्यादा जानकारी पाई जा सकती है.

फ़ील्ड
code

int32

स्टेटस कोड, जो google.rpc.Code की Enum वैल्यू होनी चाहिए.

message

string

डेवलपर को दिखने वाला गड़बड़ी का मैसेज, जो अंग्रेज़ी में होना चाहिए. उपयोगकर्ताओं को दिखने वाली गड़बड़ी के मैसेज का स्थानीय भाषा में अनुवाद किया जाना चाहिए और google.rpc.Status.details फ़ील्ड में भेजा जाना चाहिए. इसके अलावा, क्लाइंट इस मैसेज को स्थानीय भाषा में भी भेज सकता है.

details[]

Any

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