@@ -263,7 +263,7 @@ const (
263263 // This condition indicates whether the route has been accepted or rejected
264264 // by a Gateway, and why.
265265 //
266- // Possible reasons for this condition to be true are:
266+ // Possible reasons for this condition to be True are:
267267 //
268268 // * "Accepted"
269269 //
@@ -314,15 +314,17 @@ const (
314314 // are incompatible filters present on a route rule (for example if
315315 // the URLRewrite and RequestRedirect are both present on an HTTPRoute).
316316 RouteReasonIncompatibleFilters RouteConditionReason = "IncompatibleFilters"
317+ )
317318
319+ const (
318320 // This condition indicates whether the controller was able to resolve all
319321 // the object references for the Route.
320322 //
321- // Possible reasons for this condition to be true are:
323+ // Possible reasons for this condition to be True are:
322324 //
323325 // * "ResolvedRefs"
324326 //
325- // Possible reasons for this condition to be false are:
327+ // Possible reasons for this condition to be False are:
326328 //
327329 // * "RefNotPermitted"
328330 // * "InvalidKind"
@@ -353,6 +355,46 @@ const (
353355 RouteReasonBackendNotFound RouteConditionReason = "BackendNotFound"
354356)
355357
358+ const (
359+ // This condition indicates that the Route contains a combination of both
360+ // valid and invalid rules.
361+ //
362+ // When this happens, implementations MUST take one of the following
363+ // approaches:
364+ //
365+ // 1) Drop Rule(s): With this approach, implementations will drop the
366+ // invalid Route Rule(s) until they are fully valid again. The message
367+ // for this condition MUST start with the prefix "Dropped Rule" and
368+ // include information about which Rules have been dropped. In this
369+ // state, the "Accepted" condition MUST be set to "True" with the latest
370+ // generation of the resource.
371+ // 2) Fall Back: With this approach, implementations will fall back to the
372+ // last known good state of the entire Route. The message for this
373+ // condition MUST start with the prefix "Fall Back" and include
374+ // information about why the current Rule(s) are invalid. To represent
375+ // this, the "Accepted" condition MUST be set to "True" with the
376+ // generation of the last known good state of the resource.
377+ //
378+ // Reverting to the last known good state should only be done by
379+ // implementations that have a means of restoring that state if/when they
380+ // are restarted.
381+ //
382+ // This condition MUST NOT be set if a Route is fully valid, fully invalid,
383+ // or not accepted.
384+ //
385+ // Possible reasons for this condition to be True are:
386+ //
387+ // * "UnsupportedValue"
388+ //
389+ // Possible reasons for this condition to be False are:
390+ //
391+ // * "PartiallyInvalid"
392+ //
393+ // Controllers may raise this condition with other reasons, but should
394+ // prefer to use the reasons listed above to improve interoperability.
395+ RouteConditionPartiallyInvalid RouteConditionType = "PartiallyInvalid"
396+ )
397+
356398// RouteParentStatus describes the status of a route with respect to an
357399// associated Parent.
358400type RouteParentStatus struct {
0 commit comments