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 관계의 다른 구성원인 계정의 숫자 ID를 나타냅니다. 예를 들어 필터를 accounts/name/123 계정과 관계가 있는 계정으로 제한해야 하는 경우 providerId 을(를) providerId = 123 (으)로 필터링해야 합니다.
callerHasAccessToProvider() 이렇게 하면 호출하는 사용자가 관계의 다른 구성원 (또는 공급자)에 액세스할 수 있는 다른 계정과 관계가 있는 계정으로 결과 계정이 제한됩니다.
externalAccountId 이는 관계에 구성된 외부 계정 ID를 나타냅니다.
accountIdAlias 관계에 구성된 계정 ID 별칭을 나타냅니다.
service(...) 이는 관계의 일부로 제공되는 서비스를 나타냅니다. 참고: 두 계정 간의 관계에 여러 서비스가 포함될 수 있습니다.
서비스 수준의 필터에는 다음과 같은 의미가 있습니다.
handshakeState 서비스의 핸드셰이크 상태를 나타냅니다. 서비스가 설정되면 관계의 다른 구성원 또는 두 구성원 모두가 먼저 승인해야 하는 경우가 있습니다. 따라서 서비스는 PENDING 또는 APPROVED 상태일 수 있습니다.
type 서비스의 유형을 나타냅니다. 가능한 값은 다음과 같습니다.
ACCOUNT_MANAGEMENT 제공업체가 계정을 관리합니다.
ACCOUNT_AGGREGATION 제공업체가 계정의 애그리게이터입니다.
필터는 AIP 필터 사양의 하위 집합 및 공식 EBNF 문법을 따릅니다. 이 필터의 문법은 더 제한적이고 구체적입니다.
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*" 는 foo 가 포함된 accountName 가 있는 모든 계정을 반환합니다. 직교로 != 를 사용하여 NOT_CONTAINS 연산자를 표현할 수 있습니다. 예를 들어 accountName != "*foo*" 는 foo 가 포함되지 않은 accountName 을 가진 모든 계정을 반환합니다. 참고: *** 를 사용하여 별표 문자 * 를 포함하는 accountName 이 있는 계정을 검색할 수 있습니다.
- 추가 공백은 무시됩니다.
- 숫자만 포함하는 값을 제외한 모든 값은 큰따옴표로 묶어야 합니다.
- 분리가 사용되는 경우 각 변의 접속사는 괄호를 사용해야 합니다. 괄호는 함수 호출을 제외하고 다른 어떤 곳에도 허용되지 않습니다 (예:
relationship 또는 service ). 이는 결합이 논리적으로 분리보다 더 강력한 결합을 명확하게 표현하기 위함입니다.
|