import { IComGithubCiliumCiliumPkgPolicyApiEgressCommonRule } from "./EgressCommonRule.js"; import { IComGithubCiliumCiliumPkgPolicyApiAuthentication } from "./Authentication.js"; import { IComGithubCiliumCiliumPkgPolicyApiICMPRules } from "./ICMPRules.js"; import { IComGithubCiliumCiliumPkgPolicyApiFQDNSelectorSlice } from "./FQDNSelectorSlice.js"; import { IComGithubCiliumCiliumPkgPolicyApiPortRules } from "./PortRules.js"; import { IComGithubCiliumCiliumPkgPolicyApiCIDRSlice } from "./CIDRSlice.js"; import { IComGithubCiliumCiliumPkgPolicyApiCIDRRuleSlice } from "./CIDRRuleSlice.js"; import { IComGithubCiliumCiliumPkgPolicyApiEndpointSelector } from "./EndpointSelector.js"; import { IComGithubCiliumCiliumPkgPolicyApiEntitySlice } from "./EntitySlice.js"; import { IComGithubCiliumCiliumPkgPolicyApiGroups } from "./Groups.js"; import { IComGithubCiliumCiliumPkgPolicyApiService } from "./Service.js"; import { ModelData, Model } from "@kubernetes-models/base"; /** * EgressRule contains all rule types which can be applied at egress, i.e. * network traffic that originates inside the endpoint and exits the endpoint * selected by the endpointSelector. * * - All members of this structure are optional. If omitted or empty, the * member will have no effect on the rule. * * - If multiple members of the structure are specified, then all members * must match in order for the rule to take effect. * * - ToEndpoints, ToCIDR, ToCIDRSet, ToEntities, ToServices and ToGroups are * mutually exclusive. Only one of these members may be present within an * individual rule. */ export interface IEgressRule extends IComGithubCiliumCiliumPkgPolicyApiEgressCommonRule { /** * Authentication is the required authentication type for the allowed traffic, if any. */ "authentication"?: IComGithubCiliumCiliumPkgPolicyApiAuthentication; /** * ICMPs is a list of ICMP rule identified by type number * which the endpoint subject to the rule is allowed to connect to. * * Example: * Any endpoint with the label "app=httpd" is allowed to initiate * type 8 ICMP connections. */ "icmps"?: IComGithubCiliumCiliumPkgPolicyApiICMPRules; /** * ToFQDN allows whitelisting DNS names in place of IPs. The IPs that result * from DNS resolution of `ToFQDN.MatchName`s are added to the same * EgressRule object as ToCIDRSet entries, and behave accordingly. Any L4 and * L7 rules within this EgressRule will also apply to these IPs. * The DNS -> IP mapping is re-resolved periodically from within the * cilium-agent, and the IPs in the DNS response are effected in the policy * for selected pods as-is (i.e. the list of IPs is not modified in any way). * Note: An explicit rule to allow for DNS traffic is needed for the pods, as * ToFQDN counts as an egress rule and will enforce egress policy when * PolicyEnforcment=default. * Note: If the resolved IPs are IPs within the kubernetes cluster, the * ToFQDN rule will not apply to that IP. * Note: ToFQDN cannot occur in the same policy as other To\* rules. */ "toFQDNs"?: IComGithubCiliumCiliumPkgPolicyApiFQDNSelectorSlice; /** * ToPorts is a list of destination ports identified by port number and * protocol which the endpoint subject to the rule is allowed to * connect to. * * Example: * Any endpoint with the label "role=frontend" is allowed to initiate * connections to destination port 8080/tcp */ "toPorts"?: IComGithubCiliumCiliumPkgPolicyApiPortRules; } /** * EgressRule contains all rule types which can be applied at egress, i.e. * network traffic that originates inside the endpoint and exits the endpoint * selected by the endpointSelector. * * - All members of this structure are optional. If omitted or empty, the * member will have no effect on the rule. * * - If multiple members of the structure are specified, then all members * must match in order for the rule to take effect. * * - ToEndpoints, ToCIDR, ToCIDRSet, ToEntities, ToServices and ToGroups are * mutually exclusive. Only one of these members may be present within an * individual rule. */ export declare class EgressRule extends Model implements IEgressRule { "toCIDR"?: IComGithubCiliumCiliumPkgPolicyApiCIDRSlice; "toCIDRSet"?: IComGithubCiliumCiliumPkgPolicyApiCIDRRuleSlice; "toEndpoints"?: Array; "toEntities"?: IComGithubCiliumCiliumPkgPolicyApiEntitySlice; "toGroups"?: Array; "toNodes"?: Array; "toRequires"?: Array; "toServices"?: Array; "authentication"?: IComGithubCiliumCiliumPkgPolicyApiAuthentication; "icmps"?: IComGithubCiliumCiliumPkgPolicyApiICMPRules; "toFQDNs"?: IComGithubCiliumCiliumPkgPolicyApiFQDNSelectorSlice; "toPorts"?: IComGithubCiliumCiliumPkgPolicyApiPortRules; constructor(data?: ModelData); } export type { IEgressRule as IComGithubCiliumCiliumPkgPolicyApiEgressRule, EgressRule as ComGithubCiliumCiliumPkgPolicyApiEgressRule };