pageSize |
integer
Facultatif. Nombre maximal de comptes à renvoyer. Le service peut renvoyer un nombre inférieur à cette valeur. Si aucune valeur n'est spécifiée, 250 comptes au maximum seront renvoyés. La valeur maximale est 500. Les valeurs supérieures à 500 sont forcées à 500.
|
pageToken |
string
Facultatif. Jeton de page reçu d'un appel accounts.list précédent. Fournissez-le pour récupérer la page suivante. Lors de la pagination, tous les autres paramètres fournis à accounts.list doivent correspondre à l'appel ayant fourni le jeton de page.
|
filter |
string
Facultatif. Filtre facultatif permettant d'afficher uniquement les comptes qui correspondent au filtre. Voici quelques exemples de filtres valides:
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(...))
Les filtres au niveau du compte utilisent la sémantique suivante:
accountName : champ accountName du compte.
relationship(...) Il s'agit d'une relation entre le compte et un autre compte. Dans la fonction, cette relation peut être spécifiée.
Les filtres au niveau de la relation ont la sémantique suivante:
providerId correspond à l'identifiant numérique du compte qui est l'autre membre de la relation. Par exemple, si le filtre doit se limiter aux comptes qui sont associés au compte accounts/name/123 , providerId doit être filtré en tant que providerId = 123 .
callerHasAccessToProvider() Les comptes obtenus sont alors limités aux comptes qui sont associés à un autre compte, dans lequel l'utilisateur appelant a également accès à l'autre membre de la relation (ou au fournisseur).
externalAccountId : ID de compte externe configuré pour la relation.
accountIdAlias : il s'agit de l'alias d'ID de compte configuré pour la relation.
service(...) : service fourni dans le cadre de la relation. Remarque: Une relation entre deux comptes peut comprendre plusieurs services.
Les filtres au niveau du service ont la sémantique suivante:
handshakeState : il s'agit de l'état du handshake du service. Lorsqu'un service est établi, il doit parfois être approuvé par l'autre ou les deux membres de la relation. Par conséquent, l'état d'un service peut être PENDING ou APPROVED .
type : type de service. Les valeurs possibles sont les suivantes :
ACCOUNT_MANAGEMENT Le fournisseur gère le compte.
ACCOUNT_AGGREGATION Le fournisseur est un agrégateur du compte.
Le filtre suit un sous-ensemble de la spécification de filtre AIP et de sa grammaire EBNF formelle. La grammaire de ce filtre est plus restrictive et spécifique.
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
: " = " | " != "
;
En outre, les conditions suivantes s'appliquent:
- Chaque champ d'une conjonction ne peut apparaître qu'une seule fois (par exemple, vous ne pouvez filtrer sur
accountName qu'une seule fois au niveau du compte ou il n'est possible de filtrer providerId qu'une seule fois à chaque niveau de relation).
- Pour les champs de chaîne (tels que
accountName ou accountIdAlias ), il est possible d'exprimer un opérateur CONTAINS en encapsulant la requête entre * . Par exemple, accountName = "*foo*" renvoie tous les comptes dont le accountName contient foo . Orthogonalement, il est possible d'exprimer un opérateur NOT_CONTAINS à l'aide de != . Par exemple, accountName != "*foo*" renvoie tous les comptes dont le accountName ne contient pas foo . Remarque: Il est possible de rechercher des comptes dont l'accountName contient l'étoile * en utilisant *** .
- Les espaces supplémentaires sont ignorés.
- Toutes les valeurs, à l'exception des valeurs numériques uniquement, doivent être placées entre guillemets.
- Si une disjonction est utilisée, les conjonctions de chaque côté doivent utiliser des parenthèses, même si la conjonction ne comporte qu'une seule expression. Les parenthèses ne sont pas autorisées ailleurs, sauf dans les appels de fonctions (comme
relationship ou service ). Cela permet d'indiquer clairement que les conjonctions sont plus solides que les disjonctions de manière logique.
|