mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
38 lines
797 B
TypeScript
38 lines
797 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"
|
|
|
|
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({
|
|
kind: RoleBinding.kind,
|
|
apiBase: "/apis/rbac.authorization.k8s.io/v1/rolebindings",
|
|
isNamespaced: true,
|
|
objectConstructor: RoleBinding,
|
|
});
|