aboutsummaryrefslogtreecommitdiffstats
path: root/code/frontend/src/services/abstractions/IApiTokenService.ts
blob: fdf82eb897565368212063632298e23bdf565009 (plain) (blame)
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
import type { Temporal } from "temporal-polyfill"

export interface IApiTokenService {
    create_token_async(payload: CreateTokenPayload): Promise<CreateTokenResponse>,
    delete_token_async(payload: DeleteTokenPayload): Promise<DeleteTokenResponse>,
    get_tokens_async(query: TokenQuery): Promise<GetTokensResponse>
}
export type GetTokensResponse = {
    results: Array<GetTokensTokenModel>
};
export type GetTokensTokenModel = {
    id: string,
    name: string,
    permissions: string[]
}
export type TokenQuery = {
    includeStale: boolean
};
export type DeleteTokenResponse = {
    isDeleted: boolean
};
export type DeleteTokenPayload = {
    id: string
};
export type CreateTokenResponse = {
    isCreated: boolean
};
export type CreateTokenPayload = {
    expiryDate: Temporal.PlainDateTime,
    allowRead: boolean,
    allowCreate: boolean,
    allowUpdate: boolean,
    allowDelete: boolean
};