import { Resource } from '@c6o/kubeclient-contracts'; import { ObjectMeta, Time } from '../meta/v1'; export interface BoundObjectReference { apiVersion?: string; kind?: string; name?: string; uid?: string; } export interface TokenRequest extends Resource { apiVersion?: 'authentication.k8s.io/v1'; kind?: 'TokenRequest'; metadata?: ObjectMeta; spec: TokenRequestSpec; status?: TokenRequestStatus; } export interface TokenRequestSpec { audiences: Array; boundObjectRef?: BoundObjectReference; expirationSeconds?: number; } export interface TokenRequestStatus { expirationTimestamp: Time; token: string; } export interface TokenReview extends Resource { apiVersion?: 'authentication.k8s.io/v1'; kind?: 'TokenReview'; metadata?: ObjectMeta; spec: TokenReviewSpec; status?: TokenReviewStatus; } export interface TokenReviewSpec { audiences?: Array; token?: string; } export interface TokenReviewStatus { audiences?: Array; authenticated?: boolean; error?: string; user?: UserInfo; } export interface UserInfo { extra?: { [name: string]: Array; }; groups?: Array; uid?: string; username?: string; }