@k8ts/sample-interfaces 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/_mix.d.ts +4 -0
  2. package/dist/_mix.d.ts.map +1 -0
  3. package/dist/_mix.js +7 -0
  4. package/dist/_mix.js.map +1 -0
  5. package/dist/acme.cert-manager.io.d.ts +4832 -0
  6. package/dist/acme.cert-manager.io.d.ts.map +1 -0
  7. package/dist/acme.cert-manager.io.js +2476 -0
  8. package/dist/acme.cert-manager.io.js.map +1 -0
  9. package/dist/gateway.networking.k8s.io.d.ts +8786 -0
  10. package/dist/gateway.networking.k8s.io.d.ts.map +1 -0
  11. package/dist/gateway.networking.k8s.io.js +3668 -0
  12. package/dist/gateway.networking.k8s.io.js.map +1 -0
  13. package/dist/helm.toolkit.fluxcd.io.d.ts +4560 -0
  14. package/dist/helm.toolkit.fluxcd.io.d.ts.map +1 -0
  15. package/dist/helm.toolkit.fluxcd.io.js +2274 -0
  16. package/dist/helm.toolkit.fluxcd.io.js.map +1 -0
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +38 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/k8s.d.ts +18772 -0
  22. package/dist/k8s.d.ts.map +1 -0
  23. package/dist/k8s.js +12173 -0
  24. package/dist/k8s.js.map +1 -0
  25. package/dist/kustomize.toolkit.fluxcd.io.d.ts +2202 -0
  26. package/dist/kustomize.toolkit.fluxcd.io.d.ts.map +1 -0
  27. package/dist/kustomize.toolkit.fluxcd.io.js +1196 -0
  28. package/dist/kustomize.toolkit.fluxcd.io.js.map +1 -0
  29. package/dist/notification.toolkit.fluxcd.io.d.ts +1851 -0
  30. package/dist/notification.toolkit.fluxcd.io.d.ts.map +1 -0
  31. package/dist/notification.toolkit.fluxcd.io.js +1489 -0
  32. package/dist/notification.toolkit.fluxcd.io.js.map +1 -0
  33. package/dist/source.toolkit.fluxcd.io.d.ts +3733 -0
  34. package/dist/source.toolkit.fluxcd.io.d.ts.map +1 -0
  35. package/dist/source.toolkit.fluxcd.io.js +2539 -0
  36. package/dist/source.toolkit.fluxcd.io.js.map +1 -0
  37. package/package.json +68 -0
  38. package/src/_mix.ts +3 -0
  39. package/src/acme.cert-manager.io.ts +8202 -0
  40. package/src/gateway.networking.k8s.io.ts +12226 -0
  41. package/src/helm.toolkit.fluxcd.io.ts +7010 -0
  42. package/src/index.ts +1 -0
  43. package/src/k8s.ts +31018 -0
  44. package/src/kustomize.toolkit.fluxcd.io.ts +3560 -0
  45. package/src/notification.toolkit.fluxcd.io.ts +2944 -0
  46. package/src/source.toolkit.fluxcd.io.ts +6277 -0
  47. package/tsconfig.json +12 -0
@@ -0,0 +1,3668 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReferenceGrant = exports.HttpRouteV1Beta1SpecRulesBackendRefsFiltersUrlRewritePathType = exports.HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectPathType = exports.HttpRouteV1Beta1SpecRulesFiltersUrlRewritePathType = exports.HttpRouteV1Beta1SpecRulesFiltersRequestRedirectPathType = exports.HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectStatusCode = exports.HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectScheme = exports.HttpRouteV1Beta1SpecRulesMatchesQueryParamsType = exports.HttpRouteV1Beta1SpecRulesMatchesPathType = exports.HttpRouteV1Beta1SpecRulesMatchesHeadersType = exports.HttpRouteV1Beta1SpecRulesFiltersRequestRedirectStatusCode = exports.HttpRouteV1Beta1SpecRulesFiltersRequestRedirectScheme = exports.HttpRouteV1Beta1SpecRulesBackendRefsFiltersType = exports.HttpRouteV1Beta1SpecRulesMatchesMethod = exports.HttpRouteV1Beta1SpecRulesFiltersType = exports.HttpRouteV1Beta1 = exports.HttpRouteSpecRulesBackendRefsFiltersUrlRewritePathType = exports.HttpRouteSpecRulesBackendRefsFiltersRequestRedirectPathType = exports.HttpRouteSpecRulesFiltersUrlRewritePathType = exports.HttpRouteSpecRulesFiltersRequestRedirectPathType = exports.HttpRouteSpecRulesBackendRefsFiltersRequestRedirectStatusCode = exports.HttpRouteSpecRulesBackendRefsFiltersRequestRedirectScheme = exports.HttpRouteSpecRulesMatchesQueryParamsType = exports.HttpRouteSpecRulesMatchesPathType = exports.HttpRouteSpecRulesMatchesHeadersType = exports.HttpRouteSpecRulesFiltersRequestRedirectStatusCode = exports.HttpRouteSpecRulesFiltersRequestRedirectScheme = exports.HttpRouteSpecRulesBackendRefsFiltersType = exports.HttpRouteSpecRulesMatchesMethod = exports.HttpRouteSpecRulesFiltersType = exports.HttpRoute = exports.GrpcRouteSpecRulesMatchesMethodType = exports.GrpcRouteSpecRulesMatchesHeadersType = exports.GrpcRouteSpecRulesBackendRefsFiltersType = exports.GrpcRouteSpecRulesFiltersType = exports.GrpcRoute = exports.GatewayClassV1Beta1 = exports.GatewayClass = exports.GatewayV1Beta1SpecListenersAllowedRoutesNamespacesFrom = exports.GatewayV1Beta1SpecListenersTlsMode = exports.GatewayV1Beta1 = exports.GatewaySpecListenersAllowedRoutesNamespacesFrom = exports.GatewaySpecListenersTlsMode = exports.Gateway = void 0;
4
+ exports.toJson_GatewayProps = toJson_GatewayProps;
5
+ exports.toJson_GatewaySpec = toJson_GatewaySpec;
6
+ exports.toJson_GatewaySpecAddresses = toJson_GatewaySpecAddresses;
7
+ exports.toJson_GatewaySpecInfrastructure = toJson_GatewaySpecInfrastructure;
8
+ exports.toJson_GatewaySpecListeners = toJson_GatewaySpecListeners;
9
+ exports.toJson_GatewaySpecInfrastructureParametersRef = toJson_GatewaySpecInfrastructureParametersRef;
10
+ exports.toJson_GatewaySpecListenersAllowedRoutes = toJson_GatewaySpecListenersAllowedRoutes;
11
+ exports.toJson_GatewaySpecListenersTls = toJson_GatewaySpecListenersTls;
12
+ exports.toJson_GatewaySpecListenersAllowedRoutesKinds = toJson_GatewaySpecListenersAllowedRoutesKinds;
13
+ exports.toJson_GatewaySpecListenersAllowedRoutesNamespaces = toJson_GatewaySpecListenersAllowedRoutesNamespaces;
14
+ exports.toJson_GatewaySpecListenersTlsCertificateRefs = toJson_GatewaySpecListenersTlsCertificateRefs;
15
+ exports.toJson_GatewaySpecListenersAllowedRoutesNamespacesSelector = toJson_GatewaySpecListenersAllowedRoutesNamespacesSelector;
16
+ exports.toJson_GatewaySpecListenersAllowedRoutesNamespacesSelectorMatchExpressions = toJson_GatewaySpecListenersAllowedRoutesNamespacesSelectorMatchExpressions;
17
+ exports.toJson_GatewayV1Beta1Props = toJson_GatewayV1Beta1Props;
18
+ exports.toJson_GatewayV1Beta1Spec = toJson_GatewayV1Beta1Spec;
19
+ exports.toJson_GatewayV1Beta1SpecAddresses = toJson_GatewayV1Beta1SpecAddresses;
20
+ exports.toJson_GatewayV1Beta1SpecInfrastructure = toJson_GatewayV1Beta1SpecInfrastructure;
21
+ exports.toJson_GatewayV1Beta1SpecListeners = toJson_GatewayV1Beta1SpecListeners;
22
+ exports.toJson_GatewayV1Beta1SpecInfrastructureParametersRef = toJson_GatewayV1Beta1SpecInfrastructureParametersRef;
23
+ exports.toJson_GatewayV1Beta1SpecListenersAllowedRoutes = toJson_GatewayV1Beta1SpecListenersAllowedRoutes;
24
+ exports.toJson_GatewayV1Beta1SpecListenersTls = toJson_GatewayV1Beta1SpecListenersTls;
25
+ exports.toJson_GatewayV1Beta1SpecListenersAllowedRoutesKinds = toJson_GatewayV1Beta1SpecListenersAllowedRoutesKinds;
26
+ exports.toJson_GatewayV1Beta1SpecListenersAllowedRoutesNamespaces = toJson_GatewayV1Beta1SpecListenersAllowedRoutesNamespaces;
27
+ exports.toJson_GatewayV1Beta1SpecListenersTlsCertificateRefs = toJson_GatewayV1Beta1SpecListenersTlsCertificateRefs;
28
+ exports.toJson_GatewayV1Beta1SpecListenersAllowedRoutesNamespacesSelector = toJson_GatewayV1Beta1SpecListenersAllowedRoutesNamespacesSelector;
29
+ exports.toJson_GatewayV1Beta1SpecListenersAllowedRoutesNamespacesSelectorMatchExpressions = toJson_GatewayV1Beta1SpecListenersAllowedRoutesNamespacesSelectorMatchExpressions;
30
+ exports.toJson_GatewayClassProps = toJson_GatewayClassProps;
31
+ exports.toJson_GatewayClassSpec = toJson_GatewayClassSpec;
32
+ exports.toJson_GatewayClassSpecParametersRef = toJson_GatewayClassSpecParametersRef;
33
+ exports.toJson_GatewayClassV1Beta1Props = toJson_GatewayClassV1Beta1Props;
34
+ exports.toJson_GatewayClassV1Beta1Spec = toJson_GatewayClassV1Beta1Spec;
35
+ exports.toJson_GatewayClassV1Beta1SpecParametersRef = toJson_GatewayClassV1Beta1SpecParametersRef;
36
+ exports.toJson_GrpcRouteProps = toJson_GrpcRouteProps;
37
+ exports.toJson_GrpcRouteSpec = toJson_GrpcRouteSpec;
38
+ exports.toJson_GrpcRouteSpecParentRefs = toJson_GrpcRouteSpecParentRefs;
39
+ exports.toJson_GrpcRouteSpecRules = toJson_GrpcRouteSpecRules;
40
+ exports.toJson_GrpcRouteSpecRulesBackendRefs = toJson_GrpcRouteSpecRulesBackendRefs;
41
+ exports.toJson_GrpcRouteSpecRulesFilters = toJson_GrpcRouteSpecRulesFilters;
42
+ exports.toJson_GrpcRouteSpecRulesMatches = toJson_GrpcRouteSpecRulesMatches;
43
+ exports.toJson_GrpcRouteSpecRulesBackendRefsFilters = toJson_GrpcRouteSpecRulesBackendRefsFilters;
44
+ exports.toJson_GrpcRouteSpecRulesFiltersExtensionRef = toJson_GrpcRouteSpecRulesFiltersExtensionRef;
45
+ exports.toJson_GrpcRouteSpecRulesFiltersRequestHeaderModifier = toJson_GrpcRouteSpecRulesFiltersRequestHeaderModifier;
46
+ exports.toJson_GrpcRouteSpecRulesFiltersRequestMirror = toJson_GrpcRouteSpecRulesFiltersRequestMirror;
47
+ exports.toJson_GrpcRouteSpecRulesFiltersResponseHeaderModifier = toJson_GrpcRouteSpecRulesFiltersResponseHeaderModifier;
48
+ exports.toJson_GrpcRouteSpecRulesMatchesHeaders = toJson_GrpcRouteSpecRulesMatchesHeaders;
49
+ exports.toJson_GrpcRouteSpecRulesMatchesMethod = toJson_GrpcRouteSpecRulesMatchesMethod;
50
+ exports.toJson_GrpcRouteSpecRulesBackendRefsFiltersExtensionRef = toJson_GrpcRouteSpecRulesBackendRefsFiltersExtensionRef;
51
+ exports.toJson_GrpcRouteSpecRulesBackendRefsFiltersRequestHeaderModifier = toJson_GrpcRouteSpecRulesBackendRefsFiltersRequestHeaderModifier;
52
+ exports.toJson_GrpcRouteSpecRulesBackendRefsFiltersRequestMirror = toJson_GrpcRouteSpecRulesBackendRefsFiltersRequestMirror;
53
+ exports.toJson_GrpcRouteSpecRulesBackendRefsFiltersResponseHeaderModifier = toJson_GrpcRouteSpecRulesBackendRefsFiltersResponseHeaderModifier;
54
+ exports.toJson_GrpcRouteSpecRulesFiltersRequestHeaderModifierAdd = toJson_GrpcRouteSpecRulesFiltersRequestHeaderModifierAdd;
55
+ exports.toJson_GrpcRouteSpecRulesFiltersRequestHeaderModifierSet = toJson_GrpcRouteSpecRulesFiltersRequestHeaderModifierSet;
56
+ exports.toJson_GrpcRouteSpecRulesFiltersRequestMirrorBackendRef = toJson_GrpcRouteSpecRulesFiltersRequestMirrorBackendRef;
57
+ exports.toJson_GrpcRouteSpecRulesFiltersResponseHeaderModifierAdd = toJson_GrpcRouteSpecRulesFiltersResponseHeaderModifierAdd;
58
+ exports.toJson_GrpcRouteSpecRulesFiltersResponseHeaderModifierSet = toJson_GrpcRouteSpecRulesFiltersResponseHeaderModifierSet;
59
+ exports.toJson_GrpcRouteSpecRulesBackendRefsFiltersRequestHeaderModifierAdd = toJson_GrpcRouteSpecRulesBackendRefsFiltersRequestHeaderModifierAdd;
60
+ exports.toJson_GrpcRouteSpecRulesBackendRefsFiltersRequestHeaderModifierSet = toJson_GrpcRouteSpecRulesBackendRefsFiltersRequestHeaderModifierSet;
61
+ exports.toJson_GrpcRouteSpecRulesBackendRefsFiltersRequestMirrorBackendRef = toJson_GrpcRouteSpecRulesBackendRefsFiltersRequestMirrorBackendRef;
62
+ exports.toJson_GrpcRouteSpecRulesBackendRefsFiltersResponseHeaderModifierAdd = toJson_GrpcRouteSpecRulesBackendRefsFiltersResponseHeaderModifierAdd;
63
+ exports.toJson_GrpcRouteSpecRulesBackendRefsFiltersResponseHeaderModifierSet = toJson_GrpcRouteSpecRulesBackendRefsFiltersResponseHeaderModifierSet;
64
+ exports.toJson_HttpRouteProps = toJson_HttpRouteProps;
65
+ exports.toJson_HttpRouteSpec = toJson_HttpRouteSpec;
66
+ exports.toJson_HttpRouteSpecParentRefs = toJson_HttpRouteSpecParentRefs;
67
+ exports.toJson_HttpRouteSpecRules = toJson_HttpRouteSpecRules;
68
+ exports.toJson_HttpRouteSpecRulesBackendRefs = toJson_HttpRouteSpecRulesBackendRefs;
69
+ exports.toJson_HttpRouteSpecRulesFilters = toJson_HttpRouteSpecRulesFilters;
70
+ exports.toJson_HttpRouteSpecRulesMatches = toJson_HttpRouteSpecRulesMatches;
71
+ exports.toJson_HttpRouteSpecRulesTimeouts = toJson_HttpRouteSpecRulesTimeouts;
72
+ exports.toJson_HttpRouteSpecRulesBackendRefsFilters = toJson_HttpRouteSpecRulesBackendRefsFilters;
73
+ exports.toJson_HttpRouteSpecRulesFiltersExtensionRef = toJson_HttpRouteSpecRulesFiltersExtensionRef;
74
+ exports.toJson_HttpRouteSpecRulesFiltersRequestHeaderModifier = toJson_HttpRouteSpecRulesFiltersRequestHeaderModifier;
75
+ exports.toJson_HttpRouteSpecRulesFiltersRequestMirror = toJson_HttpRouteSpecRulesFiltersRequestMirror;
76
+ exports.toJson_HttpRouteSpecRulesFiltersRequestRedirect = toJson_HttpRouteSpecRulesFiltersRequestRedirect;
77
+ exports.toJson_HttpRouteSpecRulesFiltersResponseHeaderModifier = toJson_HttpRouteSpecRulesFiltersResponseHeaderModifier;
78
+ exports.toJson_HttpRouteSpecRulesFiltersUrlRewrite = toJson_HttpRouteSpecRulesFiltersUrlRewrite;
79
+ exports.toJson_HttpRouteSpecRulesMatchesHeaders = toJson_HttpRouteSpecRulesMatchesHeaders;
80
+ exports.toJson_HttpRouteSpecRulesMatchesPath = toJson_HttpRouteSpecRulesMatchesPath;
81
+ exports.toJson_HttpRouteSpecRulesMatchesQueryParams = toJson_HttpRouteSpecRulesMatchesQueryParams;
82
+ exports.toJson_HttpRouteSpecRulesBackendRefsFiltersExtensionRef = toJson_HttpRouteSpecRulesBackendRefsFiltersExtensionRef;
83
+ exports.toJson_HttpRouteSpecRulesBackendRefsFiltersRequestHeaderModifier = toJson_HttpRouteSpecRulesBackendRefsFiltersRequestHeaderModifier;
84
+ exports.toJson_HttpRouteSpecRulesBackendRefsFiltersRequestMirror = toJson_HttpRouteSpecRulesBackendRefsFiltersRequestMirror;
85
+ exports.toJson_HttpRouteSpecRulesBackendRefsFiltersRequestRedirect = toJson_HttpRouteSpecRulesBackendRefsFiltersRequestRedirect;
86
+ exports.toJson_HttpRouteSpecRulesBackendRefsFiltersResponseHeaderModifier = toJson_HttpRouteSpecRulesBackendRefsFiltersResponseHeaderModifier;
87
+ exports.toJson_HttpRouteSpecRulesBackendRefsFiltersUrlRewrite = toJson_HttpRouteSpecRulesBackendRefsFiltersUrlRewrite;
88
+ exports.toJson_HttpRouteSpecRulesFiltersRequestHeaderModifierAdd = toJson_HttpRouteSpecRulesFiltersRequestHeaderModifierAdd;
89
+ exports.toJson_HttpRouteSpecRulesFiltersRequestHeaderModifierSet = toJson_HttpRouteSpecRulesFiltersRequestHeaderModifierSet;
90
+ exports.toJson_HttpRouteSpecRulesFiltersRequestMirrorBackendRef = toJson_HttpRouteSpecRulesFiltersRequestMirrorBackendRef;
91
+ exports.toJson_HttpRouteSpecRulesFiltersRequestRedirectPath = toJson_HttpRouteSpecRulesFiltersRequestRedirectPath;
92
+ exports.toJson_HttpRouteSpecRulesFiltersResponseHeaderModifierAdd = toJson_HttpRouteSpecRulesFiltersResponseHeaderModifierAdd;
93
+ exports.toJson_HttpRouteSpecRulesFiltersResponseHeaderModifierSet = toJson_HttpRouteSpecRulesFiltersResponseHeaderModifierSet;
94
+ exports.toJson_HttpRouteSpecRulesFiltersUrlRewritePath = toJson_HttpRouteSpecRulesFiltersUrlRewritePath;
95
+ exports.toJson_HttpRouteSpecRulesBackendRefsFiltersRequestHeaderModifierAdd = toJson_HttpRouteSpecRulesBackendRefsFiltersRequestHeaderModifierAdd;
96
+ exports.toJson_HttpRouteSpecRulesBackendRefsFiltersRequestHeaderModifierSet = toJson_HttpRouteSpecRulesBackendRefsFiltersRequestHeaderModifierSet;
97
+ exports.toJson_HttpRouteSpecRulesBackendRefsFiltersRequestMirrorBackendRef = toJson_HttpRouteSpecRulesBackendRefsFiltersRequestMirrorBackendRef;
98
+ exports.toJson_HttpRouteSpecRulesBackendRefsFiltersRequestRedirectPath = toJson_HttpRouteSpecRulesBackendRefsFiltersRequestRedirectPath;
99
+ exports.toJson_HttpRouteSpecRulesBackendRefsFiltersResponseHeaderModifierAdd = toJson_HttpRouteSpecRulesBackendRefsFiltersResponseHeaderModifierAdd;
100
+ exports.toJson_HttpRouteSpecRulesBackendRefsFiltersResponseHeaderModifierSet = toJson_HttpRouteSpecRulesBackendRefsFiltersResponseHeaderModifierSet;
101
+ exports.toJson_HttpRouteSpecRulesBackendRefsFiltersUrlRewritePath = toJson_HttpRouteSpecRulesBackendRefsFiltersUrlRewritePath;
102
+ exports.toJson_HttpRouteV1Beta1Props = toJson_HttpRouteV1Beta1Props;
103
+ exports.toJson_HttpRouteV1Beta1Spec = toJson_HttpRouteV1Beta1Spec;
104
+ exports.toJson_HttpRouteV1Beta1SpecParentRefs = toJson_HttpRouteV1Beta1SpecParentRefs;
105
+ exports.toJson_HttpRouteV1Beta1SpecRules = toJson_HttpRouteV1Beta1SpecRules;
106
+ exports.toJson_HttpRouteV1Beta1SpecRulesBackendRefs = toJson_HttpRouteV1Beta1SpecRulesBackendRefs;
107
+ exports.toJson_HttpRouteV1Beta1SpecRulesFilters = toJson_HttpRouteV1Beta1SpecRulesFilters;
108
+ exports.toJson_HttpRouteV1Beta1SpecRulesMatches = toJson_HttpRouteV1Beta1SpecRulesMatches;
109
+ exports.toJson_HttpRouteV1Beta1SpecRulesTimeouts = toJson_HttpRouteV1Beta1SpecRulesTimeouts;
110
+ exports.toJson_HttpRouteV1Beta1SpecRulesBackendRefsFilters = toJson_HttpRouteV1Beta1SpecRulesBackendRefsFilters;
111
+ exports.toJson_HttpRouteV1Beta1SpecRulesFiltersExtensionRef = toJson_HttpRouteV1Beta1SpecRulesFiltersExtensionRef;
112
+ exports.toJson_HttpRouteV1Beta1SpecRulesFiltersRequestHeaderModifier = toJson_HttpRouteV1Beta1SpecRulesFiltersRequestHeaderModifier;
113
+ exports.toJson_HttpRouteV1Beta1SpecRulesFiltersRequestMirror = toJson_HttpRouteV1Beta1SpecRulesFiltersRequestMirror;
114
+ exports.toJson_HttpRouteV1Beta1SpecRulesFiltersRequestRedirect = toJson_HttpRouteV1Beta1SpecRulesFiltersRequestRedirect;
115
+ exports.toJson_HttpRouteV1Beta1SpecRulesFiltersResponseHeaderModifier = toJson_HttpRouteV1Beta1SpecRulesFiltersResponseHeaderModifier;
116
+ exports.toJson_HttpRouteV1Beta1SpecRulesFiltersUrlRewrite = toJson_HttpRouteV1Beta1SpecRulesFiltersUrlRewrite;
117
+ exports.toJson_HttpRouteV1Beta1SpecRulesMatchesHeaders = toJson_HttpRouteV1Beta1SpecRulesMatchesHeaders;
118
+ exports.toJson_HttpRouteV1Beta1SpecRulesMatchesPath = toJson_HttpRouteV1Beta1SpecRulesMatchesPath;
119
+ exports.toJson_HttpRouteV1Beta1SpecRulesMatchesQueryParams = toJson_HttpRouteV1Beta1SpecRulesMatchesQueryParams;
120
+ exports.toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersExtensionRef = toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersExtensionRef;
121
+ exports.toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestHeaderModifier = toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestHeaderModifier;
122
+ exports.toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestMirror = toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestMirror;
123
+ exports.toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirect = toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirect;
124
+ exports.toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersResponseHeaderModifier = toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersResponseHeaderModifier;
125
+ exports.toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersUrlRewrite = toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersUrlRewrite;
126
+ exports.toJson_HttpRouteV1Beta1SpecRulesFiltersRequestHeaderModifierAdd = toJson_HttpRouteV1Beta1SpecRulesFiltersRequestHeaderModifierAdd;
127
+ exports.toJson_HttpRouteV1Beta1SpecRulesFiltersRequestHeaderModifierSet = toJson_HttpRouteV1Beta1SpecRulesFiltersRequestHeaderModifierSet;
128
+ exports.toJson_HttpRouteV1Beta1SpecRulesFiltersRequestMirrorBackendRef = toJson_HttpRouteV1Beta1SpecRulesFiltersRequestMirrorBackendRef;
129
+ exports.toJson_HttpRouteV1Beta1SpecRulesFiltersRequestRedirectPath = toJson_HttpRouteV1Beta1SpecRulesFiltersRequestRedirectPath;
130
+ exports.toJson_HttpRouteV1Beta1SpecRulesFiltersResponseHeaderModifierAdd = toJson_HttpRouteV1Beta1SpecRulesFiltersResponseHeaderModifierAdd;
131
+ exports.toJson_HttpRouteV1Beta1SpecRulesFiltersResponseHeaderModifierSet = toJson_HttpRouteV1Beta1SpecRulesFiltersResponseHeaderModifierSet;
132
+ exports.toJson_HttpRouteV1Beta1SpecRulesFiltersUrlRewritePath = toJson_HttpRouteV1Beta1SpecRulesFiltersUrlRewritePath;
133
+ exports.toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestHeaderModifierAdd = toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestHeaderModifierAdd;
134
+ exports.toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestHeaderModifierSet = toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestHeaderModifierSet;
135
+ exports.toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestMirrorBackendRef = toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestMirrorBackendRef;
136
+ exports.toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectPath = toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectPath;
137
+ exports.toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersResponseHeaderModifierAdd = toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersResponseHeaderModifierAdd;
138
+ exports.toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersResponseHeaderModifierSet = toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersResponseHeaderModifierSet;
139
+ exports.toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersUrlRewritePath = toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersUrlRewritePath;
140
+ exports.toJson_ReferenceGrantProps = toJson_ReferenceGrantProps;
141
+ exports.toJson_ReferenceGrantSpec = toJson_ReferenceGrantSpec;
142
+ exports.toJson_ReferenceGrantSpecFrom = toJson_ReferenceGrantSpecFrom;
143
+ exports.toJson_ReferenceGrantSpecTo = toJson_ReferenceGrantSpecTo;
144
+ // generated by cdk8s
145
+ const cdk8s_1 = require("cdk8s");
146
+ /**
147
+ * Gateway represents an instance of a service-traffic handling infrastructure by binding Listeners
148
+ * to a set of IP addresses.
149
+ *
150
+ * @schema Gateway
151
+ */
152
+ class Gateway extends cdk8s_1.ApiObject {
153
+ /**
154
+ * Renders a Kubernetes manifest for "Gateway".
155
+ *
156
+ * This can be used to inline resource manifests inside other objects (e.g. as templates).
157
+ *
158
+ * @param props Initialization props
159
+ */
160
+ static manifest(props) {
161
+ return {
162
+ ...Gateway.GVK,
163
+ ...toJson_GatewayProps(props)
164
+ };
165
+ }
166
+ /**
167
+ * Defines a "Gateway" API object
168
+ *
169
+ * @param scope The scope in which to define this object
170
+ * @param id A scope-local name for the object
171
+ * @param props Initialization props
172
+ */
173
+ constructor(scope, id, props) {
174
+ super(scope, id, {
175
+ ...Gateway.GVK,
176
+ ...props
177
+ });
178
+ }
179
+ /** Renders the object to Kubernetes JSON. */
180
+ toJson() {
181
+ const resolved = super.toJson();
182
+ return {
183
+ ...Gateway.GVK,
184
+ ...toJson_GatewayProps(resolved)
185
+ };
186
+ }
187
+ }
188
+ exports.Gateway = Gateway;
189
+ /** Returns the apiVersion and kind for "Gateway" */
190
+ Gateway.GVK = {
191
+ apiVersion: "gateway.networking.k8s.io/v1",
192
+ kind: "Gateway"
193
+ };
194
+ /** Converts an object of type 'GatewayProps' to JSON representation. */
195
+ /* eslint-disable max-len, quote-props */
196
+ function toJson_GatewayProps(obj) {
197
+ if (obj === undefined) {
198
+ return undefined;
199
+ }
200
+ const result = {
201
+ metadata: obj.metadata,
202
+ spec: toJson_GatewaySpec(obj.spec)
203
+ };
204
+ // filter undefined values
205
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
206
+ }
207
+ /** Converts an object of type 'GatewaySpec' to JSON representation. */
208
+ /* eslint-disable max-len, quote-props */
209
+ function toJson_GatewaySpec(obj) {
210
+ if (obj === undefined) {
211
+ return undefined;
212
+ }
213
+ const result = {
214
+ addresses: obj.addresses?.map(y => toJson_GatewaySpecAddresses(y)),
215
+ gatewayClassName: obj.gatewayClassName,
216
+ infrastructure: toJson_GatewaySpecInfrastructure(obj.infrastructure),
217
+ listeners: obj.listeners?.map(y => toJson_GatewaySpecListeners(y))
218
+ };
219
+ // filter undefined values
220
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
221
+ }
222
+ /** Converts an object of type 'GatewaySpecAddresses' to JSON representation. */
223
+ /* eslint-disable max-len, quote-props */
224
+ function toJson_GatewaySpecAddresses(obj) {
225
+ if (obj === undefined) {
226
+ return undefined;
227
+ }
228
+ const result = {
229
+ type: obj.type,
230
+ value: obj.value
231
+ };
232
+ // filter undefined values
233
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
234
+ }
235
+ /** Converts an object of type 'GatewaySpecInfrastructure' to JSON representation. */
236
+ /* eslint-disable max-len, quote-props */
237
+ function toJson_GatewaySpecInfrastructure(obj) {
238
+ if (obj === undefined) {
239
+ return undefined;
240
+ }
241
+ const result = {
242
+ annotations: obj.annotations === undefined
243
+ ? undefined
244
+ : Object.entries(obj.annotations).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {}),
245
+ labels: obj.labels === undefined
246
+ ? undefined
247
+ : Object.entries(obj.labels).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {}),
248
+ parametersRef: toJson_GatewaySpecInfrastructureParametersRef(obj.parametersRef)
249
+ };
250
+ // filter undefined values
251
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
252
+ }
253
+ /** Converts an object of type 'GatewaySpecListeners' to JSON representation. */
254
+ /* eslint-disable max-len, quote-props */
255
+ function toJson_GatewaySpecListeners(obj) {
256
+ if (obj === undefined) {
257
+ return undefined;
258
+ }
259
+ const result = {
260
+ allowedRoutes: toJson_GatewaySpecListenersAllowedRoutes(obj.allowedRoutes),
261
+ hostname: obj.hostname,
262
+ name: obj.name,
263
+ port: obj.port,
264
+ protocol: obj.protocol,
265
+ tls: toJson_GatewaySpecListenersTls(obj.tls)
266
+ };
267
+ // filter undefined values
268
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
269
+ }
270
+ /** Converts an object of type 'GatewaySpecInfrastructureParametersRef' to JSON representation. */
271
+ /* eslint-disable max-len, quote-props */
272
+ function toJson_GatewaySpecInfrastructureParametersRef(obj) {
273
+ if (obj === undefined) {
274
+ return undefined;
275
+ }
276
+ const result = {
277
+ group: obj.group,
278
+ kind: obj.kind,
279
+ name: obj.name
280
+ };
281
+ // filter undefined values
282
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
283
+ }
284
+ /** Converts an object of type 'GatewaySpecListenersAllowedRoutes' to JSON representation. */
285
+ /* eslint-disable max-len, quote-props */
286
+ function toJson_GatewaySpecListenersAllowedRoutes(obj) {
287
+ if (obj === undefined) {
288
+ return undefined;
289
+ }
290
+ const result = {
291
+ kinds: obj.kinds?.map(y => toJson_GatewaySpecListenersAllowedRoutesKinds(y)),
292
+ namespaces: toJson_GatewaySpecListenersAllowedRoutesNamespaces(obj.namespaces)
293
+ };
294
+ // filter undefined values
295
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
296
+ }
297
+ /** Converts an object of type 'GatewaySpecListenersTls' to JSON representation. */
298
+ /* eslint-disable max-len, quote-props */
299
+ function toJson_GatewaySpecListenersTls(obj) {
300
+ if (obj === undefined) {
301
+ return undefined;
302
+ }
303
+ const result = {
304
+ certificateRefs: obj.certificateRefs?.map(y => toJson_GatewaySpecListenersTlsCertificateRefs(y)),
305
+ mode: obj.mode,
306
+ options: obj.options === undefined
307
+ ? undefined
308
+ : Object.entries(obj.options).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {})
309
+ };
310
+ // filter undefined values
311
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
312
+ }
313
+ /** Converts an object of type 'GatewaySpecListenersAllowedRoutesKinds' to JSON representation. */
314
+ /* eslint-disable max-len, quote-props */
315
+ function toJson_GatewaySpecListenersAllowedRoutesKinds(obj) {
316
+ if (obj === undefined) {
317
+ return undefined;
318
+ }
319
+ const result = {
320
+ group: obj.group,
321
+ kind: obj.kind
322
+ };
323
+ // filter undefined values
324
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
325
+ }
326
+ /** Converts an object of type 'GatewaySpecListenersAllowedRoutesNamespaces' to JSON representation. */
327
+ /* eslint-disable max-len, quote-props */
328
+ function toJson_GatewaySpecListenersAllowedRoutesNamespaces(obj) {
329
+ if (obj === undefined) {
330
+ return undefined;
331
+ }
332
+ const result = {
333
+ from: obj.from,
334
+ selector: toJson_GatewaySpecListenersAllowedRoutesNamespacesSelector(obj.selector)
335
+ };
336
+ // filter undefined values
337
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
338
+ }
339
+ /** Converts an object of type 'GatewaySpecListenersTlsCertificateRefs' to JSON representation. */
340
+ /* eslint-disable max-len, quote-props */
341
+ function toJson_GatewaySpecListenersTlsCertificateRefs(obj) {
342
+ if (obj === undefined) {
343
+ return undefined;
344
+ }
345
+ const result = {
346
+ group: obj.group,
347
+ kind: obj.kind,
348
+ name: obj.name,
349
+ namespace: obj.namespace
350
+ };
351
+ // filter undefined values
352
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
353
+ }
354
+ /* eslint-enable max-len, quote-props */
355
+ /**
356
+ * Mode defines the TLS behavior for the TLS session initiated by the client. There are two possible
357
+ * modes:
358
+ *
359
+ * - Terminate: The TLS session between the downstream client and the Gateway is terminated at the
360
+ * Gateway. This mode requires certificates to be specified in some way, such as populating the
361
+ * certificateRefs field.
362
+ * - Passthrough: The TLS session is NOT terminated by the Gateway. This implies that the Gateway
363
+ * can't decipher the TLS stream except for the ClientHello message of the TLS protocol. The
364
+ * certificateRefs field is ignored in this mode.
365
+ *
366
+ * Support: Core
367
+ *
368
+ * @schema GatewaySpecListenersTlsMode
369
+ */
370
+ var GatewaySpecListenersTlsMode;
371
+ (function (GatewaySpecListenersTlsMode) {
372
+ /** Terminate */
373
+ GatewaySpecListenersTlsMode["TERMINATE"] = "Terminate";
374
+ /** Passthrough */
375
+ GatewaySpecListenersTlsMode["PASSTHROUGH"] = "Passthrough";
376
+ })(GatewaySpecListenersTlsMode || (exports.GatewaySpecListenersTlsMode = GatewaySpecListenersTlsMode = {}));
377
+ /**
378
+ * From indicates where Routes will be selected for this Gateway. Possible values are:
379
+ *
380
+ * - All: Routes in all namespaces may be used by this Gateway.
381
+ * - Selector: Routes in namespaces selected by the selector may be used by this Gateway.
382
+ * - Same: Only Routes in the same namespace may be used by this Gateway.
383
+ *
384
+ * Support: Core
385
+ *
386
+ * @schema GatewaySpecListenersAllowedRoutesNamespacesFrom
387
+ */
388
+ var GatewaySpecListenersAllowedRoutesNamespacesFrom;
389
+ (function (GatewaySpecListenersAllowedRoutesNamespacesFrom) {
390
+ /** All */
391
+ GatewaySpecListenersAllowedRoutesNamespacesFrom["ALL"] = "All";
392
+ /** Selector */
393
+ GatewaySpecListenersAllowedRoutesNamespacesFrom["SELECTOR"] = "Selector";
394
+ /** Same */
395
+ GatewaySpecListenersAllowedRoutesNamespacesFrom["SAME"] = "Same";
396
+ })(GatewaySpecListenersAllowedRoutesNamespacesFrom || (exports.GatewaySpecListenersAllowedRoutesNamespacesFrom = GatewaySpecListenersAllowedRoutesNamespacesFrom = {}));
397
+ /**
398
+ * Converts an object of type 'GatewaySpecListenersAllowedRoutesNamespacesSelector' to JSON
399
+ * representation.
400
+ */
401
+ /* eslint-disable max-len, quote-props */
402
+ function toJson_GatewaySpecListenersAllowedRoutesNamespacesSelector(obj) {
403
+ if (obj === undefined) {
404
+ return undefined;
405
+ }
406
+ const result = {
407
+ matchExpressions: obj.matchExpressions?.map(y => toJson_GatewaySpecListenersAllowedRoutesNamespacesSelectorMatchExpressions(y)),
408
+ matchLabels: obj.matchLabels === undefined
409
+ ? undefined
410
+ : Object.entries(obj.matchLabels).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {})
411
+ };
412
+ // filter undefined values
413
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
414
+ }
415
+ /**
416
+ * Converts an object of type 'GatewaySpecListenersAllowedRoutesNamespacesSelectorMatchExpressions'
417
+ * to JSON representation.
418
+ */
419
+ /* eslint-disable max-len, quote-props */
420
+ function toJson_GatewaySpecListenersAllowedRoutesNamespacesSelectorMatchExpressions(obj) {
421
+ if (obj === undefined) {
422
+ return undefined;
423
+ }
424
+ const result = {
425
+ key: obj.key,
426
+ operator: obj.operator,
427
+ values: obj.values?.map(y => y)
428
+ };
429
+ // filter undefined values
430
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
431
+ }
432
+ /* eslint-enable max-len, quote-props */
433
+ /**
434
+ * Gateway represents an instance of a service-traffic handling infrastructure by binding Listeners
435
+ * to a set of IP addresses.
436
+ *
437
+ * @schema GatewayV1Beta1
438
+ */
439
+ class GatewayV1Beta1 extends cdk8s_1.ApiObject {
440
+ /**
441
+ * Renders a Kubernetes manifest for "GatewayV1Beta1".
442
+ *
443
+ * This can be used to inline resource manifests inside other objects (e.g. as templates).
444
+ *
445
+ * @param props Initialization props
446
+ */
447
+ static manifest(props) {
448
+ return {
449
+ ...GatewayV1Beta1.GVK,
450
+ ...toJson_GatewayV1Beta1Props(props)
451
+ };
452
+ }
453
+ /**
454
+ * Defines a "GatewayV1Beta1" API object
455
+ *
456
+ * @param scope The scope in which to define this object
457
+ * @param id A scope-local name for the object
458
+ * @param props Initialization props
459
+ */
460
+ constructor(scope, id, props) {
461
+ super(scope, id, {
462
+ ...GatewayV1Beta1.GVK,
463
+ ...props
464
+ });
465
+ }
466
+ /** Renders the object to Kubernetes JSON. */
467
+ toJson() {
468
+ const resolved = super.toJson();
469
+ return {
470
+ ...GatewayV1Beta1.GVK,
471
+ ...toJson_GatewayV1Beta1Props(resolved)
472
+ };
473
+ }
474
+ }
475
+ exports.GatewayV1Beta1 = GatewayV1Beta1;
476
+ /** Returns the apiVersion and kind for "GatewayV1Beta1" */
477
+ GatewayV1Beta1.GVK = {
478
+ apiVersion: "gateway.networking.k8s.io/v1beta1",
479
+ kind: "Gateway"
480
+ };
481
+ /** Converts an object of type 'GatewayV1Beta1Props' to JSON representation. */
482
+ /* eslint-disable max-len, quote-props */
483
+ function toJson_GatewayV1Beta1Props(obj) {
484
+ if (obj === undefined) {
485
+ return undefined;
486
+ }
487
+ const result = {
488
+ metadata: obj.metadata,
489
+ spec: toJson_GatewayV1Beta1Spec(obj.spec)
490
+ };
491
+ // filter undefined values
492
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
493
+ }
494
+ /** Converts an object of type 'GatewayV1Beta1Spec' to JSON representation. */
495
+ /* eslint-disable max-len, quote-props */
496
+ function toJson_GatewayV1Beta1Spec(obj) {
497
+ if (obj === undefined) {
498
+ return undefined;
499
+ }
500
+ const result = {
501
+ addresses: obj.addresses?.map(y => toJson_GatewayV1Beta1SpecAddresses(y)),
502
+ gatewayClassName: obj.gatewayClassName,
503
+ infrastructure: toJson_GatewayV1Beta1SpecInfrastructure(obj.infrastructure),
504
+ listeners: obj.listeners?.map(y => toJson_GatewayV1Beta1SpecListeners(y))
505
+ };
506
+ // filter undefined values
507
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
508
+ }
509
+ /** Converts an object of type 'GatewayV1Beta1SpecAddresses' to JSON representation. */
510
+ /* eslint-disable max-len, quote-props */
511
+ function toJson_GatewayV1Beta1SpecAddresses(obj) {
512
+ if (obj === undefined) {
513
+ return undefined;
514
+ }
515
+ const result = {
516
+ type: obj.type,
517
+ value: obj.value
518
+ };
519
+ // filter undefined values
520
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
521
+ }
522
+ /** Converts an object of type 'GatewayV1Beta1SpecInfrastructure' to JSON representation. */
523
+ /* eslint-disable max-len, quote-props */
524
+ function toJson_GatewayV1Beta1SpecInfrastructure(obj) {
525
+ if (obj === undefined) {
526
+ return undefined;
527
+ }
528
+ const result = {
529
+ annotations: obj.annotations === undefined
530
+ ? undefined
531
+ : Object.entries(obj.annotations).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {}),
532
+ labels: obj.labels === undefined
533
+ ? undefined
534
+ : Object.entries(obj.labels).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {}),
535
+ parametersRef: toJson_GatewayV1Beta1SpecInfrastructureParametersRef(obj.parametersRef)
536
+ };
537
+ // filter undefined values
538
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
539
+ }
540
+ /** Converts an object of type 'GatewayV1Beta1SpecListeners' to JSON representation. */
541
+ /* eslint-disable max-len, quote-props */
542
+ function toJson_GatewayV1Beta1SpecListeners(obj) {
543
+ if (obj === undefined) {
544
+ return undefined;
545
+ }
546
+ const result = {
547
+ allowedRoutes: toJson_GatewayV1Beta1SpecListenersAllowedRoutes(obj.allowedRoutes),
548
+ hostname: obj.hostname,
549
+ name: obj.name,
550
+ port: obj.port,
551
+ protocol: obj.protocol,
552
+ tls: toJson_GatewayV1Beta1SpecListenersTls(obj.tls)
553
+ };
554
+ // filter undefined values
555
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
556
+ }
557
+ /**
558
+ * Converts an object of type 'GatewayV1Beta1SpecInfrastructureParametersRef' to JSON
559
+ * representation.
560
+ */
561
+ /* eslint-disable max-len, quote-props */
562
+ function toJson_GatewayV1Beta1SpecInfrastructureParametersRef(obj) {
563
+ if (obj === undefined) {
564
+ return undefined;
565
+ }
566
+ const result = {
567
+ group: obj.group,
568
+ kind: obj.kind,
569
+ name: obj.name
570
+ };
571
+ // filter undefined values
572
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
573
+ }
574
+ /** Converts an object of type 'GatewayV1Beta1SpecListenersAllowedRoutes' to JSON representation. */
575
+ /* eslint-disable max-len, quote-props */
576
+ function toJson_GatewayV1Beta1SpecListenersAllowedRoutes(obj) {
577
+ if (obj === undefined) {
578
+ return undefined;
579
+ }
580
+ const result = {
581
+ kinds: obj.kinds?.map(y => toJson_GatewayV1Beta1SpecListenersAllowedRoutesKinds(y)),
582
+ namespaces: toJson_GatewayV1Beta1SpecListenersAllowedRoutesNamespaces(obj.namespaces)
583
+ };
584
+ // filter undefined values
585
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
586
+ }
587
+ /** Converts an object of type 'GatewayV1Beta1SpecListenersTls' to JSON representation. */
588
+ /* eslint-disable max-len, quote-props */
589
+ function toJson_GatewayV1Beta1SpecListenersTls(obj) {
590
+ if (obj === undefined) {
591
+ return undefined;
592
+ }
593
+ const result = {
594
+ certificateRefs: obj.certificateRefs?.map(y => toJson_GatewayV1Beta1SpecListenersTlsCertificateRefs(y)),
595
+ mode: obj.mode,
596
+ options: obj.options === undefined
597
+ ? undefined
598
+ : Object.entries(obj.options).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {})
599
+ };
600
+ // filter undefined values
601
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
602
+ }
603
+ /**
604
+ * Converts an object of type 'GatewayV1Beta1SpecListenersAllowedRoutesKinds' to JSON
605
+ * representation.
606
+ */
607
+ /* eslint-disable max-len, quote-props */
608
+ function toJson_GatewayV1Beta1SpecListenersAllowedRoutesKinds(obj) {
609
+ if (obj === undefined) {
610
+ return undefined;
611
+ }
612
+ const result = {
613
+ group: obj.group,
614
+ kind: obj.kind
615
+ };
616
+ // filter undefined values
617
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
618
+ }
619
+ /**
620
+ * Converts an object of type 'GatewayV1Beta1SpecListenersAllowedRoutesNamespaces' to JSON
621
+ * representation.
622
+ */
623
+ /* eslint-disable max-len, quote-props */
624
+ function toJson_GatewayV1Beta1SpecListenersAllowedRoutesNamespaces(obj) {
625
+ if (obj === undefined) {
626
+ return undefined;
627
+ }
628
+ const result = {
629
+ from: obj.from,
630
+ selector: toJson_GatewayV1Beta1SpecListenersAllowedRoutesNamespacesSelector(obj.selector)
631
+ };
632
+ // filter undefined values
633
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
634
+ }
635
+ /**
636
+ * Converts an object of type 'GatewayV1Beta1SpecListenersTlsCertificateRefs' to JSON
637
+ * representation.
638
+ */
639
+ /* eslint-disable max-len, quote-props */
640
+ function toJson_GatewayV1Beta1SpecListenersTlsCertificateRefs(obj) {
641
+ if (obj === undefined) {
642
+ return undefined;
643
+ }
644
+ const result = {
645
+ group: obj.group,
646
+ kind: obj.kind,
647
+ name: obj.name,
648
+ namespace: obj.namespace
649
+ };
650
+ // filter undefined values
651
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
652
+ }
653
+ /* eslint-enable max-len, quote-props */
654
+ /**
655
+ * Mode defines the TLS behavior for the TLS session initiated by the client. There are two possible
656
+ * modes:
657
+ *
658
+ * - Terminate: The TLS session between the downstream client and the Gateway is terminated at the
659
+ * Gateway. This mode requires certificates to be specified in some way, such as populating the
660
+ * certificateRefs field.
661
+ * - Passthrough: The TLS session is NOT terminated by the Gateway. This implies that the Gateway
662
+ * can't decipher the TLS stream except for the ClientHello message of the TLS protocol. The
663
+ * certificateRefs field is ignored in this mode.
664
+ *
665
+ * Support: Core
666
+ *
667
+ * @schema GatewayV1Beta1SpecListenersTlsMode
668
+ */
669
+ var GatewayV1Beta1SpecListenersTlsMode;
670
+ (function (GatewayV1Beta1SpecListenersTlsMode) {
671
+ /** Terminate */
672
+ GatewayV1Beta1SpecListenersTlsMode["TERMINATE"] = "Terminate";
673
+ /** Passthrough */
674
+ GatewayV1Beta1SpecListenersTlsMode["PASSTHROUGH"] = "Passthrough";
675
+ })(GatewayV1Beta1SpecListenersTlsMode || (exports.GatewayV1Beta1SpecListenersTlsMode = GatewayV1Beta1SpecListenersTlsMode = {}));
676
+ /**
677
+ * From indicates where Routes will be selected for this Gateway. Possible values are:
678
+ *
679
+ * - All: Routes in all namespaces may be used by this Gateway.
680
+ * - Selector: Routes in namespaces selected by the selector may be used by this Gateway.
681
+ * - Same: Only Routes in the same namespace may be used by this Gateway.
682
+ *
683
+ * Support: Core
684
+ *
685
+ * @schema GatewayV1Beta1SpecListenersAllowedRoutesNamespacesFrom
686
+ */
687
+ var GatewayV1Beta1SpecListenersAllowedRoutesNamespacesFrom;
688
+ (function (GatewayV1Beta1SpecListenersAllowedRoutesNamespacesFrom) {
689
+ /** All */
690
+ GatewayV1Beta1SpecListenersAllowedRoutesNamespacesFrom["ALL"] = "All";
691
+ /** Selector */
692
+ GatewayV1Beta1SpecListenersAllowedRoutesNamespacesFrom["SELECTOR"] = "Selector";
693
+ /** Same */
694
+ GatewayV1Beta1SpecListenersAllowedRoutesNamespacesFrom["SAME"] = "Same";
695
+ })(GatewayV1Beta1SpecListenersAllowedRoutesNamespacesFrom || (exports.GatewayV1Beta1SpecListenersAllowedRoutesNamespacesFrom = GatewayV1Beta1SpecListenersAllowedRoutesNamespacesFrom = {}));
696
+ /**
697
+ * Converts an object of type 'GatewayV1Beta1SpecListenersAllowedRoutesNamespacesSelector' to JSON
698
+ * representation.
699
+ */
700
+ /* eslint-disable max-len, quote-props */
701
+ function toJson_GatewayV1Beta1SpecListenersAllowedRoutesNamespacesSelector(obj) {
702
+ if (obj === undefined) {
703
+ return undefined;
704
+ }
705
+ const result = {
706
+ matchExpressions: obj.matchExpressions?.map(y => toJson_GatewayV1Beta1SpecListenersAllowedRoutesNamespacesSelectorMatchExpressions(y)),
707
+ matchLabels: obj.matchLabels === undefined
708
+ ? undefined
709
+ : Object.entries(obj.matchLabels).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {})
710
+ };
711
+ // filter undefined values
712
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
713
+ }
714
+ /**
715
+ * Converts an object of type
716
+ * 'GatewayV1Beta1SpecListenersAllowedRoutesNamespacesSelectorMatchExpressions' to JSON
717
+ * representation.
718
+ */
719
+ /* eslint-disable max-len, quote-props */
720
+ function toJson_GatewayV1Beta1SpecListenersAllowedRoutesNamespacesSelectorMatchExpressions(obj) {
721
+ if (obj === undefined) {
722
+ return undefined;
723
+ }
724
+ const result = {
725
+ key: obj.key,
726
+ operator: obj.operator,
727
+ values: obj.values?.map(y => y)
728
+ };
729
+ // filter undefined values
730
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
731
+ }
732
+ /* eslint-enable max-len, quote-props */
733
+ /**
734
+ * GatewayClass describes a class of Gateways available to the user for creating Gateway resources.
735
+ *
736
+ * It is recommended that this resource be used as a template for Gateways. This means that a
737
+ * Gateway is based on the state of the GatewayClass at the time it was created and changes to the
738
+ * GatewayClass or associated parameters are not propagated down to existing Gateways. This
739
+ * recommendation is intended to limit the blast radius of changes to GatewayClass or associated
740
+ * parameters. If implementations choose to propagate GatewayClass changes to existing Gateways,
741
+ * that MUST be clearly documented by the implementation.
742
+ *
743
+ * Whenever one or more Gateways are using a GatewayClass, implementations SHOULD add the
744
+ * `gateway-exists-finalizer.gateway.networking.k8s.io` finalizer on the associated GatewayClass.
745
+ * This ensures that a GatewayClass associated with a Gateway is not deleted while in use.
746
+ *
747
+ * GatewayClass is a Cluster level resource.
748
+ *
749
+ * @schema GatewayClass
750
+ */
751
+ class GatewayClass extends cdk8s_1.ApiObject {
752
+ /**
753
+ * Renders a Kubernetes manifest for "GatewayClass".
754
+ *
755
+ * This can be used to inline resource manifests inside other objects (e.g. as templates).
756
+ *
757
+ * @param props Initialization props
758
+ */
759
+ static manifest(props) {
760
+ return {
761
+ ...GatewayClass.GVK,
762
+ ...toJson_GatewayClassProps(props)
763
+ };
764
+ }
765
+ /**
766
+ * Defines a "GatewayClass" API object
767
+ *
768
+ * @param scope The scope in which to define this object
769
+ * @param id A scope-local name for the object
770
+ * @param props Initialization props
771
+ */
772
+ constructor(scope, id, props) {
773
+ super(scope, id, {
774
+ ...GatewayClass.GVK,
775
+ ...props
776
+ });
777
+ }
778
+ /** Renders the object to Kubernetes JSON. */
779
+ toJson() {
780
+ const resolved = super.toJson();
781
+ return {
782
+ ...GatewayClass.GVK,
783
+ ...toJson_GatewayClassProps(resolved)
784
+ };
785
+ }
786
+ }
787
+ exports.GatewayClass = GatewayClass;
788
+ /** Returns the apiVersion and kind for "GatewayClass" */
789
+ GatewayClass.GVK = {
790
+ apiVersion: "gateway.networking.k8s.io/v1",
791
+ kind: "GatewayClass"
792
+ };
793
+ /** Converts an object of type 'GatewayClassProps' to JSON representation. */
794
+ /* eslint-disable max-len, quote-props */
795
+ function toJson_GatewayClassProps(obj) {
796
+ if (obj === undefined) {
797
+ return undefined;
798
+ }
799
+ const result = {
800
+ metadata: obj.metadata,
801
+ spec: toJson_GatewayClassSpec(obj.spec)
802
+ };
803
+ // filter undefined values
804
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
805
+ }
806
+ /** Converts an object of type 'GatewayClassSpec' to JSON representation. */
807
+ /* eslint-disable max-len, quote-props */
808
+ function toJson_GatewayClassSpec(obj) {
809
+ if (obj === undefined) {
810
+ return undefined;
811
+ }
812
+ const result = {
813
+ controllerName: obj.controllerName,
814
+ description: obj.description,
815
+ parametersRef: toJson_GatewayClassSpecParametersRef(obj.parametersRef)
816
+ };
817
+ // filter undefined values
818
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
819
+ }
820
+ /** Converts an object of type 'GatewayClassSpecParametersRef' to JSON representation. */
821
+ /* eslint-disable max-len, quote-props */
822
+ function toJson_GatewayClassSpecParametersRef(obj) {
823
+ if (obj === undefined) {
824
+ return undefined;
825
+ }
826
+ const result = {
827
+ group: obj.group,
828
+ kind: obj.kind,
829
+ name: obj.name,
830
+ namespace: obj.namespace
831
+ };
832
+ // filter undefined values
833
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
834
+ }
835
+ /* eslint-enable max-len, quote-props */
836
+ /**
837
+ * GatewayClass describes a class of Gateways available to the user for creating Gateway resources.
838
+ *
839
+ * It is recommended that this resource be used as a template for Gateways. This means that a
840
+ * Gateway is based on the state of the GatewayClass at the time it was created and changes to the
841
+ * GatewayClass or associated parameters are not propagated down to existing Gateways. This
842
+ * recommendation is intended to limit the blast radius of changes to GatewayClass or associated
843
+ * parameters. If implementations choose to propagate GatewayClass changes to existing Gateways,
844
+ * that MUST be clearly documented by the implementation.
845
+ *
846
+ * Whenever one or more Gateways are using a GatewayClass, implementations SHOULD add the
847
+ * `gateway-exists-finalizer.gateway.networking.k8s.io` finalizer on the associated GatewayClass.
848
+ * This ensures that a GatewayClass associated with a Gateway is not deleted while in use.
849
+ *
850
+ * GatewayClass is a Cluster level resource.
851
+ *
852
+ * @schema GatewayClassV1Beta1
853
+ */
854
+ class GatewayClassV1Beta1 extends cdk8s_1.ApiObject {
855
+ /**
856
+ * Renders a Kubernetes manifest for "GatewayClassV1Beta1".
857
+ *
858
+ * This can be used to inline resource manifests inside other objects (e.g. as templates).
859
+ *
860
+ * @param props Initialization props
861
+ */
862
+ static manifest(props) {
863
+ return {
864
+ ...GatewayClassV1Beta1.GVK,
865
+ ...toJson_GatewayClassV1Beta1Props(props)
866
+ };
867
+ }
868
+ /**
869
+ * Defines a "GatewayClassV1Beta1" API object
870
+ *
871
+ * @param scope The scope in which to define this object
872
+ * @param id A scope-local name for the object
873
+ * @param props Initialization props
874
+ */
875
+ constructor(scope, id, props) {
876
+ super(scope, id, {
877
+ ...GatewayClassV1Beta1.GVK,
878
+ ...props
879
+ });
880
+ }
881
+ /** Renders the object to Kubernetes JSON. */
882
+ toJson() {
883
+ const resolved = super.toJson();
884
+ return {
885
+ ...GatewayClassV1Beta1.GVK,
886
+ ...toJson_GatewayClassV1Beta1Props(resolved)
887
+ };
888
+ }
889
+ }
890
+ exports.GatewayClassV1Beta1 = GatewayClassV1Beta1;
891
+ /** Returns the apiVersion and kind for "GatewayClassV1Beta1" */
892
+ GatewayClassV1Beta1.GVK = {
893
+ apiVersion: "gateway.networking.k8s.io/v1beta1",
894
+ kind: "GatewayClass"
895
+ };
896
+ /** Converts an object of type 'GatewayClassV1Beta1Props' to JSON representation. */
897
+ /* eslint-disable max-len, quote-props */
898
+ function toJson_GatewayClassV1Beta1Props(obj) {
899
+ if (obj === undefined) {
900
+ return undefined;
901
+ }
902
+ const result = {
903
+ metadata: obj.metadata,
904
+ spec: toJson_GatewayClassV1Beta1Spec(obj.spec)
905
+ };
906
+ // filter undefined values
907
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
908
+ }
909
+ /** Converts an object of type 'GatewayClassV1Beta1Spec' to JSON representation. */
910
+ /* eslint-disable max-len, quote-props */
911
+ function toJson_GatewayClassV1Beta1Spec(obj) {
912
+ if (obj === undefined) {
913
+ return undefined;
914
+ }
915
+ const result = {
916
+ controllerName: obj.controllerName,
917
+ description: obj.description,
918
+ parametersRef: toJson_GatewayClassV1Beta1SpecParametersRef(obj.parametersRef)
919
+ };
920
+ // filter undefined values
921
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
922
+ }
923
+ /** Converts an object of type 'GatewayClassV1Beta1SpecParametersRef' to JSON representation. */
924
+ /* eslint-disable max-len, quote-props */
925
+ function toJson_GatewayClassV1Beta1SpecParametersRef(obj) {
926
+ if (obj === undefined) {
927
+ return undefined;
928
+ }
929
+ const result = {
930
+ group: obj.group,
931
+ kind: obj.kind,
932
+ name: obj.name,
933
+ namespace: obj.namespace
934
+ };
935
+ // filter undefined values
936
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
937
+ }
938
+ /* eslint-enable max-len, quote-props */
939
+ /**
940
+ * GRPCRoute provides a way to route gRPC requests. This includes the capability to match requests
941
+ * by hostname, gRPC service, gRPC method, or HTTP/2 header. Filters can be used to specify
942
+ * additional processing steps. Backends specify where matching requests will be routed.
943
+ *
944
+ * GRPCRoute falls under extended support within the Gateway API. Within the following
945
+ * specification, the word "MUST" indicates that an implementation supporting GRPCRoute must conform
946
+ * to the indicated requirement, but an implementation not supporting this route type need not
947
+ * follow the requirement unless explicitly indicated.
948
+ *
949
+ * Implementations supporting `GRPCRoute` with the `HTTPS` `ProtocolType` MUST accept HTTP/2
950
+ * connections without an initial upgrade from HTTP/1.1, i.e. via ALPN. If the implementation does
951
+ * not support this, then it MUST set the "Accepted" condition to "False" for the affected listener
952
+ * with a reason of "UnsupportedProtocol". Implementations MAY also accept HTTP/2 connections with
953
+ * an upgrade from HTTP/1.
954
+ *
955
+ * Implementations supporting `GRPCRoute` with the `HTTP` `ProtocolType` MUST support HTTP/2 over
956
+ * cleartext TCP (h2c, https://www.rfc-editor.org/rfc/rfc7540#section-3.1) without an initial
957
+ * upgrade from HTTP/1.1, i.e. with prior knowledge
958
+ * (https://www.rfc-editor.org/rfc/rfc7540#section-3.4). If the implementation does not support
959
+ * this, then it MUST set the "Accepted" condition to "False" for the affected listener with a
960
+ * reason of "UnsupportedProtocol". Implementations MAY also accept HTTP/2 connections with an
961
+ * upgrade from HTTP/1, i.e. without prior knowledge.
962
+ *
963
+ * @schema GRPCRoute
964
+ */
965
+ class GrpcRoute extends cdk8s_1.ApiObject {
966
+ /**
967
+ * Renders a Kubernetes manifest for "GRPCRoute".
968
+ *
969
+ * This can be used to inline resource manifests inside other objects (e.g. as templates).
970
+ *
971
+ * @param props Initialization props
972
+ */
973
+ static manifest(props = {}) {
974
+ return {
975
+ ...GrpcRoute.GVK,
976
+ ...toJson_GrpcRouteProps(props)
977
+ };
978
+ }
979
+ /**
980
+ * Defines a "GRPCRoute" API object
981
+ *
982
+ * @param scope The scope in which to define this object
983
+ * @param id A scope-local name for the object
984
+ * @param props Initialization props
985
+ */
986
+ constructor(scope, id, props = {}) {
987
+ super(scope, id, {
988
+ ...GrpcRoute.GVK,
989
+ ...props
990
+ });
991
+ }
992
+ /** Renders the object to Kubernetes JSON. */
993
+ toJson() {
994
+ const resolved = super.toJson();
995
+ return {
996
+ ...GrpcRoute.GVK,
997
+ ...toJson_GrpcRouteProps(resolved)
998
+ };
999
+ }
1000
+ }
1001
+ exports.GrpcRoute = GrpcRoute;
1002
+ /** Returns the apiVersion and kind for "GRPCRoute" */
1003
+ GrpcRoute.GVK = {
1004
+ apiVersion: "gateway.networking.k8s.io/v1",
1005
+ kind: "GRPCRoute"
1006
+ };
1007
+ /** Converts an object of type 'GrpcRouteProps' to JSON representation. */
1008
+ /* eslint-disable max-len, quote-props */
1009
+ function toJson_GrpcRouteProps(obj) {
1010
+ if (obj === undefined) {
1011
+ return undefined;
1012
+ }
1013
+ const result = {
1014
+ metadata: obj.metadata,
1015
+ spec: toJson_GrpcRouteSpec(obj.spec)
1016
+ };
1017
+ // filter undefined values
1018
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1019
+ }
1020
+ /** Converts an object of type 'GrpcRouteSpec' to JSON representation. */
1021
+ /* eslint-disable max-len, quote-props */
1022
+ function toJson_GrpcRouteSpec(obj) {
1023
+ if (obj === undefined) {
1024
+ return undefined;
1025
+ }
1026
+ const result = {
1027
+ hostnames: obj.hostnames?.map(y => y),
1028
+ parentRefs: obj.parentRefs?.map(y => toJson_GrpcRouteSpecParentRefs(y)),
1029
+ rules: obj.rules?.map(y => toJson_GrpcRouteSpecRules(y))
1030
+ };
1031
+ // filter undefined values
1032
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1033
+ }
1034
+ /** Converts an object of type 'GrpcRouteSpecParentRefs' to JSON representation. */
1035
+ /* eslint-disable max-len, quote-props */
1036
+ function toJson_GrpcRouteSpecParentRefs(obj) {
1037
+ if (obj === undefined) {
1038
+ return undefined;
1039
+ }
1040
+ const result = {
1041
+ group: obj.group,
1042
+ kind: obj.kind,
1043
+ name: obj.name,
1044
+ namespace: obj.namespace,
1045
+ port: obj.port,
1046
+ sectionName: obj.sectionName
1047
+ };
1048
+ // filter undefined values
1049
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1050
+ }
1051
+ /** Converts an object of type 'GrpcRouteSpecRules' to JSON representation. */
1052
+ /* eslint-disable max-len, quote-props */
1053
+ function toJson_GrpcRouteSpecRules(obj) {
1054
+ if (obj === undefined) {
1055
+ return undefined;
1056
+ }
1057
+ const result = {
1058
+ backendRefs: obj.backendRefs?.map(y => toJson_GrpcRouteSpecRulesBackendRefs(y)),
1059
+ filters: obj.filters?.map(y => toJson_GrpcRouteSpecRulesFilters(y)),
1060
+ matches: obj.matches?.map(y => toJson_GrpcRouteSpecRulesMatches(y))
1061
+ };
1062
+ // filter undefined values
1063
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1064
+ }
1065
+ /** Converts an object of type 'GrpcRouteSpecRulesBackendRefs' to JSON representation. */
1066
+ /* eslint-disable max-len, quote-props */
1067
+ function toJson_GrpcRouteSpecRulesBackendRefs(obj) {
1068
+ if (obj === undefined) {
1069
+ return undefined;
1070
+ }
1071
+ const result = {
1072
+ filters: obj.filters?.map(y => toJson_GrpcRouteSpecRulesBackendRefsFilters(y)),
1073
+ group: obj.group,
1074
+ kind: obj.kind,
1075
+ name: obj.name,
1076
+ namespace: obj.namespace,
1077
+ port: obj.port,
1078
+ weight: obj.weight
1079
+ };
1080
+ // filter undefined values
1081
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1082
+ }
1083
+ /** Converts an object of type 'GrpcRouteSpecRulesFilters' to JSON representation. */
1084
+ /* eslint-disable max-len, quote-props */
1085
+ function toJson_GrpcRouteSpecRulesFilters(obj) {
1086
+ if (obj === undefined) {
1087
+ return undefined;
1088
+ }
1089
+ const result = {
1090
+ extensionRef: toJson_GrpcRouteSpecRulesFiltersExtensionRef(obj.extensionRef),
1091
+ requestHeaderModifier: toJson_GrpcRouteSpecRulesFiltersRequestHeaderModifier(obj.requestHeaderModifier),
1092
+ requestMirror: toJson_GrpcRouteSpecRulesFiltersRequestMirror(obj.requestMirror),
1093
+ responseHeaderModifier: toJson_GrpcRouteSpecRulesFiltersResponseHeaderModifier(obj.responseHeaderModifier),
1094
+ type: obj.type
1095
+ };
1096
+ // filter undefined values
1097
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1098
+ }
1099
+ /** Converts an object of type 'GrpcRouteSpecRulesMatches' to JSON representation. */
1100
+ /* eslint-disable max-len, quote-props */
1101
+ function toJson_GrpcRouteSpecRulesMatches(obj) {
1102
+ if (obj === undefined) {
1103
+ return undefined;
1104
+ }
1105
+ const result = {
1106
+ headers: obj.headers?.map(y => toJson_GrpcRouteSpecRulesMatchesHeaders(y)),
1107
+ method: toJson_GrpcRouteSpecRulesMatchesMethod(obj.method)
1108
+ };
1109
+ // filter undefined values
1110
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1111
+ }
1112
+ /** Converts an object of type 'GrpcRouteSpecRulesBackendRefsFilters' to JSON representation. */
1113
+ /* eslint-disable max-len, quote-props */
1114
+ function toJson_GrpcRouteSpecRulesBackendRefsFilters(obj) {
1115
+ if (obj === undefined) {
1116
+ return undefined;
1117
+ }
1118
+ const result = {
1119
+ extensionRef: toJson_GrpcRouteSpecRulesBackendRefsFiltersExtensionRef(obj.extensionRef),
1120
+ requestHeaderModifier: toJson_GrpcRouteSpecRulesBackendRefsFiltersRequestHeaderModifier(obj.requestHeaderModifier),
1121
+ requestMirror: toJson_GrpcRouteSpecRulesBackendRefsFiltersRequestMirror(obj.requestMirror),
1122
+ responseHeaderModifier: toJson_GrpcRouteSpecRulesBackendRefsFiltersResponseHeaderModifier(obj.responseHeaderModifier),
1123
+ type: obj.type
1124
+ };
1125
+ // filter undefined values
1126
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1127
+ }
1128
+ /** Converts an object of type 'GrpcRouteSpecRulesFiltersExtensionRef' to JSON representation. */
1129
+ /* eslint-disable max-len, quote-props */
1130
+ function toJson_GrpcRouteSpecRulesFiltersExtensionRef(obj) {
1131
+ if (obj === undefined) {
1132
+ return undefined;
1133
+ }
1134
+ const result = {
1135
+ group: obj.group,
1136
+ kind: obj.kind,
1137
+ name: obj.name
1138
+ };
1139
+ // filter undefined values
1140
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1141
+ }
1142
+ /**
1143
+ * Converts an object of type 'GrpcRouteSpecRulesFiltersRequestHeaderModifier' to JSON
1144
+ * representation.
1145
+ */
1146
+ /* eslint-disable max-len, quote-props */
1147
+ function toJson_GrpcRouteSpecRulesFiltersRequestHeaderModifier(obj) {
1148
+ if (obj === undefined) {
1149
+ return undefined;
1150
+ }
1151
+ const result = {
1152
+ add: obj.add?.map(y => toJson_GrpcRouteSpecRulesFiltersRequestHeaderModifierAdd(y)),
1153
+ remove: obj.remove?.map(y => y),
1154
+ set: obj.set?.map(y => toJson_GrpcRouteSpecRulesFiltersRequestHeaderModifierSet(y))
1155
+ };
1156
+ // filter undefined values
1157
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1158
+ }
1159
+ /** Converts an object of type 'GrpcRouteSpecRulesFiltersRequestMirror' to JSON representation. */
1160
+ /* eslint-disable max-len, quote-props */
1161
+ function toJson_GrpcRouteSpecRulesFiltersRequestMirror(obj) {
1162
+ if (obj === undefined) {
1163
+ return undefined;
1164
+ }
1165
+ const result = {
1166
+ backendRef: toJson_GrpcRouteSpecRulesFiltersRequestMirrorBackendRef(obj.backendRef)
1167
+ };
1168
+ // filter undefined values
1169
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1170
+ }
1171
+ /**
1172
+ * Converts an object of type 'GrpcRouteSpecRulesFiltersResponseHeaderModifier' to JSON
1173
+ * representation.
1174
+ */
1175
+ /* eslint-disable max-len, quote-props */
1176
+ function toJson_GrpcRouteSpecRulesFiltersResponseHeaderModifier(obj) {
1177
+ if (obj === undefined) {
1178
+ return undefined;
1179
+ }
1180
+ const result = {
1181
+ add: obj.add?.map(y => toJson_GrpcRouteSpecRulesFiltersResponseHeaderModifierAdd(y)),
1182
+ remove: obj.remove?.map(y => y),
1183
+ set: obj.set?.map(y => toJson_GrpcRouteSpecRulesFiltersResponseHeaderModifierSet(y))
1184
+ };
1185
+ // filter undefined values
1186
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1187
+ }
1188
+ /* eslint-enable max-len, quote-props */
1189
+ /**
1190
+ * Type identifies the type of filter to apply. As with other API fields, types are classified into
1191
+ * three conformance levels:
1192
+ *
1193
+ * - Core: Filter types and their corresponding configuration defined by "Support: Core" in this
1194
+ * package, e.g. "RequestHeaderModifier". All implementations supporting GRPCRoute MUST support
1195
+ * core filters.
1196
+ * - Extended: Filter types and their corresponding configuration defined by "Support: Extended" in
1197
+ * this package, e.g. "RequestMirror". Implementers are encouraged to support extended filters.
1198
+ * - Implementation-specific: Filters that are defined and supported by specific vendors. In the
1199
+ * future, filters showing convergence in behavior across multiple implementations will be
1200
+ * considered for inclusion in extended or core conformance levels. Filter-specific configuration
1201
+ * for such filters is specified using the ExtensionRef field. `Type` MUST be set to
1202
+ * "ExtensionRef" for custom filters.
1203
+ *
1204
+ * Implementers are encouraged to define custom implementation types to extend the core API with
1205
+ * implementation-specific behavior.
1206
+ *
1207
+ * If a reference to a custom filter type cannot be resolved, the filter MUST NOT be skipped.
1208
+ * Instead, requests that would have been processed by that filter MUST receive a HTTP error
1209
+ * response.
1210
+ *
1211
+ * @schema GrpcRouteSpecRulesFiltersType
1212
+ */
1213
+ var GrpcRouteSpecRulesFiltersType;
1214
+ (function (GrpcRouteSpecRulesFiltersType) {
1215
+ /** ResponseHeaderModifier */
1216
+ GrpcRouteSpecRulesFiltersType["RESPONSE_HEADER_MODIFIER"] = "ResponseHeaderModifier";
1217
+ /** RequestHeaderModifier */
1218
+ GrpcRouteSpecRulesFiltersType["REQUEST_HEADER_MODIFIER"] = "RequestHeaderModifier";
1219
+ /** RequestMirror */
1220
+ GrpcRouteSpecRulesFiltersType["REQUEST_MIRROR"] = "RequestMirror";
1221
+ /** ExtensionRef */
1222
+ GrpcRouteSpecRulesFiltersType["EXTENSION_REF"] = "ExtensionRef";
1223
+ })(GrpcRouteSpecRulesFiltersType || (exports.GrpcRouteSpecRulesFiltersType = GrpcRouteSpecRulesFiltersType = {}));
1224
+ /** Converts an object of type 'GrpcRouteSpecRulesMatchesHeaders' to JSON representation. */
1225
+ /* eslint-disable max-len, quote-props */
1226
+ function toJson_GrpcRouteSpecRulesMatchesHeaders(obj) {
1227
+ if (obj === undefined) {
1228
+ return undefined;
1229
+ }
1230
+ const result = {
1231
+ name: obj.name,
1232
+ type: obj.type,
1233
+ value: obj.value
1234
+ };
1235
+ // filter undefined values
1236
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1237
+ }
1238
+ /** Converts an object of type 'GrpcRouteSpecRulesMatchesMethod' to JSON representation. */
1239
+ /* eslint-disable max-len, quote-props */
1240
+ function toJson_GrpcRouteSpecRulesMatchesMethod(obj) {
1241
+ if (obj === undefined) {
1242
+ return undefined;
1243
+ }
1244
+ const result = {
1245
+ method: obj.method,
1246
+ service: obj.service,
1247
+ type: obj.type
1248
+ };
1249
+ // filter undefined values
1250
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1251
+ }
1252
+ /**
1253
+ * Converts an object of type 'GrpcRouteSpecRulesBackendRefsFiltersExtensionRef' to JSON
1254
+ * representation.
1255
+ */
1256
+ /* eslint-disable max-len, quote-props */
1257
+ function toJson_GrpcRouteSpecRulesBackendRefsFiltersExtensionRef(obj) {
1258
+ if (obj === undefined) {
1259
+ return undefined;
1260
+ }
1261
+ const result = {
1262
+ group: obj.group,
1263
+ kind: obj.kind,
1264
+ name: obj.name
1265
+ };
1266
+ // filter undefined values
1267
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1268
+ }
1269
+ /**
1270
+ * Converts an object of type 'GrpcRouteSpecRulesBackendRefsFiltersRequestHeaderModifier' to JSON
1271
+ * representation.
1272
+ */
1273
+ /* eslint-disable max-len, quote-props */
1274
+ function toJson_GrpcRouteSpecRulesBackendRefsFiltersRequestHeaderModifier(obj) {
1275
+ if (obj === undefined) {
1276
+ return undefined;
1277
+ }
1278
+ const result = {
1279
+ add: obj.add?.map(y => toJson_GrpcRouteSpecRulesBackendRefsFiltersRequestHeaderModifierAdd(y)),
1280
+ remove: obj.remove?.map(y => y),
1281
+ set: obj.set?.map(y => toJson_GrpcRouteSpecRulesBackendRefsFiltersRequestHeaderModifierSet(y))
1282
+ };
1283
+ // filter undefined values
1284
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1285
+ }
1286
+ /**
1287
+ * Converts an object of type 'GrpcRouteSpecRulesBackendRefsFiltersRequestMirror' to JSON
1288
+ * representation.
1289
+ */
1290
+ /* eslint-disable max-len, quote-props */
1291
+ function toJson_GrpcRouteSpecRulesBackendRefsFiltersRequestMirror(obj) {
1292
+ if (obj === undefined) {
1293
+ return undefined;
1294
+ }
1295
+ const result = {
1296
+ backendRef: toJson_GrpcRouteSpecRulesBackendRefsFiltersRequestMirrorBackendRef(obj.backendRef)
1297
+ };
1298
+ // filter undefined values
1299
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1300
+ }
1301
+ /**
1302
+ * Converts an object of type 'GrpcRouteSpecRulesBackendRefsFiltersResponseHeaderModifier' to JSON
1303
+ * representation.
1304
+ */
1305
+ /* eslint-disable max-len, quote-props */
1306
+ function toJson_GrpcRouteSpecRulesBackendRefsFiltersResponseHeaderModifier(obj) {
1307
+ if (obj === undefined) {
1308
+ return undefined;
1309
+ }
1310
+ const result = {
1311
+ add: obj.add?.map(y => toJson_GrpcRouteSpecRulesBackendRefsFiltersResponseHeaderModifierAdd(y)),
1312
+ remove: obj.remove?.map(y => y),
1313
+ set: obj.set?.map(y => toJson_GrpcRouteSpecRulesBackendRefsFiltersResponseHeaderModifierSet(y))
1314
+ };
1315
+ // filter undefined values
1316
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1317
+ }
1318
+ /* eslint-enable max-len, quote-props */
1319
+ /**
1320
+ * Type identifies the type of filter to apply. As with other API fields, types are classified into
1321
+ * three conformance levels:
1322
+ *
1323
+ * - Core: Filter types and their corresponding configuration defined by "Support: Core" in this
1324
+ * package, e.g. "RequestHeaderModifier". All implementations supporting GRPCRoute MUST support
1325
+ * core filters.
1326
+ * - Extended: Filter types and their corresponding configuration defined by "Support: Extended" in
1327
+ * this package, e.g. "RequestMirror". Implementers are encouraged to support extended filters.
1328
+ * - Implementation-specific: Filters that are defined and supported by specific vendors. In the
1329
+ * future, filters showing convergence in behavior across multiple implementations will be
1330
+ * considered for inclusion in extended or core conformance levels. Filter-specific configuration
1331
+ * for such filters is specified using the ExtensionRef field. `Type` MUST be set to
1332
+ * "ExtensionRef" for custom filters.
1333
+ *
1334
+ * Implementers are encouraged to define custom implementation types to extend the core API with
1335
+ * implementation-specific behavior.
1336
+ *
1337
+ * If a reference to a custom filter type cannot be resolved, the filter MUST NOT be skipped.
1338
+ * Instead, requests that would have been processed by that filter MUST receive a HTTP error
1339
+ * response.
1340
+ *
1341
+ * @schema GrpcRouteSpecRulesBackendRefsFiltersType
1342
+ */
1343
+ var GrpcRouteSpecRulesBackendRefsFiltersType;
1344
+ (function (GrpcRouteSpecRulesBackendRefsFiltersType) {
1345
+ /** ResponseHeaderModifier */
1346
+ GrpcRouteSpecRulesBackendRefsFiltersType["RESPONSE_HEADER_MODIFIER"] = "ResponseHeaderModifier";
1347
+ /** RequestHeaderModifier */
1348
+ GrpcRouteSpecRulesBackendRefsFiltersType["REQUEST_HEADER_MODIFIER"] = "RequestHeaderModifier";
1349
+ /** RequestMirror */
1350
+ GrpcRouteSpecRulesBackendRefsFiltersType["REQUEST_MIRROR"] = "RequestMirror";
1351
+ /** ExtensionRef */
1352
+ GrpcRouteSpecRulesBackendRefsFiltersType["EXTENSION_REF"] = "ExtensionRef";
1353
+ })(GrpcRouteSpecRulesBackendRefsFiltersType || (exports.GrpcRouteSpecRulesBackendRefsFiltersType = GrpcRouteSpecRulesBackendRefsFiltersType = {}));
1354
+ /**
1355
+ * Converts an object of type 'GrpcRouteSpecRulesFiltersRequestHeaderModifierAdd' to JSON
1356
+ * representation.
1357
+ */
1358
+ /* eslint-disable max-len, quote-props */
1359
+ function toJson_GrpcRouteSpecRulesFiltersRequestHeaderModifierAdd(obj) {
1360
+ if (obj === undefined) {
1361
+ return undefined;
1362
+ }
1363
+ const result = {
1364
+ name: obj.name,
1365
+ value: obj.value
1366
+ };
1367
+ // filter undefined values
1368
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1369
+ }
1370
+ /**
1371
+ * Converts an object of type 'GrpcRouteSpecRulesFiltersRequestHeaderModifierSet' to JSON
1372
+ * representation.
1373
+ */
1374
+ /* eslint-disable max-len, quote-props */
1375
+ function toJson_GrpcRouteSpecRulesFiltersRequestHeaderModifierSet(obj) {
1376
+ if (obj === undefined) {
1377
+ return undefined;
1378
+ }
1379
+ const result = {
1380
+ name: obj.name,
1381
+ value: obj.value
1382
+ };
1383
+ // filter undefined values
1384
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1385
+ }
1386
+ /**
1387
+ * Converts an object of type 'GrpcRouteSpecRulesFiltersRequestMirrorBackendRef' to JSON
1388
+ * representation.
1389
+ */
1390
+ /* eslint-disable max-len, quote-props */
1391
+ function toJson_GrpcRouteSpecRulesFiltersRequestMirrorBackendRef(obj) {
1392
+ if (obj === undefined) {
1393
+ return undefined;
1394
+ }
1395
+ const result = {
1396
+ group: obj.group,
1397
+ kind: obj.kind,
1398
+ name: obj.name,
1399
+ namespace: obj.namespace,
1400
+ port: obj.port
1401
+ };
1402
+ // filter undefined values
1403
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1404
+ }
1405
+ /**
1406
+ * Converts an object of type 'GrpcRouteSpecRulesFiltersResponseHeaderModifierAdd' to JSON
1407
+ * representation.
1408
+ */
1409
+ /* eslint-disable max-len, quote-props */
1410
+ function toJson_GrpcRouteSpecRulesFiltersResponseHeaderModifierAdd(obj) {
1411
+ if (obj === undefined) {
1412
+ return undefined;
1413
+ }
1414
+ const result = {
1415
+ name: obj.name,
1416
+ value: obj.value
1417
+ };
1418
+ // filter undefined values
1419
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1420
+ }
1421
+ /**
1422
+ * Converts an object of type 'GrpcRouteSpecRulesFiltersResponseHeaderModifierSet' to JSON
1423
+ * representation.
1424
+ */
1425
+ /* eslint-disable max-len, quote-props */
1426
+ function toJson_GrpcRouteSpecRulesFiltersResponseHeaderModifierSet(obj) {
1427
+ if (obj === undefined) {
1428
+ return undefined;
1429
+ }
1430
+ const result = {
1431
+ name: obj.name,
1432
+ value: obj.value
1433
+ };
1434
+ // filter undefined values
1435
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1436
+ }
1437
+ /* eslint-enable max-len, quote-props */
1438
+ /**
1439
+ * Type specifies how to match against the value of the header.
1440
+ *
1441
+ * @schema GrpcRouteSpecRulesMatchesHeadersType
1442
+ */
1443
+ var GrpcRouteSpecRulesMatchesHeadersType;
1444
+ (function (GrpcRouteSpecRulesMatchesHeadersType) {
1445
+ /** Exact */
1446
+ GrpcRouteSpecRulesMatchesHeadersType["EXACT"] = "Exact";
1447
+ /** RegularExpression */
1448
+ GrpcRouteSpecRulesMatchesHeadersType["REGULAR_EXPRESSION"] = "RegularExpression";
1449
+ })(GrpcRouteSpecRulesMatchesHeadersType || (exports.GrpcRouteSpecRulesMatchesHeadersType = GrpcRouteSpecRulesMatchesHeadersType = {}));
1450
+ /**
1451
+ * Type specifies how to match against the service and/or method. Support: Core (Exact with service
1452
+ * and method specified)
1453
+ *
1454
+ * Support: Implementation-specific (Exact with method specified but no service specified)
1455
+ *
1456
+ * Support: Implementation-specific (RegularExpression)
1457
+ *
1458
+ * @schema GrpcRouteSpecRulesMatchesMethodType
1459
+ */
1460
+ var GrpcRouteSpecRulesMatchesMethodType;
1461
+ (function (GrpcRouteSpecRulesMatchesMethodType) {
1462
+ /** Exact */
1463
+ GrpcRouteSpecRulesMatchesMethodType["EXACT"] = "Exact";
1464
+ /** RegularExpression */
1465
+ GrpcRouteSpecRulesMatchesMethodType["REGULAR_EXPRESSION"] = "RegularExpression";
1466
+ })(GrpcRouteSpecRulesMatchesMethodType || (exports.GrpcRouteSpecRulesMatchesMethodType = GrpcRouteSpecRulesMatchesMethodType = {}));
1467
+ /**
1468
+ * Converts an object of type 'GrpcRouteSpecRulesBackendRefsFiltersRequestHeaderModifierAdd' to JSON
1469
+ * representation.
1470
+ */
1471
+ /* eslint-disable max-len, quote-props */
1472
+ function toJson_GrpcRouteSpecRulesBackendRefsFiltersRequestHeaderModifierAdd(obj) {
1473
+ if (obj === undefined) {
1474
+ return undefined;
1475
+ }
1476
+ const result = {
1477
+ name: obj.name,
1478
+ value: obj.value
1479
+ };
1480
+ // filter undefined values
1481
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1482
+ }
1483
+ /**
1484
+ * Converts an object of type 'GrpcRouteSpecRulesBackendRefsFiltersRequestHeaderModifierSet' to JSON
1485
+ * representation.
1486
+ */
1487
+ /* eslint-disable max-len, quote-props */
1488
+ function toJson_GrpcRouteSpecRulesBackendRefsFiltersRequestHeaderModifierSet(obj) {
1489
+ if (obj === undefined) {
1490
+ return undefined;
1491
+ }
1492
+ const result = {
1493
+ name: obj.name,
1494
+ value: obj.value
1495
+ };
1496
+ // filter undefined values
1497
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1498
+ }
1499
+ /**
1500
+ * Converts an object of type 'GrpcRouteSpecRulesBackendRefsFiltersRequestMirrorBackendRef' to JSON
1501
+ * representation.
1502
+ */
1503
+ /* eslint-disable max-len, quote-props */
1504
+ function toJson_GrpcRouteSpecRulesBackendRefsFiltersRequestMirrorBackendRef(obj) {
1505
+ if (obj === undefined) {
1506
+ return undefined;
1507
+ }
1508
+ const result = {
1509
+ group: obj.group,
1510
+ kind: obj.kind,
1511
+ name: obj.name,
1512
+ namespace: obj.namespace,
1513
+ port: obj.port
1514
+ };
1515
+ // filter undefined values
1516
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1517
+ }
1518
+ /**
1519
+ * Converts an object of type 'GrpcRouteSpecRulesBackendRefsFiltersResponseHeaderModifierAdd' to
1520
+ * JSON representation.
1521
+ */
1522
+ /* eslint-disable max-len, quote-props */
1523
+ function toJson_GrpcRouteSpecRulesBackendRefsFiltersResponseHeaderModifierAdd(obj) {
1524
+ if (obj === undefined) {
1525
+ return undefined;
1526
+ }
1527
+ const result = {
1528
+ name: obj.name,
1529
+ value: obj.value
1530
+ };
1531
+ // filter undefined values
1532
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1533
+ }
1534
+ /**
1535
+ * Converts an object of type 'GrpcRouteSpecRulesBackendRefsFiltersResponseHeaderModifierSet' to
1536
+ * JSON representation.
1537
+ */
1538
+ /* eslint-disable max-len, quote-props */
1539
+ function toJson_GrpcRouteSpecRulesBackendRefsFiltersResponseHeaderModifierSet(obj) {
1540
+ if (obj === undefined) {
1541
+ return undefined;
1542
+ }
1543
+ const result = {
1544
+ name: obj.name,
1545
+ value: obj.value
1546
+ };
1547
+ // filter undefined values
1548
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1549
+ }
1550
+ /* eslint-enable max-len, quote-props */
1551
+ /**
1552
+ * HTTPRoute provides a way to route HTTP requests. This includes the capability to match requests
1553
+ * by hostname, path, header, or query param. Filters can be used to specify additional processing
1554
+ * steps. Backends specify where matching requests should be routed.
1555
+ *
1556
+ * @schema HTTPRoute
1557
+ */
1558
+ class HttpRoute extends cdk8s_1.ApiObject {
1559
+ /**
1560
+ * Renders a Kubernetes manifest for "HTTPRoute".
1561
+ *
1562
+ * This can be used to inline resource manifests inside other objects (e.g. as templates).
1563
+ *
1564
+ * @param props Initialization props
1565
+ */
1566
+ static manifest(props) {
1567
+ return {
1568
+ ...HttpRoute.GVK,
1569
+ ...toJson_HttpRouteProps(props)
1570
+ };
1571
+ }
1572
+ /**
1573
+ * Defines a "HTTPRoute" API object
1574
+ *
1575
+ * @param scope The scope in which to define this object
1576
+ * @param id A scope-local name for the object
1577
+ * @param props Initialization props
1578
+ */
1579
+ constructor(scope, id, props) {
1580
+ super(scope, id, {
1581
+ ...HttpRoute.GVK,
1582
+ ...props
1583
+ });
1584
+ }
1585
+ /** Renders the object to Kubernetes JSON. */
1586
+ toJson() {
1587
+ const resolved = super.toJson();
1588
+ return {
1589
+ ...HttpRoute.GVK,
1590
+ ...toJson_HttpRouteProps(resolved)
1591
+ };
1592
+ }
1593
+ }
1594
+ exports.HttpRoute = HttpRoute;
1595
+ /** Returns the apiVersion and kind for "HTTPRoute" */
1596
+ HttpRoute.GVK = {
1597
+ apiVersion: "gateway.networking.k8s.io/v1",
1598
+ kind: "HTTPRoute"
1599
+ };
1600
+ /** Converts an object of type 'HttpRouteProps' to JSON representation. */
1601
+ /* eslint-disable max-len, quote-props */
1602
+ function toJson_HttpRouteProps(obj) {
1603
+ if (obj === undefined) {
1604
+ return undefined;
1605
+ }
1606
+ const result = {
1607
+ metadata: obj.metadata,
1608
+ spec: toJson_HttpRouteSpec(obj.spec)
1609
+ };
1610
+ // filter undefined values
1611
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1612
+ }
1613
+ /** Converts an object of type 'HttpRouteSpec' to JSON representation. */
1614
+ /* eslint-disable max-len, quote-props */
1615
+ function toJson_HttpRouteSpec(obj) {
1616
+ if (obj === undefined) {
1617
+ return undefined;
1618
+ }
1619
+ const result = {
1620
+ hostnames: obj.hostnames?.map(y => y),
1621
+ parentRefs: obj.parentRefs?.map(y => toJson_HttpRouteSpecParentRefs(y)),
1622
+ rules: obj.rules?.map(y => toJson_HttpRouteSpecRules(y))
1623
+ };
1624
+ // filter undefined values
1625
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1626
+ }
1627
+ /** Converts an object of type 'HttpRouteSpecParentRefs' to JSON representation. */
1628
+ /* eslint-disable max-len, quote-props */
1629
+ function toJson_HttpRouteSpecParentRefs(obj) {
1630
+ if (obj === undefined) {
1631
+ return undefined;
1632
+ }
1633
+ const result = {
1634
+ group: obj.group,
1635
+ kind: obj.kind,
1636
+ name: obj.name,
1637
+ namespace: obj.namespace,
1638
+ port: obj.port,
1639
+ sectionName: obj.sectionName
1640
+ };
1641
+ // filter undefined values
1642
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1643
+ }
1644
+ /** Converts an object of type 'HttpRouteSpecRules' to JSON representation. */
1645
+ /* eslint-disable max-len, quote-props */
1646
+ function toJson_HttpRouteSpecRules(obj) {
1647
+ if (obj === undefined) {
1648
+ return undefined;
1649
+ }
1650
+ const result = {
1651
+ backendRefs: obj.backendRefs?.map(y => toJson_HttpRouteSpecRulesBackendRefs(y)),
1652
+ filters: obj.filters?.map(y => toJson_HttpRouteSpecRulesFilters(y)),
1653
+ matches: obj.matches?.map(y => toJson_HttpRouteSpecRulesMatches(y)),
1654
+ timeouts: toJson_HttpRouteSpecRulesTimeouts(obj.timeouts)
1655
+ };
1656
+ // filter undefined values
1657
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1658
+ }
1659
+ /** Converts an object of type 'HttpRouteSpecRulesBackendRefs' to JSON representation. */
1660
+ /* eslint-disable max-len, quote-props */
1661
+ function toJson_HttpRouteSpecRulesBackendRefs(obj) {
1662
+ if (obj === undefined) {
1663
+ return undefined;
1664
+ }
1665
+ const result = {
1666
+ filters: obj.filters?.map(y => toJson_HttpRouteSpecRulesBackendRefsFilters(y)),
1667
+ group: obj.group,
1668
+ kind: obj.kind,
1669
+ name: obj.name,
1670
+ namespace: obj.namespace,
1671
+ port: obj.port,
1672
+ weight: obj.weight
1673
+ };
1674
+ // filter undefined values
1675
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1676
+ }
1677
+ /** Converts an object of type 'HttpRouteSpecRulesFilters' to JSON representation. */
1678
+ /* eslint-disable max-len, quote-props */
1679
+ function toJson_HttpRouteSpecRulesFilters(obj) {
1680
+ if (obj === undefined) {
1681
+ return undefined;
1682
+ }
1683
+ const result = {
1684
+ extensionRef: toJson_HttpRouteSpecRulesFiltersExtensionRef(obj.extensionRef),
1685
+ requestHeaderModifier: toJson_HttpRouteSpecRulesFiltersRequestHeaderModifier(obj.requestHeaderModifier),
1686
+ requestMirror: toJson_HttpRouteSpecRulesFiltersRequestMirror(obj.requestMirror),
1687
+ requestRedirect: toJson_HttpRouteSpecRulesFiltersRequestRedirect(obj.requestRedirect),
1688
+ responseHeaderModifier: toJson_HttpRouteSpecRulesFiltersResponseHeaderModifier(obj.responseHeaderModifier),
1689
+ type: obj.type,
1690
+ urlRewrite: toJson_HttpRouteSpecRulesFiltersUrlRewrite(obj.urlRewrite)
1691
+ };
1692
+ // filter undefined values
1693
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1694
+ }
1695
+ /** Converts an object of type 'HttpRouteSpecRulesMatches' to JSON representation. */
1696
+ /* eslint-disable max-len, quote-props */
1697
+ function toJson_HttpRouteSpecRulesMatches(obj) {
1698
+ if (obj === undefined) {
1699
+ return undefined;
1700
+ }
1701
+ const result = {
1702
+ headers: obj.headers?.map(y => toJson_HttpRouteSpecRulesMatchesHeaders(y)),
1703
+ method: obj.method,
1704
+ path: toJson_HttpRouteSpecRulesMatchesPath(obj.path),
1705
+ queryParams: obj.queryParams?.map(y => toJson_HttpRouteSpecRulesMatchesQueryParams(y))
1706
+ };
1707
+ // filter undefined values
1708
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1709
+ }
1710
+ /** Converts an object of type 'HttpRouteSpecRulesTimeouts' to JSON representation. */
1711
+ /* eslint-disable max-len, quote-props */
1712
+ function toJson_HttpRouteSpecRulesTimeouts(obj) {
1713
+ if (obj === undefined) {
1714
+ return undefined;
1715
+ }
1716
+ const result = {
1717
+ backendRequest: obj.backendRequest,
1718
+ request: obj.request
1719
+ };
1720
+ // filter undefined values
1721
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1722
+ }
1723
+ /** Converts an object of type 'HttpRouteSpecRulesBackendRefsFilters' to JSON representation. */
1724
+ /* eslint-disable max-len, quote-props */
1725
+ function toJson_HttpRouteSpecRulesBackendRefsFilters(obj) {
1726
+ if (obj === undefined) {
1727
+ return undefined;
1728
+ }
1729
+ const result = {
1730
+ extensionRef: toJson_HttpRouteSpecRulesBackendRefsFiltersExtensionRef(obj.extensionRef),
1731
+ requestHeaderModifier: toJson_HttpRouteSpecRulesBackendRefsFiltersRequestHeaderModifier(obj.requestHeaderModifier),
1732
+ requestMirror: toJson_HttpRouteSpecRulesBackendRefsFiltersRequestMirror(obj.requestMirror),
1733
+ requestRedirect: toJson_HttpRouteSpecRulesBackendRefsFiltersRequestRedirect(obj.requestRedirect),
1734
+ responseHeaderModifier: toJson_HttpRouteSpecRulesBackendRefsFiltersResponseHeaderModifier(obj.responseHeaderModifier),
1735
+ type: obj.type,
1736
+ urlRewrite: toJson_HttpRouteSpecRulesBackendRefsFiltersUrlRewrite(obj.urlRewrite)
1737
+ };
1738
+ // filter undefined values
1739
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1740
+ }
1741
+ /** Converts an object of type 'HttpRouteSpecRulesFiltersExtensionRef' to JSON representation. */
1742
+ /* eslint-disable max-len, quote-props */
1743
+ function toJson_HttpRouteSpecRulesFiltersExtensionRef(obj) {
1744
+ if (obj === undefined) {
1745
+ return undefined;
1746
+ }
1747
+ const result = {
1748
+ group: obj.group,
1749
+ kind: obj.kind,
1750
+ name: obj.name
1751
+ };
1752
+ // filter undefined values
1753
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1754
+ }
1755
+ /**
1756
+ * Converts an object of type 'HttpRouteSpecRulesFiltersRequestHeaderModifier' to JSON
1757
+ * representation.
1758
+ */
1759
+ /* eslint-disable max-len, quote-props */
1760
+ function toJson_HttpRouteSpecRulesFiltersRequestHeaderModifier(obj) {
1761
+ if (obj === undefined) {
1762
+ return undefined;
1763
+ }
1764
+ const result = {
1765
+ add: obj.add?.map(y => toJson_HttpRouteSpecRulesFiltersRequestHeaderModifierAdd(y)),
1766
+ remove: obj.remove?.map(y => y),
1767
+ set: obj.set?.map(y => toJson_HttpRouteSpecRulesFiltersRequestHeaderModifierSet(y))
1768
+ };
1769
+ // filter undefined values
1770
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1771
+ }
1772
+ /** Converts an object of type 'HttpRouteSpecRulesFiltersRequestMirror' to JSON representation. */
1773
+ /* eslint-disable max-len, quote-props */
1774
+ function toJson_HttpRouteSpecRulesFiltersRequestMirror(obj) {
1775
+ if (obj === undefined) {
1776
+ return undefined;
1777
+ }
1778
+ const result = {
1779
+ backendRef: toJson_HttpRouteSpecRulesFiltersRequestMirrorBackendRef(obj.backendRef)
1780
+ };
1781
+ // filter undefined values
1782
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1783
+ }
1784
+ /** Converts an object of type 'HttpRouteSpecRulesFiltersRequestRedirect' to JSON representation. */
1785
+ /* eslint-disable max-len, quote-props */
1786
+ function toJson_HttpRouteSpecRulesFiltersRequestRedirect(obj) {
1787
+ if (obj === undefined) {
1788
+ return undefined;
1789
+ }
1790
+ const result = {
1791
+ hostname: obj.hostname,
1792
+ path: toJson_HttpRouteSpecRulesFiltersRequestRedirectPath(obj.path),
1793
+ port: obj.port,
1794
+ scheme: obj.scheme,
1795
+ statusCode: obj.statusCode
1796
+ };
1797
+ // filter undefined values
1798
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1799
+ }
1800
+ /**
1801
+ * Converts an object of type 'HttpRouteSpecRulesFiltersResponseHeaderModifier' to JSON
1802
+ * representation.
1803
+ */
1804
+ /* eslint-disable max-len, quote-props */
1805
+ function toJson_HttpRouteSpecRulesFiltersResponseHeaderModifier(obj) {
1806
+ if (obj === undefined) {
1807
+ return undefined;
1808
+ }
1809
+ const result = {
1810
+ add: obj.add?.map(y => toJson_HttpRouteSpecRulesFiltersResponseHeaderModifierAdd(y)),
1811
+ remove: obj.remove?.map(y => y),
1812
+ set: obj.set?.map(y => toJson_HttpRouteSpecRulesFiltersResponseHeaderModifierSet(y))
1813
+ };
1814
+ // filter undefined values
1815
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1816
+ }
1817
+ /* eslint-enable max-len, quote-props */
1818
+ /**
1819
+ * Type identifies the type of filter to apply. As with other API fields, types are classified into
1820
+ * three conformance levels:
1821
+ *
1822
+ * - Core: Filter types and their corresponding configuration defined by "Support: Core" in this
1823
+ * package, e.g. "RequestHeaderModifier". All implementations must support core filters.
1824
+ * - Extended: Filter types and their corresponding configuration defined by "Support: Extended" in
1825
+ * this package, e.g. "RequestMirror". Implementers are encouraged to support extended filters.
1826
+ * - Implementation-specific: Filters that are defined and supported by specific vendors. In the
1827
+ * future, filters showing convergence in behavior across multiple implementations will be
1828
+ * considered for inclusion in extended or core conformance levels. Filter-specific configuration
1829
+ * for such filters is specified using the ExtensionRef field. `Type` should be set to
1830
+ * "ExtensionRef" for custom filters.
1831
+ *
1832
+ * Implementers are encouraged to define custom implementation types to extend the core API with
1833
+ * implementation-specific behavior.
1834
+ *
1835
+ * If a reference to a custom filter type cannot be resolved, the filter MUST NOT be skipped.
1836
+ * Instead, requests that would have been processed by that filter MUST receive a HTTP error
1837
+ * response.
1838
+ *
1839
+ * Note that values may be added to this enum, implementations must ensure that unknown values will
1840
+ * not cause a crash.
1841
+ *
1842
+ * Unknown values here must result in the implementation setting the Accepted Condition for the
1843
+ * Route to `status: False`, with a Reason of `UnsupportedValue`.
1844
+ *
1845
+ * @schema HttpRouteSpecRulesFiltersType
1846
+ */
1847
+ var HttpRouteSpecRulesFiltersType;
1848
+ (function (HttpRouteSpecRulesFiltersType) {
1849
+ /** RequestHeaderModifier */
1850
+ HttpRouteSpecRulesFiltersType["REQUEST_HEADER_MODIFIER"] = "RequestHeaderModifier";
1851
+ /** ResponseHeaderModifier */
1852
+ HttpRouteSpecRulesFiltersType["RESPONSE_HEADER_MODIFIER"] = "ResponseHeaderModifier";
1853
+ /** RequestMirror */
1854
+ HttpRouteSpecRulesFiltersType["REQUEST_MIRROR"] = "RequestMirror";
1855
+ /** RequestRedirect */
1856
+ HttpRouteSpecRulesFiltersType["REQUEST_REDIRECT"] = "RequestRedirect";
1857
+ /** URLRewrite */
1858
+ HttpRouteSpecRulesFiltersType["URL_REWRITE"] = "URLRewrite";
1859
+ /** ExtensionRef */
1860
+ HttpRouteSpecRulesFiltersType["EXTENSION_REF"] = "ExtensionRef";
1861
+ })(HttpRouteSpecRulesFiltersType || (exports.HttpRouteSpecRulesFiltersType = HttpRouteSpecRulesFiltersType = {}));
1862
+ /** Converts an object of type 'HttpRouteSpecRulesFiltersUrlRewrite' to JSON representation. */
1863
+ /* eslint-disable max-len, quote-props */
1864
+ function toJson_HttpRouteSpecRulesFiltersUrlRewrite(obj) {
1865
+ if (obj === undefined) {
1866
+ return undefined;
1867
+ }
1868
+ const result = {
1869
+ hostname: obj.hostname,
1870
+ path: toJson_HttpRouteSpecRulesFiltersUrlRewritePath(obj.path)
1871
+ };
1872
+ // filter undefined values
1873
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1874
+ }
1875
+ /** Converts an object of type 'HttpRouteSpecRulesMatchesHeaders' to JSON representation. */
1876
+ /* eslint-disable max-len, quote-props */
1877
+ function toJson_HttpRouteSpecRulesMatchesHeaders(obj) {
1878
+ if (obj === undefined) {
1879
+ return undefined;
1880
+ }
1881
+ const result = {
1882
+ name: obj.name,
1883
+ type: obj.type,
1884
+ value: obj.value
1885
+ };
1886
+ // filter undefined values
1887
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1888
+ }
1889
+ /* eslint-enable max-len, quote-props */
1890
+ /**
1891
+ * Method specifies HTTP method matcher. When specified, this route will be matched only if the
1892
+ * request has the specified method.
1893
+ *
1894
+ * Support: Extended
1895
+ *
1896
+ * @schema HttpRouteSpecRulesMatchesMethod
1897
+ */
1898
+ var HttpRouteSpecRulesMatchesMethod;
1899
+ (function (HttpRouteSpecRulesMatchesMethod) {
1900
+ /** GET */
1901
+ HttpRouteSpecRulesMatchesMethod["GET"] = "GET";
1902
+ /** HEAD */
1903
+ HttpRouteSpecRulesMatchesMethod["HEAD"] = "HEAD";
1904
+ /** POST */
1905
+ HttpRouteSpecRulesMatchesMethod["POST"] = "POST";
1906
+ /** PUT */
1907
+ HttpRouteSpecRulesMatchesMethod["PUT"] = "PUT";
1908
+ /** DELETE */
1909
+ HttpRouteSpecRulesMatchesMethod["DELETE"] = "DELETE";
1910
+ /** CONNECT */
1911
+ HttpRouteSpecRulesMatchesMethod["CONNECT"] = "CONNECT";
1912
+ /** OPTIONS */
1913
+ HttpRouteSpecRulesMatchesMethod["OPTIONS"] = "OPTIONS";
1914
+ /** TRACE */
1915
+ HttpRouteSpecRulesMatchesMethod["TRACE"] = "TRACE";
1916
+ /** PATCH */
1917
+ HttpRouteSpecRulesMatchesMethod["PATCH"] = "PATCH";
1918
+ })(HttpRouteSpecRulesMatchesMethod || (exports.HttpRouteSpecRulesMatchesMethod = HttpRouteSpecRulesMatchesMethod = {}));
1919
+ /** Converts an object of type 'HttpRouteSpecRulesMatchesPath' to JSON representation. */
1920
+ /* eslint-disable max-len, quote-props */
1921
+ function toJson_HttpRouteSpecRulesMatchesPath(obj) {
1922
+ if (obj === undefined) {
1923
+ return undefined;
1924
+ }
1925
+ const result = {
1926
+ type: obj.type,
1927
+ value: obj.value
1928
+ };
1929
+ // filter undefined values
1930
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1931
+ }
1932
+ /** Converts an object of type 'HttpRouteSpecRulesMatchesQueryParams' to JSON representation. */
1933
+ /* eslint-disable max-len, quote-props */
1934
+ function toJson_HttpRouteSpecRulesMatchesQueryParams(obj) {
1935
+ if (obj === undefined) {
1936
+ return undefined;
1937
+ }
1938
+ const result = {
1939
+ name: obj.name,
1940
+ type: obj.type,
1941
+ value: obj.value
1942
+ };
1943
+ // filter undefined values
1944
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1945
+ }
1946
+ /**
1947
+ * Converts an object of type 'HttpRouteSpecRulesBackendRefsFiltersExtensionRef' to JSON
1948
+ * representation.
1949
+ */
1950
+ /* eslint-disable max-len, quote-props */
1951
+ function toJson_HttpRouteSpecRulesBackendRefsFiltersExtensionRef(obj) {
1952
+ if (obj === undefined) {
1953
+ return undefined;
1954
+ }
1955
+ const result = {
1956
+ group: obj.group,
1957
+ kind: obj.kind,
1958
+ name: obj.name
1959
+ };
1960
+ // filter undefined values
1961
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1962
+ }
1963
+ /**
1964
+ * Converts an object of type 'HttpRouteSpecRulesBackendRefsFiltersRequestHeaderModifier' to JSON
1965
+ * representation.
1966
+ */
1967
+ /* eslint-disable max-len, quote-props */
1968
+ function toJson_HttpRouteSpecRulesBackendRefsFiltersRequestHeaderModifier(obj) {
1969
+ if (obj === undefined) {
1970
+ return undefined;
1971
+ }
1972
+ const result = {
1973
+ add: obj.add?.map(y => toJson_HttpRouteSpecRulesBackendRefsFiltersRequestHeaderModifierAdd(y)),
1974
+ remove: obj.remove?.map(y => y),
1975
+ set: obj.set?.map(y => toJson_HttpRouteSpecRulesBackendRefsFiltersRequestHeaderModifierSet(y))
1976
+ };
1977
+ // filter undefined values
1978
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1979
+ }
1980
+ /**
1981
+ * Converts an object of type 'HttpRouteSpecRulesBackendRefsFiltersRequestMirror' to JSON
1982
+ * representation.
1983
+ */
1984
+ /* eslint-disable max-len, quote-props */
1985
+ function toJson_HttpRouteSpecRulesBackendRefsFiltersRequestMirror(obj) {
1986
+ if (obj === undefined) {
1987
+ return undefined;
1988
+ }
1989
+ const result = {
1990
+ backendRef: toJson_HttpRouteSpecRulesBackendRefsFiltersRequestMirrorBackendRef(obj.backendRef)
1991
+ };
1992
+ // filter undefined values
1993
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
1994
+ }
1995
+ /**
1996
+ * Converts an object of type 'HttpRouteSpecRulesBackendRefsFiltersRequestRedirect' to JSON
1997
+ * representation.
1998
+ */
1999
+ /* eslint-disable max-len, quote-props */
2000
+ function toJson_HttpRouteSpecRulesBackendRefsFiltersRequestRedirect(obj) {
2001
+ if (obj === undefined) {
2002
+ return undefined;
2003
+ }
2004
+ const result = {
2005
+ hostname: obj.hostname,
2006
+ path: toJson_HttpRouteSpecRulesBackendRefsFiltersRequestRedirectPath(obj.path),
2007
+ port: obj.port,
2008
+ scheme: obj.scheme,
2009
+ statusCode: obj.statusCode
2010
+ };
2011
+ // filter undefined values
2012
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2013
+ }
2014
+ /**
2015
+ * Converts an object of type 'HttpRouteSpecRulesBackendRefsFiltersResponseHeaderModifier' to JSON
2016
+ * representation.
2017
+ */
2018
+ /* eslint-disable max-len, quote-props */
2019
+ function toJson_HttpRouteSpecRulesBackendRefsFiltersResponseHeaderModifier(obj) {
2020
+ if (obj === undefined) {
2021
+ return undefined;
2022
+ }
2023
+ const result = {
2024
+ add: obj.add?.map(y => toJson_HttpRouteSpecRulesBackendRefsFiltersResponseHeaderModifierAdd(y)),
2025
+ remove: obj.remove?.map(y => y),
2026
+ set: obj.set?.map(y => toJson_HttpRouteSpecRulesBackendRefsFiltersResponseHeaderModifierSet(y))
2027
+ };
2028
+ // filter undefined values
2029
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2030
+ }
2031
+ /* eslint-enable max-len, quote-props */
2032
+ /**
2033
+ * Type identifies the type of filter to apply. As with other API fields, types are classified into
2034
+ * three conformance levels:
2035
+ *
2036
+ * - Core: Filter types and their corresponding configuration defined by "Support: Core" in this
2037
+ * package, e.g. "RequestHeaderModifier". All implementations must support core filters.
2038
+ * - Extended: Filter types and their corresponding configuration defined by "Support: Extended" in
2039
+ * this package, e.g. "RequestMirror". Implementers are encouraged to support extended filters.
2040
+ * - Implementation-specific: Filters that are defined and supported by specific vendors. In the
2041
+ * future, filters showing convergence in behavior across multiple implementations will be
2042
+ * considered for inclusion in extended or core conformance levels. Filter-specific configuration
2043
+ * for such filters is specified using the ExtensionRef field. `Type` should be set to
2044
+ * "ExtensionRef" for custom filters.
2045
+ *
2046
+ * Implementers are encouraged to define custom implementation types to extend the core API with
2047
+ * implementation-specific behavior.
2048
+ *
2049
+ * If a reference to a custom filter type cannot be resolved, the filter MUST NOT be skipped.
2050
+ * Instead, requests that would have been processed by that filter MUST receive a HTTP error
2051
+ * response.
2052
+ *
2053
+ * Note that values may be added to this enum, implementations must ensure that unknown values will
2054
+ * not cause a crash.
2055
+ *
2056
+ * Unknown values here must result in the implementation setting the Accepted Condition for the
2057
+ * Route to `status: False`, with a Reason of `UnsupportedValue`.
2058
+ *
2059
+ * @schema HttpRouteSpecRulesBackendRefsFiltersType
2060
+ */
2061
+ var HttpRouteSpecRulesBackendRefsFiltersType;
2062
+ (function (HttpRouteSpecRulesBackendRefsFiltersType) {
2063
+ /** RequestHeaderModifier */
2064
+ HttpRouteSpecRulesBackendRefsFiltersType["REQUEST_HEADER_MODIFIER"] = "RequestHeaderModifier";
2065
+ /** ResponseHeaderModifier */
2066
+ HttpRouteSpecRulesBackendRefsFiltersType["RESPONSE_HEADER_MODIFIER"] = "ResponseHeaderModifier";
2067
+ /** RequestMirror */
2068
+ HttpRouteSpecRulesBackendRefsFiltersType["REQUEST_MIRROR"] = "RequestMirror";
2069
+ /** RequestRedirect */
2070
+ HttpRouteSpecRulesBackendRefsFiltersType["REQUEST_REDIRECT"] = "RequestRedirect";
2071
+ /** URLRewrite */
2072
+ HttpRouteSpecRulesBackendRefsFiltersType["URL_REWRITE"] = "URLRewrite";
2073
+ /** ExtensionRef */
2074
+ HttpRouteSpecRulesBackendRefsFiltersType["EXTENSION_REF"] = "ExtensionRef";
2075
+ })(HttpRouteSpecRulesBackendRefsFiltersType || (exports.HttpRouteSpecRulesBackendRefsFiltersType = HttpRouteSpecRulesBackendRefsFiltersType = {}));
2076
+ /**
2077
+ * Converts an object of type 'HttpRouteSpecRulesBackendRefsFiltersUrlRewrite' to JSON
2078
+ * representation.
2079
+ */
2080
+ /* eslint-disable max-len, quote-props */
2081
+ function toJson_HttpRouteSpecRulesBackendRefsFiltersUrlRewrite(obj) {
2082
+ if (obj === undefined) {
2083
+ return undefined;
2084
+ }
2085
+ const result = {
2086
+ hostname: obj.hostname,
2087
+ path: toJson_HttpRouteSpecRulesBackendRefsFiltersUrlRewritePath(obj.path)
2088
+ };
2089
+ // filter undefined values
2090
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2091
+ }
2092
+ /**
2093
+ * Converts an object of type 'HttpRouteSpecRulesFiltersRequestHeaderModifierAdd' to JSON
2094
+ * representation.
2095
+ */
2096
+ /* eslint-disable max-len, quote-props */
2097
+ function toJson_HttpRouteSpecRulesFiltersRequestHeaderModifierAdd(obj) {
2098
+ if (obj === undefined) {
2099
+ return undefined;
2100
+ }
2101
+ const result = {
2102
+ name: obj.name,
2103
+ value: obj.value
2104
+ };
2105
+ // filter undefined values
2106
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2107
+ }
2108
+ /**
2109
+ * Converts an object of type 'HttpRouteSpecRulesFiltersRequestHeaderModifierSet' to JSON
2110
+ * representation.
2111
+ */
2112
+ /* eslint-disable max-len, quote-props */
2113
+ function toJson_HttpRouteSpecRulesFiltersRequestHeaderModifierSet(obj) {
2114
+ if (obj === undefined) {
2115
+ return undefined;
2116
+ }
2117
+ const result = {
2118
+ name: obj.name,
2119
+ value: obj.value
2120
+ };
2121
+ // filter undefined values
2122
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2123
+ }
2124
+ /**
2125
+ * Converts an object of type 'HttpRouteSpecRulesFiltersRequestMirrorBackendRef' to JSON
2126
+ * representation.
2127
+ */
2128
+ /* eslint-disable max-len, quote-props */
2129
+ function toJson_HttpRouteSpecRulesFiltersRequestMirrorBackendRef(obj) {
2130
+ if (obj === undefined) {
2131
+ return undefined;
2132
+ }
2133
+ const result = {
2134
+ group: obj.group,
2135
+ kind: obj.kind,
2136
+ name: obj.name,
2137
+ namespace: obj.namespace,
2138
+ port: obj.port
2139
+ };
2140
+ // filter undefined values
2141
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2142
+ }
2143
+ /** Converts an object of type 'HttpRouteSpecRulesFiltersRequestRedirectPath' to JSON representation. */
2144
+ /* eslint-disable max-len, quote-props */
2145
+ function toJson_HttpRouteSpecRulesFiltersRequestRedirectPath(obj) {
2146
+ if (obj === undefined) {
2147
+ return undefined;
2148
+ }
2149
+ const result = {
2150
+ replaceFullPath: obj.replaceFullPath,
2151
+ replacePrefixMatch: obj.replacePrefixMatch,
2152
+ type: obj.type
2153
+ };
2154
+ // filter undefined values
2155
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2156
+ }
2157
+ /* eslint-enable max-len, quote-props */
2158
+ /**
2159
+ * Scheme is the scheme to be used in the value of the `Location` header in the response. When
2160
+ * empty, the scheme of the request is used.
2161
+ *
2162
+ * Scheme redirects can affect the port of the redirect, for more information, refer to the
2163
+ * documentation for the port field of this filter.
2164
+ *
2165
+ * Note that values may be added to this enum, implementations must ensure that unknown values will
2166
+ * not cause a crash.
2167
+ *
2168
+ * Unknown values here must result in the implementation setting the Accepted Condition for the
2169
+ * Route to `status: False`, with a Reason of `UnsupportedValue`.
2170
+ *
2171
+ * Support: Extended
2172
+ *
2173
+ * @schema HttpRouteSpecRulesFiltersRequestRedirectScheme
2174
+ */
2175
+ var HttpRouteSpecRulesFiltersRequestRedirectScheme;
2176
+ (function (HttpRouteSpecRulesFiltersRequestRedirectScheme) {
2177
+ /** Http */
2178
+ HttpRouteSpecRulesFiltersRequestRedirectScheme["HTTP"] = "http";
2179
+ /** Https */
2180
+ HttpRouteSpecRulesFiltersRequestRedirectScheme["HTTPS"] = "https";
2181
+ })(HttpRouteSpecRulesFiltersRequestRedirectScheme || (exports.HttpRouteSpecRulesFiltersRequestRedirectScheme = HttpRouteSpecRulesFiltersRequestRedirectScheme = {}));
2182
+ /**
2183
+ * StatusCode is the HTTP status code to be used in response.
2184
+ *
2185
+ * Note that values may be added to this enum, implementations must ensure that unknown values will
2186
+ * not cause a crash.
2187
+ *
2188
+ * Unknown values here must result in the implementation setting the Accepted Condition for the
2189
+ * Route to `status: False`, with a Reason of `UnsupportedValue`.
2190
+ *
2191
+ * Support: Core
2192
+ *
2193
+ * @schema HttpRouteSpecRulesFiltersRequestRedirectStatusCode
2194
+ */
2195
+ var HttpRouteSpecRulesFiltersRequestRedirectStatusCode;
2196
+ (function (HttpRouteSpecRulesFiltersRequestRedirectStatusCode) {
2197
+ /** 301 */
2198
+ HttpRouteSpecRulesFiltersRequestRedirectStatusCode[HttpRouteSpecRulesFiltersRequestRedirectStatusCode["VALUE_301"] = 301] = "VALUE_301";
2199
+ /** 302 */
2200
+ HttpRouteSpecRulesFiltersRequestRedirectStatusCode[HttpRouteSpecRulesFiltersRequestRedirectStatusCode["VALUE_302"] = 302] = "VALUE_302";
2201
+ })(HttpRouteSpecRulesFiltersRequestRedirectStatusCode || (exports.HttpRouteSpecRulesFiltersRequestRedirectStatusCode = HttpRouteSpecRulesFiltersRequestRedirectStatusCode = {}));
2202
+ /**
2203
+ * Converts an object of type 'HttpRouteSpecRulesFiltersResponseHeaderModifierAdd' to JSON
2204
+ * representation.
2205
+ */
2206
+ /* eslint-disable max-len, quote-props */
2207
+ function toJson_HttpRouteSpecRulesFiltersResponseHeaderModifierAdd(obj) {
2208
+ if (obj === undefined) {
2209
+ return undefined;
2210
+ }
2211
+ const result = {
2212
+ name: obj.name,
2213
+ value: obj.value
2214
+ };
2215
+ // filter undefined values
2216
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2217
+ }
2218
+ /**
2219
+ * Converts an object of type 'HttpRouteSpecRulesFiltersResponseHeaderModifierSet' to JSON
2220
+ * representation.
2221
+ */
2222
+ /* eslint-disable max-len, quote-props */
2223
+ function toJson_HttpRouteSpecRulesFiltersResponseHeaderModifierSet(obj) {
2224
+ if (obj === undefined) {
2225
+ return undefined;
2226
+ }
2227
+ const result = {
2228
+ name: obj.name,
2229
+ value: obj.value
2230
+ };
2231
+ // filter undefined values
2232
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2233
+ }
2234
+ /** Converts an object of type 'HttpRouteSpecRulesFiltersUrlRewritePath' to JSON representation. */
2235
+ /* eslint-disable max-len, quote-props */
2236
+ function toJson_HttpRouteSpecRulesFiltersUrlRewritePath(obj) {
2237
+ if (obj === undefined) {
2238
+ return undefined;
2239
+ }
2240
+ const result = {
2241
+ replaceFullPath: obj.replaceFullPath,
2242
+ replacePrefixMatch: obj.replacePrefixMatch,
2243
+ type: obj.type
2244
+ };
2245
+ // filter undefined values
2246
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2247
+ }
2248
+ /* eslint-enable max-len, quote-props */
2249
+ /**
2250
+ * Type specifies how to match against the value of the header.
2251
+ *
2252
+ * Support: Core (Exact)
2253
+ *
2254
+ * Support: Implementation-specific (RegularExpression)
2255
+ *
2256
+ * Since RegularExpression HeaderMatchType has implementation-specific conformance, implementations
2257
+ * can support POSIX, PCRE or any other dialects of regular expressions. Please read the
2258
+ * implementation's documentation to determine the supported dialect.
2259
+ *
2260
+ * @schema HttpRouteSpecRulesMatchesHeadersType
2261
+ */
2262
+ var HttpRouteSpecRulesMatchesHeadersType;
2263
+ (function (HttpRouteSpecRulesMatchesHeadersType) {
2264
+ /** Exact */
2265
+ HttpRouteSpecRulesMatchesHeadersType["EXACT"] = "Exact";
2266
+ /** RegularExpression */
2267
+ HttpRouteSpecRulesMatchesHeadersType["REGULAR_EXPRESSION"] = "RegularExpression";
2268
+ })(HttpRouteSpecRulesMatchesHeadersType || (exports.HttpRouteSpecRulesMatchesHeadersType = HttpRouteSpecRulesMatchesHeadersType = {}));
2269
+ /**
2270
+ * Type specifies how to match against the path Value.
2271
+ *
2272
+ * Support: Core (Exact, PathPrefix)
2273
+ *
2274
+ * Support: Implementation-specific (RegularExpression)
2275
+ *
2276
+ * @schema HttpRouteSpecRulesMatchesPathType
2277
+ */
2278
+ var HttpRouteSpecRulesMatchesPathType;
2279
+ (function (HttpRouteSpecRulesMatchesPathType) {
2280
+ /** Exact */
2281
+ HttpRouteSpecRulesMatchesPathType["EXACT"] = "Exact";
2282
+ /** PathPrefix */
2283
+ HttpRouteSpecRulesMatchesPathType["PATH_PREFIX"] = "PathPrefix";
2284
+ /** RegularExpression */
2285
+ HttpRouteSpecRulesMatchesPathType["REGULAR_EXPRESSION"] = "RegularExpression";
2286
+ })(HttpRouteSpecRulesMatchesPathType || (exports.HttpRouteSpecRulesMatchesPathType = HttpRouteSpecRulesMatchesPathType = {}));
2287
+ /**
2288
+ * Type specifies how to match against the value of the query parameter.
2289
+ *
2290
+ * Support: Extended (Exact)
2291
+ *
2292
+ * Support: Implementation-specific (RegularExpression)
2293
+ *
2294
+ * Since RegularExpression QueryParamMatchType has Implementation-specific conformance,
2295
+ * implementations can support POSIX, PCRE or any other dialects of regular expressions. Please read
2296
+ * the implementation's documentation to determine the supported dialect.
2297
+ *
2298
+ * @schema HttpRouteSpecRulesMatchesQueryParamsType
2299
+ */
2300
+ var HttpRouteSpecRulesMatchesQueryParamsType;
2301
+ (function (HttpRouteSpecRulesMatchesQueryParamsType) {
2302
+ /** Exact */
2303
+ HttpRouteSpecRulesMatchesQueryParamsType["EXACT"] = "Exact";
2304
+ /** RegularExpression */
2305
+ HttpRouteSpecRulesMatchesQueryParamsType["REGULAR_EXPRESSION"] = "RegularExpression";
2306
+ })(HttpRouteSpecRulesMatchesQueryParamsType || (exports.HttpRouteSpecRulesMatchesQueryParamsType = HttpRouteSpecRulesMatchesQueryParamsType = {}));
2307
+ /**
2308
+ * Converts an object of type 'HttpRouteSpecRulesBackendRefsFiltersRequestHeaderModifierAdd' to JSON
2309
+ * representation.
2310
+ */
2311
+ /* eslint-disable max-len, quote-props */
2312
+ function toJson_HttpRouteSpecRulesBackendRefsFiltersRequestHeaderModifierAdd(obj) {
2313
+ if (obj === undefined) {
2314
+ return undefined;
2315
+ }
2316
+ const result = {
2317
+ name: obj.name,
2318
+ value: obj.value
2319
+ };
2320
+ // filter undefined values
2321
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2322
+ }
2323
+ /**
2324
+ * Converts an object of type 'HttpRouteSpecRulesBackendRefsFiltersRequestHeaderModifierSet' to JSON
2325
+ * representation.
2326
+ */
2327
+ /* eslint-disable max-len, quote-props */
2328
+ function toJson_HttpRouteSpecRulesBackendRefsFiltersRequestHeaderModifierSet(obj) {
2329
+ if (obj === undefined) {
2330
+ return undefined;
2331
+ }
2332
+ const result = {
2333
+ name: obj.name,
2334
+ value: obj.value
2335
+ };
2336
+ // filter undefined values
2337
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2338
+ }
2339
+ /**
2340
+ * Converts an object of type 'HttpRouteSpecRulesBackendRefsFiltersRequestMirrorBackendRef' to JSON
2341
+ * representation.
2342
+ */
2343
+ /* eslint-disable max-len, quote-props */
2344
+ function toJson_HttpRouteSpecRulesBackendRefsFiltersRequestMirrorBackendRef(obj) {
2345
+ if (obj === undefined) {
2346
+ return undefined;
2347
+ }
2348
+ const result = {
2349
+ group: obj.group,
2350
+ kind: obj.kind,
2351
+ name: obj.name,
2352
+ namespace: obj.namespace,
2353
+ port: obj.port
2354
+ };
2355
+ // filter undefined values
2356
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2357
+ }
2358
+ /**
2359
+ * Converts an object of type 'HttpRouteSpecRulesBackendRefsFiltersRequestRedirectPath' to JSON
2360
+ * representation.
2361
+ */
2362
+ /* eslint-disable max-len, quote-props */
2363
+ function toJson_HttpRouteSpecRulesBackendRefsFiltersRequestRedirectPath(obj) {
2364
+ if (obj === undefined) {
2365
+ return undefined;
2366
+ }
2367
+ const result = {
2368
+ replaceFullPath: obj.replaceFullPath,
2369
+ replacePrefixMatch: obj.replacePrefixMatch,
2370
+ type: obj.type
2371
+ };
2372
+ // filter undefined values
2373
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2374
+ }
2375
+ /* eslint-enable max-len, quote-props */
2376
+ /**
2377
+ * Scheme is the scheme to be used in the value of the `Location` header in the response. When
2378
+ * empty, the scheme of the request is used.
2379
+ *
2380
+ * Scheme redirects can affect the port of the redirect, for more information, refer to the
2381
+ * documentation for the port field of this filter.
2382
+ *
2383
+ * Note that values may be added to this enum, implementations must ensure that unknown values will
2384
+ * not cause a crash.
2385
+ *
2386
+ * Unknown values here must result in the implementation setting the Accepted Condition for the
2387
+ * Route to `status: False`, with a Reason of `UnsupportedValue`.
2388
+ *
2389
+ * Support: Extended
2390
+ *
2391
+ * @schema HttpRouteSpecRulesBackendRefsFiltersRequestRedirectScheme
2392
+ */
2393
+ var HttpRouteSpecRulesBackendRefsFiltersRequestRedirectScheme;
2394
+ (function (HttpRouteSpecRulesBackendRefsFiltersRequestRedirectScheme) {
2395
+ /** Http */
2396
+ HttpRouteSpecRulesBackendRefsFiltersRequestRedirectScheme["HTTP"] = "http";
2397
+ /** Https */
2398
+ HttpRouteSpecRulesBackendRefsFiltersRequestRedirectScheme["HTTPS"] = "https";
2399
+ })(HttpRouteSpecRulesBackendRefsFiltersRequestRedirectScheme || (exports.HttpRouteSpecRulesBackendRefsFiltersRequestRedirectScheme = HttpRouteSpecRulesBackendRefsFiltersRequestRedirectScheme = {}));
2400
+ /**
2401
+ * StatusCode is the HTTP status code to be used in response.
2402
+ *
2403
+ * Note that values may be added to this enum, implementations must ensure that unknown values will
2404
+ * not cause a crash.
2405
+ *
2406
+ * Unknown values here must result in the implementation setting the Accepted Condition for the
2407
+ * Route to `status: False`, with a Reason of `UnsupportedValue`.
2408
+ *
2409
+ * Support: Core
2410
+ *
2411
+ * @schema HttpRouteSpecRulesBackendRefsFiltersRequestRedirectStatusCode
2412
+ */
2413
+ var HttpRouteSpecRulesBackendRefsFiltersRequestRedirectStatusCode;
2414
+ (function (HttpRouteSpecRulesBackendRefsFiltersRequestRedirectStatusCode) {
2415
+ /** 301 */
2416
+ HttpRouteSpecRulesBackendRefsFiltersRequestRedirectStatusCode[HttpRouteSpecRulesBackendRefsFiltersRequestRedirectStatusCode["VALUE_301"] = 301] = "VALUE_301";
2417
+ /** 302 */
2418
+ HttpRouteSpecRulesBackendRefsFiltersRequestRedirectStatusCode[HttpRouteSpecRulesBackendRefsFiltersRequestRedirectStatusCode["VALUE_302"] = 302] = "VALUE_302";
2419
+ })(HttpRouteSpecRulesBackendRefsFiltersRequestRedirectStatusCode || (exports.HttpRouteSpecRulesBackendRefsFiltersRequestRedirectStatusCode = HttpRouteSpecRulesBackendRefsFiltersRequestRedirectStatusCode = {}));
2420
+ /**
2421
+ * Converts an object of type 'HttpRouteSpecRulesBackendRefsFiltersResponseHeaderModifierAdd' to
2422
+ * JSON representation.
2423
+ */
2424
+ /* eslint-disable max-len, quote-props */
2425
+ function toJson_HttpRouteSpecRulesBackendRefsFiltersResponseHeaderModifierAdd(obj) {
2426
+ if (obj === undefined) {
2427
+ return undefined;
2428
+ }
2429
+ const result = {
2430
+ name: obj.name,
2431
+ value: obj.value
2432
+ };
2433
+ // filter undefined values
2434
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2435
+ }
2436
+ /**
2437
+ * Converts an object of type 'HttpRouteSpecRulesBackendRefsFiltersResponseHeaderModifierSet' to
2438
+ * JSON representation.
2439
+ */
2440
+ /* eslint-disable max-len, quote-props */
2441
+ function toJson_HttpRouteSpecRulesBackendRefsFiltersResponseHeaderModifierSet(obj) {
2442
+ if (obj === undefined) {
2443
+ return undefined;
2444
+ }
2445
+ const result = {
2446
+ name: obj.name,
2447
+ value: obj.value
2448
+ };
2449
+ // filter undefined values
2450
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2451
+ }
2452
+ /**
2453
+ * Converts an object of type 'HttpRouteSpecRulesBackendRefsFiltersUrlRewritePath' to JSON
2454
+ * representation.
2455
+ */
2456
+ /* eslint-disable max-len, quote-props */
2457
+ function toJson_HttpRouteSpecRulesBackendRefsFiltersUrlRewritePath(obj) {
2458
+ if (obj === undefined) {
2459
+ return undefined;
2460
+ }
2461
+ const result = {
2462
+ replaceFullPath: obj.replaceFullPath,
2463
+ replacePrefixMatch: obj.replacePrefixMatch,
2464
+ type: obj.type
2465
+ };
2466
+ // filter undefined values
2467
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2468
+ }
2469
+ /* eslint-enable max-len, quote-props */
2470
+ /**
2471
+ * Type defines the type of path modifier. Additional types may be added in a future release of the
2472
+ * API.
2473
+ *
2474
+ * Note that values may be added to this enum, implementations must ensure that unknown values will
2475
+ * not cause a crash.
2476
+ *
2477
+ * Unknown values here must result in the implementation setting the Accepted Condition for the
2478
+ * Route to `status: False`, with a Reason of `UnsupportedValue`.
2479
+ *
2480
+ * @schema HttpRouteSpecRulesFiltersRequestRedirectPathType
2481
+ */
2482
+ var HttpRouteSpecRulesFiltersRequestRedirectPathType;
2483
+ (function (HttpRouteSpecRulesFiltersRequestRedirectPathType) {
2484
+ /** ReplaceFullPath */
2485
+ HttpRouteSpecRulesFiltersRequestRedirectPathType["REPLACE_FULL_PATH"] = "ReplaceFullPath";
2486
+ /** ReplacePrefixMatch */
2487
+ HttpRouteSpecRulesFiltersRequestRedirectPathType["REPLACE_PREFIX_MATCH"] = "ReplacePrefixMatch";
2488
+ })(HttpRouteSpecRulesFiltersRequestRedirectPathType || (exports.HttpRouteSpecRulesFiltersRequestRedirectPathType = HttpRouteSpecRulesFiltersRequestRedirectPathType = {}));
2489
+ /**
2490
+ * Type defines the type of path modifier. Additional types may be added in a future release of the
2491
+ * API.
2492
+ *
2493
+ * Note that values may be added to this enum, implementations must ensure that unknown values will
2494
+ * not cause a crash.
2495
+ *
2496
+ * Unknown values here must result in the implementation setting the Accepted Condition for the
2497
+ * Route to `status: False`, with a Reason of `UnsupportedValue`.
2498
+ *
2499
+ * @schema HttpRouteSpecRulesFiltersUrlRewritePathType
2500
+ */
2501
+ var HttpRouteSpecRulesFiltersUrlRewritePathType;
2502
+ (function (HttpRouteSpecRulesFiltersUrlRewritePathType) {
2503
+ /** ReplaceFullPath */
2504
+ HttpRouteSpecRulesFiltersUrlRewritePathType["REPLACE_FULL_PATH"] = "ReplaceFullPath";
2505
+ /** ReplacePrefixMatch */
2506
+ HttpRouteSpecRulesFiltersUrlRewritePathType["REPLACE_PREFIX_MATCH"] = "ReplacePrefixMatch";
2507
+ })(HttpRouteSpecRulesFiltersUrlRewritePathType || (exports.HttpRouteSpecRulesFiltersUrlRewritePathType = HttpRouteSpecRulesFiltersUrlRewritePathType = {}));
2508
+ /**
2509
+ * Type defines the type of path modifier. Additional types may be added in a future release of the
2510
+ * API.
2511
+ *
2512
+ * Note that values may be added to this enum, implementations must ensure that unknown values will
2513
+ * not cause a crash.
2514
+ *
2515
+ * Unknown values here must result in the implementation setting the Accepted Condition for the
2516
+ * Route to `status: False`, with a Reason of `UnsupportedValue`.
2517
+ *
2518
+ * @schema HttpRouteSpecRulesBackendRefsFiltersRequestRedirectPathType
2519
+ */
2520
+ var HttpRouteSpecRulesBackendRefsFiltersRequestRedirectPathType;
2521
+ (function (HttpRouteSpecRulesBackendRefsFiltersRequestRedirectPathType) {
2522
+ /** ReplaceFullPath */
2523
+ HttpRouteSpecRulesBackendRefsFiltersRequestRedirectPathType["REPLACE_FULL_PATH"] = "ReplaceFullPath";
2524
+ /** ReplacePrefixMatch */
2525
+ HttpRouteSpecRulesBackendRefsFiltersRequestRedirectPathType["REPLACE_PREFIX_MATCH"] = "ReplacePrefixMatch";
2526
+ })(HttpRouteSpecRulesBackendRefsFiltersRequestRedirectPathType || (exports.HttpRouteSpecRulesBackendRefsFiltersRequestRedirectPathType = HttpRouteSpecRulesBackendRefsFiltersRequestRedirectPathType = {}));
2527
+ /**
2528
+ * Type defines the type of path modifier. Additional types may be added in a future release of the
2529
+ * API.
2530
+ *
2531
+ * Note that values may be added to this enum, implementations must ensure that unknown values will
2532
+ * not cause a crash.
2533
+ *
2534
+ * Unknown values here must result in the implementation setting the Accepted Condition for the
2535
+ * Route to `status: False`, with a Reason of `UnsupportedValue`.
2536
+ *
2537
+ * @schema HttpRouteSpecRulesBackendRefsFiltersUrlRewritePathType
2538
+ */
2539
+ var HttpRouteSpecRulesBackendRefsFiltersUrlRewritePathType;
2540
+ (function (HttpRouteSpecRulesBackendRefsFiltersUrlRewritePathType) {
2541
+ /** ReplaceFullPath */
2542
+ HttpRouteSpecRulesBackendRefsFiltersUrlRewritePathType["REPLACE_FULL_PATH"] = "ReplaceFullPath";
2543
+ /** ReplacePrefixMatch */
2544
+ HttpRouteSpecRulesBackendRefsFiltersUrlRewritePathType["REPLACE_PREFIX_MATCH"] = "ReplacePrefixMatch";
2545
+ })(HttpRouteSpecRulesBackendRefsFiltersUrlRewritePathType || (exports.HttpRouteSpecRulesBackendRefsFiltersUrlRewritePathType = HttpRouteSpecRulesBackendRefsFiltersUrlRewritePathType = {}));
2546
+ /**
2547
+ * HTTPRoute provides a way to route HTTP requests. This includes the capability to match requests
2548
+ * by hostname, path, header, or query param. Filters can be used to specify additional processing
2549
+ * steps. Backends specify where matching requests should be routed.
2550
+ *
2551
+ * @schema HTTPRouteV1Beta1
2552
+ */
2553
+ class HttpRouteV1Beta1 extends cdk8s_1.ApiObject {
2554
+ /**
2555
+ * Renders a Kubernetes manifest for "HTTPRouteV1Beta1".
2556
+ *
2557
+ * This can be used to inline resource manifests inside other objects (e.g. as templates).
2558
+ *
2559
+ * @param props Initialization props
2560
+ */
2561
+ static manifest(props) {
2562
+ return {
2563
+ ...HttpRouteV1Beta1.GVK,
2564
+ ...toJson_HttpRouteV1Beta1Props(props)
2565
+ };
2566
+ }
2567
+ /**
2568
+ * Defines a "HTTPRouteV1Beta1" API object
2569
+ *
2570
+ * @param scope The scope in which to define this object
2571
+ * @param id A scope-local name for the object
2572
+ * @param props Initialization props
2573
+ */
2574
+ constructor(scope, id, props) {
2575
+ super(scope, id, {
2576
+ ...HttpRouteV1Beta1.GVK,
2577
+ ...props
2578
+ });
2579
+ }
2580
+ /** Renders the object to Kubernetes JSON. */
2581
+ toJson() {
2582
+ const resolved = super.toJson();
2583
+ return {
2584
+ ...HttpRouteV1Beta1.GVK,
2585
+ ...toJson_HttpRouteV1Beta1Props(resolved)
2586
+ };
2587
+ }
2588
+ }
2589
+ exports.HttpRouteV1Beta1 = HttpRouteV1Beta1;
2590
+ /** Returns the apiVersion and kind for "HTTPRouteV1Beta1" */
2591
+ HttpRouteV1Beta1.GVK = {
2592
+ apiVersion: "gateway.networking.k8s.io/v1beta1",
2593
+ kind: "HTTPRoute"
2594
+ };
2595
+ /** Converts an object of type 'HttpRouteV1Beta1Props' to JSON representation. */
2596
+ /* eslint-disable max-len, quote-props */
2597
+ function toJson_HttpRouteV1Beta1Props(obj) {
2598
+ if (obj === undefined) {
2599
+ return undefined;
2600
+ }
2601
+ const result = {
2602
+ metadata: obj.metadata,
2603
+ spec: toJson_HttpRouteV1Beta1Spec(obj.spec)
2604
+ };
2605
+ // filter undefined values
2606
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2607
+ }
2608
+ /** Converts an object of type 'HttpRouteV1Beta1Spec' to JSON representation. */
2609
+ /* eslint-disable max-len, quote-props */
2610
+ function toJson_HttpRouteV1Beta1Spec(obj) {
2611
+ if (obj === undefined) {
2612
+ return undefined;
2613
+ }
2614
+ const result = {
2615
+ hostnames: obj.hostnames?.map(y => y),
2616
+ parentRefs: obj.parentRefs?.map(y => toJson_HttpRouteV1Beta1SpecParentRefs(y)),
2617
+ rules: obj.rules?.map(y => toJson_HttpRouteV1Beta1SpecRules(y))
2618
+ };
2619
+ // filter undefined values
2620
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2621
+ }
2622
+ /** Converts an object of type 'HttpRouteV1Beta1SpecParentRefs' to JSON representation. */
2623
+ /* eslint-disable max-len, quote-props */
2624
+ function toJson_HttpRouteV1Beta1SpecParentRefs(obj) {
2625
+ if (obj === undefined) {
2626
+ return undefined;
2627
+ }
2628
+ const result = {
2629
+ group: obj.group,
2630
+ kind: obj.kind,
2631
+ name: obj.name,
2632
+ namespace: obj.namespace,
2633
+ port: obj.port,
2634
+ sectionName: obj.sectionName
2635
+ };
2636
+ // filter undefined values
2637
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2638
+ }
2639
+ /** Converts an object of type 'HttpRouteV1Beta1SpecRules' to JSON representation. */
2640
+ /* eslint-disable max-len, quote-props */
2641
+ function toJson_HttpRouteV1Beta1SpecRules(obj) {
2642
+ if (obj === undefined) {
2643
+ return undefined;
2644
+ }
2645
+ const result = {
2646
+ backendRefs: obj.backendRefs?.map(y => toJson_HttpRouteV1Beta1SpecRulesBackendRefs(y)),
2647
+ filters: obj.filters?.map(y => toJson_HttpRouteV1Beta1SpecRulesFilters(y)),
2648
+ matches: obj.matches?.map(y => toJson_HttpRouteV1Beta1SpecRulesMatches(y)),
2649
+ timeouts: toJson_HttpRouteV1Beta1SpecRulesTimeouts(obj.timeouts)
2650
+ };
2651
+ // filter undefined values
2652
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2653
+ }
2654
+ /** Converts an object of type 'HttpRouteV1Beta1SpecRulesBackendRefs' to JSON representation. */
2655
+ /* eslint-disable max-len, quote-props */
2656
+ function toJson_HttpRouteV1Beta1SpecRulesBackendRefs(obj) {
2657
+ if (obj === undefined) {
2658
+ return undefined;
2659
+ }
2660
+ const result = {
2661
+ filters: obj.filters?.map(y => toJson_HttpRouteV1Beta1SpecRulesBackendRefsFilters(y)),
2662
+ group: obj.group,
2663
+ kind: obj.kind,
2664
+ name: obj.name,
2665
+ namespace: obj.namespace,
2666
+ port: obj.port,
2667
+ weight: obj.weight
2668
+ };
2669
+ // filter undefined values
2670
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2671
+ }
2672
+ /** Converts an object of type 'HttpRouteV1Beta1SpecRulesFilters' to JSON representation. */
2673
+ /* eslint-disable max-len, quote-props */
2674
+ function toJson_HttpRouteV1Beta1SpecRulesFilters(obj) {
2675
+ if (obj === undefined) {
2676
+ return undefined;
2677
+ }
2678
+ const result = {
2679
+ extensionRef: toJson_HttpRouteV1Beta1SpecRulesFiltersExtensionRef(obj.extensionRef),
2680
+ requestHeaderModifier: toJson_HttpRouteV1Beta1SpecRulesFiltersRequestHeaderModifier(obj.requestHeaderModifier),
2681
+ requestMirror: toJson_HttpRouteV1Beta1SpecRulesFiltersRequestMirror(obj.requestMirror),
2682
+ requestRedirect: toJson_HttpRouteV1Beta1SpecRulesFiltersRequestRedirect(obj.requestRedirect),
2683
+ responseHeaderModifier: toJson_HttpRouteV1Beta1SpecRulesFiltersResponseHeaderModifier(obj.responseHeaderModifier),
2684
+ type: obj.type,
2685
+ urlRewrite: toJson_HttpRouteV1Beta1SpecRulesFiltersUrlRewrite(obj.urlRewrite)
2686
+ };
2687
+ // filter undefined values
2688
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2689
+ }
2690
+ /** Converts an object of type 'HttpRouteV1Beta1SpecRulesMatches' to JSON representation. */
2691
+ /* eslint-disable max-len, quote-props */
2692
+ function toJson_HttpRouteV1Beta1SpecRulesMatches(obj) {
2693
+ if (obj === undefined) {
2694
+ return undefined;
2695
+ }
2696
+ const result = {
2697
+ headers: obj.headers?.map(y => toJson_HttpRouteV1Beta1SpecRulesMatchesHeaders(y)),
2698
+ method: obj.method,
2699
+ path: toJson_HttpRouteV1Beta1SpecRulesMatchesPath(obj.path),
2700
+ queryParams: obj.queryParams?.map(y => toJson_HttpRouteV1Beta1SpecRulesMatchesQueryParams(y))
2701
+ };
2702
+ // filter undefined values
2703
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2704
+ }
2705
+ /** Converts an object of type 'HttpRouteV1Beta1SpecRulesTimeouts' to JSON representation. */
2706
+ /* eslint-disable max-len, quote-props */
2707
+ function toJson_HttpRouteV1Beta1SpecRulesTimeouts(obj) {
2708
+ if (obj === undefined) {
2709
+ return undefined;
2710
+ }
2711
+ const result = {
2712
+ backendRequest: obj.backendRequest,
2713
+ request: obj.request
2714
+ };
2715
+ // filter undefined values
2716
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2717
+ }
2718
+ /** Converts an object of type 'HttpRouteV1Beta1SpecRulesBackendRefsFilters' to JSON representation. */
2719
+ /* eslint-disable max-len, quote-props */
2720
+ function toJson_HttpRouteV1Beta1SpecRulesBackendRefsFilters(obj) {
2721
+ if (obj === undefined) {
2722
+ return undefined;
2723
+ }
2724
+ const result = {
2725
+ extensionRef: toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersExtensionRef(obj.extensionRef),
2726
+ requestHeaderModifier: toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestHeaderModifier(obj.requestHeaderModifier),
2727
+ requestMirror: toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestMirror(obj.requestMirror),
2728
+ requestRedirect: toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirect(obj.requestRedirect),
2729
+ responseHeaderModifier: toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersResponseHeaderModifier(obj.responseHeaderModifier),
2730
+ type: obj.type,
2731
+ urlRewrite: toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersUrlRewrite(obj.urlRewrite)
2732
+ };
2733
+ // filter undefined values
2734
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2735
+ }
2736
+ /** Converts an object of type 'HttpRouteV1Beta1SpecRulesFiltersExtensionRef' to JSON representation. */
2737
+ /* eslint-disable max-len, quote-props */
2738
+ function toJson_HttpRouteV1Beta1SpecRulesFiltersExtensionRef(obj) {
2739
+ if (obj === undefined) {
2740
+ return undefined;
2741
+ }
2742
+ const result = {
2743
+ group: obj.group,
2744
+ kind: obj.kind,
2745
+ name: obj.name
2746
+ };
2747
+ // filter undefined values
2748
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2749
+ }
2750
+ /**
2751
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesFiltersRequestHeaderModifier' to JSON
2752
+ * representation.
2753
+ */
2754
+ /* eslint-disable max-len, quote-props */
2755
+ function toJson_HttpRouteV1Beta1SpecRulesFiltersRequestHeaderModifier(obj) {
2756
+ if (obj === undefined) {
2757
+ return undefined;
2758
+ }
2759
+ const result = {
2760
+ add: obj.add?.map(y => toJson_HttpRouteV1Beta1SpecRulesFiltersRequestHeaderModifierAdd(y)),
2761
+ remove: obj.remove?.map(y => y),
2762
+ set: obj.set?.map(y => toJson_HttpRouteV1Beta1SpecRulesFiltersRequestHeaderModifierSet(y))
2763
+ };
2764
+ // filter undefined values
2765
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2766
+ }
2767
+ /**
2768
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesFiltersRequestMirror' to JSON
2769
+ * representation.
2770
+ */
2771
+ /* eslint-disable max-len, quote-props */
2772
+ function toJson_HttpRouteV1Beta1SpecRulesFiltersRequestMirror(obj) {
2773
+ if (obj === undefined) {
2774
+ return undefined;
2775
+ }
2776
+ const result = {
2777
+ backendRef: toJson_HttpRouteV1Beta1SpecRulesFiltersRequestMirrorBackendRef(obj.backendRef)
2778
+ };
2779
+ // filter undefined values
2780
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2781
+ }
2782
+ /**
2783
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesFiltersRequestRedirect' to JSON
2784
+ * representation.
2785
+ */
2786
+ /* eslint-disable max-len, quote-props */
2787
+ function toJson_HttpRouteV1Beta1SpecRulesFiltersRequestRedirect(obj) {
2788
+ if (obj === undefined) {
2789
+ return undefined;
2790
+ }
2791
+ const result = {
2792
+ hostname: obj.hostname,
2793
+ path: toJson_HttpRouteV1Beta1SpecRulesFiltersRequestRedirectPath(obj.path),
2794
+ port: obj.port,
2795
+ scheme: obj.scheme,
2796
+ statusCode: obj.statusCode
2797
+ };
2798
+ // filter undefined values
2799
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2800
+ }
2801
+ /**
2802
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesFiltersResponseHeaderModifier' to JSON
2803
+ * representation.
2804
+ */
2805
+ /* eslint-disable max-len, quote-props */
2806
+ function toJson_HttpRouteV1Beta1SpecRulesFiltersResponseHeaderModifier(obj) {
2807
+ if (obj === undefined) {
2808
+ return undefined;
2809
+ }
2810
+ const result = {
2811
+ add: obj.add?.map(y => toJson_HttpRouteV1Beta1SpecRulesFiltersResponseHeaderModifierAdd(y)),
2812
+ remove: obj.remove?.map(y => y),
2813
+ set: obj.set?.map(y => toJson_HttpRouteV1Beta1SpecRulesFiltersResponseHeaderModifierSet(y))
2814
+ };
2815
+ // filter undefined values
2816
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2817
+ }
2818
+ /* eslint-enable max-len, quote-props */
2819
+ /**
2820
+ * Type identifies the type of filter to apply. As with other API fields, types are classified into
2821
+ * three conformance levels:
2822
+ *
2823
+ * - Core: Filter types and their corresponding configuration defined by "Support: Core" in this
2824
+ * package, e.g. "RequestHeaderModifier". All implementations must support core filters.
2825
+ * - Extended: Filter types and their corresponding configuration defined by "Support: Extended" in
2826
+ * this package, e.g. "RequestMirror". Implementers are encouraged to support extended filters.
2827
+ * - Implementation-specific: Filters that are defined and supported by specific vendors. In the
2828
+ * future, filters showing convergence in behavior across multiple implementations will be
2829
+ * considered for inclusion in extended or core conformance levels. Filter-specific configuration
2830
+ * for such filters is specified using the ExtensionRef field. `Type` should be set to
2831
+ * "ExtensionRef" for custom filters.
2832
+ *
2833
+ * Implementers are encouraged to define custom implementation types to extend the core API with
2834
+ * implementation-specific behavior.
2835
+ *
2836
+ * If a reference to a custom filter type cannot be resolved, the filter MUST NOT be skipped.
2837
+ * Instead, requests that would have been processed by that filter MUST receive a HTTP error
2838
+ * response.
2839
+ *
2840
+ * Note that values may be added to this enum, implementations must ensure that unknown values will
2841
+ * not cause a crash.
2842
+ *
2843
+ * Unknown values here must result in the implementation setting the Accepted Condition for the
2844
+ * Route to `status: False`, with a Reason of `UnsupportedValue`.
2845
+ *
2846
+ * @schema HttpRouteV1Beta1SpecRulesFiltersType
2847
+ */
2848
+ var HttpRouteV1Beta1SpecRulesFiltersType;
2849
+ (function (HttpRouteV1Beta1SpecRulesFiltersType) {
2850
+ /** RequestHeaderModifier */
2851
+ HttpRouteV1Beta1SpecRulesFiltersType["REQUEST_HEADER_MODIFIER"] = "RequestHeaderModifier";
2852
+ /** ResponseHeaderModifier */
2853
+ HttpRouteV1Beta1SpecRulesFiltersType["RESPONSE_HEADER_MODIFIER"] = "ResponseHeaderModifier";
2854
+ /** RequestMirror */
2855
+ HttpRouteV1Beta1SpecRulesFiltersType["REQUEST_MIRROR"] = "RequestMirror";
2856
+ /** RequestRedirect */
2857
+ HttpRouteV1Beta1SpecRulesFiltersType["REQUEST_REDIRECT"] = "RequestRedirect";
2858
+ /** URLRewrite */
2859
+ HttpRouteV1Beta1SpecRulesFiltersType["URL_REWRITE"] = "URLRewrite";
2860
+ /** ExtensionRef */
2861
+ HttpRouteV1Beta1SpecRulesFiltersType["EXTENSION_REF"] = "ExtensionRef";
2862
+ })(HttpRouteV1Beta1SpecRulesFiltersType || (exports.HttpRouteV1Beta1SpecRulesFiltersType = HttpRouteV1Beta1SpecRulesFiltersType = {}));
2863
+ /** Converts an object of type 'HttpRouteV1Beta1SpecRulesFiltersUrlRewrite' to JSON representation. */
2864
+ /* eslint-disable max-len, quote-props */
2865
+ function toJson_HttpRouteV1Beta1SpecRulesFiltersUrlRewrite(obj) {
2866
+ if (obj === undefined) {
2867
+ return undefined;
2868
+ }
2869
+ const result = {
2870
+ hostname: obj.hostname,
2871
+ path: toJson_HttpRouteV1Beta1SpecRulesFiltersUrlRewritePath(obj.path)
2872
+ };
2873
+ // filter undefined values
2874
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2875
+ }
2876
+ /** Converts an object of type 'HttpRouteV1Beta1SpecRulesMatchesHeaders' to JSON representation. */
2877
+ /* eslint-disable max-len, quote-props */
2878
+ function toJson_HttpRouteV1Beta1SpecRulesMatchesHeaders(obj) {
2879
+ if (obj === undefined) {
2880
+ return undefined;
2881
+ }
2882
+ const result = {
2883
+ name: obj.name,
2884
+ type: obj.type,
2885
+ value: obj.value
2886
+ };
2887
+ // filter undefined values
2888
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2889
+ }
2890
+ /* eslint-enable max-len, quote-props */
2891
+ /**
2892
+ * Method specifies HTTP method matcher. When specified, this route will be matched only if the
2893
+ * request has the specified method.
2894
+ *
2895
+ * Support: Extended
2896
+ *
2897
+ * @schema HttpRouteV1Beta1SpecRulesMatchesMethod
2898
+ */
2899
+ var HttpRouteV1Beta1SpecRulesMatchesMethod;
2900
+ (function (HttpRouteV1Beta1SpecRulesMatchesMethod) {
2901
+ /** GET */
2902
+ HttpRouteV1Beta1SpecRulesMatchesMethod["GET"] = "GET";
2903
+ /** HEAD */
2904
+ HttpRouteV1Beta1SpecRulesMatchesMethod["HEAD"] = "HEAD";
2905
+ /** POST */
2906
+ HttpRouteV1Beta1SpecRulesMatchesMethod["POST"] = "POST";
2907
+ /** PUT */
2908
+ HttpRouteV1Beta1SpecRulesMatchesMethod["PUT"] = "PUT";
2909
+ /** DELETE */
2910
+ HttpRouteV1Beta1SpecRulesMatchesMethod["DELETE"] = "DELETE";
2911
+ /** CONNECT */
2912
+ HttpRouteV1Beta1SpecRulesMatchesMethod["CONNECT"] = "CONNECT";
2913
+ /** OPTIONS */
2914
+ HttpRouteV1Beta1SpecRulesMatchesMethod["OPTIONS"] = "OPTIONS";
2915
+ /** TRACE */
2916
+ HttpRouteV1Beta1SpecRulesMatchesMethod["TRACE"] = "TRACE";
2917
+ /** PATCH */
2918
+ HttpRouteV1Beta1SpecRulesMatchesMethod["PATCH"] = "PATCH";
2919
+ })(HttpRouteV1Beta1SpecRulesMatchesMethod || (exports.HttpRouteV1Beta1SpecRulesMatchesMethod = HttpRouteV1Beta1SpecRulesMatchesMethod = {}));
2920
+ /** Converts an object of type 'HttpRouteV1Beta1SpecRulesMatchesPath' to JSON representation. */
2921
+ /* eslint-disable max-len, quote-props */
2922
+ function toJson_HttpRouteV1Beta1SpecRulesMatchesPath(obj) {
2923
+ if (obj === undefined) {
2924
+ return undefined;
2925
+ }
2926
+ const result = {
2927
+ type: obj.type,
2928
+ value: obj.value
2929
+ };
2930
+ // filter undefined values
2931
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2932
+ }
2933
+ /** Converts an object of type 'HttpRouteV1Beta1SpecRulesMatchesQueryParams' to JSON representation. */
2934
+ /* eslint-disable max-len, quote-props */
2935
+ function toJson_HttpRouteV1Beta1SpecRulesMatchesQueryParams(obj) {
2936
+ if (obj === undefined) {
2937
+ return undefined;
2938
+ }
2939
+ const result = {
2940
+ name: obj.name,
2941
+ type: obj.type,
2942
+ value: obj.value
2943
+ };
2944
+ // filter undefined values
2945
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2946
+ }
2947
+ /**
2948
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesBackendRefsFiltersExtensionRef' to JSON
2949
+ * representation.
2950
+ */
2951
+ /* eslint-disable max-len, quote-props */
2952
+ function toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersExtensionRef(obj) {
2953
+ if (obj === undefined) {
2954
+ return undefined;
2955
+ }
2956
+ const result = {
2957
+ group: obj.group,
2958
+ kind: obj.kind,
2959
+ name: obj.name
2960
+ };
2961
+ // filter undefined values
2962
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2963
+ }
2964
+ /**
2965
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestHeaderModifier' to
2966
+ * JSON representation.
2967
+ */
2968
+ /* eslint-disable max-len, quote-props */
2969
+ function toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestHeaderModifier(obj) {
2970
+ if (obj === undefined) {
2971
+ return undefined;
2972
+ }
2973
+ const result = {
2974
+ add: obj.add?.map(y => toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestHeaderModifierAdd(y)),
2975
+ remove: obj.remove?.map(y => y),
2976
+ set: obj.set?.map(y => toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestHeaderModifierSet(y))
2977
+ };
2978
+ // filter undefined values
2979
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2980
+ }
2981
+ /**
2982
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestMirror' to JSON
2983
+ * representation.
2984
+ */
2985
+ /* eslint-disable max-len, quote-props */
2986
+ function toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestMirror(obj) {
2987
+ if (obj === undefined) {
2988
+ return undefined;
2989
+ }
2990
+ const result = {
2991
+ backendRef: toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestMirrorBackendRef(obj.backendRef)
2992
+ };
2993
+ // filter undefined values
2994
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
2995
+ }
2996
+ /**
2997
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirect' to JSON
2998
+ * representation.
2999
+ */
3000
+ /* eslint-disable max-len, quote-props */
3001
+ function toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirect(obj) {
3002
+ if (obj === undefined) {
3003
+ return undefined;
3004
+ }
3005
+ const result = {
3006
+ hostname: obj.hostname,
3007
+ path: toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectPath(obj.path),
3008
+ port: obj.port,
3009
+ scheme: obj.scheme,
3010
+ statusCode: obj.statusCode
3011
+ };
3012
+ // filter undefined values
3013
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
3014
+ }
3015
+ /**
3016
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesBackendRefsFiltersResponseHeaderModifier' to
3017
+ * JSON representation.
3018
+ */
3019
+ /* eslint-disable max-len, quote-props */
3020
+ function toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersResponseHeaderModifier(obj) {
3021
+ if (obj === undefined) {
3022
+ return undefined;
3023
+ }
3024
+ const result = {
3025
+ add: obj.add?.map(y => toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersResponseHeaderModifierAdd(y)),
3026
+ remove: obj.remove?.map(y => y),
3027
+ set: obj.set?.map(y => toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersResponseHeaderModifierSet(y))
3028
+ };
3029
+ // filter undefined values
3030
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
3031
+ }
3032
+ /* eslint-enable max-len, quote-props */
3033
+ /**
3034
+ * Type identifies the type of filter to apply. As with other API fields, types are classified into
3035
+ * three conformance levels:
3036
+ *
3037
+ * - Core: Filter types and their corresponding configuration defined by "Support: Core" in this
3038
+ * package, e.g. "RequestHeaderModifier". All implementations must support core filters.
3039
+ * - Extended: Filter types and their corresponding configuration defined by "Support: Extended" in
3040
+ * this package, e.g. "RequestMirror". Implementers are encouraged to support extended filters.
3041
+ * - Implementation-specific: Filters that are defined and supported by specific vendors. In the
3042
+ * future, filters showing convergence in behavior across multiple implementations will be
3043
+ * considered for inclusion in extended or core conformance levels. Filter-specific configuration
3044
+ * for such filters is specified using the ExtensionRef field. `Type` should be set to
3045
+ * "ExtensionRef" for custom filters.
3046
+ *
3047
+ * Implementers are encouraged to define custom implementation types to extend the core API with
3048
+ * implementation-specific behavior.
3049
+ *
3050
+ * If a reference to a custom filter type cannot be resolved, the filter MUST NOT be skipped.
3051
+ * Instead, requests that would have been processed by that filter MUST receive a HTTP error
3052
+ * response.
3053
+ *
3054
+ * Note that values may be added to this enum, implementations must ensure that unknown values will
3055
+ * not cause a crash.
3056
+ *
3057
+ * Unknown values here must result in the implementation setting the Accepted Condition for the
3058
+ * Route to `status: False`, with a Reason of `UnsupportedValue`.
3059
+ *
3060
+ * @schema HttpRouteV1Beta1SpecRulesBackendRefsFiltersType
3061
+ */
3062
+ var HttpRouteV1Beta1SpecRulesBackendRefsFiltersType;
3063
+ (function (HttpRouteV1Beta1SpecRulesBackendRefsFiltersType) {
3064
+ /** RequestHeaderModifier */
3065
+ HttpRouteV1Beta1SpecRulesBackendRefsFiltersType["REQUEST_HEADER_MODIFIER"] = "RequestHeaderModifier";
3066
+ /** ResponseHeaderModifier */
3067
+ HttpRouteV1Beta1SpecRulesBackendRefsFiltersType["RESPONSE_HEADER_MODIFIER"] = "ResponseHeaderModifier";
3068
+ /** RequestMirror */
3069
+ HttpRouteV1Beta1SpecRulesBackendRefsFiltersType["REQUEST_MIRROR"] = "RequestMirror";
3070
+ /** RequestRedirect */
3071
+ HttpRouteV1Beta1SpecRulesBackendRefsFiltersType["REQUEST_REDIRECT"] = "RequestRedirect";
3072
+ /** URLRewrite */
3073
+ HttpRouteV1Beta1SpecRulesBackendRefsFiltersType["URL_REWRITE"] = "URLRewrite";
3074
+ /** ExtensionRef */
3075
+ HttpRouteV1Beta1SpecRulesBackendRefsFiltersType["EXTENSION_REF"] = "ExtensionRef";
3076
+ })(HttpRouteV1Beta1SpecRulesBackendRefsFiltersType || (exports.HttpRouteV1Beta1SpecRulesBackendRefsFiltersType = HttpRouteV1Beta1SpecRulesBackendRefsFiltersType = {}));
3077
+ /**
3078
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesBackendRefsFiltersUrlRewrite' to JSON
3079
+ * representation.
3080
+ */
3081
+ /* eslint-disable max-len, quote-props */
3082
+ function toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersUrlRewrite(obj) {
3083
+ if (obj === undefined) {
3084
+ return undefined;
3085
+ }
3086
+ const result = {
3087
+ hostname: obj.hostname,
3088
+ path: toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersUrlRewritePath(obj.path)
3089
+ };
3090
+ // filter undefined values
3091
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
3092
+ }
3093
+ /**
3094
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesFiltersRequestHeaderModifierAdd' to JSON
3095
+ * representation.
3096
+ */
3097
+ /* eslint-disable max-len, quote-props */
3098
+ function toJson_HttpRouteV1Beta1SpecRulesFiltersRequestHeaderModifierAdd(obj) {
3099
+ if (obj === undefined) {
3100
+ return undefined;
3101
+ }
3102
+ const result = {
3103
+ name: obj.name,
3104
+ value: obj.value
3105
+ };
3106
+ // filter undefined values
3107
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
3108
+ }
3109
+ /**
3110
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesFiltersRequestHeaderModifierSet' to JSON
3111
+ * representation.
3112
+ */
3113
+ /* eslint-disable max-len, quote-props */
3114
+ function toJson_HttpRouteV1Beta1SpecRulesFiltersRequestHeaderModifierSet(obj) {
3115
+ if (obj === undefined) {
3116
+ return undefined;
3117
+ }
3118
+ const result = {
3119
+ name: obj.name,
3120
+ value: obj.value
3121
+ };
3122
+ // filter undefined values
3123
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
3124
+ }
3125
+ /**
3126
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesFiltersRequestMirrorBackendRef' to JSON
3127
+ * representation.
3128
+ */
3129
+ /* eslint-disable max-len, quote-props */
3130
+ function toJson_HttpRouteV1Beta1SpecRulesFiltersRequestMirrorBackendRef(obj) {
3131
+ if (obj === undefined) {
3132
+ return undefined;
3133
+ }
3134
+ const result = {
3135
+ group: obj.group,
3136
+ kind: obj.kind,
3137
+ name: obj.name,
3138
+ namespace: obj.namespace,
3139
+ port: obj.port
3140
+ };
3141
+ // filter undefined values
3142
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
3143
+ }
3144
+ /**
3145
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesFiltersRequestRedirectPath' to JSON
3146
+ * representation.
3147
+ */
3148
+ /* eslint-disable max-len, quote-props */
3149
+ function toJson_HttpRouteV1Beta1SpecRulesFiltersRequestRedirectPath(obj) {
3150
+ if (obj === undefined) {
3151
+ return undefined;
3152
+ }
3153
+ const result = {
3154
+ replaceFullPath: obj.replaceFullPath,
3155
+ replacePrefixMatch: obj.replacePrefixMatch,
3156
+ type: obj.type
3157
+ };
3158
+ // filter undefined values
3159
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
3160
+ }
3161
+ /* eslint-enable max-len, quote-props */
3162
+ /**
3163
+ * Scheme is the scheme to be used in the value of the `Location` header in the response. When
3164
+ * empty, the scheme of the request is used.
3165
+ *
3166
+ * Scheme redirects can affect the port of the redirect, for more information, refer to the
3167
+ * documentation for the port field of this filter.
3168
+ *
3169
+ * Note that values may be added to this enum, implementations must ensure that unknown values will
3170
+ * not cause a crash.
3171
+ *
3172
+ * Unknown values here must result in the implementation setting the Accepted Condition for the
3173
+ * Route to `status: False`, with a Reason of `UnsupportedValue`.
3174
+ *
3175
+ * Support: Extended
3176
+ *
3177
+ * @schema HttpRouteV1Beta1SpecRulesFiltersRequestRedirectScheme
3178
+ */
3179
+ var HttpRouteV1Beta1SpecRulesFiltersRequestRedirectScheme;
3180
+ (function (HttpRouteV1Beta1SpecRulesFiltersRequestRedirectScheme) {
3181
+ /** Http */
3182
+ HttpRouteV1Beta1SpecRulesFiltersRequestRedirectScheme["HTTP"] = "http";
3183
+ /** Https */
3184
+ HttpRouteV1Beta1SpecRulesFiltersRequestRedirectScheme["HTTPS"] = "https";
3185
+ })(HttpRouteV1Beta1SpecRulesFiltersRequestRedirectScheme || (exports.HttpRouteV1Beta1SpecRulesFiltersRequestRedirectScheme = HttpRouteV1Beta1SpecRulesFiltersRequestRedirectScheme = {}));
3186
+ /**
3187
+ * StatusCode is the HTTP status code to be used in response.
3188
+ *
3189
+ * Note that values may be added to this enum, implementations must ensure that unknown values will
3190
+ * not cause a crash.
3191
+ *
3192
+ * Unknown values here must result in the implementation setting the Accepted Condition for the
3193
+ * Route to `status: False`, with a Reason of `UnsupportedValue`.
3194
+ *
3195
+ * Support: Core
3196
+ *
3197
+ * @schema HttpRouteV1Beta1SpecRulesFiltersRequestRedirectStatusCode
3198
+ */
3199
+ var HttpRouteV1Beta1SpecRulesFiltersRequestRedirectStatusCode;
3200
+ (function (HttpRouteV1Beta1SpecRulesFiltersRequestRedirectStatusCode) {
3201
+ /** 301 */
3202
+ HttpRouteV1Beta1SpecRulesFiltersRequestRedirectStatusCode[HttpRouteV1Beta1SpecRulesFiltersRequestRedirectStatusCode["VALUE_301"] = 301] = "VALUE_301";
3203
+ /** 302 */
3204
+ HttpRouteV1Beta1SpecRulesFiltersRequestRedirectStatusCode[HttpRouteV1Beta1SpecRulesFiltersRequestRedirectStatusCode["VALUE_302"] = 302] = "VALUE_302";
3205
+ })(HttpRouteV1Beta1SpecRulesFiltersRequestRedirectStatusCode || (exports.HttpRouteV1Beta1SpecRulesFiltersRequestRedirectStatusCode = HttpRouteV1Beta1SpecRulesFiltersRequestRedirectStatusCode = {}));
3206
+ /**
3207
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesFiltersResponseHeaderModifierAdd' to JSON
3208
+ * representation.
3209
+ */
3210
+ /* eslint-disable max-len, quote-props */
3211
+ function toJson_HttpRouteV1Beta1SpecRulesFiltersResponseHeaderModifierAdd(obj) {
3212
+ if (obj === undefined) {
3213
+ return undefined;
3214
+ }
3215
+ const result = {
3216
+ name: obj.name,
3217
+ value: obj.value
3218
+ };
3219
+ // filter undefined values
3220
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
3221
+ }
3222
+ /**
3223
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesFiltersResponseHeaderModifierSet' to JSON
3224
+ * representation.
3225
+ */
3226
+ /* eslint-disable max-len, quote-props */
3227
+ function toJson_HttpRouteV1Beta1SpecRulesFiltersResponseHeaderModifierSet(obj) {
3228
+ if (obj === undefined) {
3229
+ return undefined;
3230
+ }
3231
+ const result = {
3232
+ name: obj.name,
3233
+ value: obj.value
3234
+ };
3235
+ // filter undefined values
3236
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
3237
+ }
3238
+ /**
3239
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesFiltersUrlRewritePath' to JSON
3240
+ * representation.
3241
+ */
3242
+ /* eslint-disable max-len, quote-props */
3243
+ function toJson_HttpRouteV1Beta1SpecRulesFiltersUrlRewritePath(obj) {
3244
+ if (obj === undefined) {
3245
+ return undefined;
3246
+ }
3247
+ const result = {
3248
+ replaceFullPath: obj.replaceFullPath,
3249
+ replacePrefixMatch: obj.replacePrefixMatch,
3250
+ type: obj.type
3251
+ };
3252
+ // filter undefined values
3253
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
3254
+ }
3255
+ /* eslint-enable max-len, quote-props */
3256
+ /**
3257
+ * Type specifies how to match against the value of the header.
3258
+ *
3259
+ * Support: Core (Exact)
3260
+ *
3261
+ * Support: Implementation-specific (RegularExpression)
3262
+ *
3263
+ * Since RegularExpression HeaderMatchType has implementation-specific conformance, implementations
3264
+ * can support POSIX, PCRE or any other dialects of regular expressions. Please read the
3265
+ * implementation's documentation to determine the supported dialect.
3266
+ *
3267
+ * @schema HttpRouteV1Beta1SpecRulesMatchesHeadersType
3268
+ */
3269
+ var HttpRouteV1Beta1SpecRulesMatchesHeadersType;
3270
+ (function (HttpRouteV1Beta1SpecRulesMatchesHeadersType) {
3271
+ /** Exact */
3272
+ HttpRouteV1Beta1SpecRulesMatchesHeadersType["EXACT"] = "Exact";
3273
+ /** RegularExpression */
3274
+ HttpRouteV1Beta1SpecRulesMatchesHeadersType["REGULAR_EXPRESSION"] = "RegularExpression";
3275
+ })(HttpRouteV1Beta1SpecRulesMatchesHeadersType || (exports.HttpRouteV1Beta1SpecRulesMatchesHeadersType = HttpRouteV1Beta1SpecRulesMatchesHeadersType = {}));
3276
+ /**
3277
+ * Type specifies how to match against the path Value.
3278
+ *
3279
+ * Support: Core (Exact, PathPrefix)
3280
+ *
3281
+ * Support: Implementation-specific (RegularExpression)
3282
+ *
3283
+ * @schema HttpRouteV1Beta1SpecRulesMatchesPathType
3284
+ */
3285
+ var HttpRouteV1Beta1SpecRulesMatchesPathType;
3286
+ (function (HttpRouteV1Beta1SpecRulesMatchesPathType) {
3287
+ /** Exact */
3288
+ HttpRouteV1Beta1SpecRulesMatchesPathType["EXACT"] = "Exact";
3289
+ /** PathPrefix */
3290
+ HttpRouteV1Beta1SpecRulesMatchesPathType["PATH_PREFIX"] = "PathPrefix";
3291
+ /** RegularExpression */
3292
+ HttpRouteV1Beta1SpecRulesMatchesPathType["REGULAR_EXPRESSION"] = "RegularExpression";
3293
+ })(HttpRouteV1Beta1SpecRulesMatchesPathType || (exports.HttpRouteV1Beta1SpecRulesMatchesPathType = HttpRouteV1Beta1SpecRulesMatchesPathType = {}));
3294
+ /**
3295
+ * Type specifies how to match against the value of the query parameter.
3296
+ *
3297
+ * Support: Extended (Exact)
3298
+ *
3299
+ * Support: Implementation-specific (RegularExpression)
3300
+ *
3301
+ * Since RegularExpression QueryParamMatchType has Implementation-specific conformance,
3302
+ * implementations can support POSIX, PCRE or any other dialects of regular expressions. Please read
3303
+ * the implementation's documentation to determine the supported dialect.
3304
+ *
3305
+ * @schema HttpRouteV1Beta1SpecRulesMatchesQueryParamsType
3306
+ */
3307
+ var HttpRouteV1Beta1SpecRulesMatchesQueryParamsType;
3308
+ (function (HttpRouteV1Beta1SpecRulesMatchesQueryParamsType) {
3309
+ /** Exact */
3310
+ HttpRouteV1Beta1SpecRulesMatchesQueryParamsType["EXACT"] = "Exact";
3311
+ /** RegularExpression */
3312
+ HttpRouteV1Beta1SpecRulesMatchesQueryParamsType["REGULAR_EXPRESSION"] = "RegularExpression";
3313
+ })(HttpRouteV1Beta1SpecRulesMatchesQueryParamsType || (exports.HttpRouteV1Beta1SpecRulesMatchesQueryParamsType = HttpRouteV1Beta1SpecRulesMatchesQueryParamsType = {}));
3314
+ /**
3315
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestHeaderModifierAdd'
3316
+ * to JSON representation.
3317
+ */
3318
+ /* eslint-disable max-len, quote-props */
3319
+ function toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestHeaderModifierAdd(obj) {
3320
+ if (obj === undefined) {
3321
+ return undefined;
3322
+ }
3323
+ const result = {
3324
+ name: obj.name,
3325
+ value: obj.value
3326
+ };
3327
+ // filter undefined values
3328
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
3329
+ }
3330
+ /**
3331
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestHeaderModifierSet'
3332
+ * to JSON representation.
3333
+ */
3334
+ /* eslint-disable max-len, quote-props */
3335
+ function toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestHeaderModifierSet(obj) {
3336
+ if (obj === undefined) {
3337
+ return undefined;
3338
+ }
3339
+ const result = {
3340
+ name: obj.name,
3341
+ value: obj.value
3342
+ };
3343
+ // filter undefined values
3344
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
3345
+ }
3346
+ /**
3347
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestMirrorBackendRef'
3348
+ * to JSON representation.
3349
+ */
3350
+ /* eslint-disable max-len, quote-props */
3351
+ function toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestMirrorBackendRef(obj) {
3352
+ if (obj === undefined) {
3353
+ return undefined;
3354
+ }
3355
+ const result = {
3356
+ group: obj.group,
3357
+ kind: obj.kind,
3358
+ name: obj.name,
3359
+ namespace: obj.namespace,
3360
+ port: obj.port
3361
+ };
3362
+ // filter undefined values
3363
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
3364
+ }
3365
+ /**
3366
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectPath' to
3367
+ * JSON representation.
3368
+ */
3369
+ /* eslint-disable max-len, quote-props */
3370
+ function toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectPath(obj) {
3371
+ if (obj === undefined) {
3372
+ return undefined;
3373
+ }
3374
+ const result = {
3375
+ replaceFullPath: obj.replaceFullPath,
3376
+ replacePrefixMatch: obj.replacePrefixMatch,
3377
+ type: obj.type
3378
+ };
3379
+ // filter undefined values
3380
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
3381
+ }
3382
+ /* eslint-enable max-len, quote-props */
3383
+ /**
3384
+ * Scheme is the scheme to be used in the value of the `Location` header in the response. When
3385
+ * empty, the scheme of the request is used.
3386
+ *
3387
+ * Scheme redirects can affect the port of the redirect, for more information, refer to the
3388
+ * documentation for the port field of this filter.
3389
+ *
3390
+ * Note that values may be added to this enum, implementations must ensure that unknown values will
3391
+ * not cause a crash.
3392
+ *
3393
+ * Unknown values here must result in the implementation setting the Accepted Condition for the
3394
+ * Route to `status: False`, with a Reason of `UnsupportedValue`.
3395
+ *
3396
+ * Support: Extended
3397
+ *
3398
+ * @schema HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectScheme
3399
+ */
3400
+ var HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectScheme;
3401
+ (function (HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectScheme) {
3402
+ /** Http */
3403
+ HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectScheme["HTTP"] = "http";
3404
+ /** Https */
3405
+ HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectScheme["HTTPS"] = "https";
3406
+ })(HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectScheme || (exports.HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectScheme = HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectScheme = {}));
3407
+ /**
3408
+ * StatusCode is the HTTP status code to be used in response.
3409
+ *
3410
+ * Note that values may be added to this enum, implementations must ensure that unknown values will
3411
+ * not cause a crash.
3412
+ *
3413
+ * Unknown values here must result in the implementation setting the Accepted Condition for the
3414
+ * Route to `status: False`, with a Reason of `UnsupportedValue`.
3415
+ *
3416
+ * Support: Core
3417
+ *
3418
+ * @schema HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectStatusCode
3419
+ */
3420
+ var HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectStatusCode;
3421
+ (function (HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectStatusCode) {
3422
+ /** 301 */
3423
+ HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectStatusCode[HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectStatusCode["VALUE_301"] = 301] = "VALUE_301";
3424
+ /** 302 */
3425
+ HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectStatusCode[HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectStatusCode["VALUE_302"] = 302] = "VALUE_302";
3426
+ })(HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectStatusCode || (exports.HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectStatusCode = HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectStatusCode = {}));
3427
+ /**
3428
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesBackendRefsFiltersResponseHeaderModifierAdd'
3429
+ * to JSON representation.
3430
+ */
3431
+ /* eslint-disable max-len, quote-props */
3432
+ function toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersResponseHeaderModifierAdd(obj) {
3433
+ if (obj === undefined) {
3434
+ return undefined;
3435
+ }
3436
+ const result = {
3437
+ name: obj.name,
3438
+ value: obj.value
3439
+ };
3440
+ // filter undefined values
3441
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
3442
+ }
3443
+ /**
3444
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesBackendRefsFiltersResponseHeaderModifierSet'
3445
+ * to JSON representation.
3446
+ */
3447
+ /* eslint-disable max-len, quote-props */
3448
+ function toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersResponseHeaderModifierSet(obj) {
3449
+ if (obj === undefined) {
3450
+ return undefined;
3451
+ }
3452
+ const result = {
3453
+ name: obj.name,
3454
+ value: obj.value
3455
+ };
3456
+ // filter undefined values
3457
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
3458
+ }
3459
+ /**
3460
+ * Converts an object of type 'HttpRouteV1Beta1SpecRulesBackendRefsFiltersUrlRewritePath' to JSON
3461
+ * representation.
3462
+ */
3463
+ /* eslint-disable max-len, quote-props */
3464
+ function toJson_HttpRouteV1Beta1SpecRulesBackendRefsFiltersUrlRewritePath(obj) {
3465
+ if (obj === undefined) {
3466
+ return undefined;
3467
+ }
3468
+ const result = {
3469
+ replaceFullPath: obj.replaceFullPath,
3470
+ replacePrefixMatch: obj.replacePrefixMatch,
3471
+ type: obj.type
3472
+ };
3473
+ // filter undefined values
3474
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
3475
+ }
3476
+ /* eslint-enable max-len, quote-props */
3477
+ /**
3478
+ * Type defines the type of path modifier. Additional types may be added in a future release of the
3479
+ * API.
3480
+ *
3481
+ * Note that values may be added to this enum, implementations must ensure that unknown values will
3482
+ * not cause a crash.
3483
+ *
3484
+ * Unknown values here must result in the implementation setting the Accepted Condition for the
3485
+ * Route to `status: False`, with a Reason of `UnsupportedValue`.
3486
+ *
3487
+ * @schema HttpRouteV1Beta1SpecRulesFiltersRequestRedirectPathType
3488
+ */
3489
+ var HttpRouteV1Beta1SpecRulesFiltersRequestRedirectPathType;
3490
+ (function (HttpRouteV1Beta1SpecRulesFiltersRequestRedirectPathType) {
3491
+ /** ReplaceFullPath */
3492
+ HttpRouteV1Beta1SpecRulesFiltersRequestRedirectPathType["REPLACE_FULL_PATH"] = "ReplaceFullPath";
3493
+ /** ReplacePrefixMatch */
3494
+ HttpRouteV1Beta1SpecRulesFiltersRequestRedirectPathType["REPLACE_PREFIX_MATCH"] = "ReplacePrefixMatch";
3495
+ })(HttpRouteV1Beta1SpecRulesFiltersRequestRedirectPathType || (exports.HttpRouteV1Beta1SpecRulesFiltersRequestRedirectPathType = HttpRouteV1Beta1SpecRulesFiltersRequestRedirectPathType = {}));
3496
+ /**
3497
+ * Type defines the type of path modifier. Additional types may be added in a future release of the
3498
+ * API.
3499
+ *
3500
+ * Note that values may be added to this enum, implementations must ensure that unknown values will
3501
+ * not cause a crash.
3502
+ *
3503
+ * Unknown values here must result in the implementation setting the Accepted Condition for the
3504
+ * Route to `status: False`, with a Reason of `UnsupportedValue`.
3505
+ *
3506
+ * @schema HttpRouteV1Beta1SpecRulesFiltersUrlRewritePathType
3507
+ */
3508
+ var HttpRouteV1Beta1SpecRulesFiltersUrlRewritePathType;
3509
+ (function (HttpRouteV1Beta1SpecRulesFiltersUrlRewritePathType) {
3510
+ /** ReplaceFullPath */
3511
+ HttpRouteV1Beta1SpecRulesFiltersUrlRewritePathType["REPLACE_FULL_PATH"] = "ReplaceFullPath";
3512
+ /** ReplacePrefixMatch */
3513
+ HttpRouteV1Beta1SpecRulesFiltersUrlRewritePathType["REPLACE_PREFIX_MATCH"] = "ReplacePrefixMatch";
3514
+ })(HttpRouteV1Beta1SpecRulesFiltersUrlRewritePathType || (exports.HttpRouteV1Beta1SpecRulesFiltersUrlRewritePathType = HttpRouteV1Beta1SpecRulesFiltersUrlRewritePathType = {}));
3515
+ /**
3516
+ * Type defines the type of path modifier. Additional types may be added in a future release of the
3517
+ * API.
3518
+ *
3519
+ * Note that values may be added to this enum, implementations must ensure that unknown values will
3520
+ * not cause a crash.
3521
+ *
3522
+ * Unknown values here must result in the implementation setting the Accepted Condition for the
3523
+ * Route to `status: False`, with a Reason of `UnsupportedValue`.
3524
+ *
3525
+ * @schema HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectPathType
3526
+ */
3527
+ var HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectPathType;
3528
+ (function (HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectPathType) {
3529
+ /** ReplaceFullPath */
3530
+ HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectPathType["REPLACE_FULL_PATH"] = "ReplaceFullPath";
3531
+ /** ReplacePrefixMatch */
3532
+ HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectPathType["REPLACE_PREFIX_MATCH"] = "ReplacePrefixMatch";
3533
+ })(HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectPathType || (exports.HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectPathType = HttpRouteV1Beta1SpecRulesBackendRefsFiltersRequestRedirectPathType = {}));
3534
+ /**
3535
+ * Type defines the type of path modifier. Additional types may be added in a future release of the
3536
+ * API.
3537
+ *
3538
+ * Note that values may be added to this enum, implementations must ensure that unknown values will
3539
+ * not cause a crash.
3540
+ *
3541
+ * Unknown values here must result in the implementation setting the Accepted Condition for the
3542
+ * Route to `status: False`, with a Reason of `UnsupportedValue`.
3543
+ *
3544
+ * @schema HttpRouteV1Beta1SpecRulesBackendRefsFiltersUrlRewritePathType
3545
+ */
3546
+ var HttpRouteV1Beta1SpecRulesBackendRefsFiltersUrlRewritePathType;
3547
+ (function (HttpRouteV1Beta1SpecRulesBackendRefsFiltersUrlRewritePathType) {
3548
+ /** ReplaceFullPath */
3549
+ HttpRouteV1Beta1SpecRulesBackendRefsFiltersUrlRewritePathType["REPLACE_FULL_PATH"] = "ReplaceFullPath";
3550
+ /** ReplacePrefixMatch */
3551
+ HttpRouteV1Beta1SpecRulesBackendRefsFiltersUrlRewritePathType["REPLACE_PREFIX_MATCH"] = "ReplacePrefixMatch";
3552
+ })(HttpRouteV1Beta1SpecRulesBackendRefsFiltersUrlRewritePathType || (exports.HttpRouteV1Beta1SpecRulesBackendRefsFiltersUrlRewritePathType = HttpRouteV1Beta1SpecRulesBackendRefsFiltersUrlRewritePathType = {}));
3553
+ /**
3554
+ * ReferenceGrant identifies kinds of resources in other namespaces that are trusted to reference
3555
+ * the specified kinds of resources in the same namespace as the policy.
3556
+ *
3557
+ * Each ReferenceGrant can be used to represent a unique trust relationship. Additional Reference
3558
+ * Grants can be used to add to the set of trusted sources of inbound references for the namespace
3559
+ * they are defined within.
3560
+ *
3561
+ * All cross-namespace references in Gateway API (with the exception of cross-namespace
3562
+ * Gateway-route attachment) require a ReferenceGrant.
3563
+ *
3564
+ * ReferenceGrant is a form of runtime verification allowing users to assert which cross-namespace
3565
+ * object references are permitted. Implementations that support ReferenceGrant MUST NOT permit
3566
+ * cross-namespace references which have no grant, and MUST respond to the removal of a grant by
3567
+ * revoking the access that the grant allowed.
3568
+ *
3569
+ * @schema ReferenceGrant
3570
+ */
3571
+ class ReferenceGrant extends cdk8s_1.ApiObject {
3572
+ /**
3573
+ * Renders a Kubernetes manifest for "ReferenceGrant".
3574
+ *
3575
+ * This can be used to inline resource manifests inside other objects (e.g. as templates).
3576
+ *
3577
+ * @param props Initialization props
3578
+ */
3579
+ static manifest(props = {}) {
3580
+ return {
3581
+ ...ReferenceGrant.GVK,
3582
+ ...toJson_ReferenceGrantProps(props)
3583
+ };
3584
+ }
3585
+ /**
3586
+ * Defines a "ReferenceGrant" API object
3587
+ *
3588
+ * @param scope The scope in which to define this object
3589
+ * @param id A scope-local name for the object
3590
+ * @param props Initialization props
3591
+ */
3592
+ constructor(scope, id, props = {}) {
3593
+ super(scope, id, {
3594
+ ...ReferenceGrant.GVK,
3595
+ ...props
3596
+ });
3597
+ }
3598
+ /** Renders the object to Kubernetes JSON. */
3599
+ toJson() {
3600
+ const resolved = super.toJson();
3601
+ return {
3602
+ ...ReferenceGrant.GVK,
3603
+ ...toJson_ReferenceGrantProps(resolved)
3604
+ };
3605
+ }
3606
+ }
3607
+ exports.ReferenceGrant = ReferenceGrant;
3608
+ /** Returns the apiVersion and kind for "ReferenceGrant" */
3609
+ ReferenceGrant.GVK = {
3610
+ apiVersion: "gateway.networking.k8s.io/v1beta1",
3611
+ kind: "ReferenceGrant"
3612
+ };
3613
+ /** Converts an object of type 'ReferenceGrantProps' to JSON representation. */
3614
+ /* eslint-disable max-len, quote-props */
3615
+ function toJson_ReferenceGrantProps(obj) {
3616
+ if (obj === undefined) {
3617
+ return undefined;
3618
+ }
3619
+ const result = {
3620
+ metadata: obj.metadata,
3621
+ spec: toJson_ReferenceGrantSpec(obj.spec)
3622
+ };
3623
+ // filter undefined values
3624
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
3625
+ }
3626
+ /** Converts an object of type 'ReferenceGrantSpec' to JSON representation. */
3627
+ /* eslint-disable max-len, quote-props */
3628
+ function toJson_ReferenceGrantSpec(obj) {
3629
+ if (obj === undefined) {
3630
+ return undefined;
3631
+ }
3632
+ const result = {
3633
+ from: obj.from?.map(y => toJson_ReferenceGrantSpecFrom(y)),
3634
+ to: obj.to?.map(y => toJson_ReferenceGrantSpecTo(y))
3635
+ };
3636
+ // filter undefined values
3637
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
3638
+ }
3639
+ /** Converts an object of type 'ReferenceGrantSpecFrom' to JSON representation. */
3640
+ /* eslint-disable max-len, quote-props */
3641
+ function toJson_ReferenceGrantSpecFrom(obj) {
3642
+ if (obj === undefined) {
3643
+ return undefined;
3644
+ }
3645
+ const result = {
3646
+ group: obj.group,
3647
+ kind: obj.kind,
3648
+ namespace: obj.namespace
3649
+ };
3650
+ // filter undefined values
3651
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
3652
+ }
3653
+ /** Converts an object of type 'ReferenceGrantSpecTo' to JSON representation. */
3654
+ /* eslint-disable max-len, quote-props */
3655
+ function toJson_ReferenceGrantSpecTo(obj) {
3656
+ if (obj === undefined) {
3657
+ return undefined;
3658
+ }
3659
+ const result = {
3660
+ group: obj.group,
3661
+ kind: obj.kind,
3662
+ name: obj.name
3663
+ };
3664
+ // filter undefined values
3665
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
3666
+ }
3667
+ /* eslint-enable max-len, quote-props */
3668
+ //# sourceMappingURL=gateway.networking.k8s.io.js.map