import { IComGithubCiliumCiliumPkgPolicyApiListener } from "./Listener.js"; import { IComGithubCiliumCiliumPkgPolicyApiTLSContext } from "./TLSContext.js"; import { IComGithubCiliumCiliumPkgPolicyApiPortProtocol } from "./PortProtocol.js"; import { IComGithubCiliumCiliumPkgPolicyApiL7Rules } from "./L7Rules.js"; import { IComGithubCiliumCiliumPkgPolicyApiServerName } from "./ServerName.js"; import { ModelData, Model } from "@kubernetes-models/base"; /** * PortRule is a list of ports/protocol combinations with optional Layer 7 * rules which must be met. */ export interface IPortRule { /** * listener specifies the name of a custom Envoy listener to which this traffic should be * redirected to. */ "listener"?: IComGithubCiliumCiliumPkgPolicyApiListener; /** * OriginatingTLS is the TLS context for the connections originated by * the L7 proxy. For egress policy this specifies the client-side TLS * parameters for the upstream connection originating from the L7 proxy * to the remote destination. For ingress policy this specifies the * client-side TLS parameters for the connection from the L7 proxy to * the local endpoint. */ "originatingTLS"?: IComGithubCiliumCiliumPkgPolicyApiTLSContext; /** * Ports is a list of L4 port/protocol */ "ports"?: Array; /** * Rules is a list of additional port level rules which must be met in * order for the PortRule to allow the traffic. If omitted or empty, * no layer 7 rules are enforced. */ "rules"?: IComGithubCiliumCiliumPkgPolicyApiL7Rules; /** * ServerNames is a list of allowed TLS SNI values. If not empty, then * TLS must be present and one of the provided SNIs must be indicated in the * TLS handshake. */ "serverNames"?: Array; /** * TerminatingTLS is the TLS context for the connection terminated by * the L7 proxy. For egress policy this specifies the server-side TLS * parameters to be applied on the connections originated from the local * endpoint and terminated by the L7 proxy. For ingress policy this specifies * the server-side TLS parameters to be applied on the connections * originated from a remote source and terminated by the L7 proxy. */ "terminatingTLS"?: IComGithubCiliumCiliumPkgPolicyApiTLSContext; } /** * PortRule is a list of ports/protocol combinations with optional Layer 7 * rules which must be met. */ export declare class PortRule extends Model implements IPortRule { "listener"?: IComGithubCiliumCiliumPkgPolicyApiListener; "originatingTLS"?: IComGithubCiliumCiliumPkgPolicyApiTLSContext; "ports"?: Array; "rules"?: IComGithubCiliumCiliumPkgPolicyApiL7Rules; "serverNames"?: Array; "terminatingTLS"?: IComGithubCiliumCiliumPkgPolicyApiTLSContext; constructor(data?: ModelData); } export type { IPortRule as IComGithubCiliumCiliumPkgPolicyApiPortRule, PortRule as ComGithubCiliumCiliumPkgPolicyApiPortRule };