pageSize |
integer
Opcional. O número máximo de contas a serem retornadas. O serviço pode retornar menos que esse valor. Se não for especificado, serão retornadas no máximo 250 contas. O valor máximo é 500. Valores acima de 500 serão forçados para 500.
|
pageToken |
string
Opcional. Um token de página recebido de uma chamada accounts.list anterior. Forneça isso para recuperar a página subsequente. Ao paginar, todos os outros parâmetros fornecidos para accounts.list precisam corresponder à chamada que forneceu o token da página.
|
filter |
string
Opcional. Um filtro opcional para retornar apenas contas que correspondem ao filtro. Confira alguns exemplos 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(...))
Os filtros no nível da conta têm a seguinte semântica:
accountName Refere-se ao campo accountName da conta.
relationship(...) Isso se refere a uma relação que a conta tem com outra conta. Dentro da função, essa relação pode ser mais especificada.
Os filtros no nível relação têm a seguinte semântica:
providerId Refere-se ao ID numérico da conta que é o outro membro do relacionamento. Por exemplo, se o filtro precisar se limitar a contas que têm um relacionamento com a conta accounts/name/123 , providerId deverá ser filtrado como providerId = 123 .
callerHasAccessToProvider() Isso restringe as contas resultantes àquelas que têm um relacionamento com outra conta em que o usuário que fez a chamada também tem acesso ao outro membro da relação (ou ao provedor).
externalAccountId Refere-se ao ID da conta externa configurada para o relacionamento.
accountIdAlias Refere-se ao alias do ID da conta configurado para a relação.
service(...) Refere-se a um serviço prestado como parte do relacionamento. Observação: uma relação entre duas contas pode incluir vários serviços.
Os filtros no nível service têm a seguinte semântica:
handshakeState Refere-se ao estado de handshake do serviço. Quando um serviço é estabelecido, às vezes ele precisa ser aprovado pelo outro ou por ambos os membros do relacionamento primeiro. Portanto, um serviço pode estar no estado PENDING ou APPROVED .
type Refere-se ao tipo do serviço. Os valores possíveis são:
ACCOUNT_MANAGEMENT O provedor gerencia a conta.
ACCOUNT_AGGREGATION O provedor é um agregador da conta.
O filtro segue um subconjunto da especificação do filtro AIP e a gramática EBNF formal. A gramática desse filtro é mais restritiva e 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
: " = " | " != "
;
Além disso, o seguinte se aplica:
- Cada campo em conjunto só pode aparecer uma vez. Por exemplo, só é possível filtrar
accountName uma vez no nível da conta, ou só é possível filtrar por providerId uma vez em cada nível de relação.
- Para campos de string (como
accountName ou accountIdAlias ), é possível expressar um operador CONTAINS colocando a consulta em * . Por exemplo, accountName = "*foo*" retornaria todas as contas com um accountName contendo foo . Ortogonalmente, é possível expressar um operador NOT_CONTAINS usando != . Por exemplo, accountName != "*foo*" retornaria todas as contas com um accountName que não contém foo . Observação: é possível pesquisar contas com um accountName que contenha o caractere de estrela * usando *** .
- Os espaços em branco adicionais são ignorados.
- Todos os valores, exceto os numéricos, devem ser colocados entre aspas duplas.
- Em caso de disjunção, as conjunções de cada lado precisam usar parênteses, mesmo que tenham apenas uma expressão. Parênteses não são permitidos em nenhum outro lugar, exceto para invocações de função (como
relationship ou service ). Isso expressa claramente que as conjunções são mais fortes do que as disjunções de maneira lógica.
|