# CRD validation schema generated by solo-kit. DO NOT EDIT. apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: upstreamgroups.gloo.solo.io spec: group: gloo.solo.io names: categories: - gloo-gateway kind: UpstreamGroup listKind: UpstreamGroupList plural: upstreamgroups shortNames: - ug - gug 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 unwrapAsAlb: type: boolean unwrapAsApiGateway: type: boolean wrapAsApiGateway: 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: jsonToProto: type: boolean key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array escapeCharacters: type: boolean extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string mode: type: string x-kubernetes-int-or-string: true regex: type: string replacementText: nullable: true type: string subgroup: maximum: 4294967295 minimum: 0 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 headersToRemove: items: type: string type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object mergeJsonKeys: properties: jsonKeys: additionalProperties: properties: overrideEmpty: type: boolean tmpl: properties: text: type: string type: object type: object type: object type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object spanTransformer: properties: name: properties: text: type: string type: object type: object type: object type: object type: object kube: properties: port: maximum: 4294967295 minimum: 0 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: maximum: 4294967295 minimum: 0 type: integer type: object runtimeKey: type: string type: object shadowEnabled: properties: defaultValue: properties: denominator: type: string x-kubernetes-int-or-string: true numerator: maximum: 4294967295 minimum: 0 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 connectMatcher: type: object 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: properties: addRequestMetadata: type: boolean type: object logRequestResponseInfo: type: boolean transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: jsonToProto: type: boolean key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array escapeCharacters: nullable: true type: boolean extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string mode: type: string x-kubernetes-int-or-string: true regex: type: string replacementText: nullable: true type: string subgroup: maximum: 4294967295 minimum: 0 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 headersToRemove: items: type: string type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object mergeJsonKeys: properties: jsonKeys: additionalProperties: properties: overrideEmpty: type: boolean tmpl: properties: text: type: string type: object type: object type: object type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object spanTransformer: properties: name: properties: text: type: string type: object type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object responseTransformation: properties: headerBodyTransform: properties: addRequestMetadata: type: boolean type: object logRequestResponseInfo: type: boolean transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: jsonToProto: type: boolean key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array escapeCharacters: nullable: true type: boolean extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string mode: type: string x-kubernetes-int-or-string: true regex: type: string replacementText: nullable: true type: string subgroup: maximum: 4294967295 minimum: 0 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 headersToRemove: items: type: string type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object mergeJsonKeys: properties: jsonKeys: additionalProperties: properties: overrideEmpty: type: boolean tmpl: properties: text: type: string type: object type: object type: object type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object spanTransformer: properties: name: properties: text: type: string type: object 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: properties: addRequestMetadata: type: boolean type: object logRequestResponseInfo: type: boolean transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: jsonToProto: type: boolean key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array escapeCharacters: nullable: true type: boolean extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string mode: type: string x-kubernetes-int-or-string: true regex: type: string replacementText: nullable: true type: string subgroup: maximum: 4294967295 minimum: 0 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 headersToRemove: items: type: string type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object mergeJsonKeys: properties: jsonKeys: additionalProperties: properties: overrideEmpty: type: boolean tmpl: properties: text: type: string type: object type: object type: object type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object spanTransformer: properties: name: properties: text: type: string type: object 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 escapeCharacters: nullable: true type: boolean inheritTransformation: type: boolean logRequestResponseInfo: nullable: true type: boolean postRouting: properties: requestTransforms: items: properties: clearRouteCache: type: boolean matcher: properties: caseSensitive: nullable: true type: boolean connectMatcher: type: object 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: properties: addRequestMetadata: type: boolean type: object logRequestResponseInfo: type: boolean transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: jsonToProto: type: boolean key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array escapeCharacters: nullable: true type: boolean extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string mode: type: string x-kubernetes-int-or-string: true regex: type: string replacementText: nullable: true type: string subgroup: maximum: 4294967295 minimum: 0 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 headersToRemove: items: type: string type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object mergeJsonKeys: properties: jsonKeys: additionalProperties: properties: overrideEmpty: type: boolean tmpl: properties: text: type: string type: object type: object type: object type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object spanTransformer: properties: name: properties: text: type: string type: object type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object responseTransformation: properties: headerBodyTransform: properties: addRequestMetadata: type: boolean type: object logRequestResponseInfo: type: boolean transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: jsonToProto: type: boolean key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array escapeCharacters: nullable: true type: boolean extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string mode: type: string x-kubernetes-int-or-string: true regex: type: string replacementText: nullable: true type: string subgroup: maximum: 4294967295 minimum: 0 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 headersToRemove: items: type: string type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object mergeJsonKeys: properties: jsonKeys: additionalProperties: properties: overrideEmpty: type: boolean tmpl: properties: text: type: string type: object type: object type: object type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object spanTransformer: properties: name: properties: text: type: string type: object 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: properties: addRequestMetadata: type: boolean type: object logRequestResponseInfo: type: boolean transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: jsonToProto: type: boolean key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array escapeCharacters: nullable: true type: boolean extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string mode: type: string x-kubernetes-int-or-string: true regex: type: string replacementText: nullable: true type: string subgroup: maximum: 4294967295 minimum: 0 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 headersToRemove: items: type: string type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object mergeJsonKeys: properties: jsonKeys: additionalProperties: properties: overrideEmpty: type: boolean tmpl: properties: text: type: string type: object type: object type: object type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object spanTransformer: properties: name: properties: text: type: string type: object 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 regular: properties: requestTransforms: items: properties: clearRouteCache: type: boolean matcher: properties: caseSensitive: nullable: true type: boolean connectMatcher: type: object 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: properties: addRequestMetadata: type: boolean type: object logRequestResponseInfo: type: boolean transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: jsonToProto: type: boolean key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array escapeCharacters: nullable: true type: boolean extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string mode: type: string x-kubernetes-int-or-string: true regex: type: string replacementText: nullable: true type: string subgroup: maximum: 4294967295 minimum: 0 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 headersToRemove: items: type: string type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object mergeJsonKeys: properties: jsonKeys: additionalProperties: properties: overrideEmpty: type: boolean tmpl: properties: text: type: string type: object type: object type: object type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object spanTransformer: properties: name: properties: text: type: string type: object type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object responseTransformation: properties: headerBodyTransform: properties: addRequestMetadata: type: boolean type: object logRequestResponseInfo: type: boolean transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: jsonToProto: type: boolean key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array escapeCharacters: nullable: true type: boolean extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string mode: type: string x-kubernetes-int-or-string: true regex: type: string replacementText: nullable: true type: string subgroup: maximum: 4294967295 minimum: 0 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 headersToRemove: items: type: string type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object mergeJsonKeys: properties: jsonKeys: additionalProperties: properties: overrideEmpty: type: boolean tmpl: properties: text: type: string type: object type: object type: object type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object spanTransformer: properties: name: properties: text: type: string type: object 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: properties: addRequestMetadata: type: boolean type: object logRequestResponseInfo: type: boolean transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: jsonToProto: type: boolean key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array escapeCharacters: nullable: true type: boolean extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string mode: type: string x-kubernetes-int-or-string: true regex: type: string replacementText: nullable: true type: string subgroup: maximum: 4294967295 minimum: 0 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 headersToRemove: items: type: string type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object mergeJsonKeys: properties: jsonKeys: additionalProperties: properties: overrideEmpty: type: boolean tmpl: properties: text: type: string type: object type: object type: object type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object spanTransformer: properties: name: properties: text: type: string type: object 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: properties: addRequestMetadata: type: boolean type: object logRequestResponseInfo: type: boolean transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: jsonToProto: type: boolean key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array escapeCharacters: nullable: true type: boolean extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string mode: type: string x-kubernetes-int-or-string: true regex: type: string replacementText: nullable: true type: string subgroup: maximum: 4294967295 minimum: 0 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 headersToRemove: items: type: string type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object mergeJsonKeys: properties: jsonKeys: additionalProperties: properties: overrideEmpty: type: boolean tmpl: properties: text: type: string type: object type: object type: object type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object spanTransformer: properties: name: properties: text: type: string type: object type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object responseTransformation: properties: headerBodyTransform: properties: addRequestMetadata: type: boolean type: object logRequestResponseInfo: type: boolean transformationTemplate: properties: advancedTemplates: type: boolean body: properties: text: type: string type: object dynamicMetadataValues: items: properties: jsonToProto: type: boolean key: type: string metadataNamespace: type: string value: properties: text: type: string type: object type: object type: array escapeCharacters: nullable: true type: boolean extractors: additionalProperties: properties: body: maxProperties: 0 type: object header: type: string mode: type: string x-kubernetes-int-or-string: true regex: type: string replacementText: nullable: true type: string subgroup: maximum: 4294967295 minimum: 0 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 headersToRemove: items: type: string type: array ignoreErrorOnParse: type: boolean mergeExtractorsToBody: type: object mergeJsonKeys: properties: jsonKeys: additionalProperties: properties: overrideEmpty: type: boolean tmpl: properties: text: type: string type: object type: object type: object type: object parseBodyBehavior: type: string x-kubernetes-int-or-string: true passthrough: type: object spanTransformer: properties: name: properties: text: type: string type: object type: object type: object xsltTransformation: properties: nonXmlTransform: type: boolean setContentType: type: string xslt: type: string type: object type: object type: object type: object weight: maximum: 4294967295 minimum: 0 nullable: true 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: default: {} properties: statuses: default: {} type: object x-kubernetes-preserve-unknown-fields: true type: object x-kubernetes-preserve-unknown-fields: true type: object served: true storage: true status: acceptedNames: kind: "" plural: "" conditions: [] storedVersions: []