/* eslint-disable */ /** * This file was automatically generated by json-schema-to-typescript. * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, * and run json-schema-to-typescript to regenerate this file. */ export interface K8SVirtualServiceV1 { /** * Configuration affecting label/content routing, sni routing, etc. See more details at: https://istio.io/docs/reference/config/networking/virtual-service.html */ spec?: { /** * A list of namespaces to which this virtual service is exported. */ exportTo?: string[]; /** * The names of gateways and sidecars that should apply these routes. */ gateways?: string[]; /** * The destination hosts to which traffic is being sent. */ hosts?: string[]; /** * An ordered list of route rules for HTTP traffic. */ http?: { /** * Cross-Origin Resource Sharing policy (CORS). */ corsPolicy?: { /** * Indicates whether the caller is allowed to send the actual request (not the preflight) using credentials. */ allowCredentials?: boolean; /** * List of HTTP headers that can be used when requesting the resource. */ allowHeaders?: string[]; /** * List of HTTP methods allowed to access the resource. */ allowMethods?: string[]; allowOrigin?: string[]; /** * String patterns that match allowed origins. */ allowOrigins?: { [k: string]: unknown; }[]; /** * A list of HTTP headers that the browsers are allowed to access. */ exposeHeaders?: string[]; /** * Specifies how long the results of a preflight request can be cached. */ maxAge?: string; /** * Indicates whether preflight requests not matching the configured allowed origin shouldn't be forwarded to the upstream. * * Valid Options: FORWARD, IGNORE */ unmatchedPreflights?: "UNSPECIFIED" | "FORWARD" | "IGNORE"; }; /** * Delegate is used to specify the particular VirtualService which can be used to define delegate HTTPRoute. */ delegate?: { /** * Name specifies the name of the delegate VirtualService. */ name?: string; /** * Namespace specifies the namespace where the delegate VirtualService resides. */ namespace?: string; }; /** * A HTTP rule can either return a direct_response, redirect or forward (default) traffic. */ directResponse?: { /** * Specifies the content of the response body. */ body?: { [k: string]: unknown; }; /** * Specifies the HTTP response status to be returned. */ status: number; }; /** * Fault injection policy to apply on HTTP traffic at the client side. */ fault?: { /** * Abort Http request attempts and return error codes back to downstream service, giving the impression that the upstream service is faulty. */ abort?: { [k: string]: unknown; }; /** * Delay requests before forwarding, emulating various failures such as network issues, overloaded upstream service, etc. */ delay?: { [k: string]: unknown; }; }; headers?: { request?: { add?: { [k: string]: string; }; remove?: string[]; set?: { [k: string]: string; }; }; response?: { add?: { [k: string]: string; }; remove?: string[]; set?: { [k: string]: string; }; }; }; /** * Match conditions to be satisfied for the rule to be activated. */ match?: { /** * HTTP Authority values are case-sensitive and formatted as follows: - `exact: "value"` for exact string match - `prefix: "value"` for prefix-based match - `regex: "value"` for [RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax). */ authority?: { [k: string]: unknown; }; /** * Names of gateways where the rule should be applied. */ gateways?: string[]; /** * The header keys must be lowercase and use hyphen as the separator, e.g. */ headers?: { [k: string]: { [k: string]: unknown; }; }; /** * Flag to specify whether the URI matching should be case-insensitive. */ ignoreUriCase?: boolean; /** * HTTP Method values are case-sensitive and formatted as follows: - `exact: "value"` for exact string match - `prefix: "value"` for prefix-based match - `regex: "value"` for [RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax). */ method?: { [k: string]: unknown; }; /** * The name assigned to a match. */ name?: string; /** * Specifies the ports on the host that is being addressed. */ port?: number; /** * Query parameters for matching. */ queryParams?: { [k: string]: { [k: string]: unknown; }; }; /** * URI Scheme values are case-sensitive and formatted as follows: - `exact: "value"` for exact string match - `prefix: "value"` for prefix-based match - `regex: "value"` for [RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax). */ scheme?: { [k: string]: unknown; }; /** * One or more labels that constrain the applicability of a rule to source (client) workloads with the given labels. */ sourceLabels?: { [k: string]: string; }; /** * Source namespace constraining the applicability of a rule to workloads in that namespace. */ sourceNamespace?: string; /** * The human readable prefix to use when emitting statistics for this route. */ statPrefix?: string; /** * URI to match values are case-sensitive and formatted as follows: - `exact: "value"` for exact string match - `prefix: "value"` for prefix-based match - `regex: "value"` for [RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax). */ uri?: { [k: string]: unknown; }; /** * withoutHeader has the same syntax with the header, but has opposite meaning. */ withoutHeaders?: { [k: string]: { [k: string]: unknown; }; }; }[]; /** * Mirror HTTP traffic to a another destination in addition to forwarding the requests to the intended destination. */ mirror?: { /** * The name of a service from the service registry. */ host: string; /** * Specifies the port on the host that is being addressed. */ port?: { number?: number; }; /** * The name of a subset within the service. */ subset?: string; }; mirrorPercent?: number; /** * Percentage of the traffic to be mirrored by the `mirror` field. */ mirrorPercentage?: { value?: number; }; mirror_percent?: number; /** * Specifies the destinations to mirror HTTP traffic in addition to the original destination. */ mirrors?: { /** * Destination specifies the target of the mirror operation. */ destination: { /** * The name of a service from the service registry. */ host: string; /** * Specifies the port on the host that is being addressed. */ port?: { number?: number; }; /** * The name of a subset within the service. */ subset?: string; }; /** * Percentage of the traffic to be mirrored by the `destination` field. */ percentage?: { value?: number; }; }[]; /** * The name assigned to the route for debugging purposes. */ name?: string; /** * A HTTP rule can either return a direct_response, redirect or forward (default) traffic. */ redirect?: { [k: string]: unknown; }; /** * Retry policy for HTTP requests. */ retries?: { /** * Number of retries to be allowed for a given request. */ attempts?: number; /** * Timeout per attempt for a given request, including the initial call and any retries. */ perTryTimeout?: string; /** * Specifies the conditions under which retry takes place. */ retryOn?: string; /** * Flag to specify whether the retries should retry to other localities. */ retryRemoteLocalities?: boolean; }; /** * Rewrite HTTP URIs and Authority headers. */ rewrite?: { /** * rewrite the Authority/Host header with this value. */ authority?: string; /** * rewrite the path (or the prefix) portion of the URI with this value. */ uri?: string; /** * rewrite the path portion of the URI with the specified regex. */ uriRegexRewrite?: { /** * [RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax). */ match?: string; /** * The string that should replace into matching portions of original URI. */ rewrite?: string; }; }; /** * A HTTP rule can either return a direct_response, redirect or forward (default) traffic. */ route?: { /** * Destination uniquely identifies the instances of a service to which the request/connection should be forwarded to. */ destination: { /** * The name of a service from the service registry. */ host: string; /** * Specifies the port on the host that is being addressed. */ port?: { number?: number; }; /** * The name of a subset within the service. */ subset?: string; }; headers?: { request?: { add?: { [k: string]: string; }; remove?: string[]; set?: { [k: string]: string; }; }; response?: { add?: { [k: string]: string; }; remove?: string[]; set?: { [k: string]: string; }; }; }; /** * Weight specifies the relative proportion of traffic to be forwarded to the destination. */ weight?: number; }[]; /** * Timeout for HTTP requests, default is disabled. */ timeout?: string; }[]; /** * An ordered list of route rules for opaque TCP traffic. */ tcp?: { /** * Match conditions to be satisfied for the rule to be activated. */ match?: { /** * IPv4 or IPv6 ip addresses of destination with optional subnet. */ destinationSubnets?: string[]; /** * Names of gateways where the rule should be applied. */ gateways?: string[]; /** * Specifies the port on the host that is being addressed. */ port?: number; /** * One or more labels that constrain the applicability of a rule to workloads with the given labels. */ sourceLabels?: { [k: string]: string; }; /** * Source namespace constraining the applicability of a rule to workloads in that namespace. */ sourceNamespace?: string; sourceSubnet?: string; }[]; /** * The destination to which the connection should be forwarded to. */ route?: { /** * Destination uniquely identifies the instances of a service to which the request/connection should be forwarded to. */ destination: { /** * The name of a service from the service registry. */ host: string; /** * Specifies the port on the host that is being addressed. */ port?: { number?: number; }; /** * The name of a subset within the service. */ subset?: string; }; /** * Weight specifies the relative proportion of traffic to be forwarded to the destination. */ weight?: number; }[]; }[]; /** * An ordered list of route rule for non-terminated TLS & HTTPS traffic. */ tls?: { /** * Match conditions to be satisfied for the rule to be activated. */ match: { /** * IPv4 or IPv6 ip addresses of destination with optional subnet. */ destinationSubnets?: string[]; /** * Names of gateways where the rule should be applied. */ gateways?: string[]; /** * Specifies the port on the host that is being addressed. */ port?: number; /** * SNI (server name indicator) to match on. */ sniHosts: string[]; /** * One or more labels that constrain the applicability of a rule to workloads with the given labels. */ sourceLabels?: { [k: string]: string; }; /** * Source namespace constraining the applicability of a rule to workloads in that namespace. */ sourceNamespace?: string; }[]; /** * The destination to which the connection should be forwarded to. */ route?: { /** * Destination uniquely identifies the instances of a service to which the request/connection should be forwarded to. */ destination: { /** * The name of a service from the service registry. */ host: string; /** * Specifies the port on the host that is being addressed. */ port?: { number?: number; }; /** * The name of a subset within the service. */ subset?: string; }; /** * Weight specifies the relative proportion of traffic to be forwarded to the destination. */ weight?: number; }[]; }[]; }; status?: { /** * Current service state of the resource. */ conditions?: { /** * Last time we probed the condition. */ lastProbeTime?: string; /** * Last time the condition transitioned from one status to another. */ lastTransitionTime?: string; /** * Human-readable message indicating details about last transition. */ message?: string; /** * Unique, one-word, CamelCase reason for the condition's last transition. */ reason?: string; /** * Status is the status of the condition. */ status?: string; /** * Type is the type of the condition. */ type?: string; }[]; /** * Resource Generation to which the Reconciled Condition refers. */ observedGeneration?: number | string; /** * Includes any errors or warnings detected by Istio's analyzers. */ validationMessages?: { /** * A url pointing to the Istio documentation for this specific error type. */ documentationUrl?: string; /** * Represents how severe a message is. * * Valid Options: UNKNOWN, ERROR, WARNING, INFO */ level?: "UNKNOWN" | "ERROR" | "WARNING" | "INFO"; type?: { /** * A 7 character code matching `^IST[0-9]{4}$` intended to uniquely identify the message type. */ code?: string; /** * A human-readable name for the message type. */ name?: string; }; }[]; }; }