import { Resource } from '@c6o/kubeclient-contracts'; import { LabelSelector, ListMeta, ObjectMeta } from '../meta/v1'; export interface AggregationRule { clusterRoleSelectors?: Array; } export interface ClusterRole extends Resource { aggregationRule?: AggregationRule; apiVersion?: 'rbac.authorization.k8s.io/v1alpha1'; kind?: 'ClusterRole'; metadata?: ObjectMeta; rules?: Array; } export interface ClusterRoleBinding extends Resource { apiVersion?: 'rbac.authorization.k8s.io/v1alpha1'; kind?: 'ClusterRoleBinding'; metadata?: ObjectMeta; roleRef: RoleRef; subjects?: Array; } export interface ClusterRoleBindingList extends Resource { apiVersion?: 'rbac.authorization.k8s.io/v1alpha1'; items: Array; kind?: 'ClusterRoleBindingList'; metadata?: ListMeta; } export interface ClusterRoleList extends Resource { apiVersion?: 'rbac.authorization.k8s.io/v1alpha1'; items: Array; kind?: 'ClusterRoleList'; metadata?: ListMeta; } export interface PolicyRule { apiGroups?: Array; nonResourceURLs?: Array; resourceNames?: Array; resources?: Array; verbs: Array; } export interface Role extends Resource { apiVersion?: 'rbac.authorization.k8s.io/v1alpha1'; kind?: 'Role'; metadata?: ObjectMeta; rules?: Array; } export interface RoleBinding extends Resource { apiVersion?: 'rbac.authorization.k8s.io/v1alpha1'; kind?: 'RoleBinding'; metadata?: ObjectMeta; roleRef: RoleRef; subjects?: Array; } export interface RoleBindingList extends Resource { apiVersion?: 'rbac.authorization.k8s.io/v1alpha1'; items: Array; kind?: 'RoleBindingList'; metadata?: ListMeta; } export interface RoleList extends Resource { apiVersion?: 'rbac.authorization.k8s.io/v1alpha1'; items: Array; kind?: 'RoleList'; metadata?: ListMeta; } export interface RoleRef { apiGroup: string; kind: string; name: string; } export interface Subject { apiVersion?: string; kind: string; name: string; namespace?: string; }