import { Resource } from '@c6o/kubeclient-contracts'; import { ListMeta, ObjectMeta } from '../meta/v1'; import { LoadBalancerStatus, TypedLocalObjectReference } from '../core/v1'; export interface HTTPIngressPath { backend: IngressBackend; path?: string; pathType?: string; } export interface HTTPIngressRuleValue { paths: Array; } export interface Ingress extends Resource { apiVersion?: 'networking.k8s.io/v1beta1'; kind?: 'Ingress'; metadata?: ObjectMeta; spec?: IngressSpec; status?: IngressStatus; } export interface IngressBackend { resource?: TypedLocalObjectReference; serviceName?: string; servicePort?: number | string; } export interface IngressClass extends Resource { apiVersion?: 'networking.k8s.io/v1beta1'; kind?: 'IngressClass'; metadata?: ObjectMeta; spec?: IngressClassSpec; } export interface IngressClassList extends Resource { apiVersion?: 'networking.k8s.io/v1beta1'; items: Array; kind?: 'IngressClassList'; metadata?: ListMeta; } export interface IngressClassParametersReference { apiGroup?: string; kind: string; name: string; namespace?: string; scope?: string; } export interface IngressClassSpec { controller?: string; parameters?: IngressClassParametersReference; } export interface IngressList extends Resource { apiVersion?: 'networking.k8s.io/v1beta1'; items: Array; kind?: 'IngressList'; metadata?: ListMeta; } export interface IngressRule { host?: string; http?: HTTPIngressRuleValue; } export interface IngressSpec { backend?: IngressBackend; ingressClassName?: string; rules?: Array; tls?: Array; } export interface IngressStatus { loadBalancer?: LoadBalancerStatus; } export interface IngressTLS { hosts?: Array; secretName?: string; }