pageSize |
integer
Opsional. Jumlah maksimum akun yang akan ditampilkan. Layanan mungkin menampilkan lebih sedikit dari nilai ini. Jika tidak ditentukan, maksimal 250 akun akan ditampilkan. Nilai maksimum adalah 500; nilai di atas 500 akan dikonversi menjadi 500.
|
pageToken |
string
Opsional. Token halaman, yang diterima dari panggilan accounts.list sebelumnya. Berikan atribut ini untuk mengambil halaman selanjutnya. Saat memberi nomor halaman, semua parameter lain yang diberikan ke accounts.list harus cocok dengan panggilan yang menyediakan token halaman.
|
filter |
string
Opsional. Filter opsional untuk hanya menampilkan akun yang cocok dengan filter. Berikut beberapa contoh filter yang valid:
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(...))
Filter di tingkat akun memiliki semantik berikut:
accountName Ini mengacu pada kolom accountName di akun.
relationship(...) Ini mengacu pada hubungan antara akun dan akun lain. Di dalam fungsi, hubungan ini dapat ditentukan lebih lanjut.
Filter di tingkat relationship memiliki semantik berikut:
providerId Ini mengacu pada ID numerik akun yang merupakan anggota lain dari hubungan. Misalnya jika filter harus dibatasi pada akun yang memiliki hubungan dengan akun accounts/name/123 , providerId harus difilter sebagai providerId = 123 .
callerHasAccessToProvider() Tindakan ini akan membatasi akun yang dihasilkan ke akun yang memiliki hubungan dengan akun lain yang juga memiliki akses ke anggota hubungan lainnya (atau penyedia) bagi pengguna yang melakukan panggilan.
externalAccountId Ini mengacu ke ID akun eksternal yang dikonfigurasi untuk hubungan tersebut.
accountIdAlias Ini mengacu ke alias ID akun yang dikonfigurasi untuk hubungan tersebut.
service(...) Ini mengacu pada layanan yang disediakan sebagai bagian dari hubungan. Catatan: Hubungan antara dua akun dapat terdiri dari beberapa layanan.
Filter di tingkat layanan memiliki semantik berikut:
handshakeState Ini mengacu pada status handshake layanan. Layanan yang sudah mapan terkadang perlu disetujui oleh anggota yang lain atau kedua pihak terlebih dahulu. Oleh karena itu, layanan dapat berada dalam status PENDING atau APPROVED .
type Ini mengacu pada jenis layanan. Kemungkinan nilainya adalah:
ACCOUNT_MANAGEMENT Penyedia mengelola akun.
ACCOUNT_AGGREGATION Penyedia merupakan agregator akun.
Filter mengikuti subset spesifikasi filter AI dan tata bahasa EBNF formal. Tata bahasa untuk filter ini lebih ketat dan spesifik
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
: " = " | " != "
;
Selain itu, hal berikut berlaku:
- Setiap kolom dalam hubungan hanya dapat muncul sekali (misalnya, Anda hanya dapat memfilter
accountName sekali di tingkat akun atau Anda hanya dapat memfilter providerId sekali di setiap tingkat hubungan).
- Untuk kolom string (seperti
accountName atau accountIdAlias ), Anda dapat menyatakan operator CONTAINS dengan menyertakan kueri di * . Misalnya, accountName = "*foo*" akan menampilkan semua akun dengan accountName yang berisi foo . Secara ortogonal, operator NOT_CONTAINS dapat dinyatakan menggunakan != . Misalnya, accountName != "*foo*" akan menampilkan semua akun dengan accountName yang tidak berisi foo . Catatan: Anda dapat menelusuri akun dengan accountName yang berisi karakter bintang * menggunakan *** .
- Spasi kosong tambahan akan diabaikan.
- Semua nilai kecuali untuk nilai yang hanya bersifat numerik harus diapit dengan tanda kutip ganda.
- Jika disjungsi digunakan, konjungsi di setiap sisi harus menggunakan tanda kurung meskipun kata konjungsi tersebut hanya memiliki satu ekspresi. Tanda kurung tidak diizinkan di tempat lain kecuali untuk pemanggilan fungsi (seperti
relationship atau service ). Hal ini untuk menyatakan dengan jelas bahwa konjungsi mengikat lebih kuat daripada disjungsi secara logis.
|