pageSize |
integer
Opcional. La cantidad máxima de cuentas que se mostrarán. El servicio puede mostrar menos que este valor. Si no se especifica, se devolverán 250 cuentas como máximo. El valor máximo es 500; los valores superiores a 500 se convertirán en 500.
|
pageToken |
string
Opcional. Un token de página, recibido desde una llamada accounts.list anterior. Proporciona esto para recuperar la página siguiente. Cuando se pagina, todos los demás parámetros proporcionados a accounts.list deben coincidir con la llamada que proporcionó el token de la página.
|
filter |
string
Opcional. Es un filtro opcional para mostrar solo las cuentas que coinciden con el filtro. Estos son algunos ejemplos de filtros válidos:
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(...))
Los filtros a nivel de la cuenta tienen la siguiente semántica:
accountName Hace referencia al campo accountName de la cuenta.
relationship(...) Se refiere a una relación que la cuenta tiene con otra cuenta. Dentro de la función, esta relación se puede especificar con mayor detalle.
Los filtros en el nivel de relación tienen la siguiente semántica:
providerId : Se refiere al ID numérico de la cuenta que es el otro miembro de la relación. Por ejemplo, si el filtro debe limitarse a las cuentas que tienen una relación con la cuenta accounts/name/123 , providerId se debe filtrar como providerId = 123 .
callerHasAccessToProvider() Esto restringirá las cuentas resultantes a aquellas que tengan una relación con otra cuenta en la que el usuario que realiza la llamada también tenga acceso al otro miembro de la relación (o al proveedor).
externalAccountId : Se refiere al ID de la cuenta externo que se configuró para la relación.
accountIdAlias : Hace referencia al alias del ID de la cuenta que se configuró para la relación.
service(...) Se refiere a un servicio que se proporciona como parte de la relación. Nota: Una relación entre dos cuentas puede incluir varios servicios.
Los filtros en el nivel de servicio tienen la siguiente semántica:
handshakeState : Hace referencia al estado del protocolo de enlace del servicio. Cuando se establece un servicio, a veces debe ser aprobado por el otro o ambos miembros de la relación primero. Por lo tanto, un servicio puede tener el estado PENDING o APPROVED .
type : Se refiere al tipo de servicio. Estos son los posibles valores:
ACCOUNT_MANAGEMENT El proveedor administra la cuenta.
ACCOUNT_AGGREGATION El proveedor es un agregador de la cuenta.
El filtro sigue un subconjunto de la especificación del filtro AIP y su gramática formal EBNF. La gramática de este filtro es más restrictiva y específica.
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
: " = " | " != "
;
Además, se aplica lo siguiente:
- Cada campo combinado puede aparecer solo una vez (por ejemplo, solo es posible filtrar por
accountName a nivel de la cuenta o por providerId una vez en cada nivel de relación).
- En el caso de los campos de cadena (como
accountName o accountIdAlias ), es posible expresar un operador CONTAINS si encierras la consulta en * . Por ejemplo, accountName = "*foo*" mostraría todas las cuentas con un elemento accountName que contenga foo . De manera ortogonal, es posible expresar un operador NOT_CONTAINS mediante != . Por ejemplo, accountName != "*foo*" mostraría todas las cuentas con un accountName que no contiene foo . Nota: Es posible buscar cuentas con una accountName que contenga el carácter de estrella * por medio de *** .
- Se ignorarán los espacios en blanco adicionales.
- Todos los valores, excepto los numéricos, deben encerrarse entre comillas dobles.
- Si se usa una disyunción, las conjunciones de cada lado deben usar paréntesis incluso si la conjunción solo tiene una única expresión. Los paréntesis no se permiten en ningún otro lugar, excepto en invocaciones de funciones (como
relationship o service ). Esto es para expresar claramente que las conjunciones se vinculan más fuerte que las disyunciones lógicamente.
|