types.go 4.3 KB
Newer Older
J
jeff 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
/*

 Copyright 2019 The KubeSphere Authors.

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.

*/
package models

H
hongming 已提交
20
import (
H
hongming 已提交
21
	corev1 "k8s.io/api/core/v1"
H
hongming 已提交
22 23 24 25
	"time"

	"k8s.io/api/rbac/v1"
)
J
jeff 已提交
26 27

type PageableResponse struct {
H
hongming 已提交
28 29
	Items      []interface{} `json:"items" description:"paging data"`
	TotalCount int           `json:"total_count" description:"total count"`
J
jeff 已提交
30
}
H
hongming 已提交
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

type Workspace struct {
	Group          `json:",inline"`
	Admin          string   `json:"admin,omitempty"`
	Namespaces     []string `json:"namespaces"`
	DevopsProjects []string `json:"devops_projects"`
}

type Action struct {
	Name  string          `json:"name"`
	Rules []v1.PolicyRule `json:"rules"`
}

type Rule struct {
	Name    string   `json:"name"`
	Actions []Action `json:"actions"`
}

type SimpleRule struct {
H
hongming 已提交
50 51
	Name    string   `json:"name" description:"rule name"`
	Actions []string `json:"actions" description:"actions"`
H
hongming 已提交
52 53 54
}

type User struct {
H
hongming 已提交
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
	Username        string            `json:"username"`
	Email           string            `json:"email"`
	Lang            string            `json:"lang,omitempty"`
	Description     string            `json:"description"`
	CreateTime      time.Time         `json:"create_time"`
	Groups          []string          `json:"groups,omitempty"`
	Password        string            `json:"password,omitempty"`
	CurrentPassword string            `json:"current_password,omitempty"`
	AvatarUrl       string            `json:"avatar_url"`
	LastLoginTime   string            `json:"last_login_time"`
	Status          int               `json:"status"`
	ClusterRole     string            `json:"cluster_role"`
	Roles           map[string]string `json:"roles,omitempty"`
	Role            string            `json:"role,omitempty"`
	RoleBinding     string            `json:"role_binding,omitempty"`
	RoleBindTime    *time.Time        `json:"role_bind_time,omitempty"`
	WorkspaceRole   string            `json:"workspace_role,omitempty"`
H
hongming 已提交
72 73 74 75 76 77 78 79 80 81 82 83
}

type Group struct {
	Path        string   `json:"path"`
	Name        string   `json:"name"`
	Gid         string   `json:"gid"`
	Members     []string `json:"members"`
	Logo        string   `json:"logo"`
	ChildGroups []string `json:"child_groups"`
	Description string   `json:"description"`
}

H
hongming 已提交
84
type ComponentStatus struct {
H
hongming 已提交
85
	Name            string      `json:"name" description:"component name"`
86
	Namespace       string      `json:"namespace" description:"the name of the namespace"`
H
hongming 已提交
87 88 89
	SelfLink        string      `json:"selfLink" description:"self link"`
	Label           interface{} `json:"label" description:"labels"`
	StartedAt       time.Time   `json:"startedAt" description:"started time"`
90 91
	TotalBackends   int         `json:"totalBackends" description:"the total replicas of each backend system component"`
	HealthyBackends int         `json:"healthyBackends" description:"the number of healthy backend components"`
H
hongming 已提交
92
}
H
hongming 已提交
93 94
type NodeStatus struct {
	TotalNodes   int `json:"totalNodes" description:"total number of nodes"`
95
	HealthyNodes int `json:"healthyNodes" description:"the number of healthy nodes"`
H
hongming 已提交
96 97 98 99 100 101 102
}

type HealthStatus struct {
	KubeSphereComponents []ComponentStatus        `json:"kubesphereStatus" description:"kubesphere components status"`
	KubernetesComponents []corev1.ComponentStatus `json:"kubernetesStatus" description:"kubernetes components status"`
	NodeStatus           NodeStatus               `json:"nodeStatus" description:"nodes status"`
}
H
hongming 已提交
103 104

type PodInfo struct {
H
hongming 已提交
105 106 107
	Namespace string `json:"namespace" description:"namespace"`
	Pod       string `json:"pod" description:"pod name"`
	Container string `json:"container" description:"container name"`
H
hongming 已提交
108 109 110
}

type Token struct {
H
hongming 已提交
111
	Token string `json:"access_token" description:"access token"`
H
hongming 已提交
112 113 114
}

type ResourceQuota struct {
H
hongming 已提交
115 116
	Namespace string                     `json:"namespace" description:"namespace"`
	Data      corev1.ResourceQuotaStatus `json:"data" description:"resource quota status"`
H
hongming 已提交
117
}