1
0
Fork 0
mirror of synced 2024-06-22 16:10:40 +12:00
budibase/packages/types/src/documents/global/quotas.ts
2022-10-07 13:57:10 +01:00

81 lines
1.6 KiB
TypeScript

import { MonthlyQuotaName, StaticQuotaName } from "../../sdk"
export enum BreakdownQuotaName {
ROW_QUERIES = "rowQueries",
DATASOURCE_QUERIES = "datasourceQueries",
AUTOMATIONS = "automations",
}
export const APP_QUOTA_NAMES = [
StaticQuotaName.ROWS,
MonthlyQuotaName.QUERIES,
MonthlyQuotaName.AUTOMATIONS,
]
export const BREAKDOWN_QUOTA_NAMES = [
MonthlyQuotaName.QUERIES,
MonthlyQuotaName.AUTOMATIONS,
]
export interface UsageBreakdown {
parent: MonthlyQuotaName
values: {
[key: string]: number
}
}
export type QuotaTriggers = {
[key: string]: string | undefined
}
export interface StaticUsage {
[StaticQuotaName.APPS]: number
[StaticQuotaName.PLUGINS]: number
[StaticQuotaName.USER_GROUPS]: number
[StaticQuotaName.ROWS]: number
triggers: {
[key in StaticQuotaName]?: QuotaTriggers
}
}
export interface MonthlyUsage {
[MonthlyQuotaName.QUERIES]: number
[MonthlyQuotaName.AUTOMATIONS]: number
[MonthlyQuotaName.DAY_PASSES]: number
triggers: {
[key in MonthlyQuotaName]?: QuotaTriggers
}
breakdown?: {
[key in BreakdownQuotaName]?: UsageBreakdown
}
}
export interface BaseQuotaUsage {
usageQuota: StaticUsage
monthly: {
[key: string]: MonthlyUsage
}
}
export interface QuotaUsage extends BaseQuotaUsage {
_id: string
_rev?: string
quotaReset: string
apps?: {
[key: string]: BaseQuotaUsage
}
}
export type SetUsageValues = {
total: number
app?: number
breakdown?: number
triggers?: QuotaTriggers
}
export type UsageValues = {
total: number
app?: number
breakdown?: number
}