-
Notifications
You must be signed in to change notification settings - Fork 0
/
tokens.ts
64 lines (60 loc) · 1.4 KB
/
tokens.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import type {
Token,
CreateToken,
TokenType,
UpdateToken,
} from '@/types/models';
import type {
Create,
Retrieve,
Delete,
List,
RequestOptions,
PaginatedQuery,
PaginatedList,
Update,
} from './shared';
interface ListTokensQuery extends PaginatedQuery {
id?: string | string[];
type?: TokenType | TokenType[];
metadata?: Record<string, string>;
}
interface SearchTokensRequest {
query?: string;
page?: number;
size?: number;
}
interface Tokens
extends Create<Token, CreateToken>,
Update<Token, UpdateToken>,
// returned data type as any to avoid casting when trying to retrieve token.data.<prop>
// eslint-disable-next-line @typescript-eslint/no-explicit-any
Retrieve<Token<any>>,
Delete,
List<Token, ListTokensQuery> {
createAssociation(
parentId: string,
childId: string,
options?: RequestOptions
): Promise<void>;
deleteAssociation(
parentId: string,
childId: string,
options?: RequestOptions
): Promise<void>;
createChild(
parentId: string,
token: CreateToken,
options?: RequestOptions
): Promise<Token>;
listChildren(
parentId: string,
query?: ListTokensQuery,
options?: RequestOptions
): Promise<PaginatedList<Token>>;
search(
searchRequest: SearchTokensRequest,
options?: RequestOptions
): Promise<PaginatedList<Token>>;
}
export type { Tokens, ListTokensQuery, SearchTokensRequest };