43 lines
1.4 KiB
Go
43 lines
1.4 KiB
Go
package types
|
||
|
||
type Mount struct {
|
||
WorkspaceID string `json:"workspaceID" bind:"required"`
|
||
Path string `json:"path" bind:"required"`
|
||
}
|
||
|
||
// pvc, the storage
|
||
type Pvc struct {
|
||
ID string `json:"id" bind:"required"`
|
||
UID string `json:"uid" bind:"required"`
|
||
Limit string `json:"limit" bind:"required"`
|
||
StorageClassName string `json:"storageClassName" bind:"required"`
|
||
AccessMode string `json:"accessMode" bind:"required"`
|
||
Status string `json:"status,omitempty"`
|
||
Mount *Mount `json:"mount,omitempty"`
|
||
}
|
||
|
||
type HttpForward struct {
|
||
Target string `json:"target" bind:"required"`
|
||
WorkspaceID string `json:"workspaceID" bind:"required"`
|
||
}
|
||
|
||
type ResourceLimits struct {
|
||
// 1core=1000m
|
||
CPU string `json:"cpu"`
|
||
// 1Gi=1024Mi
|
||
Memory string `json:"memory"`
|
||
// temp storage limit,1Gi=1024Mi
|
||
Storage string `json:"storage"`
|
||
}
|
||
|
||
type Workspace struct {
|
||
ID string `json:"id" bind:"required"`
|
||
UID string `json:"uid" bind:"required"`
|
||
Image string `json:"image" bind:"required"`
|
||
Envs map[string]string `json:"envs,omitempty"`
|
||
ResourceLimits *ResourceLimits `json:"resourcesLimits" bind:"required"`
|
||
Pvcs []Pvc `json:"pvcs,omitempty"`
|
||
HttpForwards []HttpForward `json:"httpForwards,omitempty"`
|
||
Status string `json:"status"`
|
||
}
|