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?: 'extensions/v1beta1'; kind?: 'Ingress'; metadata?: ObjectMeta; spec?: IngressSpec; status?: IngressStatus; } export interface IngressBackend { resource?: TypedLocalObjectReference; serviceName?: string; servicePort?: number | string; } export interface IngressList extends Resource { apiVersion?: 'extensions/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; }