From 49d5aaf323a7aa02662e905046d3b946c3cbe22e Mon Sep 17 00:00:00 2001 From: Revolyssup Date: Mon, 26 Dec 2022 15:42:09 +0000 Subject: [PATCH] [Patterns] Pattern components generated from latest OSM manifests Signed-off-by: l5io --- .../v1.2.3/egress.OSM.meshery.layer5.io_meshmodel.json | 1 + .../extensionservice.OSM.meshery.layer5.io_meshmodel.json | 1 + .../httproutegroup.OSM.meshery.layer5.io_meshmodel.json | 1 + .../ingressbackend.OSM.meshery.layer5.io_meshmodel.json | 1 + .../meshconfig.OSM.meshery.layer5.io_meshmodel.json | 1 + ...shrootcertificate.OSM.meshery.layer5.io_meshmodel.json | 1 + .../v1.2.3/osmmesh.meshery.layer5io.schema.json | 8 ++++++++ .../meshmodel/components/v1.2.3/osmmesh_definition.json | 1 + .../meshmodel/components/v1.2.3/osmmesh_meshmodel.json | 1 + .../v1.2.3/retry.OSM.meshery.layer5.io_meshmodel.json | 1 + .../serviceimport.OSM.meshery.layer5.io_meshmodel.json | 1 + .../v1.2.3/tcproute.OSM.meshery.layer5.io_meshmodel.json | 1 + .../v1.2.3/telemetry.OSM.meshery.layer5.io_meshmodel.json | 1 + .../trafficsplit.OSM.meshery.layer5.io_meshmodel.json | 1 + .../traffictarget.OSM.meshery.layer5.io_meshmodel.json | 1 + ...eamtrafficsetting.OSM.meshery.layer5.io_meshmodel.json | 1 + 16 files changed, 23 insertions(+) create mode 100644 templates/meshmodel/components/v1.2.3/egress.OSM.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.2.3/extensionservice.OSM.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.2.3/httproutegroup.OSM.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.2.3/ingressbackend.OSM.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.2.3/meshconfig.OSM.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.2.3/meshrootcertificate.OSM.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.2.3/osmmesh.meshery.layer5io.schema.json create mode 100644 templates/meshmodel/components/v1.2.3/osmmesh_definition.json create mode 100644 templates/meshmodel/components/v1.2.3/osmmesh_meshmodel.json create mode 100644 templates/meshmodel/components/v1.2.3/retry.OSM.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.2.3/serviceimport.OSM.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.2.3/tcproute.OSM.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.2.3/telemetry.OSM.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.2.3/trafficsplit.OSM.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.2.3/traffictarget.OSM.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.2.3/upstreamtrafficsetting.OSM.meshery.layer5.io_meshmodel.json diff --git a/templates/meshmodel/components/v1.2.3/egress.OSM.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.2.3/egress.OSM.meshery.layer5.io_meshmodel.json new file mode 100644 index 00000000..bf3466e1 --- /dev/null +++ b/templates/meshmodel/components/v1.2.3/egress.OSM.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"Egress","apiVersion":"policy.openservicemesh.io/v1alpha1","display-name":"Egress","format":"JSON","metadata":{},"model":{"name":"OPEN_SERVICE_MESH","version":"v1.2.3","display-name":"OPEN_SERVICE_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"hosts\": {\n \"description\": \"Hosts that the sources are allowed to direct external traffic to.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ipAddresses\": {\n \"description\": \"IP address ranges that the sources are allowed to direct external traffic to.\",\n \"items\": {\n \"pattern\": \"((?:\\\\d{1,3}\\\\.){3}\\\\d{1,3})\\\\/(\\\\d{1,2})$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"matches\": {\n \"description\": \"The resource references an Egress policy should match on.\",\n \"items\": {\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"API group for the resource being referenced.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Type of resource being referenced.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of resource being referenced.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"apiGroup\",\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"ports\": {\n \"description\": \"Ports that the sources are allowed to direct external traffic to.\",\n \"items\": {\n \"properties\": {\n \"number\": {\n \"description\": \"Port number of this port.\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"description\": \"Protocol served by this port.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"number\",\n \"protocol\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"sources\": {\n \"description\": \"Sources the egress policy is applicable to.\",\n \"items\": {\n \"properties\": {\n \"kind\": {\n \"description\": \"Kind of this source.\",\n \"enum\": [\n \"ServiceAccount\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of this source.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of this source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\",\n \"namespace\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"sources\",\n \"ports\"\n ],\n \"title\": \"Egress\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.2.3/extensionservice.OSM.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.2.3/extensionservice.OSM.meshery.layer5.io_meshmodel.json new file mode 100644 index 00000000..9269ca68 --- /dev/null +++ b/templates/meshmodel/components/v1.2.3/extensionservice.OSM.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"ExtensionService","apiVersion":"config.openservicemesh.io/v1alpha2","display-name":"Extension Service","format":"JSON","metadata":{},"model":{"name":"OPEN_SERVICE_MESH","version":"v1.2.3","display-name":"OPEN_SERVICE_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"connectTimeout\": {\n \"description\": \"Timeout for connecting to the service.\",\n \"type\": \"string\"\n },\n \"host\": {\n \"description\": \"Hostname of the service.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Port of the service.\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"description\": \"Protocol of the service.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"host\",\n \"port\"\n ],\n \"title\": \"Extension Service\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.2.3/httproutegroup.OSM.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.2.3/httproutegroup.OSM.meshery.layer5.io_meshmodel.json new file mode 100644 index 00000000..d2ff3ac0 --- /dev/null +++ b/templates/meshmodel/components/v1.2.3/httproutegroup.OSM.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"HTTPRouteGroup","apiVersion":"specs.smi-spec.io/v1alpha4","display-name":"HTTP Route Group","format":"JSON","metadata":{},"model":{"name":"OPEN_SERVICE_MESH","version":"v1.2.3","display-name":"OPEN_SERVICE_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"matches\": {\n \"description\": \"Match conditions of this route group.\",\n \"items\": {\n \"properties\": {\n \"headers\": {\n \"description\": \"Header match conditions of this route.\",\n \"items\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Header match condition of this route.\",\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"methods\": {\n \"description\": \"The HTTP methods of this HTTP route.\",\n \"items\": {\n \"description\": \"The HTTP method of this HTTP route.\",\n \"enum\": [\n \"*\",\n \"GET\",\n \"HEAD\",\n \"PUT\",\n \"POST\",\n \"DELETE\",\n \"CONNECT\",\n \"OPTIONS\",\n \"TRACE\",\n \"PATCH\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the HTTP route.\",\n \"type\": \"string\"\n },\n \"pathRegex\": {\n \"description\": \"URI path regex of the HTTP route.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"matches\"\n ],\n \"title\": \"HTTP Route Group\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.2.3/ingressbackend.OSM.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.2.3/ingressbackend.OSM.meshery.layer5.io_meshmodel.json new file mode 100644 index 00000000..97aa2fd6 --- /dev/null +++ b/templates/meshmodel/components/v1.2.3/ingressbackend.OSM.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"IngressBackend","apiVersion":"policy.openservicemesh.io/v1alpha1","display-name":"Ingress Backend","format":"JSON","metadata":{},"model":{"name":"OPEN_SERVICE_MESH","version":"v1.2.3","display-name":"OPEN_SERVICE_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"backends\": {\n \"description\": \"Backends the IngressBackend policy is applicable to.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the backend.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Port of the backend.\",\n \"properties\": {\n \"number\": {\n \"description\": \"Port number of this port.\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"description\": \"Protocol served by this port.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"number\",\n \"protocol\"\n ],\n \"type\": \"object\"\n },\n \"tls\": {\n \"description\": \"TLS configuration for the backend.\",\n \"properties\": {\n \"skipClientCertValidation\": {\n \"description\": \"Skip client certificate validation.\",\n \"type\": \"boolean\"\n },\n \"sniHosts\": {\n \"description\": \"SNI hosts allowed by the backend.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"skipClientCertValidation\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\",\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matches\": {\n \"description\": \"The resource references an IngressBackend policy should match on.\",\n \"items\": {\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"API group for the resource being referenced.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Type of resource being referenced.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of resource being referenced.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"apiGroup\",\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"sources\": {\n \"description\": \"Sources the IngressBackend policy is applicable to.\",\n \"items\": {\n \"properties\": {\n \"kind\": {\n \"description\": \"Kind of this source.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of this source.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of this source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"backends\",\n \"sources\"\n ],\n \"title\": \"Ingress Backend\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.2.3/meshconfig.OSM.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.2.3/meshconfig.OSM.meshery.layer5.io_meshmodel.json new file mode 100644 index 00000000..6d82f334 --- /dev/null +++ b/templates/meshmodel/components/v1.2.3/meshconfig.OSM.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"MeshConfig","apiVersion":"config.openservicemesh.io/v1alpha2","display-name":"Mesh Config","format":"JSON","metadata":{},"model":{"name":"OPEN_SERVICE_MESH","version":"v1.2.3","display-name":"OPEN_SERVICE_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"certificate\": {\n \"description\": \"Configuration for certificate management\",\n \"properties\": {\n \"certKeyBitSize\": {\n \"description\": \"Sets the certificate key bit size for data plane certificates.\",\n \"type\": \"integer\"\n },\n \"ingressGateway\": {\n \"description\": \"Configuration for the ingress gateway's certificate\",\n \"properties\": {\n \"secret\": {\n \"description\": \"Secret reference to store the certificate in\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the secret\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the secret\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"namespace\"\n ],\n \"type\": \"object\"\n },\n \"subjectAltNames\": {\n \"description\": \"Subject Alternative Names secured by the certificate\",\n \"items\": {\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"validityDuration\": {\n \"description\": \"Certificate validity duration, represented as a sequence of decimal numbers each with optional fraction and a unit suffix\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"subjectAltNames\",\n \"validityDuration\",\n \"secret\"\n ],\n \"type\": \"object\"\n },\n \"serviceCertValidityDuration\": {\n \"description\": \"Sets the service certificate validity duration, represented as a sequence of decimal numbers each with optional fraction and a unit suffix.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"serviceCertValidityDuration\",\n \"certKeyBitSize\"\n ],\n \"type\": \"object\"\n },\n \"featureFlags\": {\n \"description\": \"OSM feature flags\",\n \"properties\": {\n \"enableAsyncProxyServiceMapping\": {\n \"type\": \"boolean\"\n },\n \"enableEgressPolicy\": {\n \"description\": \"DEPRECATED, do not use. Set 'taffic.enableEgress' to 'false' to use EgressPolicy API.\",\n \"type\": \"boolean\"\n },\n \"enableEnvoyActiveHealthChecks\": {\n \"type\": \"boolean\"\n },\n \"enableIngressBackendPolicy\": {\n \"type\": \"boolean\"\n },\n \"enableMeshRootCertificate\": {\n \"type\": \"boolean\"\n },\n \"enableMulticlusterMode\": {\n \"description\": \"DEPRECATED, no longer used\",\n \"type\": \"boolean\"\n },\n \"enableRetryPolicy\": {\n \"type\": \"boolean\"\n },\n \"enableSnapshotCacheMode\": {\n \"type\": \"boolean\"\n },\n \"enableWASMStats\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"observability\": {\n \"description\": \"Configuration for observing the service mesh, including metrics, logs, tracing etc,.\",\n \"properties\": {\n \"enableDebugServer\": {\n \"description\": \"Enables a debug endpoint on the osm-controller pod to list information regarding the mesh such as proxy connections, certificates, and SMI policies.\",\n \"type\": \"boolean\"\n },\n \"osmLogLevel\": {\n \"description\": \"Allows setting OSM control plane log level at runtime\",\n \"type\": \"string\"\n },\n \"tracing\": {\n \"description\": \"Configuration for distributed tracing\",\n \"properties\": {\n \"address\": {\n \"description\": \"Address of Jaeger tracing deployment, if tracing is enabled.\",\n \"type\": \"string\"\n },\n \"enable\": {\n \"description\": \"Enables Jaeger tracing for the mesh.\",\n \"type\": \"boolean\"\n },\n \"endpoint\": {\n \"description\": \"Endpoint for tracing data, if tracing is enabled.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Port on which tracing is enabled.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"sidecar\": {\n \"description\": \"Configuration for Envoy sidecar\",\n \"properties\": {\n \"cipherSuites\": {\n \"description\": \"A list of ciphers that listener supports when negotiating TLS 1.0-1.2. This setting has no effect when negotiating TLS 1.3. For valid cipher names, see the latest OpenSSL ciphers manual page. E.g. https://www.openssl.org/docs/man1.1.1/apps/ciphers.html.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"configResyncInterval\": {\n \"description\": \"Resync interval for regular proxy broadcast updates\",\n \"type\": \"string\"\n },\n \"ecdhCurves\": {\n \"description\": \"A list of ECDH curves that TLS connection supports. If not specified, the curves are [X25519, P-256] for non-FIPS build and P-256 for builds using BoringSSL FIPS.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"enablePrivilegedInitContainer\": {\n \"description\": \"Enables privileged init containers for pods in mesh. When false, init containers only have NET_ADMIN.\",\n \"type\": \"boolean\"\n },\n \"envoyImage\": {\n \"description\": \"Image for the Envoy sidecar\",\n \"type\": \"string\"\n },\n \"envoyWindowsImage\": {\n \"description\": \"Image for the Envoy sidecar on Windows workers\",\n \"type\": \"string\"\n },\n \"initContainerImage\": {\n \"description\": \"Image for the init container\",\n \"type\": \"string\"\n },\n \"localProxyMode\": {\n \"default\": \"Localhost\",\n \"description\": \"Sets the destination ip address the envoy proxy will use when connecting to the backend application. Acceptable values are [Localhost, PodIP]. The default value is Localhost\",\n \"enum\": [\n \"Localhost\",\n \"PodIP\"\n ],\n \"type\": \"string\"\n },\n \"logLevel\": {\n \"description\": \"Sets the logging verbosity of Envoy proxy sidecar, only applicable to newly created pods joining the mesh.\",\n \"enum\": [\n \"trace\",\n \"debug\",\n \"info\",\n \"warning\",\n \"warn\",\n \"error\",\n \"critical\",\n \"off\"\n ],\n \"type\": \"string\"\n },\n \"maxDataPlaneConnections\": {\n \"description\": \"Max allowed data plane sidecar connections\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": true,\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": true,\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tlsMaxProtocolVersion\": {\n \"default\": \"TLSv1_3\",\n \"description\": \"The maximum TLS protocol version that the sidecar supports. Valid TLS protocol versions are TLS_AUTO, TLSv1_0, TLSv1_1, TLSv1_2 and TLSv1_3.\",\n \"enum\": [\n \"TLS_AUTO\",\n \"TLSv1_0\",\n \"TLSv1_1\",\n \"TLSv1_2\",\n \"TLSv1_3\"\n ],\n \"type\": \"string\"\n },\n \"tlsMinProtocolVersion\": {\n \"default\": \"TLSv1_2\",\n \"description\": \"The minimum TLS protocol version that the sidecar supports. Valid TLS protocol versions are TLS_AUTO, TLSv1_0, TLSv1_1, TLSv1_2 and TLSv1_3.\",\n \"enum\": [\n \"TLS_AUTO\",\n \"TLSv1_0\",\n \"TLSv1_1\",\n \"TLSv1_2\",\n \"TLSv1_3\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"traffic\": {\n \"description\": \"Configuration for traffic management\",\n \"properties\": {\n \"enableEgress\": {\n \"description\": \"Enables egress in the mesh\",\n \"type\": \"boolean\"\n },\n \"enablePermissiveTrafficPolicyMode\": {\n \"description\": \"True for allowing traffic to flow between client and service pods within the mesh without SMI traffic policies, i.e. no traffic policy enforcement in the mesh. If set to false, enables deny-all traffic policy in mesh i.e. an SMI Traffic Target is necessary for services to communicate.\",\n \"type\": \"boolean\"\n },\n \"inboundExternalAuthorization\": {\n \"description\": \"Configures external authorization for inbound and ingress connections.\",\n \"properties\": {\n \"address\": {\n \"description\": \"Target destination endpoint that will handle external authorization.\",\n \"type\": \"string\"\n },\n \"enable\": {\n \"description\": \"Enables/disables the inbound external authorization policy if present.\",\n \"type\": \"boolean\"\n },\n \"failureModeAllow\": {\n \"description\": \"Allows specifying if traffic should succeed or fail if the external authorization endpoint fails to respond.\",\n \"type\": \"boolean\"\n },\n \"port\": {\n \"description\": \"Remote destination port for the external authorization endpoint.\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"statPrefix\": {\n \"default\": \"inboundExtAuthz\",\n \"description\": \"String prefix for inbound external authorization related metrics.\",\n \"type\": \"string\"\n },\n \"timeout\": {\n \"default\": \"1s\",\n \"description\": \"Defines the timeout to consider for the remote endpoint to reply in time.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"inboundPortExclusionList\": {\n \"description\": \"Global list of ports to exclude from inbound traffic interception by the sidecar proxy.\",\n \"items\": {\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"networkInterfaceExclusionList\": {\n \"description\": \"NetworkInterfaceExclusionList defines a global list of network interface names to exclude from inbound and outbound traffic interception by the sidecar proxy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"outboundIPRangeExclusionList\": {\n \"description\": \"Global list of IP address ranges to exclude from outbound traffic interception by the sidecar proxy.\",\n \"items\": {\n \"pattern\": \"((?:\\\\d{1,3}\\\\.){3}\\\\d{1,3})\\\\/(\\\\d{1,2})$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"outboundIPRangeInclusionList\": {\n \"description\": \"Global list of IP address ranges to include for outbound traffic interception by the sidecar proxy.\",\n \"items\": {\n \"pattern\": \"((?:\\\\d{1,3}\\\\.){3}\\\\d{1,3})\\\\/(\\\\d{1,2})$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"outboundPortExclusionList\": {\n \"description\": \"Global list of ports to exclude from outbound traffic interception by the sidecar proxy.\",\n \"items\": {\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Mesh Config\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.2.3/meshrootcertificate.OSM.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.2.3/meshrootcertificate.OSM.meshery.layer5.io_meshmodel.json new file mode 100644 index 00000000..f74477dd --- /dev/null +++ b/templates/meshmodel/components/v1.2.3/meshrootcertificate.OSM.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"MeshRootCertificate","apiVersion":"config.openservicemesh.io/v1alpha2","display-name":"Mesh Root Certificate","format":"JSON","metadata":{},"model":{"name":"OPEN_SERVICE_MESH","version":"v1.2.3","display-name":"OPEN_SERVICE_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"provider\": {\n \"description\": \"Certificate provider used by the mesh control plane\",\n \"oneOf\": [\n {\n \"required\": [\n \"certManager\"\n ]\n },\n {\n \"required\": [\n \"vault\"\n ]\n },\n {\n \"required\": [\n \"tresor\"\n ]\n }\n ],\n \"properties\": {\n \"certManager\": {\n \"description\": \"Cert-manager provider configuration\",\n \"properties\": {\n \"issuerGroup\": {\n \"description\": \"The group that the issuer belongs to\",\n \"type\": \"string\"\n },\n \"issuerKind\": {\n \"description\": \"The kind of issuer resource\",\n \"enum\": [\n \"ClusterIssuer\",\n \"Issuer\"\n ],\n \"type\": \"string\"\n },\n \"issuerName\": {\n \"description\": \"The name of the Issuer or ClusterIssuer resource\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"issuerName\",\n \"issuerKind\",\n \"issuerGroup\"\n ],\n \"type\": \"object\"\n },\n \"tresor\": {\n \"description\": \"Tresor provider configuration\",\n \"properties\": {\n \"ca\": {\n \"description\": \"The root certificate used by Tresor\",\n \"properties\": {\n \"secretRef\": {\n \"description\": \"Reference to the kubernetes secret storing the root certificate\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the kubernetes secret\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the kubernetes secret\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"namespace\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"secretRef\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"ca\"\n ],\n \"type\": \"object\"\n },\n \"vault\": {\n \"description\": \"Vault provider configuration\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name for the Vault server\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Port for the Vault server\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"description\": \"Protocol for the Vault connection\",\n \"enum\": [\n \"http\",\n \"https\"\n ],\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role created on Vault server for the mesh control plane\",\n \"type\": \"string\"\n },\n \"token\": {\n \"description\": \"Token used by the mesh control plane\",\n \"properties\": {\n \"secretKeyRef\": {\n \"description\": \"Reference to the kubernetes secret storing the vault token\",\n \"properties\": {\n \"key\": {\n \"description\": \"Kubernetes secret key\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the kubernetes secret\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the kubernetes secret\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"key\",\n \"namespace\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"secretKeyRef\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"host\",\n \"port\",\n \"role\",\n \"protocol\",\n \"token\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"role\": {\n \"description\": \"Role specifies the role of the MeshRootCertificate, can be active, passive\",\n \"enum\": [\n \"passive\",\n \"active\",\n \"inactive\"\n ],\n \"type\": \"string\"\n },\n \"spiffeEnabled\": {\n \"default\": false,\n \"description\": \"Adds a SPIFFE ID to the certificates, creating a SPIFFE compatible x509 SVID document\",\n \"type\": \"boolean\"\n },\n \"trustDomain\": {\n \"default\": \"cluster.local\",\n \"description\": \"Trust Domain to use in common name for certificates, e.g. \\\"example.com\\\"\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"role\",\n \"provider\"\n ],\n \"title\": \"Mesh Root Certificate\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.2.3/osmmesh.meshery.layer5io.schema.json b/templates/meshmodel/components/v1.2.3/osmmesh.meshery.layer5io.schema.json new file mode 100644 index 00000000..c72836a4 --- /dev/null +++ b/templates/meshmodel/components/v1.2.3/osmmesh.meshery.layer5io.schema.json @@ -0,0 +1,8 @@ +{ + "$id": "http://meshery.layer5.io/definition/Workload/OSMMesh", + "$schema": "http://json-schema.org/draft-07/schema", + "properties": {}, + "required": [], + "title": "OSMMesh", + "type": "object" +} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.2.3/osmmesh_definition.json b/templates/meshmodel/components/v1.2.3/osmmesh_definition.json new file mode 100644 index 00000000..131986bc --- /dev/null +++ b/templates/meshmodel/components/v1.2.3/osmmesh_definition.json @@ -0,0 +1 @@ +{"kind":"WorkloadDefinition","apiVersion":"core.oam.dev/v1alpha1","display-name":"","format":"","metadata":{"creationTimestamp":null,"name":"OSMMesh"},"model":{"name":"","version":"v1.2.3","display-name":"","category":"","sub-category":""},"schema":""} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.2.3/osmmesh_meshmodel.json b/templates/meshmodel/components/v1.2.3/osmmesh_meshmodel.json new file mode 100644 index 00000000..9af2eb77 --- /dev/null +++ b/templates/meshmodel/components/v1.2.3/osmmesh_meshmodel.json @@ -0,0 +1 @@ +{"kind":"OSMMesh","apiVersion":"core.meshmodel.dev/v1alpha1","display-name":"Open Service Mesh","format":"JSON","metadata":{"Logo URL":"https://github.com/cncf/artwork/blob/master/projects/openservicemesh/icon/white/openservicemesh-icon-white.svg?short_path=f57f582","Primary Color":"#6ED3B9","SVG_Color":"\u003csvg width=\"1200\" height=\"1200\" viewBox=\"0 0 1200 1200\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\u003e\u003cdefs\u003e\u003cpath id=\"a\" d=\"m.314 255.103 437.394 254.526 435.266-256.474L437.708.577z\"/\u003e\u003c/defs\u003e\u003cg fill=\"none\" fill-rule=\"evenodd\"\u003e\u003cg transform=\"translate(212.696 779.01)\" fill=\"#B6E2D6\" fill-rule=\"nonzero\" stroke=\"#FFF\" stroke-width=\"4\"\u003e\u003cellipse cx=\"65.11\" cy=\"81.399\" rx=\"62.962\" ry=\"33.729\"/\u003e\u003cellipse cx=\"389.921\" cy=\"276.277\" rx=\"62.962\" ry=\"33.729\"/\u003e\u003cellipse cx=\"714.733\" cy=\"81.391\" rx=\"62.962\" ry=\"33.729\"/\u003e\u003cellipse cx=\"224.268\" cy=\"175.594\" rx=\"62.962\" ry=\"33.729\"/\u003e\u003cellipse cx=\"555.575\" cy=\"175.586\" rx=\"62.962\" ry=\"33.729\"/\u003e\u003cellipse cx=\"389.921\" cy=\"113.872\" rx=\"62.962\" ry=\"33.729\"/\u003e\u003cellipse cx=\"224.268\" cy=\"35.925\" rx=\"62.962\" ry=\"33.729\"/\u003e\u003cellipse cx=\"555.575\" cy=\"35.917\" rx=\"62.962\" ry=\"33.729\"/\u003e\u003c/g\u003e\u003cpath fill=\"#1128A9\" fill-rule=\"nonzero\" d=\"m163.494 705.526 437.394 254.526 435.267-256.474L600.888 451z\"/\u003e\u003cg transform=\"translate(163.18 320)\"\u003e\u003cpath fill=\"#87E3CB\" fill-rule=\"nonzero\" d=\"m.314 255.103 437.394 254.526 435.266-256.474L437.708.577z\"/\u003e\u003cmask id=\"b\" fill=\"#fff\"\u003e\u003cuse xlink:href=\"#a\"/\u003e\u003c/mask\u003e\u003cuse fill=\"#C8FCEE\" fill-rule=\"nonzero\" xlink:href=\"#a\"/\u003e\u003cpath stroke=\"#6ED3B9\" stroke-width=\"45\" mask=\"url(#b)\" d=\"m-274.473 440.043 1354.029-794.366M-313.429 618.431l1354.028-794.366M37.4 564.914l1354.028-794.365M29.62 731.41 1383.648-62.956M203.895 790.872 1557.924-3.493M554.725 737.356 1908.753-57.01M548.778 903.851l1354.029-794.365\"/\u003e\u003cg mask=\"url(#b)\" fill-rule=\"nonzero\" stroke=\"#6ED3B9\" stroke-width=\"45\"\u003e\u003cpath d=\"M1911.204 392.473 557.175-401.893M1917.15 570.861 563.122-223.505m1003.199 740.849L212.292-277.021m1359.975 960.86L218.239-110.526m1181.586 853.828L45.797-51.064m1003.199 740.85L-305.032-104.58m1359.974 960.861L-299.086 61.915\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003cg fill-rule=\"nonzero\"\u003e\u003cpath fill=\"#1128A9\" d=\"M275.472 555.486V201.022l265 506.93z\"/\u003e\u003cpath fill=\"#569CF5\" d=\"m600.472 577.621 220.025-126.457V139.352L600.472 262.298z\"/\u003e\u003cpath fill=\"#FB8143\" d=\"m689 524.645 178.008 104.749V385.96L689 279.621z\"/\u003e\u003cpath fill=\"#569CF5\" style=\"mix-blend-mode:overlay\" d=\"m325.834 438.925 220.025-126.457V.656L325.834 123.602z\" transform=\"translate(274.638 138.696)\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e","SVG_White":"\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1200 1200\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M925.031,636.49591Q970.2797,662.84878,1015.52919,689.2c6.4637,3.76354,12.93814,7.50848,20.01058,11.61185-2.25563,1.36314-4.132,2.52248-6.032,3.6417Q928.29416,764.07283,827.076,823.68463q-111.33561,65.56877-222.64744,131.178c-2.67081,1.57559-4.6095,1.9236-7.56156.204Q382.4503,830.16133,167.912,705.46475c-1.285-.74742-2.54781-1.5329-4.54767-2.73877,37.44614-21.73031,74.425-43.18949,111.40257-64.64807,1.49339.69327,3.05435,1.272,4.47315,2.09538q49.99682,29.0169,99.96475,58.08362,107.92627,62.778,215.80494,125.63725c3.83151,2.23551,6.74208,2.57632,10.81141.17159Q749.148,739.36672,892.66622,654.9915C903.37361,648.69377,913.74605,641.79065,925.031,636.49591Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M925.031,636.49591c-11.28491,5.29474-21.65735,12.19786-32.36474,18.49559Q749.165,739.39517,605.82113,824.06575c-4.06933,2.40473-6.9799,2.06392-10.81141-.17159Q487.16628,760.97443,379.20478,698.25691,329.23624,669.19135,279.24,640.17329c-1.4188-.82341-2.97976-1.40211-4.47315-2.09538-10.2877-7.35657-21.58523-13.0406-32.44911-19.435-24.93019-14.674-50.0098-29.09425-75.0208-43.63122-1.12492-.65377-2.17172-1.44174-4.03043-2.68676,37.56414-21.80184,74.59883-43.29645,111.63338-64.79083.05472,13.47776.22948,26.95662.08047,40.43194-.03749,3.38924.8365,5.74281,3.87769,7.21339-10.8025,4.78659-20.44829,11.62087-30.70381,17.37667-5.29031,2.96922-5.238,3.25283-.12861,6.24223,26.76511,15.65918,53.58833,31.21958,80.29631,46.97523,2.35768,1.39088,3.78322.88688,5.77786-.28758,10.99953-6.47634,22.0666-12.838,33.11051-19.23905,15.29456,7.91472,30.01582,16.83377,44.84127,25.57025-12.036,7.07076-24.072,14.14146-36.61354,21.50919C403.615,669.876,430.94463,685.92,458.258,701.99136c1.55836.917,2.93168,1.20129,4.603.19062q17.44569-10.54942,34.95288-20.99733,17.89419,10.1412,35.79663,20.26789c1.53774.86713,2.89575,2.28978,4.93462,1.91775-.04228.59.19175.7145.68636.40405l-.53829-.53363c-1.01861-2.2546-1.96-4.54792-3.06914-6.75715-4.685-9.33176-10.14836-18.27069-14.11964-27.96308.997-1.65133,2.74292-2.35308,4.28689-3.26234q12.66134-7.456,25.38349-14.80876c1.14649-.666,2.81223-1.16386,2.86036-2.51724.05278-1.47955-1.79776-1.70822-2.88641-2.34911-12.73558-7.49671-25.43035-15.06573-38.26635-22.38724-7.166-4.08746-13.87-9.0476-21.74-11.851-6.91364-13.17951-13.92844-26.3073-20.71072-39.55407-6.02419-11.76607-12.78488-23.158-18.03-35.32094,5.06872,1.32667,9.18905,4.53523,13.50808,7.20839,3.08757,1.911,5.26645,1.566,8.13993-.14915,14.561-8.69087,29.23124-17.19867,43.853-25.788,12.15648-7.14107,24.29893-14.30616,36.89072-21.72158-1.61626-1.13282-2.75281-2.055-4.0013-2.78616q-40.664-23.8143-81.31218-47.6552c-2.19256-1.29311-3.67161-.72337-5.45686.3363-10.29417,6.11-20.486,12.40677-30.95969,18.19318-4.747,2.62261-8.914,6.45694-14.47423,7.53768-1.1532-.54351-1.48332-1.70059-2.00672-2.70749q-8.89039-17.10444-17.77269-34.21309c11.24347-5.067,21.48981-11.91811,32.11813-18.07122q84.42783-48.87805,168.7231-97.98562.00786,23.9302.01562,47.861c-29.18524,17.09-58.37047,34.18-88.151,51.61854,10.33163,6.04509,19.91175,11.67317,29.51365,17.26377q29.30664,17.06373,58.63207,34.09534.00969,26.40756.01946,52.81511a5.52713,5.52713,0,0,0-1.44013.37759Q568.96269,539.819,539.7087,556.98c-8.25817,4.8461-16.48991,9.73727-25.20815,14.88815.88286.62626,1.26838.94518,1.69423,1.19538q39.99831,23.48713,79.979,47.004c2.70082,1.59431,4.84042,1.20325,7.37121-.29984,16.43891-9.76313,32.93993-19.42174,49.42308-29.11047,10.43327-6.13278,20.87081-12.25829,32.03827-18.81676-13.56922-7.80813-26.48374-15.23958-39.39826-22.671,9.90591-5.71775,19.89973-11.29042,29.68057-17.21452,4.889-2.96123,10.44584-4.93709,14.44659-9.28932l.43395-.05866.43781.00774c1.21244,1.95616,3.37125,2.64322,5.1925,3.71628q65.28,38.46294,130.63331,76.80123c13.31261,7.78373,26.31535,16.11336,40.08071,23.11515,1.44617.204,2.5713-.602,3.70211-1.26344q42.37521-24.78635,84.71675-49.63027c4.55617-2.67865,4.4693-3.0605-.37753-5.90245q-19.99491-11.72427-40.0147-23.40609-23.898-13.89381-47.84677-27.70014.00063-22.90511.00134-45.81014,55.04871,31.87394,110.09768,63.7477,26.98492,15.62433,53.95619,31.27165c1.52438.88683,3.46765,1.3332,4.32385,3.46584-26.20474,15.44038-52.45206,30.80229-78.58567,46.35488C945.94387,623.64911,934.96255,629.21435,925.031,636.49591Zm-232.47526,92.614a9.0495,9.0495,0,0,0-1.36283-1.44534Q647.1036,701.81,603.02117,675.94382a5.927,5.927,0,0,0-6.82915.02946q-43.39623,25.55862-86.89667,50.94029c-2.88019,1.681-3.46021,2.976-.14819,4.67226,1.03161.52832,1.964,1.24672,2.96646,1.836q41.70349,24.50729,83.38143,49.05755a5.35771,5.35771,0,0,0,6.32081.00269c20.44656-12.12219,40.97383-24.10827,61.47163-36.144C672.99939,740.6355,682.69921,734.91263,692.5557,729.10994Zm129.69468-76.03235c-.41261-.58174-.54262-.951-.80063-1.10238Q776.9203,625.8341,732.3895,599.69543c-2.2981-1.3521-4.00386-1.15257-6.34247.23337-18.59773,11.022-37.32089,21.83238-55.98481,32.74309-8.41417,4.91885-16.78124,9.91826-25.59239,15.13116,1.29175.89768,2.0543,1.5043,2.88574,1.99421q43.62695,25.7102,87.25034,51.42624c2.37943,1.40558,4.17377.828,6.40269-.48844,16.75427-9.89576,33.60835-19.62237,50.40429-29.44794C801.7062,665.26557,811.95181,659.16262,822.25038,653.07759Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M278.85808,555.17939c-3.04119-1.47058-3.91518-3.82415-3.87769-7.21339.149-13.47532-.02575-26.95418-.08047-40.43194.10173-2.154.29189-4.30784.2922-6.46163q.022-150.05139.01275-300.52215c2.24914.93983,2.57743,3.04065,3.39532,4.60261Q337.66413,317.9522,396.65078,430.792c.69215,1.32338,1.43677,2.61935,2.1579,3.93038q8.88684,17.11047,17.77373,34.21534c.5234,1.0069.85352,2.164,2.00593,2.70554.02221,1.75664,1.0756,3.10179,1.8384,4.56146,7.30739,13.98236,14.57153,27.98759,21.94915,41.93288,3.25637,6.15522,5.96617,12.61447,10.02579,18.33216,5.24516,12.16292,12.00585,23.55487,18.03,35.32094,6.78228,13.24677,13.79708,26.37456,20.71115,39.55444C498.978,626.379,506.769,641.43562,514.67619,656.431c2.15681,4.09026,3.82389,8.47244,6.82823,12.0895,3.97128,9.69239,9.43461,18.63132,14.11964,27.96308,1.10915,2.20923,2.05053,4.50255,3.06914,6.75715l-.15283.13336c-2.03411.36825-3.39212-1.0544-4.92986-1.92153q-17.91644-10.10178-35.79688-20.26807c-3.53512-2.13435-7.02943-4.33931-10.61154-6.39115q-37.56-21.51468-75.15048-42.97618c-14.82545-8.73648-29.54671-17.65553-44.84157-25.56958a5.98435,5.98435,0,0,0-1.05177-1.01214Q322.517,580.19205,278.85808,555.17939Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M599.66657,366.52878q-.00778-23.93061-.01568-47.861c.0474-17.96616.20932-35.93366.04832-53.8982-.03325-3.70731,1.27857-5.54713,4.4261-7.29925q105.84871-58.9227,211.58443-118.0483c4.60786-2.57268,4.66515-2.5521,4.665,2.90938q-.004,106.56267-.0269,213.1249c-1.79264.00085-3.04815-1.19935-4.45027-2.03547q-61.85306-36.886-123.7016-73.77969c-1.03387-.61626-1.93711-1.87512-3.4344-1.16541a3.40675,3.40675,0,0,0-.09975.55214q-.03057,119.77467-.03539,239.54931c.00006,1.42644-.46947,3.05679,1.10885,4.08844-4.00075,4.35223-9.55755,6.32809-14.44659,9.28932-9.78084,5.9241-19.77466,11.49677-29.68118,17.21562q-20.57483,11.66957-41.14935,23.33528c-4.56588,2.58743-4.58943,2.57889-4.61139-2.831q-.09618-23.67665-.166-47.3533-.0097-26.40756-.01952-52.81523Q599.66386,418.01736,599.66657,366.52878Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M689.73524,522.66565c-1.57832-1.03165-1.10879-2.662-1.10885-4.08844q-.00567-119.77467.03539-239.54931a3.40675,3.40675,0,0,1,.09975-.55214c1.49729-.70971,2.40053.54915,3.4344,1.16541q61.86093,36.87288,123.7016,73.77969c1.40212.83612,2.65763,2.03632,4.45027,2.03547a1.71262,1.71262,0,0,1,.25032.89646c-.03368,28.76243-.11744,57.52484-.0413,86.28688.01025,3.88064-.99275,6.39257-4.65746,8.38511-10.49074,5.7039-20.734,11.86207-31.08409,17.82508q-32.12956,18.51092-64.27818,36.98848c-9.92518,5.68189-19.9503,11.18969-29.93009,16.77639l-.43781-.00774Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M690.607,522.61473c9.97979-5.5867,20.00491-11.0945,29.93009-16.77639q32.18037-18.42219,64.27818-36.98848c10.35006-5.963,20.59335-12.12118,31.08409-17.82508,3.66471-1.99254,4.66771-4.50447,4.65746-8.38511-.07614-28.762.00762-57.52445.0413-86.28688,14.58715,8.61961,29.14557,17.28858,43.78941,25.81069,2.45312,1.42759,2.14283,3.45327,2.143,5.57536q.00357,39.40919.00867,78.81837c.00079,1.99227.10115,3.98453.15539,5.97722q-.00056,22.90575-.00135,45.81143-.09,53.95161-.17979,107.90153c-13.7653-7.00179-26.768-15.33142-40.08065-23.11515Q761.02425,564.88856,695.7995,526.331C693.97825,525.258,691.81944,524.57089,690.607,522.61473Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M277.42021,826.05655c17.5718-.06951,34.36169,2.80921,49.23425,12.99657a36.7595,36.7595,0,0,1,8.24279,7.92777c5.63529,7.28846,4.78384,16.16153-2.02023,23.531-9.01471,9.764-20.91175,13.8823-33.39826,16.50722a104.50813,104.50813,0,0,1-52.16523-2.08617c-10.07732-3.02172-19.79528-7.181-26.27509-16.07921-7.065-9.70178-5.13409-20.01513,4.35152-27.53854,10.36022-8.21724,22.3999-11.94339,35.14131-14.22348C266.15282,826.08576,271.77169,826.18205,277.42021,826.05655Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M768.50906,983.08247c-18.28121.21965-34.7948-3.10093-49.62081-12.88278a32.77038,32.77038,0,0,1-7.59871-7.14863c-6.356-8.04162-5.74812-17.032,1.47649-24.67995,8.59152-9.09516,19.7494-13.42867,31.54074-15.9417,21.0686-4.49035,41.88183-3.35918,62.05658,4.73793A43.683,43.683,0,0,1,822.812,938.14457c9.18233,10.202,7.18568,22.4162-4.17072,30.879C808.4021,976.65376,789.33808,983.75093,768.50906,983.08247Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M599.97527,1020.82637c20.19252-.06391,37.06441,2.7642,51.709,13.24914,7.23815,5.18229,12.99334,11.67685,10.90164,21.67238-1.2848,6.1393-5.17854,10.6491-10.15867,14.25884-11.21749,8.13077-24.04068,11.42123-37.59659,13.07268-18.219,2.21928-35.72227.08354-52.55719-7.16217-6.60957-2.84458-12.48081-6.77727-16.8844-12.67582-5.65026-7.56878-5.1484-17.00768,1.54884-24.03558,8.71952-9.14985,19.93359-13.481,31.92639-16.20189C586.66675,1021.23371,594.57289,1020.44646,599.97527,1020.82637Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M439.058,983.06832c-19.18135.243-34.96081-2.7531-49.279-11.51964-4.25242-2.60365-8.14384-5.66781-10.81483-10.05535-6.07186-9.97387-2.95053-20.35442,8.7205-28.41341,9.48085-6.54665,20.2055-10.11291,31.4322-11.8032,17.95835-2.70384,35.74014-1.76878,52.91007,4.76219,7.17872,2.73061,13.84937,6.28449,19.29421,11.98712,8.89394,9.31523,8.19648,20.68206-1.72913,29.09815-10.2525,8.69319-22.42125,12.52575-35.296,14.87712A80.63526,80.63526,0,0,1,439.058,983.06832Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M925.47242,826.08735c17.30945-.27478,32.12033,2.69609,45.949,10.012a38.95878,38.95878,0,0,1,9.928,7.43567c9.18313,9.54451,8.04506,22.02178-2.33349,30.32329-10.361,8.28755-22.47035,12.14347-35.19544,14.06536-18.84811,2.84671-37.40155,1.51955-55.23605-5.91843a55.281,55.281,0,0,1-13.28625-7.82081c-12.74413-10.18584-11.79506-25.24882,2.14966-34.96792,9.4592-6.59269,20.25151-9.85936,31.41818-12.00425A74.10745,74.10745,0,0,1,925.47242,826.08735Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M692.5557,729.10994c-9.85649,5.80269-19.55631,11.52556-29.26821,17.22806-20.4978,12.03577-41.02507,24.02185-61.47163,36.144a5.35771,5.35771,0,0,1-6.32081-.00269q-41.63441-24.62371-83.38143-49.05755c-1.00251-.58925-1.93485-1.30765-2.96646-1.836-3.312-1.69627-2.732-2.99123.14819-4.67226q43.49718-25.38684,86.89667-50.94029a5.927,5.927,0,0,1,6.82915-.02946q44.04067,25.93677,88.1717,51.72078A9.0495,9.0495,0,0,1,692.5557,729.10994Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M822.25038,653.07759c-10.29857,6.085-20.54418,12.188-30.83749,18.20953-16.79594,9.82557-33.65,19.55218-50.40429,29.44794-2.22892,1.31648-4.02326,1.894-6.40269.48844q-43.59975-25.7562-87.25034-51.42624c-.83144-.48991-1.594-1.09653-2.88574-1.99421,8.81115-5.2129,17.17822-10.21231,25.59239-15.13116,18.66392-10.91071,37.38708-21.7211,55.98481-32.74309,2.33861-1.38594,4.04437-1.58547,6.34247-.23337q44.50411,26.184,89.06025,52.27978C821.70776,652.12662,821.83777,652.49585,822.25038,653.07759Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M452.40168,536.46977c-4.05962-5.71769-6.76942-12.17694-10.02579-18.33216-7.37762-13.94529-14.64176-27.95052-21.94915-41.93288-.7628-1.45967-1.81619-2.80482-1.8384-4.56146,5.56106-1.07879,9.728-4.91312,14.475-7.53573,10.47372-5.78641,20.66552-12.08318,30.95969-18.19318,1.78525-1.05967,3.2643-1.62941,5.45686-.3363q40.59078,23.93806,81.31218,47.6552c1.24849.73121,2.385,1.65334,4.0013,2.78616-12.59179,7.41542-24.73424,14.58051-36.89072,21.72158-14.62174,8.58934-29.292,17.09714-43.853,25.788-2.87348,1.71511-5.05236,2.06013-8.13993.14915C461.59073,541.005,457.4704,537.79644,452.40168,536.46977Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M599.68072,522.32154q.08127,23.67664.166,47.3533c.022,5.40992.04551,5.41846,4.61139,2.831q20.57775-11.66114,41.14935-23.33528c12.91513,7.4303,25.82965,14.86175,39.39887,22.66988-11.16746,6.55847-21.605,12.684-32.03827,18.81676C636.48492,600.346,619.9839,610.00457,603.545,619.7677c-2.53079,1.50309-4.67039,1.89415-7.37121.29984q-39.94341-23.58-79.979-47.004c-.42585-.2502-.81137-.56912-1.69423-1.19538,8.71824-5.15088,16.95-10.04205,25.20815-14.88815q29.25145-17.16523,58.53189-34.28087A5.52713,5.52713,0,0,1,599.68072,522.32154Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M866.51346,626.24739q.08986-53.95033.17979-107.90153,23.92572,13.84506,47.8469,27.69928,20.03829,11.65,40.0147,23.40609c4.84683,2.84195,4.9337,3.2238.37753,5.90245q-42.31975,24.881-84.71675,49.63027C869.08482,625.6454,867.95969,626.45136,866.51346,626.24739Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M599.66657,366.52878q-.00265,51.48867-.00537,102.97753-29.317-17.04573-58.632-34.09522c-9.6019-5.5906-19.182-11.21868-29.51365-17.26377C541.2961,400.70876,570.48133,383.61876,599.66657,366.52878Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M412.05161,631.81714q37.57851,21.48239,75.15048,42.97618c3.58211,2.05184,7.07642,4.2568,10.61154,6.39115Q480.33107,691.67261,462.861,702.182c-1.67135,1.01067-3.04467.72633-4.603-.19062-27.31334-16.0714-54.643-32.11537-82.8199-48.665C387.97964,645.9586,400.01563,638.8879,412.05161,631.81714Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M278.85808,555.17939q43.65395,25.02133,87.30019,50.056a5.98435,5.98435,0,0,1,1.05177,1.01214c-11.04361,6.40035-22.11068,12.762-33.11021,19.23838-1.99464,1.17446-3.42018,1.67846-5.77786.28758-26.708-15.75565-53.5312-31.31605-80.29631-46.97523-5.10935-2.9894-5.1617-3.273.12861-6.24223C258.40979,566.80026,268.05558,559.966,278.85808,555.17939Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M521.50442,668.52048c-3.00434-3.61706-4.67142-7.99924-6.82823-12.0895C506.769,641.43562,498.978,626.379,491.14287,611.34515c7.86954,2.803,14.57349,7.76318,21.73953,11.85064,12.836,7.32151,25.53077,14.89053,38.26635,22.38724,1.08865.64089,2.93919.86956,2.88641,2.34911-.04813,1.35338-1.71387,1.85122-2.86036,2.51724q-12.70526,7.3812-25.38349,14.80876C524.24734,666.1674,522.50144,666.86915,521.50442,668.52048Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M538.6932,703.24071l.53829.53363c-.49461.31045-.72864.18592-.68636-.40405C538.54037,703.37407,538.6932,703.24071,538.6932,703.24071Z\"/\u003e\u003c/svg\u003e","Secondary Color":"#d3f1ea","Shape":"circle"},"model":{"name":"OPEN_SERVICE_MESH","version":"v1.2.3","display-name":"OPEN_SERVICE_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\"$id\":\"http://meshery.layer5.io/definition/Workload/OSMMesh\",\"$schema\":\"http://json-schema.org/draft-07/schema\",\"properties\":{},\"required\":[],\"title\":\"OSMMesh\",\"type\":\"object\"}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.2.3/retry.OSM.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.2.3/retry.OSM.meshery.layer5.io_meshmodel.json new file mode 100644 index 00000000..1a1f9060 --- /dev/null +++ b/templates/meshmodel/components/v1.2.3/retry.OSM.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"Retry","apiVersion":"policy.openservicemesh.io/v1alpha1","display-name":"Retry","format":"JSON","metadata":{},"model":{"name":"OPEN_SERVICE_MESH","version":"v1.2.3","display-name":"OPEN_SERVICE_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"destinations\": {\n \"description\": \"Destinations that the Retry policy is applicable to.\",\n \"items\": {\n \"properties\": {\n \"kind\": {\n \"description\": \"Kind of this destination (must be a service).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of this destination.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of this destination.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\",\n \"namespace\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"retryPolicy\": {\n \"description\": \"Retry policy that will be applied to the source and destination services\",\n \"properties\": {\n \"numRetries\": {\n \"description\": \"Maximum number of retries to attempt.\",\n \"type\": \"integer\"\n },\n \"perTryTimeout\": {\n \"description\": \"Time allowed for a retry before it's considered a failed attempt.\",\n \"type\": \"string\"\n },\n \"retryBackoffBaseInterval\": {\n \"description\": \"Base interval for exponential retry backoff. Max interval will be 10 times the base interval.\",\n \"type\": \"string\"\n },\n \"retryOn\": {\n \"description\": \"Policies to retry on (delimited by commas).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"retryOn\",\n \"perTryTimeout\",\n \"numRetries\",\n \"retryBackoffBaseInterval\"\n ],\n \"type\": \"object\"\n },\n \"source\": {\n \"description\": \"Source the Retry policy is applicable to.\",\n \"properties\": {\n \"kind\": {\n \"description\": \"Kind of this source (must be a service account).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of this source.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of this source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\",\n \"namespace\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"source\",\n \"destinations\",\n \"retryPolicy\"\n ],\n \"title\": \"Retry\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.2.3/serviceimport.OSM.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.2.3/serviceimport.OSM.meshery.layer5.io_meshmodel.json new file mode 100644 index 00000000..be6ff3fe --- /dev/null +++ b/templates/meshmodel/components/v1.2.3/serviceimport.OSM.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"ServiceImport","apiVersion":"multicluster.x-k8s.io/v1alpha1","display-name":"Service Import","format":"JSON","metadata":{},"model":{"name":"OPEN_SERVICE_MESH","version":"v1.2.3","display-name":"OPEN_SERVICE_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"description\": \"spec defines the behavior of a ServiceImport.\",\n \"properties\": {\n \"ips\": {\n \"description\": \"ip will be used as the VIP for this service when type is ClusterSetIP.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"maxItems\": 1,\n \"type\": \"array\"\n },\n \"ports\": {\n \"items\": {\n \"description\": \"ServicePort represents the port on which the service is exposed\",\n \"properties\": {\n \"appProtocol\": {\n \"description\": \"The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol. Field can be enabled with ServiceAppProtocol feature gate.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"The port that will be exposed by this service.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"description\": \"The IP protocol for this port. Supports \\\"TCP\\\", \\\"UDP\\\", and \\\"SCTP\\\". Default is TCP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"sessionAffinity\": {\n \"description\": \"Supports \\\"ClientIP\\\" and \\\"None\\\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. Ignored when type is Headless More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"type\": \"string\"\n },\n \"sessionAffinityConfig\": {\n \"description\": \"sessionAffinityConfig contains session affinity configuration.\",\n \"properties\": {\n \"clientIP\": {\n \"description\": \"clientIP contains the configurations of Client IP based session affinity.\",\n \"properties\": {\n \"timeoutSeconds\": {\n \"description\": \"timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be \\u003e0 \\u0026\\u0026 \\u003c=86400(for 1 day) if ServiceAffinity == \\\"ClientIP\\\". Default value is 10800(for 3 hours).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"type defines the type of this service. Must be ClusterSetIP or Headless.\",\n \"enum\": [\n \"ClusterSetIP\",\n \"Headless\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"ports\",\n \"type\"\n ],\n \"title\": \"Service Import\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.2.3/tcproute.OSM.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.2.3/tcproute.OSM.meshery.layer5.io_meshmodel.json new file mode 100644 index 00000000..efc54e02 --- /dev/null +++ b/templates/meshmodel/components/v1.2.3/tcproute.OSM.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"TCPRoute","apiVersion":"specs.smi-spec.io/v1alpha4","display-name":"TCP Route","format":"JSON","metadata":{},"model":{"name":"OPEN_SERVICE_MESH","version":"v1.2.3","display-name":"OPEN_SERVICE_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"matches\": {\n \"description\": \"Match conditions of this route.\",\n \"properties\": {\n \"ports\": {\n \"description\": \"Port numbers to match TCP traffic.\",\n \"items\": {\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"ports\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"matches\"\n ],\n \"title\": \"TCP Route\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.2.3/telemetry.OSM.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.2.3/telemetry.OSM.meshery.layer5.io_meshmodel.json new file mode 100644 index 00000000..0a885f02 --- /dev/null +++ b/templates/meshmodel/components/v1.2.3/telemetry.OSM.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"Telemetry","apiVersion":"policy.openservicemesh.io/v1alpha1","display-name":"Telemetry","format":"JSON","metadata":{},"model":{"name":"OPEN_SERVICE_MESH","version":"v1.2.3","display-name":"OPEN_SERVICE_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"accessLog\": {\n \"description\": \"accessLog (optional) defines the Envoy access log configuration.\",\n \"properties\": {\n \"format\": {\n \"description\": \"format (optional) defines the Envoy access log format. The format can either be unstructured or structured (e.g. JSON). Refer to https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#format-strings regarding how a format string can be specified.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"openTelemetry\": {\n \"description\": \"openTelemetry (optional) defines the OpenTelemetry configuration used to export the Envoy access logs to an OpenTelemetry collector.\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": true,\n \"description\": \"attributes (optional) defines key-value pairs as additional metadata corresponding access log record.\",\n \"type\": \"object\"\n },\n \"extensionService\": {\n \"description\": \"extensionService defines the reference to ExtensionService resource corresponding to the OpenTelemetry collector the access log should be exported to.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the ExtensionService resource.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the ExtensionService resource.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"namespace\",\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"extensionService\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"additionalProperties\": true,\n \"description\": \"selector (optional) defines the pod label selector for pods the Telemetry configuration is applicable to. It selects pods with matching label keys and values. If not specified, the configuration applies to all pods in the Telemetry resource's namespace.\",\n \"type\": \"object\"\n }\n },\n \"title\": \"Telemetry\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.2.3/trafficsplit.OSM.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.2.3/trafficsplit.OSM.meshery.layer5.io_meshmodel.json new file mode 100644 index 00000000..25b9a9ed --- /dev/null +++ b/templates/meshmodel/components/v1.2.3/trafficsplit.OSM.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"TrafficSplit","apiVersion":"split.smi-spec.io/v1alpha4","display-name":"Traffic Split","format":"JSON","metadata":{},"model":{"name":"OPEN_SERVICE_MESH","version":"v1.2.3","display-name":"OPEN_SERVICE_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"backends\": {\n \"description\": \"The backend services of this split.\",\n \"items\": {\n \"properties\": {\n \"service\": {\n \"description\": \"Name of the Kubernetes service.\",\n \"type\": \"string\"\n },\n \"weight\": {\n \"description\": \"Traffic weight value of this backend.\",\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"service\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matches\": {\n \"description\": \"The HTTP route groups that this traffic split should match.\",\n \"items\": {\n \"properties\": {\n \"kind\": {\n \"description\": \"Kind of the matching group.\",\n \"enum\": [\n \"HTTPRouteGroup\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the matching group.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"service\": {\n \"description\": \"The apex service of this split.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"service\",\n \"backends\"\n ],\n \"title\": \"Traffic Split\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.2.3/traffictarget.OSM.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.2.3/traffictarget.OSM.meshery.layer5.io_meshmodel.json new file mode 100644 index 00000000..7c746893 --- /dev/null +++ b/templates/meshmodel/components/v1.2.3/traffictarget.OSM.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"TrafficTarget","apiVersion":"access.smi-spec.io/v1alpha3","display-name":"Traffic Target","format":"JSON","metadata":{},"model":{"name":"OPEN_SERVICE_MESH","version":"v1.2.3","display-name":"OPEN_SERVICE_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"destination\": {\n \"description\": \"The destination of this traffic target.\",\n \"properties\": {\n \"kind\": {\n \"description\": \"Kind of the destination.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the destination.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the destination.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"rules\": {\n \"description\": \"Specifications of this traffic target.\",\n \"items\": {\n \"properties\": {\n \"kind\": {\n \"description\": \"Kind of this spec.\",\n \"enum\": [\n \"HTTPRouteGroup\",\n \"TCPRoute\",\n \"UDPRoute\"\n ],\n \"type\": \"string\"\n },\n \"matches\": {\n \"description\": \"Match conditions of this spec.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of this spec.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"sources\": {\n \"description\": \"Sources of this traffic target.\",\n \"items\": {\n \"properties\": {\n \"kind\": {\n \"description\": \"Kind of this source.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of this source.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of this source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"destination\",\n \"rules\",\n \"sources\"\n ],\n \"title\": \"Traffic Target\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.2.3/upstreamtrafficsetting.OSM.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.2.3/upstreamtrafficsetting.OSM.meshery.layer5.io_meshmodel.json new file mode 100644 index 00000000..64edfe2d --- /dev/null +++ b/templates/meshmodel/components/v1.2.3/upstreamtrafficsetting.OSM.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"UpstreamTrafficSetting","apiVersion":"policy.openservicemesh.io/v1alpha1","display-name":"Upstream Traffic Setting","format":"JSON","metadata":{},"model":{"name":"OPEN_SERVICE_MESH","version":"v1.2.3","display-name":"OPEN_SERVICE_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"connectionSettings\": {\n \"description\": \"Connection settings for the upstream host.\",\n \"properties\": {\n \"http\": {\n \"description\": \"HTTP connection settings.\",\n \"properties\": {\n \"maxPendingRequests\": {\n \"description\": \"Maximum number of pending HTTP/1.1 requests allowed.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"maxRequests\": {\n \"description\": \"Maximum number of parallel HTTP requests allowed.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"maxRequestsPerConnection\": {\n \"description\": \"Maximum number of HTTP requests per connection allowed.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"maxRetries\": {\n \"description\": \"Maximum number of parallel retries allowed.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tcp\": {\n \"description\": \"TCP connection settings.\",\n \"properties\": {\n \"connectTimeout\": {\n \"description\": \"TCP connection timeout.\",\n \"type\": \"string\"\n },\n \"maxConnections\": {\n \"description\": \"Maximum number of TCP connections.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"host\": {\n \"description\": \"Upstream host the policy is applicabe to.\",\n \"type\": \"string\"\n },\n \"httpRoutes\": {\n \"description\": \"HTTPRoutes defines the list of HTTP routes settings for the upstream host. Settings are applied at a per route level.\",\n \"items\": {\n \"description\": \"HTTP route settings for the given path.\",\n \"properties\": {\n \"path\": {\n \"description\": \"Path defines the HTTP path. This can be an RE2 regex value.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"rateLimit\": {\n \"description\": \"Rate limiting policy applied per route.\",\n \"properties\": {\n \"global\": {\n \"description\": \"Global rate limiting policy applied per route.\",\n \"properties\": {\n \"descriptors\": {\n \"description\": \"List of rate limit descriptors to use in the rate limit service request.\",\n \"items\": {\n \"description\": \"Rate limit descriptor to use in the rate limit service request.\",\n \"properties\": {\n \"entries\": {\n \"description\": \"List of rate limit descriptor entries for the descriptor.\",\n \"items\": {\n \"description\": \"Descriptor entry.\",\n \"oneOf\": [\n {\n \"required\": [\n \"genericKey\"\n ]\n },\n {\n \"required\": [\n \"remoteAddress\"\n ]\n },\n {\n \"required\": [\n \"requestHeader\"\n ]\n },\n {\n \"required\": [\n \"headerValueMatch\"\n ]\n }\n ],\n \"properties\": {\n \"genericKey\": {\n \"description\": \"GenericKey (optional) defines a descriptor entry with a static key-value pair.\",\n \"properties\": {\n \"key\": {\n \"description\": \"Key (optional) of the genericKey descriptor entry. Defaults to 'generic_key'.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of the genericKey descriptor entry\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"headerValueMatch\": {\n \"description\": \"HeaderValueMatch (optional) defines a descriptor entry that is generated when the request header matches the given HTTP header match criteria.\",\n \"properties\": {\n \"expectMatch\": {\n \"description\": \"ExpectMatch (optional) defines whether the request must match the given match criteria for the descriptor entry to be generated. If set to false, a descriptor entry will be generated when the request does not match the match criteria. Defaults to true.\",\n \"type\": \"boolean\"\n },\n \"headers\": {\n \"description\": \"List of HTTP header match criteria used to determine whether the descriptor entry should be generated for the request. A match will happen if all the specified headers are present in the request with the same values, or based on presence if the value field is not set.\",\n \"items\": {\n \"description\": \"Header match criteria.\",\n \"oneOf\": [\n {\n \"required\": [\n \"name\",\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"name\",\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"name\",\n \"suffix\"\n ]\n },\n {\n \"required\": [\n \"name\",\n \"regex\"\n ]\n },\n {\n \"required\": [\n \"name\",\n \"contains\"\n ]\n },\n {\n \"required\": [\n \"name\",\n \"present\"\n ]\n }\n ],\n \"properties\": {\n \"contains\": {\n \"description\": \"Contains (optional) value to match against the given header name.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"exact\": {\n \"description\": \"Exact (optional) value to match against the given header name.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the header to match.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"prefix\": {\n \"description\": \"Prefix (optional) value to match against the given header name.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"present\": {\n \"description\": \"Present (optional) defines whether the request matches the criteria when the header is present. If set to false, header match will be performed based on whether the header is absent.\",\n \"type\": \"boolean\"\n },\n \"regex\": {\n \"description\": \"Regex (optional) value to match against the given header name.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"suffix\": {\n \"description\": \"Suffix (optional) value to match against the given header name.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"key\": {\n \"description\": \"Key (optional) of the headerValueMatch descriptor entry. Defaults to 'header_match'.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of the headerValueMatch descriptor entry\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"value\",\n \"headers\"\n ],\n \"type\": \"object\"\n },\n \"remoteAddress\": {\n \"description\": \"RemoteAddress (optional) defines a descriptor entry with with key 'remote_address' and value equal to the client's IP address derived from the x-forwarded-for header.\",\n \"type\": \"object\"\n },\n \"requestHeader\": {\n \"description\": \"RequestHeader (optional) defines a descriptor entry that is generated only when the request header matches the given header name. The value of the descriptor entry is derived from the value of the header present in the request.\",\n \"properties\": {\n \"key\": {\n \"description\": \"Key of the requestHeader descriptor entry.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the header used to look up the descriptor entry's value.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"entries\"\n ],\n \"type\": \"object\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"descriptors\"\n ],\n \"type\": \"object\"\n },\n \"local\": {\n \"description\": \"Local rate limiting policy applied per route.\",\n \"properties\": {\n \"burst\": {\n \"description\": \"Burst (optional) defines the number of requests above the baseline rate that are allowed in a short period of time.\",\n \"type\": \"integer\"\n },\n \"requests\": {\n \"description\": \"Requests defines the number of requests allowed per unit of time before rate limiting occurs.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"responseHeadersToAdd\": {\n \"description\": \"ResponseHeadersToAdd (optional) defines the list of HTTP headers that should be added to each response for requests that have been rate limited.\",\n \"items\": {\n \"description\": \"Defines an HTTP header name/value pair.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name defines the HTTP header name.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value defines the HTTP header value.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"responseStatusCode\": {\n \"description\": \"ResponseStatusCode (optional) defines the HTTP status code to use for responses to rate limited requests. Code must be in the 400-599 (inclusive) error range. If not specified, a default of 429 (Too Many Requests) is used.\",\n \"maximum\": 599,\n \"minimum\": 400,\n \"type\": \"integer\"\n },\n \"unit\": {\n \"description\": \"Unit defines the period of time within which requests over the limit will be rate limited. Valid values are \\\"second\\\", \\\"minute\\\" and \\\"hour\\\".\",\n \"enum\": [\n \"second\",\n \"minute\",\n \"hour\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"rateLimit\": {\n \"description\": \"Rate limiting policy.\",\n \"properties\": {\n \"global\": {\n \"description\": \"Global rate limit policy responsible for rate limiting traffic to the upstream service.\",\n \"properties\": {\n \"http\": {\n \"description\": \"Global rate limit policy for HTTP requests.\",\n \"properties\": {\n \"descriptors\": {\n \"description\": \"List of rate limit descriptors to use in the rate limit service request.\",\n \"items\": {\n \"description\": \"Rate limit descriptor to use in the rate limit service request.\",\n \"properties\": {\n \"entries\": {\n \"description\": \"List of rate limit descriptor entries for the descriptor.\",\n \"items\": {\n \"description\": \"Descriptor entry.\",\n \"oneOf\": [\n {\n \"required\": [\n \"genericKey\"\n ]\n },\n {\n \"required\": [\n \"remoteAddress\"\n ]\n },\n {\n \"required\": [\n \"requestHeader\"\n ]\n },\n {\n \"required\": [\n \"headerValueMatch\"\n ]\n }\n ],\n \"properties\": {\n \"genericKey\": {\n \"description\": \"GenericKey (optional) defines a descriptor entry with a static key-value pair.\",\n \"properties\": {\n \"key\": {\n \"description\": \"Key (optional) of the genericKey descriptor entry. Defaults to 'generic_key'.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of the genericKey descriptor entry\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"headerValueMatch\": {\n \"description\": \"HeaderValueMatch (optional) defines a descriptor entry that is generated when the request header matches the given HTTP header match criteria.\",\n \"properties\": {\n \"expectMatch\": {\n \"description\": \"ExpectMatch (optional) defines whether the request must match the given match criteria for the descriptor entry to be generated. If set to false, a descriptor entry will be generated when the request does not match the match criteria. Defaults to true.\",\n \"type\": \"boolean\"\n },\n \"headers\": {\n \"description\": \"List of HTTP header match criteria used to determine whether the descriptor entry should be generated for the request. A match will happen if all the specified headers are present in the request with the same values, or based on presence if the value field is not set.\",\n \"items\": {\n \"description\": \"Header match criteria.\",\n \"oneOf\": [\n {\n \"required\": [\n \"name\",\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"name\",\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"name\",\n \"suffix\"\n ]\n },\n {\n \"required\": [\n \"name\",\n \"regex\"\n ]\n },\n {\n \"required\": [\n \"name\",\n \"contains\"\n ]\n },\n {\n \"required\": [\n \"name\",\n \"present\"\n ]\n }\n ],\n \"properties\": {\n \"contains\": {\n \"description\": \"Contains (optional) value to match against the given header name.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"exact\": {\n \"description\": \"Exact (optional) value to match against the given header name.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the header to match.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"prefix\": {\n \"description\": \"Prefix (optional) value to match against the given header name.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"present\": {\n \"description\": \"Present (optional) defines whether the request matches the criteria when the header is present. If set to false, header match will be performed based on whether the header is absent.\",\n \"type\": \"boolean\"\n },\n \"regex\": {\n \"description\": \"Regex (optional) value to match against the given header name.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"suffix\": {\n \"description\": \"Suffix (optional) value to match against the given header name.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"key\": {\n \"description\": \"Key (optional) of the headerValueMatch descriptor entry. Defaults to 'header_match'.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of the headerValueMatch descriptor entry\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"value\",\n \"headers\"\n ],\n \"type\": \"object\"\n },\n \"remoteAddress\": {\n \"description\": \"RemoteAddress (optional) defines a descriptor entry with with key 'remote_address' and value equal to the client's IP address derived from the x-forwarded-for header.\",\n \"type\": \"object\"\n },\n \"requestHeader\": {\n \"description\": \"RequestHeader (optional) defines a descriptor entry that is generated only when the request header matches the given header name. The value of the descriptor entry is derived from the value of the header present in the request.\",\n \"properties\": {\n \"key\": {\n \"description\": \"Key of the requestHeader descriptor entry.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the header used to look up the descriptor entry's value.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"entries\"\n ],\n \"type\": \"object\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"domain\": {\n \"description\": \"Domain defines a container for a set of rate limits. All domains known to the Ratelimit service must be globally unique. They serve as a way to have different rate limit configurations that don't conflict.\",\n \"type\": \"string\"\n },\n \"enableXRateLimitHeaders\": {\n \"description\": \"EnableXRateLimitHeaders (optional) defines whether to include the headers X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset on responses to clients when the rate limit service is consulted for a request. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"failOpen\": {\n \"description\": \"FailOpen (optional) defines whether to allow traffic in case of communication failure between rate limiting service and the proxy. Defaults to true.\",\n \"type\": \"boolean\"\n },\n \"rateLimitService\": {\n \"description\": \"Rate limit service to use as a global rate limiter.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Hostname of the global rate limit service.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Port of the global rate limit service.\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"host\",\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"responseStatusCode\": {\n \"description\": \"ResponseStatusCode (optional) defines the HTTP status code to use for responses to rate limited requests. Code must be in the 400-599 (inclusive) error range. If not specified, a default of 429 (Too Many Requests) is used.\",\n \"maximum\": 599,\n \"minimum\": 400,\n \"type\": \"integer\"\n },\n \"timeout\": {\n \"description\": \"Timeout (optional) interval for calls to the rate limit service. Defaults to 20ms.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"rateLimitService\",\n \"domain\"\n ],\n \"type\": \"object\"\n },\n \"tcp\": {\n \"description\": \"Global rate limit policy for TCP connections.\",\n \"properties\": {\n \"descriptors\": {\n \"description\": \"List of rate limit descriptors to use in the rate limit service request.\",\n \"items\": {\n \"description\": \"Rate limit descriptor to use in the rate limit service request.\",\n \"properties\": {\n \"entries\": {\n \"description\": \"List of rate limit descriptor entries for the descriptor.\",\n \"items\": {\n \"description\": \"Descriptor entry.\",\n \"properties\": {\n \"key\": {\n \"description\": \"Key of the descriptor entry.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of the descriptor entry.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"entries\"\n ],\n \"type\": \"object\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"domain\": {\n \"description\": \"Domain defines a container for a set of rate limits. All domains known to the Ratelimit service must be globally unique. They serve as a way to have different rate limit configurations that don't conflict.\",\n \"type\": \"string\"\n },\n \"failOpen\": {\n \"description\": \"FailOpen (optional) defines whether to allow traffic in case of communication failure between rate limiting service and the proxy. Defaults to true.\",\n \"type\": \"boolean\"\n },\n \"rateLimitService\": {\n \"description\": \"Rate limit service to use as a global rate limiter.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Hostname of the global rate limit service.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Port of the global rate limit service.\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"host\",\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"timeout\": {\n \"description\": \"Timeout (optional) interval for calls to the rate limit service. Defaults to 20ms.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"rateLimitService\",\n \"domain\",\n \"descriptors\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"local\": {\n \"description\": \"Local rate limit policy responsible for rate limiting traffic at the upstream service.\",\n \"properties\": {\n \"http\": {\n \"description\": \"HTTP level local rate limiting to limit the number of requests per unit of time.\",\n \"properties\": {\n \"burst\": {\n \"description\": \"Burst (optional) defines the number of requests above the baseline rate that are allowed in a short period of time.\",\n \"type\": \"integer\"\n },\n \"requests\": {\n \"description\": \"Requests defines the number of requests allowed per unit of time before rate limiting occurs.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"responseHeadersToAdd\": {\n \"description\": \"ResponseHeadersToAdd (optional) defines the list of HTTP headers that should be added to each response for requests that have been rate limited.\",\n \"items\": {\n \"description\": \"Defines an HTTP header name/value pair.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name defines the HTTP header name.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value defines the HTTP header value.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"responseStatusCode\": {\n \"description\": \"ResponseStatusCode (optional) defines the HTTP status code to use for responses to rate limited requests. Code must be in the 400-599 (inclusive) error range. If not specified, a default of 429 (Too Many Requests) is used.\",\n \"maximum\": 599,\n \"minimum\": 400,\n \"type\": \"integer\"\n },\n \"unit\": {\n \"description\": \"Unit defines the period of time within which requests over the limit will be rate limited. Valid values are \\\"second\\\", \\\"minute\\\" and \\\"hour\\\".\",\n \"enum\": [\n \"second\",\n \"minute\",\n \"hour\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tcp\": {\n \"description\": \"TCP level local rate limiting to limit the number of connections per unit of time.\",\n \"properties\": {\n \"burst\": {\n \"description\": \"Burst (optional) defines the number of connections above the baseline rate that are allowed in a short period of time.\",\n \"type\": \"integer\"\n },\n \"connections\": {\n \"description\": \"Connections defines the number of connections allowed per unit of time before rate limiting occurs.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"unit\": {\n \"description\": \"Unit defines the period of time within which connections over the limit will be rate limited. Valid values are \\\"second\\\", \\\"minute\\\" and \\\"hour\\\".\",\n \"enum\": [\n \"second\",\n \"minute\",\n \"hour\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"host\"\n ],\n \"title\": \"Upstream Traffic Setting\",\n \"type\": \"object\"\n}"} \ No newline at end of file