{
  "properties": {
    "spec": {
      "properties": {
        "aws": {
          "properties": {
            "awsAccountId": {
              "type": "string"
            },
            "destinationOverrides": {
              "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",
              "additionalProperties": false
            },
            "disableRoleChaining": {
              "type": "boolean"
            },
            "lambdaFunctions": {
              "items": {
                "properties": {
                  "lambdaFunctionName": {
                    "type": "string"
                  },
                  "logicalName": {
                    "type": "string"
                  },
                  "qualifier": {
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "region": {
              "type": "string"
            },
            "roleArn": {
              "type": "string"
            },
            "secretRef": {
              "properties": {
                "name": {
                  "type": "string"
                },
                "namespace": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "awsEc2": {
          "properties": {
            "filters": {
              "items": {
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "kvPair": {
                    "properties": {
                      "key": {
                        "type": "string"
                      },
                      "value": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "port": {
              "format": "int32",
              "type": "integer"
            },
            "publicIp": {
              "type": "boolean"
            },
            "region": {
              "type": "string"
            },
            "roleArn": {
              "type": "string"
            },
            "secretRef": {
              "properties": {
                "name": {
                  "type": "string"
                },
                "namespace": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "azure": {
          "properties": {
            "functionAppName": {
              "type": "string"
            },
            "functions": {
              "items": {
                "properties": {
                  "authLevel": {
                    "type": "string",
                    "x-kubernetes-int-or-string": true
                  },
                  "functionName": {
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "secretRef": {
              "properties": {
                "name": {
                  "type": "string"
                },
                "namespace": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "circuitBreakers": {
          "properties": {
            "maxConnections": {
              "maximum": 4294967295,
              "minimum": 0,
              "nullable": true,
              "type": "integer"
            },
            "maxPendingRequests": {
              "maximum": 4294967295,
              "minimum": 0,
              "nullable": true,
              "type": "integer"
            },
            "maxRequests": {
              "maximum": 4294967295,
              "minimum": 0,
              "nullable": true,
              "type": "integer"
            },
            "maxRetries": {
              "maximum": 4294967295,
              "minimum": 0,
              "nullable": true,
              "type": "integer"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "connectionConfig": {
          "properties": {
            "commonHttpProtocolOptions": {
              "properties": {
                "headersWithUnderscoresAction": {
                  "type": "string",
                  "x-kubernetes-int-or-string": true
                },
                "idleTimeout": {
                  "type": "string"
                },
                "maxHeadersCount": {
                  "format": "int32",
                  "type": "integer"
                },
                "maxStreamDuration": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "connectTimeout": {
              "type": "string"
            },
            "http1ProtocolOptions": {
              "properties": {
                "enableTrailers": {
                  "type": "boolean"
                },
                "overrideStreamErrorOnInvalidHttpMessage": {
                  "nullable": true,
                  "type": "boolean"
                },
                "preserveCaseHeaderKeyFormat": {
                  "type": "boolean"
                },
                "properCaseHeaderKeyFormat": {
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "maxRequestsPerConnection": {
              "format": "int32",
              "type": "integer"
            },
            "perConnectionBufferLimitBytes": {
              "maximum": 4294967295,
              "minimum": 0,
              "nullable": true,
              "type": "integer"
            },
            "tcpKeepalive": {
              "properties": {
                "keepaliveInterval": {
                  "type": "string"
                },
                "keepaliveProbes": {
                  "format": "int32",
                  "type": "integer"
                },
                "keepaliveTime": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "consul": {
          "properties": {
            "connectEnabled": {
              "type": "boolean"
            },
            "consistencyMode": {
              "type": "string",
              "x-kubernetes-int-or-string": true
            },
            "dataCenters": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "instanceBlacklistTags": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "instanceTags": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "queryOptions": {
              "properties": {
                "useCache": {
                  "nullable": true,
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "serviceName": {
              "type": "string"
            },
            "serviceSpec": {
              "properties": {
                "grpc": {
                  "properties": {
                    "descriptors": {
                      "format": "byte",
                      "type": "string"
                    },
                    "grpcServices": {
                      "items": {
                        "properties": {
                          "functionNames": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "packageName": {
                            "type": "string"
                          },
                          "serviceName": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "rest": {
                  "properties": {
                    "swaggerInfo": {
                      "properties": {
                        "inline": {
                          "type": "string"
                        },
                        "url": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "transformations": {
                      "additionalProperties": {
                        "properties": {
                          "advancedTemplates": {
                            "type": "boolean"
                          },
                          "body": {
                            "properties": {
                              "text": {
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "dynamicMetadataValues": {
                            "items": {
                              "properties": {
                                "key": {
                                  "type": "string"
                                },
                                "metadataNamespace": {
                                  "type": "string"
                                },
                                "value": {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    }
                                  },
                                  "type": "object",
                                  "additionalProperties": false
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "array"
                          },
                          "extractors": {
                            "additionalProperties": {
                              "properties": {
                                "body": {
                                  "maxProperties": 0,
                                  "type": "object"
                                },
                                "header": {
                                  "type": "string"
                                },
                                "regex": {
                                  "type": "string"
                                },
                                "subgroup": {
                                  "format": "int32",
                                  "type": "integer"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "object"
                          },
                          "headers": {
                            "additionalProperties": {
                              "properties": {
                                "text": {
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "object"
                          },
                          "headersToAppend": {
                            "items": {
                              "properties": {
                                "key": {
                                  "type": "string"
                                },
                                "value": {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    }
                                  },
                                  "type": "object",
                                  "additionalProperties": false
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "array"
                          },
                          "headersToRemove": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "ignoreErrorOnParse": {
                            "type": "boolean"
                          },
                          "mergeExtractorsToBody": {
                            "type": "object"
                          },
                          "parseBodyBehavior": {
                            "type": "string",
                            "x-kubernetes-int-or-string": true
                          },
                          "passthrough": {
                            "type": "object"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "object"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "serviceTags": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "subsetTags": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "discoveryMetadata": {
          "properties": {
            "labels": {
              "additionalProperties": {
                "type": "string"
              },
              "type": "object"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "failover": {
          "properties": {
            "policy": {
              "properties": {
                "overprovisioningFactor": {
                  "maximum": 4294967295,
                  "minimum": 0,
                  "nullable": true,
                  "type": "integer"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "prioritizedLocalities": {
              "items": {
                "properties": {
                  "localityEndpoints": {
                    "items": {
                      "properties": {
                        "lbEndpoints": {
                          "items": {
                            "properties": {
                              "address": {
                                "type": "string"
                              },
                              "healthCheckConfig": {
                                "properties": {
                                  "hostname": {
                                    "type": "string"
                                  },
                                  "method": {
                                    "type": "string"
                                  },
                                  "path": {
                                    "type": "string"
                                  },
                                  "portValue": {
                                    "format": "int32",
                                    "type": "integer"
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              },
                              "loadBalancingWeight": {
                                "maximum": 4294967295,
                                "minimum": 0,
                                "nullable": true,
                                "type": "integer"
                              },
                              "port": {
                                "format": "int32",
                                "type": "integer"
                              },
                              "upstreamSslConfig": {
                                "properties": {
                                  "allowRenegotiation": {
                                    "nullable": true,
                                    "type": "boolean"
                                  },
                                  "alpnProtocols": {
                                    "items": {
                                      "type": "string"
                                    },
                                    "type": "array"
                                  },
                                  "parameters": {
                                    "properties": {
                                      "cipherSuites": {
                                        "items": {
                                          "type": "string"
                                        },
                                        "type": "array"
                                      },
                                      "ecdhCurves": {
                                        "items": {
                                          "type": "string"
                                        },
                                        "type": "array"
                                      },
                                      "maximumProtocolVersion": {
                                        "type": "string",
                                        "x-kubernetes-int-or-string": true
                                      },
                                      "minimumProtocolVersion": {
                                        "type": "string",
                                        "x-kubernetes-int-or-string": true
                                      }
                                    },
                                    "type": "object",
                                    "additionalProperties": false
                                  },
                                  "sds": {
                                    "properties": {
                                      "callCredentials": {
                                        "properties": {
                                          "fileCredentialSource": {
                                            "properties": {
                                              "header": {
                                                "type": "string"
                                              },
                                              "tokenFileName": {
                                                "type": "string"
                                              }
                                            },
                                            "type": "object",
                                            "additionalProperties": false
                                          }
                                        },
                                        "type": "object",
                                        "additionalProperties": false
                                      },
                                      "certificatesSecretName": {
                                        "type": "string"
                                      },
                                      "clusterName": {
                                        "type": "string"
                                      },
                                      "targetUri": {
                                        "type": "string"
                                      },
                                      "validationContextName": {
                                        "type": "string"
                                      }
                                    },
                                    "type": "object",
                                    "additionalProperties": false
                                  },
                                  "secretRef": {
                                    "properties": {
                                      "name": {
                                        "type": "string"
                                      },
                                      "namespace": {
                                        "type": "string"
                                      }
                                    },
                                    "type": "object",
                                    "additionalProperties": false
                                  },
                                  "sni": {
                                    "type": "string"
                                  },
                                  "sslFiles": {
                                    "properties": {
                                      "rootCa": {
                                        "type": "string"
                                      },
                                      "tlsCert": {
                                        "type": "string"
                                      },
                                      "tlsKey": {
                                        "type": "string"
                                      }
                                    },
                                    "type": "object",
                                    "additionalProperties": false
                                  },
                                  "verifySubjectAltName": {
                                    "items": {
                                      "type": "string"
                                    },
                                    "type": "array"
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "type": "array"
                        },
                        "loadBalancingWeight": {
                          "maximum": 4294967295,
                          "minimum": 0,
                          "nullable": true,
                          "type": "integer"
                        },
                        "locality": {
                          "properties": {
                            "region": {
                              "type": "string"
                            },
                            "subZone": {
                              "type": "string"
                            },
                            "zone": {
                              "type": "string"
                            }
                          },
                          "type": "object",
                          "additionalProperties": false
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "healthChecks": {
          "items": {
            "properties": {
              "alwaysLogHealthCheckFailures": {
                "type": "boolean"
              },
              "customHealthCheck": {
                "properties": {
                  "config": {
                    "type": "object",
                    "x-kubernetes-preserve-unknown-fields": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "typedConfig": {
                    "type": "object",
                    "x-kubernetes-preserve-unknown-fields": true
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "eventLogPath": {
                "type": "string"
              },
              "grpcHealthCheck": {
                "properties": {
                  "authority": {
                    "type": "string"
                  },
                  "serviceName": {
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "healthyEdgeInterval": {
                "type": "string"
              },
              "healthyThreshold": {
                "maximum": 4294967295,
                "minimum": 0,
                "nullable": true,
                "type": "integer"
              },
              "httpHealthCheck": {
                "properties": {
                  "expectedStatuses": {
                    "items": {
                      "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",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "host": {
                    "type": "string"
                  },
                  "path": {
                    "type": "string"
                  },
                  "requestHeadersToAdd": {
                    "items": {
                      "properties": {
                        "append": {
                          "nullable": true,
                          "type": "boolean"
                        },
                        "header": {
                          "properties": {
                            "key": {
                              "type": "string"
                            },
                            "value": {
                              "type": "string"
                            }
                          },
                          "type": "object",
                          "additionalProperties": false
                        },
                        "headerSecretRef": {
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "namespace": {
                              "type": "string"
                            }
                          },
                          "type": "object",
                          "additionalProperties": false
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "requestHeadersToRemove": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "responseAssertions": {
                    "properties": {
                      "noMatchHealth": {
                        "type": "string",
                        "x-kubernetes-int-or-string": true
                      },
                      "responseMatchers": {
                        "items": {
                          "properties": {
                            "matchHealth": {
                              "type": "string",
                              "x-kubernetes-int-or-string": true
                            },
                            "responseMatch": {
                              "properties": {
                                "body": {
                                  "maxProperties": 0,
                                  "type": "object"
                                },
                                "header": {
                                  "type": "string"
                                },
                                "ignoreErrorOnParse": {
                                  "type": "boolean"
                                },
                                "jsonKey": {
                                  "properties": {
                                    "path": {
                                      "items": {
                                        "properties": {
                                          "key": {
                                            "type": "string"
                                          }
                                        },
                                        "type": "object",
                                        "additionalProperties": false
                                      },
                                      "type": "array"
                                    }
                                  },
                                  "type": "object",
                                  "additionalProperties": false
                                },
                                "regex": {
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            }
                          },
                          "type": "object",
                          "additionalProperties": false
                        },
                        "type": "array"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "serviceName": {
                    "type": "string"
                  },
                  "useHttp2": {
                    "type": "boolean"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "initialJitter": {
                "type": "string"
              },
              "interval": {
                "type": "string"
              },
              "intervalJitter": {
                "type": "string"
              },
              "intervalJitterPercent": {
                "format": "int32",
                "type": "integer"
              },
              "noTrafficInterval": {
                "type": "string"
              },
              "reuseConnection": {
                "nullable": true,
                "type": "boolean"
              },
              "tcpHealthCheck": {
                "properties": {
                  "receive": {
                    "items": {
                      "properties": {
                        "text": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "send": {
                    "properties": {
                      "text": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "timeout": {
                "type": "string"
              },
              "unhealthyEdgeInterval": {
                "type": "string"
              },
              "unhealthyInterval": {
                "type": "string"
              },
              "unhealthyThreshold": {
                "maximum": 4294967295,
                "minimum": 0,
                "nullable": true,
                "type": "integer"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "httpConnectHeaders": {
          "items": {
            "properties": {
              "key": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "httpConnectSslConfig": {
          "properties": {
            "allowRenegotiation": {
              "nullable": true,
              "type": "boolean"
            },
            "alpnProtocols": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "parameters": {
              "properties": {
                "cipherSuites": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "ecdhCurves": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "maximumProtocolVersion": {
                  "type": "string",
                  "x-kubernetes-int-or-string": true
                },
                "minimumProtocolVersion": {
                  "type": "string",
                  "x-kubernetes-int-or-string": true
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "sds": {
              "properties": {
                "callCredentials": {
                  "properties": {
                    "fileCredentialSource": {
                      "properties": {
                        "header": {
                          "type": "string"
                        },
                        "tokenFileName": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "certificatesSecretName": {
                  "type": "string"
                },
                "clusterName": {
                  "type": "string"
                },
                "targetUri": {
                  "type": "string"
                },
                "validationContextName": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "secretRef": {
              "properties": {
                "name": {
                  "type": "string"
                },
                "namespace": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "sni": {
              "type": "string"
            },
            "sslFiles": {
              "properties": {
                "rootCa": {
                  "type": "string"
                },
                "tlsCert": {
                  "type": "string"
                },
                "tlsKey": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "verifySubjectAltName": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "httpProxyHostname": {
          "nullable": true,
          "type": "string"
        },
        "ignoreHealthOnHostRemoval": {
          "nullable": true,
          "type": "boolean"
        },
        "initialConnectionWindowSize": {
          "maximum": 4294967295,
          "minimum": 0,
          "nullable": true,
          "type": "integer"
        },
        "initialStreamWindowSize": {
          "maximum": 4294967295,
          "minimum": 0,
          "nullable": true,
          "type": "integer"
        },
        "kube": {
          "properties": {
            "selector": {
              "additionalProperties": {
                "type": "string"
              },
              "type": "object"
            },
            "serviceName": {
              "type": "string"
            },
            "serviceNamespace": {
              "type": "string"
            },
            "servicePort": {
              "format": "int32",
              "type": "integer"
            },
            "serviceSpec": {
              "properties": {
                "grpc": {
                  "properties": {
                    "descriptors": {
                      "format": "byte",
                      "type": "string"
                    },
                    "grpcServices": {
                      "items": {
                        "properties": {
                          "functionNames": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "packageName": {
                            "type": "string"
                          },
                          "serviceName": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "rest": {
                  "properties": {
                    "swaggerInfo": {
                      "properties": {
                        "inline": {
                          "type": "string"
                        },
                        "url": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "transformations": {
                      "additionalProperties": {
                        "properties": {
                          "advancedTemplates": {
                            "type": "boolean"
                          },
                          "body": {
                            "properties": {
                              "text": {
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "dynamicMetadataValues": {
                            "items": {
                              "properties": {
                                "key": {
                                  "type": "string"
                                },
                                "metadataNamespace": {
                                  "type": "string"
                                },
                                "value": {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    }
                                  },
                                  "type": "object",
                                  "additionalProperties": false
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "array"
                          },
                          "extractors": {
                            "additionalProperties": {
                              "properties": {
                                "body": {
                                  "maxProperties": 0,
                                  "type": "object"
                                },
                                "header": {
                                  "type": "string"
                                },
                                "regex": {
                                  "type": "string"
                                },
                                "subgroup": {
                                  "format": "int32",
                                  "type": "integer"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "object"
                          },
                          "headers": {
                            "additionalProperties": {
                              "properties": {
                                "text": {
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "object"
                          },
                          "headersToAppend": {
                            "items": {
                              "properties": {
                                "key": {
                                  "type": "string"
                                },
                                "value": {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    }
                                  },
                                  "type": "object",
                                  "additionalProperties": false
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "array"
                          },
                          "headersToRemove": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "ignoreErrorOnParse": {
                            "type": "boolean"
                          },
                          "mergeExtractorsToBody": {
                            "type": "object"
                          },
                          "parseBodyBehavior": {
                            "type": "string",
                            "x-kubernetes-int-or-string": true
                          },
                          "passthrough": {
                            "type": "object"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "object"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "subsetSpec": {
              "properties": {
                "defaultSubset": {
                  "properties": {
                    "values": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "type": "object"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "fallbackPolicy": {
                  "type": "string",
                  "x-kubernetes-int-or-string": true
                },
                "selectors": {
                  "items": {
                    "properties": {
                      "keys": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "singleHostPerSubset": {
                        "type": "boolean"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "loadBalancerConfig": {
          "properties": {
            "healthyPanicThreshold": {
              "nullable": true,
              "type": "number"
            },
            "leastRequest": {
              "properties": {
                "choiceCount": {
                  "format": "int32",
                  "type": "integer"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "localityWeightedLbConfig": {
              "maxProperties": 0,
              "type": "object"
            },
            "maglev": {
              "type": "object"
            },
            "random": {
              "type": "object"
            },
            "ringHash": {
              "properties": {
                "ringHashConfig": {
                  "properties": {
                    "maximumRingSize": {
                      "format": "int64",
                      "type": "integer",
                      "x-kubernetes-int-or-string": true
                    },
                    "minimumRingSize": {
                      "format": "int64",
                      "type": "integer",
                      "x-kubernetes-int-or-string": true
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "roundRobin": {
              "type": "object"
            },
            "updateMergeWindow": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "maxConcurrentStreams": {
          "maximum": 4294967295,
          "minimum": 0,
          "nullable": true,
          "type": "integer"
        },
        "namespacedStatuses": {
          "properties": {
            "statuses": {
              "additionalProperties": {
                "type": "object",
                "x-kubernetes-preserve-unknown-fields": true
              },
              "type": "object"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "outlierDetection": {
          "properties": {
            "baseEjectionTime": {
              "type": "string"
            },
            "consecutive5xx": {
              "maximum": 4294967295,
              "minimum": 0,
              "nullable": true,
              "type": "integer"
            },
            "consecutiveGatewayFailure": {
              "maximum": 4294967295,
              "minimum": 0,
              "nullable": true,
              "type": "integer"
            },
            "consecutiveLocalOriginFailure": {
              "maximum": 4294967295,
              "minimum": 0,
              "nullable": true,
              "type": "integer"
            },
            "enforcingConsecutive5xx": {
              "maximum": 4294967295,
              "minimum": 0,
              "nullable": true,
              "type": "integer"
            },
            "enforcingConsecutiveGatewayFailure": {
              "maximum": 4294967295,
              "minimum": 0,
              "nullable": true,
              "type": "integer"
            },
            "enforcingConsecutiveLocalOriginFailure": {
              "maximum": 4294967295,
              "minimum": 0,
              "nullable": true,
              "type": "integer"
            },
            "enforcingLocalOriginSuccessRate": {
              "maximum": 4294967295,
              "minimum": 0,
              "nullable": true,
              "type": "integer"
            },
            "enforcingSuccessRate": {
              "maximum": 4294967295,
              "minimum": 0,
              "nullable": true,
              "type": "integer"
            },
            "interval": {
              "type": "string"
            },
            "maxEjectionPercent": {
              "maximum": 4294967295,
              "minimum": 0,
              "nullable": true,
              "type": "integer"
            },
            "splitExternalLocalOriginErrors": {
              "type": "boolean"
            },
            "successRateMinimumHosts": {
              "maximum": 4294967295,
              "minimum": 0,
              "nullable": true,
              "type": "integer"
            },
            "successRateRequestVolume": {
              "maximum": 4294967295,
              "minimum": 0,
              "nullable": true,
              "type": "integer"
            },
            "successRateStdevFactor": {
              "maximum": 4294967295,
              "minimum": 0,
              "nullable": true,
              "type": "integer"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "overrideStreamErrorOnInvalidHttpMessage": {
          "nullable": true,
          "type": "boolean"
        },
        "pipe": {
          "properties": {
            "path": {
              "type": "string"
            },
            "serviceSpec": {
              "properties": {
                "grpc": {
                  "properties": {
                    "descriptors": {
                      "format": "byte",
                      "type": "string"
                    },
                    "grpcServices": {
                      "items": {
                        "properties": {
                          "functionNames": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "packageName": {
                            "type": "string"
                          },
                          "serviceName": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "rest": {
                  "properties": {
                    "swaggerInfo": {
                      "properties": {
                        "inline": {
                          "type": "string"
                        },
                        "url": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "transformations": {
                      "additionalProperties": {
                        "properties": {
                          "advancedTemplates": {
                            "type": "boolean"
                          },
                          "body": {
                            "properties": {
                              "text": {
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "dynamicMetadataValues": {
                            "items": {
                              "properties": {
                                "key": {
                                  "type": "string"
                                },
                                "metadataNamespace": {
                                  "type": "string"
                                },
                                "value": {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    }
                                  },
                                  "type": "object",
                                  "additionalProperties": false
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "array"
                          },
                          "extractors": {
                            "additionalProperties": {
                              "properties": {
                                "body": {
                                  "maxProperties": 0,
                                  "type": "object"
                                },
                                "header": {
                                  "type": "string"
                                },
                                "regex": {
                                  "type": "string"
                                },
                                "subgroup": {
                                  "format": "int32",
                                  "type": "integer"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "object"
                          },
                          "headers": {
                            "additionalProperties": {
                              "properties": {
                                "text": {
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "object"
                          },
                          "headersToAppend": {
                            "items": {
                              "properties": {
                                "key": {
                                  "type": "string"
                                },
                                "value": {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    }
                                  },
                                  "type": "object",
                                  "additionalProperties": false
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "array"
                          },
                          "headersToRemove": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "ignoreErrorOnParse": {
                            "type": "boolean"
                          },
                          "mergeExtractorsToBody": {
                            "type": "object"
                          },
                          "parseBodyBehavior": {
                            "type": "string",
                            "x-kubernetes-int-or-string": true
                          },
                          "passthrough": {
                            "type": "object"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "object"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "protocolSelection": {
          "type": "string",
          "x-kubernetes-int-or-string": true
        },
        "sslConfig": {
          "properties": {
            "allowRenegotiation": {
              "nullable": true,
              "type": "boolean"
            },
            "alpnProtocols": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "parameters": {
              "properties": {
                "cipherSuites": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "ecdhCurves": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "maximumProtocolVersion": {
                  "type": "string",
                  "x-kubernetes-int-or-string": true
                },
                "minimumProtocolVersion": {
                  "type": "string",
                  "x-kubernetes-int-or-string": true
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "sds": {
              "properties": {
                "callCredentials": {
                  "properties": {
                    "fileCredentialSource": {
                      "properties": {
                        "header": {
                          "type": "string"
                        },
                        "tokenFileName": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "certificatesSecretName": {
                  "type": "string"
                },
                "clusterName": {
                  "type": "string"
                },
                "targetUri": {
                  "type": "string"
                },
                "validationContextName": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "secretRef": {
              "properties": {
                "name": {
                  "type": "string"
                },
                "namespace": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "sni": {
              "type": "string"
            },
            "sslFiles": {
              "properties": {
                "rootCa": {
                  "type": "string"
                },
                "tlsCert": {
                  "type": "string"
                },
                "tlsKey": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "verifySubjectAltName": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "static": {
          "properties": {
            "autoSniRewrite": {
              "nullable": true,
              "type": "boolean"
            },
            "hosts": {
              "items": {
                "properties": {
                  "addr": {
                    "type": "string"
                  },
                  "healthCheckConfig": {
                    "properties": {
                      "method": {
                        "type": "string"
                      },
                      "path": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "loadBalancingWeight": {
                    "maximum": 4294967295,
                    "minimum": 0,
                    "nullable": true,
                    "type": "integer"
                  },
                  "port": {
                    "format": "int32",
                    "type": "integer"
                  },
                  "sniAddr": {
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "serviceSpec": {
              "properties": {
                "grpc": {
                  "properties": {
                    "descriptors": {
                      "format": "byte",
                      "type": "string"
                    },
                    "grpcServices": {
                      "items": {
                        "properties": {
                          "functionNames": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "packageName": {
                            "type": "string"
                          },
                          "serviceName": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "rest": {
                  "properties": {
                    "swaggerInfo": {
                      "properties": {
                        "inline": {
                          "type": "string"
                        },
                        "url": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "transformations": {
                      "additionalProperties": {
                        "properties": {
                          "advancedTemplates": {
                            "type": "boolean"
                          },
                          "body": {
                            "properties": {
                              "text": {
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "dynamicMetadataValues": {
                            "items": {
                              "properties": {
                                "key": {
                                  "type": "string"
                                },
                                "metadataNamespace": {
                                  "type": "string"
                                },
                                "value": {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    }
                                  },
                                  "type": "object",
                                  "additionalProperties": false
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "array"
                          },
                          "extractors": {
                            "additionalProperties": {
                              "properties": {
                                "body": {
                                  "maxProperties": 0,
                                  "type": "object"
                                },
                                "header": {
                                  "type": "string"
                                },
                                "regex": {
                                  "type": "string"
                                },
                                "subgroup": {
                                  "format": "int32",
                                  "type": "integer"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "object"
                          },
                          "headers": {
                            "additionalProperties": {
                              "properties": {
                                "text": {
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "object"
                          },
                          "headersToAppend": {
                            "items": {
                              "properties": {
                                "key": {
                                  "type": "string"
                                },
                                "value": {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    }
                                  },
                                  "type": "object",
                                  "additionalProperties": false
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "array"
                          },
                          "headersToRemove": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "ignoreErrorOnParse": {
                            "type": "boolean"
                          },
                          "mergeExtractorsToBody": {
                            "type": "object"
                          },
                          "parseBodyBehavior": {
                            "type": "string",
                            "x-kubernetes-int-or-string": true
                          },
                          "passthrough": {
                            "type": "object"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "object"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "useTls": {
              "type": "boolean"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "useHttp2": {
          "nullable": true,
          "type": "boolean"
        }
      },
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "default": {},
      "properties": {
        "statuses": {
          "default": {},
          "type": "object",
          "x-kubernetes-preserve-unknown-fields": true
        }
      },
      "type": "object",
      "x-kubernetes-preserve-unknown-fields": true,
      "additionalProperties": false
    }
  },
  "type": "object"
}
