pageSize |
integer
ज़रूरी नहीं. लौटाने के लिए खातों की ज़्यादा से ज़्यादा संख्या. सेवा इस वैल्यू से कम वैल्यू दिखा सकती है. अगर जानकारी नहीं दी जाती है, तो ज़्यादा से ज़्यादा 250 खाते लौटाए जा सकते हैं. सबसे ज़्यादा वैल्यू 500 है. वहीं, 500 से ज़्यादा वैल्यू को 500 बना दिया जाएगा.
|
pageToken |
string
ज़रूरी नहीं. पिछले accounts.list कॉल से मिला पेज टोकन. अगले पेज को वापस पाने के लिए, यह जानकारी दें. पेजों पर नंबर डालते समय, accounts.list को दिए गए अन्य सभी पैरामीटर, पेज टोकन देने वाले कॉल से मैच होने चाहिए.
|
filter |
string
ज़रूरी नहीं. एक वैकल्पिक फ़िल्टर, जो सिर्फ़ फ़िल्टर से मेल खाने वाले खातों को दिखाता है. मान्य फ़िल्टर के कुछ उदाहरण यहां दिए गए हैं:
accountName = "*store*" AND relationship(providerId = 123)
relationship(providerId = 123 AND
service(type = "ACCOUNT_AGGREGATION"))
(accountName = "storeA") OR (accountName = "storeB")
relationship(service(
handshakeState = "APPROVED" AND type = "ACCOUNT_MANAGEMENT"))
relationship(callerHasAccessToProvider()
AND externalAccountId = "extAcctId" AND accountIdAlias = "alias")
(relationship(service(type = "ACCOUNT_MANAGEMENT")
AND service(handshakeState = "PENDING")))
OR (accountName = "store" AND relationship(...))
खाता लेवल पर फ़िल्टर में ये सिमेंटिक होते हैं:
accountName यह खाते के accountName फ़ील्ड के बारे में बताता है.
relationship(...) इससे यह पता चलता है कि यह खाता किसी दूसरे खाते से जुड़ा है. फ़ंक्शन में इस संबंध के बारे में और बताया जा सकता है.
रिलेशनशिप लेवल पर बनाए गए फ़िल्टर में ये सिमेंटिक होते हैं:
providerId यह उस खाते का नंबर वाला आईडी होता है जो संबंध का दूसरा सदस्य है. उदाहरण के लिए, अगर फ़िल्टर को सिर्फ़ accounts/name/123 खाते से जुड़े खातों तक सीमित करना है, तो providerId को providerId = 123 के तौर पर फ़िल्टर किया जाना चाहिए.
callerHasAccessToProvider() ऐसा करने से, कॉल करने वाले उपयोगकर्ता के पास ऐसे खाते ही दिखेंगे जो किसी दूसरे खाते से जुड़े हैं. इस खाते में, कॉल करने वाले उपयोगकर्ता के पास, संगठन के किसी अन्य सदस्य (या सेवा देने वाली कंपनी) का ऐक्सेस भी है.
externalAccountId यह उस बाहरी खाते के आईडी के बारे में बताता है जिसे संबंध के लिए कॉन्फ़िगर किया गया है.
accountIdAlias इससे, कारोबारी या कंपनी के खाते के लिए कॉन्फ़िगर किए गए अन्य खाते के आईडी के बारे में पता चलता है.
service(...) इससे ऐसी सेवा के बारे में पता चलता है जो रिलेशनशिप के तहत दी जाती है. ध्यान दें: दो खातों के बीच के संबंध में कई सेवाएं शामिल हो सकती हैं.
सेवा लेवल पर फ़िल्टर में ये सिमेंटिक होते हैं:
handshakeState यह सेवा की हैंडशेक स्थिति के बारे में बताता है. जब कोई सेवा शुरू की जाती है, तो कभी-कभी पहले उसे जारी करने के लिए दूसरे या दोनों सदस्यों की मंज़ूरी लेनी पड़ती है. इसलिए, कोई सेवा PENDING या APPROVED स्थिति में हो सकती है.
type इससे पता चलता है कि सेवा किस तरह की है. आपको ये वैल्यू दिख सकती हैं:
ACCOUNT_MANAGEMENT सेवा देने वाली कंपनी, खाता मैनेज करती है.
ACCOUNT_AGGREGATION सेवा देने वाला व्यक्ति, खाते का एग्रीगेटर है.
फ़िल्टर, एआईपी फ़िल्टर स्पेसिफ़िकेशन और इसके फ़ॉर्मल ईबीएनएफ़ व्याकरण के सबसेट को फ़ॉलो करता है. इस फ़िल्टर का व्याकरण ज़्यादा पाबंदी वाला और सटीक है
filter
: accountFilterDisj
| accountFilterConj
;
accountFilterDisj
: "(" accountFilterConj " OR " accountFilterConj ")"
;
accountFilterConj
: accountFilter {" AND " accountFilter}
;
accountFilter
: accountNameFilter | relationshipFn
;
accountNameFilter
: "accountName" comparator value
;
relationshipFn
: "relationship(" relationshipConj ")"
;
relationshipConj
: relationshipFilter {" AND " relationshipFilter}
;
relationshipFilter
: "providerId = " numValue
| "callerHasAccessToProvider()"
| "externalAccountId" comparator value
| "accountIdAlias" comparator value
| serviceFn
;
serviceFn
: "service(" serviceConj ")"
;
serviceConj
: serviceFilter {" AND " serviceFilter}
;
serviceFilter
: handshakeStateFilter
| typeFilter
;
handshakeStateFilter
: "handshakeState = " value
;
typeFilter
: "type = " value
;
comparator
: " = " | " != "
;
इसके अलावा, ये बातें भी लागू होंगी:
- संयोजन में हर फ़ील्ड सिर्फ़ एक बार दिखाई दे सकता है (उदाहरण के लिए, खाता लेवल पर
accountName पर सिर्फ़ एक बार फ़िल्टर किया जा सकता है या हर संबंध लेवल पर providerId के लिए सिर्फ़ एक बार फ़िल्टर किया जा सकता है).
- स्ट्रिंग फ़ील्ड (जैसे कि
accountName या accountIdAlias ) के लिए, क्वेरी को * में बंद करके, CONTAINS ऑपरेटर को दिखाया जा सकता है. उदाहरण के लिए accountName = "*foo*" , accountName वाले सभी खाते दिखाएगा जिनमें foo शामिल होगा. != का इस्तेमाल करके, NOT_CONTAINS ऑपरेटर को ऑर्थोगोन तरीके से दिखाया जा सकता है. उदाहरण के लिए, accountName != "*foo*" ऐसे सभी खातों को दिखाएगा जिनमें accountName मौजूद है. हालांकि, इनमें foo शामिल नहीं है. ध्यान दें: *** का इस्तेमाल करके, * स्टार वाले accountName वाले खातों को खोजा जा सकता है.
- अतिरिक्त खाली सफ़ेद जगह को अनदेखा कर दिया जाता है.
- सिर्फ़ अंकों वाली वैल्यू को छोड़कर, बाकी सभी वैल्यू को डबल कोटेशन मार्क के बीच रखा जाना चाहिए.
- अगर डिसजंक्शन का इस्तेमाल किया जाता है, तो हर तरफ़ के कॉम्बिनेशन को ब्रैकेट का इस्तेमाल करना चाहिए, भले ही कॉम्बिनेशन में सिर्फ़ एक ही एक्सप्रेशन हो. फ़ंक्शन शुरू करने के लिए (जैसे
relationship या service ) के अलावा, कहीं और ब्रैकेट के इस्तेमाल की अनुमति नहीं है. इसका मतलब है कि साफ़ तौर पर जोड़ा जाना, डिसजंक्शन की तुलना में ज़्यादा मज़बूत है.
|