import { Resource } from '@c6o/kubeclient-contracts'; import { ObjectMeta } from '../meta/v1'; export interface LocalSubjectAccessReview extends Resource { apiVersion?: 'authorization.k8s.io/v1beta1'; kind?: 'LocalSubjectAccessReview'; metadata?: ObjectMeta; spec: SubjectAccessReviewSpec; status?: SubjectAccessReviewStatus; } export interface NonResourceAttributes { path?: string; verb?: string; } export interface NonResourceRule { nonResourceURLs?: Array; verbs: Array; } export interface ResourceAttributes { group?: string; name?: string; namespace?: string; resource?: string; subresource?: string; verb?: string; version?: string; } export interface ResourceRule { apiGroups?: Array; resourceNames?: Array; resources?: Array; verbs: Array; } export interface SelfSubjectAccessReview extends Resource { apiVersion?: 'authorization.k8s.io/v1beta1'; kind?: 'SelfSubjectAccessReview'; metadata?: ObjectMeta; spec: SelfSubjectAccessReviewSpec; status?: SubjectAccessReviewStatus; } export interface SelfSubjectAccessReviewSpec { nonResourceAttributes?: NonResourceAttributes; resourceAttributes?: ResourceAttributes; } export interface SelfSubjectRulesReview extends Resource { apiVersion?: 'authorization.k8s.io/v1beta1'; kind?: 'SelfSubjectRulesReview'; metadata?: ObjectMeta; spec: SelfSubjectRulesReviewSpec; status?: SubjectRulesReviewStatus; } export interface SelfSubjectRulesReviewSpec { namespace?: string; } export interface SubjectAccessReview extends Resource { apiVersion?: 'authorization.k8s.io/v1beta1'; kind?: 'SubjectAccessReview'; metadata?: ObjectMeta; spec: SubjectAccessReviewSpec; status?: SubjectAccessReviewStatus; } export interface SubjectAccessReviewSpec { extra?: { [name: string]: Array; }; group?: Array; nonResourceAttributes?: NonResourceAttributes; resourceAttributes?: ResourceAttributes; uid?: string; user?: string; } export interface SubjectAccessReviewStatus { allowed: boolean; denied?: boolean; evaluationError?: string; reason?: string; } export interface SubjectRulesReviewStatus { evaluationError?: string; incomplete: boolean; nonResourceRules: Array; resourceRules: Array; }