apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"apiextensions.k8s.io/v1","kind":"CustomResourceDefinition","metadata":{"annotations":{},"creationTimestamp":"2023-06-01T14:30:01Z","generation":1,"name":"routetables.gateway.solo.io","resourceVersion":"3708676","uid":"b54ccab2-03e2-4937-a955-505440051e05"},"spec":{"conversion":{"strategy":"None"},"group":"gateway.solo.io","names":{"kind":"RouteTable","listKind":"RouteTableList","plural":"routetables","shortNames":["rt"],"singular":"routetable"},"scope":"Namespaced","versions":[{"name":"v1","schema":{"openAPIV3Schema":{"properties":{"spec":{"properties":{"namespacedStatuses":{"properties":{"statuses":{"additionalProperties":{"type":"object","x-kubernetes-preserve-unknown-fields":true},"type":"object"}},"type":"object"},"routes":{"items":{"properties":{"delegateAction":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"},"ref":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"selector":{"properties":{"expressions":{"items":{"properties":{"key":{"type":"string"},"operator":{"type":"string","x-kubernetes-int-or-string":true},"values":{"items":{"type":"string"},"type":"array"}},"type":"object"},"type":"array"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"namespaces":{"items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"},"directResponseAction":{"properties":{"body":{"type":"string"},"status":{"format":"int32","type":"integer"}},"type":"object"},"inheritableMatchers":{"nullable":true,"type":"boolean"},"inheritablePathMatchers":{"nullable":true,"type":"boolean"},"matchers":{"items":{"properties":{"caseSensitive":{"nullable":true,"type":"boolean"},"exact":{"type":"string"},"headers":{"items":{"properties":{"invertMatch":{"type":"boolean"},"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"methods":{"items":{"type":"string"},"type":"array"},"prefix":{"type":"string"},"queryParameters":{"items":{"properties":{"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"regex":{"type":"string"}},"type":"object"},"type":"array"},"name":{"type":"string"},"options":{"properties":{"autoHostRewrite":{"nullable":true,"type":"boolean"},"bufferPerRoute":{"properties":{"buffer":{"properties":{"maxRequestBytes":{"maximum":4294967295,"minimum":0,"nullable":true,"type":"integer"}},"type":"object"},"disabled":{"type":"boolean"}},"type":"object"},"cors":{"properties":{"allowCredentials":{"type":"boolean"},"allowHeaders":{"items":{"type":"string"},"type":"array"},"allowMethods":{"items":{"type":"string"},"type":"array"},"allowOrigin":{"items":{"type":"string"},"type":"array"},"allowOriginRegex":{"items":{"type":"string"},"type":"array"},"disableForRoute":{"type":"boolean"},"exposeHeaders":{"items":{"type":"string"},"type":"array"},"maxAge":{"type":"string"}},"type":"object"},"csrf":{"properties":{"additionalOrigins":{"items":{"properties":{"exact":{"type":"string"},"ignoreCase":{"type":"boolean"},"prefix":{"type":"string"},"safeRegex":{"properties":{"googleRe2":{"properties":{"maxProgramSize":{"maximum":4294967295,"minimum":0,"nullable":true,"type":"integer"}},"type":"object"},"regex":{"type":"string"}},"type":"object"},"suffix":{"type":"string"}},"type":"object"},"type":"array"},"filterEnabled":{"properties":{"defaultValue":{"properties":{"denominator":{"type":"string","x-kubernetes-int-or-string":true},"numerator":{"format":"int32","type":"integer"}},"type":"object"},"runtimeKey":{"type":"string"}},"type":"object"},"shadowEnabled":{"properties":{"defaultValue":{"properties":{"denominator":{"type":"string","x-kubernetes-int-or-string":true},"numerator":{"format":"int32","type":"integer"}},"type":"object"},"runtimeKey":{"type":"string"}},"type":"object"}},"type":"object"},"dlp":{"properties":{"actions":{"items":{"properties":{"actionType":{"type":"string","x-kubernetes-int-or-string":true},"customAction":{"properties":{"maskChar":{"type":"string"},"name":{"type":"string"},"percent":{"properties":{"value":{"type":"number"}},"type":"object"},"regex":{"items":{"type":"string"},"type":"array"},"regexActions":{"items":{"properties":{"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"array"}},"type":"object"},"shadow":{"type":"boolean"}},"type":"object"},"type":"array"},"enabledFor":{"type":"string","x-kubernetes-int-or-string":true}},"type":"object"},"envoyMetadata":{"additionalProperties":{"type":"object","x-kubernetes-preserve-unknown-fields":true},"type":"object"},"extauth":{"properties":{"configRef":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"customAuth":{"properties":{"contextExtensions":{"additionalProperties":{"type":"string"},"type":"object"},"name":{"type":"string"}},"type":"object"},"disable":{"type":"boolean"}},"type":"object"},"extensions":{"properties":{"configs":{"additionalProperties":{"type":"object","x-kubernetes-preserve-unknown-fields":true},"type":"object"}},"type":"object"},"faults":{"properties":{"abort":{"properties":{"httpStatus":{"format":"int32","type":"integer"},"percentage":{"type":"number"}},"type":"object"},"delay":{"properties":{"fixedDelay":{"type":"string"},"percentage":{"type":"number"}},"type":"object"}},"type":"object"},"headerManipulation":{"properties":{"requestHeadersToAdd":{"items":{"properties":{"append":{"nullable":true,"type":"boolean"},"header":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"headerSecretRef":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"requestHeadersToRemove":{"items":{"type":"string"},"type":"array"},"responseHeadersToAdd":{"items":{"properties":{"append":{"nullable":true,"type":"boolean"},"header":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"responseHeadersToRemove":{"items":{"type":"string"},"type":"array"}},"type":"object"},"hostRewrite":{"type":"string"},"jwt":{"properties":{"disable":{"type":"boolean"}},"type":"object"},"jwtStaged":{"properties":{"afterExtAuth":{"properties":{"disable":{"type":"boolean"}},"type":"object"},"beforeExtAuth":{"properties":{"disable":{"type":"boolean"}},"type":"object"}},"type":"object"},"lbHash":{"properties":{"hashPolicies":{"items":{"properties":{"cookie":{"properties":{"name":{"type":"string"},"path":{"type":"string"},"ttl":{"type":"string"}},"type":"object"},"header":{"type":"string"},"sourceIp":{"type":"boolean"},"terminal":{"type":"boolean"}},"type":"object"},"type":"array"}},"type":"object"},"prefixRewrite":{"nullable":true,"type":"string"},"rateLimitConfigs":{"properties":{"refs":{"items":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"ratelimit":{"properties":{"includeVhRateLimits":{"type":"boolean"},"rateLimits":{"items":{"properties":{"actions":{"items":{"properties":{"destinationCluster":{"type":"object"},"genericKey":{"properties":{"descriptorValue":{"type":"string"}},"type":"object"},"headerValueMatch":{"properties":{"descriptorValue":{"type":"string"},"expectMatch":{"nullable":true,"type":"boolean"},"headers":{"items":{"properties":{"exactMatch":{"type":"string"},"invertMatch":{"type":"boolean"},"name":{"type":"string"},"prefixMatch":{"type":"string"},"presentMatch":{"type":"boolean"},"rangeMatch":{"properties":{"end":{"format":"int64","type":"integer","x-kubernetes-int-or-string":true},"start":{"format":"int64","type":"integer","x-kubernetes-int-or-string":true}},"type":"object"},"regexMatch":{"type":"string"},"suffixMatch":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"metadata":{"properties":{"defaultValue":{"type":"string"},"descriptorKey":{"type":"string"},"metadataKey":{"properties":{"key":{"type":"string"},"path":{"items":{"properties":{"key":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"source":{"type":"string","x-kubernetes-int-or-string":true}},"type":"object"},"remoteAddress":{"type":"object"},"requestHeaders":{"properties":{"descriptorKey":{"type":"string"},"headerName":{"type":"string"}},"type":"object"},"sourceCluster":{"type":"object"}},"type":"object"},"type":"array"},"setActions":{"items":{"properties":{"destinationCluster":{"type":"object"},"genericKey":{"properties":{"descriptorValue":{"type":"string"}},"type":"object"},"headerValueMatch":{"properties":{"descriptorValue":{"type":"string"},"expectMatch":{"nullable":true,"type":"boolean"},"headers":{"items":{"properties":{"exactMatch":{"type":"string"},"invertMatch":{"type":"boolean"},"name":{"type":"string"},"prefixMatch":{"type":"string"},"presentMatch":{"type":"boolean"},"rangeMatch":{"properties":{"end":{"format":"int64","type":"integer","x-kubernetes-int-or-string":true},"start":{"format":"int64","type":"integer","x-kubernetes-int-or-string":true}},"type":"object"},"regexMatch":{"type":"string"},"suffixMatch":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"metadata":{"properties":{"defaultValue":{"type":"string"},"descriptorKey":{"type":"string"},"metadataKey":{"properties":{"key":{"type":"string"},"path":{"items":{"properties":{"key":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"source":{"type":"string","x-kubernetes-int-or-string":true}},"type":"object"},"remoteAddress":{"type":"object"},"requestHeaders":{"properties":{"descriptorKey":{"type":"string"},"headerName":{"type":"string"}},"type":"object"},"sourceCluster":{"type":"object"}},"type":"object"},"type":"array"}},"type":"object"},"type":"array"}},"type":"object"},"ratelimitBasic":{"properties":{"anonymousLimits":{"properties":{"requestsPerUnit":{"format":"int32","type":"integer"},"unit":{"type":"string","x-kubernetes-int-or-string":true}},"type":"object"},"authorizedLimits":{"properties":{"requestsPerUnit":{"format":"int32","type":"integer"},"unit":{"type":"string","x-kubernetes-int-or-string":true}},"type":"object"}},"type":"object"},"rbac":{"properties":{"disable":{"type":"boolean"},"policies":{"additionalProperties":{"properties":{"nestedClaimDelimiter":{"type":"string"},"permissions":{"properties":{"methods":{"items":{"type":"string"},"type":"array"},"pathPrefix":{"type":"string"}},"type":"object"},"principals":{"items":{"properties":{"jwtPrincipal":{"properties":{"claims":{"additionalProperties":{"type":"string"},"type":"object"},"matcher":{"type":"string","x-kubernetes-int-or-string":true},"provider":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"}},"type":"object"},"type":"object"}},"type":"object"},"regexRewrite":{"properties":{"pattern":{"properties":{"googleRe2":{"properties":{"maxProgramSize":{"maximum":4294967295,"minimum":0,"nullable":true,"type":"integer"}},"type":"object"},"regex":{"type":"string"}},"type":"object"},"substitution":{"type":"string"}},"type":"object"},"retries":{"properties":{"numRetries":{"format":"int32","type":"integer"},"perTryTimeout":{"type":"string"},"retryOn":{"type":"string"}},"type":"object"},"shadowing":{"properties":{"percentage":{"type":"number"},"upstream":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"}},"type":"object"},"stagedTransformations":{"properties":{"early":{"properties":{"requestTransforms":{"items":{"properties":{"clearRouteCache":{"type":"boolean"},"matcher":{"properties":{"caseSensitive":{"nullable":true,"type":"boolean"},"exact":{"type":"string"},"headers":{"items":{"properties":{"invertMatch":{"type":"boolean"},"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"methods":{"items":{"type":"string"},"type":"array"},"prefix":{"type":"string"},"queryParameters":{"items":{"properties":{"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"regex":{"type":"string"}},"type":"object"},"requestTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":"array"},"responseTransforms":{"items":{"properties":{"matchers":{"items":{"properties":{"invertMatch":{"type":"boolean"},"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"responseCodeDetails":{"type":"string"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":"array"}},"type":"object"},"inheritTransformation":{"type":"boolean"},"regular":{"properties":{"requestTransforms":{"items":{"properties":{"clearRouteCache":{"type":"boolean"},"matcher":{"properties":{"caseSensitive":{"nullable":true,"type":"boolean"},"exact":{"type":"string"},"headers":{"items":{"properties":{"invertMatch":{"type":"boolean"},"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"methods":{"items":{"type":"string"},"type":"array"},"prefix":{"type":"string"},"queryParameters":{"items":{"properties":{"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"regex":{"type":"string"}},"type":"object"},"requestTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":"array"},"responseTransforms":{"items":{"properties":{"matchers":{"items":{"properties":{"invertMatch":{"type":"boolean"},"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"responseCodeDetails":{"type":"string"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object"},"timeout":{"type":"string"},"tracing":{"properties":{"propagate":{"nullable":true,"type":"boolean"},"routeDescriptor":{"type":"string"},"tracePercentages":{"properties":{"clientSamplePercentage":{"nullable":true,"type":"number"},"overallSamplePercentage":{"nullable":true,"type":"number"},"randomSamplePercentage":{"nullable":true,"type":"number"}},"type":"object"}},"type":"object"},"transformations":{"properties":{"clearRouteCache":{"type":"boolean"},"requestTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"upgrades":{"items":{"properties":{"websocket":{"properties":{"enabled":{"nullable":true,"type":"boolean"}},"type":"object"}},"type":"object"},"type":"array"},"waf":{"properties":{"auditLogging":{"properties":{"action":{"type":"string","x-kubernetes-int-or-string":true},"location":{"type":"string","x-kubernetes-int-or-string":true}},"type":"object"},"coreRuleSet":{"properties":{"customSettingsFile":{"type":"string"},"customSettingsString":{"type":"string"}},"type":"object"},"customInterventionMessage":{"type":"string"},"disabled":{"type":"boolean"},"requestHeadersOnly":{"type":"boolean"},"responseHeadersOnly":{"type":"boolean"},"ruleSets":{"items":{"properties":{"directory":{"type":"string"},"files":{"items":{"type":"string"},"type":"array"},"ruleStr":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object"},"optionsConfigRefs":{"properties":{"delegateOptions":{"items":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"redirectAction":{"properties":{"hostRedirect":{"type":"string"},"httpsRedirect":{"type":"boolean"},"pathRedirect":{"type":"string"},"prefixRewrite":{"type":"string"},"responseCode":{"type":"string","x-kubernetes-int-or-string":true},"stripQuery":{"type":"boolean"}},"type":"object"},"routeAction":{"properties":{"clusterHeader":{"type":"string"},"multi":{"properties":{"destinations":{"items":{"properties":{"destination":{"properties":{"consul":{"properties":{"dataCenters":{"items":{"type":"string"},"type":"array"},"serviceName":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"}},"type":"object"},"destinationSpec":{"properties":{"aws":{"properties":{"invocationStyle":{"type":"string","x-kubernetes-int-or-string":true},"logicalName":{"type":"string"},"requestTransformation":{"type":"boolean"},"responseTransformation":{"type":"boolean"}},"type":"object"},"azure":{"properties":{"functionName":{"type":"string"}},"type":"object"},"grpc":{"properties":{"function":{"type":"string"},"package":{"type":"string"},"parameters":{"properties":{"headers":{"additionalProperties":{"type":"string"},"type":"object"},"path":{"nullable":true,"type":"string"}},"type":"object"},"service":{"type":"string"}},"type":"object"},"rest":{"properties":{"functionName":{"type":"string"},"parameters":{"properties":{"headers":{"additionalProperties":{"type":"string"},"type":"object"},"path":{"nullable":true,"type":"string"}},"type":"object"},"responseTransformation":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"}},"type":"object"}},"type":"object"},"kube":{"properties":{"port":{"format":"int32","type":"integer"},"ref":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"}},"type":"object"},"subset":{"properties":{"values":{"additionalProperties":{"type":"string"},"type":"object"}},"type":"object"},"upstream":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"}},"type":"object"},"options":{"properties":{"bufferPerRoute":{"properties":{"buffer":{"properties":{"maxRequestBytes":{"maximum":4294967295,"minimum":0,"nullable":true,"type":"integer"}},"type":"object"},"disabled":{"type":"boolean"}},"type":"object"},"csrf":{"properties":{"additionalOrigins":{"items":{"properties":{"exact":{"type":"string"},"ignoreCase":{"type":"boolean"},"prefix":{"type":"string"},"safeRegex":{"properties":{"googleRe2":{"properties":{"maxProgramSize":{"maximum":4294967295,"minimum":0,"nullable":true,"type":"integer"}},"type":"object"},"regex":{"type":"string"}},"type":"object"},"suffix":{"type":"string"}},"type":"object"},"type":"array"},"filterEnabled":{"properties":{"defaultValue":{"properties":{"denominator":{"type":"string","x-kubernetes-int-or-string":true},"numerator":{"format":"int32","type":"integer"}},"type":"object"},"runtimeKey":{"type":"string"}},"type":"object"},"shadowEnabled":{"properties":{"defaultValue":{"properties":{"denominator":{"type":"string","x-kubernetes-int-or-string":true},"numerator":{"format":"int32","type":"integer"}},"type":"object"},"runtimeKey":{"type":"string"}},"type":"object"}},"type":"object"},"extauth":{"properties":{"configRef":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"customAuth":{"properties":{"contextExtensions":{"additionalProperties":{"type":"string"},"type":"object"},"name":{"type":"string"}},"type":"object"},"disable":{"type":"boolean"}},"type":"object"},"extensions":{"properties":{"configs":{"additionalProperties":{"type":"object","x-kubernetes-preserve-unknown-fields":true},"type":"object"}},"type":"object"},"headerManipulation":{"properties":{"requestHeadersToAdd":{"items":{"properties":{"append":{"nullable":true,"type":"boolean"},"header":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"headerSecretRef":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"requestHeadersToRemove":{"items":{"type":"string"},"type":"array"},"responseHeadersToAdd":{"items":{"properties":{"append":{"nullable":true,"type":"boolean"},"header":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"responseHeadersToRemove":{"items":{"type":"string"},"type":"array"}},"type":"object"},"stagedTransformations":{"properties":{"early":{"properties":{"requestTransforms":{"items":{"properties":{"clearRouteCache":{"type":"boolean"},"matcher":{"properties":{"caseSensitive":{"nullable":true,"type":"boolean"},"exact":{"type":"string"},"headers":{"items":{"properties":{"invertMatch":{"type":"boolean"},"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"methods":{"items":{"type":"string"},"type":"array"},"prefix":{"type":"string"},"queryParameters":{"items":{"properties":{"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"regex":{"type":"string"}},"type":"object"},"requestTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":"array"},"responseTransforms":{"items":{"properties":{"matchers":{"items":{"properties":{"invertMatch":{"type":"boolean"},"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"responseCodeDetails":{"type":"string"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":"array"}},"type":"object"},"inheritTransformation":{"type":"boolean"},"regular":{"properties":{"requestTransforms":{"items":{"properties":{"clearRouteCache":{"type":"boolean"},"matcher":{"properties":{"caseSensitive":{"nullable":true,"type":"boolean"},"exact":{"type":"string"},"headers":{"items":{"properties":{"invertMatch":{"type":"boolean"},"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"methods":{"items":{"type":"string"},"type":"array"},"prefix":{"type":"string"},"queryParameters":{"items":{"properties":{"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"regex":{"type":"string"}},"type":"object"},"requestTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":"array"},"responseTransforms":{"items":{"properties":{"matchers":{"items":{"properties":{"invertMatch":{"type":"boolean"},"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"responseCodeDetails":{"type":"string"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object"},"transformations":{"properties":{"clearRouteCache":{"type":"boolean"},"requestTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"}},"type":"object"},"weight":{"format":"int32","type":"integer"}},"type":"object"},"type":"array"}},"type":"object"},"single":{"properties":{"consul":{"properties":{"dataCenters":{"items":{"type":"string"},"type":"array"},"serviceName":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"}},"type":"object"},"destinationSpec":{"properties":{"aws":{"properties":{"invocationStyle":{"type":"string","x-kubernetes-int-or-string":true},"logicalName":{"type":"string"},"requestTransformation":{"type":"boolean"},"responseTransformation":{"type":"boolean"}},"type":"object"},"azure":{"properties":{"functionName":{"type":"string"}},"type":"object"},"grpc":{"properties":{"function":{"type":"string"},"package":{"type":"string"},"parameters":{"properties":{"headers":{"additionalProperties":{"type":"string"},"type":"object"},"path":{"nullable":true,"type":"string"}},"type":"object"},"service":{"type":"string"}},"type":"object"},"rest":{"properties":{"functionName":{"type":"string"},"parameters":{"properties":{"headers":{"additionalProperties":{"type":"string"},"type":"object"},"path":{"nullable":true,"type":"string"}},"type":"object"},"responseTransformation":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"}},"type":"object"}},"type":"object"},"kube":{"properties":{"port":{"format":"int32","type":"integer"},"ref":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"}},"type":"object"},"subset":{"properties":{"values":{"additionalProperties":{"type":"string"},"type":"object"}},"type":"object"},"upstream":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"}},"type":"object"},"upstreamGroup":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":"array"},"weight":{"maximum":2147483647,"minimum":-2147483648,"nullable":true,"type":"integer"}},"type":"object"},"status":{"type":"object","x-kubernetes-preserve-unknown-fields":true}},"type":"object"}},"served":true,"storage":true}]},"status":{"acceptedNames":{"kind":"RouteTable","listKind":"RouteTableList","plural":"routetables","shortNames":["rt"],"singular":"routetable"},"conditions":[{"lastTransitionTime":"2023-06-01T14:30:02Z","message":"no conflicts found","reason":"NoConflicts","status":"True","type":"NamesAccepted"},{"lastTransitionTime":"2023-06-01T14:30:02Z","message":"the initial names have been accepted","reason":"InitialNamesAccepted","status":"True","type":"Established"}],"storedVersions":["v1"]}} creationTimestamp: "2023-07-17T03:49:15Z" generation: 1 name: routetables.gateway.solo.io resourceVersion: "6948117" uid: ac54cf4b-8994-4d46-8d7e-1b18bdce2d23 spec: conversion: strategy: None group: gateway.solo.io names: kind: RouteTable listKind: RouteTableList plural: routetables shortNames: - rt singular: routetable scope: Namespaced versions: - name: v1 schema: openAPIV3Schema: properties: spec: properties: namespacedStatuses: properties: statuses: additionalProperties: type: object x-kubernetes-preserve-unknown-fields: true type: object type: object routes: items: properties: delegateAction: properties: name: type: string namespace: type: string ref: properties: name: type: string namespace: type: string type: object selector: properties: expressions: items: properties: key: type: string operator: type: string x-kubernetes-int-or-string: true values: items: type: string type: array type: object type: array labels: additionalProperties: type: string type: object namespaces: items: type: string type: array type: object type: object directResponseAction: properties: body: type: string status: format: int32 type: integer type: object inheritableMatchers: nullable: true type: boolean inheritablePathMatchers: nullable: true type: boolean matchers: items: properties: caseSensitive: nullable: true type: boolean exact: type: string headers: items: properties: invertMatch: type: boolean name: type: string regex: type: boolean value: type: string type: object type: array methods: items: type: string type: array prefix: type: string queryParameters: items: properties: name: type: string regex: type: boolean value: type: string type: object type: array regex: type: string type: object type: array name: type: string options: properties: autoHostRewrite: nullable: true type: boolean bufferPerRoute: properties: buffer: properties: maxRequestBytes: maximum: 4294967295 minimum: 0 nullable: true type: integer type: object disabled: type: boolean type: object cors: properties: allowCredentials: type: boolean allowHeaders: items: type: string type: array allowMethods: items: type: string type: array allowOrigin: items: type: string type: array allowOriginRegex: items: type: string type: array disableForRoute: type: boolean exposeHeaders: items: type: string type: array maxAge: type: string type: object csrf: properties: additionalOrigins: items: properties: exact: type: string ignoreCase: type: boolean prefix: type: string safeRegex: properties: googleRe2: properties: maxProgramSize: maximum: 4294967295 minimum: 0 nullable: true type: integer type: object regex: type: string type: object suffix: type: string type: object type: array filterEnabled: properties: defaultValue: properties: denominator: type: string x-kubernetes-int-or-string: true numerator: format: int32 type: integer type: object runtimeKey: type: string type: object shadowEnabled: properties: defaultValue: properties: denominator: type: string x-kubernetes-int-or-string: true numerator: format: int32 type: integer type: object runtimeKey: type: string type: object type: object dlp: properties: actions: items: properties: actionType: type: string x-kubernetes-int-or-string: true customAction: properties: maskChar: type: string name: type: string percent: properties: value: type: number type: object regex: items: type: string type: array regexActions: items: properties: regex: type: string subgroup: format: int32 type: integer type: object type: array type: object shadow: type: boolean type: object type: array enabledFor: type: string x-kubernetes-int-or-string: true type: object envoyMetadata: additionalProperties: type: object x-kubernetes-preserve-unknown-fields: true type: object extauth: properties: configRef: properties: name: type: string namespace: type: string type: object customAuth: properties: contextExtensions: additionalProperties: type: string type: object name: type: string type: object disable: type: boolean type: object extensions: properties: configs: additionalProperties: type: object x-kubernetes-preserve-unknown-fields: true type: object type: object faults: properties: abort: properties: httpStatus: format: int32 type: integer percentage: type: number type: object delay: properties: fixedDelay: type: string percentage: type: number type: object type: object headerManipulation: properties: requestHeadersToAdd: items: properties: append: nullable: true type: boolean header: properties: key: type: string value: type: string type: object headerSecretRef: properties: name: type: string namespace: type: string type: object type: object type: array requestHeadersToRemove: items: type: string type: array responseHeadersToAdd: items: properties: append: nullable: true type: boolean header: properties: key: type: string value: type: string type: object type: object type: array responseHeadersToRemove: items: type: string type: array type: object hostRewrite: type: string jwt: properties: disable: type: boolean type: object jwtStaged: properties: afterExtAuth: properties: disable: type: boolean type: object beforeExtAuth: properties: disable: type: boolean type: object type: object lbHash: properties: hashPolicies: items: properties: cookie: properties: name: type: string path: type: string ttl: type: string type: object header: type: string sourceIp: type: boolean terminal: type: boolean type: object type: array type: object prefixRewrite: nullable: true type: string rateLimitConfigs: properties: refs: items: properties: name: type: string namespace: type: string type: object type: array type: object ratelimit: properties: includeVhRateLimits: type: boolean rateLimits: items: properties: actions: items: properties: destinationCluster: type: object genericKey: properties: descriptorValue: type: string type: object headerValueMatch: properties: descriptorValue: type: string expectMatch: nullable: true type: boolean headers: items: properties: exactMatch: type: string invertMatch: type: boolean name: type: string prefixMatch: type: string presentMatch: type: boolean rangeMatch: properties: end: format: int64 type: integer x-kubernetes-int-or-string: true start: format: int64 type: integer x-kubernetes-int-or-string: true type: object regexMatch: type: string suffixMatch: type: string type: object type: array type: object metadata: properties: defaultValue: type: string descriptorKey: type: string metadataKey: properties: key: type: string path: items: properties: key: type: string type: object type: array type: object source: type: string x-kubernetes-int-or-string: true type: object remoteAddress: type: object requestHeaders: properties: descriptorKey: type: string headerName: type: string type: object sourceCluster: type: object type: object type: array setActions: items: properties: destinationCluster: type: object genericKey: properties: descriptorValue: type: string type: object headerValueMatch: properties: descriptorValue: type: string expectMatch: nullable: true type: boolean headers: items: properties: exactMatch: type: string invertMatch: type: boolean name: type: string prefixMatch: type: string presentMatch: type: boolean rangeMatch: properties: end: format: int64 type: integer x-kubernetes-int-or-string: true start: format: int64 type: integer x-kubernetes-int-or-string: true type: object regexMatch: type: string suffixMatch: type: string type: object type: array type: object metadata: properties: defaultValue: type: string descriptorKey: type: string metadataKey: properties: key: type: string path: items: properties: key: type: string type: object type: array type: object source: type: string x-kubernetes-int-or-string: true type: object remoteAddress: type: object requestHeaders: properties: descriptorKey: type: string headerName: type: string type: object sourceCluster: type: object type: object type: array type: object type: array type: object ratelimitBasic: properties: anonymousLimits: properties: requestsPerUnit: format: int32 type: integer unit: type: string x-kubernetes-int-or-string: true type: object authorizedLimits: properties: requestsPerUnit: format: int32 type: integer unit: type: string x-kubernetes-int-or-string: true type: object type: object rbac: properties: disable: type: boolean policies: additionalProperties: properties: nestedClaimDelimiter: type: string permissions: properties: methods: items: type: string type: array pathPrefix: type: string type: object principals: items: properties: jwtPrincipal: properties: claims: additionalProperties: type: string type: object matcher: type: string x-kubernetes-int-or-string: true provider: type: string type: object type: object type: array type: object type: object type: object regexRewrite: properties: pattern: properties: googleRe2: properties: maxProgramSize: maximum: 4294967295 minimum: 0 nullable: true type: integer type: object regex: type: string type: object substitution: type: string type: object retries: properties: numRetries: format: int32 type: integer perTryTimeout: type: string retryOn: type: string type: object shadowing: properties: percentage: type: number upstream: properties: name: type: string namespace: type: string type: object type: object stagedTransformations: properties: early: properties: requestTransforms: items: properties: clearRouteCache: type: boolean matcher: properties: caseSensitive: nullable: true type: boolean exact: type: string headers: items: properties: invertMatch: type: boolean name: type: string regex: type: boolean value: type: string type: object type: array methods: items: type: string type: array prefix: type: string queryParameters: items: properties: name: type: string regex: type: boolean value: type: string type: object type: array regex: type: string type: object requestTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: array responseTransforms: items: properties: matchers: items: properties: invertMatch: type: boolean name: type: string regex: type: boolean value: type: string type: object type: array responseCodeDetails: type: string responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: array type: object inheritTransformation: type: boolean regular: properties: requestTransforms: items: properties: clearRouteCache: type: boolean matcher: properties: caseSensitive: nullable: true type: boolean exact: type: string headers: items: properties: invertMatch: type: boolean name: type: string regex: type: boolean value: type: string type: object type: array methods: items: type: string type: array prefix: type: string queryParameters: items: properties: name: type: string regex: type: boolean value: type: string type: object type: array regex: type: string type: object requestTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: array responseTransforms: items: properties: matchers: items: properties: invertMatch: type: boolean name: type: string regex: type: boolean value: type: string type: object type: array responseCodeDetails: type: string responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: array type: object type: object timeout: type: string tracing: properties: propagate: nullable: true type: boolean routeDescriptor: type: string tracePercentages: properties: clientSamplePercentage: nullable: true type: number overallSamplePercentage: nullable: true type: number randomSamplePercentage: nullable: true type: number type: object type: object transformations: properties: clearRouteCache: type: boolean requestTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object upgrades: items: properties: websocket: properties: enabled: nullable: true type: boolean type: object type: object type: array waf: properties: auditLogging: properties: action: type: string x-kubernetes-int-or-string: true location: type: string x-kubernetes-int-or-string: true type: object coreRuleSet: properties: customSettingsFile: type: string customSettingsString: type: string type: object customInterventionMessage: type: string disabled: type: boolean requestHeadersOnly: type: boolean responseHeadersOnly: type: boolean ruleSets: items: properties: directory: type: string files: items: type: string type: array ruleStr: type: string type: object type: array type: object type: object optionsConfigRefs: properties: delegateOptions: items: properties: name: type: string namespace: type: string type: object type: array type: object redirectAction: properties: hostRedirect: type: string httpsRedirect: type: boolean pathRedirect: type: string prefixRewrite: type: string responseCode: type: string x-kubernetes-int-or-string: true stripQuery: type: boolean type: object routeAction: properties: clusterHeader: type: string multi: properties: destinations: items: properties: destination: properties: consul: properties: dataCenters: items: type: string type: array serviceName: type: string tags: items: type: string type: array type: object destinationSpec: properties: aws: properties: invocationStyle: type: string x-kubernetes-int-or-string: true logicalName: type: string requestTransformation: type: boolean responseTransformation: type: boolean type: object azure: properties: functionName: type: string type: object grpc: properties: function: type: string package: type: string parameters: properties: headers: additionalProperties: type: string type: object path: nullable: true type: string type: object service: type: string type: object rest: properties: functionName: type: string parameters: properties: headers: additionalProperties: type: string type: object path: nullable: true type: string type: object responseTransformation: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object type: object type: object kube: properties: port: format: int32 type: integer ref: properties: name: type: string namespace: type: string type: object type: object subset: properties: values: additionalProperties: type: string type: object type: object upstream: properties: name: type: string namespace: type: string type: object type: object options: properties: bufferPerRoute: properties: buffer: properties: maxRequestBytes: maximum: 4294967295 minimum: 0 nullable: true type: integer type: object disabled: type: boolean type: object csrf: properties: additionalOrigins: items: properties: exact: type: string ignoreCase: type: boolean prefix: type: string safeRegex: properties: googleRe2: properties: maxProgramSize: maximum: 4294967295 minimum: 0 nullable: true type: integer type: object regex: type: string type: object suffix: type: string type: object type: array filterEnabled: properties: defaultValue: properties: denominator: type: string x-kubernetes-int-or-string: true numerator: format: int32 type: integer type: object runtimeKey: type: string type: object shadowEnabled: properties: defaultValue: properties: denominator: type: string x-kubernetes-int-or-string: true numerator: format: int32 type: integer type: object runtimeKey: type: string type: object type: object extauth: properties: configRef: properties: name: type: string namespace: type: string type: object customAuth: properties: contextExtensions: additionalProperties: type: string type: object name: type: string type: object disable: type: boolean type: object extensions: properties: configs: additionalProperties: type: object x-kubernetes-preserve-unknown-fields: true type: object type: object headerManipulation: properties: requestHeadersToAdd: items: properties: append: nullable: true type: boolean header: properties: key: type: string value: type: string type: object headerSecretRef: properties: name: type: string namespace: type: string type: object type: object type: array requestHeadersToRemove: items: type: string type: array responseHeadersToAdd: items: properties: append: nullable: true type: boolean header: properties: key: type: string value: type: string type: object type: object type: array responseHeadersToRemove: items: type: string type: array type: object stagedTransformations: properties: early: properties: requestTransforms: items: properties: clearRouteCache: type: boolean matcher: properties: caseSensitive: nullable: true type: boolean exact: type: string headers: items: properties: invertMatch: type: boolean name: type: string regex: type: boolean value: type: string type: object type: array methods: items: type: string type: array prefix: type: string queryParameters: items: properties: name: type: string regex: type: boolean value: type: string type: object type: array regex: type: string type: object requestTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: array responseTransforms: items: properties: matchers: items: properties: invertMatch: type: boolean name: type: string regex: type: boolean value: type: string type: object type: array responseCodeDetails: type: string responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: array type: object inheritTransformation: type: boolean regular: properties: requestTransforms: items: properties: clearRouteCache: type: boolean matcher: properties: caseSensitive: nullable: true type: boolean exact: type: string headers: items: properties: invertMatch: type: boolean name: type: string regex: type: boolean value: type: string type: object type: array methods: items: type: string type: array prefix: type: string queryParameters: items: properties: name: type: string regex: type: boolean value: type: string type: object type: array regex: type: string type: object requestTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: array responseTransforms: items: properties: matchers: items: properties: invertMatch: type: boolean name: type: string regex: type: boolean value: type: string type: object type: array responseCodeDetails: type: string responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: array type: object type: object transformations: properties: clearRouteCache: type: boolean requestTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: object weight: format: int32 type: integer type: object type: array type: object single: properties: consul: properties: dataCenters: items: type: string type: array serviceName: type: string tags: items: type: string type: array type: object destinationSpec: properties: aws: properties: invocationStyle: type: string x-kubernetes-int-or-string: true logicalName: type: string requestTransformation: type: boolean responseTransformation: type: boolean type: object azure: properties: functionName: type: string type: object grpc: properties: function: type: string package: type: string parameters: properties: headers: additionalProperties: type: string type: object path: nullable: true type: string type: object service: type: string type: object rest: properties: functionName: type: string parameters: properties: headers: additionalProperties: type: string type: object path: nullable: true type: string type: object responseTransformation: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object type: object type: object kube: properties: port: format: int32 type: integer ref: properties: name: type: string namespace: type: string type: object type: object subset: properties: values: additionalProperties: type: string type: object type: object upstream: properties: name: type: string namespace: type: string type: object type: object upstreamGroup: properties: name: type: string namespace: type: string type: object type: object type: object type: array weight: maximum: 2147483647 minimum: -2147483648 nullable: true type: integer type: object status: type: object x-kubernetes-preserve-unknown-fields: true type: object served: true storage: true status: acceptedNames: kind: RouteTable listKind: RouteTableList plural: routetables shortNames: - rt singular: routetable conditions: - lastTransitionTime: "2023-07-17T03:49:15Z" message: no conflicts found reason: NoConflicts status: "True" type: NamesAccepted - lastTransitionTime: "2023-07-17T03:49:15Z" message: the initial names have been accepted reason: InitialNamesAccepted status: "True" type: Established storedVersions: - v1 --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"apiextensions.k8s.io/v1","kind":"CustomResourceDefinition","metadata":{"annotations":{},"creationTimestamp":"2023-06-01T14:30:02Z","generation":1,"name":"upstreamgroups.gloo.solo.io","resourceVersion":"3708698","uid":"fb68956f-82c3-4950-9506-c44c4b835f0e"},"spec":{"conversion":{"strategy":"None"},"group":"gloo.solo.io","names":{"kind":"UpstreamGroup","listKind":"UpstreamGroupList","plural":"upstreamgroups","shortNames":["ug"],"singular":"upstreamgroup"},"scope":"Namespaced","versions":[{"name":"v1","schema":{"openAPIV3Schema":{"properties":{"spec":{"properties":{"destinations":{"items":{"properties":{"destination":{"properties":{"consul":{"properties":{"dataCenters":{"items":{"type":"string"},"type":"array"},"serviceName":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"}},"type":"object"},"destinationSpec":{"properties":{"aws":{"properties":{"invocationStyle":{"type":"string","x-kubernetes-int-or-string":true},"logicalName":{"type":"string"},"requestTransformation":{"type":"boolean"},"responseTransformation":{"type":"boolean"}},"type":"object"},"azure":{"properties":{"functionName":{"type":"string"}},"type":"object"},"grpc":{"properties":{"function":{"type":"string"},"package":{"type":"string"},"parameters":{"properties":{"headers":{"additionalProperties":{"type":"string"},"type":"object"},"path":{"nullable":true,"type":"string"}},"type":"object"},"service":{"type":"string"}},"type":"object"},"rest":{"properties":{"functionName":{"type":"string"},"parameters":{"properties":{"headers":{"additionalProperties":{"type":"string"},"type":"object"},"path":{"nullable":true,"type":"string"}},"type":"object"},"responseTransformation":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"}},"type":"object"}},"type":"object"},"kube":{"properties":{"port":{"format":"int32","type":"integer"},"ref":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"}},"type":"object"},"subset":{"properties":{"values":{"additionalProperties":{"type":"string"},"type":"object"}},"type":"object"},"upstream":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"}},"type":"object"},"options":{"properties":{"bufferPerRoute":{"properties":{"buffer":{"properties":{"maxRequestBytes":{"maximum":4294967295,"minimum":0,"nullable":true,"type":"integer"}},"type":"object"},"disabled":{"type":"boolean"}},"type":"object"},"csrf":{"properties":{"additionalOrigins":{"items":{"properties":{"exact":{"type":"string"},"ignoreCase":{"type":"boolean"},"prefix":{"type":"string"},"safeRegex":{"properties":{"googleRe2":{"properties":{"maxProgramSize":{"maximum":4294967295,"minimum":0,"nullable":true,"type":"integer"}},"type":"object"},"regex":{"type":"string"}},"type":"object"},"suffix":{"type":"string"}},"type":"object"},"type":"array"},"filterEnabled":{"properties":{"defaultValue":{"properties":{"denominator":{"type":"string","x-kubernetes-int-or-string":true},"numerator":{"format":"int32","type":"integer"}},"type":"object"},"runtimeKey":{"type":"string"}},"type":"object"},"shadowEnabled":{"properties":{"defaultValue":{"properties":{"denominator":{"type":"string","x-kubernetes-int-or-string":true},"numerator":{"format":"int32","type":"integer"}},"type":"object"},"runtimeKey":{"type":"string"}},"type":"object"}},"type":"object"},"extauth":{"properties":{"configRef":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"customAuth":{"properties":{"contextExtensions":{"additionalProperties":{"type":"string"},"type":"object"},"name":{"type":"string"}},"type":"object"},"disable":{"type":"boolean"}},"type":"object"},"extensions":{"properties":{"configs":{"additionalProperties":{"type":"object","x-kubernetes-preserve-unknown-fields":true},"type":"object"}},"type":"object"},"headerManipulation":{"properties":{"requestHeadersToAdd":{"items":{"properties":{"append":{"nullable":true,"type":"boolean"},"header":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"headerSecretRef":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"requestHeadersToRemove":{"items":{"type":"string"},"type":"array"},"responseHeadersToAdd":{"items":{"properties":{"append":{"nullable":true,"type":"boolean"},"header":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"responseHeadersToRemove":{"items":{"type":"string"},"type":"array"}},"type":"object"},"stagedTransformations":{"properties":{"early":{"properties":{"requestTransforms":{"items":{"properties":{"clearRouteCache":{"type":"boolean"},"matcher":{"properties":{"caseSensitive":{"nullable":true,"type":"boolean"},"exact":{"type":"string"},"headers":{"items":{"properties":{"invertMatch":{"type":"boolean"},"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"methods":{"items":{"type":"string"},"type":"array"},"prefix":{"type":"string"},"queryParameters":{"items":{"properties":{"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"regex":{"type":"string"}},"type":"object"},"requestTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":"array"},"responseTransforms":{"items":{"properties":{"matchers":{"items":{"properties":{"invertMatch":{"type":"boolean"},"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"responseCodeDetails":{"type":"string"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":"array"}},"type":"object"},"inheritTransformation":{"type":"boolean"},"regular":{"properties":{"requestTransforms":{"items":{"properties":{"clearRouteCache":{"type":"boolean"},"matcher":{"properties":{"caseSensitive":{"nullable":true,"type":"boolean"},"exact":{"type":"string"},"headers":{"items":{"properties":{"invertMatch":{"type":"boolean"},"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"methods":{"items":{"type":"string"},"type":"array"},"prefix":{"type":"string"},"queryParameters":{"items":{"properties":{"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"regex":{"type":"string"}},"type":"object"},"requestTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":"array"},"responseTransforms":{"items":{"properties":{"matchers":{"items":{"properties":{"invertMatch":{"type":"boolean"},"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"responseCodeDetails":{"type":"string"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object"},"transformations":{"properties":{"clearRouteCache":{"type":"boolean"},"requestTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"}},"type":"object"},"weight":{"format":"int32","type":"integer"}},"type":"object"},"type":"array"},"namespacedStatuses":{"properties":{"statuses":{"additionalProperties":{"type":"object","x-kubernetes-preserve-unknown-fields":true},"type":"object"}},"type":"object"}},"type":"object"},"status":{"type":"object","x-kubernetes-preserve-unknown-fields":true}},"type":"object"}},"served":true,"storage":true}]},"status":{"acceptedNames":{"kind":"UpstreamGroup","listKind":"UpstreamGroupList","plural":"upstreamgroups","shortNames":["ug"],"singular":"upstreamgroup"},"conditions":[{"lastTransitionTime":"2023-06-01T14:30:03Z","message":"no conflicts found","reason":"NoConflicts","status":"True","type":"NamesAccepted"},{"lastTransitionTime":"2023-06-01T14:30:03Z","message":"the initial names have been accepted","reason":"InitialNamesAccepted","status":"True","type":"Established"}],"storedVersions":["v1"]}} creationTimestamp: "2023-07-17T03:51:11Z" generation: 1 name: upstreamgroups.gloo.solo.io resourceVersion: "6948768" uid: 1f7d529d-bb7d-4156-ab70-00007dbd3946 spec: conversion: strategy: None group: gloo.solo.io names: kind: UpstreamGroup listKind: UpstreamGroupList plural: upstreamgroups shortNames: - ug singular: upstreamgroup scope: Namespaced versions: - name: v1 schema: openAPIV3Schema: properties: spec: properties: destinations: items: properties: destination: properties: consul: properties: dataCenters: items: type: string type: array serviceName: type: string tags: items: type: string type: array type: object destinationSpec: properties: aws: properties: invocationStyle: type: string x-kubernetes-int-or-string: true logicalName: type: string requestTransformation: type: boolean responseTransformation: type: boolean type: object azure: properties: functionName: type: string type: object grpc: properties: function: type: string package: type: string parameters: properties: headers: additionalProperties: type: string type: object path: nullable: true type: string type: object service: type: string type: object rest: properties: functionName: type: string parameters: properties: headers: additionalProperties: type: string type: object path: nullable: true type: string type: object responseTransformation: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object type: object type: object kube: properties: port: format: int32 type: integer ref: properties: name: type: string namespace: type: string type: object type: object subset: properties: values: additionalProperties: type: string type: object type: object upstream: properties: name: type: string namespace: type: string type: object type: object options: properties: bufferPerRoute: properties: buffer: properties: maxRequestBytes: maximum: 4294967295 minimum: 0 nullable: true type: integer type: object disabled: type: boolean type: object csrf: properties: additionalOrigins: items: properties: exact: type: string ignoreCase: type: boolean prefix: type: string safeRegex: properties: googleRe2: properties: maxProgramSize: maximum: 4294967295 minimum: 0 nullable: true type: integer type: object regex: type: string type: object suffix: type: string type: object type: array filterEnabled: properties: defaultValue: properties: denominator: type: string x-kubernetes-int-or-string: true numerator: format: int32 type: integer type: object runtimeKey: type: string type: object shadowEnabled: properties: defaultValue: properties: denominator: type: string x-kubernetes-int-or-string: true numerator: format: int32 type: integer type: object runtimeKey: type: string type: object type: object extauth: properties: configRef: properties: name: type: string namespace: type: string type: object customAuth: properties: contextExtensions: additionalProperties: type: string type: object name: type: string type: object disable: type: boolean type: object extensions: properties: configs: additionalProperties: type: object x-kubernetes-preserve-unknown-fields: true type: object type: object headerManipulation: properties: requestHeadersToAdd: items: properties: append: nullable: true type: boolean header: properties: key: type: string value: type: string type: object headerSecretRef: properties: name: type: string namespace: type: string type: object type: object type: array requestHeadersToRemove: items: type: string type: array responseHeadersToAdd: items: properties: append: nullable: true type: boolean header: properties: key: type: string value: type: string type: object type: object type: array responseHeadersToRemove: items: type: string type: array type: object stagedTransformations: properties: early: properties: requestTransforms: items: properties: clearRouteCache: type: boolean matcher: properties: caseSensitive: nullable: true type: boolean exact: type: string headers: items: properties: invertMatch: type: boolean name: type: string regex: type: boolean value: type: string type: object type: array methods: items: type: string type: array prefix: type: string queryParameters: items: properties: name: type: string regex: type: boolean value: type: string type: object type: array regex: type: string type: object requestTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: array responseTransforms: items: properties: matchers: items: properties: invertMatch: type: boolean name: type: string regex: type: boolean value: type: string type: object type: array responseCodeDetails: type: string responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: array type: object inheritTransformation: type: boolean regular: properties: requestTransforms: items: properties: clearRouteCache: type: boolean matcher: properties: caseSensitive: nullable: true type: boolean exact: type: string headers: items: properties: invertMatch: type: boolean name: type: string regex: type: boolean value: type: string type: object type: array methods: items: type: string type: array prefix: type: string queryParameters: items: properties: name: type: string regex: type: boolean value: type: string type: object type: array regex: type: string type: object requestTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: array responseTransforms: items: properties: matchers: items: properties: invertMatch: type: boolean name: type: string regex: type: boolean value: type: string type: object type: array responseCodeDetails: type: string responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: array type: object type: object transformations: properties: clearRouteCache: type: boolean requestTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: object weight: format: int32 type: integer type: object type: array namespacedStatuses: properties: statuses: additionalProperties: type: object x-kubernetes-preserve-unknown-fields: true type: object type: object type: object status: type: object x-kubernetes-preserve-unknown-fields: true type: object served: true storage: true status: acceptedNames: kind: UpstreamGroup listKind: UpstreamGroupList plural: upstreamgroups shortNames: - ug singular: upstreamgroup conditions: - lastTransitionTime: "2023-07-17T03:51:11Z" message: no conflicts found reason: NoConflicts status: "True" type: NamesAccepted - lastTransitionTime: "2023-07-17T03:51:11Z" message: the initial names have been accepted reason: InitialNamesAccepted status: "True" type: Established storedVersions: - v1 --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"apiextensions.k8s.io/v1","kind":"CustomResourceDefinition","metadata":{"annotations":{},"creationTimestamp":"2023-06-01T14:30:01Z","generation":1,"name":"authconfigs.enterprise.gloo.solo.io","resourceVersion":"3708662","uid":"1ac53076-42e5-47c3-809c-b10c99382eb3"},"spec":{"conversion":{"strategy":"None"},"group":"enterprise.gloo.solo.io","names":{"kind":"AuthConfig","listKind":"AuthConfigList","plural":"authconfigs","shortNames":["ac"],"singular":"authconfig"},"scope":"Namespaced","versions":[{"name":"v1","schema":{"openAPIV3Schema":{"properties":{"spec":{"properties":{"booleanExpr":{"nullable":true,"type":"string"},"configs":{"items":{"properties":{"apiKeyAuth":{"properties":{"apiKeySecretRefs":{"items":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"type":"array"},"headerName":{"type":"string"},"headersFromMetadata":{"additionalProperties":{"properties":{"name":{"type":"string"},"required":{"type":"boolean"}},"type":"object"},"type":"object"},"labelSelector":{"additionalProperties":{"type":"string"},"type":"object"}},"type":"object"},"basicAuth":{"properties":{"apr":{"properties":{"users":{"additionalProperties":{"properties":{"hashedPassword":{"type":"string"},"salt":{"type":"string"}},"type":"object"},"type":"object"}},"type":"object"},"realm":{"type":"string"}},"type":"object"},"jwt":{"maxProperties":0,"type":"object"},"ldap":{"properties":{"address":{"type":"string"},"allowedGroups":{"items":{"type":"string"},"type":"array"},"membershipAttributeName":{"type":"string"},"pool":{"properties":{"initialSize":{"maximum":4294967295,"minimum":0,"nullable":true,"type":"integer"},"maxSize":{"maximum":4294967295,"minimum":0,"nullable":true,"type":"integer"}},"type":"object"},"userDnTemplate":{"type":"string"}},"type":"object"},"name":{"nullable":true,"type":"string"},"oauth":{"properties":{"appUrl":{"type":"string"},"authEndpointQueryParams":{"additionalProperties":{"type":"string"},"type":"object"},"callbackPath":{"type":"string"},"clientId":{"type":"string"},"clientSecretRef":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"issuerUrl":{"type":"string"},"scopes":{"items":{"type":"string"},"type":"array"}},"type":"object"},"oauth2":{"properties":{"accessTokenValidation":{"properties":{"cacheTimeout":{"type":"string"},"introspection":{"properties":{"clientId":{"type":"string"},"clientSecretRef":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"introspectionUrl":{"type":"string"},"userIdAttributeName":{"type":"string"}},"type":"object"},"introspectionUrl":{"type":"string"},"jwt":{"properties":{"issuer":{"type":"string"},"localJwks":{"properties":{"inlineString":{"type":"string"}},"type":"object"},"remoteJwks":{"properties":{"refreshInterval":{"type":"string"},"url":{"type":"string"}},"type":"object"}},"type":"object"},"requiredScopes":{"properties":{"scope":{"items":{"type":"string"},"type":"array"}},"type":"object"},"userinfoUrl":{"type":"string"}},"type":"object"},"oidcAuthorizationCode":{"properties":{"afterLogoutUrl":{"type":"string"},"appUrl":{"type":"string"},"authEndpointQueryParams":{"additionalProperties":{"type":"string"},"type":"object"},"callbackPath":{"type":"string"},"clientId":{"type":"string"},"clientSecretRef":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"discoveryOverride":{"properties":{"authEndpoint":{"type":"string"},"authMethods":{"items":{"type":"string"},"type":"array"},"claims":{"items":{"type":"string"},"type":"array"},"idTokenAlgs":{"items":{"type":"string"},"type":"array"},"jwksUri":{"type":"string"},"responseTypes":{"items":{"type":"string"},"type":"array"},"scopes":{"items":{"type":"string"},"type":"array"},"subjects":{"items":{"type":"string"},"type":"array"},"tokenEndpoint":{"type":"string"}},"type":"object"},"discoveryPollInterval":{"type":"string"},"headers":{"properties":{"accessTokenHeader":{"type":"string"},"idTokenHeader":{"type":"string"}},"type":"object"},"issuerUrl":{"type":"string"},"jwksCacheRefreshPolicy":{"properties":{"always":{"maxProperties":0,"type":"object"},"maxIdpReqPerPollingInterval":{"format":"int32","type":"integer"},"never":{"maxProperties":0,"type":"object"}},"type":"object"},"logoutPath":{"type":"string"},"scopes":{"items":{"type":"string"},"type":"array"},"session":{"properties":{"cookie":{"type":"object"},"cookieOptions":{"properties":{"domain":{"type":"string"},"maxAge":{"maximum":4294967295,"minimum":0,"nullable":true,"type":"integer"},"notSecure":{"type":"boolean"},"path":{"nullable":true,"type":"string"}},"type":"object"},"failOnFetchFailure":{"type":"boolean"},"redis":{"properties":{"allowRefreshing":{"nullable":true,"type":"boolean"},"cookieName":{"type":"string"},"keyPrefix":{"type":"string"},"options":{"properties":{"db":{"format":"int32","type":"integer"},"host":{"type":"string"},"poolSize":{"format":"int32","type":"integer"}},"type":"object"}},"type":"object"}},"type":"object"},"sessionIdHeaderName":{"type":"string"},"tokenEndpointQueryParams":{"additionalProperties":{"type":"string"},"type":"object"}},"type":"object"}},"type":"object"},"opaAuth":{"properties":{"modules":{"items":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"type":"array"},"options":{"properties":{"fastInputConversion":{"type":"boolean"}},"type":"object"},"query":{"type":"string"}},"type":"object"},"passThroughAuth":{"properties":{"config":{"type":"object","x-kubernetes-preserve-unknown-fields":true},"grpc":{"properties":{"address":{"type":"string"},"connectionTimeout":{"type":"string"}},"type":"object"},"http":{"properties":{"connectionTimeout":{"type":"string"},"request":{"properties":{"allowedHeaders":{"items":{"type":"string"},"type":"array"},"headersToAdd":{"additionalProperties":{"type":"string"},"type":"object"},"passThroughBody":{"type":"boolean"},"passThroughFilterMetadata":{"type":"boolean"},"passThroughState":{"type":"boolean"}},"type":"object"},"response":{"properties":{"allowedClientHeadersOnDenied":{"items":{"type":"string"},"type":"array"},"allowedUpstreamHeaders":{"items":{"type":"string"},"type":"array"},"readStateFromResponse":{"type":"boolean"}},"type":"object"},"url":{"type":"string"}},"type":"object"}},"type":"object"},"pluginAuth":{"properties":{"config":{"type":"object","x-kubernetes-preserve-unknown-fields":true},"exportedSymbolName":{"type":"string"},"name":{"type":"string"},"pluginFileName":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"namespacedStatuses":{"properties":{"statuses":{"additionalProperties":{"type":"object","x-kubernetes-preserve-unknown-fields":true},"type":"object"}},"type":"object"}},"type":"object"},"status":{"type":"object","x-kubernetes-preserve-unknown-fields":true}},"type":"object"}},"served":true,"storage":true}]},"status":{"acceptedNames":{"kind":"AuthConfig","listKind":"AuthConfigList","plural":"authconfigs","shortNames":["ac"],"singular":"authconfig"},"conditions":[{"lastTransitionTime":"2023-06-01T14:30:01Z","message":"no conflicts found","reason":"NoConflicts","status":"True","type":"NamesAccepted"},{"lastTransitionTime":"2023-06-01T14:30:01Z","message":"the initial names have been accepted","reason":"InitialNamesAccepted","status":"True","type":"Established"}],"storedVersions":["v1"]}} creationTimestamp: "2023-07-17T03:54:35Z" generation: 1 name: authconfigs.enterprise.gloo.solo.io resourceVersion: "6949776" uid: 8dccc512-0521-43e8-816d-6022bedea038 spec: conversion: strategy: None group: enterprise.gloo.solo.io names: kind: AuthConfig listKind: AuthConfigList plural: authconfigs shortNames: - ac singular: authconfig scope: Namespaced versions: - name: v1 schema: openAPIV3Schema: properties: spec: properties: booleanExpr: nullable: true type: string configs: items: properties: apiKeyAuth: properties: apiKeySecretRefs: items: properties: name: type: string namespace: type: string type: object type: array headerName: type: string headersFromMetadata: additionalProperties: properties: name: type: string required: type: boolean type: object type: object labelSelector: additionalProperties: type: string type: object type: object basicAuth: properties: apr: properties: users: additionalProperties: properties: hashedPassword: type: string salt: type: string type: object type: object type: object realm: type: string type: object jwt: maxProperties: 0 type: object ldap: properties: address: type: string allowedGroups: items: type: string type: array membershipAttributeName: type: string pool: properties: initialSize: maximum: 4294967295 minimum: 0 nullable: true type: integer maxSize: maximum: 4294967295 minimum: 0 nullable: true type: integer type: object userDnTemplate: type: string type: object name: nullable: true type: string oauth: properties: appUrl: type: string authEndpointQueryParams: additionalProperties: type: string type: object callbackPath: type: string clientId: type: string clientSecretRef: properties: name: type: string namespace: type: string type: object issuerUrl: type: string scopes: items: type: string type: array type: object oauth2: properties: accessTokenValidation: properties: cacheTimeout: type: string introspection: properties: clientId: type: string clientSecretRef: properties: name: type: string namespace: type: string type: object introspectionUrl: type: string userIdAttributeName: type: string type: object introspectionUrl: type: string jwt: properties: issuer: type: string localJwks: properties: inlineString: type: string type: object remoteJwks: properties: refreshInterval: type: string url: type: string type: object type: object requiredScopes: properties: scope: items: type: string type: array type: object userinfoUrl: type: string type: object oidcAuthorizationCode: properties: afterLogoutUrl: type: string appUrl: type: string authEndpointQueryParams: additionalProperties: type: string type: object callbackPath: type: string clientId: type: string clientSecretRef: properties: name: type: string namespace: type: string type: object discoveryOverride: properties: authEndpoint: type: string authMethods: items: type: string type: array claims: items: type: string type: array idTokenAlgs: items: type: string type: array jwksUri: type: string responseTypes: items: type: string type: array scopes: items: type: string type: array subjects: items: type: string type: array tokenEndpoint: type: string type: object discoveryPollInterval: type: string headers: properties: accessTokenHeader: type: string idTokenHeader: type: string type: object issuerUrl: type: string jwksCacheRefreshPolicy: properties: always: maxProperties: 0 type: object maxIdpReqPerPollingInterval: format: int32 type: integer never: maxProperties: 0 type: object type: object logoutPath: type: string scopes: items: type: string type: array session: properties: cookie: type: object cookieOptions: properties: domain: type: string maxAge: maximum: 4294967295 minimum: 0 nullable: true type: integer notSecure: type: boolean path: nullable: true type: string type: object failOnFetchFailure: type: boolean redis: properties: allowRefreshing: nullable: true type: boolean cookieName: type: string keyPrefix: type: string options: properties: db: format: int32 type: integer host: type: string poolSize: format: int32 type: integer type: object type: object type: object sessionIdHeaderName: type: string tokenEndpointQueryParams: additionalProperties: type: string type: object type: object type: object opaAuth: properties: modules: items: properties: name: type: string namespace: type: string type: object type: array options: properties: fastInputConversion: type: boolean type: object query: type: string type: object passThroughAuth: properties: config: type: object x-kubernetes-preserve-unknown-fields: true grpc: properties: address: type: string connectionTimeout: type: string type: object http: properties: connectionTimeout: type: string request: properties: allowedHeaders: items: type: string type: array headersToAdd: additionalProperties: type: string type: object passThroughBody: type: boolean passThroughFilterMetadata: type: boolean passThroughState: type: boolean type: object response: properties: allowedClientHeadersOnDenied: items: type: string type: array allowedUpstreamHeaders: items: type: string type: array readStateFromResponse: type: boolean type: object url: type: string type: object type: object pluginAuth: properties: config: type: object x-kubernetes-preserve-unknown-fields: true exportedSymbolName: type: string name: type: string pluginFileName: type: string type: object type: object type: array namespacedStatuses: properties: statuses: additionalProperties: type: object x-kubernetes-preserve-unknown-fields: true type: object type: object type: object status: type: object x-kubernetes-preserve-unknown-fields: true type: object served: true storage: true status: acceptedNames: kind: AuthConfig listKind: AuthConfigList plural: authconfigs shortNames: - ac singular: authconfig conditions: - lastTransitionTime: "2023-07-17T03:54:35Z" message: no conflicts found reason: NoConflicts status: "True" type: NamesAccepted - lastTransitionTime: "2023-07-17T03:54:35Z" message: the initial names have been accepted reason: InitialNamesAccepted status: "True" type: Established storedVersions: - v1 --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: creationTimestamp: "2023-07-17T03:55:34Z" generation: 1 name: ratelimitconfigs.ratelimit.solo.io resourceVersion: "6950099" uid: 7fd7f52b-6dac-459d-93e6-6c132fb44155 spec: conversion: strategy: None group: ratelimit.solo.io names: kind: RateLimitConfig listKind: RateLimitConfigList plural: ratelimitconfigs shortNames: - rlc singular: ratelimitconfig scope: Namespaced versions: - name: v1alpha1 schema: openAPIV3Schema: type: object x-kubernetes-preserve-unknown-fields: true served: true storage: true subresources: status: {} status: acceptedNames: kind: RateLimitConfig listKind: RateLimitConfigList plural: ratelimitconfigs shortNames: - rlc singular: ratelimitconfig conditions: - lastTransitionTime: "2023-07-17T03:55:34Z" message: no conflicts found reason: NoConflicts status: "True" type: NamesAccepted - lastTransitionTime: "2023-07-17T03:55:34Z" message: the initial names have been accepted reason: InitialNamesAccepted status: "True" type: Established storedVersions: - v1alpha1 --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"apiextensions.k8s.io/v1","kind":"CustomResourceDefinition","metadata":{"annotations":{},"creationTimestamp":"2023-06-01T14:30:02Z","generation":1,"name":"virtualhostoptions.gateway.solo.io","resourceVersion":"3708678","uid":"d6a2bbce-3fc4-4045-93d5-b9a522db11a3"},"spec":{"conversion":{"strategy":"None"},"group":"gateway.solo.io","names":{"kind":"VirtualHostOption","listKind":"VirtualHostOptionList","plural":"virtualhostoptions","shortNames":["vho","vhopts"],"singular":"virtualhostoption"},"scope":"Namespaced","versions":[{"name":"v1","schema":{"openAPIV3Schema":{"properties":{"spec":{"properties":{"namespacedStatuses":{"properties":{"statuses":{"additionalProperties":{"type":"object","x-kubernetes-preserve-unknown-fields":true},"type":"object"}},"type":"object"},"options":{"properties":{"bufferPerRoute":{"properties":{"buffer":{"properties":{"maxRequestBytes":{"maximum":4294967295,"minimum":0,"nullable":true,"type":"integer"}},"type":"object"},"disabled":{"type":"boolean"}},"type":"object"},"cors":{"properties":{"allowCredentials":{"type":"boolean"},"allowHeaders":{"items":{"type":"string"},"type":"array"},"allowMethods":{"items":{"type":"string"},"type":"array"},"allowOrigin":{"items":{"type":"string"},"type":"array"},"allowOriginRegex":{"items":{"type":"string"},"type":"array"},"disableForRoute":{"type":"boolean"},"exposeHeaders":{"items":{"type":"string"},"type":"array"},"maxAge":{"type":"string"}},"type":"object"},"csrf":{"properties":{"additionalOrigins":{"items":{"properties":{"exact":{"type":"string"},"ignoreCase":{"type":"boolean"},"prefix":{"type":"string"},"safeRegex":{"properties":{"googleRe2":{"properties":{"maxProgramSize":{"maximum":4294967295,"minimum":0,"nullable":true,"type":"integer"}},"type":"object"},"regex":{"type":"string"}},"type":"object"},"suffix":{"type":"string"}},"type":"object"},"type":"array"},"filterEnabled":{"properties":{"defaultValue":{"properties":{"denominator":{"type":"string","x-kubernetes-int-or-string":true},"numerator":{"format":"int32","type":"integer"}},"type":"object"},"runtimeKey":{"type":"string"}},"type":"object"},"shadowEnabled":{"properties":{"defaultValue":{"properties":{"denominator":{"type":"string","x-kubernetes-int-or-string":true},"numerator":{"format":"int32","type":"integer"}},"type":"object"},"runtimeKey":{"type":"string"}},"type":"object"}},"type":"object"},"dlp":{"properties":{"actions":{"items":{"properties":{"actionType":{"type":"string","x-kubernetes-int-or-string":true},"customAction":{"properties":{"maskChar":{"type":"string"},"name":{"type":"string"},"percent":{"properties":{"value":{"type":"number"}},"type":"object"},"regex":{"items":{"type":"string"},"type":"array"},"regexActions":{"items":{"properties":{"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"array"}},"type":"object"},"shadow":{"type":"boolean"}},"type":"object"},"type":"array"},"enabledFor":{"type":"string","x-kubernetes-int-or-string":true}},"type":"object"},"extauth":{"properties":{"configRef":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"customAuth":{"properties":{"contextExtensions":{"additionalProperties":{"type":"string"},"type":"object"},"name":{"type":"string"}},"type":"object"},"disable":{"type":"boolean"}},"type":"object"},"extensions":{"properties":{"configs":{"additionalProperties":{"type":"object","x-kubernetes-preserve-unknown-fields":true},"type":"object"}},"type":"object"},"headerManipulation":{"properties":{"requestHeadersToAdd":{"items":{"properties":{"append":{"nullable":true,"type":"boolean"},"header":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"headerSecretRef":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"requestHeadersToRemove":{"items":{"type":"string"},"type":"array"},"responseHeadersToAdd":{"items":{"properties":{"append":{"nullable":true,"type":"boolean"},"header":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"responseHeadersToRemove":{"items":{"type":"string"},"type":"array"}},"type":"object"},"includeAttemptCountInResponse":{"nullable":true,"type":"boolean"},"includeRequestAttemptCount":{"nullable":true,"type":"boolean"},"jwt":{"properties":{"allowMissingOrFailedJwt":{"type":"boolean"},"providers":{"additionalProperties":{"properties":{"audiences":{"items":{"type":"string"},"type":"array"},"claimsToHeaders":{"items":{"properties":{"append":{"type":"boolean"},"claim":{"type":"string"},"header":{"type":"string"}},"type":"object"},"type":"array"},"issuer":{"type":"string"},"jwks":{"properties":{"local":{"properties":{"key":{"type":"string"}},"type":"object"},"remote":{"properties":{"asyncFetch":{"properties":{"fastListener":{"type":"boolean"}},"type":"object"},"cacheDuration":{"type":"string"},"upstreamRef":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"url":{"type":"string"}},"type":"object"}},"type":"object"},"keepToken":{"type":"boolean"},"tokenSource":{"properties":{"headers":{"items":{"properties":{"header":{"type":"string"},"prefix":{"type":"string"}},"type":"object"},"type":"array"},"queryParams":{"items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"},"type":"object"}},"type":"object"},"jwtStaged":{"properties":{"afterExtAuth":{"properties":{"allowMissingOrFailedJwt":{"type":"boolean"},"providers":{"additionalProperties":{"properties":{"audiences":{"items":{"type":"string"},"type":"array"},"claimsToHeaders":{"items":{"properties":{"append":{"type":"boolean"},"claim":{"type":"string"},"header":{"type":"string"}},"type":"object"},"type":"array"},"issuer":{"type":"string"},"jwks":{"properties":{"local":{"properties":{"key":{"type":"string"}},"type":"object"},"remote":{"properties":{"asyncFetch":{"properties":{"fastListener":{"type":"boolean"}},"type":"object"},"cacheDuration":{"type":"string"},"upstreamRef":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"url":{"type":"string"}},"type":"object"}},"type":"object"},"keepToken":{"type":"boolean"},"tokenSource":{"properties":{"headers":{"items":{"properties":{"header":{"type":"string"},"prefix":{"type":"string"}},"type":"object"},"type":"array"},"queryParams":{"items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"},"type":"object"}},"type":"object"},"beforeExtAuth":{"properties":{"allowMissingOrFailedJwt":{"type":"boolean"},"providers":{"additionalProperties":{"properties":{"audiences":{"items":{"type":"string"},"type":"array"},"claimsToHeaders":{"items":{"properties":{"append":{"type":"boolean"},"claim":{"type":"string"},"header":{"type":"string"}},"type":"object"},"type":"array"},"issuer":{"type":"string"},"jwks":{"properties":{"local":{"properties":{"key":{"type":"string"}},"type":"object"},"remote":{"properties":{"asyncFetch":{"properties":{"fastListener":{"type":"boolean"}},"type":"object"},"cacheDuration":{"type":"string"},"upstreamRef":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"url":{"type":"string"}},"type":"object"}},"type":"object"},"keepToken":{"type":"boolean"},"tokenSource":{"properties":{"headers":{"items":{"properties":{"header":{"type":"string"},"prefix":{"type":"string"}},"type":"object"},"type":"array"},"queryParams":{"items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"},"type":"object"}},"type":"object"}},"type":"object"},"rateLimitConfigs":{"properties":{"refs":{"items":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"ratelimit":{"properties":{"rateLimits":{"items":{"properties":{"actions":{"items":{"properties":{"destinationCluster":{"type":"object"},"genericKey":{"properties":{"descriptorValue":{"type":"string"}},"type":"object"},"headerValueMatch":{"properties":{"descriptorValue":{"type":"string"},"expectMatch":{"nullable":true,"type":"boolean"},"headers":{"items":{"properties":{"exactMatch":{"type":"string"},"invertMatch":{"type":"boolean"},"name":{"type":"string"},"prefixMatch":{"type":"string"},"presentMatch":{"type":"boolean"},"rangeMatch":{"properties":{"end":{"format":"int64","type":"integer","x-kubernetes-int-or-string":true},"start":{"format":"int64","type":"integer","x-kubernetes-int-or-string":true}},"type":"object"},"regexMatch":{"type":"string"},"suffixMatch":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"metadata":{"properties":{"defaultValue":{"type":"string"},"descriptorKey":{"type":"string"},"metadataKey":{"properties":{"key":{"type":"string"},"path":{"items":{"properties":{"key":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"source":{"type":"string","x-kubernetes-int-or-string":true}},"type":"object"},"remoteAddress":{"type":"object"},"requestHeaders":{"properties":{"descriptorKey":{"type":"string"},"headerName":{"type":"string"}},"type":"object"},"sourceCluster":{"type":"object"}},"type":"object"},"type":"array"},"setActions":{"items":{"properties":{"destinationCluster":{"type":"object"},"genericKey":{"properties":{"descriptorValue":{"type":"string"}},"type":"object"},"headerValueMatch":{"properties":{"descriptorValue":{"type":"string"},"expectMatch":{"nullable":true,"type":"boolean"},"headers":{"items":{"properties":{"exactMatch":{"type":"string"},"invertMatch":{"type":"boolean"},"name":{"type":"string"},"prefixMatch":{"type":"string"},"presentMatch":{"type":"boolean"},"rangeMatch":{"properties":{"end":{"format":"int64","type":"integer","x-kubernetes-int-or-string":true},"start":{"format":"int64","type":"integer","x-kubernetes-int-or-string":true}},"type":"object"},"regexMatch":{"type":"string"},"suffixMatch":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"metadata":{"properties":{"defaultValue":{"type":"string"},"descriptorKey":{"type":"string"},"metadataKey":{"properties":{"key":{"type":"string"},"path":{"items":{"properties":{"key":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"source":{"type":"string","x-kubernetes-int-or-string":true}},"type":"object"},"remoteAddress":{"type":"object"},"requestHeaders":{"properties":{"descriptorKey":{"type":"string"},"headerName":{"type":"string"}},"type":"object"},"sourceCluster":{"type":"object"}},"type":"object"},"type":"array"}},"type":"object"},"type":"array"}},"type":"object"},"ratelimitBasic":{"properties":{"anonymousLimits":{"properties":{"requestsPerUnit":{"format":"int32","type":"integer"},"unit":{"type":"string","x-kubernetes-int-or-string":true}},"type":"object"},"authorizedLimits":{"properties":{"requestsPerUnit":{"format":"int32","type":"integer"},"unit":{"type":"string","x-kubernetes-int-or-string":true}},"type":"object"}},"type":"object"},"rbac":{"properties":{"disable":{"type":"boolean"},"policies":{"additionalProperties":{"properties":{"nestedClaimDelimiter":{"type":"string"},"permissions":{"properties":{"methods":{"items":{"type":"string"},"type":"array"},"pathPrefix":{"type":"string"}},"type":"object"},"principals":{"items":{"properties":{"jwtPrincipal":{"properties":{"claims":{"additionalProperties":{"type":"string"},"type":"object"},"matcher":{"type":"string","x-kubernetes-int-or-string":true},"provider":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"}},"type":"object"},"type":"object"}},"type":"object"},"retries":{"properties":{"numRetries":{"format":"int32","type":"integer"},"perTryTimeout":{"type":"string"},"retryOn":{"type":"string"}},"type":"object"},"stagedTransformations":{"properties":{"early":{"properties":{"requestTransforms":{"items":{"properties":{"clearRouteCache":{"type":"boolean"},"matcher":{"properties":{"caseSensitive":{"nullable":true,"type":"boolean"},"exact":{"type":"string"},"headers":{"items":{"properties":{"invertMatch":{"type":"boolean"},"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"methods":{"items":{"type":"string"},"type":"array"},"prefix":{"type":"string"},"queryParameters":{"items":{"properties":{"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"regex":{"type":"string"}},"type":"object"},"requestTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":"array"},"responseTransforms":{"items":{"properties":{"matchers":{"items":{"properties":{"invertMatch":{"type":"boolean"},"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"responseCodeDetails":{"type":"string"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":"array"}},"type":"object"},"inheritTransformation":{"type":"boolean"},"regular":{"properties":{"requestTransforms":{"items":{"properties":{"clearRouteCache":{"type":"boolean"},"matcher":{"properties":{"caseSensitive":{"nullable":true,"type":"boolean"},"exact":{"type":"string"},"headers":{"items":{"properties":{"invertMatch":{"type":"boolean"},"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"methods":{"items":{"type":"string"},"type":"array"},"prefix":{"type":"string"},"queryParameters":{"items":{"properties":{"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"regex":{"type":"string"}},"type":"object"},"requestTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":"array"},"responseTransforms":{"items":{"properties":{"matchers":{"items":{"properties":{"invertMatch":{"type":"boolean"},"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"responseCodeDetails":{"type":"string"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object"},"stats":{"properties":{"virtualClusters":{"items":{"properties":{"method":{"type":"string"},"name":{"type":"string"},"pattern":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"transformations":{"properties":{"clearRouteCache":{"type":"boolean"},"requestTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"waf":{"properties":{"auditLogging":{"properties":{"action":{"type":"string","x-kubernetes-int-or-string":true},"location":{"type":"string","x-kubernetes-int-or-string":true}},"type":"object"},"coreRuleSet":{"properties":{"customSettingsFile":{"type":"string"},"customSettingsString":{"type":"string"}},"type":"object"},"customInterventionMessage":{"type":"string"},"disabled":{"type":"boolean"},"requestHeadersOnly":{"type":"boolean"},"responseHeadersOnly":{"type":"boolean"},"ruleSets":{"items":{"properties":{"directory":{"type":"string"},"files":{"items":{"type":"string"},"type":"array"},"ruleStr":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object"}},"type":"object"},"status":{"type":"object","x-kubernetes-preserve-unknown-fields":true}},"type":"object"}},"served":true,"storage":true}]},"status":{"acceptedNames":{"kind":"VirtualHostOption","listKind":"VirtualHostOptionList","plural":"virtualhostoptions","shortNames":["vho","vhopts"],"singular":"virtualhostoption"},"conditions":[{"lastTransitionTime":"2023-06-01T14:30:02Z","message":"no conflicts found","reason":"NoConflicts","status":"True","type":"NamesAccepted"},{"lastTransitionTime":"2023-06-01T14:30:02Z","message":"the initial names have been accepted","reason":"InitialNamesAccepted","status":"True","type":"Established"}],"storedVersions":["v1"]}} creationTimestamp: "2023-07-17T03:56:24Z" generation: 1 name: virtualhostoptions.gateway.solo.io resourceVersion: "6950377" uid: 3d20005e-3b51-4a19-b059-2648a33b5323 spec: conversion: strategy: None group: gateway.solo.io names: kind: VirtualHostOption listKind: VirtualHostOptionList plural: virtualhostoptions shortNames: - vho - vhopts singular: virtualhostoption scope: Namespaced versions: - name: v1 schema: openAPIV3Schema: properties: spec: properties: namespacedStatuses: properties: statuses: additionalProperties: type: object x-kubernetes-preserve-unknown-fields: true type: object type: object options: properties: bufferPerRoute: properties: buffer: properties: maxRequestBytes: maximum: 4294967295 minimum: 0 nullable: true type: integer type: object disabled: type: boolean type: object cors: properties: allowCredentials: type: boolean allowHeaders: items: type: string type: array allowMethods: items: type: string type: array allowOrigin: items: type: string type: array allowOriginRegex: items: type: string type: array disableForRoute: type: boolean exposeHeaders: items: type: string type: array maxAge: type: string type: object csrf: properties: additionalOrigins: items: properties: exact: type: string ignoreCase: type: boolean prefix: type: string safeRegex: properties: googleRe2: properties: maxProgramSize: maximum: 4294967295 minimum: 0 nullable: true type: integer type: object regex: type: string type: object suffix: type: string type: object type: array filterEnabled: properties: defaultValue: properties: denominator: type: string x-kubernetes-int-or-string: true numerator: format: int32 type: integer type: object runtimeKey: type: string type: object shadowEnabled: properties: defaultValue: properties: denominator: type: string x-kubernetes-int-or-string: true numerator: format: int32 type: integer type: object runtimeKey: type: string type: object type: object dlp: properties: actions: items: properties: actionType: type: string x-kubernetes-int-or-string: true customAction: properties: maskChar: type: string name: type: string percent: properties: value: type: number type: object regex: items: type: string type: array regexActions: items: properties: regex: type: string subgroup: format: int32 type: integer type: object type: array type: object shadow: type: boolean type: object type: array enabledFor: type: string x-kubernetes-int-or-string: true type: object extauth: properties: configRef: properties: name: type: string namespace: type: string type: object customAuth: properties: contextExtensions: additionalProperties: type: string type: object name: type: string type: object disable: type: boolean type: object extensions: properties: configs: additionalProperties: type: object x-kubernetes-preserve-unknown-fields: true type: object type: object headerManipulation: properties: requestHeadersToAdd: items: properties: append: nullable: true type: boolean header: properties: key: type: string value: type: string type: object headerSecretRef: properties: name: type: string namespace: type: string type: object type: object type: array requestHeadersToRemove: items: type: string type: array responseHeadersToAdd: items: properties: append: nullable: true type: boolean header: properties: key: type: string value: type: string type: object type: object type: array responseHeadersToRemove: items: type: string type: array type: object includeAttemptCountInResponse: nullable: true type: boolean includeRequestAttemptCount: nullable: true type: boolean jwt: properties: allowMissingOrFailedJwt: type: boolean providers: additionalProperties: properties: audiences: items: type: string type: array claimsToHeaders: items: properties: append: type: boolean claim: type: string header: type: string type: object type: array issuer: type: string jwks: properties: local: properties: key: type: string type: object remote: properties: asyncFetch: properties: fastListener: type: boolean type: object cacheDuration: type: string upstreamRef: properties: name: type: string namespace: type: string type: object url: type: string type: object type: object keepToken: type: boolean tokenSource: properties: headers: items: properties: header: type: string prefix: type: string type: object type: array queryParams: items: type: string type: array type: object type: object type: object type: object jwtStaged: properties: afterExtAuth: properties: allowMissingOrFailedJwt: type: boolean providers: additionalProperties: properties: audiences: items: type: string type: array claimsToHeaders: items: properties: append: type: boolean claim: type: string header: type: string type: object type: array issuer: type: string jwks: properties: local: properties: key: type: string type: object remote: properties: asyncFetch: properties: fastListener: type: boolean type: object cacheDuration: type: string upstreamRef: properties: name: type: string namespace: type: string type: object url: type: string type: object type: object keepToken: type: boolean tokenSource: properties: headers: items: properties: header: type: string prefix: type: string type: object type: array queryParams: items: type: string type: array type: object type: object type: object type: object beforeExtAuth: properties: allowMissingOrFailedJwt: type: boolean providers: additionalProperties: properties: audiences: items: type: string type: array claimsToHeaders: items: properties: append: type: boolean claim: type: string header: type: string type: object type: array issuer: type: string jwks: properties: local: properties: key: type: string type: object remote: properties: asyncFetch: properties: fastListener: type: boolean type: object cacheDuration: type: string upstreamRef: properties: name: type: string namespace: type: string type: object url: type: string type: object type: object keepToken: type: boolean tokenSource: properties: headers: items: properties: header: type: string prefix: type: string type: object type: array queryParams: items: type: string type: array type: object type: object type: object type: object type: object rateLimitConfigs: properties: refs: items: properties: name: type: string namespace: type: string type: object type: array type: object ratelimit: properties: rateLimits: items: properties: actions: items: properties: destinationCluster: type: object genericKey: properties: descriptorValue: type: string type: object headerValueMatch: properties: descriptorValue: type: string expectMatch: nullable: true type: boolean headers: items: properties: exactMatch: type: string invertMatch: type: boolean name: type: string prefixMatch: type: string presentMatch: type: boolean rangeMatch: properties: end: format: int64 type: integer x-kubernetes-int-or-string: true start: format: int64 type: integer x-kubernetes-int-or-string: true type: object regexMatch: type: string suffixMatch: type: string type: object type: array type: object metadata: properties: defaultValue: type: string descriptorKey: type: string metadataKey: properties: key: type: string path: items: properties: key: type: string type: object type: array type: object source: type: string x-kubernetes-int-or-string: true type: object remoteAddress: type: object requestHeaders: properties: descriptorKey: type: string headerName: type: string type: object sourceCluster: type: object type: object type: array setActions: items: properties: destinationCluster: type: object genericKey: properties: descriptorValue: type: string type: object headerValueMatch: properties: descriptorValue: type: string expectMatch: nullable: true type: boolean headers: items: properties: exactMatch: type: string invertMatch: type: boolean name: type: string prefixMatch: type: string presentMatch: type: boolean rangeMatch: properties: end: format: int64 type: integer x-kubernetes-int-or-string: true start: format: int64 type: integer x-kubernetes-int-or-string: true type: object regexMatch: type: string suffixMatch: type: string type: object type: array type: object metadata: properties: defaultValue: type: string descriptorKey: type: string metadataKey: properties: key: type: string path: items: properties: key: type: string type: object type: array type: object source: type: string x-kubernetes-int-or-string: true type: object remoteAddress: type: object requestHeaders: properties: descriptorKey: type: string headerName: type: string type: object sourceCluster: type: object type: object type: array type: object type: array type: object ratelimitBasic: properties: anonymousLimits: properties: requestsPerUnit: format: int32 type: integer unit: type: string x-kubernetes-int-or-string: true type: object authorizedLimits: properties: requestsPerUnit: format: int32 type: integer unit: type: string x-kubernetes-int-or-string: true type: object type: object rbac: properties: disable: type: boolean policies: additionalProperties: properties: nestedClaimDelimiter: type: string permissions: properties: methods: items: type: string type: array pathPrefix: type: string type: object principals: items: properties: jwtPrincipal: properties: claims: additionalProperties: type: string type: object matcher: type: string x-kubernetes-int-or-string: true provider: type: string type: object type: object type: array type: object type: object type: object retries: properties: numRetries: format: int32 type: integer perTryTimeout: type: string retryOn: type: string type: object stagedTransformations: properties: early: properties: requestTransforms: items: properties: clearRouteCache: type: boolean matcher: properties: caseSensitive: nullable: true type: boolean exact: type: string headers: items: properties: invertMatch: type: boolean name: type: string regex: type: boolean value: type: string type: object type: array methods: items: type: string type: array prefix: type: string queryParameters: items: properties: name: type: string regex: type: boolean value: type: string type: object type: array regex: type: string type: object requestTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: array responseTransforms: items: properties: matchers: items: properties: invertMatch: type: boolean name: type: string regex: type: boolean value: type: string type: object type: array responseCodeDetails: type: string responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: array type: object inheritTransformation: type: boolean regular: properties: requestTransforms: items: properties: clearRouteCache: type: boolean matcher: properties: caseSensitive: nullable: true type: boolean exact: type: string headers: items: properties: invertMatch: type: boolean name: type: string regex: type: boolean value: type: string type: object type: array methods: items: type: string type: array prefix: type: string queryParameters: items: properties: name: type: string regex: type: boolean value: type: string type: object type: array regex: type: string type: object requestTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: array responseTransforms: items: properties: matchers: items: properties: invertMatch: type: boolean name: type: string regex: type: boolean value: type: string type: object type: array responseCodeDetails: type: string responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: array type: object type: object stats: properties: virtualClusters: items: properties: method: type: string name: type: string pattern: type: string type: object type: array type: object transformations: properties: clearRouteCache: type: boolean requestTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object waf: properties: auditLogging: properties: action: type: string x-kubernetes-int-or-string: true location: type: string x-kubernetes-int-or-string: true type: object coreRuleSet: properties: customSettingsFile: type: string customSettingsString: type: string type: object customInterventionMessage: type: string disabled: type: boolean requestHeadersOnly: type: boolean responseHeadersOnly: type: boolean ruleSets: items: properties: directory: type: string files: items: type: string type: array ruleStr: type: string type: object type: array type: object type: object type: object status: type: object x-kubernetes-preserve-unknown-fields: true type: object served: true storage: true status: acceptedNames: kind: VirtualHostOption listKind: VirtualHostOptionList plural: virtualhostoptions shortNames: - vho - vhopts singular: virtualhostoption conditions: - lastTransitionTime: "2023-07-17T03:56:24Z" message: no conflicts found reason: NoConflicts status: "True" type: NamesAccepted - lastTransitionTime: "2023-07-17T03:56:24Z" message: the initial names have been accepted reason: InitialNamesAccepted status: "True" type: Established storedVersions: - v1 --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"apiextensions.k8s.io/v1","kind":"CustomResourceDefinition","metadata":{"annotations":{},"creationTimestamp":"2023-06-01T14:30:01Z","generation":1,"name":"routeoptions.gateway.solo.io","resourceVersion":"3708672","uid":"75c319ab-87f0-4b28-ae43-a06799596731"},"spec":{"conversion":{"strategy":"None"},"group":"gateway.solo.io","names":{"kind":"RouteOption","listKind":"RouteOptionList","plural":"routeoptions","shortNames":["rto","rtopts"],"singular":"routeoption"},"scope":"Namespaced","versions":[{"name":"v1","schema":{"openAPIV3Schema":{"properties":{"spec":{"properties":{"namespacedStatuses":{"properties":{"statuses":{"additionalProperties":{"type":"object","x-kubernetes-preserve-unknown-fields":true},"type":"object"}},"type":"object"},"options":{"properties":{"autoHostRewrite":{"nullable":true,"type":"boolean"},"bufferPerRoute":{"properties":{"buffer":{"properties":{"maxRequestBytes":{"maximum":4294967295,"minimum":0,"nullable":true,"type":"integer"}},"type":"object"},"disabled":{"type":"boolean"}},"type":"object"},"cors":{"properties":{"allowCredentials":{"type":"boolean"},"allowHeaders":{"items":{"type":"string"},"type":"array"},"allowMethods":{"items":{"type":"string"},"type":"array"},"allowOrigin":{"items":{"type":"string"},"type":"array"},"allowOriginRegex":{"items":{"type":"string"},"type":"array"},"disableForRoute":{"type":"boolean"},"exposeHeaders":{"items":{"type":"string"},"type":"array"},"maxAge":{"type":"string"}},"type":"object"},"csrf":{"properties":{"additionalOrigins":{"items":{"properties":{"exact":{"type":"string"},"ignoreCase":{"type":"boolean"},"prefix":{"type":"string"},"safeRegex":{"properties":{"googleRe2":{"properties":{"maxProgramSize":{"maximum":4294967295,"minimum":0,"nullable":true,"type":"integer"}},"type":"object"},"regex":{"type":"string"}},"type":"object"},"suffix":{"type":"string"}},"type":"object"},"type":"array"},"filterEnabled":{"properties":{"defaultValue":{"properties":{"denominator":{"type":"string","x-kubernetes-int-or-string":true},"numerator":{"format":"int32","type":"integer"}},"type":"object"},"runtimeKey":{"type":"string"}},"type":"object"},"shadowEnabled":{"properties":{"defaultValue":{"properties":{"denominator":{"type":"string","x-kubernetes-int-or-string":true},"numerator":{"format":"int32","type":"integer"}},"type":"object"},"runtimeKey":{"type":"string"}},"type":"object"}},"type":"object"},"dlp":{"properties":{"actions":{"items":{"properties":{"actionType":{"type":"string","x-kubernetes-int-or-string":true},"customAction":{"properties":{"maskChar":{"type":"string"},"name":{"type":"string"},"percent":{"properties":{"value":{"type":"number"}},"type":"object"},"regex":{"items":{"type":"string"},"type":"array"},"regexActions":{"items":{"properties":{"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"array"}},"type":"object"},"shadow":{"type":"boolean"}},"type":"object"},"type":"array"},"enabledFor":{"type":"string","x-kubernetes-int-or-string":true}},"type":"object"},"envoyMetadata":{"additionalProperties":{"type":"object","x-kubernetes-preserve-unknown-fields":true},"type":"object"},"extauth":{"properties":{"configRef":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"customAuth":{"properties":{"contextExtensions":{"additionalProperties":{"type":"string"},"type":"object"},"name":{"type":"string"}},"type":"object"},"disable":{"type":"boolean"}},"type":"object"},"extensions":{"properties":{"configs":{"additionalProperties":{"type":"object","x-kubernetes-preserve-unknown-fields":true},"type":"object"}},"type":"object"},"faults":{"properties":{"abort":{"properties":{"httpStatus":{"format":"int32","type":"integer"},"percentage":{"type":"number"}},"type":"object"},"delay":{"properties":{"fixedDelay":{"type":"string"},"percentage":{"type":"number"}},"type":"object"}},"type":"object"},"headerManipulation":{"properties":{"requestHeadersToAdd":{"items":{"properties":{"append":{"nullable":true,"type":"boolean"},"header":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"headerSecretRef":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"requestHeadersToRemove":{"items":{"type":"string"},"type":"array"},"responseHeadersToAdd":{"items":{"properties":{"append":{"nullable":true,"type":"boolean"},"header":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"responseHeadersToRemove":{"items":{"type":"string"},"type":"array"}},"type":"object"},"hostRewrite":{"type":"string"},"jwt":{"properties":{"disable":{"type":"boolean"}},"type":"object"},"jwtStaged":{"properties":{"afterExtAuth":{"properties":{"disable":{"type":"boolean"}},"type":"object"},"beforeExtAuth":{"properties":{"disable":{"type":"boolean"}},"type":"object"}},"type":"object"},"lbHash":{"properties":{"hashPolicies":{"items":{"properties":{"cookie":{"properties":{"name":{"type":"string"},"path":{"type":"string"},"ttl":{"type":"string"}},"type":"object"},"header":{"type":"string"},"sourceIp":{"type":"boolean"},"terminal":{"type":"boolean"}},"type":"object"},"type":"array"}},"type":"object"},"prefixRewrite":{"nullable":true,"type":"string"},"rateLimitConfigs":{"properties":{"refs":{"items":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"ratelimit":{"properties":{"includeVhRateLimits":{"type":"boolean"},"rateLimits":{"items":{"properties":{"actions":{"items":{"properties":{"destinationCluster":{"type":"object"},"genericKey":{"properties":{"descriptorValue":{"type":"string"}},"type":"object"},"headerValueMatch":{"properties":{"descriptorValue":{"type":"string"},"expectMatch":{"nullable":true,"type":"boolean"},"headers":{"items":{"properties":{"exactMatch":{"type":"string"},"invertMatch":{"type":"boolean"},"name":{"type":"string"},"prefixMatch":{"type":"string"},"presentMatch":{"type":"boolean"},"rangeMatch":{"properties":{"end":{"format":"int64","type":"integer","x-kubernetes-int-or-string":true},"start":{"format":"int64","type":"integer","x-kubernetes-int-or-string":true}},"type":"object"},"regexMatch":{"type":"string"},"suffixMatch":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"metadata":{"properties":{"defaultValue":{"type":"string"},"descriptorKey":{"type":"string"},"metadataKey":{"properties":{"key":{"type":"string"},"path":{"items":{"properties":{"key":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"source":{"type":"string","x-kubernetes-int-or-string":true}},"type":"object"},"remoteAddress":{"type":"object"},"requestHeaders":{"properties":{"descriptorKey":{"type":"string"},"headerName":{"type":"string"}},"type":"object"},"sourceCluster":{"type":"object"}},"type":"object"},"type":"array"},"setActions":{"items":{"properties":{"destinationCluster":{"type":"object"},"genericKey":{"properties":{"descriptorValue":{"type":"string"}},"type":"object"},"headerValueMatch":{"properties":{"descriptorValue":{"type":"string"},"expectMatch":{"nullable":true,"type":"boolean"},"headers":{"items":{"properties":{"exactMatch":{"type":"string"},"invertMatch":{"type":"boolean"},"name":{"type":"string"},"prefixMatch":{"type":"string"},"presentMatch":{"type":"boolean"},"rangeMatch":{"properties":{"end":{"format":"int64","type":"integer","x-kubernetes-int-or-string":true},"start":{"format":"int64","type":"integer","x-kubernetes-int-or-string":true}},"type":"object"},"regexMatch":{"type":"string"},"suffixMatch":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"metadata":{"properties":{"defaultValue":{"type":"string"},"descriptorKey":{"type":"string"},"metadataKey":{"properties":{"key":{"type":"string"},"path":{"items":{"properties":{"key":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"source":{"type":"string","x-kubernetes-int-or-string":true}},"type":"object"},"remoteAddress":{"type":"object"},"requestHeaders":{"properties":{"descriptorKey":{"type":"string"},"headerName":{"type":"string"}},"type":"object"},"sourceCluster":{"type":"object"}},"type":"object"},"type":"array"}},"type":"object"},"type":"array"}},"type":"object"},"ratelimitBasic":{"properties":{"anonymousLimits":{"properties":{"requestsPerUnit":{"format":"int32","type":"integer"},"unit":{"type":"string","x-kubernetes-int-or-string":true}},"type":"object"},"authorizedLimits":{"properties":{"requestsPerUnit":{"format":"int32","type":"integer"},"unit":{"type":"string","x-kubernetes-int-or-string":true}},"type":"object"}},"type":"object"},"rbac":{"properties":{"disable":{"type":"boolean"},"policies":{"additionalProperties":{"properties":{"nestedClaimDelimiter":{"type":"string"},"permissions":{"properties":{"methods":{"items":{"type":"string"},"type":"array"},"pathPrefix":{"type":"string"}},"type":"object"},"principals":{"items":{"properties":{"jwtPrincipal":{"properties":{"claims":{"additionalProperties":{"type":"string"},"type":"object"},"matcher":{"type":"string","x-kubernetes-int-or-string":true},"provider":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"}},"type":"object"},"type":"object"}},"type":"object"},"regexRewrite":{"properties":{"pattern":{"properties":{"googleRe2":{"properties":{"maxProgramSize":{"maximum":4294967295,"minimum":0,"nullable":true,"type":"integer"}},"type":"object"},"regex":{"type":"string"}},"type":"object"},"substitution":{"type":"string"}},"type":"object"},"retries":{"properties":{"numRetries":{"format":"int32","type":"integer"},"perTryTimeout":{"type":"string"},"retryOn":{"type":"string"}},"type":"object"},"shadowing":{"properties":{"percentage":{"type":"number"},"upstream":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"}},"type":"object"},"stagedTransformations":{"properties":{"early":{"properties":{"requestTransforms":{"items":{"properties":{"clearRouteCache":{"type":"boolean"},"matcher":{"properties":{"caseSensitive":{"nullable":true,"type":"boolean"},"exact":{"type":"string"},"headers":{"items":{"properties":{"invertMatch":{"type":"boolean"},"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"methods":{"items":{"type":"string"},"type":"array"},"prefix":{"type":"string"},"queryParameters":{"items":{"properties":{"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"regex":{"type":"string"}},"type":"object"},"requestTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":"array"},"responseTransforms":{"items":{"properties":{"matchers":{"items":{"properties":{"invertMatch":{"type":"boolean"},"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"responseCodeDetails":{"type":"string"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":"array"}},"type":"object"},"inheritTransformation":{"type":"boolean"},"regular":{"properties":{"requestTransforms":{"items":{"properties":{"clearRouteCache":{"type":"boolean"},"matcher":{"properties":{"caseSensitive":{"nullable":true,"type":"boolean"},"exact":{"type":"string"},"headers":{"items":{"properties":{"invertMatch":{"type":"boolean"},"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"methods":{"items":{"type":"string"},"type":"array"},"prefix":{"type":"string"},"queryParameters":{"items":{"properties":{"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"regex":{"type":"string"}},"type":"object"},"requestTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":"array"},"responseTransforms":{"items":{"properties":{"matchers":{"items":{"properties":{"invertMatch":{"type":"boolean"},"name":{"type":"string"},"regex":{"type":"boolean"},"value":{"type":"string"}},"type":"object"},"type":"array"},"responseCodeDetails":{"type":"string"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object"},"timeout":{"type":"string"},"tracing":{"properties":{"propagate":{"nullable":true,"type":"boolean"},"routeDescriptor":{"type":"string"},"tracePercentages":{"properties":{"clientSamplePercentage":{"nullable":true,"type":"number"},"overallSamplePercentage":{"nullable":true,"type":"number"},"randomSamplePercentage":{"nullable":true,"type":"number"}},"type":"object"}},"type":"object"},"transformations":{"properties":{"clearRouteCache":{"type":"boolean"},"requestTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"},"responseTransformation":{"properties":{"headerBodyTransform":{"type":"object"},"transformationTemplate":{"properties":{"advancedTemplates":{"type":"boolean"},"body":{"properties":{"text":{"type":"string"}},"type":"object"},"dynamicMetadataValues":{"items":{"properties":{"key":{"type":"string"},"metadataNamespace":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"extractors":{"additionalProperties":{"properties":{"body":{"maxProperties":0,"type":"object"},"header":{"type":"string"},"regex":{"type":"string"},"subgroup":{"format":"int32","type":"integer"}},"type":"object"},"type":"object"},"headers":{"additionalProperties":{"properties":{"text":{"type":"string"}},"type":"object"},"type":"object"},"headersToAppend":{"items":{"properties":{"key":{"type":"string"},"value":{"properties":{"text":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"ignoreErrorOnParse":{"type":"boolean"},"mergeExtractorsToBody":{"type":"object"},"parseBodyBehavior":{"type":"string","x-kubernetes-int-or-string":true},"passthrough":{"type":"object"}},"type":"object"},"xsltTransformation":{"properties":{"nonXmlTransform":{"type":"boolean"},"setContentType":{"type":"string"},"xslt":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"upgrades":{"items":{"properties":{"websocket":{"properties":{"enabled":{"nullable":true,"type":"boolean"}},"type":"object"}},"type":"object"},"type":"array"},"waf":{"properties":{"auditLogging":{"properties":{"action":{"type":"string","x-kubernetes-int-or-string":true},"location":{"type":"string","x-kubernetes-int-or-string":true}},"type":"object"},"coreRuleSet":{"properties":{"customSettingsFile":{"type":"string"},"customSettingsString":{"type":"string"}},"type":"object"},"customInterventionMessage":{"type":"string"},"disabled":{"type":"boolean"},"requestHeadersOnly":{"type":"boolean"},"responseHeadersOnly":{"type":"boolean"},"ruleSets":{"items":{"properties":{"directory":{"type":"string"},"files":{"items":{"type":"string"},"type":"array"},"ruleStr":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object"}},"type":"object"},"status":{"type":"object","x-kubernetes-preserve-unknown-fields":true}},"type":"object"}},"served":true,"storage":true}]},"status":{"acceptedNames":{"kind":"RouteOption","listKind":"RouteOptionList","plural":"routeoptions","shortNames":["rto","rtopts"],"singular":"routeoption"},"conditions":[{"lastTransitionTime":"2023-06-01T14:30:01Z","message":"no conflicts found","reason":"NoConflicts","status":"True","type":"NamesAccepted"},{"lastTransitionTime":"2023-06-01T14:30:02Z","message":"the initial names have been accepted","reason":"InitialNamesAccepted","status":"True","type":"Established"}],"storedVersions":["v1"]}} creationTimestamp: "2023-07-17T03:57:32Z" generation: 1 name: routeoptions.gateway.solo.io resourceVersion: "6950748" uid: 9c3be523-9f2f-4f49-b1f1-0cc173ce2532 spec: conversion: strategy: None group: gateway.solo.io names: kind: RouteOption listKind: RouteOptionList plural: routeoptions shortNames: - rto - rtopts singular: routeoption scope: Namespaced versions: - name: v1 schema: openAPIV3Schema: properties: spec: properties: namespacedStatuses: properties: statuses: additionalProperties: type: object x-kubernetes-preserve-unknown-fields: true type: object type: object options: properties: autoHostRewrite: nullable: true type: boolean bufferPerRoute: properties: buffer: properties: maxRequestBytes: maximum: 4294967295 minimum: 0 nullable: true type: integer type: object disabled: type: boolean type: object cors: properties: allowCredentials: type: boolean allowHeaders: items: type: string type: array allowMethods: items: type: string type: array allowOrigin: items: type: string type: array allowOriginRegex: items: type: string type: array disableForRoute: type: boolean exposeHeaders: items: type: string type: array maxAge: type: string type: object csrf: properties: additionalOrigins: items: properties: exact: type: string ignoreCase: type: boolean prefix: type: string safeRegex: properties: googleRe2: properties: maxProgramSize: maximum: 4294967295 minimum: 0 nullable: true type: integer type: object regex: type: string type: object suffix: type: string type: object type: array filterEnabled: properties: defaultValue: properties: denominator: type: string x-kubernetes-int-or-string: true numerator: format: int32 type: integer type: object runtimeKey: type: string type: object shadowEnabled: properties: defaultValue: properties: denominator: type: string x-kubernetes-int-or-string: true numerator: format: int32 type: integer type: object runtimeKey: type: string type: object type: object dlp: properties: actions: items: properties: actionType: type: string x-kubernetes-int-or-string: true customAction: properties: maskChar: type: string name: type: string percent: properties: value: type: number type: object regex: items: type: string type: array regexActions: items: properties: regex: type: string subgroup: format: int32 type: integer type: object type: array type: object shadow: type: boolean type: object type: array enabledFor: type: string x-kubernetes-int-or-string: true type: object envoyMetadata: additionalProperties: type: object x-kubernetes-preserve-unknown-fields: true type: object extauth: properties: configRef: properties: name: type: string namespace: type: string type: object customAuth: properties: contextExtensions: additionalProperties: type: string type: object name: type: string type: object disable: type: boolean type: object extensions: properties: configs: additionalProperties: type: object x-kubernetes-preserve-unknown-fields: true type: object type: object faults: properties: abort: properties: httpStatus: format: int32 type: integer percentage: type: number type: object delay: properties: fixedDelay: type: string percentage: type: number type: object type: object headerManipulation: properties: requestHeadersToAdd: items: properties: append: nullable: true type: boolean header: properties: key: type: string value: type: string type: object headerSecretRef: properties: name: type: string namespace: type: string type: object type: object type: array requestHeadersToRemove: items: type: string type: array responseHeadersToAdd: items: properties: append: nullable: true type: boolean header: properties: key: type: string value: type: string type: object type: object type: array responseHeadersToRemove: items: type: string type: array type: object hostRewrite: type: string jwt: properties: disable: type: boolean type: object jwtStaged: properties: afterExtAuth: properties: disable: type: boolean type: object beforeExtAuth: properties: disable: type: boolean type: object type: object lbHash: properties: hashPolicies: items: properties: cookie: properties: name: type: string path: type: string ttl: type: string type: object header: type: string sourceIp: type: boolean terminal: type: boolean type: object type: array type: object prefixRewrite: nullable: true type: string rateLimitConfigs: properties: refs: items: properties: name: type: string namespace: type: string type: object type: array type: object ratelimit: properties: includeVhRateLimits: type: boolean rateLimits: items: properties: actions: items: properties: destinationCluster: type: object genericKey: properties: descriptorValue: type: string type: object headerValueMatch: properties: descriptorValue: type: string expectMatch: nullable: true type: boolean headers: items: properties: exactMatch: type: string invertMatch: type: boolean name: type: string prefixMatch: type: string presentMatch: type: boolean rangeMatch: properties: end: format: int64 type: integer x-kubernetes-int-or-string: true start: format: int64 type: integer x-kubernetes-int-or-string: true type: object regexMatch: type: string suffixMatch: type: string type: object type: array type: object metadata: properties: defaultValue: type: string descriptorKey: type: string metadataKey: properties: key: type: string path: items: properties: key: type: string type: object type: array type: object source: type: string x-kubernetes-int-or-string: true type: object remoteAddress: type: object requestHeaders: properties: descriptorKey: type: string headerName: type: string type: object sourceCluster: type: object type: object type: array setActions: items: properties: destinationCluster: type: object genericKey: properties: descriptorValue: type: string type: object headerValueMatch: properties: descriptorValue: type: string expectMatch: nullable: true type: boolean headers: items: properties: exactMatch: type: string invertMatch: type: boolean name: type: string prefixMatch: type: string presentMatch: type: boolean rangeMatch: properties: end: format: int64 type: integer x-kubernetes-int-or-string: true start: format: int64 type: integer x-kubernetes-int-or-string: true type: object regexMatch: type: string suffixMatch: type: string type: object type: array type: object metadata: properties: defaultValue: type: string descriptorKey: type: string metadataKey: properties: key: type: string path: items: properties: key: type: string type: object type: array type: object source: type: string x-kubernetes-int-or-string: true type: object remoteAddress: type: object requestHeaders: properties: descriptorKey: type: string headerName: type: string type: object sourceCluster: type: object type: object type: array type: object type: array type: object ratelimitBasic: properties: anonymousLimits: properties: requestsPerUnit: format: int32 type: integer unit: type: string x-kubernetes-int-or-string: true type: object authorizedLimits: properties: requestsPerUnit: format: int32 type: integer unit: type: string x-kubernetes-int-or-string: true type: object type: object rbac: properties: disable: type: boolean policies: additionalProperties: properties: nestedClaimDelimiter: type: string permissions: properties: methods: items: type: string type: array pathPrefix: type: string type: object principals: items: properties: jwtPrincipal: properties: claims: additionalProperties: type: string type: object matcher: type: string x-kubernetes-int-or-string: true provider: type: string type: object type: object type: array type: object type: object type: object regexRewrite: properties: pattern: properties: googleRe2: properties: maxProgramSize: maximum: 4294967295 minimum: 0 nullable: true type: integer type: object regex: type: string type: object substitution: type: string type: object retries: properties: numRetries: format: int32 type: integer perTryTimeout: type: string retryOn: type: string type: object shadowing: properties: percentage: type: number upstream: properties: name: type: string namespace: type: string type: object type: object stagedTransformations: properties: early: properties: requestTransforms: items: properties: clearRouteCache: type: boolean matcher: properties: caseSensitive: nullable: true type: boolean exact: type: string headers: items: properties: invertMatch: type: boolean name: type: string regex: type: boolean value: type: string type: object type: array methods: items: type: string type: array prefix: type: string queryParameters: items: properties: name: type: string regex: type: boolean value: type: string type: object type: array regex: type: string type: object requestTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: array responseTransforms: items: properties: matchers: items: properties: invertMatch: type: boolean name: type: string regex: type: boolean value: type: string type: object type: array responseCodeDetails: type: string responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: array type: object inheritTransformation: type: boolean regular: properties: requestTransforms: items: properties: clearRouteCache: type: boolean matcher: properties: caseSensitive: nullable: true type: boolean exact: type: string headers: items: properties: invertMatch: type: boolean name: type: string regex: type: boolean value: type: string type: object type: array methods: items: type: string type: array prefix: type: string queryParameters: items: properties: name: type: string regex: type: boolean value: type: string type: object type: array regex: type: string type: object requestTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: array responseTransforms: items: properties: matchers: items: properties: invertMatch: type: boolean name: type: string regex: type: boolean value: type: string type: object type: array responseCodeDetails: type: string responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: array type: object type: object timeout: type: string tracing: properties: propagate: nullable: true type: boolean routeDescriptor: type: string tracePercentages: properties: clientSamplePercentage: nullable: true type: number overallSamplePercentage: nullable: true type: number randomSamplePercentage: nullable: true type: number type: object type: object transformations: properties: clearRouteCache: type: boolean requestTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object responseTransformation: properties: headerBodyTransform: type: object transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string regex: type: string subgroup: format: int32 type: integer type: object type: object headers: additionalProperties: properties: text: type: string type: object type: object headersToAppend: items: properties: key: type: string value: properties: text: type: string type: object type: object type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object upgrades: items: properties: websocket: properties: enabled: nullable: true type: boolean type: object type: object type: array waf: properties: auditLogging: properties: action: type: string x-kubernetes-int-or-string: true location: type: string x-kubernetes-int-or-string: true type: object coreRuleSet: properties: customSettingsFile: type: string customSettingsString: type: string type: object customInterventionMessage: type: string disabled: type: boolean requestHeadersOnly: type: boolean responseHeadersOnly: type: boolean ruleSets: items: properties: directory: type: string files: items: type: string type: array ruleStr: type: string type: object type: array type: object type: object type: object status: type: object x-kubernetes-preserve-unknown-fields: true type: object served: true storage: true status: acceptedNames: kind: RouteOption listKind: RouteOptionList plural: routeoptions shortNames: - rto - rtopts singular: routeoption conditions: - lastTransitionTime: "2023-07-17T03:57:32Z" message: no conflicts found reason: NoConflicts status: "True" type: NamesAccepted - lastTransitionTime: "2023-07-17T03:57:32Z" message: the initial names have been accepted reason: InitialNamesAccepted status: "True" type: Established storedVersions: - v1