skeet
Version:
Full-stack TypeScript Serverless Framework
79 lines (68 loc) • 1.36 kB
text/typescript
export type SkeetCloudConfig = {
api: GCPConfig
workers?: Array<WorkerConfig>
taskQueues?: Array<TaskQueue>
cloudArmor?: CloudArmor
}
export type DbConfig = {
databaseVersion: string
cpu: number
memory: string
storageSize: number
whiteList?: string
}
export type GCPConfig = {
appName: string
projectId: string
region: string
hasLoadBalancer: boolean
cloudRun: CloudRunConfig
db: DbConfig
}
export type WorkerConfig = {
workerName: string
cloudRun: CloudRunConfig
}
export type CloudRunConfig = {
name: string
url: string
cpu: number
memory: string
maxConcurrency: number
minInstances: number
maxInstances: number
}
export type TaskQueue = {
queueName: string
location: string
maxAttempts: number
maxInterval: string
minInterval: string
maxConcurrent: number
maxRate: number
}
export type CloudArmor = Array<SecurityPolicy>
export type SecurityPolicy = {
securityPolicyName: string
rules: [
{
priority: string
description: string
options: { [key: string]: string }
}
]
}
export enum ArmorAction {
ALLOW = 'allow',
DENY1 = 'deny-403',
DENY2 = 'deny-404',
DENY3 = 'deny-429',
DENY4 = 'deny-502',
REDIRECT = 'redirect',
}
export type workerPluginList = Array<workerPlugin>
export type workerPlugin = {
id: number
name: string
port: number
}