mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
37 lines
789 B
TypeScript
37 lines
789 B
TypeScript
import { autobind } from "../../utils";
|
|
import { KubeObject } from "../kube-object";
|
|
import { KubeApi } from "../kube-api";
|
|
|
|
export interface IRoleBindingSubject {
|
|
kind: string;
|
|
name: string;
|
|
namespace?: string;
|
|
apiGroup?: string;
|
|
}
|
|
|
|
@autobind()
|
|
export class RoleBinding extends KubeObject {
|
|
static kind = "RoleBinding";
|
|
static namespaced = true;
|
|
static apiBase = "/apis/rbac.authorization.k8s.io/v1/rolebindings";
|
|
|
|
subjects?: IRoleBindingSubject[];
|
|
roleRef: {
|
|
kind: string;
|
|
name: string;
|
|
apiGroup?: string;
|
|
};
|
|
|
|
getSubjects() {
|
|
return this.subjects || [];
|
|
}
|
|
|
|
getSubjectNames(): string {
|
|
return this.getSubjects().map(subject => subject.name).join(", ");
|
|
}
|
|
}
|
|
|
|
export const roleBindingApi = new KubeApi({
|
|
objectConstructor: RoleBinding,
|
|
});
|