{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/ocelot-json/latest.json",
  "title": "JSON Schema for Ocelot.json",
  "x-lintel": {
    "source": "https://www.schemastore.org/ocelot.json",
    "sourceSha256": "c26e0b0f4b7f558bc6cb32476ee0af003ce2d6cde4f3303196a7c89e76fe30af",
    "fileMatch": [
      "ocelot.json"
    ],
    "parsers": [
      "json"
    ]
  },
  "type": "object",
  "properties": {
    "Routes": {
      "items": {
        "properties": {
          "DownstreamPathTemplate": {
            "pattern": "^(.*)$",
            "type": "string",
            "title": "The Downstreampathtemplate Schema"
          },
          "UpstreamPathTemplate": {
            "pattern": "^(.*)$",
            "type": "string",
            "title": "The Upstreampathtemplate Schema"
          },
          "UpstreamHttpMethod": {
            "items": {
              "pattern": "^(.*)$",
              "type": "string",
              "title": "The Items Schema",
              "examples": [
                "Get"
              ]
            },
            "type": "array",
            "title": "The Upstreamhttpmethod Schema"
          },
          "AddHeadersToRequest": {
            "title": "The AddHeadersToRequest Schema",
            "type": "object"
          },
          "AddClaimsToRequest": {
            "title": "The AddClaimsToRequest Schema",
            "type": "object"
          },
          "RouteClaimsRequirement": {
            "title": "The Routeclaimsrequirement Schema",
            "type": "object"
          },
          "AddQueriesToRequest": {
            "title": "The AddQueriesToRequest Schema",
            "type": "object"
          },
          "RequestIdKey": {
            "pattern": "^(.*)$",
            "type": "string",
            "title": "The Requestidkey Schema"
          },
          "FileCacheOptions": {
            "properties": {
              "TtlSeconds": {
                "title": "The Ttlseconds Schema",
                "type": "integer"
              },
              "Region": {
                "pattern": "^(.*)$",
                "type": "string",
                "title": "The Region Schema"
              }
            },
            "type": "object",
            "title": "The Filecacheoptions Schema"
          },
          "RouteIsCaseSensitive": {
            "title": "The Routeiscasesensitive Schema",
            "type": "boolean"
          },
          "ServiceName": {
            "pattern": "^(.*)$",
            "type": "string",
            "title": "The Servicename Schema"
          },
          "DownstreamScheme": {
            "pattern": "^(.*)$",
            "type": "string",
            "title": "The Downstreamscheme Schema"
          },
          "DownstreamHostAndPorts": {
            "items": {
              "properties": {
                "Host": {
                  "pattern": "^(.*)$",
                  "type": "string",
                  "title": "The Host Schema",
                  "default": "",
                  "examples": [
                    "localhost"
                  ]
                },
                "Port": {
                  "title": "The Port Schema",
                  "type": "integer"
                }
              },
              "type": "object",
              "title": "The Items Schema"
            },
            "type": "array",
            "title": "The Downstreamhostandports Schema"
          },
          "QoSOptions": {
            "properties": {
              "ExceptionsAllowedBeforeBreaking": {
                "title": "The Exceptionsallowedbeforebreaking Schema",
                "type": "integer"
              },
              "DurationOfBreak": {
                "title": "The Durationofbreak Schema",
                "type": "integer"
              },
              "TimeoutValue": {
                "title": "The Timeoutvalue Schema",
                "type": "integer"
              }
            },
            "type": "object",
            "title": "The Qosoptions Schema"
          },
          "LoadBalancer": {
            "pattern": "^(.*)$",
            "type": "string",
            "title": "The Loadbalancer Schema"
          },
          "RateLimitOptions": {
            "properties": {
              "ClientWhitelist": {
                "title": "The Clientwhitelist Schema",
                "type": "array"
              },
              "EnableRateLimiting": {
                "title": "The Enableratelimiting Schema",
                "type": "boolean"
              },
              "Period": {
                "pattern": "^(.*)$",
                "type": "string",
                "title": "The Period Schema"
              },
              "PeriodTimespan": {
                "title": "The Periodtimespan Schema",
                "type": "integer"
              },
              "Limit": {
                "title": "The Limit Schema",
                "type": "integer"
              }
            },
            "type": "object",
            "title": "The Ratelimitoptions Schema"
          },
          "AuthenticationOptions": {
            "properties": {
              "AuthenticationProviderKey": {
                "pattern": "^(.*)$",
                "type": "string",
                "title": "The Authenticationproviderkey Schema"
              },
              "AllowedScopes": {
                "title": "The Allowedscopes Schema",
                "type": "array"
              }
            },
            "type": "object",
            "title": "The Authenticationoptions Schema"
          },
          "HttpHandlerOptions": {
            "properties": {
              "AllowAutoRedirect": {
                "title": "The Allowautoredirect Schema",
                "type": "boolean"
              },
              "UseCookieContainer": {
                "title": "The Usecookiecontainer Schema",
                "type": "boolean"
              },
              "UseTracing": {
                "title": "The Usetracing Schema",
                "type": "boolean"
              }
            },
            "type": "object",
            "title": "The Httphandleroptions Schema"
          },
          "DangerousAcceptAnyServerCertificateValidator": {
            "title": "The Dangerousacceptanyservercertificatevalidator Schema",
            "type": "boolean"
          }
        },
        "type": "object",
        "title": "The Items Schema"
      },
      "type": "array",
      "title": "The Routes Schema"
    },
    "GlobalConfiguration": {
      "properties": {
        "RequestIdKey": {
          "pattern": "^(.*)$",
          "type": "string",
          "title": "The Requestidkey Schema"
        }
      },
      "type": "object",
      "title": "The Globalconfiguration Schema"
    }
  },
  "required": [
    "Routes"
  ]
}
