From 531a945d0f286292964b9a76e25b3185c65d8574 Mon Sep 17 00:00:00 2001 From: MUzairS15 Date: Wed, 19 Jul 2023 15:47:04 +0000 Subject: [PATCH] [Patterns] Pattern components generated from latest Istio manifests Signed-off-by: l5io --- .../authorizationpolicy.Istio.meshery.layer5.io_meshmodel.json | 2 +- .../destinationrule.Istio.meshery.layer5.io_meshmodel.json | 2 +- .../envoyfilter.Istio.meshery.layer5.io_meshmodel.json | 2 +- .../gateway.Istio.meshery.layer5.io_meshmodel.json | 2 +- .../peerauthentication.Istio.meshery.layer5.io_meshmodel.json | 2 +- .../proxyconfig.Istio.meshery.layer5.io_meshmodel.json | 2 +- ...requestauthentication.Istio.meshery.layer5.io_meshmodel.json | 2 +- .../serviceentry.Istio.meshery.layer5.io_meshmodel.json | 2 +- .../sidecar.Istio.meshery.layer5.io_meshmodel.json | 2 +- .../telemetry.Istio.meshery.layer5.io_meshmodel.json | 2 +- .../virtualservice.Istio.meshery.layer5.io_meshmodel.json | 2 +- .../wasmplugin.Istio.meshery.layer5.io_meshmodel.json | 2 +- .../workloadentry.Istio.meshery.layer5.io_meshmodel.json | 2 +- .../workloadgroup.Istio.meshery.layer5.io_meshmodel.json | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/templates/meshmodel/components/1.19.0-alpha.1/authorizationpolicy.Istio.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/1.19.0-alpha.1/authorizationpolicy.Istio.meshery.layer5.io_meshmodel.json index 4dc44ec64..2723c2390 100644 --- a/templates/meshmodel/components/1.19.0-alpha.1/authorizationpolicy.Istio.meshery.layer5.io_meshmodel.json +++ b/templates/meshmodel/components/1.19.0-alpha.1/authorizationpolicy.Istio.meshery.layer5.io_meshmodel.json @@ -1 +1 @@ -{"kind":"AuthorizationPolicy","apiVersion":"security.istio.io/v1","displayName":"Authorization Policy","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"description\": \"Configuration for access control on workloads. See more details at: https://istio.io/docs/reference/config/security/authorization-policy.html\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"provider\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"provider\"\n ]\n }\n ],\n \"properties\": {\n \"action\": {\n \"description\": \"Optional.\",\n \"enum\": [\n \"ALLOW\",\n \"DENY\",\n \"AUDIT\",\n \"CUSTOM\"\n ],\n \"type\": \"string\"\n },\n \"provider\": {\n \"description\": \"Specifies detailed configuration of the CUSTOM action.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Specifies the name of the extension provider.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"rules\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"source\": {\n \"description\": \"Source specifies the source of a request.\",\n \"properties\": {\n \"ipBlocks\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaces\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notIpBlocks\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notNamespaces\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notPrincipals\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notRemoteIpBlocks\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notRequestPrincipals\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"principals\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"remoteIpBlocks\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"requestPrincipals\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"to\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"operation\": {\n \"description\": \"Operation specifies the operation of a request.\",\n \"properties\": {\n \"hosts\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"methods\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notHosts\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notMethods\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notPaths\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notPorts\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"paths\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ports\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"when\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"key\": {\n \"description\": \"The name of an Istio attribute.\",\n \"type\": \"string\"\n },\n \"notValues\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"values\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"selector\": {\n \"description\": \"Optional.\",\n \"properties\": {\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Authorization Policy\",\n \"type\": \"object\"\n}"} \ No newline at end of file +{"kind":"AuthorizationPolicy","apiVersion":"security.istio.io/v1","displayName":"Authorization Policy","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"properties\": {\n \"spec\": {\n \"description\": \"Configuration for access control on workloads. See more details at: https://istio.io/docs/reference/config/security/authorization-policy.html\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"provider\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"provider\"\n ]\n }\n ],\n \"properties\": {\n \"action\": {\n \"description\": \"Optional.\",\n \"enum\": [\n \"ALLOW\",\n \"DENY\",\n \"AUDIT\",\n \"CUSTOM\"\n ],\n \"type\": \"string\"\n },\n \"provider\": {\n \"description\": \"Specifies detailed configuration of the CUSTOM action.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Specifies the name of the extension provider.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"rules\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"source\": {\n \"description\": \"Source specifies the source of a request.\",\n \"properties\": {\n \"ipBlocks\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaces\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notIpBlocks\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notNamespaces\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notPrincipals\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notRemoteIpBlocks\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notRequestPrincipals\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"principals\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"remoteIpBlocks\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"requestPrincipals\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"to\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"operation\": {\n \"description\": \"Operation specifies the operation of a request.\",\n \"properties\": {\n \"hosts\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"methods\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notHosts\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notMethods\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notPaths\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notPorts\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"paths\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ports\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"when\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"key\": {\n \"description\": \"The name of an Istio attribute.\",\n \"type\": \"string\"\n },\n \"notValues\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"values\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"selector\": {\n \"description\": \"Optional.\",\n \"properties\": {\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n }\n },\n \"title\": \"Authorization Policy\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/1.19.0-alpha.1/destinationrule.Istio.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/1.19.0-alpha.1/destinationrule.Istio.meshery.layer5.io_meshmodel.json index 921ac47ab..c85e116bc 100644 --- a/templates/meshmodel/components/1.19.0-alpha.1/destinationrule.Istio.meshery.layer5.io_meshmodel.json +++ b/templates/meshmodel/components/1.19.0-alpha.1/destinationrule.Istio.meshery.layer5.io_meshmodel.json @@ -1 +1 @@ -{"kind":"DestinationRule","apiVersion":"networking.istio.io/v1alpha3","displayName":"Destination Rule","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"description\": \"Configuration affecting load balancing, outlier detection, etc. See more details at: https://istio.io/docs/reference/config/networking/destination-rule.html\",\n \"properties\": {\n \"exportTo\": {\n \"description\": \"A list of namespaces to which this destination rule is exported.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"host\": {\n \"description\": \"The name of a service from the service registry.\",\n \"type\": \"string\"\n },\n \"subsets\": {\n \"items\": {\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the subset.\",\n \"type\": \"string\"\n },\n \"trafficPolicy\": {\n \"description\": \"Traffic policies that apply to this subset.\",\n \"properties\": {\n \"connectionPool\": {\n \"properties\": {\n \"http\": {\n \"description\": \"HTTP connection pool settings.\",\n \"properties\": {\n \"h2UpgradePolicy\": {\n \"description\": \"Specify if http1.1 connection should be upgraded to http2 for the associated destination.\",\n \"enum\": [\n \"DEFAULT\",\n \"DO_NOT_UPGRADE\",\n \"UPGRADE\"\n ],\n \"type\": \"string\"\n },\n \"http1MaxPendingRequests\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"http2MaxRequests\": {\n \"description\": \"Maximum number of active requests to a destination.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"idleTimeout\": {\n \"description\": \"The idle timeout for upstream connection pool connections.\",\n \"type\": \"string\"\n },\n \"maxRequestsPerConnection\": {\n \"description\": \"Maximum number of requests per connection to a backend.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"maxRetries\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"useClientProtocol\": {\n \"description\": \"If set to true, client protocol will be preserved while initiating connection to backend.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"tcp\": {\n \"description\": \"Settings common to both HTTP and TCP upstream connections.\",\n \"properties\": {\n \"connectTimeout\": {\n \"description\": \"TCP connection timeout.\",\n \"type\": \"string\"\n },\n \"maxConnectionDuration\": {\n \"description\": \"The maximum duration of a connection.\",\n \"type\": \"string\"\n },\n \"maxConnections\": {\n \"description\": \"Maximum number of HTTP1 /TCP connections to a destination host.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpKeepalive\": {\n \"description\": \"If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.\",\n \"properties\": {\n \"interval\": {\n \"description\": \"The time duration between keep-alive probes.\",\n \"type\": \"string\"\n },\n \"probes\": {\n \"type\": \"integer\"\n },\n \"time\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"loadBalancer\": {\n \"description\": \"Settings controlling the load balancer algorithms.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"allOf\": [\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n },\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n ],\n \"properties\": {\n \"minimumRingSize\": {}\n }\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"allOf\": [\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n },\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n ],\n \"properties\": {\n \"minimumRingSize\": {}\n }\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ],\n \"properties\": {\n \"consistentHash\": {\n \"properties\": {\n \"httpCookie\": {\n \"description\": \"Hash based on HTTP cookie.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the cookie.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path to set for the cookie.\",\n \"type\": \"string\"\n },\n \"ttl\": {\n \"description\": \"Lifetime of the cookie.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"httpHeaderName\": {\n \"description\": \"Hash based on a specific HTTP header.\",\n \"type\": \"string\"\n },\n \"httpQueryParameterName\": {\n \"description\": \"Hash based on a specific HTTP query parameter.\",\n \"type\": \"string\"\n },\n \"maglev\": {\n \"description\": \"The Maglev load balancer implements consistent hashing to backend hosts.\",\n \"properties\": {\n \"tableSize\": {\n \"description\": \"The table size for Maglev hashing.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"minimumRingSize\": {\n \"description\": \"Deprecated.\",\n \"type\": \"integer\"\n },\n \"ringHash\": {\n \"description\": \"The ring/modulo hash load balancer implements consistent hashing to backend hosts.\",\n \"properties\": {\n \"minimumRingSize\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"useSourceIp\": {\n \"description\": \"Hash based on the source IP address.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"localityLbSetting\": {\n \"properties\": {\n \"distribute\": {\n \"description\": \"Optional: only one of distribute, failover or failoverPriority can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating locality, '/' separated, e.g.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Map of upstream localities to traffic distribution weights.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"enabled\": {\n \"description\": \"enable locality load balancing, this is DestinationRule-level and will override mesh wide settings in entirety.\",\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"failover\": {\n \"description\": \"Optional: only one of distribute, failover or failoverPriority can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating region.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"failoverPriority\": {\n \"description\": \"failoverPriority is an ordered list of labels used to sort endpoints to do priority based load balancing.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"simple\": {\n \"enum\": [\n \"UNSPECIFIED\",\n \"LEAST_CONN\",\n \"RANDOM\",\n \"PASSTHROUGH\",\n \"ROUND_ROBIN\",\n \"LEAST_REQUEST\"\n ],\n \"type\": \"string\"\n },\n \"warmupDurationSecs\": {\n \"description\": \"Represents the warmup duration of Service.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"outlierDetection\": {\n \"properties\": {\n \"baseEjectionTime\": {\n \"description\": \"Minimum ejection duration.\",\n \"type\": \"string\"\n },\n \"consecutive5xxErrors\": {\n \"description\": \"Number of 5xx errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"consecutiveErrors\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"consecutiveGatewayErrors\": {\n \"description\": \"Number of gateway errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"consecutiveLocalOriginFailures\": {\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"interval\": {\n \"description\": \"Time interval between ejection sweep analysis.\",\n \"type\": \"string\"\n },\n \"maxEjectionPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minHealthPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"splitExternalLocalOriginErrors\": {\n \"description\": \"Determines whether to distinguish local origin failures from external errors.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"portLevelSettings\": {\n \"description\": \"Traffic policies specific to individual ports.\",\n \"items\": {\n \"properties\": {\n \"connectionPool\": {\n \"properties\": {\n \"http\": {\n \"description\": \"HTTP connection pool settings.\",\n \"properties\": {\n \"h2UpgradePolicy\": {\n \"description\": \"Specify if http1.1 connection should be upgraded to http2 for the associated destination.\",\n \"enum\": [\n \"DEFAULT\",\n \"DO_NOT_UPGRADE\",\n \"UPGRADE\"\n ],\n \"type\": \"string\"\n },\n \"http1MaxPendingRequests\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"http2MaxRequests\": {\n \"description\": \"Maximum number of active requests to a destination.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"idleTimeout\": {\n \"description\": \"The idle timeout for upstream connection pool connections.\",\n \"type\": \"string\"\n },\n \"maxRequestsPerConnection\": {\n \"description\": \"Maximum number of requests per connection to a backend.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"maxRetries\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"useClientProtocol\": {\n \"description\": \"If set to true, client protocol will be preserved while initiating connection to backend.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"tcp\": {\n \"description\": \"Settings common to both HTTP and TCP upstream connections.\",\n \"properties\": {\n \"connectTimeout\": {\n \"description\": \"TCP connection timeout.\",\n \"type\": \"string\"\n },\n \"maxConnectionDuration\": {\n \"description\": \"The maximum duration of a connection.\",\n \"type\": \"string\"\n },\n \"maxConnections\": {\n \"description\": \"Maximum number of HTTP1 /TCP connections to a destination host.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpKeepalive\": {\n \"description\": \"If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.\",\n \"properties\": {\n \"interval\": {\n \"description\": \"The time duration between keep-alive probes.\",\n \"type\": \"string\"\n },\n \"probes\": {\n \"type\": \"integer\"\n },\n \"time\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"loadBalancer\": {\n \"description\": \"Settings controlling the load balancer algorithms.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"allOf\": [\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n },\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n ],\n \"properties\": {\n \"minimumRingSize\": {}\n }\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"allOf\": [\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n },\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n ],\n \"properties\": {\n \"minimumRingSize\": {}\n }\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ],\n \"properties\": {\n \"consistentHash\": {\n \"properties\": {\n \"httpCookie\": {\n \"description\": \"Hash based on HTTP cookie.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the cookie.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path to set for the cookie.\",\n \"type\": \"string\"\n },\n \"ttl\": {\n \"description\": \"Lifetime of the cookie.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"httpHeaderName\": {\n \"description\": \"Hash based on a specific HTTP header.\",\n \"type\": \"string\"\n },\n \"httpQueryParameterName\": {\n \"description\": \"Hash based on a specific HTTP query parameter.\",\n \"type\": \"string\"\n },\n \"maglev\": {\n \"description\": \"The Maglev load balancer implements consistent hashing to backend hosts.\",\n \"properties\": {\n \"tableSize\": {\n \"description\": \"The table size for Maglev hashing.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"minimumRingSize\": {\n \"description\": \"Deprecated.\",\n \"type\": \"integer\"\n },\n \"ringHash\": {\n \"description\": \"The ring/modulo hash load balancer implements consistent hashing to backend hosts.\",\n \"properties\": {\n \"minimumRingSize\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"useSourceIp\": {\n \"description\": \"Hash based on the source IP address.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"localityLbSetting\": {\n \"properties\": {\n \"distribute\": {\n \"description\": \"Optional: only one of distribute, failover or failoverPriority can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating locality, '/' separated, e.g.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Map of upstream localities to traffic distribution weights.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"enabled\": {\n \"description\": \"enable locality load balancing, this is DestinationRule-level and will override mesh wide settings in entirety.\",\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"failover\": {\n \"description\": \"Optional: only one of distribute, failover or failoverPriority can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating region.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"failoverPriority\": {\n \"description\": \"failoverPriority is an ordered list of labels used to sort endpoints to do priority based load balancing.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"simple\": {\n \"enum\": [\n \"UNSPECIFIED\",\n \"LEAST_CONN\",\n \"RANDOM\",\n \"PASSTHROUGH\",\n \"ROUND_ROBIN\",\n \"LEAST_REQUEST\"\n ],\n \"type\": \"string\"\n },\n \"warmupDurationSecs\": {\n \"description\": \"Represents the warmup duration of Service.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"outlierDetection\": {\n \"properties\": {\n \"baseEjectionTime\": {\n \"description\": \"Minimum ejection duration.\",\n \"type\": \"string\"\n },\n \"consecutive5xxErrors\": {\n \"description\": \"Number of 5xx errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"consecutiveErrors\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"consecutiveGatewayErrors\": {\n \"description\": \"Number of gateway errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"consecutiveLocalOriginFailures\": {\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"interval\": {\n \"description\": \"Time interval between ejection sweep analysis.\",\n \"type\": \"string\"\n },\n \"maxEjectionPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minHealthPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"splitExternalLocalOriginErrors\": {\n \"description\": \"Determines whether to distinguish local origin failures from external errors.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"port\": {\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"description\": \"TLS related settings for connections to the upstream service.\",\n \"properties\": {\n \"caCertificates\": {\n \"type\": \"string\"\n },\n \"clientCertificate\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"credentialName\": {\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"mode\": {\n \"enum\": [\n \"DISABLE\",\n \"SIMPLE\",\n \"MUTUAL\",\n \"ISTIO_MUTUAL\"\n ],\n \"type\": \"string\"\n },\n \"privateKey\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"sni\": {\n \"description\": \"SNI string to present to the server during TLS handshake.\",\n \"type\": \"string\"\n },\n \"subjectAltNames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tls\": {\n \"description\": \"TLS related settings for connections to the upstream service.\",\n \"properties\": {\n \"caCertificates\": {\n \"type\": \"string\"\n },\n \"clientCertificate\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"credentialName\": {\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"mode\": {\n \"enum\": [\n \"DISABLE\",\n \"SIMPLE\",\n \"MUTUAL\",\n \"ISTIO_MUTUAL\"\n ],\n \"type\": \"string\"\n },\n \"privateKey\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"sni\": {\n \"description\": \"SNI string to present to the server during TLS handshake.\",\n \"type\": \"string\"\n },\n \"subjectAltNames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"tunnel\": {\n \"properties\": {\n \"protocol\": {\n \"description\": \"Specifies which protocol to use for tunneling the downstream connection.\",\n \"type\": \"string\"\n },\n \"targetHost\": {\n \"description\": \"Specifies a host to which the downstream connection is tunneled.\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"description\": \"Specifies a port to which the downstream connection is tunneled.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"trafficPolicy\": {\n \"properties\": {\n \"connectionPool\": {\n \"properties\": {\n \"http\": {\n \"description\": \"HTTP connection pool settings.\",\n \"properties\": {\n \"h2UpgradePolicy\": {\n \"description\": \"Specify if http1.1 connection should be upgraded to http2 for the associated destination.\",\n \"enum\": [\n \"DEFAULT\",\n \"DO_NOT_UPGRADE\",\n \"UPGRADE\"\n ],\n \"type\": \"string\"\n },\n \"http1MaxPendingRequests\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"http2MaxRequests\": {\n \"description\": \"Maximum number of active requests to a destination.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"idleTimeout\": {\n \"description\": \"The idle timeout for upstream connection pool connections.\",\n \"type\": \"string\"\n },\n \"maxRequestsPerConnection\": {\n \"description\": \"Maximum number of requests per connection to a backend.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"maxRetries\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"useClientProtocol\": {\n \"description\": \"If set to true, client protocol will be preserved while initiating connection to backend.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"tcp\": {\n \"description\": \"Settings common to both HTTP and TCP upstream connections.\",\n \"properties\": {\n \"connectTimeout\": {\n \"description\": \"TCP connection timeout.\",\n \"type\": \"string\"\n },\n \"maxConnectionDuration\": {\n \"description\": \"The maximum duration of a connection.\",\n \"type\": \"string\"\n },\n \"maxConnections\": {\n \"description\": \"Maximum number of HTTP1 /TCP connections to a destination host.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpKeepalive\": {\n \"description\": \"If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.\",\n \"properties\": {\n \"interval\": {\n \"description\": \"The time duration between keep-alive probes.\",\n \"type\": \"string\"\n },\n \"probes\": {\n \"type\": \"integer\"\n },\n \"time\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"loadBalancer\": {\n \"description\": \"Settings controlling the load balancer algorithms.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"allOf\": [\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n },\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n ],\n \"properties\": {\n \"minimumRingSize\": {}\n }\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"allOf\": [\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n },\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n ],\n \"properties\": {\n \"minimumRingSize\": {}\n }\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ],\n \"properties\": {\n \"consistentHash\": {\n \"properties\": {\n \"httpCookie\": {\n \"description\": \"Hash based on HTTP cookie.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the cookie.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path to set for the cookie.\",\n \"type\": \"string\"\n },\n \"ttl\": {\n \"description\": \"Lifetime of the cookie.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"httpHeaderName\": {\n \"description\": \"Hash based on a specific HTTP header.\",\n \"type\": \"string\"\n },\n \"httpQueryParameterName\": {\n \"description\": \"Hash based on a specific HTTP query parameter.\",\n \"type\": \"string\"\n },\n \"maglev\": {\n \"description\": \"The Maglev load balancer implements consistent hashing to backend hosts.\",\n \"properties\": {\n \"tableSize\": {\n \"description\": \"The table size for Maglev hashing.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"minimumRingSize\": {\n \"description\": \"Deprecated.\",\n \"type\": \"integer\"\n },\n \"ringHash\": {\n \"description\": \"The ring/modulo hash load balancer implements consistent hashing to backend hosts.\",\n \"properties\": {\n \"minimumRingSize\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"useSourceIp\": {\n \"description\": \"Hash based on the source IP address.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"localityLbSetting\": {\n \"properties\": {\n \"distribute\": {\n \"description\": \"Optional: only one of distribute, failover or failoverPriority can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating locality, '/' separated, e.g.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Map of upstream localities to traffic distribution weights.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"enabled\": {\n \"description\": \"enable locality load balancing, this is DestinationRule-level and will override mesh wide settings in entirety.\",\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"failover\": {\n \"description\": \"Optional: only one of distribute, failover or failoverPriority can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating region.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"failoverPriority\": {\n \"description\": \"failoverPriority is an ordered list of labels used to sort endpoints to do priority based load balancing.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"simple\": {\n \"enum\": [\n \"UNSPECIFIED\",\n \"LEAST_CONN\",\n \"RANDOM\",\n \"PASSTHROUGH\",\n \"ROUND_ROBIN\",\n \"LEAST_REQUEST\"\n ],\n \"type\": \"string\"\n },\n \"warmupDurationSecs\": {\n \"description\": \"Represents the warmup duration of Service.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"outlierDetection\": {\n \"properties\": {\n \"baseEjectionTime\": {\n \"description\": \"Minimum ejection duration.\",\n \"type\": \"string\"\n },\n \"consecutive5xxErrors\": {\n \"description\": \"Number of 5xx errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"consecutiveErrors\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"consecutiveGatewayErrors\": {\n \"description\": \"Number of gateway errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"consecutiveLocalOriginFailures\": {\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"interval\": {\n \"description\": \"Time interval between ejection sweep analysis.\",\n \"type\": \"string\"\n },\n \"maxEjectionPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minHealthPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"splitExternalLocalOriginErrors\": {\n \"description\": \"Determines whether to distinguish local origin failures from external errors.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"portLevelSettings\": {\n \"description\": \"Traffic policies specific to individual ports.\",\n \"items\": {\n \"properties\": {\n \"connectionPool\": {\n \"properties\": {\n \"http\": {\n \"description\": \"HTTP connection pool settings.\",\n \"properties\": {\n \"h2UpgradePolicy\": {\n \"description\": \"Specify if http1.1 connection should be upgraded to http2 for the associated destination.\",\n \"enum\": [\n \"DEFAULT\",\n \"DO_NOT_UPGRADE\",\n \"UPGRADE\"\n ],\n \"type\": \"string\"\n },\n \"http1MaxPendingRequests\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"http2MaxRequests\": {\n \"description\": \"Maximum number of active requests to a destination.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"idleTimeout\": {\n \"description\": \"The idle timeout for upstream connection pool connections.\",\n \"type\": \"string\"\n },\n \"maxRequestsPerConnection\": {\n \"description\": \"Maximum number of requests per connection to a backend.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"maxRetries\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"useClientProtocol\": {\n \"description\": \"If set to true, client protocol will be preserved while initiating connection to backend.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"tcp\": {\n \"description\": \"Settings common to both HTTP and TCP upstream connections.\",\n \"properties\": {\n \"connectTimeout\": {\n \"description\": \"TCP connection timeout.\",\n \"type\": \"string\"\n },\n \"maxConnectionDuration\": {\n \"description\": \"The maximum duration of a connection.\",\n \"type\": \"string\"\n },\n \"maxConnections\": {\n \"description\": \"Maximum number of HTTP1 /TCP connections to a destination host.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpKeepalive\": {\n \"description\": \"If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.\",\n \"properties\": {\n \"interval\": {\n \"description\": \"The time duration between keep-alive probes.\",\n \"type\": \"string\"\n },\n \"probes\": {\n \"type\": \"integer\"\n },\n \"time\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"loadBalancer\": {\n \"description\": \"Settings controlling the load balancer algorithms.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"allOf\": [\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n },\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n ],\n \"properties\": {\n \"minimumRingSize\": {}\n }\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"allOf\": [\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n },\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n ],\n \"properties\": {\n \"minimumRingSize\": {}\n }\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ],\n \"properties\": {\n \"consistentHash\": {\n \"properties\": {\n \"httpCookie\": {\n \"description\": \"Hash based on HTTP cookie.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the cookie.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path to set for the cookie.\",\n \"type\": \"string\"\n },\n \"ttl\": {\n \"description\": \"Lifetime of the cookie.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"httpHeaderName\": {\n \"description\": \"Hash based on a specific HTTP header.\",\n \"type\": \"string\"\n },\n \"httpQueryParameterName\": {\n \"description\": \"Hash based on a specific HTTP query parameter.\",\n \"type\": \"string\"\n },\n \"maglev\": {\n \"description\": \"The Maglev load balancer implements consistent hashing to backend hosts.\",\n \"properties\": {\n \"tableSize\": {\n \"description\": \"The table size for Maglev hashing.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"minimumRingSize\": {\n \"description\": \"Deprecated.\",\n \"type\": \"integer\"\n },\n \"ringHash\": {\n \"description\": \"The ring/modulo hash load balancer implements consistent hashing to backend hosts.\",\n \"properties\": {\n \"minimumRingSize\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"useSourceIp\": {\n \"description\": \"Hash based on the source IP address.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"localityLbSetting\": {\n \"properties\": {\n \"distribute\": {\n \"description\": \"Optional: only one of distribute, failover or failoverPriority can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating locality, '/' separated, e.g.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Map of upstream localities to traffic distribution weights.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"enabled\": {\n \"description\": \"enable locality load balancing, this is DestinationRule-level and will override mesh wide settings in entirety.\",\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"failover\": {\n \"description\": \"Optional: only one of distribute, failover or failoverPriority can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating region.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"failoverPriority\": {\n \"description\": \"failoverPriority is an ordered list of labels used to sort endpoints to do priority based load balancing.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"simple\": {\n \"enum\": [\n \"UNSPECIFIED\",\n \"LEAST_CONN\",\n \"RANDOM\",\n \"PASSTHROUGH\",\n \"ROUND_ROBIN\",\n \"LEAST_REQUEST\"\n ],\n \"type\": \"string\"\n },\n \"warmupDurationSecs\": {\n \"description\": \"Represents the warmup duration of Service.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"outlierDetection\": {\n \"properties\": {\n \"baseEjectionTime\": {\n \"description\": \"Minimum ejection duration.\",\n \"type\": \"string\"\n },\n \"consecutive5xxErrors\": {\n \"description\": \"Number of 5xx errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"consecutiveErrors\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"consecutiveGatewayErrors\": {\n \"description\": \"Number of gateway errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"consecutiveLocalOriginFailures\": {\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"interval\": {\n \"description\": \"Time interval between ejection sweep analysis.\",\n \"type\": \"string\"\n },\n \"maxEjectionPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minHealthPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"splitExternalLocalOriginErrors\": {\n \"description\": \"Determines whether to distinguish local origin failures from external errors.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"port\": {\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"description\": \"TLS related settings for connections to the upstream service.\",\n \"properties\": {\n \"caCertificates\": {\n \"type\": \"string\"\n },\n \"clientCertificate\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"credentialName\": {\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"mode\": {\n \"enum\": [\n \"DISABLE\",\n \"SIMPLE\",\n \"MUTUAL\",\n \"ISTIO_MUTUAL\"\n ],\n \"type\": \"string\"\n },\n \"privateKey\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"sni\": {\n \"description\": \"SNI string to present to the server during TLS handshake.\",\n \"type\": \"string\"\n },\n \"subjectAltNames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tls\": {\n \"description\": \"TLS related settings for connections to the upstream service.\",\n \"properties\": {\n \"caCertificates\": {\n \"type\": \"string\"\n },\n \"clientCertificate\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"credentialName\": {\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"mode\": {\n \"enum\": [\n \"DISABLE\",\n \"SIMPLE\",\n \"MUTUAL\",\n \"ISTIO_MUTUAL\"\n ],\n \"type\": \"string\"\n },\n \"privateKey\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"sni\": {\n \"description\": \"SNI string to present to the server during TLS handshake.\",\n \"type\": \"string\"\n },\n \"subjectAltNames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"tunnel\": {\n \"properties\": {\n \"protocol\": {\n \"description\": \"Specifies which protocol to use for tunneling the downstream connection.\",\n \"type\": \"string\"\n },\n \"targetHost\": {\n \"description\": \"Specifies a host to which the downstream connection is tunneled.\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"description\": \"Specifies a port to which the downstream connection is tunneled.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"workloadSelector\": {\n \"properties\": {\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Destination Rule\",\n \"type\": \"object\"\n}"} \ No newline at end of file +{"kind":"DestinationRule","apiVersion":"networking.istio.io/v1alpha3","displayName":"Destination Rule","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"properties\": {\n \"spec\": {\n \"description\": \"Configuration affecting load balancing, outlier detection, etc. See more details at: https://istio.io/docs/reference/config/networking/destination-rule.html\",\n \"properties\": {\n \"exportTo\": {\n \"description\": \"A list of namespaces to which this destination rule is exported.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"host\": {\n \"description\": \"The name of a service from the service registry.\",\n \"type\": \"string\"\n },\n \"subsets\": {\n \"items\": {\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the subset.\",\n \"type\": \"string\"\n },\n \"trafficPolicy\": {\n \"description\": \"Traffic policies that apply to this subset.\",\n \"properties\": {\n \"connectionPool\": {\n \"properties\": {\n \"http\": {\n \"description\": \"HTTP connection pool settings.\",\n \"properties\": {\n \"h2UpgradePolicy\": {\n \"description\": \"Specify if http1.1 connection should be upgraded to http2 for the associated destination.\",\n \"enum\": [\n \"DEFAULT\",\n \"DO_NOT_UPGRADE\",\n \"UPGRADE\"\n ],\n \"type\": \"string\"\n },\n \"http1MaxPendingRequests\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"http2MaxRequests\": {\n \"description\": \"Maximum number of active requests to a destination.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"idleTimeout\": {\n \"description\": \"The idle timeout for upstream connection pool connections.\",\n \"type\": \"string\"\n },\n \"maxRequestsPerConnection\": {\n \"description\": \"Maximum number of requests per connection to a backend.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"maxRetries\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"useClientProtocol\": {\n \"description\": \"If set to true, client protocol will be preserved while initiating connection to backend.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"tcp\": {\n \"description\": \"Settings common to both HTTP and TCP upstream connections.\",\n \"properties\": {\n \"connectTimeout\": {\n \"description\": \"TCP connection timeout.\",\n \"type\": \"string\"\n },\n \"maxConnectionDuration\": {\n \"description\": \"The maximum duration of a connection.\",\n \"type\": \"string\"\n },\n \"maxConnections\": {\n \"description\": \"Maximum number of HTTP1 /TCP connections to a destination host.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpKeepalive\": {\n \"description\": \"If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.\",\n \"properties\": {\n \"interval\": {\n \"description\": \"The time duration between keep-alive probes.\",\n \"type\": \"string\"\n },\n \"probes\": {\n \"type\": \"integer\"\n },\n \"time\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"loadBalancer\": {\n \"description\": \"Settings controlling the load balancer algorithms.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"allOf\": [\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n },\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n ],\n \"properties\": {\n \"minimumRingSize\": {}\n }\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"allOf\": [\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n },\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n ],\n \"properties\": {\n \"minimumRingSize\": {}\n }\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ],\n \"properties\": {\n \"consistentHash\": {\n \"properties\": {\n \"httpCookie\": {\n \"description\": \"Hash based on HTTP cookie.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the cookie.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path to set for the cookie.\",\n \"type\": \"string\"\n },\n \"ttl\": {\n \"description\": \"Lifetime of the cookie.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"httpHeaderName\": {\n \"description\": \"Hash based on a specific HTTP header.\",\n \"type\": \"string\"\n },\n \"httpQueryParameterName\": {\n \"description\": \"Hash based on a specific HTTP query parameter.\",\n \"type\": \"string\"\n },\n \"maglev\": {\n \"description\": \"The Maglev load balancer implements consistent hashing to backend hosts.\",\n \"properties\": {\n \"tableSize\": {\n \"description\": \"The table size for Maglev hashing.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"minimumRingSize\": {\n \"description\": \"Deprecated.\",\n \"type\": \"integer\"\n },\n \"ringHash\": {\n \"description\": \"The ring/modulo hash load balancer implements consistent hashing to backend hosts.\",\n \"properties\": {\n \"minimumRingSize\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"useSourceIp\": {\n \"description\": \"Hash based on the source IP address.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"localityLbSetting\": {\n \"properties\": {\n \"distribute\": {\n \"description\": \"Optional: only one of distribute, failover or failoverPriority can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating locality, '/' separated, e.g.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Map of upstream localities to traffic distribution weights.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"enabled\": {\n \"description\": \"enable locality load balancing, this is DestinationRule-level and will override mesh wide settings in entirety.\",\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"failover\": {\n \"description\": \"Optional: only one of distribute, failover or failoverPriority can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating region.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"failoverPriority\": {\n \"description\": \"failoverPriority is an ordered list of labels used to sort endpoints to do priority based load balancing.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"simple\": {\n \"enum\": [\n \"UNSPECIFIED\",\n \"LEAST_CONN\",\n \"RANDOM\",\n \"PASSTHROUGH\",\n \"ROUND_ROBIN\",\n \"LEAST_REQUEST\"\n ],\n \"type\": \"string\"\n },\n \"warmupDurationSecs\": {\n \"description\": \"Represents the warmup duration of Service.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"outlierDetection\": {\n \"properties\": {\n \"baseEjectionTime\": {\n \"description\": \"Minimum ejection duration.\",\n \"type\": \"string\"\n },\n \"consecutive5xxErrors\": {\n \"description\": \"Number of 5xx errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"consecutiveErrors\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"consecutiveGatewayErrors\": {\n \"description\": \"Number of gateway errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"consecutiveLocalOriginFailures\": {\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"interval\": {\n \"description\": \"Time interval between ejection sweep analysis.\",\n \"type\": \"string\"\n },\n \"maxEjectionPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minHealthPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"splitExternalLocalOriginErrors\": {\n \"description\": \"Determines whether to distinguish local origin failures from external errors.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"portLevelSettings\": {\n \"description\": \"Traffic policies specific to individual ports.\",\n \"items\": {\n \"properties\": {\n \"connectionPool\": {\n \"properties\": {\n \"http\": {\n \"description\": \"HTTP connection pool settings.\",\n \"properties\": {\n \"h2UpgradePolicy\": {\n \"description\": \"Specify if http1.1 connection should be upgraded to http2 for the associated destination.\",\n \"enum\": [\n \"DEFAULT\",\n \"DO_NOT_UPGRADE\",\n \"UPGRADE\"\n ],\n \"type\": \"string\"\n },\n \"http1MaxPendingRequests\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"http2MaxRequests\": {\n \"description\": \"Maximum number of active requests to a destination.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"idleTimeout\": {\n \"description\": \"The idle timeout for upstream connection pool connections.\",\n \"type\": \"string\"\n },\n \"maxRequestsPerConnection\": {\n \"description\": \"Maximum number of requests per connection to a backend.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"maxRetries\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"useClientProtocol\": {\n \"description\": \"If set to true, client protocol will be preserved while initiating connection to backend.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"tcp\": {\n \"description\": \"Settings common to both HTTP and TCP upstream connections.\",\n \"properties\": {\n \"connectTimeout\": {\n \"description\": \"TCP connection timeout.\",\n \"type\": \"string\"\n },\n \"maxConnectionDuration\": {\n \"description\": \"The maximum duration of a connection.\",\n \"type\": \"string\"\n },\n \"maxConnections\": {\n \"description\": \"Maximum number of HTTP1 /TCP connections to a destination host.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpKeepalive\": {\n \"description\": \"If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.\",\n \"properties\": {\n \"interval\": {\n \"description\": \"The time duration between keep-alive probes.\",\n \"type\": \"string\"\n },\n \"probes\": {\n \"type\": \"integer\"\n },\n \"time\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"loadBalancer\": {\n \"description\": \"Settings controlling the load balancer algorithms.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"allOf\": [\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n },\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n ],\n \"properties\": {\n \"minimumRingSize\": {}\n }\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"allOf\": [\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n },\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n ],\n \"properties\": {\n \"minimumRingSize\": {}\n }\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ],\n \"properties\": {\n \"consistentHash\": {\n \"properties\": {\n \"httpCookie\": {\n \"description\": \"Hash based on HTTP cookie.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the cookie.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path to set for the cookie.\",\n \"type\": \"string\"\n },\n \"ttl\": {\n \"description\": \"Lifetime of the cookie.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"httpHeaderName\": {\n \"description\": \"Hash based on a specific HTTP header.\",\n \"type\": \"string\"\n },\n \"httpQueryParameterName\": {\n \"description\": \"Hash based on a specific HTTP query parameter.\",\n \"type\": \"string\"\n },\n \"maglev\": {\n \"description\": \"The Maglev load balancer implements consistent hashing to backend hosts.\",\n \"properties\": {\n \"tableSize\": {\n \"description\": \"The table size for Maglev hashing.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"minimumRingSize\": {\n \"description\": \"Deprecated.\",\n \"type\": \"integer\"\n },\n \"ringHash\": {\n \"description\": \"The ring/modulo hash load balancer implements consistent hashing to backend hosts.\",\n \"properties\": {\n \"minimumRingSize\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"useSourceIp\": {\n \"description\": \"Hash based on the source IP address.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"localityLbSetting\": {\n \"properties\": {\n \"distribute\": {\n \"description\": \"Optional: only one of distribute, failover or failoverPriority can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating locality, '/' separated, e.g.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Map of upstream localities to traffic distribution weights.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"enabled\": {\n \"description\": \"enable locality load balancing, this is DestinationRule-level and will override mesh wide settings in entirety.\",\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"failover\": {\n \"description\": \"Optional: only one of distribute, failover or failoverPriority can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating region.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"failoverPriority\": {\n \"description\": \"failoverPriority is an ordered list of labels used to sort endpoints to do priority based load balancing.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"simple\": {\n \"enum\": [\n \"UNSPECIFIED\",\n \"LEAST_CONN\",\n \"RANDOM\",\n \"PASSTHROUGH\",\n \"ROUND_ROBIN\",\n \"LEAST_REQUEST\"\n ],\n \"type\": \"string\"\n },\n \"warmupDurationSecs\": {\n \"description\": \"Represents the warmup duration of Service.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"outlierDetection\": {\n \"properties\": {\n \"baseEjectionTime\": {\n \"description\": \"Minimum ejection duration.\",\n \"type\": \"string\"\n },\n \"consecutive5xxErrors\": {\n \"description\": \"Number of 5xx errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"consecutiveErrors\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"consecutiveGatewayErrors\": {\n \"description\": \"Number of gateway errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"consecutiveLocalOriginFailures\": {\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"interval\": {\n \"description\": \"Time interval between ejection sweep analysis.\",\n \"type\": \"string\"\n },\n \"maxEjectionPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minHealthPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"splitExternalLocalOriginErrors\": {\n \"description\": \"Determines whether to distinguish local origin failures from external errors.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"port\": {\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"description\": \"TLS related settings for connections to the upstream service.\",\n \"properties\": {\n \"caCertificates\": {\n \"type\": \"string\"\n },\n \"clientCertificate\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"credentialName\": {\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"mode\": {\n \"enum\": [\n \"DISABLE\",\n \"SIMPLE\",\n \"MUTUAL\",\n \"ISTIO_MUTUAL\"\n ],\n \"type\": \"string\"\n },\n \"privateKey\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"sni\": {\n \"description\": \"SNI string to present to the server during TLS handshake.\",\n \"type\": \"string\"\n },\n \"subjectAltNames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tls\": {\n \"description\": \"TLS related settings for connections to the upstream service.\",\n \"properties\": {\n \"caCertificates\": {\n \"type\": \"string\"\n },\n \"clientCertificate\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"credentialName\": {\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"mode\": {\n \"enum\": [\n \"DISABLE\",\n \"SIMPLE\",\n \"MUTUAL\",\n \"ISTIO_MUTUAL\"\n ],\n \"type\": \"string\"\n },\n \"privateKey\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"sni\": {\n \"description\": \"SNI string to present to the server during TLS handshake.\",\n \"type\": \"string\"\n },\n \"subjectAltNames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"tunnel\": {\n \"properties\": {\n \"protocol\": {\n \"description\": \"Specifies which protocol to use for tunneling the downstream connection.\",\n \"type\": \"string\"\n },\n \"targetHost\": {\n \"description\": \"Specifies a host to which the downstream connection is tunneled.\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"description\": \"Specifies a port to which the downstream connection is tunneled.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"trafficPolicy\": {\n \"properties\": {\n \"connectionPool\": {\n \"properties\": {\n \"http\": {\n \"description\": \"HTTP connection pool settings.\",\n \"properties\": {\n \"h2UpgradePolicy\": {\n \"description\": \"Specify if http1.1 connection should be upgraded to http2 for the associated destination.\",\n \"enum\": [\n \"DEFAULT\",\n \"DO_NOT_UPGRADE\",\n \"UPGRADE\"\n ],\n \"type\": \"string\"\n },\n \"http1MaxPendingRequests\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"http2MaxRequests\": {\n \"description\": \"Maximum number of active requests to a destination.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"idleTimeout\": {\n \"description\": \"The idle timeout for upstream connection pool connections.\",\n \"type\": \"string\"\n },\n \"maxRequestsPerConnection\": {\n \"description\": \"Maximum number of requests per connection to a backend.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"maxRetries\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"useClientProtocol\": {\n \"description\": \"If set to true, client protocol will be preserved while initiating connection to backend.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"tcp\": {\n \"description\": \"Settings common to both HTTP and TCP upstream connections.\",\n \"properties\": {\n \"connectTimeout\": {\n \"description\": \"TCP connection timeout.\",\n \"type\": \"string\"\n },\n \"maxConnectionDuration\": {\n \"description\": \"The maximum duration of a connection.\",\n \"type\": \"string\"\n },\n \"maxConnections\": {\n \"description\": \"Maximum number of HTTP1 /TCP connections to a destination host.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpKeepalive\": {\n \"description\": \"If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.\",\n \"properties\": {\n \"interval\": {\n \"description\": \"The time duration between keep-alive probes.\",\n \"type\": \"string\"\n },\n \"probes\": {\n \"type\": \"integer\"\n },\n \"time\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"loadBalancer\": {\n \"description\": \"Settings controlling the load balancer algorithms.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"allOf\": [\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n },\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n ],\n \"properties\": {\n \"minimumRingSize\": {}\n }\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"allOf\": [\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n },\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n ],\n \"properties\": {\n \"minimumRingSize\": {}\n }\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ],\n \"properties\": {\n \"consistentHash\": {\n \"properties\": {\n \"httpCookie\": {\n \"description\": \"Hash based on HTTP cookie.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the cookie.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path to set for the cookie.\",\n \"type\": \"string\"\n },\n \"ttl\": {\n \"description\": \"Lifetime of the cookie.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"httpHeaderName\": {\n \"description\": \"Hash based on a specific HTTP header.\",\n \"type\": \"string\"\n },\n \"httpQueryParameterName\": {\n \"description\": \"Hash based on a specific HTTP query parameter.\",\n \"type\": \"string\"\n },\n \"maglev\": {\n \"description\": \"The Maglev load balancer implements consistent hashing to backend hosts.\",\n \"properties\": {\n \"tableSize\": {\n \"description\": \"The table size for Maglev hashing.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"minimumRingSize\": {\n \"description\": \"Deprecated.\",\n \"type\": \"integer\"\n },\n \"ringHash\": {\n \"description\": \"The ring/modulo hash load balancer implements consistent hashing to backend hosts.\",\n \"properties\": {\n \"minimumRingSize\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"useSourceIp\": {\n \"description\": \"Hash based on the source IP address.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"localityLbSetting\": {\n \"properties\": {\n \"distribute\": {\n \"description\": \"Optional: only one of distribute, failover or failoverPriority can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating locality, '/' separated, e.g.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Map of upstream localities to traffic distribution weights.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"enabled\": {\n \"description\": \"enable locality load balancing, this is DestinationRule-level and will override mesh wide settings in entirety.\",\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"failover\": {\n \"description\": \"Optional: only one of distribute, failover or failoverPriority can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating region.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"failoverPriority\": {\n \"description\": \"failoverPriority is an ordered list of labels used to sort endpoints to do priority based load balancing.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"simple\": {\n \"enum\": [\n \"UNSPECIFIED\",\n \"LEAST_CONN\",\n \"RANDOM\",\n \"PASSTHROUGH\",\n \"ROUND_ROBIN\",\n \"LEAST_REQUEST\"\n ],\n \"type\": \"string\"\n },\n \"warmupDurationSecs\": {\n \"description\": \"Represents the warmup duration of Service.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"outlierDetection\": {\n \"properties\": {\n \"baseEjectionTime\": {\n \"description\": \"Minimum ejection duration.\",\n \"type\": \"string\"\n },\n \"consecutive5xxErrors\": {\n \"description\": \"Number of 5xx errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"consecutiveErrors\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"consecutiveGatewayErrors\": {\n \"description\": \"Number of gateway errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"consecutiveLocalOriginFailures\": {\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"interval\": {\n \"description\": \"Time interval between ejection sweep analysis.\",\n \"type\": \"string\"\n },\n \"maxEjectionPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minHealthPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"splitExternalLocalOriginErrors\": {\n \"description\": \"Determines whether to distinguish local origin failures from external errors.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"portLevelSettings\": {\n \"description\": \"Traffic policies specific to individual ports.\",\n \"items\": {\n \"properties\": {\n \"connectionPool\": {\n \"properties\": {\n \"http\": {\n \"description\": \"HTTP connection pool settings.\",\n \"properties\": {\n \"h2UpgradePolicy\": {\n \"description\": \"Specify if http1.1 connection should be upgraded to http2 for the associated destination.\",\n \"enum\": [\n \"DEFAULT\",\n \"DO_NOT_UPGRADE\",\n \"UPGRADE\"\n ],\n \"type\": \"string\"\n },\n \"http1MaxPendingRequests\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"http2MaxRequests\": {\n \"description\": \"Maximum number of active requests to a destination.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"idleTimeout\": {\n \"description\": \"The idle timeout for upstream connection pool connections.\",\n \"type\": \"string\"\n },\n \"maxRequestsPerConnection\": {\n \"description\": \"Maximum number of requests per connection to a backend.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"maxRetries\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"useClientProtocol\": {\n \"description\": \"If set to true, client protocol will be preserved while initiating connection to backend.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"tcp\": {\n \"description\": \"Settings common to both HTTP and TCP upstream connections.\",\n \"properties\": {\n \"connectTimeout\": {\n \"description\": \"TCP connection timeout.\",\n \"type\": \"string\"\n },\n \"maxConnectionDuration\": {\n \"description\": \"The maximum duration of a connection.\",\n \"type\": \"string\"\n },\n \"maxConnections\": {\n \"description\": \"Maximum number of HTTP1 /TCP connections to a destination host.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpKeepalive\": {\n \"description\": \"If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.\",\n \"properties\": {\n \"interval\": {\n \"description\": \"The time duration between keep-alive probes.\",\n \"type\": \"string\"\n },\n \"probes\": {\n \"type\": \"integer\"\n },\n \"time\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"loadBalancer\": {\n \"description\": \"Settings controlling the load balancer algorithms.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"allOf\": [\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n },\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n ],\n \"properties\": {\n \"minimumRingSize\": {}\n }\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"allOf\": [\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n },\n {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"ringHash\"\n ]\n },\n {\n \"required\": [\n \"maglev\"\n ]\n }\n ]\n }\n ],\n \"properties\": {\n \"minimumRingSize\": {}\n }\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ],\n \"properties\": {\n \"consistentHash\": {\n \"properties\": {\n \"httpCookie\": {\n \"description\": \"Hash based on HTTP cookie.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the cookie.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path to set for the cookie.\",\n \"type\": \"string\"\n },\n \"ttl\": {\n \"description\": \"Lifetime of the cookie.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"httpHeaderName\": {\n \"description\": \"Hash based on a specific HTTP header.\",\n \"type\": \"string\"\n },\n \"httpQueryParameterName\": {\n \"description\": \"Hash based on a specific HTTP query parameter.\",\n \"type\": \"string\"\n },\n \"maglev\": {\n \"description\": \"The Maglev load balancer implements consistent hashing to backend hosts.\",\n \"properties\": {\n \"tableSize\": {\n \"description\": \"The table size for Maglev hashing.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"minimumRingSize\": {\n \"description\": \"Deprecated.\",\n \"type\": \"integer\"\n },\n \"ringHash\": {\n \"description\": \"The ring/modulo hash load balancer implements consistent hashing to backend hosts.\",\n \"properties\": {\n \"minimumRingSize\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"useSourceIp\": {\n \"description\": \"Hash based on the source IP address.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"localityLbSetting\": {\n \"properties\": {\n \"distribute\": {\n \"description\": \"Optional: only one of distribute, failover or failoverPriority can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating locality, '/' separated, e.g.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Map of upstream localities to traffic distribution weights.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"enabled\": {\n \"description\": \"enable locality load balancing, this is DestinationRule-level and will override mesh wide settings in entirety.\",\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"failover\": {\n \"description\": \"Optional: only one of distribute, failover or failoverPriority can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating region.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"failoverPriority\": {\n \"description\": \"failoverPriority is an ordered list of labels used to sort endpoints to do priority based load balancing.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"simple\": {\n \"enum\": [\n \"UNSPECIFIED\",\n \"LEAST_CONN\",\n \"RANDOM\",\n \"PASSTHROUGH\",\n \"ROUND_ROBIN\",\n \"LEAST_REQUEST\"\n ],\n \"type\": \"string\"\n },\n \"warmupDurationSecs\": {\n \"description\": \"Represents the warmup duration of Service.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"outlierDetection\": {\n \"properties\": {\n \"baseEjectionTime\": {\n \"description\": \"Minimum ejection duration.\",\n \"type\": \"string\"\n },\n \"consecutive5xxErrors\": {\n \"description\": \"Number of 5xx errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"consecutiveErrors\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"consecutiveGatewayErrors\": {\n \"description\": \"Number of gateway errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"consecutiveLocalOriginFailures\": {\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"interval\": {\n \"description\": \"Time interval between ejection sweep analysis.\",\n \"type\": \"string\"\n },\n \"maxEjectionPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minHealthPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"splitExternalLocalOriginErrors\": {\n \"description\": \"Determines whether to distinguish local origin failures from external errors.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"port\": {\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"description\": \"TLS related settings for connections to the upstream service.\",\n \"properties\": {\n \"caCertificates\": {\n \"type\": \"string\"\n },\n \"clientCertificate\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"credentialName\": {\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"mode\": {\n \"enum\": [\n \"DISABLE\",\n \"SIMPLE\",\n \"MUTUAL\",\n \"ISTIO_MUTUAL\"\n ],\n \"type\": \"string\"\n },\n \"privateKey\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"sni\": {\n \"description\": \"SNI string to present to the server during TLS handshake.\",\n \"type\": \"string\"\n },\n \"subjectAltNames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tls\": {\n \"description\": \"TLS related settings for connections to the upstream service.\",\n \"properties\": {\n \"caCertificates\": {\n \"type\": \"string\"\n },\n \"clientCertificate\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"credentialName\": {\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"mode\": {\n \"enum\": [\n \"DISABLE\",\n \"SIMPLE\",\n \"MUTUAL\",\n \"ISTIO_MUTUAL\"\n ],\n \"type\": \"string\"\n },\n \"privateKey\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"sni\": {\n \"description\": \"SNI string to present to the server during TLS handshake.\",\n \"type\": \"string\"\n },\n \"subjectAltNames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"tunnel\": {\n \"properties\": {\n \"protocol\": {\n \"description\": \"Specifies which protocol to use for tunneling the downstream connection.\",\n \"type\": \"string\"\n },\n \"targetHost\": {\n \"description\": \"Specifies a host to which the downstream connection is tunneled.\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"description\": \"Specifies a port to which the downstream connection is tunneled.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"workloadSelector\": {\n \"properties\": {\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n }\n },\n \"title\": \"Destination Rule\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/1.19.0-alpha.1/envoyfilter.Istio.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/1.19.0-alpha.1/envoyfilter.Istio.meshery.layer5.io_meshmodel.json index 5fd0e47a6..899a5cc92 100644 --- a/templates/meshmodel/components/1.19.0-alpha.1/envoyfilter.Istio.meshery.layer5.io_meshmodel.json +++ b/templates/meshmodel/components/1.19.0-alpha.1/envoyfilter.Istio.meshery.layer5.io_meshmodel.json @@ -1 +1 @@ -{"kind":"EnvoyFilter","apiVersion":"networking.istio.io/v1alpha3","displayName":"Envoy Filter","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"description\": \"Customizing Envoy configuration generated by Istio. See more details at: https://istio.io/docs/reference/config/networking/envoy-filter.html\",\n \"properties\": {\n \"configPatches\": {\n \"description\": \"One or more patches with match conditions.\",\n \"items\": {\n \"properties\": {\n \"applyTo\": {\n \"enum\": [\n \"INVALID\",\n \"LISTENER\",\n \"FILTER_CHAIN\",\n \"NETWORK_FILTER\",\n \"HTTP_FILTER\",\n \"ROUTE_CONFIGURATION\",\n \"VIRTUAL_HOST\",\n \"HTTP_ROUTE\",\n \"CLUSTER\",\n \"EXTENSION_CONFIG\",\n \"BOOTSTRAP\",\n \"LISTENER_FILTER\"\n ],\n \"type\": \"string\"\n },\n \"match\": {\n \"description\": \"Match on listener/route configuration/cluster.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"listener\"\n ]\n },\n {\n \"required\": [\n \"routeConfiguration\"\n ]\n },\n {\n \"required\": [\n \"cluster\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"listener\"\n ]\n },\n {\n \"required\": [\n \"routeConfiguration\"\n ]\n },\n {\n \"required\": [\n \"cluster\"\n ]\n }\n ],\n \"properties\": {\n \"cluster\": {\n \"description\": \"Match on envoy cluster attributes.\",\n \"properties\": {\n \"name\": {\n \"description\": \"The exact name of the cluster to match.\",\n \"type\": \"string\"\n },\n \"portNumber\": {\n \"description\": \"The service port for which this cluster was generated.\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"The fully qualified service name for this cluster.\",\n \"type\": \"string\"\n },\n \"subset\": {\n \"description\": \"The subset associated with the service.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"context\": {\n \"description\": \"The specific config generation context to match on.\",\n \"enum\": [\n \"ANY\",\n \"SIDECAR_INBOUND\",\n \"SIDECAR_OUTBOUND\",\n \"GATEWAY\"\n ],\n \"type\": \"string\"\n },\n \"listener\": {\n \"description\": \"Match on envoy listener attributes.\",\n \"properties\": {\n \"filterChain\": {\n \"description\": \"Match a specific filter chain in a listener.\",\n \"properties\": {\n \"applicationProtocols\": {\n \"description\": \"Applies only to sidecars.\",\n \"type\": \"string\"\n },\n \"destinationPort\": {\n \"description\": \"The destination_port value used by a filter chain's match condition.\",\n \"type\": \"integer\"\n },\n \"filter\": {\n \"description\": \"The name of a specific filter to apply the patch to.\",\n \"properties\": {\n \"name\": {\n \"description\": \"The filter name to match on.\",\n \"type\": \"string\"\n },\n \"subFilter\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The filter name to match on.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"The name assigned to the filter chain.\",\n \"type\": \"string\"\n },\n \"sni\": {\n \"description\": \"The SNI value used by a filter chain's match condition.\",\n \"type\": \"string\"\n },\n \"transportProtocol\": {\n \"description\": \"Applies only to `SIDECAR_INBOUND` context.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"listenerFilter\": {\n \"description\": \"Match a specific listener filter.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Match a specific listener by its name.\",\n \"type\": \"string\"\n },\n \"portName\": {\n \"type\": \"string\"\n },\n \"portNumber\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"proxy\": {\n \"description\": \"Match on properties associated with a proxy.\",\n \"properties\": {\n \"metadata\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"proxyVersion\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"routeConfiguration\": {\n \"description\": \"Match on envoy HTTP route configuration attributes.\",\n \"properties\": {\n \"gateway\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Route configuration name to match on.\",\n \"type\": \"string\"\n },\n \"portName\": {\n \"description\": \"Applicable only for GATEWAY context.\",\n \"type\": \"string\"\n },\n \"portNumber\": {\n \"type\": \"integer\"\n },\n \"vhost\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"route\": {\n \"description\": \"Match a specific route within the virtual host.\",\n \"properties\": {\n \"action\": {\n \"description\": \"Match a route with specific action type.\",\n \"enum\": [\n \"ANY\",\n \"ROUTE\",\n \"REDIRECT\",\n \"DIRECT_RESPONSE\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"patch\": {\n \"description\": \"The patch to apply along with the operation.\",\n \"properties\": {\n \"filterClass\": {\n \"description\": \"Determines the filter insertion order.\",\n \"enum\": [\n \"UNSPECIFIED\",\n \"AUTHN\",\n \"AUTHZ\",\n \"STATS\"\n ],\n \"type\": \"string\"\n },\n \"operation\": {\n \"description\": \"Determines how the patch should be applied.\",\n \"enum\": [\n \"INVALID\",\n \"MERGE\",\n \"ADD\",\n \"REMOVE\",\n \"INSERT_BEFORE\",\n \"INSERT_AFTER\",\n \"INSERT_FIRST\",\n \"REPLACE\"\n ],\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The JSON config of the object being patched.\",\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"priority\": {\n \"description\": \"Priority defines the order in which patch sets are applied within a context.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"workloadSelector\": {\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Envoy Filter\",\n \"type\": \"object\"\n}"} \ No newline at end of file +{"kind":"EnvoyFilter","apiVersion":"networking.istio.io/v1alpha3","displayName":"Envoy Filter","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"properties\": {\n \"spec\": {\n \"description\": \"Customizing Envoy configuration generated by Istio. See more details at: https://istio.io/docs/reference/config/networking/envoy-filter.html\",\n \"properties\": {\n \"configPatches\": {\n \"description\": \"One or more patches with match conditions.\",\n \"items\": {\n \"properties\": {\n \"applyTo\": {\n \"enum\": [\n \"INVALID\",\n \"LISTENER\",\n \"FILTER_CHAIN\",\n \"NETWORK_FILTER\",\n \"HTTP_FILTER\",\n \"ROUTE_CONFIGURATION\",\n \"VIRTUAL_HOST\",\n \"HTTP_ROUTE\",\n \"CLUSTER\",\n \"EXTENSION_CONFIG\",\n \"BOOTSTRAP\",\n \"LISTENER_FILTER\"\n ],\n \"type\": \"string\"\n },\n \"match\": {\n \"description\": \"Match on listener/route configuration/cluster.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"listener\"\n ]\n },\n {\n \"required\": [\n \"routeConfiguration\"\n ]\n },\n {\n \"required\": [\n \"cluster\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"listener\"\n ]\n },\n {\n \"required\": [\n \"routeConfiguration\"\n ]\n },\n {\n \"required\": [\n \"cluster\"\n ]\n }\n ],\n \"properties\": {\n \"cluster\": {\n \"description\": \"Match on envoy cluster attributes.\",\n \"properties\": {\n \"name\": {\n \"description\": \"The exact name of the cluster to match.\",\n \"type\": \"string\"\n },\n \"portNumber\": {\n \"description\": \"The service port for which this cluster was generated.\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"The fully qualified service name for this cluster.\",\n \"type\": \"string\"\n },\n \"subset\": {\n \"description\": \"The subset associated with the service.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"context\": {\n \"description\": \"The specific config generation context to match on.\",\n \"enum\": [\n \"ANY\",\n \"SIDECAR_INBOUND\",\n \"SIDECAR_OUTBOUND\",\n \"GATEWAY\"\n ],\n \"type\": \"string\"\n },\n \"listener\": {\n \"description\": \"Match on envoy listener attributes.\",\n \"properties\": {\n \"filterChain\": {\n \"description\": \"Match a specific filter chain in a listener.\",\n \"properties\": {\n \"applicationProtocols\": {\n \"description\": \"Applies only to sidecars.\",\n \"type\": \"string\"\n },\n \"destinationPort\": {\n \"description\": \"The destination_port value used by a filter chain's match condition.\",\n \"type\": \"integer\"\n },\n \"filter\": {\n \"description\": \"The name of a specific filter to apply the patch to.\",\n \"properties\": {\n \"name\": {\n \"description\": \"The filter name to match on.\",\n \"type\": \"string\"\n },\n \"subFilter\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The filter name to match on.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"The name assigned to the filter chain.\",\n \"type\": \"string\"\n },\n \"sni\": {\n \"description\": \"The SNI value used by a filter chain's match condition.\",\n \"type\": \"string\"\n },\n \"transportProtocol\": {\n \"description\": \"Applies only to `SIDECAR_INBOUND` context.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"listenerFilter\": {\n \"description\": \"Match a specific listener filter.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Match a specific listener by its name.\",\n \"type\": \"string\"\n },\n \"portName\": {\n \"type\": \"string\"\n },\n \"portNumber\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"proxy\": {\n \"description\": \"Match on properties associated with a proxy.\",\n \"properties\": {\n \"metadata\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"proxyVersion\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"routeConfiguration\": {\n \"description\": \"Match on envoy HTTP route configuration attributes.\",\n \"properties\": {\n \"gateway\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Route configuration name to match on.\",\n \"type\": \"string\"\n },\n \"portName\": {\n \"description\": \"Applicable only for GATEWAY context.\",\n \"type\": \"string\"\n },\n \"portNumber\": {\n \"type\": \"integer\"\n },\n \"vhost\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"route\": {\n \"description\": \"Match a specific route within the virtual host.\",\n \"properties\": {\n \"action\": {\n \"description\": \"Match a route with specific action type.\",\n \"enum\": [\n \"ANY\",\n \"ROUTE\",\n \"REDIRECT\",\n \"DIRECT_RESPONSE\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"patch\": {\n \"description\": \"The patch to apply along with the operation.\",\n \"properties\": {\n \"filterClass\": {\n \"description\": \"Determines the filter insertion order.\",\n \"enum\": [\n \"UNSPECIFIED\",\n \"AUTHN\",\n \"AUTHZ\",\n \"STATS\"\n ],\n \"type\": \"string\"\n },\n \"operation\": {\n \"description\": \"Determines how the patch should be applied.\",\n \"enum\": [\n \"INVALID\",\n \"MERGE\",\n \"ADD\",\n \"REMOVE\",\n \"INSERT_BEFORE\",\n \"INSERT_AFTER\",\n \"INSERT_FIRST\",\n \"REPLACE\"\n ],\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The JSON config of the object being patched.\",\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"priority\": {\n \"description\": \"Priority defines the order in which patch sets are applied within a context.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"workloadSelector\": {\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n }\n },\n \"title\": \"Envoy Filter\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/1.19.0-alpha.1/gateway.Istio.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/1.19.0-alpha.1/gateway.Istio.meshery.layer5.io_meshmodel.json index d1ef8be00..9d50be475 100644 --- a/templates/meshmodel/components/1.19.0-alpha.1/gateway.Istio.meshery.layer5.io_meshmodel.json +++ b/templates/meshmodel/components/1.19.0-alpha.1/gateway.Istio.meshery.layer5.io_meshmodel.json @@ -1 +1 @@ -{"kind":"Gateway","apiVersion":"networking.istio.io/v1alpha3","displayName":"Gateway","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"description\": \"Configuration affecting edge load balancer. See more details at: https://istio.io/docs/reference/config/networking/gateway.html\",\n \"properties\": {\n \"selector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"servers\": {\n \"description\": \"A list of server specifications.\",\n \"items\": {\n \"properties\": {\n \"bind\": {\n \"type\": \"string\"\n },\n \"defaultEndpoint\": {\n \"type\": \"string\"\n },\n \"hosts\": {\n \"description\": \"One or more hosts exposed by this gateway.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"An optional name of the server, when set must be unique across all servers.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"properties\": {\n \"name\": {\n \"description\": \"Label assigned to the port.\",\n \"type\": \"string\"\n },\n \"number\": {\n \"description\": \"A valid non-negative integer port number.\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"description\": \"The protocol exposed on the port.\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"description\": \"Set of TLS related options that govern the server's behavior.\",\n \"properties\": {\n \"caCertificates\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"cipherSuites\": {\n \"description\": \"Optional: If specified, only support the specified cipher list.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"credentialName\": {\n \"type\": \"string\"\n },\n \"httpsRedirect\": {\n \"type\": \"boolean\"\n },\n \"maxProtocolVersion\": {\n \"description\": \"Optional: Maximum TLS protocol version.\",\n \"enum\": [\n \"TLS_AUTO\",\n \"TLSV1_0\",\n \"TLSV1_1\",\n \"TLSV1_2\",\n \"TLSV1_3\"\n ],\n \"type\": \"string\"\n },\n \"minProtocolVersion\": {\n \"description\": \"Optional: Minimum TLS protocol version.\",\n \"enum\": [\n \"TLS_AUTO\",\n \"TLSV1_0\",\n \"TLSV1_1\",\n \"TLSV1_2\",\n \"TLSV1_3\"\n ],\n \"type\": \"string\"\n },\n \"mode\": {\n \"enum\": [\n \"PASSTHROUGH\",\n \"SIMPLE\",\n \"MUTUAL\",\n \"AUTO_PASSTHROUGH\",\n \"ISTIO_MUTUAL\"\n ],\n \"type\": \"string\"\n },\n \"privateKey\": {\n \"description\": \"REQUIRED if mode is `SIMPLE` or `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"serverCertificate\": {\n \"description\": \"REQUIRED if mode is `SIMPLE` or `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"subjectAltNames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"verifyCertificateHash\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"verifyCertificateSpki\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"title\": \"Gateway\",\n \"type\": \"object\"\n}"} \ No newline at end of file +{"kind":"Gateway","apiVersion":"networking.istio.io/v1alpha3","displayName":"Gateway","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"properties\": {\n \"spec\": {\n \"description\": \"Configuration affecting edge load balancer. See more details at: https://istio.io/docs/reference/config/networking/gateway.html\",\n \"properties\": {\n \"selector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"servers\": {\n \"description\": \"A list of server specifications.\",\n \"items\": {\n \"properties\": {\n \"bind\": {\n \"type\": \"string\"\n },\n \"defaultEndpoint\": {\n \"type\": \"string\"\n },\n \"hosts\": {\n \"description\": \"One or more hosts exposed by this gateway.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"An optional name of the server, when set must be unique across all servers.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"properties\": {\n \"name\": {\n \"description\": \"Label assigned to the port.\",\n \"type\": \"string\"\n },\n \"number\": {\n \"description\": \"A valid non-negative integer port number.\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"description\": \"The protocol exposed on the port.\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"description\": \"Set of TLS related options that govern the server's behavior.\",\n \"properties\": {\n \"caCertificates\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"cipherSuites\": {\n \"description\": \"Optional: If specified, only support the specified cipher list.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"credentialName\": {\n \"type\": \"string\"\n },\n \"httpsRedirect\": {\n \"type\": \"boolean\"\n },\n \"maxProtocolVersion\": {\n \"description\": \"Optional: Maximum TLS protocol version.\",\n \"enum\": [\n \"TLS_AUTO\",\n \"TLSV1_0\",\n \"TLSV1_1\",\n \"TLSV1_2\",\n \"TLSV1_3\"\n ],\n \"type\": \"string\"\n },\n \"minProtocolVersion\": {\n \"description\": \"Optional: Minimum TLS protocol version.\",\n \"enum\": [\n \"TLS_AUTO\",\n \"TLSV1_0\",\n \"TLSV1_1\",\n \"TLSV1_2\",\n \"TLSV1_3\"\n ],\n \"type\": \"string\"\n },\n \"mode\": {\n \"enum\": [\n \"PASSTHROUGH\",\n \"SIMPLE\",\n \"MUTUAL\",\n \"AUTO_PASSTHROUGH\",\n \"ISTIO_MUTUAL\"\n ],\n \"type\": \"string\"\n },\n \"privateKey\": {\n \"description\": \"REQUIRED if mode is `SIMPLE` or `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"serverCertificate\": {\n \"description\": \"REQUIRED if mode is `SIMPLE` or `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"subjectAltNames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"verifyCertificateHash\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"verifyCertificateSpki\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n }\n },\n \"title\": \"Gateway\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/1.19.0-alpha.1/peerauthentication.Istio.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/1.19.0-alpha.1/peerauthentication.Istio.meshery.layer5.io_meshmodel.json index 809eb98b8..3d5a065bc 100644 --- a/templates/meshmodel/components/1.19.0-alpha.1/peerauthentication.Istio.meshery.layer5.io_meshmodel.json +++ b/templates/meshmodel/components/1.19.0-alpha.1/peerauthentication.Istio.meshery.layer5.io_meshmodel.json @@ -1 +1 @@ -{"kind":"PeerAuthentication","apiVersion":"security.istio.io/v1beta1","displayName":"Peer Authentication","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"description\": \"PeerAuthentication defines how traffic will be tunneled (or not) to the sidecar.\",\n \"properties\": {\n \"mtls\": {\n \"description\": \"Mutual TLS settings for workload.\",\n \"properties\": {\n \"mode\": {\n \"description\": \"Defines the mTLS mode used for peer authentication.\",\n \"enum\": [\n \"UNSET\",\n \"DISABLE\",\n \"PERMISSIVE\",\n \"STRICT\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"portLevelMtls\": {\n \"additionalProperties\": {\n \"properties\": {\n \"mode\": {\n \"description\": \"Defines the mTLS mode used for peer authentication.\",\n \"enum\": [\n \"UNSET\",\n \"DISABLE\",\n \"PERMISSIVE\",\n \"STRICT\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": \"Port specific mutual TLS settings.\",\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"The selector determines the workloads to apply the ChannelAuthentication on.\",\n \"properties\": {\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Peer Authentication\",\n \"type\": \"object\"\n}"} \ No newline at end of file +{"kind":"PeerAuthentication","apiVersion":"security.istio.io/v1beta1","displayName":"Peer Authentication","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"properties\": {\n \"spec\": {\n \"description\": \"PeerAuthentication defines how traffic will be tunneled (or not) to the sidecar.\",\n \"properties\": {\n \"mtls\": {\n \"description\": \"Mutual TLS settings for workload.\",\n \"properties\": {\n \"mode\": {\n \"description\": \"Defines the mTLS mode used for peer authentication.\",\n \"enum\": [\n \"UNSET\",\n \"DISABLE\",\n \"PERMISSIVE\",\n \"STRICT\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"portLevelMtls\": {\n \"additionalProperties\": {\n \"properties\": {\n \"mode\": {\n \"description\": \"Defines the mTLS mode used for peer authentication.\",\n \"enum\": [\n \"UNSET\",\n \"DISABLE\",\n \"PERMISSIVE\",\n \"STRICT\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": \"Port specific mutual TLS settings.\",\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"The selector determines the workloads to apply the ChannelAuthentication on.\",\n \"properties\": {\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n }\n },\n \"title\": \"Peer Authentication\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/1.19.0-alpha.1/proxyconfig.Istio.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/1.19.0-alpha.1/proxyconfig.Istio.meshery.layer5.io_meshmodel.json index 775be3d86..74c97e4c2 100644 --- a/templates/meshmodel/components/1.19.0-alpha.1/proxyconfig.Istio.meshery.layer5.io_meshmodel.json +++ b/templates/meshmodel/components/1.19.0-alpha.1/proxyconfig.Istio.meshery.layer5.io_meshmodel.json @@ -1 +1 @@ -{"kind":"ProxyConfig","apiVersion":"networking.istio.io/v1beta1","displayName":"Proxy Config","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"description\": \"Provides configuration for individual workloads. See more details at: https://istio.io/docs/reference/config/networking/proxy-config.html\",\n \"properties\": {\n \"concurrency\": {\n \"description\": \"The number of worker threads to run.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"environmentVariables\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Additional environment variables for the proxy.\",\n \"type\": \"object\"\n },\n \"image\": {\n \"description\": \"Specifies the details of the proxy image.\",\n \"properties\": {\n \"imageType\": {\n \"description\": \"The image type of the image.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"Optional.\",\n \"properties\": {\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Proxy Config\",\n \"type\": \"object\"\n}"} \ No newline at end of file +{"kind":"ProxyConfig","apiVersion":"networking.istio.io/v1beta1","displayName":"Proxy Config","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"properties\": {\n \"spec\": {\n \"description\": \"Provides configuration for individual workloads. See more details at: https://istio.io/docs/reference/config/networking/proxy-config.html\",\n \"properties\": {\n \"concurrency\": {\n \"description\": \"The number of worker threads to run.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"environmentVariables\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Additional environment variables for the proxy.\",\n \"type\": \"object\"\n },\n \"image\": {\n \"description\": \"Specifies the details of the proxy image.\",\n \"properties\": {\n \"imageType\": {\n \"description\": \"The image type of the image.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"Optional.\",\n \"properties\": {\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n }\n },\n \"title\": \"Proxy Config\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/1.19.0-alpha.1/requestauthentication.Istio.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/1.19.0-alpha.1/requestauthentication.Istio.meshery.layer5.io_meshmodel.json index 2a6111f88..29697e906 100644 --- a/templates/meshmodel/components/1.19.0-alpha.1/requestauthentication.Istio.meshery.layer5.io_meshmodel.json +++ b/templates/meshmodel/components/1.19.0-alpha.1/requestauthentication.Istio.meshery.layer5.io_meshmodel.json @@ -1 +1 @@ -{"kind":"RequestAuthentication","apiVersion":"security.istio.io/v1","displayName":"Request Authentication","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"description\": \"RequestAuthentication defines what request authentication methods are supported by a workload.\",\n \"properties\": {\n \"jwtRules\": {\n \"description\": \"Define the list of JWTs that can be validated at the selected workloads' proxy.\",\n \"items\": {\n \"properties\": {\n \"audiences\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"forwardOriginalToken\": {\n \"description\": \"If set to true, the original token will be kept for the upstream request.\",\n \"type\": \"boolean\"\n },\n \"fromHeaders\": {\n \"description\": \"List of header locations from which JWT is expected.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The HTTP header name.\",\n \"type\": \"string\"\n },\n \"prefix\": {\n \"description\": \"The prefix that should be stripped before decoding the token.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"fromParams\": {\n \"description\": \"List of query parameters from which JWT is expected.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"issuer\": {\n \"description\": \"Identifies the issuer that issued the JWT.\",\n \"type\": \"string\"\n },\n \"jwks\": {\n \"description\": \"JSON Web Key Set of public keys to validate signature of the JWT.\",\n \"type\": \"string\"\n },\n \"jwksUri\": {\n \"type\": \"string\"\n },\n \"jwks_uri\": {\n \"type\": \"string\"\n },\n \"outputClaimToHeaders\": {\n \"description\": \"This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.\",\n \"items\": {\n \"properties\": {\n \"claim\": {\n \"description\": \"The name of the claim to be copied from.\",\n \"type\": \"string\"\n },\n \"header\": {\n \"description\": \"The name of the header to be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"outputPayloadToHeader\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"selector\": {\n \"description\": \"Optional.\",\n \"properties\": {\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Request Authentication\",\n \"type\": \"object\"\n}"} \ No newline at end of file +{"kind":"RequestAuthentication","apiVersion":"security.istio.io/v1","displayName":"Request Authentication","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"properties\": {\n \"spec\": {\n \"description\": \"RequestAuthentication defines what request authentication methods are supported by a workload.\",\n \"properties\": {\n \"jwtRules\": {\n \"description\": \"Define the list of JWTs that can be validated at the selected workloads' proxy.\",\n \"items\": {\n \"properties\": {\n \"audiences\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"forwardOriginalToken\": {\n \"description\": \"If set to true, the original token will be kept for the upstream request.\",\n \"type\": \"boolean\"\n },\n \"fromHeaders\": {\n \"description\": \"List of header locations from which JWT is expected.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The HTTP header name.\",\n \"type\": \"string\"\n },\n \"prefix\": {\n \"description\": \"The prefix that should be stripped before decoding the token.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"fromParams\": {\n \"description\": \"List of query parameters from which JWT is expected.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"issuer\": {\n \"description\": \"Identifies the issuer that issued the JWT.\",\n \"type\": \"string\"\n },\n \"jwks\": {\n \"description\": \"JSON Web Key Set of public keys to validate signature of the JWT.\",\n \"type\": \"string\"\n },\n \"jwksUri\": {\n \"type\": \"string\"\n },\n \"jwks_uri\": {\n \"type\": \"string\"\n },\n \"outputClaimToHeaders\": {\n \"description\": \"This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.\",\n \"items\": {\n \"properties\": {\n \"claim\": {\n \"description\": \"The name of the claim to be copied from.\",\n \"type\": \"string\"\n },\n \"header\": {\n \"description\": \"The name of the header to be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"outputPayloadToHeader\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"selector\": {\n \"description\": \"Optional.\",\n \"properties\": {\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n }\n },\n \"title\": \"Request Authentication\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/1.19.0-alpha.1/serviceentry.Istio.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/1.19.0-alpha.1/serviceentry.Istio.meshery.layer5.io_meshmodel.json index 2ca9c898e..ef63d181a 100644 --- a/templates/meshmodel/components/1.19.0-alpha.1/serviceentry.Istio.meshery.layer5.io_meshmodel.json +++ b/templates/meshmodel/components/1.19.0-alpha.1/serviceentry.Istio.meshery.layer5.io_meshmodel.json @@ -1 +1 @@ -{"kind":"ServiceEntry","apiVersion":"networking.istio.io/v1alpha3","displayName":"Service Entry","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"description\": \"Configuration affecting service registry. See more details at: https://istio.io/docs/reference/config/networking/service-entry.html\",\n \"properties\": {\n \"addresses\": {\n \"description\": \"The virtual IP addresses associated with the service.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"endpoints\": {\n \"description\": \"One or more endpoints associated with the service.\",\n \"items\": {\n \"properties\": {\n \"address\": {\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"One or more labels associated with the endpoint.\",\n \"type\": \"object\"\n },\n \"locality\": {\n \"description\": \"The locality associated with the endpoint.\",\n \"type\": \"string\"\n },\n \"network\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Set of ports associated with the endpoint.\",\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"weight\": {\n \"description\": \"The load balancing weight associated with the endpoint.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"exportTo\": {\n \"description\": \"A list of namespaces to which this service is exported.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"hosts\": {\n \"description\": \"The hosts associated with the ServiceEntry.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"location\": {\n \"enum\": [\n \"MESH_EXTERNAL\",\n \"MESH_INTERNAL\"\n ],\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"The ports associated with the external service.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"Label assigned to the port.\",\n \"type\": \"string\"\n },\n \"number\": {\n \"description\": \"A valid non-negative integer port number.\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"description\": \"The protocol exposed on the port.\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"resolution\": {\n \"description\": \"Service resolution mode for the hosts.\",\n \"enum\": [\n \"NONE\",\n \"STATIC\",\n \"DNS\",\n \"DNS_ROUND_ROBIN\"\n ],\n \"type\": \"string\"\n },\n \"subjectAltNames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"workloadSelector\": {\n \"description\": \"Applicable only for MESH_INTERNAL services.\",\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Service Entry\",\n \"type\": \"object\"\n}"} \ No newline at end of file +{"kind":"ServiceEntry","apiVersion":"networking.istio.io/v1alpha3","displayName":"Service Entry","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"properties\": {\n \"spec\": {\n \"description\": \"Configuration affecting service registry. See more details at: https://istio.io/docs/reference/config/networking/service-entry.html\",\n \"properties\": {\n \"addresses\": {\n \"description\": \"The virtual IP addresses associated with the service.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"endpoints\": {\n \"description\": \"One or more endpoints associated with the service.\",\n \"items\": {\n \"properties\": {\n \"address\": {\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"One or more labels associated with the endpoint.\",\n \"type\": \"object\"\n },\n \"locality\": {\n \"description\": \"The locality associated with the endpoint.\",\n \"type\": \"string\"\n },\n \"network\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Set of ports associated with the endpoint.\",\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"weight\": {\n \"description\": \"The load balancing weight associated with the endpoint.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"exportTo\": {\n \"description\": \"A list of namespaces to which this service is exported.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"hosts\": {\n \"description\": \"The hosts associated with the ServiceEntry.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"location\": {\n \"enum\": [\n \"MESH_EXTERNAL\",\n \"MESH_INTERNAL\"\n ],\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"The ports associated with the external service.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"Label assigned to the port.\",\n \"type\": \"string\"\n },\n \"number\": {\n \"description\": \"A valid non-negative integer port number.\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"description\": \"The protocol exposed on the port.\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"resolution\": {\n \"description\": \"Service resolution mode for the hosts.\",\n \"enum\": [\n \"NONE\",\n \"STATIC\",\n \"DNS\",\n \"DNS_ROUND_ROBIN\"\n ],\n \"type\": \"string\"\n },\n \"subjectAltNames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"workloadSelector\": {\n \"description\": \"Applicable only for MESH_INTERNAL services.\",\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n }\n },\n \"title\": \"Service Entry\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/1.19.0-alpha.1/sidecar.Istio.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/1.19.0-alpha.1/sidecar.Istio.meshery.layer5.io_meshmodel.json index e851906bb..d13a24f75 100644 --- a/templates/meshmodel/components/1.19.0-alpha.1/sidecar.Istio.meshery.layer5.io_meshmodel.json +++ b/templates/meshmodel/components/1.19.0-alpha.1/sidecar.Istio.meshery.layer5.io_meshmodel.json @@ -1 +1 @@ -{"kind":"Sidecar","apiVersion":"networking.istio.io/v1alpha3","displayName":"Sidecar","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"description\": \"Configuration affecting network reachability of a sidecar. See more details at: https://istio.io/docs/reference/config/networking/sidecar.html\",\n \"properties\": {\n \"egress\": {\n \"items\": {\n \"properties\": {\n \"bind\": {\n \"type\": \"string\"\n },\n \"captureMode\": {\n \"enum\": [\n \"DEFAULT\",\n \"IPTABLES\",\n \"NONE\"\n ],\n \"type\": \"string\"\n },\n \"hosts\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"port\": {\n \"description\": \"The port associated with the listener.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Label assigned to the port.\",\n \"type\": \"string\"\n },\n \"number\": {\n \"description\": \"A valid non-negative integer port number.\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"description\": \"The protocol exposed on the port.\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"ingress\": {\n \"items\": {\n \"properties\": {\n \"bind\": {\n \"description\": \"The IP(IPv4 or IPv6) to which the listener should be bound.\",\n \"type\": \"string\"\n },\n \"captureMode\": {\n \"enum\": [\n \"DEFAULT\",\n \"IPTABLES\",\n \"NONE\"\n ],\n \"type\": \"string\"\n },\n \"defaultEndpoint\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"The port associated with the listener.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Label assigned to the port.\",\n \"type\": \"string\"\n },\n \"number\": {\n \"description\": \"A valid non-negative integer port number.\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"description\": \"The protocol exposed on the port.\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"properties\": {\n \"caCertificates\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"cipherSuites\": {\n \"description\": \"Optional: If specified, only support the specified cipher list.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"credentialName\": {\n \"type\": \"string\"\n },\n \"httpsRedirect\": {\n \"type\": \"boolean\"\n },\n \"maxProtocolVersion\": {\n \"description\": \"Optional: Maximum TLS protocol version.\",\n \"enum\": [\n \"TLS_AUTO\",\n \"TLSV1_0\",\n \"TLSV1_1\",\n \"TLSV1_2\",\n \"TLSV1_3\"\n ],\n \"type\": \"string\"\n },\n \"minProtocolVersion\": {\n \"description\": \"Optional: Minimum TLS protocol version.\",\n \"enum\": [\n \"TLS_AUTO\",\n \"TLSV1_0\",\n \"TLSV1_1\",\n \"TLSV1_2\",\n \"TLSV1_3\"\n ],\n \"type\": \"string\"\n },\n \"mode\": {\n \"enum\": [\n \"PASSTHROUGH\",\n \"SIMPLE\",\n \"MUTUAL\",\n \"AUTO_PASSTHROUGH\",\n \"ISTIO_MUTUAL\"\n ],\n \"type\": \"string\"\n },\n \"privateKey\": {\n \"description\": \"REQUIRED if mode is `SIMPLE` or `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"serverCertificate\": {\n \"description\": \"REQUIRED if mode is `SIMPLE` or `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"subjectAltNames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"verifyCertificateHash\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"verifyCertificateSpki\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"outboundTrafficPolicy\": {\n \"description\": \"Configuration for the outbound traffic policy.\",\n \"properties\": {\n \"egressProxy\": {\n \"properties\": {\n \"host\": {\n \"description\": \"The name of a service from the service registry.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed.\",\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"subset\": {\n \"description\": \"The name of a subset within the service.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"mode\": {\n \"enum\": [\n \"REGISTRY_ONLY\",\n \"ALLOW_ANY\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"workloadSelector\": {\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Sidecar\",\n \"type\": \"object\"\n}"} \ No newline at end of file +{"kind":"Sidecar","apiVersion":"networking.istio.io/v1alpha3","displayName":"Sidecar","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"properties\": {\n \"spec\": {\n \"description\": \"Configuration affecting network reachability of a sidecar. See more details at: https://istio.io/docs/reference/config/networking/sidecar.html\",\n \"properties\": {\n \"egress\": {\n \"items\": {\n \"properties\": {\n \"bind\": {\n \"type\": \"string\"\n },\n \"captureMode\": {\n \"enum\": [\n \"DEFAULT\",\n \"IPTABLES\",\n \"NONE\"\n ],\n \"type\": \"string\"\n },\n \"hosts\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"port\": {\n \"description\": \"The port associated with the listener.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Label assigned to the port.\",\n \"type\": \"string\"\n },\n \"number\": {\n \"description\": \"A valid non-negative integer port number.\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"description\": \"The protocol exposed on the port.\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"ingress\": {\n \"items\": {\n \"properties\": {\n \"bind\": {\n \"description\": \"The IP(IPv4 or IPv6) to which the listener should be bound.\",\n \"type\": \"string\"\n },\n \"captureMode\": {\n \"enum\": [\n \"DEFAULT\",\n \"IPTABLES\",\n \"NONE\"\n ],\n \"type\": \"string\"\n },\n \"defaultEndpoint\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"The port associated with the listener.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Label assigned to the port.\",\n \"type\": \"string\"\n },\n \"number\": {\n \"description\": \"A valid non-negative integer port number.\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"description\": \"The protocol exposed on the port.\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"properties\": {\n \"caCertificates\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"cipherSuites\": {\n \"description\": \"Optional: If specified, only support the specified cipher list.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"credentialName\": {\n \"type\": \"string\"\n },\n \"httpsRedirect\": {\n \"type\": \"boolean\"\n },\n \"maxProtocolVersion\": {\n \"description\": \"Optional: Maximum TLS protocol version.\",\n \"enum\": [\n \"TLS_AUTO\",\n \"TLSV1_0\",\n \"TLSV1_1\",\n \"TLSV1_2\",\n \"TLSV1_3\"\n ],\n \"type\": \"string\"\n },\n \"minProtocolVersion\": {\n \"description\": \"Optional: Minimum TLS protocol version.\",\n \"enum\": [\n \"TLS_AUTO\",\n \"TLSV1_0\",\n \"TLSV1_1\",\n \"TLSV1_2\",\n \"TLSV1_3\"\n ],\n \"type\": \"string\"\n },\n \"mode\": {\n \"enum\": [\n \"PASSTHROUGH\",\n \"SIMPLE\",\n \"MUTUAL\",\n \"AUTO_PASSTHROUGH\",\n \"ISTIO_MUTUAL\"\n ],\n \"type\": \"string\"\n },\n \"privateKey\": {\n \"description\": \"REQUIRED if mode is `SIMPLE` or `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"serverCertificate\": {\n \"description\": \"REQUIRED if mode is `SIMPLE` or `MUTUAL`.\",\n \"type\": \"string\"\n },\n \"subjectAltNames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"verifyCertificateHash\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"verifyCertificateSpki\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"outboundTrafficPolicy\": {\n \"description\": \"Configuration for the outbound traffic policy.\",\n \"properties\": {\n \"egressProxy\": {\n \"properties\": {\n \"host\": {\n \"description\": \"The name of a service from the service registry.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed.\",\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"subset\": {\n \"description\": \"The name of a subset within the service.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"mode\": {\n \"enum\": [\n \"REGISTRY_ONLY\",\n \"ALLOW_ANY\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"workloadSelector\": {\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n }\n },\n \"title\": \"Sidecar\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/1.19.0-alpha.1/telemetry.Istio.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/1.19.0-alpha.1/telemetry.Istio.meshery.layer5.io_meshmodel.json index 68951f4a8..97f491ed4 100644 --- a/templates/meshmodel/components/1.19.0-alpha.1/telemetry.Istio.meshery.layer5.io_meshmodel.json +++ b/templates/meshmodel/components/1.19.0-alpha.1/telemetry.Istio.meshery.layer5.io_meshmodel.json @@ -1 +1 @@ -{"kind":"Telemetry","apiVersion":"telemetry.istio.io/v1alpha1","displayName":"Telemetry","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"description\": \"Telemetry configuration for workloads. See more details at: https://istio.io/docs/reference/config/telemetry.html\",\n \"properties\": {\n \"accessLogging\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"disabled\": {\n \"description\": \"Controls logging.\",\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"filter\": {\n \"description\": \"Optional.\",\n \"properties\": {\n \"expression\": {\n \"description\": \"CEL expression for selecting when requests/connections should be logged.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"match\": {\n \"description\": \"Allows tailoring of logging behavior to specific conditions.\",\n \"properties\": {\n \"mode\": {\n \"enum\": [\n \"CLIENT_AND_SERVER\",\n \"CLIENT\",\n \"SERVER\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"providers\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"Required.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"metrics\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"overrides\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"disabled\": {\n \"description\": \"Optional.\",\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"match\": {\n \"description\": \"Match allows provides the scope of the override.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"metric\"\n ]\n },\n {\n \"required\": [\n \"customMetric\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"metric\"\n ]\n },\n {\n \"required\": [\n \"customMetric\"\n ]\n }\n ],\n \"properties\": {\n \"customMetric\": {\n \"description\": \"Allows free-form specification of a metric.\",\n \"type\": \"string\"\n },\n \"metric\": {\n \"description\": \"One of the well-known Istio Standard Metrics.\",\n \"enum\": [\n \"ALL_METRICS\",\n \"REQUEST_COUNT\",\n \"REQUEST_DURATION\",\n \"REQUEST_SIZE\",\n \"RESPONSE_SIZE\",\n \"TCP_OPENED_CONNECTIONS\",\n \"TCP_CLOSED_CONNECTIONS\",\n \"TCP_SENT_BYTES\",\n \"TCP_RECEIVED_BYTES\",\n \"GRPC_REQUEST_MESSAGES\",\n \"GRPC_RESPONSE_MESSAGES\"\n ],\n \"type\": \"string\"\n },\n \"mode\": {\n \"enum\": [\n \"CLIENT_AND_SERVER\",\n \"CLIENT\",\n \"SERVER\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tagOverrides\": {\n \"additionalProperties\": {\n \"properties\": {\n \"operation\": {\n \"description\": \"Operation controls whether or not to update/add a tag, or to remove it.\",\n \"enum\": [\n \"UPSERT\",\n \"REMOVE\"\n ],\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value is only considered if the operation is `UPSERT`.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": \"Optional.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"providers\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"Required.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"reportingInterval\": {\n \"description\": \"Optional.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"selector\": {\n \"description\": \"Optional.\",\n \"properties\": {\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tracing\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"customTags\": {\n \"additionalProperties\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"literal\"\n ]\n },\n {\n \"required\": [\n \"environment\"\n ]\n },\n {\n \"required\": [\n \"header\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"literal\"\n ]\n },\n {\n \"required\": [\n \"environment\"\n ]\n },\n {\n \"required\": [\n \"header\"\n ]\n }\n ],\n \"properties\": {\n \"environment\": {\n \"description\": \"Environment adds the value of an environment variable to each span.\",\n \"properties\": {\n \"defaultValue\": {\n \"description\": \"Optional.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the environment variable from which to extract the tag value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"header\": {\n \"properties\": {\n \"defaultValue\": {\n \"description\": \"Optional.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the header from which to extract the tag value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"literal\": {\n \"description\": \"Literal adds the same, hard-coded value to each span.\",\n \"properties\": {\n \"value\": {\n \"description\": \"The tag value to use.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": \"Optional.\",\n \"type\": \"object\"\n },\n \"disableSpanReporting\": {\n \"description\": \"Controls span reporting.\",\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"match\": {\n \"description\": \"Allows tailoring of behavior to specific conditions.\",\n \"properties\": {\n \"mode\": {\n \"enum\": [\n \"CLIENT_AND_SERVER\",\n \"CLIENT\",\n \"SERVER\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"providers\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"Required.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"randomSamplingPercentage\": {\n \"nullable\": true,\n \"type\": \"number\"\n },\n \"useRequestIdForTraceSampling\": {\n \"nullable\": true,\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"title\": \"Telemetry\",\n \"type\": \"object\"\n}"} \ No newline at end of file +{"kind":"Telemetry","apiVersion":"telemetry.istio.io/v1alpha1","displayName":"Telemetry","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"properties\": {\n \"spec\": {\n \"description\": \"Telemetry configuration for workloads. See more details at: https://istio.io/docs/reference/config/telemetry.html\",\n \"properties\": {\n \"accessLogging\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"disabled\": {\n \"description\": \"Controls logging.\",\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"filter\": {\n \"description\": \"Optional.\",\n \"properties\": {\n \"expression\": {\n \"description\": \"CEL expression for selecting when requests/connections should be logged.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"match\": {\n \"description\": \"Allows tailoring of logging behavior to specific conditions.\",\n \"properties\": {\n \"mode\": {\n \"enum\": [\n \"CLIENT_AND_SERVER\",\n \"CLIENT\",\n \"SERVER\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"providers\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"Required.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"metrics\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"overrides\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"disabled\": {\n \"description\": \"Optional.\",\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"match\": {\n \"description\": \"Match allows provides the scope of the override.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"metric\"\n ]\n },\n {\n \"required\": [\n \"customMetric\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"metric\"\n ]\n },\n {\n \"required\": [\n \"customMetric\"\n ]\n }\n ],\n \"properties\": {\n \"customMetric\": {\n \"description\": \"Allows free-form specification of a metric.\",\n \"type\": \"string\"\n },\n \"metric\": {\n \"description\": \"One of the well-known Istio Standard Metrics.\",\n \"enum\": [\n \"ALL_METRICS\",\n \"REQUEST_COUNT\",\n \"REQUEST_DURATION\",\n \"REQUEST_SIZE\",\n \"RESPONSE_SIZE\",\n \"TCP_OPENED_CONNECTIONS\",\n \"TCP_CLOSED_CONNECTIONS\",\n \"TCP_SENT_BYTES\",\n \"TCP_RECEIVED_BYTES\",\n \"GRPC_REQUEST_MESSAGES\",\n \"GRPC_RESPONSE_MESSAGES\"\n ],\n \"type\": \"string\"\n },\n \"mode\": {\n \"enum\": [\n \"CLIENT_AND_SERVER\",\n \"CLIENT\",\n \"SERVER\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tagOverrides\": {\n \"additionalProperties\": {\n \"properties\": {\n \"operation\": {\n \"description\": \"Operation controls whether or not to update/add a tag, or to remove it.\",\n \"enum\": [\n \"UPSERT\",\n \"REMOVE\"\n ],\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value is only considered if the operation is `UPSERT`.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": \"Optional.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"providers\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"Required.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"reportingInterval\": {\n \"description\": \"Optional.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"selector\": {\n \"description\": \"Optional.\",\n \"properties\": {\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tracing\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"customTags\": {\n \"additionalProperties\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"literal\"\n ]\n },\n {\n \"required\": [\n \"environment\"\n ]\n },\n {\n \"required\": [\n \"header\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"literal\"\n ]\n },\n {\n \"required\": [\n \"environment\"\n ]\n },\n {\n \"required\": [\n \"header\"\n ]\n }\n ],\n \"properties\": {\n \"environment\": {\n \"description\": \"Environment adds the value of an environment variable to each span.\",\n \"properties\": {\n \"defaultValue\": {\n \"description\": \"Optional.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the environment variable from which to extract the tag value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"header\": {\n \"properties\": {\n \"defaultValue\": {\n \"description\": \"Optional.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the header from which to extract the tag value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"literal\": {\n \"description\": \"Literal adds the same, hard-coded value to each span.\",\n \"properties\": {\n \"value\": {\n \"description\": \"The tag value to use.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": \"Optional.\",\n \"type\": \"object\"\n },\n \"disableSpanReporting\": {\n \"description\": \"Controls span reporting.\",\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"match\": {\n \"description\": \"Allows tailoring of behavior to specific conditions.\",\n \"properties\": {\n \"mode\": {\n \"enum\": [\n \"CLIENT_AND_SERVER\",\n \"CLIENT\",\n \"SERVER\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"providers\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"Required.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"randomSamplingPercentage\": {\n \"nullable\": true,\n \"type\": \"number\"\n },\n \"useRequestIdForTraceSampling\": {\n \"nullable\": true,\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n }\n },\n \"title\": \"Telemetry\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/1.19.0-alpha.1/virtualservice.Istio.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/1.19.0-alpha.1/virtualservice.Istio.meshery.layer5.io_meshmodel.json index 6a9127c47..16a5ad7ae 100644 --- a/templates/meshmodel/components/1.19.0-alpha.1/virtualservice.Istio.meshery.layer5.io_meshmodel.json +++ b/templates/meshmodel/components/1.19.0-alpha.1/virtualservice.Istio.meshery.layer5.io_meshmodel.json @@ -1 +1 @@ -{"kind":"VirtualService","apiVersion":"networking.istio.io/v1alpha3","displayName":"Virtual Service","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"description\": \"Configuration affecting label/content routing, sni routing, etc. See more details at: https://istio.io/docs/reference/config/networking/virtual-service.html\",\n \"properties\": {\n \"exportTo\": {\n \"description\": \"A list of namespaces to which this virtual service is exported.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"gateways\": {\n \"description\": \"The names of gateways and sidecars that should apply these routes.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"hosts\": {\n \"description\": \"The destination hosts to which traffic is being sent.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"http\": {\n \"description\": \"An ordered list of route rules for HTTP traffic.\",\n \"items\": {\n \"properties\": {\n \"corsPolicy\": {\n \"description\": \"Cross-Origin Resource Sharing policy (CORS).\",\n \"properties\": {\n \"allowCredentials\": {\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"allowHeaders\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"allowMethods\": {\n \"description\": \"List of HTTP methods allowed to access the resource.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"allowOrigin\": {\n \"description\": \"The list of origins that are allowed to perform CORS requests.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"allowOrigins\": {\n \"description\": \"String patterns that match allowed origins.\",\n \"items\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"exposeHeaders\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"maxAge\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"delegate\": {\n \"properties\": {\n \"name\": {\n \"description\": \"Name specifies the name of the delegate VirtualService.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace specifies the namespace where the delegate VirtualService resides.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"directResponse\": {\n \"description\": \"A HTTP rule can either return a direct_response, redirect or forward (default) traffic.\",\n \"properties\": {\n \"body\": {\n \"description\": \"Specifies the content of the response body.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"string\"\n ]\n },\n {\n \"required\": [\n \"bytes\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"string\"\n ]\n },\n {\n \"required\": [\n \"bytes\"\n ]\n }\n ],\n \"properties\": {\n \"bytes\": {\n \"description\": \"response body as base64 encoded bytes.\",\n \"format\": \"binary\",\n \"type\": \"string\"\n },\n \"string\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"Specifies the HTTP response status to be returned.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"fault\": {\n \"description\": \"Fault injection policy to apply on HTTP traffic at the client side.\",\n \"properties\": {\n \"abort\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpStatus\"\n ]\n },\n {\n \"required\": [\n \"grpcStatus\"\n ]\n },\n {\n \"required\": [\n \"http2Error\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpStatus\"\n ]\n },\n {\n \"required\": [\n \"grpcStatus\"\n ]\n },\n {\n \"required\": [\n \"http2Error\"\n ]\n }\n ],\n \"properties\": {\n \"grpcStatus\": {\n \"description\": \"GRPC status code to use to abort the request.\",\n \"type\": \"string\"\n },\n \"http2Error\": {\n \"type\": \"string\"\n },\n \"httpStatus\": {\n \"description\": \"HTTP status code to use to abort the Http request.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"percentage\": {\n \"description\": \"Percentage of requests to be aborted with the error code provided.\",\n \"properties\": {\n \"value\": {\n \"format\": \"double\",\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"delay\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"fixedDelay\"\n ]\n },\n {\n \"required\": [\n \"exponentialDelay\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"fixedDelay\"\n ]\n },\n {\n \"required\": [\n \"exponentialDelay\"\n ]\n }\n ],\n \"properties\": {\n \"exponentialDelay\": {\n \"type\": \"string\"\n },\n \"fixedDelay\": {\n \"description\": \"Add a fixed delay before forwarding the request.\",\n \"type\": \"string\"\n },\n \"percent\": {\n \"description\": \"Percentage of requests on which the delay will be injected (0-100).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"percentage\": {\n \"description\": \"Percentage of requests on which the delay will be injected.\",\n \"properties\": {\n \"value\": {\n \"format\": \"double\",\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"headers\": {\n \"properties\": {\n \"request\": {\n \"properties\": {\n \"add\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"remove\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"set\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"response\": {\n \"properties\": {\n \"add\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"remove\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"set\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"match\": {\n \"items\": {\n \"properties\": {\n \"authority\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gateways\": {\n \"description\": \"Names of gateways where the rule should be applied.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"headers\": {\n \"additionalProperties\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"object\"\n },\n \"ignoreUriCase\": {\n \"description\": \"Flag to specify whether the URI matching should be case-insensitive.\",\n \"type\": \"boolean\"\n },\n \"method\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"The name assigned to a match.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the ports on the host that is being addressed.\",\n \"type\": \"integer\"\n },\n \"queryParams\": {\n \"additionalProperties\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": \"Query parameters for matching.\",\n \"type\": \"object\"\n },\n \"scheme\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sourceLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"sourceNamespace\": {\n \"description\": \"Source namespace constraining the applicability of a rule to workloads in that namespace.\",\n \"type\": \"string\"\n },\n \"statPrefix\": {\n \"description\": \"The human readable prefix to use when emitting statistics for this route.\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"withoutHeaders\": {\n \"additionalProperties\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": \"withoutHeader has the same syntax with the header, but has opposite meaning.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"mirror\": {\n \"properties\": {\n \"host\": {\n \"description\": \"The name of a service from the service registry.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed.\",\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"subset\": {\n \"description\": \"The name of a subset within the service.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"mirrorPercent\": {\n \"description\": \"Percentage of the traffic to be mirrored by the `mirror` field.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"mirrorPercentage\": {\n \"description\": \"Percentage of the traffic to be mirrored by the `mirror` field.\",\n \"properties\": {\n \"value\": {\n \"format\": \"double\",\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n },\n \"mirror_percent\": {\n \"description\": \"Percentage of the traffic to be mirrored by the `mirror` field.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"The name assigned to the route for debugging purposes.\",\n \"type\": \"string\"\n },\n \"redirect\": {\n \"description\": \"A HTTP rule can either return a direct_response, redirect or forward (default) traffic.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"port\"\n ]\n },\n {\n \"required\": [\n \"derivePort\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"port\"\n ]\n },\n {\n \"required\": [\n \"derivePort\"\n ]\n }\n ],\n \"properties\": {\n \"authority\": {\n \"type\": \"string\"\n },\n \"derivePort\": {\n \"enum\": [\n \"FROM_PROTOCOL_DEFAULT\",\n \"FROM_REQUEST_PORT\"\n ],\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"On a redirect, overwrite the port portion of the URL with this value.\",\n \"type\": \"integer\"\n },\n \"redirectCode\": {\n \"type\": \"integer\"\n },\n \"scheme\": {\n \"description\": \"On a redirect, overwrite the scheme portion of the URL with this value.\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"retries\": {\n \"description\": \"Retry policy for HTTP requests.\",\n \"properties\": {\n \"attempts\": {\n \"description\": \"Number of retries to be allowed for a given request.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"perTryTimeout\": {\n \"description\": \"Timeout per attempt for a given request, including the initial call and any retries.\",\n \"type\": \"string\"\n },\n \"retryOn\": {\n \"description\": \"Specifies the conditions under which retry takes place.\",\n \"type\": \"string\"\n },\n \"retryRemoteLocalities\": {\n \"description\": \"Flag to specify whether the retries should retry to other localities.\",\n \"nullable\": true,\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"rewrite\": {\n \"description\": \"Rewrite HTTP URIs and Authority headers.\",\n \"properties\": {\n \"authority\": {\n \"description\": \"rewrite the Authority/Host header with this value.\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"type\": \"string\"\n },\n \"uriRegexRewrite\": {\n \"description\": \"rewrite the path portion of the URI with the specified regex.\",\n \"properties\": {\n \"match\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"type\": \"string\"\n },\n \"rewrite\": {\n \"description\": \"The string that should replace into matching portions of original URI.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"route\": {\n \"description\": \"A HTTP rule can either return a direct_response, redirect or forward (default) traffic.\",\n \"items\": {\n \"properties\": {\n \"destination\": {\n \"properties\": {\n \"host\": {\n \"description\": \"The name of a service from the service registry.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed.\",\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"subset\": {\n \"description\": \"The name of a subset within the service.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"headers\": {\n \"properties\": {\n \"request\": {\n \"properties\": {\n \"add\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"remove\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"set\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"response\": {\n \"properties\": {\n \"add\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"remove\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"set\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"Weight specifies the relative proportion of traffic to be forwarded to the destination.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"timeout\": {\n \"description\": \"Timeout for HTTP requests, default is disabled.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tcp\": {\n \"description\": \"An ordered list of route rules for opaque TCP traffic.\",\n \"items\": {\n \"properties\": {\n \"match\": {\n \"items\": {\n \"properties\": {\n \"destinationSubnets\": {\n \"description\": \"IPv4 or IPv6 ip addresses of destination with optional subnet.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"gateways\": {\n \"description\": \"Names of gateways where the rule should be applied.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed.\",\n \"type\": \"integer\"\n },\n \"sourceLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"sourceNamespace\": {\n \"description\": \"Source namespace constraining the applicability of a rule to workloads in that namespace.\",\n \"type\": \"string\"\n },\n \"sourceSubnet\": {\n \"description\": \"IPv4 or IPv6 ip address of source with optional subnet.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"route\": {\n \"description\": \"The destination to which the connection should be forwarded to.\",\n \"items\": {\n \"properties\": {\n \"destination\": {\n \"properties\": {\n \"host\": {\n \"description\": \"The name of a service from the service registry.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed.\",\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"subset\": {\n \"description\": \"The name of a subset within the service.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"Weight specifies the relative proportion of traffic to be forwarded to the destination.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tls\": {\n \"items\": {\n \"properties\": {\n \"match\": {\n \"items\": {\n \"properties\": {\n \"destinationSubnets\": {\n \"description\": \"IPv4 or IPv6 ip addresses of destination with optional subnet.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"gateways\": {\n \"description\": \"Names of gateways where the rule should be applied.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed.\",\n \"type\": \"integer\"\n },\n \"sniHosts\": {\n \"description\": \"SNI (server name indicator) to match on.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"sourceLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"sourceNamespace\": {\n \"description\": \"Source namespace constraining the applicability of a rule to workloads in that namespace.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"route\": {\n \"description\": \"The destination to which the connection should be forwarded to.\",\n \"items\": {\n \"properties\": {\n \"destination\": {\n \"properties\": {\n \"host\": {\n \"description\": \"The name of a service from the service registry.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed.\",\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"subset\": {\n \"description\": \"The name of a subset within the service.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"Weight specifies the relative proportion of traffic to be forwarded to the destination.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"title\": \"Virtual Service\",\n \"type\": \"object\"\n}"} \ No newline at end of file +{"kind":"VirtualService","apiVersion":"networking.istio.io/v1alpha3","displayName":"Virtual Service","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"properties\": {\n \"spec\": {\n \"description\": \"Configuration affecting label/content routing, sni routing, etc. See more details at: https://istio.io/docs/reference/config/networking/virtual-service.html\",\n \"properties\": {\n \"exportTo\": {\n \"description\": \"A list of namespaces to which this virtual service is exported.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"gateways\": {\n \"description\": \"The names of gateways and sidecars that should apply these routes.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"hosts\": {\n \"description\": \"The destination hosts to which traffic is being sent.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"http\": {\n \"description\": \"An ordered list of route rules for HTTP traffic.\",\n \"items\": {\n \"properties\": {\n \"corsPolicy\": {\n \"description\": \"Cross-Origin Resource Sharing policy (CORS).\",\n \"properties\": {\n \"allowCredentials\": {\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"allowHeaders\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"allowMethods\": {\n \"description\": \"List of HTTP methods allowed to access the resource.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"allowOrigin\": {\n \"description\": \"The list of origins that are allowed to perform CORS requests.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"allowOrigins\": {\n \"description\": \"String patterns that match allowed origins.\",\n \"items\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"exposeHeaders\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"maxAge\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"delegate\": {\n \"properties\": {\n \"name\": {\n \"description\": \"Name specifies the name of the delegate VirtualService.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace specifies the namespace where the delegate VirtualService resides.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"directResponse\": {\n \"description\": \"A HTTP rule can either return a direct_response, redirect or forward (default) traffic.\",\n \"properties\": {\n \"body\": {\n \"description\": \"Specifies the content of the response body.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"string\"\n ]\n },\n {\n \"required\": [\n \"bytes\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"string\"\n ]\n },\n {\n \"required\": [\n \"bytes\"\n ]\n }\n ],\n \"properties\": {\n \"bytes\": {\n \"description\": \"response body as base64 encoded bytes.\",\n \"format\": \"binary\",\n \"type\": \"string\"\n },\n \"string\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"Specifies the HTTP response status to be returned.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"fault\": {\n \"description\": \"Fault injection policy to apply on HTTP traffic at the client side.\",\n \"properties\": {\n \"abort\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpStatus\"\n ]\n },\n {\n \"required\": [\n \"grpcStatus\"\n ]\n },\n {\n \"required\": [\n \"http2Error\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpStatus\"\n ]\n },\n {\n \"required\": [\n \"grpcStatus\"\n ]\n },\n {\n \"required\": [\n \"http2Error\"\n ]\n }\n ],\n \"properties\": {\n \"grpcStatus\": {\n \"description\": \"GRPC status code to use to abort the request.\",\n \"type\": \"string\"\n },\n \"http2Error\": {\n \"type\": \"string\"\n },\n \"httpStatus\": {\n \"description\": \"HTTP status code to use to abort the Http request.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"percentage\": {\n \"description\": \"Percentage of requests to be aborted with the error code provided.\",\n \"properties\": {\n \"value\": {\n \"format\": \"double\",\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"delay\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"fixedDelay\"\n ]\n },\n {\n \"required\": [\n \"exponentialDelay\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"fixedDelay\"\n ]\n },\n {\n \"required\": [\n \"exponentialDelay\"\n ]\n }\n ],\n \"properties\": {\n \"exponentialDelay\": {\n \"type\": \"string\"\n },\n \"fixedDelay\": {\n \"description\": \"Add a fixed delay before forwarding the request.\",\n \"type\": \"string\"\n },\n \"percent\": {\n \"description\": \"Percentage of requests on which the delay will be injected (0-100).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"percentage\": {\n \"description\": \"Percentage of requests on which the delay will be injected.\",\n \"properties\": {\n \"value\": {\n \"format\": \"double\",\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"headers\": {\n \"properties\": {\n \"request\": {\n \"properties\": {\n \"add\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"remove\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"set\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"response\": {\n \"properties\": {\n \"add\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"remove\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"set\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"match\": {\n \"items\": {\n \"properties\": {\n \"authority\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gateways\": {\n \"description\": \"Names of gateways where the rule should be applied.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"headers\": {\n \"additionalProperties\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"object\"\n },\n \"ignoreUriCase\": {\n \"description\": \"Flag to specify whether the URI matching should be case-insensitive.\",\n \"type\": \"boolean\"\n },\n \"method\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"The name assigned to a match.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the ports on the host that is being addressed.\",\n \"type\": \"integer\"\n },\n \"queryParams\": {\n \"additionalProperties\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": \"Query parameters for matching.\",\n \"type\": \"object\"\n },\n \"scheme\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sourceLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"sourceNamespace\": {\n \"description\": \"Source namespace constraining the applicability of a rule to workloads in that namespace.\",\n \"type\": \"string\"\n },\n \"statPrefix\": {\n \"description\": \"The human readable prefix to use when emitting statistics for this route.\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"withoutHeaders\": {\n \"additionalProperties\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": \"withoutHeader has the same syntax with the header, but has opposite meaning.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"mirror\": {\n \"properties\": {\n \"host\": {\n \"description\": \"The name of a service from the service registry.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed.\",\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"subset\": {\n \"description\": \"The name of a subset within the service.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"mirrorPercent\": {\n \"description\": \"Percentage of the traffic to be mirrored by the `mirror` field.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"mirrorPercentage\": {\n \"description\": \"Percentage of the traffic to be mirrored by the `mirror` field.\",\n \"properties\": {\n \"value\": {\n \"format\": \"double\",\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n },\n \"mirror_percent\": {\n \"description\": \"Percentage of the traffic to be mirrored by the `mirror` field.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"The name assigned to the route for debugging purposes.\",\n \"type\": \"string\"\n },\n \"redirect\": {\n \"description\": \"A HTTP rule can either return a direct_response, redirect or forward (default) traffic.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"port\"\n ]\n },\n {\n \"required\": [\n \"derivePort\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"port\"\n ]\n },\n {\n \"required\": [\n \"derivePort\"\n ]\n }\n ],\n \"properties\": {\n \"authority\": {\n \"type\": \"string\"\n },\n \"derivePort\": {\n \"enum\": [\n \"FROM_PROTOCOL_DEFAULT\",\n \"FROM_REQUEST_PORT\"\n ],\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"On a redirect, overwrite the port portion of the URL with this value.\",\n \"type\": \"integer\"\n },\n \"redirectCode\": {\n \"type\": \"integer\"\n },\n \"scheme\": {\n \"description\": \"On a redirect, overwrite the scheme portion of the URL with this value.\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"retries\": {\n \"description\": \"Retry policy for HTTP requests.\",\n \"properties\": {\n \"attempts\": {\n \"description\": \"Number of retries to be allowed for a given request.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"perTryTimeout\": {\n \"description\": \"Timeout per attempt for a given request, including the initial call and any retries.\",\n \"type\": \"string\"\n },\n \"retryOn\": {\n \"description\": \"Specifies the conditions under which retry takes place.\",\n \"type\": \"string\"\n },\n \"retryRemoteLocalities\": {\n \"description\": \"Flag to specify whether the retries should retry to other localities.\",\n \"nullable\": true,\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"rewrite\": {\n \"description\": \"Rewrite HTTP URIs and Authority headers.\",\n \"properties\": {\n \"authority\": {\n \"description\": \"rewrite the Authority/Host header with this value.\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"type\": \"string\"\n },\n \"uriRegexRewrite\": {\n \"description\": \"rewrite the path portion of the URI with the specified regex.\",\n \"properties\": {\n \"match\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"type\": \"string\"\n },\n \"rewrite\": {\n \"description\": \"The string that should replace into matching portions of original URI.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"route\": {\n \"description\": \"A HTTP rule can either return a direct_response, redirect or forward (default) traffic.\",\n \"items\": {\n \"properties\": {\n \"destination\": {\n \"properties\": {\n \"host\": {\n \"description\": \"The name of a service from the service registry.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed.\",\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"subset\": {\n \"description\": \"The name of a subset within the service.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"headers\": {\n \"properties\": {\n \"request\": {\n \"properties\": {\n \"add\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"remove\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"set\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"response\": {\n \"properties\": {\n \"add\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"remove\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"set\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"Weight specifies the relative proportion of traffic to be forwarded to the destination.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"timeout\": {\n \"description\": \"Timeout for HTTP requests, default is disabled.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tcp\": {\n \"description\": \"An ordered list of route rules for opaque TCP traffic.\",\n \"items\": {\n \"properties\": {\n \"match\": {\n \"items\": {\n \"properties\": {\n \"destinationSubnets\": {\n \"description\": \"IPv4 or IPv6 ip addresses of destination with optional subnet.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"gateways\": {\n \"description\": \"Names of gateways where the rule should be applied.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed.\",\n \"type\": \"integer\"\n },\n \"sourceLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"sourceNamespace\": {\n \"description\": \"Source namespace constraining the applicability of a rule to workloads in that namespace.\",\n \"type\": \"string\"\n },\n \"sourceSubnet\": {\n \"description\": \"IPv4 or IPv6 ip address of source with optional subnet.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"route\": {\n \"description\": \"The destination to which the connection should be forwarded to.\",\n \"items\": {\n \"properties\": {\n \"destination\": {\n \"properties\": {\n \"host\": {\n \"description\": \"The name of a service from the service registry.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed.\",\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"subset\": {\n \"description\": \"The name of a subset within the service.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"Weight specifies the relative proportion of traffic to be forwarded to the destination.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tls\": {\n \"items\": {\n \"properties\": {\n \"match\": {\n \"items\": {\n \"properties\": {\n \"destinationSubnets\": {\n \"description\": \"IPv4 or IPv6 ip addresses of destination with optional subnet.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"gateways\": {\n \"description\": \"Names of gateways where the rule should be applied.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed.\",\n \"type\": \"integer\"\n },\n \"sniHosts\": {\n \"description\": \"SNI (server name indicator) to match on.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"sourceLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"sourceNamespace\": {\n \"description\": \"Source namespace constraining the applicability of a rule to workloads in that namespace.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"route\": {\n \"description\": \"The destination to which the connection should be forwarded to.\",\n \"items\": {\n \"properties\": {\n \"destination\": {\n \"properties\": {\n \"host\": {\n \"description\": \"The name of a service from the service registry.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed.\",\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"subset\": {\n \"description\": \"The name of a subset within the service.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"Weight specifies the relative proportion of traffic to be forwarded to the destination.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n }\n },\n \"title\": \"Virtual Service\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/1.19.0-alpha.1/wasmplugin.Istio.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/1.19.0-alpha.1/wasmplugin.Istio.meshery.layer5.io_meshmodel.json index 738083f4f..9c8c7fd41 100644 --- a/templates/meshmodel/components/1.19.0-alpha.1/wasmplugin.Istio.meshery.layer5.io_meshmodel.json +++ b/templates/meshmodel/components/1.19.0-alpha.1/wasmplugin.Istio.meshery.layer5.io_meshmodel.json @@ -1 +1 @@ -{"kind":"WasmPlugin","apiVersion":"extensions.istio.io/v1alpha1","displayName":"Wasm Plugin","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"description\": \"Extend the functionality provided by the Istio proxy through WebAssembly filters. See more details at: https://istio.io/docs/reference/config/proxy_extensions/wasm-plugin.html\",\n \"properties\": {\n \"failStrategy\": {\n \"description\": \"Specifies the failure behavior for the plugin due to fatal errors.\",\n \"enum\": [\n \"FAIL_CLOSE\",\n \"FAIL_OPEN\"\n ],\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"enum\": [\n \"UNSPECIFIED_POLICY\",\n \"IfNotPresent\",\n \"Always\"\n ],\n \"type\": \"string\"\n },\n \"imagePullSecret\": {\n \"description\": \"Credentials to use for OCI image pulling.\",\n \"type\": \"string\"\n },\n \"match\": {\n \"description\": \"Specifies the criteria to determine which traffic is passed to WasmPlugin.\",\n \"items\": {\n \"properties\": {\n \"mode\": {\n \"description\": \"Criteria for selecting traffic by their direction.\",\n \"enum\": [\n \"UNDEFINED\",\n \"CLIENT\",\n \"SERVER\",\n \"CLIENT_AND_SERVER\"\n ],\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"Criteria for selecting traffic by their destination port.\",\n \"items\": {\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"phase\": {\n \"description\": \"Determines where in the filter chain this `WasmPlugin` is to be injected.\",\n \"enum\": [\n \"UNSPECIFIED_PHASE\",\n \"AUTHN\",\n \"AUTHZ\",\n \"STATS\"\n ],\n \"type\": \"string\"\n },\n \"pluginConfig\": {\n \"description\": \"The configuration that will be passed on to the plugin.\",\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n },\n \"pluginName\": {\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"Determines ordering of `WasmPlugins` in the same `phase`.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"selector\": {\n \"properties\": {\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"sha256\": {\n \"description\": \"SHA256 checksum that will be used to verify Wasm module or OCI container.\",\n \"type\": \"string\"\n },\n \"url\": {\n \"description\": \"URL of a Wasm module or OCI container.\",\n \"type\": \"string\"\n },\n \"verificationKey\": {\n \"type\": \"string\"\n },\n \"vmConfig\": {\n \"description\": \"Configuration for a Wasm VM.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Specifies environment variables to be injected to this VM.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value for the environment variable.\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"enum\": [\n \"INLINE\",\n \"HOST\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Wasm Plugin\",\n \"type\": \"object\"\n}"} \ No newline at end of file +{"kind":"WasmPlugin","apiVersion":"extensions.istio.io/v1alpha1","displayName":"Wasm Plugin","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"properties\": {\n \"spec\": {\n \"description\": \"Extend the functionality provided by the Istio proxy through WebAssembly filters. See more details at: https://istio.io/docs/reference/config/proxy_extensions/wasm-plugin.html\",\n \"properties\": {\n \"failStrategy\": {\n \"description\": \"Specifies the failure behavior for the plugin due to fatal errors.\",\n \"enum\": [\n \"FAIL_CLOSE\",\n \"FAIL_OPEN\"\n ],\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"enum\": [\n \"UNSPECIFIED_POLICY\",\n \"IfNotPresent\",\n \"Always\"\n ],\n \"type\": \"string\"\n },\n \"imagePullSecret\": {\n \"description\": \"Credentials to use for OCI image pulling.\",\n \"type\": \"string\"\n },\n \"match\": {\n \"description\": \"Specifies the criteria to determine which traffic is passed to WasmPlugin.\",\n \"items\": {\n \"properties\": {\n \"mode\": {\n \"description\": \"Criteria for selecting traffic by their direction.\",\n \"enum\": [\n \"UNDEFINED\",\n \"CLIENT\",\n \"SERVER\",\n \"CLIENT_AND_SERVER\"\n ],\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"Criteria for selecting traffic by their destination port.\",\n \"items\": {\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"phase\": {\n \"description\": \"Determines where in the filter chain this `WasmPlugin` is to be injected.\",\n \"enum\": [\n \"UNSPECIFIED_PHASE\",\n \"AUTHN\",\n \"AUTHZ\",\n \"STATS\"\n ],\n \"type\": \"string\"\n },\n \"pluginConfig\": {\n \"description\": \"The configuration that will be passed on to the plugin.\",\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n },\n \"pluginName\": {\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"Determines ordering of `WasmPlugins` in the same `phase`.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"selector\": {\n \"properties\": {\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"sha256\": {\n \"description\": \"SHA256 checksum that will be used to verify Wasm module or OCI container.\",\n \"type\": \"string\"\n },\n \"url\": {\n \"description\": \"URL of a Wasm module or OCI container.\",\n \"type\": \"string\"\n },\n \"verificationKey\": {\n \"type\": \"string\"\n },\n \"vmConfig\": {\n \"description\": \"Configuration for a Wasm VM.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Specifies environment variables to be injected to this VM.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value for the environment variable.\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"enum\": [\n \"INLINE\",\n \"HOST\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n }\n },\n \"title\": \"Wasm Plugin\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/1.19.0-alpha.1/workloadentry.Istio.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/1.19.0-alpha.1/workloadentry.Istio.meshery.layer5.io_meshmodel.json index ae0291aa2..b9880c980 100644 --- a/templates/meshmodel/components/1.19.0-alpha.1/workloadentry.Istio.meshery.layer5.io_meshmodel.json +++ b/templates/meshmodel/components/1.19.0-alpha.1/workloadentry.Istio.meshery.layer5.io_meshmodel.json @@ -1 +1 @@ -{"kind":"WorkloadEntry","apiVersion":"networking.istio.io/v1alpha3","displayName":"Workload Entry","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"description\": \"Configuration affecting VMs onboarded into the mesh. See more details at: https://istio.io/docs/reference/config/networking/workload-entry.html\",\n \"properties\": {\n \"address\": {\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"One or more labels associated with the endpoint.\",\n \"type\": \"object\"\n },\n \"locality\": {\n \"description\": \"The locality associated with the endpoint.\",\n \"type\": \"string\"\n },\n \"network\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Set of ports associated with the endpoint.\",\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"weight\": {\n \"description\": \"The load balancing weight associated with the endpoint.\",\n \"type\": \"integer\"\n }\n },\n \"title\": \"Workload Entry\",\n \"type\": \"object\"\n}"} \ No newline at end of file +{"kind":"WorkloadEntry","apiVersion":"networking.istio.io/v1alpha3","displayName":"Workload Entry","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"properties\": {\n \"spec\": {\n \"description\": \"Configuration affecting VMs onboarded into the mesh. See more details at: https://istio.io/docs/reference/config/networking/workload-entry.html\",\n \"properties\": {\n \"address\": {\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"One or more labels associated with the endpoint.\",\n \"type\": \"object\"\n },\n \"locality\": {\n \"description\": \"The locality associated with the endpoint.\",\n \"type\": \"string\"\n },\n \"network\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Set of ports associated with the endpoint.\",\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"weight\": {\n \"description\": \"The load balancing weight associated with the endpoint.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n }\n },\n \"title\": \"Workload Entry\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/1.19.0-alpha.1/workloadgroup.Istio.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/1.19.0-alpha.1/workloadgroup.Istio.meshery.layer5.io_meshmodel.json index e1b7d055c..cf8542e06 100644 --- a/templates/meshmodel/components/1.19.0-alpha.1/workloadgroup.Istio.meshery.layer5.io_meshmodel.json +++ b/templates/meshmodel/components/1.19.0-alpha.1/workloadgroup.Istio.meshery.layer5.io_meshmodel.json @@ -1 +1 @@ -{"kind":"WorkloadGroup","apiVersion":"networking.istio.io/v1alpha3","displayName":"Workload Group","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"description\": \"Describes a collection of workload instances. See more details at: https://istio.io/docs/reference/config/networking/workload-group.html\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata that will be used for all corresponding `WorkloadEntries`.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"probe\": {\n \"description\": \"`ReadinessProbe` describes the configuration the user must provide for healthchecking on their workload.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpGet\"\n ]\n },\n {\n \"required\": [\n \"tcpSocket\"\n ]\n },\n {\n \"required\": [\n \"exec\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpGet\"\n ]\n },\n {\n \"required\": [\n \"tcpSocket\"\n ]\n },\n {\n \"required\": [\n \"exec\"\n ]\n }\n ],\n \"properties\": {\n \"exec\": {\n \"description\": \"Health is determined by how the command that is executed exited.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command to run.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Headers the proxy will pass on to make the request.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Port on which the endpoint lives.\",\n \"type\": \"integer\"\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before readiness probes are initiated.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"Health is determined by if the proxy is able to connect.\",\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"description\": \"Template to be used for the generation of `WorkloadEntry` resources that belong to this `WorkloadGroup`.\",\n \"properties\": {\n \"address\": {\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"One or more labels associated with the endpoint.\",\n \"type\": \"object\"\n },\n \"locality\": {\n \"description\": \"The locality associated with the endpoint.\",\n \"type\": \"string\"\n },\n \"network\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Set of ports associated with the endpoint.\",\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"weight\": {\n \"description\": \"The load balancing weight associated with the endpoint.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Workload Group\",\n \"type\": \"object\"\n}"} \ No newline at end of file +{"kind":"WorkloadGroup","apiVersion":"networking.istio.io/v1alpha3","displayName":"Workload Group","format":"JSON","metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"},"model":{"name":"istio","version":"1.19.0-alpha.1","displayName":"ISTIO","category":{"name":"Cloud Native Network","metadata":null},"metadata":{"logoURL":"https://github.com/istio/istio/blob/master/logo/istio-bluelogo-whitebackground-unframed.svg","primaryColor":"#466BB0","secondaryColor":"#93b0e6","shape":"circle","svgColor":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"20\" width=\"20\" viewBox=\"0 0 160 240\"\u003e\u003cg id=\"logo\" fill=\"#466BB0\"\u003e\u003crect id=\"background\" width=\"160\" height=\"240\" fill=\"#fff\"/\u003e\u003cpolygon id=\"hull\" points=\"0 210 160 210 60 240\"/\u003e\u003cpolygon id=\"mainsail\" points=\"0 200 60 190 60 80\"/\u003e\u003cpolygon id=\"headsail\" points=\"70 190 160 200 70 0\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n","svgWhite":"\u003csvg height=\"20\" width=\"20\" viewBox=\"6.386270046234131 3.7419400215148926 18.227430820465088 25.258059978485107\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M6.38627 24.7904L13.2215 23.738V12.1613L6.38627 24.7904Z\" fill=\"white\"/\u003e\u003cpath d=\"M6.38627 25.8427H24.6137L13.2215 29L6.38627 25.8427Z\" fill=\"white\"/\u003e\u003cpath d=\"M14.3608 23.7379L24.6137 24.7904L14.3608 3.74194V23.7379Z\" fill=\"white\"/\u003e\u003c/svg\u003e"}},"schema":"{\n \"properties\": {\n \"spec\": {\n \"description\": \"Describes a collection of workload instances. See more details at: https://istio.io/docs/reference/config/networking/workload-group.html\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata that will be used for all corresponding `WorkloadEntries`.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"probe\": {\n \"description\": \"`ReadinessProbe` describes the configuration the user must provide for healthchecking on their workload.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpGet\"\n ]\n },\n {\n \"required\": [\n \"tcpSocket\"\n ]\n },\n {\n \"required\": [\n \"exec\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpGet\"\n ]\n },\n {\n \"required\": [\n \"tcpSocket\"\n ]\n },\n {\n \"required\": [\n \"exec\"\n ]\n }\n ],\n \"properties\": {\n \"exec\": {\n \"description\": \"Health is determined by how the command that is executed exited.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command to run.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Headers the proxy will pass on to make the request.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Port on which the endpoint lives.\",\n \"type\": \"integer\"\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before readiness probes are initiated.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"Health is determined by if the proxy is able to connect.\",\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"description\": \"Template to be used for the generation of `WorkloadEntry` resources that belong to this `WorkloadGroup`.\",\n \"properties\": {\n \"address\": {\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"One or more labels associated with the endpoint.\",\n \"type\": \"object\"\n },\n \"locality\": {\n \"description\": \"The locality associated with the endpoint.\",\n \"type\": \"string\"\n },\n \"network\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Set of ports associated with the endpoint.\",\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"weight\": {\n \"description\": \"The load balancing weight associated with the endpoint.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n }\n },\n \"title\": \"Workload Group\",\n \"type\": \"object\"\n}"} \ No newline at end of file