import { Resource } from '@c6o/kubeclient-contracts'; import { LabelSelector, 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 IPBlock { cidr: string; except?: Array; } export interface Ingress extends Resource { apiVersion?: 'networking.k8s.io/v1'; kind?: 'Ingress'; metadata?: ObjectMeta; spec?: IngressSpec; status?: IngressStatus; } export interface IngressBackend { resource?: TypedLocalObjectReference; service?: IngressServiceBackend; } export interface IngressClass extends Resource { apiVersion?: 'networking.k8s.io/v1'; kind?: 'IngressClass'; metadata?: ObjectMeta; spec?: IngressClassSpec; } export interface IngressClassList extends Resource { apiVersion?: 'networking.k8s.io/v1'; 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/v1'; items: Array; kind?: 'IngressList'; metadata?: ListMeta; } export interface IngressRule { host?: string; http?: HTTPIngressRuleValue; } export interface IngressServiceBackend { name: string; port?: ServiceBackendPort; } export interface IngressSpec { defaultBackend?: IngressBackend; ingressClassName?: string; rules?: Array; tls?: Array; } export interface IngressStatus { loadBalancer?: LoadBalancerStatus; } export interface IngressTLS { hosts?: Array; secretName?: string; } export interface NetworkPolicy extends Resource { apiVersion?: 'networking.k8s.io/v1'; kind?: 'NetworkPolicy'; metadata?: ObjectMeta; spec?: NetworkPolicySpec; } export interface NetworkPolicyEgressRule { ports?: Array; to?: Array; } export interface NetworkPolicyIngressRule { from?: Array; ports?: Array; } export interface NetworkPolicyList extends Resource { apiVersion?: 'networking.k8s.io/v1'; items: Array; kind?: 'NetworkPolicyList'; metadata?: ListMeta; } export interface NetworkPolicyPeer { ipBlock?: IPBlock; namespaceSelector?: LabelSelector; podSelector?: LabelSelector; } export interface NetworkPolicyPort { endPort?: number; port?: number | string; protocol?: string; } export interface NetworkPolicySpec { egress?: Array; ingress?: Array; podSelector: LabelSelector; policyTypes?: Array; } export interface ServiceBackendPort { name?: string; number?: number; }